2 /* { dg-options "-O3 -mpower8-vector -Wno-psabi" } */
3 /* { dg-require-effective-target lp64 } */
4 /* { dg-require-effective-target p8vector_hw } */
7 #define CHECK_H "sse2-check.h"
13 #define TEST sse2_test_psllq_1
16 #include <emmintrin.h>
19 #define TEST_FUNC(id, N) \
21 __attribute__((noinline, unused)) \
22 test##id (__m128i s1) \
24 return _mm_slli_epi64 (s1, N); \
36 TEST_FUNC(neg128
, -128)
39 #define TEST_CODE(id, N) \
42 long long e[2] = {0}; \
44 s.x = _mm_set_epi64x (-1, 0xf); \
45 u.x = test##id (s.x); \
46 if (N >= 0 && N < 64) \
47 for (i = 0; i < 2; i++) \
48 e[i] = s.a[i] << (N * (N >= 0)); \
49 if (check_union128i_q (u, e)) \
63 TEST_CODE(neg16
, -16);
64 TEST_CODE(neg32
, -32);
65 TEST_CODE(neg64
, -64);
66 TEST_CODE(neg128
, -128);