/* APPLE LOCAL file 5612787 mainline sse4 */
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target sse4 } */
/* { dg-options "-O2 -msse4.1" } */

#include "sse4_1-check.h"

#include <smmintrin.h>

#define msk0   0
#define msk1   1
#define msk2   2
#define msk3   3
#define msk4   4
#define msk5   5
#define msk6   6
#define msk7   7

static void
sse4_1_test (void)
{
  union
    {
      __m128i x;
      int i[4];
      short s[8];
    } val1;
  int res[8], masks[8];
  int i;

  val1.i[0] = 0x04030201;
  val1.i[1] = 0x08070605;
  val1.i[2] = 0x0C0B0A09;
  val1.i[3] = 0x100F0E0D;

  res[0] = _mm_extract_epi16 (val1.x, msk0);
  res[1] = _mm_extract_epi16 (val1.x, msk1);
  res[2] = _mm_extract_epi16 (val1.x, msk2);
  res[3] = _mm_extract_epi16 (val1.x, msk3);
  res[4] = _mm_extract_epi16 (val1.x, msk4);
  res[5] = _mm_extract_epi16 (val1.x, msk5);
  res[6] = _mm_extract_epi16 (val1.x, msk6);
  res[7] = _mm_extract_epi16 (val1.x, msk7);

  masks[0] = msk0;
  masks[1] = msk1;
  masks[2] = msk2;
  masks[3] = msk3;
  masks[4] = msk4;
  masks[5] = msk5;
  masks[6] = msk6;
  masks[7] = msk7;

  for (i = 0; i < 8; i++)
    if (res[i] != val1.s [masks[i]])
      abort ();
}
