2 /* { dg-options "-O3 -mvsx" } */
3 /* { dg-additional-options "-mdejagnu-cpu=power8" { target { ! has_arch_pwr8 } } } */
4 /* { dg-require-effective-target p8vector_hw } */
6 #define NO_WARN_X86_INTRINSICS 1
8 #define CHECK_H "mmx-check.h"
20 __attribute__((noinline
, unused
))
21 test (__m64 s1
, __m64 s2
)
23 return _mm_packs_pi32 (s1
, s2
);
31 else if (val
< -32768)
38 l_mm_extract_pi32 (__m64 b
, int imm8
)
40 unsigned int shift
= imm8
& 0x1;
44 return ((long long)b
>> (shift
* 32)) & 0xffffffff;
55 s1
.as_m64
= _mm_set_pi32 (2134, -128);
56 s2
.as_m64
= _mm_set_pi32 (41124, 234);
57 u
.as_m64
= test (s1
.as_m64
, s2
.as_m64
);
59 #ifdef __LITTLE_ENDIAN__
60 e
.as_m64
= _mm_set_pi16 (saturate (l_mm_extract_pi32 (s2
.as_m64
, 1)),
61 saturate (l_mm_extract_pi32 (s2
.as_m64
, 0)),
62 saturate (l_mm_extract_pi32 (s1
.as_m64
, 1)),
63 saturate (l_mm_extract_pi32 (s1
.as_m64
, 0)));
65 e
.as_m64
= _mm_set_pi16 (saturate (l_mm_extract_pi32 (s1
.as_m64
, 1)),
66 saturate (l_mm_extract_pi32 (s1
.as_m64
, 0)),
67 saturate (l_mm_extract_pi32 (s2
.as_m64
, 1)),
68 saturate (l_mm_extract_pi32 (s2
.as_m64
, 0)));
71 if (u
.as_m64
!= e
.as_m64
)