2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
6 #define CHECK_H "sse4_1-check.h"
10 #define TEST sse4_1_test
15 #include <smmintrin.h>
34 val[0].i[0] = 0x11111111;
35 val[0].i[1] = 0x00000000;
36 val[0].i[2] = 0x00000000;
37 val[0].i[3] = 0x11111111;
42 val[1].i[0] = 0x00000000;
43 val[1].i[1] = 0x11111111;
44 val[1].i[2] = 0x11111111;
45 val[1].i[3] = 0x00000000;
58 val[3].i[0] = 0xffffffff;
59 val[3].i[1] = 0xffffffff;
60 val[3].i[2] = 0xffffffff;
61 val[3].i[3] = 0xffffffff;
67 zeros[i] = _mm_test_all_zeros (val[i].x, val[i].x);
69 for( i=0; i < 4; i++ )
70 ones[i] = _mm_test_all_ones (val[i].x);
72 v = _mm_cmpeq_epi32 (val[0].x, val[0].x);
73 for( i=0; i < 4; i++ )
74 mixed[i] = _mm_test_mix_ones_zeros (val[i].x, v);
76 for( i=0; i < 4; i++ )
78 if (zeros[i] != correct_zeros[i])
80 if (ones[i] != correct_ones[i])
82 if (mixed[i] != correct_mixed[i])