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>
31 vals
[0].x
= _MM_PICK_OUT_PS (val
.x
, 0);
32 vals
[1].x
= _MM_PICK_OUT_PS (val
.x
, 1);
33 vals
[2].x
= _MM_PICK_OUT_PS (val
.x
, 2);
34 vals
[3].x
= _MM_PICK_OUT_PS (val
.x
, 3);
36 for (i
= 0; i
< 4; i
++)
37 for (j
= 0; j
< 4; j
++)
38 if ((j
!= 0 && vals
[i
].f
[j
] != 0)
39 || (j
== 0 && vals
[i
].f
[j
] != val
.f
[i
]))
42 if (_MM_MK_INSERTPS_NDX(0, 0, 0x1) != 0x01
43 || _MM_MK_INSERTPS_NDX(0, 1, 0x2) != 0x12
44 || _MM_MK_INSERTPS_NDX(0, 2, 0x3) != 0x23
45 || _MM_MK_INSERTPS_NDX(0, 3, 0x4) != 0x34
46 || _MM_MK_INSERTPS_NDX(1, 0, 0x5) != 0x45
47 || _MM_MK_INSERTPS_NDX(1, 1, 0x6) != 0x56
48 || _MM_MK_INSERTPS_NDX(2, 2, 0x7) != 0xA7
49 || _MM_MK_INSERTPS_NDX(3, 3, 0x8) != 0xF8)