1 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
5 #include "sse4_1-check.h"
19 unsigned long long ll
[2];
22 static unsigned long long ins
[2] =
23 { 0xAABBAABBAABBAABBLL
, 0xCCDDCCDDCCDDCCDDLL
};
26 val
.ll
[0] = 0x0807060504030201LL
;
27 val
.ll
[1] = 0x100F0E0D0C0B0A09LL
;
29 /* Check pinsrq imm8, r64, xmm. */
30 res
[0].x
= _mm_insert_epi64 (val
.x
, ins
[0], msk0
);
31 res
[1].x
= _mm_insert_epi64 (val
.x
, ins
[0], msk1
);
36 for (i
= 0; i
< 2; i
++)
39 tmp
.ll
[masks
[i
]] = ins
[0];
40 if (memcmp (&tmp
, &res
[i
], sizeof (tmp
)))
44 /* Check pinsrq imm8, m64, xmm. */
45 for (i
= 0; i
< 2; i
++)
47 res
[i
].x
= _mm_insert_epi64 (val
.x
, ins
[i
], msk0
);
51 for (i
= 0; i
< 2; i
++)
54 tmp
.ll
[masks
[i
]] = ins
[i
];
55 if (memcmp (&tmp
, &res
[i
], sizeof (tmp
)))