1 /* PR target/79299 */
2 /* { dg-do assemble { target avx512vl } } */
3 /* { dg-require-effective-target masm_intel } */
4 /* { dg-options "-Ofast -mavx512vl -masm=intel" } */
5 
6 #define N 1024
7 
8 unsigned long long a[N];
9 unsigned int b[N], c[N], d[N], e[N], f[N];
10 unsigned long long g[N], h[N], j[N], k[N];
11 float l[N], m[N], n[N], o[N];
12 double p[N], q[N], r[N], s[N];
13 
14 void
f1(void)15 f1 (void)
16 {
17   int i;
18   for (i = 0; i < N; i++)
19     d[i] = c[a[i]];
20   for (i = 0; i < N; i++)
21     e[i] = f[i] ? f[i] : c[a[i]];
22 }
23 
24 void
f2(void)25 f2 (void)
26 {
27   int i;
28   for (i = 0; i < N; i++)
29     d[i] = c[b[i]];
30   for (i = 0; i < N; i++)
31     e[i] = f[i] ? f[i] : c[b[i]];
32 }
33 
34 void
f3(void)35 f3 (void)
36 {
37   int i;
38   for (i = 0; i < N; i++)
39     h[i] = g[a[i]];
40   for (i = 0; i < N; i++)
41     j[i] = k[i] != 0.0 ? k[i] : g[a[i]];
42 }
43 
44 void
f4(void)45 f4 (void)
46 {
47   int i;
48   for (i = 0; i < N; i++)
49     h[i] = g[b[i]];
50   for (i = 0; i < N; i++)
51     j[i] = k[i] != 0.0 ? k[i] : g[b[i]];
52 }
53 
54 void
f5(void)55 f5 (void)
56 {
57   int i;
58   for (i = 0; i < N; i++)
59     m[i] = l[a[i]];
60   for (i = 0; i < N; i++)
61     n[i] = o[i] ? o[i] : l[a[i]];
62 }
63 
64 void
f6(void)65 f6 (void)
66 {
67   int i;
68   for (i = 0; i < N; i++)
69     m[i] = c[b[i]];
70   for (i = 0; i < N; i++)
71     n[i] = o[i] ? o[i] : c[b[i]];
72 }
73 
74 void
f7(void)75 f7 (void)
76 {
77   int i;
78   for (i = 0; i < N; i++)
79     q[i] = p[a[i]];
80   for (i = 0; i < N; i++)
81     r[i] = s[i] != 0.0 ? s[i] : p[a[i]];
82 }
83 
84 void
f8(void)85 f8 (void)
86 {
87   int i;
88   for (i = 0; i < N; i++)
89     q[i] = p[b[i]];
90   for (i = 0; i < N; i++)
91     r[i] = s[i] != 0.0 ? s[i] : p[b[i]];
92 }
93