2 /* { dg-options "-O3" } */
3 /* { dg-require-effective-target lp64 } */
4 /* { dg-require-effective-target p8vector_hw } */
6 #define NO_WARN_X86_INTRINSICS 1
9 #define CHECK_H "mmx-check.h"
21 __attribute__((noinline
, unused
))
22 test (__m64 s1
, __m64 s2
)
24 return _mm_packs_pu16 (s1
, s2
);
35 s1
.as_m64
= _mm_set_pi16 (1, 2, 3, 4);
36 s2
.as_m64
= _mm_set_pi16 (-9, -10, -11, -12);
37 u
.as_m64
= test (s1
.as_m64
, s2
.as_m64
);
41 tmp
= s1
.as_short
[i
]<0 ? 0 : s1
.as_short
[i
];
42 tmp
= tmp
>255 ? 255 : tmp
;
45 tmp
= s2
.as_short
[i
]<0 ? 0 : s2
.as_short
[i
];
46 tmp
= tmp
>255 ? 255 : tmp
;
50 if (u
.as_m64
!= e
.as_m64
)