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
])