1 /* { dg-do compile } */
2 /* { dg-options "-msse4.2 -O3" } */
3 /* { dg-final { scan-assembler-times "(?:vmovd|movd)\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]" 3 } } */
4 /* { dg-final { scan-assembler-times "(?:vpaddd|paddd)\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]" 2 } } */
5 /* { dg-final { scan-assembler-times "(?:vpinsrd|pinsrd)\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]" 1 } } */
6 /* { dg-final { scan-assembler-not "vmovss" } } */
17 xa
= _mm_insert_epi32 (xa
, a
, 0);
18 xb
= _mm_insert_epi32 (xb
, b
, 0);
20 xres
= _mm_add_epi32 (xa
, xb
);
22 res
= _mm_extract_epi32 (xres
, 0);
24 xres
= _mm_insert_epi32 (xres
, res
, 0);
25 xb
= _mm_insert_epi32 (xb
, b
, 0);
27 xres
= _mm_add_epi32 (xres
, xb
);
29 res
= _mm_extract_epi32 (xres
, 0);