1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-options "-O2 -mavx512vl -mno-avx512dq" } */
7 f1 (__m128d a
, __m128d b
)
9 register __m128d c
__asm ("xmm16") = a
;
10 asm volatile ("" : "+v" (c
));
11 c
= _mm_and_pd (c
, b
);
12 asm volatile ("" : "+v" (c
));
16 /* { dg-final { scan-assembler-times "vpandq\[^\n\r\]*xmm\[0-9\]" 1 } } */
19 f2 (__m128d a
, __m128d b
)
21 register __m128d c
__asm ("xmm16") = a
;
22 asm volatile ("" : "+v" (c
));
24 asm volatile ("" : "+v" (c
));
28 /* { dg-final { scan-assembler-times "vporq\[^\n\r\]*xmm\[0-9\]" 1 } } */
31 f3 (__m128d a
, __m128d b
)
33 register __m128d c
__asm ("xmm16") = a
;
34 asm volatile ("" : "+v" (c
));
35 c
= _mm_xor_pd (c
, b
);
36 asm volatile ("" : "+v" (c
));
40 /* { dg-final { scan-assembler-times "vpxorq\[^\n\r\]*xmm\[0-9\]" 1 } } */
43 f4 (__m128d a
, __m128d b
)
45 register __m128d c
__asm ("xmm16") = a
;
46 asm volatile ("" : "+v" (c
));
47 c
= _mm_andnot_pd (c
, b
);
48 asm volatile ("" : "+v" (c
));
52 /* { dg-final { scan-assembler-times "vpandnq\[^\n\r\]*xmm\[0-9\]" 1 } } */
55 f5 (__m128 a
, __m128 b
)
57 register __m128 c
__asm ("xmm16") = a
;
58 asm volatile ("" : "+v" (c
));
59 c
= _mm_and_ps (c
, b
);
60 asm volatile ("" : "+v" (c
));
64 /* { dg-final { scan-assembler-times "vpandd\[^\n\r\]*xmm\[0-9\]" 1 } } */
67 f6 (__m128 a
, __m128 b
)
69 register __m128 c
__asm ("xmm16") = a
;
70 asm volatile ("" : "+v" (c
));
72 asm volatile ("" : "+v" (c
));
76 /* { dg-final { scan-assembler-times "vpord\[^\n\r\]*xmm\[0-9\]" 1 } } */
79 f7 (__m128 a
, __m128 b
)
81 register __m128 c
__asm ("xmm16") = a
;
82 asm volatile ("" : "+v" (c
));
83 c
= _mm_xor_ps (c
, b
);
84 asm volatile ("" : "+v" (c
));
88 /* { dg-final { scan-assembler-times "vpxord\[^\n\r\]*xmm\[0-9\]" 1 } } */
91 f8 (__m128 a
, __m128 b
)
93 register __m128 c
__asm ("xmm16") = a
;
94 asm volatile ("" : "+v" (c
));
95 c
= _mm_andnot_ps (c
, b
);
96 asm volatile ("" : "+v" (c
));
100 /* { dg-final { scan-assembler-times "vpandnd\[^\n\r\]*xmm\[0-9\]" 1 } } */
103 f9 (__m256d a
, __m256d b
)
105 register __m256d c
__asm ("xmm16") = a
;
106 asm volatile ("" : "+v" (c
));
107 c
= _mm256_and_pd (c
, b
);
108 asm volatile ("" : "+v" (c
));
112 /* { dg-final { scan-assembler-times "vpandq\[^\n\r\]*ymm\[0-9\]" 1 } } */
115 f10 (__m256d a
, __m256d b
)
117 register __m256d c
__asm ("xmm16") = a
;
118 asm volatile ("" : "+v" (c
));
119 c
= _mm256_or_pd (c
, b
);
120 asm volatile ("" : "+v" (c
));
124 /* { dg-final { scan-assembler-times "vporq\[^\n\r\]*ymm\[0-9\]" 1 } } */
127 f11 (__m256d a
, __m256d b
)
129 register __m256d c
__asm ("xmm16") = a
;
130 asm volatile ("" : "+v" (c
));
131 c
= _mm256_xor_pd (c
, b
);
132 asm volatile ("" : "+v" (c
));
136 /* { dg-final { scan-assembler-times "vpxorq\[^\n\r\]*ymm\[0-9\]" 1 } } */
139 f12 (__m256d a
, __m256d b
)
141 register __m256d c
__asm ("xmm16") = a
;
142 asm volatile ("" : "+v" (c
));
143 c
= _mm256_andnot_pd (c
, b
);
144 asm volatile ("" : "+v" (c
));
148 /* { dg-final { scan-assembler-times "vpandnq\[^\n\r\]*ymm\[0-9\]" 1 } } */
151 f13 (__m256 a
, __m256 b
)
153 register __m256 c
__asm ("xmm16") = a
;
154 asm volatile ("" : "+v" (c
));
155 c
= _mm256_and_ps (c
, b
);
156 asm volatile ("" : "+v" (c
));
160 /* { dg-final { scan-assembler-times "vpandd\[^\n\r\]*ymm\[0-9\]" 1 } } */
163 f14 (__m256 a
, __m256 b
)
165 register __m256 c
__asm ("xmm16") = a
;
166 asm volatile ("" : "+v" (c
));
167 c
= _mm256_or_ps (c
, b
);
168 asm volatile ("" : "+v" (c
));
172 /* { dg-final { scan-assembler-times "vpord\[^\n\r\]*ymm\[0-9\]" 1 } } */
175 f15 (__m256 a
, __m256 b
)
177 register __m256 c
__asm ("xmm16") = a
;
178 asm volatile ("" : "+v" (c
));
179 c
= _mm256_xor_ps (c
, b
);
180 asm volatile ("" : "+v" (c
));
184 /* { dg-final { scan-assembler-times "vpxord\[^\n\r\]*ymm\[0-9\]" 1 } } */
187 f16 (__m256 a
, __m256 b
)
189 register __m256 c
__asm ("xmm16") = a
;
190 asm volatile ("" : "+v" (c
));
191 c
= _mm256_andnot_ps (c
, b
);
192 asm volatile ("" : "+v" (c
));
196 /* { dg-final { scan-assembler-times "vpandnd\[^\n\r\]*ymm\[0-9\]" 1 } } */