2 /* { dg-require-effective-target sse4a } */
3 /* { dg-options "-O2 -msse4a" } */
5 #include "sse4a-check.h"
16 sse4a_test_extrq (long long in)
19 long long index_length, pad;
21 index_length = 0x0000000000000810LL;
23 v1 = _mm_set_epi64x (pad, in);
24 v2 = _mm_set_epi64x (pad, index_length);
25 v_out.vec = _mm_extract_si64 (v1, v2);
30 sse4a_test_extrqi (long long in)
35 v1 = _mm_set_epi64x (pad, in);
36 v_out.vec = _mm_extracti_si64 (v1, (unsigned int) 0x10,(unsigned int) 0x08);
40 static chk (long long i1, long long i2)
48 long long vals_in[5] =
57 long long vals_out[5] =
73 for (i = 0; i < 5; i += 1)
75 out = sse4a_test_extrq (vals_in[i]);
76 fail += chk(out, vals_out[i]);
78 out = sse4a_test_extrqi (vals_in[i]);
79 fail += chk(out, vals_out[i]);