1 /* PR target/90991 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mavx512dq -masm=att" } */
4 /* { dg-final { scan-assembler-times "vmovaps\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
5 /* { dg-final { scan-assembler-times "vmovapd\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
6 /* { dg-final { scan-assembler-times "vmovdqa\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
7 /* { dg-final { scan-assembler-times "vmovups\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
8 /* { dg-final { scan-assembler-times "vmovupd\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
9 /* { dg-final { scan-assembler-times "vmovdqu\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
10 
11 #include <x86intrin.h>
12 
13 __m512
f1(void * a)14 f1 (void *a)
15 {
16   return _mm512_insertf32x4 (_mm512_set1_ps (0.0f), _mm_load_ps (a), 0);
17 }
18 
19 __m512d
f2(void * a)20 f2 (void *a)
21 {
22   return _mm512_insertf64x2 (_mm512_set1_pd (0.0), _mm_load_pd (a), 0);
23 }
24 
25 __m512i
f3(void * a)26 f3 (void *a)
27 {
28   return _mm512_inserti32x4 (_mm512_set1_epi32 (0), _mm_load_si128 (a), 0);
29 }
30 
31 __m512
f4(void * a)32 f4 (void *a)
33 {
34   return _mm512_insertf32x4 (_mm512_set1_ps (0.0f), _mm_loadu_ps (a), 0);
35 }
36 
37 __m512d
f5(void * a)38 f5 (void *a)
39 {
40   return _mm512_insertf64x2 (_mm512_set1_pd (0.0), _mm_loadu_pd (a), 0);
41 }
42 
43 __m512i
f6(void * a)44 f6 (void *a)
45 {
46   return _mm512_inserti32x4 (_mm512_set1_epi32 (0), _mm_loadu_si128 (a), 0);
47 }
48