i386-lshiftrt-1.c   [plain text]


/* APPLE LOCAL begin radar 4266982 */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -msse" } */

typedef double __v2df __attribute__ ((__vector_size__ (16)));
typedef long long __v2di __attribute__ ((__vector_size__ (16)));
typedef int __v4si __attribute__ ((__vector_size__ (16)));
typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef char __v16qi __attribute__ ((__vector_size__ (16)));

typedef __v2di __m128i;
typedef __v2df __m128d;

static inline __m128i __attribute__((__always_inline__, __nodebug__))
_mm_packus_epi16 (__m128i __A, __m128i __B)
{
  return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B);
}


static inline __m128i __attribute__((__always_inline__, __nodebug__))
_mm_load_si128 (__m128i const *__P)
{
  return *__P;
}

static inline __m128i __attribute__((__always_inline__, __nodebug__))
_mm_or_si128 (__m128i __A, __m128i __B)
{
  return (__m128i)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);
}
static inline __m128i __attribute__((__always_inline__, __nodebug__))
_mm_add_epi16 (__m128i __A, __m128i __B)
{
  return (__m128i)__builtin_ia32_paddw128 ((__v8hi)__A, (__v8hi)__B);
}
static inline int __attribute__((__always_inline__, __nodebug__))
_mm_cvtsi128_si32 (__m128i __A)
{
  return __builtin_ia32_vec_ext_v4si ((__v4si)__A, 0);
}
void FUNC( unsigned char const* pixPtr)
{

 __m128i vu16YPredictionHi, vu16YPredictionLo;

  __m128i vu16YPrediction3;
  __m128i vtemp0, vtemp1, vtemp2, vtemp3;

  vtemp2 = ((__m128i)__builtin_ia32_pslldqi128 (vu16YPrediction3, (4) * 8));
  vtemp2 = ((__m128i)__builtin_ia32_psrldqi128 (vtemp2, (8) * 8));
  vtemp3 = ((__m128i)__builtin_ia32_psrldqi128 (vu16YPrediction3, (6) * 8));
  vtemp3 = ((__m128i)__builtin_ia32_pslldqi128 (vtemp3, (8) * 8));

  vu16YPredictionLo = _mm_or_si128(vtemp2, vtemp3);

 __m128i vs16YResidualHi, vs16YResidualLo, vs16YResultHi, vs16YResultLo;
 __m128i vu8YResult;
 unsigned int itemp0, itemp1, itemp2, itemp3;
 vs16YResultHi = _mm_add_epi16(vu16YPredictionHi, vs16YResidualHi);
 vs16YResultLo = _mm_add_epi16(vu16YPredictionLo, vs16YResidualLo);
 vu8YResult = _mm_packus_epi16(vs16YResultHi, vs16YResultLo);
 itemp0 = _mm_cvtsi128_si32(vu8YResult);
 vu8YResult = ((__m128i)__builtin_ia32_psrldqi128 (vu8YResult, (4) * 8));
 itemp1 = _mm_cvtsi128_si32(vu8YResult);
 vu8YResult = ((__m128i)__builtin_ia32_psrldqi128 (vu8YResult, (4) * 8));
 itemp2 = _mm_cvtsi128_si32(vu8YResult);
 vu8YResult = ((__m128i)__builtin_ia32_psrldqi128 (vu8YResult, (4) * 8));
 itemp3 = _mm_cvtsi128_si32(vu8YResult);
  *(unsigned int*)pixPtr = itemp0;
}
/* APPLE LOCAL end radar 4266982 */