[MLIR][TOSA] Update CustomOp input and output names (#118408)
[llvm-project.git] / clang / test / CodeGen / X86 / avx10_2ni-builtins.c
blobd06a008c09e71de83d208d8fd7966b8d92c916c6
1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64 -target-feature +avx10.2-256 -emit-llvm -o - | FileCheck %s
2 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i686 -target-feature +avx10.2-256 -emit-llvm -o - | FileCheck %s
4 #include <immintrin.h>
6 // VNNI FP16
7 __m128 test_mm_dpph_ps(__m128 __W, __m128h __A, __m128h __B) {
8 // CHECK-LABEL: @test_mm_dpph_ps(
9 // CHECK: call <4 x float> @llvm.x86.avx10.vdpphps.128
10 return _mm_dpph_ps(__W, __A, __B);
13 __m128 test_mm_mask_dpph_ps(__m128 __W, __mmask8 __U, __m128h __A, __m128h __B) {
14 // CHECK-LABEL: @test_mm_mask_dpph_ps(
15 // CHECK: call <4 x float> @llvm.x86.avx10.vdpphps.128
16 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
17 return _mm_mask_dpph_ps(__W, __U, __A, __B);
20 __m128 test_mm_maskz_dpph_ps(__mmask8 __U, __m128 __W, __m128h __A, __m128h __B) {
21 // CHECK-LABEL: @test_mm_maskz_dpph_ps(
22 // CHECK: call <4 x float> @llvm.x86.avx10.vdpphps.128
23 // CHECK: zeroinitializer
24 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
25 return _mm_maskz_dpph_ps(__U, __W, __A, __B);
28 __m256 test_mm256_dpph_ps(__m256 __W, __m256h __A, __m256h __B) {
29 // CHECK-LABEL: @test_mm256_dpph_ps(
30 // CHECK: call <8 x float> @llvm.x86.avx10.vdpphps.256
31 return _mm256_dpph_ps(__W, __A, __B);
34 __m256 test_mm256_mask_dpph_ps(__m256 __W, __mmask8 __U, __m256h __A, __m256h __B) {
35 // CHECK-LABEL: @test_mm256_mask_dpph_ps(
36 // CHECK: call <8 x float> @llvm.x86.avx10.vdpphps.256
37 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
38 return _mm256_mask_dpph_ps(__W, __U, __A, __B);
41 __m256 test_mm256_maskz_dpph_ps(__mmask8 __U, __m256 __W, __m256h __A, __m256h __B) {
42 // CHECK-LABEL: @test_mm256_maskz_dpph_ps(
43 // CHECK: call <8 x float> @llvm.x86.avx10.vdpphps.256
44 // CHECK: zeroinitializer
45 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
46 return _mm256_maskz_dpph_ps(__U, __W, __A, __B);
49 // VMPSADBW
50 __m128i test_mm_mpsadbw_epu8(__m128i __A, __m128i __B) {
51 // CHECK-LABEL: @test_mm_mpsadbw_epu8
52 // CHECK: @llvm.x86.sse41.mpsadbw
53 return _mm_mpsadbw_epu8(__A, __B, 170);
56 __m128i test_mm_mask_mpsadbw_epu8(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
57 // CHECK-LABEL: @test_mm_mask_mpsadbw_epu8
58 // CHECK: @llvm.x86.sse41.mpsadbw
59 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
60 return _mm_mask_mpsadbw_epu8(__W, __U, __A, __B, 170);
63 __m128i test_mm_maskz_mpsadbw_epu8(__mmask8 __U, __m128i __A, __m128i __B) {
64 // CHECK-LABEL: @test_mm_maskz_mpsadbw_epu8
65 // CHECK: @llvm.x86.sse41.mpsadbw
66 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
67 return _mm_maskz_mpsadbw_epu8(__U, __A, __B, 170);
70 __m256i test_mm256_mpsadbw_epu8(__m256i __A, __m256i __B) {
71 // CHECK-LABEL: @test_mm256_mpsadbw_epu8
72 // CHECK: @llvm.x86.avx2.mpsadbw
73 return _mm256_mpsadbw_epu8(__A, __B, 170);
76 __m256i test_mm256_mask_mpsadbw_epu8(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) {
77 // CHECK-LABEL: @test_mm256_mask_mpsadbw_epu8
78 // CHECK: @llvm.x86.avx2.mpsadbw
79 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
80 return _mm256_mask_mpsadbw_epu8(__W, __U, __A, __B, 170);
83 __m256i test_mm256_maskz_mpsadbw_epu8(__mmask16 __U, __m256i __A, __m256i __B) {
84 // CHECK-LABEL: @test_mm256_maskz_mpsadbw_epu8
85 // CHECK: @llvm.x86.avx2.mpsadbw
86 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
87 return _mm256_maskz_mpsadbw_epu8(__U, __A, __B, 170);
90 // VNNI INT8
91 __m128i test_mm_mask_dpbssd_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
92 // CHECK-LABEL: @test_mm_mask_dpbssd_epi32
93 // CHECK: @llvm.x86.avx2.vpdpbssd.128
94 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
95 return _mm_mask_dpbssd_epi32(__W, __U, __A, __B);
98 __m128i test_mm_maskz_dpbssd_epi32(__mmask8 __U, __m128i __W, __m128i __A, __m128i __B) {
99 // CHECK-LABEL: @test_mm_maskz_dpbssd_epi32
100 // CHECK: @llvm.x86.avx2.vpdpbssd.128
101 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
102 return _mm_maskz_dpbssd_epi32(__U, __W, __A, __B);
105 __m128i test_mm_mask_dpbssds_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
106 // CHECK-LABEL: @test_mm_mask_dpbssds_epi32
107 // CHECK: @llvm.x86.avx2.vpdpbssds.128
108 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
109 return _mm_mask_dpbssds_epi32(__W, __U, __A, __B);
112 __m128i test_mm_maskz_dpbssds_epi32(__mmask8 __U, __m128i __W, __m128i __A, __m128i __B) {
113 // CHECK-LABEL: @test_mm_maskz_dpbssds_epi32
114 // CHECK: @llvm.x86.avx2.vpdpbssds.128
115 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
116 return _mm_maskz_dpbssds_epi32(__U, __W, __A, __B);
119 __m128i test_mm_mask_dpbsud_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
120 // CHECK-LABEL: @test_mm_mask_dpbsud_epi32
121 // CHECK: @llvm.x86.avx2.vpdpbsud.128
122 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
123 return _mm_mask_dpbsud_epi32(__W, __U, __A, __B);
126 __m128i test_mm_maskz_dpbsud_epi32(__mmask8 __U, __m128i __W, __m128i __A, __m128i __B) {
127 // CHECK-LABEL: @test_mm_maskz_dpbsud_epi32
128 // CHECK: @llvm.x86.avx2.vpdpbsud.128
129 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
130 return _mm_maskz_dpbsud_epi32(__U, __W, __A, __B);
133 __m128i test_mm_mask_dpbsuds_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
134 // CHECK-LABEL: @test_mm_mask_dpbsuds_epi32
135 // CHECK: @llvm.x86.avx2.vpdpbsuds.128
136 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
137 return _mm_mask_dpbsuds_epi32(__W, __U, __A, __B);
140 __m128i test_mm_maskz_dpbsuds_epi32(__mmask8 __U, __m128i __W, __m128i __A, __m128i __B) {
141 // CHECK-LABEL: @test_mm_maskz_dpbsuds_epi32
142 // CHECK: @llvm.x86.avx2.vpdpbsuds.128
143 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
144 return _mm_maskz_dpbsuds_epi32(__U, __W, __A, __B);
147 __m128i test_mm_mask_dpbuud_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
148 // CHECK-LABEL: @test_mm_mask_dpbuud_epi32
149 // CHECK: @llvm.x86.avx2.vpdpbuud.128
150 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
151 return _mm_mask_dpbuud_epi32(__W, __U, __A, __B);
154 __m128i test_mm_maskz_dpbuud_epi32(__mmask8 __U, __m128i __W, __m128i __A, __m128i __B) {
155 // CHECK-LABEL: @test_mm_maskz_dpbuud_epi32
156 // CHECK: @llvm.x86.avx2.vpdpbuud.128
157 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
158 return _mm_maskz_dpbuud_epi32(__U, __W, __A, __B);
161 __m128i test_mm_mask_dpbuuds_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) {
162 // CHECK-LABEL: @test_mm_mask_dpbuuds_epi32
163 // CHECK: @llvm.x86.avx2.vpdpbuuds.128
164 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
165 return _mm_mask_dpbuuds_epi32(__W, __U, __A, __B);
168 __m128i test_mm_maskz_dpbuuds_epi32(__mmask8 __U, __m128i __W, __m128i __A, __m128i __B) {
169 // CHECK-LABEL: @test_mm_maskz_dpbuuds_epi32
170 // CHECK: @llvm.x86.avx2.vpdpbuuds.128
171 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
172 return _mm_maskz_dpbuuds_epi32(__U, __W, __A, __B);
175 __m256i test_mm256_mask_dpbssd_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
176 // CHECK-LABEL: @test_mm256_mask_dpbssd_epi32
177 // CHECK: @llvm.x86.avx2.vpdpbssd.256
178 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
179 return _mm256_mask_dpbssd_epi32(__W, __U, __A, __B);
182 __m256i test_mm256_maskz_dpbssd_epi32(__mmask8 __U, __m256i __W, __m256i __A, __m256i __B) {
183 // CHECK-LABEL: @test_mm256_maskz_dpbssd_epi32
184 // CHECK: @llvm.x86.avx2.vpdpbssd.256
185 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
186 return _mm256_maskz_dpbssd_epi32(__U, __W, __A, __B);
189 __m256i test_mm256_mask_dpbssds_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
190 // CHECK-LABEL: @test_mm256_mask_dpbssds_epi32
191 // CHECK: @llvm.x86.avx2.vpdpbssds.256
192 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
193 return _mm256_mask_dpbssds_epi32(__W, __U, __A, __B);
196 __m256i test_mm256_maskz_dpbssds_epi32(__mmask8 __U, __m256i __W, __m256i __A, __m256i __B) {
197 // CHECK-LABEL: @test_mm256_maskz_dpbssds_epi32
198 // CHECK: @llvm.x86.avx2.vpdpbssds.256
199 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
200 return _mm256_maskz_dpbssds_epi32(__U, __W, __A, __B);
203 __m256i test_mm256_mask_dpbsud_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
204 // CHECK-LABEL: @test_mm256_mask_dpbsud_epi32
205 // CHECK: @llvm.x86.avx2.vpdpbsud.256
206 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
207 return _mm256_mask_dpbsud_epi32(__W, __U, __A, __B);
210 __m256i test_mm256_maskz_dpbsud_epi32(__mmask8 __U, __m256i __W, __m256i __A, __m256i __B) {
211 // CHECK-LABEL: @test_mm256_maskz_dpbsud_epi32
212 // CHECK: @llvm.x86.avx2.vpdpbsud.256
213 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
214 return _mm256_maskz_dpbsud_epi32(__U, __W, __A, __B);
217 __m256i test_mm256_mask_dpbsuds_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
218 // CHECK-LABEL: @test_mm256_mask_dpbsuds_epi32
219 // CHECK: @llvm.x86.avx2.vpdpbsuds.256
220 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
221 return _mm256_mask_dpbsuds_epi32(__W, __U, __A, __B);
224 __m256i test_mm256_maskz_dpbsuds_epi32(__mmask8 __U, __m256i __W, __m256i __A, __m256i __B) {
225 // CHECK-LABEL: @test_mm256_maskz_dpbsuds_epi32
226 // CHECK: @llvm.x86.avx2.vpdpbsuds.256
227 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
228 return _mm256_maskz_dpbsuds_epi32(__U, __W, __A, __B);
231 __m256i test_mm256_mask_dpbuud_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
232 // CHECK-LABEL: @test_mm256_mask_dpbuud_epi32
233 // CHECK: @llvm.x86.avx2.vpdpbuud.256
234 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
235 return _mm256_mask_dpbuud_epi32(__W, __U, __A, __B);
238 __m256i test_mm256_maskz_dpbuud_epi32(__mmask8 __U, __m256i __W, __m256i __A, __m256i __B) {
239 // CHECK-LABEL: @test_mm256_maskz_dpbuud_epi32
240 // CHECK: @llvm.x86.avx2.vpdpbuud.256
241 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
242 return _mm256_maskz_dpbuud_epi32(__U, __W, __A, __B);
245 __m256i test_mm256_mask_dpbuuds_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) {
246 // CHECK-LABEL: @test_mm256_mask_dpbuuds_epi32
247 // CHECK: @llvm.x86.avx2.vpdpbuuds.256
248 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
249 return _mm256_mask_dpbuuds_epi32(__W, __U, __A, __B);
252 __m256i test_mm256_maskz_dpbuuds_epi32(__mmask8 __U, __m256i __W, __m256i __A, __m256i __B) {
253 // CHECK-LABEL: @test_mm256_maskz_dpbuuds_epi32
254 // CHECK: @llvm.x86.avx2.vpdpbuuds.256
255 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
256 return _mm256_maskz_dpbuuds_epi32(__U, __W, __A, __B);
259 // VNNI INT16
260 __m128i test_mm_mask_dpwsud_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
261 // CHECK-LABEL: @test_mm_mask_dpwsud_epi32(
262 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwsud.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
263 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
264 return _mm_mask_dpwsud_epi32(__A, __B, __C, __D);
267 __m128i test_mm_maskz_dpwsud_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
268 // CHECK-LABEL: @test_mm_maskz_dpwsud_epi32(
269 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwsud.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
270 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
271 return _mm_maskz_dpwsud_epi32(__A, __B, __C, __D);
274 __m256i test_mm256_mask_dpwsud_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
275 // CHECK-LABEL: @test_mm256_mask_dpwsud_epi32(
276 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwsud.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
277 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
278 return _mm256_mask_dpwsud_epi32(__A, __B, __C, __D);
281 __m256i test_mm256_maskz_dpwsud_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
282 // CHECK-LABEL: @test_mm256_maskz_dpwsud_epi32(
283 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwsud.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
284 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
285 return _mm256_maskz_dpwsud_epi32(__A, __B, __C, __D);
288 __m128i test_mm_mask_dpwsuds_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
289 // CHECK-LABEL: @test_mm_mask_dpwsuds_epi32(
290 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwsuds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
291 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
292 return _mm_mask_dpwsuds_epi32(__A, __B, __C, __D);
295 __m128i test_mm_maskz_dpwsuds_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
296 // CHECK-LABEL: @test_mm_maskz_dpwsuds_epi32(
297 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwsuds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
298 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
299 return _mm_maskz_dpwsuds_epi32(__A, __B, __C, __D);
302 __m256i test_mm256_mask_dpwsuds_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
303 // CHECK-LABEL: @test_mm256_mask_dpwsuds_epi32(
304 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwsuds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
305 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
306 return _mm256_mask_dpwsuds_epi32(__A, __B, __C, __D);
309 __m256i test_mm256_maskz_dpwsuds_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
310 // CHECK-LABEL: @test_mm256_maskz_dpwsuds_epi32(
311 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwsuds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
312 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
313 return _mm256_maskz_dpwsuds_epi32(__A, __B, __C, __D);
316 __m128i test_mm_mask_dpwusd_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
317 // CHECK-LABEL: @test_mm_mask_dpwusd_epi32(
318 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwusd.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
319 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
320 return _mm_mask_dpwusd_epi32(__A, __B, __C, __D);
323 __m128i test_mm_maskz_dpwusd_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
324 // CHECK-LABEL: @test_mm_maskz_dpwusd_epi32(
325 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwusd.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
326 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
327 return _mm_maskz_dpwusd_epi32(__A, __B, __C, __D);
330 __m256i test_mm256_mask_dpwusd_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
331 // CHECK-LABEL: @test_mm256_mask_dpwusd_epi32(
332 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwusd.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
333 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
334 return _mm256_mask_dpwusd_epi32(__A, __B, __C, __D);
337 __m256i test_mm256_maskz_dpwusd_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
338 // CHECK-LABEL: @test_mm256_maskz_dpwusd_epi32(
339 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwusd.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
340 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
341 return _mm256_maskz_dpwusd_epi32(__A, __B, __C, __D);
344 __m128i test_mm_mask_dpwusds_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
345 // CHECK-LABEL: @test_mm_mask_dpwusds_epi32(
346 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwusds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
347 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
348 return _mm_mask_dpwusds_epi32(__A, __B, __C, __D);
351 __m128i test_mm_maskz_dpwusds_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
352 // CHECK-LABEL: @test_mm_maskz_dpwusds_epi32(
353 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwusds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
354 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
355 return _mm_maskz_dpwusds_epi32(__A, __B, __C, __D);
358 __m256i test_mm256_mask_dpwusds_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
359 // CHECK-LABEL: @test_mm256_mask_dpwusds_epi32(
360 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwusds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
361 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
362 return _mm256_mask_dpwusds_epi32(__A, __B, __C, __D);
365 __m256i test_mm256_maskz_dpwusds_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
366 // CHECK-LABEL: @test_mm256_maskz_dpwusds_epi32(
367 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwusds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
368 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
369 return _mm256_maskz_dpwusds_epi32(__A, __B, __C, __D);
372 __m128i test_mm_mask_dpwuud_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
373 // CHECK-LABEL: @test_mm_mask_dpwuud_epi32(
374 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwuud.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
375 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
376 return _mm_mask_dpwuud_epi32(__A, __B, __C, __D);
379 __m128i test_mm_maskz_dpwuud_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
380 // CHECK-LABEL: @test_mm_maskz_dpwuud_epi32(
381 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwuud.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
382 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
383 return _mm_maskz_dpwuud_epi32(__A, __B, __C, __D);
386 __m256i test_mm256_mask_dpwuud_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
387 // CHECK-LABEL: @test_mm256_mask_dpwuud_epi32(
388 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwuud.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
389 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
390 return _mm256_mask_dpwuud_epi32(__A, __B, __C, __D);
393 __m256i test_mm256_maskz_dpwuud_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
394 // CHECK-LABEL: @test_mm256_maskz_dpwuud_epi32(
395 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwuud.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
396 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
397 return _mm256_maskz_dpwuud_epi32(__A, __B, __C, __D);
400 __m128i test_mm_mask_dpwuuds_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
401 // CHECK-LABEL: @test_mm_mask_dpwuuds_epi32(
402 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwuuds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
403 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
404 return _mm_mask_dpwuuds_epi32(__A, __B, __C, __D);
407 __m128i test_mm_maskz_dpwuuds_epi32(__m128i __A, __mmask8 __B, __m128i __C, __m128i __D) {
408 // CHECK-LABEL: @test_mm_maskz_dpwuuds_epi32(
409 // CHECK: call <4 x i32> @llvm.x86.avx2.vpdpwuuds.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}})
410 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
411 return _mm_maskz_dpwuuds_epi32(__A, __B, __C, __D);
414 __m256i test_mm256_mask_dpwuuds_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
415 // CHECK-LABEL: @test_mm256_mask_dpwuuds_epi32(
416 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwuuds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
417 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
418 return _mm256_mask_dpwuuds_epi32(__A, __B, __C, __D);
421 __m256i test_mm256_maskz_dpwuuds_epi32(__m256i __A, __mmask8 __B, __m256i __C, __m256i __D) {
422 // CHECK-LABEL: @test_mm256_maskz_dpwuuds_epi32(
423 // CHECK: call <8 x i32> @llvm.x86.avx2.vpdpwuuds.256(<8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}})
424 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
425 return _mm256_maskz_dpwuuds_epi32(__A, __B, __C, __D);
428 // YMM Rounding
429 __m256d test_mm256_add_round_pd(__m256d __A, __m256d __B) {
430 // CHECK-LABEL: @test_mm256_add_round_pd
431 // CHECK: @llvm.x86.avx10.vaddpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 11)
432 return _mm256_add_round_pd(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
435 __m256d test_mm256_mask_add_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
436 // CHECK-LABEL: @test_mm256_mask_add_round_pd
437 // CHECK: @llvm.x86.avx10.vaddpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 10)
438 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
439 return _mm256_mask_add_round_pd(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
442 __m256d test_mm256_maskz_add_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
443 // CHECK-LABEL: @test_mm256_maskz_add_round_pd
444 // CHECK: @llvm.x86.avx10.vaddpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 9)
445 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
446 return _mm256_maskz_add_round_pd(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
449 __m256h test_mm256_add_round_ph(__m256h __A, __m256h __B) {
450 // CHECK-LABEL: @test_mm256_add_round_ph
451 // CHECK: @llvm.x86.avx10.vaddph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 11)
452 return _mm256_add_round_ph(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
455 __m256h test_mm256_mask_add_round_ph(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
456 // CHECK-LABEL: @test_mm256_mask_add_round_ph
457 // CHECK: @llvm.x86.avx10.vaddph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 10)
458 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
459 return _mm256_mask_add_round_ph(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
462 __m256h test_mm256_maskz_add_round_ph(__mmask8 __U, __m256h __A, __m256h __B) {
463 // CHECK-LABEL: @test_mm256_maskz_add_round_ph
464 // CHECK: @llvm.x86.avx10.vaddph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 9)
465 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
466 return _mm256_maskz_add_round_ph(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
469 __m256 test_mm256_add_round_ps(__m256 __A, __m256 __B) {
470 // CHECK-LABEL: @test_mm256_add_round_ps
471 // CHECK: @llvm.x86.avx10.vaddps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 11)
472 return _mm256_add_round_ps(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
475 __m256 test_mm256_mask_add_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
476 // CHECK-LABEL: @test_mm256_mask_add_round_ps
477 // CHECK: @llvm.x86.avx10.vaddps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 10)
478 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
479 return _mm256_mask_add_round_ps(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
482 __m256 test_mm256_maskz_add_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
483 // CHECK-LABEL: @test_mm256_maskz_add_round_ps
484 // CHECK: @llvm.x86.avx10.vaddps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 9)
485 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
486 return _mm256_maskz_add_round_ps(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
489 __mmask8 test_mm256_cmp_round_pd_mask(__m256d a, __m256d b) {
490 // CHECK-LABEL: @test_mm256_cmp_round_pd_mask
491 // CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
492 return _mm256_cmp_round_pd_mask(a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);
495 __mmask8 test_mm256_mask_cmp_round_pd_mask(__mmask8 m, __m256d a, __m256d b) {
496 // CHECK-LABEL: @test_mm256_mask_cmp_round_pd_mask
497 // CHECK: [[CMP:%.*]] = fcmp oeq <4 x double> %{{.*}}, %{{.*}}
498 // CHECK: and <4 x i1> [[CMP]], {{.*}}
499 return _mm256_mask_cmp_round_pd_mask(m, a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);
502 __mmask16 test_mm256_cmp_round_ph_mask(__m256h a, __m256h b) {
503 // CHECK-LABEL: @test_mm256_cmp_round_ph_mask
504 // CHECK: fcmp oeq <16 x half> %{{.*}}, %{{.*}}
505 return _mm256_cmp_round_ph_mask(a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);
508 __mmask16 test_mm256_mask_cmp_round_ph_mask(__mmask16 m, __m256h a, __m256h b) {
509 // CHECK-LABEL: @test_mm256_mask_cmp_round_ph_mask
510 // CHECK: [[CMP:%.*]] = fcmp oeq <16 x half> %{{.*}}, %{{.*}}
511 // CHECK: and <16 x i1> [[CMP]], {{.*}}
512 return _mm256_mask_cmp_round_ph_mask(m, a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);
515 __mmask8 test_mm256_cmp_round_ps_mask(__m256 a, __m256 b) {
516 // CHECK-LABEL: @test_mm256_cmp_round_ps_mask
517 // CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
518 return _mm256_cmp_round_ps_mask(a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);
521 __mmask8 test_mm256_mask_cmp_round_ps_mask(__mmask8 m, __m256 a, __m256 b) {
522 // CHECK-LABEL: @test_mm256_mask_cmp_round_ps_mask
523 // CHECK: [[CMP:%.*]] = fcmp oeq <8 x float> %{{.*}}, %{{.*}}
524 // CHECK: and <8 x i1> [[CMP]], {{.*}}
525 return _mm256_mask_cmp_round_ps_mask(m, a, b, _CMP_EQ_OQ, _MM_FROUND_NO_EXC);
528 __m128h test_mm256_cvt_roundepi32_ph(__m256i A) {
529 // CHECK-LABEL: test_mm256_cvt_roundepi32_ph
530 // CHECK: @llvm.x86.avx512.sitofp.round.v8f16.v8i32(<8 x i32> %{{.*}}, i32 11)
531 return _mm256_cvt_roundepi32_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
534 __m128h test_mm256_mask_cvt_roundepi32_ph(__m128h A, __mmask8 B, __m256i C) {
535 // CHECK-LABEL: test_mm256_mask_cvt_roundepi32_ph
536 // CHECK: @llvm.x86.avx512.sitofp.round.v8f16.v8i32(<8 x i32> %{{.*}}, i32 10)
537 // CHECK: select <8 x i1> %{{.*}}, <8 x half> %{{.*}}, <8 x half> %{{.*}}
538 return _mm256_mask_cvt_roundepi32_ph(A, B, C, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
541 __m128h test_mm256_maskz_cvt_roundepi32_ph(__mmask8 A, __m256i B) {
542 // CHECK-LABEL: test_mm256_maskz_cvt_roundepi32_ph
543 // CHECK: @llvm.x86.avx512.sitofp.round.v8f16.v8i32(<8 x i32> %{{.*}}, i32 9)
544 // CHECK: select <8 x i1> %{{.*}}, <8 x half> %{{.*}}, <8 x half> %{{.*}}
545 return _mm256_maskz_cvt_roundepi32_ph(A, B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
548 __m256 test_mm256_cvt_roundepi32_ps(__m256i __A)
550 // CHECK-LABEL: @test_mm256_cvt_roundepi32_ps
551 // CHECK: @llvm.x86.avx512.sitofp.round.v8f32.v8i32
552 return _mm256_cvt_roundepi32_ps(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
555 __m256 test_mm256_mask_cvt_roundepi32_ps(__m256 __W, __mmask8 __U, __m256i __A)
557 // CHECK-LABEL: @test_mm256_mask_cvt_roundepi32_ps
558 // CHECK: @llvm.x86.avx512.sitofp.round.v8f32.v8i32
559 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
560 return _mm256_mask_cvt_roundepi32_ps(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
563 __m256 test_mm256_maskz_cvt_roundepi32_ps(__mmask8 __U, __m256i __A)
565 // CHECK-LABEL: @test_mm256_maskz_cvt_roundepi32_ps
566 // CHECK: @llvm.x86.avx512.sitofp.round.v8f32.v8i32
567 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
568 return _mm256_maskz_cvt_roundepi32_ps(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
571 __m128i test_mm256_cvt_roundpd_epi32(__m256d A)
573 // CHECK-LABEL: @test_mm256_cvt_roundpd_epi32
574 // CHECK: @llvm.x86.avx10.mask.vcvtpd2dq256
575 return _mm256_cvt_roundpd_epi32(A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
578 __m128i test_mm256_mask_cvt_roundpd_epi32(__m128i W,__mmask8 U,__m256d A)
580 // CHECK-LABEL: @test_mm256_mask_cvt_roundpd_epi32
581 // CHECK: @llvm.x86.avx10.mask.vcvtpd2dq256
582 return _mm256_mask_cvt_roundpd_epi32(W, U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
585 __m128i test_mm256_maskz_cvt_roundpd_epi32(__mmask8 U, __m256d A)
587 // CHECK-LABEL: @test_mm256_maskz_cvt_roundpd_epi32
588 // CHECK: @llvm.x86.avx10.mask.vcvtpd2dq256
589 return _mm256_maskz_cvt_roundpd_epi32(U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
592 __m128h test_mm256_cvt_roundpd_ph(__m256d A) {
593 // CHECK-LABEL: test_mm256_cvt_roundpd_ph
594 // CHECK: @llvm.x86.avx10.mask.vcvtpd2ph256
595 return _mm256_cvt_roundpd_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
598 __m128h test_mm256_mask_cvt_roundpd_ph(__m128h A, __mmask8 B, __m256d C) {
599 // CHECK-LABEL: test_mm256_mask_cvt_roundpd_ph
600 // CHECK: @llvm.x86.avx10.mask.vcvtpd2ph256
601 return _mm256_mask_cvt_roundpd_ph(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
604 __m128h test_mm256_maskz_cvt_roundpd_ph(__mmask8 A, __m256d B) {
605 // CHECK-LABEL: test_mm256_maskz_cvt_roundpd_ph
606 // CHECK: @llvm.x86.avx10.mask.vcvtpd2ph256
607 return _mm256_maskz_cvt_roundpd_ph(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
610 __m128 test_mm256_cvt_roundpd_ps(__m256d A)
612 // CHECK-LABEL: @test_mm256_cvt_roundpd_ps
613 // CHECK: @llvm.x86.avx10.mask.vcvtpd2ps256
614 return _mm256_cvt_roundpd_ps(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
617 __m128 test_mm256_mask_cvt_roundpd_ps(__m128 W, __mmask8 U,__m256d A)
619 // CHECK-LABEL: @test_mm256_mask_cvt_roundpd_ps
620 // CHECK: @llvm.x86.avx10.mask.vcvtpd2ps256
621 return _mm256_mask_cvt_roundpd_ps(W, U, A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
624 __m128 test_mm256_maskz_cvt_roundpd_ps(__mmask8 U, __m256d A)
626 // CHECK-LABEL: @test_mm256_maskz_cvt_roundpd_ps
627 // CHECK: @llvm.x86.avx10.mask.vcvtpd2ps256
628 return _mm256_maskz_cvt_roundpd_ps(U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
631 __m256i test_mm256_cvt_roundpd_epi64(__m256d __A) {
632 // CHECK-LABEL: @test_mm256_cvt_roundpd_epi64
633 // CHECK: @llvm.x86.avx10.mask.vcvtpd2qq256
634 return _mm256_cvt_roundpd_epi64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
637 __m256i test_mm256_mask_cvt_roundpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
638 // CHECK-LABEL: @test_mm256_mask_cvt_roundpd_epi64
639 // CHECK: @llvm.x86.avx10.mask.vcvtpd2qq256
640 return _mm256_mask_cvt_roundpd_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
643 __m256i test_mm256_maskz_cvt_roundpd_epi64(__mmask8 __U, __m256d __A) {
644 // CHECK-LABEL: @test_mm256_maskz_cvt_roundpd_epi64
645 // CHECK: @llvm.x86.avx10.mask.vcvtpd2qq256
646 return _mm256_maskz_cvt_roundpd_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
649 __m128i test_mm256_cvt_roundpd_epu32(__m256d A)
651 // CHECK-LABEL: @test_mm256_cvt_roundpd_epu32
652 // CHECK: @llvm.x86.avx10.mask.vcvtpd2udq256
653 return _mm256_cvt_roundpd_epu32(A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
656 __m128i test_mm256_mask_cvt_roundpd_epu32(__m128i W,__mmask8 U,__m256d A)
658 // CHECK-LABEL: @test_mm256_mask_cvt_roundpd_epu32
659 // CHECK: @llvm.x86.avx10.mask.vcvtpd2udq256
660 return _mm256_mask_cvt_roundpd_epu32(W, U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
663 __m128i test_mm256_maskz_cvt_roundpd_epu32(__mmask8 U, __m256d A)
665 // CHECK-LABEL: @test_mm256_maskz_cvt_roundpd_epu32
666 // CHECK: @llvm.x86.avx10.mask.vcvtpd2udq256
667 return _mm256_maskz_cvt_roundpd_epu32(U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
670 __m256i test_mm256_cvt_roundpd_epu64(__m256d __A) {
671 // CHECK-LABEL: @test_mm256_cvt_roundpd_epu64
672 // CHECK: @llvm.x86.avx10.mask.vcvtpd2uqq256
673 return _mm256_cvt_roundpd_epu64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
676 __m256i test_mm256_mask_cvt_roundpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
677 // CHECK-LABEL: @test_mm256_mask_cvt_roundpd_epu64
678 // CHECK: @llvm.x86.avx10.mask.vcvtpd2uqq256
679 return _mm256_mask_cvt_roundpd_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
682 __m256i test_mm256_maskz_cvt_roundpd_epu64(__mmask8 __U, __m256d __A) {
683 // CHECK-LABEL: @test_mm256_maskz_cvt_roundpd_epu64
684 // CHECK: @llvm.x86.avx10.mask.vcvtpd2uqq256
685 return _mm256_maskz_cvt_roundpd_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
688 __m256i test_mm256_cvt_roundph_epi32(__m128h A) {
689 // CHECK-LABEL: test_mm256_cvt_roundph_epi32
690 // CHECK: @llvm.x86.avx10.mask.vcvtph2dq256
691 return _mm256_cvt_roundph_epi32(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
694 __m256i test_mm256_mask_cvt_roundph_epi32(__m256i A, __mmask16 B, __m128h C) {
695 // CHECK-LABEL: test_mm256_mask_cvt_roundph_epi32
696 // CHECK: @llvm.x86.avx10.mask.vcvtph2dq256
697 return _mm256_mask_cvt_roundph_epi32(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
700 __m256i test_mm256_maskz_cvt_roundph_epi32(__mmask16 A, __m128h B) {
701 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_epi32
702 // CHECK: @llvm.x86.avx10.mask.vcvtph2dq256
703 return _mm256_maskz_cvt_roundph_epi32(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
706 __m256d test_mm256_cvt_roundph_pd(__m128h A) {
707 // CHECK-LABEL: test_mm256_cvt_roundph_pd
708 // CHECK: @llvm.x86.avx10.mask.vcvtph2pd256
709 return _mm256_cvt_roundph_pd(A, _MM_FROUND_NO_EXC);
712 __m256d test_mm256_mask_cvt_roundph_pd(__m256d A, __mmask8 B, __m128h C) {
713 // CHECK-LABEL: test_mm256_mask_cvt_roundph_pd
714 // CHECK: @llvm.x86.avx10.mask.vcvtph2pd256
715 return _mm256_mask_cvt_roundph_pd(A, B, C, _MM_FROUND_NO_EXC);
718 __m256d test_mm256_maskz_cvt_roundph_pd(__mmask8 A, __m128h B) {
719 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_pd
720 // CHECK: @llvm.x86.avx10.mask.vcvtph2pd256
721 return _mm256_maskz_cvt_roundph_pd(A, B, _MM_FROUND_NO_EXC);
724 __m256 test_mm256_cvtx_roundph_ps(__m128h A) {
725 // CHECK-LABEL: test_mm256_cvtx_roundph_ps
726 // CHECK: @llvm.x86.avx10.mask.vcvtph2psx256
727 return _mm256_cvtx_roundph_ps(A, _MM_FROUND_NO_EXC);
730 __m256 test_mm256_mask_cvtx_roundph_ps(__m256 A, __mmask16 B, __m128h C) {
731 // CHECK-LABEL: test_mm256_mask_cvtx_roundph_ps
732 // CHECK: @llvm.x86.avx10.mask.vcvtph2psx256
733 return _mm256_mask_cvtx_roundph_ps(A, B, C, _MM_FROUND_NO_EXC);
736 __m256 test_mm256_maskz_cvtx_roundph_ps(__mmask16 A, __m128h B) {
737 // CHECK-LABEL: test_mm256_maskz_cvtx_roundph_ps
738 // CHECK: @llvm.x86.avx10.mask.vcvtph2psx256
739 return _mm256_maskz_cvtx_roundph_ps(A, B, _MM_FROUND_NO_EXC);
742 __m256i test_mm256_cvt_roundph_epi64(__m128h A) {
743 // CHECK-LABEL: test_mm256_cvt_roundph_epi64
744 // CHECK: @llvm.x86.avx10.mask.vcvtph2qq256
745 return _mm256_cvt_roundph_epi64(A, _MM_FROUND_NO_EXC);
748 __m256i test_mm256_mask_cvt_roundph_epi64(__m256i A, __mmask8 B, __m128h C) {
749 // CHECK-LABEL: test_mm256_mask_cvt_roundph_epi64
750 // CHECK: @llvm.x86.avx10.mask.vcvtph2qq256
751 return _mm256_mask_cvt_roundph_epi64(A, B, C, _MM_FROUND_NO_EXC);
754 __m256i test_mm256_maskz_cvt_roundph_epi64(__mmask8 A, __m128h B) {
755 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_epi64
756 // CHECK: @llvm.x86.avx10.mask.vcvtph2qq256
757 return _mm256_maskz_cvt_roundph_epi64(A, B, _MM_FROUND_NO_EXC);
760 __m256i test_mm256_cvt_roundph_epu32(__m128h A) {
761 // CHECK-LABEL: test_mm256_cvt_roundph_epu32
762 // CHECK: @llvm.x86.avx10.mask.vcvtph2udq256
763 return _mm256_cvt_roundph_epu32(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
766 __m256i test_mm256_mask_cvt_roundph_epu32(__m256i A, __mmask16 B, __m128h C) {
767 // CHECK-LABEL: test_mm256_mask_cvt_roundph_epu32
768 // CHECK: @llvm.x86.avx10.mask.vcvtph2udq256
769 return _mm256_mask_cvt_roundph_epu32(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
772 __m256i test_mm256_maskz_cvt_roundph_epu32(__mmask16 A, __m128h B) {
773 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_epu32
774 // CHECK: @llvm.x86.avx10.mask.vcvtph2udq256
775 return _mm256_maskz_cvt_roundph_epu32(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
778 __m256i test_mm256_cvt_roundph_epu64(__m128h A) {
779 // CHECK-LABEL: test_mm256_cvt_roundph_epu64
780 // CHECK: @llvm.x86.avx10.mask.vcvtph2uqq256
781 return _mm256_cvt_roundph_epu64(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
784 __m256i test_mm256_mask_cvt_roundph_epu64(__m256i A, __mmask8 B, __m128h C) {
785 // CHECK-LABEL: test_mm256_mask_cvt_roundph_epu64
786 // CHECK: @llvm.x86.avx10.mask.vcvtph2uqq256
787 return _mm256_mask_cvt_roundph_epu64(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
790 __m256i test_mm256_maskz_cvt_roundph_epu64(__mmask8 A, __m128h B) {
791 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_epu64
792 // CHECK: @llvm.x86.avx10.mask.vcvtph2uqq256
793 return _mm256_maskz_cvt_roundph_epu64(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
796 __m256i test_mm256_cvt_roundph_epu16(__m256h A) {
797 // CHECK-LABEL: test_mm256_cvt_roundph_epu16
798 // CHECK: @llvm.x86.avx10.mask.vcvtph2uw256
799 return _mm256_cvt_roundph_epu16(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
802 __m256i test_mm256_mask_cvt_roundph_epu16(__m256i A, __mmask32 B, __m256h C) {
803 // CHECK-LABEL: test_mm256_mask_cvt_roundph_epu16
804 // CHECK: @llvm.x86.avx10.mask.vcvtph2uw256
805 return _mm256_mask_cvt_roundph_epu16(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
808 __m256i test_mm256_maskz_cvt_roundph_epu16(__mmask32 A, __m256h B) {
809 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_epu16
810 // CHECK: @llvm.x86.avx10.mask.vcvtph2uw256
811 return _mm256_maskz_cvt_roundph_epu16(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
814 __m256i test_mm256_cvt_roundph_epi16(__m256h A) {
815 // CHECK-LABEL: test_mm256_cvt_roundph_epi16
816 // CHECK: @llvm.x86.avx10.mask.vcvtph2w256
817 return _mm256_cvt_roundph_epi16(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
820 __m256i test_mm256_mask_cvt_roundph_epi16(__m256i A, __mmask32 B, __m256h C) {
821 // CHECK-LABEL: test_mm256_mask_cvt_roundph_epi16
822 // CHECK: @llvm.x86.avx10.mask.vcvtph2w256
823 return _mm256_mask_cvt_roundph_epi16(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
826 __m256i test_mm256_maskz_cvt_roundph_epi16(__mmask32 A, __m256h B) {
827 // CHECK-LABEL: test_mm256_maskz_cvt_roundph_epi16
828 // CHECK: @llvm.x86.avx10.mask.vcvtph2w256
829 return _mm256_maskz_cvt_roundph_epi16(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
832 __m256i test_mm256_cvt_roundps_epi32(__m256 __A)
834 // CHECK-LABEL: @test_mm256_cvt_roundps_epi32
835 // CHECK: @llvm.x86.avx10.mask.vcvtps2dq256
836 return _mm256_cvt_roundps_epi32(__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
839 __m256i test_mm256_mask_cvt_roundps_epi32(__m256i __W,__mmask16 __U,__m256 __A)
841 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_epi32
842 // CHECK: @llvm.x86.avx10.mask.vcvtps2dq256
843 return _mm256_mask_cvt_roundps_epi32(__W,__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
846 __m256i test_mm256_maskz_cvt_roundps_epi32(__mmask16 __U, __m256 __A)
848 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_epi32
849 // CHECK: @llvm.x86.avx10.mask.vcvtps2dq256
850 return _mm256_maskz_cvt_roundps_epi32(__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
853 __m256d test_mm256_cvt_roundps_pd(__m128 __A) {
854 // CHECK-LABEL: @test_mm256_cvt_roundps_pd
855 // CHECK: @llvm.x86.avx10.mask.vcvtps2pd256
856 return _mm256_cvt_roundps_pd(__A, _MM_FROUND_NO_EXC);
859 __m256d test_mm256_mask_cvt_roundps_pd(__m256d __W, __mmask8 __U, __m128 __A) {
860 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_pd
861 // CHECK: @llvm.x86.avx10.mask.vcvtps2pd256
862 return _mm256_mask_cvt_roundps_pd(__W, __U, __A, _MM_FROUND_NO_EXC);
865 __m256d test_mm256_maskz_cvt_roundps_pd(__mmask8 __U, __m128 __A) {
866 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_pd
867 // CHECK: @llvm.x86.avx10.mask.vcvtps2pd256
868 return _mm256_maskz_cvt_roundps_pd(__U, __A, _MM_FROUND_NO_EXC);
871 // FIXME: We may change to @llvm.x86.avx10.mask.vcvtps2ph256 in future.
872 __m128i test_mm256_cvt_roundps_ph(__m256 __A)
874 // CHECK-LABEL: @test_mm256_cvt_roundps_ph
875 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
876 return _mm256_cvt_roundps_ph(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
879 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W , __mmask16 __U, __m256 __A)
881 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph
882 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
883 return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
886 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask16 __U, __m256 __A)
888 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph
889 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256
890 return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
893 __m128h test_mm256_cvtx_roundps_ph(__m256 A) {
894 // CHECK-LABEL: test_mm256_cvtx_roundps_ph
895 // CHECK: @llvm.x86.avx10.mask.vcvtps2phx256
896 return _mm256_cvtx_roundps_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
899 __m128h test_mm256_mask_cvtx_roundps_ph(__m128h A, __mmask16 B, __m256 C) {
900 // CHECK-LABEL: test_mm256_mask_cvtx_roundps_ph
901 // CHECK: @llvm.x86.avx10.mask.vcvtps2phx256
902 return _mm256_mask_cvtx_roundps_ph(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
905 __m128h test_mm256_maskz_cvtx_roundps_ph(__mmask16 A, __m256 B) {
906 // CHECK-LABEL: test_mm256_maskz_cvtx_roundps_ph
907 // CHECK: @llvm.x86.avx10.mask.vcvtps2phx256
908 return _mm256_maskz_cvtx_roundps_ph(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
911 __m256i test_mm256_cvt_roundps_epi64(__m128 __A) {
912 // CHECK-LABEL: @test_mm256_cvt_roundps_epi64
913 // CHECK: @llvm.x86.avx10.mask.vcvtps2qq256
914 return _mm256_cvt_roundps_epi64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
917 __m256i test_mm256_mask_cvt_roundps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
918 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_epi64
919 // CHECK: @llvm.x86.avx10.mask.vcvtps2qq256
920 return _mm256_mask_cvt_roundps_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
923 __m256i test_mm256_maskz_cvt_roundps_epi64(__mmask8 __U, __m128 __A) {
924 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_epi64
925 // CHECK: @llvm.x86.avx10.mask.vcvtps2qq256
926 return _mm256_maskz_cvt_roundps_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
929 __m256i test_mm256_cvt_roundps_epu32(__m256 __A)
931 // CHECK-LABEL: @test_mm256_cvt_roundps_epu32
932 // CHECK: @llvm.x86.avx10.mask.vcvtps2udq256
933 return _mm256_cvt_roundps_epu32(__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
936 __m256i test_mm256_mask_cvt_roundps_epu32(__m256i __W,__mmask16 __U,__m256 __A)
938 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_epu32
939 // CHECK: @llvm.x86.avx10.mask.vcvtps2udq256
940 return _mm256_mask_cvt_roundps_epu32(__W,__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
943 __m256i test_mm256_maskz_cvt_roundps_epu32(__mmask16 __U,__m256 __A)
945 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_epu32
946 // CHECK: @llvm.x86.avx10.mask.vcvtps2udq256
947 return _mm256_maskz_cvt_roundps_epu32(__U,__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
950 __m256i test_mm256_cvt_roundps_epu64(__m128 __A) {
951 // CHECK-LABEL: @test_mm256_cvt_roundps_epu64
952 // CHECK: @llvm.x86.avx10.mask.vcvtps2uqq256
953 return _mm256_cvt_roundps_epu64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
956 __m256i test_mm256_mask_cvt_roundps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
957 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_epu64
958 // CHECK: @llvm.x86.avx10.mask.vcvtps2uqq256
959 return _mm256_mask_cvt_roundps_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
962 __m256i test_mm256_maskz_cvt_roundps_epu64(__mmask8 __U, __m128 __A) {
963 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_epu64
964 // CHECK: @llvm.x86.avx10.mask.vcvtps2uqq256
965 return _mm256_maskz_cvt_roundps_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
968 __m256d test__mm256_cvt_roundepi64_pd(__m256i __A) {
969 // CHECK-LABEL: @test__mm256_cvt_roundepi64_pd
970 // CHECK: @llvm.x86.avx512.sitofp.round.v4f64.v4i64
971 return _mm256_cvt_roundepi64_pd(__A, _MM_FROUND_NO_EXC);
974 __m256d test__mm256_mask_cvt_roundepi64_pd(__m256d __W, __mmask8 __U, __m256i __A) {
975 // CHECK-LABEL: @test__mm256_mask_cvt_roundepi64_pd
976 // CHECK: @llvm.x86.avx512.sitofp.round.v4f64.v4i64
977 return _mm256_mask_cvt_roundepi64_pd(__W, __U, __A, _MM_FROUND_NO_EXC);
980 __m256d test__mm256_maskz_cvt_roundepi64_pd(__mmask8 __U, __m256i __A) {
981 // CHECK-LABEL: @test__mm256_maskz_cvt_roundepi64_pd
982 // CHECK: @llvm.x86.avx512.sitofp.round.v4f64.v4i64
983 return _mm256_maskz_cvt_roundepi64_pd(__U, __A, _MM_FROUND_NO_EXC);
986 // FIXME: We may change to @llvm.x86.avx10.mask.vcvtqq2ph256 in future.
987 __m128h test_mm256_cvt_roundepi64_ph(__m256i A) {
988 // CHECK-LABEL: test_mm256_cvt_roundepi64_ph
989 // CHECK: @llvm.x86.avx512.sitofp.round.v8f16.v4i64
990 return _mm256_cvt_roundepi64_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
993 __m128h test_mm256_mask_cvt_roundepi64_ph(__m128h A, __mmask8 B, __m256i C) {
994 // CHECK-LABEL: test_mm256_mask_cvt_roundepi64_ph
995 // CHECK: @llvm.x86.avx512.sitofp.round.v8f16.v4i64
996 return _mm256_mask_cvt_roundepi64_ph(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
999 __m128h test_mm256_maskz_cvt_roundepi64_ph(__mmask8 A, __m256i B) {
1000 // CHECK-LABEL: test_mm256_maskz_cvt_roundepi64_ph
1001 // CHECK: @llvm.x86.avx512.sitofp.round.v8f16.v4i64
1002 return _mm256_maskz_cvt_roundepi64_ph(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1005 __m128 test_mm256_cvt_roundepi64_ps(__m256i __A) {
1006 // CHECK-LABEL: @test_mm256_cvt_roundepi64_ps
1007 // CHECK: @llvm.x86.avx512.sitofp.round.v4f32.v4i64
1008 return _mm256_cvt_roundepi64_ps(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1011 __m128 test_mm256_mask_cvt_roundepi64_ps(__m128 __W, __mmask8 __U, __m256i __A) {
1012 // CHECK-LABEL: @test_mm256_mask_cvt_roundepi64_ps
1013 // CHECK: @llvm.x86.avx512.sitofp.round.v4f32.v4i64
1014 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
1015 return _mm256_mask_cvt_roundepi64_ps(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1018 __m128 test_mm256_maskz_cvt_roundepi64_ps(__mmask8 __U, __m256i __A) {
1019 // CHECK-LABEL: @test_mm256_maskz_cvt_roundepi64_ps
1020 // CHECK: @llvm.x86.avx512.sitofp.round.v4f32.v4i64
1021 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
1022 return _mm256_maskz_cvt_roundepi64_ps(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1025 __m128i test_mm256_cvtt_roundpd_epi32(__m256d A)
1027 // CHECK-LABEL: @test_mm256_cvtt_roundpd_epi32
1028 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dq256
1029 return _mm256_cvtt_roundpd_epi32(A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1032 __m128i test_mm256_mask_cvtt_roundpd_epi32(__m128i W,__mmask8 U,__m256d A)
1034 // CHECK-LABEL: @test_mm256_mask_cvtt_roundpd_epi32
1035 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dq256
1036 return _mm256_mask_cvtt_roundpd_epi32(W, U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1039 __m128i test_mm256_maskz_cvtt_roundpd_epi32(__mmask8 U, __m256d A)
1041 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundpd_epi32
1042 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dq256
1043 return _mm256_maskz_cvtt_roundpd_epi32(U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1046 __m256i test_mm256_cvtt_roundpd_epi64(__m256d __A) {
1047 // CHECK-LABEL: @test_mm256_cvtt_roundpd_epi64
1048 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qq256
1049 return _mm256_cvtt_roundpd_epi64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1052 __m256i test_mm256_mask_cvtt_roundpd_epi64(__m256i __W, __mmask8 __U, __m256d __A) {
1053 // CHECK-LABEL: @test_mm256_mask_cvtt_roundpd_epi64
1054 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qq256
1055 return _mm256_mask_cvtt_roundpd_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1058 __m256i test_mm256_maskz_cvtt_roundpd_epi64(__mmask8 __U, __m256d __A) {
1059 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundpd_epi64
1060 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qq256
1061 return _mm256_maskz_cvtt_roundpd_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1064 __m128i test_mm256_cvtt_roundpd_epu32(__m256d A)
1066 // CHECK-LABEL: @test_mm256_cvtt_roundpd_epu32
1067 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udq256
1068 return _mm256_cvtt_roundpd_epu32(A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1071 __m128i test_mm256_mask_cvtt_roundpd_epu32(__m128i W,__mmask8 U,__m256d A)
1073 // CHECK-LABEL: @test_mm256_mask_cvtt_roundpd_epu32
1074 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udq256
1075 return _mm256_mask_cvtt_roundpd_epu32(W, U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1078 __m128i test_mm256_maskz_cvtt_roundpd_epu32(__mmask8 U, __m256d A)
1080 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundpd_epu32
1081 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udq256
1082 return _mm256_maskz_cvtt_roundpd_epu32(U, A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1085 __m256i test_mm256_cvtt_roundpd_epu64(__m256d __A) {
1086 // CHECK-LABEL: @test_mm256_cvtt_roundpd_epu64
1087 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqq256
1088 return _mm256_cvtt_roundpd_epu64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1091 __m256i test_mm256_mask_cvtt_roundpd_epu64(__m256i __W, __mmask8 __U, __m256d __A) {
1092 // CHECK-LABEL: @test_mm256_mask_cvtt_roundpd_epu64
1093 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqq256
1094 return _mm256_mask_cvtt_roundpd_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1097 __m256i test_mm256_maskz_cvtt_roundpd_epu64(__mmask8 __U, __m256d __A) {
1098 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundpd_epu64
1099 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqq256
1100 return _mm256_maskz_cvtt_roundpd_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1103 __m256i test_mm256_cvtt_roundph_epi32(__m128h A) {
1104 // CHECK-LABEL: test_mm256_cvtt_roundph_epi32
1105 // CHECK: @llvm.x86.avx10.mask.vcvttph2dq256
1106 return _mm256_cvtt_roundph_epi32(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1109 __m256i test_mm256_mask_cvtt_roundph_epi32(__m256i A, __mmask16 B, __m128h C) {
1110 // CHECK-LABEL: test_mm256_mask_cvtt_roundph_epi32
1111 // CHECK: @llvm.x86.avx10.mask.vcvttph2dq256
1112 return _mm256_mask_cvtt_roundph_epi32(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1115 __m256i test_mm256_maskz_cvtt_roundph_epi32(__mmask16 A, __m128h B) {
1116 // CHECK-LABEL: test_mm256_maskz_cvtt_roundph_epi32
1117 // CHECK: @llvm.x86.avx10.mask.vcvttph2dq256
1118 return _mm256_maskz_cvtt_roundph_epi32(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1121 __m256i test_mm256_cvtt_roundph_epi64(__m128h A) {
1122 // CHECK-LABEL: test_mm256_cvtt_roundph_epi64
1123 // CHECK: @llvm.x86.avx10.mask.vcvttph2qq256
1124 return _mm256_cvtt_roundph_epi64(A, _MM_FROUND_NO_EXC);
1127 __m256i test_mm256_mask_cvtt_roundph_epi64(__m256i A, __mmask8 B, __m128h C) {
1128 // CHECK-LABEL: test_mm256_mask_cvtt_roundph_epi64
1129 // CHECK: @llvm.x86.avx10.mask.vcvttph2qq256
1130 return _mm256_mask_cvtt_roundph_epi64(A, B, C, _MM_FROUND_NO_EXC);
1133 __m256i test_mm256_maskz_cvtt_roundph_epi64(__mmask8 A, __m128h B) {
1134 // CHECK-LABEL: test_mm256_maskz_cvtt_roundph_epi64
1135 // CHECK: @llvm.x86.avx10.mask.vcvttph2qq256
1136 return _mm256_maskz_cvtt_roundph_epi64(A, B, _MM_FROUND_NO_EXC);
1139 __m256i test_mm256_cvtt_roundph_epu32(__m128h A) {
1140 // CHECK-LABEL: test_mm256_cvtt_roundph_epu32
1141 // CHECK: @llvm.x86.avx10.mask.vcvttph2udq256
1142 return _mm256_cvtt_roundph_epu32(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1145 __m256i test_mm256_mask_cvtt_roundph_epu32(__m256i A, __mmask16 B, __m128h C) {
1146 // CHECK-LABEL: test_mm256_mask_cvtt_roundph_epu32
1147 // CHECK: @llvm.x86.avx10.mask.vcvttph2udq256
1148 return _mm256_mask_cvtt_roundph_epu32(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1151 __m256i test_mm256_maskz_cvtt_roundph_epu32(__mmask16 A, __m128h B) {
1152 // CHECK-LABEL: test_mm256_maskz_cvtt_roundph_epu32
1153 // CHECK: @llvm.x86.avx10.mask.vcvttph2udq256
1154 return _mm256_maskz_cvtt_roundph_epu32(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1157 __m256i test_mm256_cvtt_roundph_epu64(__m128h A) {
1158 // CHECK-LABEL: test_mm256_cvtt_roundph_epu64
1159 // CHECK: @llvm.x86.avx10.mask.vcvttph2uqq256
1160 return _mm256_cvtt_roundph_epu64(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1163 __m256i test_mm256_mask_cvtt_roundph_epu64(__m256i A, __mmask8 B, __m128h C) {
1164 // CHECK-LABEL: test_mm256_mask_cvtt_roundph_epu64
1165 // CHECK: @llvm.x86.avx10.mask.vcvttph2uqq256
1166 return _mm256_mask_cvtt_roundph_epu64(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1169 __m256i test_mm256_maskz_cvtt_roundph_epu64(__mmask8 A, __m128h B) {
1170 // CHECK-LABEL: test_mm256_maskz_cvtt_roundph_epu64
1171 // CHECK: @llvm.x86.avx10.mask.vcvttph2uqq256
1172 return _mm256_maskz_cvtt_roundph_epu64(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1175 __m256i test_mm256_cvtt_roundph_epu16(__m256h A) {
1176 // CHECK-LABEL: test_mm256_cvtt_roundph_epu16
1177 // CHECK: @llvm.x86.avx10.mask.vcvttph2uw256
1178 return _mm256_cvtt_roundph_epu16(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1181 __m256i test_mm256_mask_cvtt_roundph_epu16(__m256i A, __mmask32 B, __m256h C) {
1182 // CHECK-LABEL: test_mm256_mask_cvtt_roundph_epu16
1183 // CHECK: @llvm.x86.avx10.mask.vcvttph2uw256
1184 return _mm256_mask_cvtt_roundph_epu16(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1187 __m256i test_mm256_maskz_cvtt_roundph_epu16(__mmask32 A, __m256h B) {
1188 // CHECK-LABEL: test_mm256_maskz_cvtt_roundph_epu16
1189 // CHECK: @llvm.x86.avx10.mask.vcvttph2uw256
1190 return _mm256_maskz_cvtt_roundph_epu16(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1193 __m256i test_mm256_cvtt_roundph_epi16(__m256h A) {
1194 // CHECK-LABEL: test_mm256_cvtt_roundph_epi16
1195 // CHECK: @llvm.x86.avx10.mask.vcvttph2w256
1196 return _mm256_cvtt_roundph_epi16(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1199 __m256i test_mm256_mask_cvtt_roundph_epi16(__m256i A, __mmask32 B, __m256h C) {
1200 // CHECK-LABEL: test_mm256_mask_cvtt_roundph_epi16
1201 // CHECK: @llvm.x86.avx10.mask.vcvttph2w256
1202 return _mm256_mask_cvtt_roundph_epi16(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1205 __m256i test_mm256_maskz_cvtt_roundph_epi16(__mmask32 A, __m256h B) {
1206 // CHECK-LABEL: test_mm256_maskz_cvtt_roundph_epi16
1207 // CHECK: @llvm.x86.avx10.mask.vcvttph2w256
1208 return _mm256_maskz_cvtt_roundph_epi16(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1211 __m256i test_mm256_cvtt_roundps_epi32(__m256 __A)
1213 // CHECK-LABEL: @test_mm256_cvtt_roundps_epi32
1214 // CHECK: @llvm.x86.avx10.mask.vcvttps2dq256
1215 return _mm256_cvtt_roundps_epi32(__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1218 __m256i test_mm256_mask_cvtt_roundps_epi32(__m256i __W,__mmask16 __U,__m256 __A)
1220 // CHECK-LABEL: @test_mm256_mask_cvtt_roundps_epi32
1221 // CHECK: @llvm.x86.avx10.mask.vcvttps2dq256
1222 return _mm256_mask_cvtt_roundps_epi32(__W,__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1225 __m256i test_mm256_maskz_cvtt_roundps_epi32(__mmask16 __U, __m256 __A)
1227 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundps_epi32
1228 // CHECK: @llvm.x86.avx10.mask.vcvttps2dq256
1229 return _mm256_maskz_cvtt_roundps_epi32(__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1232 __m256i test_mm256_cvtt_roundps_epi64(__m128 __A) {
1233 // CHECK-LABEL: @test_mm256_cvtt_roundps_epi64
1234 // CHECK: @llvm.x86.avx10.mask.vcvttps2qq256
1235 return _mm256_cvtt_roundps_epi64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1238 __m256i test_mm256_mask_cvtt_roundps_epi64(__m256i __W, __mmask8 __U, __m128 __A) {
1239 // CHECK-LABEL: @test_mm256_mask_cvtt_roundps_epi64
1240 // CHECK: @llvm.x86.avx10.mask.vcvttps2qq256
1241 return _mm256_mask_cvtt_roundps_epi64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1244 __m256i test_mm256_maskz_cvtt_roundps_epi64(__mmask8 __U, __m128 __A) {
1245 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundps_epi64
1246 // CHECK: @llvm.x86.avx10.mask.vcvttps2qq256
1247 return _mm256_maskz_cvtt_roundps_epi64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1250 __m256i test_mm256_cvtt_roundps_epu32(__m256 __A)
1252 // CHECK-LABEL: @test_mm256_cvtt_roundps_epu32
1253 // CHECK: @llvm.x86.avx10.mask.vcvttps2udq256
1254 return _mm256_cvtt_roundps_epu32(__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1257 __m256i test_mm256_mask_cvtt_roundps_epu32(__m256i __W,__mmask16 __U,__m256 __A)
1259 // CHECK-LABEL: @test_mm256_mask_cvtt_roundps_epu32
1260 // CHECK: @llvm.x86.avx10.mask.vcvttps2udq256
1261 return _mm256_mask_cvtt_roundps_epu32(__W,__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1264 __m256i test_mm256_maskz_cvtt_roundps_epu32(__mmask16 __U,__m256 __A)
1266 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundps_epu32
1267 // CHECK: @llvm.x86.avx10.mask.vcvttps2udq256
1268 return _mm256_maskz_cvtt_roundps_epu32(__U,__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1271 __m256i test_mm256_cvtt_roundps_epu64(__m128 __A) {
1272 // CHECK-LABEL: @test_mm256_cvtt_roundps_epu64
1273 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqq256
1274 return _mm256_cvtt_roundps_epu64(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1277 __m256i test_mm256_mask_cvtt_roundps_epu64(__m256i __W, __mmask8 __U, __m128 __A) {
1278 // CHECK-LABEL: @test_mm256_mask_cvtt_roundps_epu64
1279 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqq256
1280 return _mm256_mask_cvtt_roundps_epu64(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1283 __m256i test_mm256_maskz_cvtt_roundps_epu64(__mmask8 __U, __m128 __A) {
1284 // CHECK-LABEL: @test_mm256_maskz_cvtt_roundps_epu64
1285 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqq256
1286 return _mm256_maskz_cvtt_roundps_epu64(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1289 __m128h test_mm256_cvt_roundepu32_ph(__m256i A) {
1290 // CHECK-LABEL: test_mm256_cvt_roundepu32_ph
1291 // CHECK: @llvm.x86.avx512.uitofp.round.v8f16.v8i32(<8 x i32> %{{.*}}, i32 11)
1292 return _mm256_cvt_roundepu32_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1295 __m128h test_mm256_mask_cvt_roundepu32_ph(__m128h A, __mmask8 B, __m256i C) {
1296 // CHECK-LABEL: test_mm256_mask_cvt_roundepu32_ph
1297 // CHECK: @llvm.x86.avx512.uitofp.round.v8f16.v8i32(<8 x i32> %{{.*}}, i32 10)
1298 // CHECK: select <8 x i1> %{{.*}}, <8 x half> %{{.*}}, <8 x half> %{{.*}}
1299 return _mm256_mask_cvt_roundepu32_ph(A, B, C, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
1302 __m128h test_mm256_maskz_cvt_roundepu32_ph(__mmask8 A, __m256i B) {
1303 // CHECK-LABEL: test_mm256_maskz_cvt_roundepu32_ph
1304 // CHECK: @llvm.x86.avx512.uitofp.round.v8f16.v8i32(<8 x i32> %{{.*}}, i32 9)
1305 // CHECK: select <8 x i1> %{{.*}}, <8 x half> %{{.*}}, <8 x half> %{{.*}}
1306 return _mm256_maskz_cvt_roundepu32_ph(A, B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
1309 __m256 test_mm256_cvt_roundepu32_ps(__m256i __A)
1311 // CHECK-LABEL: @test_mm256_cvt_roundepu32_ps
1312 // CHECK: @llvm.x86.avx512.uitofp.round.v8f32.v8i32
1313 return _mm256_cvt_roundepu32_ps(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1316 __m256 test_mm256_mask_cvt_roundepu32_ps(__m256 __W, __mmask8 __U, __m256i __A)
1318 // CHECK-LABEL: @test_mm256_mask_cvt_roundepu32_ps
1319 // CHECK: @llvm.x86.avx512.uitofp.round.v8f32.v8i32
1320 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1321 return _mm256_mask_cvt_roundepu32_ps(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1324 __m256 test_mm256_maskz_cvt_roundepu32_ps(__mmask8 __U, __m256i __A)
1326 // CHECK-LABEL: @test_mm256_maskz_cvt_roundepu32_ps
1327 // CHECK: @llvm.x86.avx512.uitofp.round.v8f32.v8i32
1328 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1329 return _mm256_maskz_cvt_roundepu32_ps(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1332 __m256d test__mm256_cvt_roundepu64_pd(__m256i __A) {
1333 // CHECK-LABEL: @test__mm256_cvt_roundepu64_pd
1334 // CHECK: @llvm.x86.avx512.uitofp.round.v4f64.v4i64
1335 return _mm256_cvt_roundepu64_pd(__A, _MM_FROUND_NO_EXC);
1338 __m256d test__mm256_mask_cvt_roundepu64_pd(__m256d __W, __mmask8 __U, __m256i __A) {
1339 // CHECK-LABEL: @test__mm256_mask_cvt_roundepu64_pd
1340 // CHECK: @llvm.x86.avx512.uitofp.round.v4f64.v4i64
1341 return _mm256_mask_cvt_roundepu64_pd(__W, __U, __A, _MM_FROUND_NO_EXC);
1344 __m256d test__mm256_maskz_cvt_roundepu64_pd(__mmask8 __U, __m256i __A) {
1345 // CHECK-LABEL: @test__mm256_maskz_cvt_roundepu64_pd
1346 // CHECK: @llvm.x86.avx512.uitofp.round.v4f64.v4i64
1347 return _mm256_maskz_cvt_roundepu64_pd(__U, __A, _MM_FROUND_NO_EXC);
1350 // FIXME: We may change to @llvm.x86.avx10.mask.vcvtuqq2ph256 in future.
1351 __m128h test_mm256_cvt_roundepu64_ph(__m256i A) {
1352 // CHECK-LABEL: test_mm256_cvt_roundepu64_ph
1353 // CHECK: @llvm.x86.avx512.uitofp.round.v8f16.v4i64
1354 return _mm256_cvt_roundepu64_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1357 __m128h test_mm256_mask_cvt_roundepu64_ph(__m128h A, __mmask8 B, __m256i C) {
1358 // CHECK-LABEL: test_mm256_mask_cvt_roundepu64_ph
1359 // CHECK: @llvm.x86.avx512.uitofp.round.v8f16.v4i64
1360 return _mm256_mask_cvt_roundepu64_ph(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1363 __m128h test_mm256_maskz_cvt_roundepu64_ph(__mmask8 A, __m256i B) {
1364 // CHECK-LABEL: test_mm256_maskz_cvt_roundepu64_ph
1365 // CHECK: @llvm.x86.avx512.uitofp.round.v8f16.v4i64
1366 return _mm256_maskz_cvt_roundepu64_ph(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1369 __m128 test_mm256_cvt_roundepu64_ps(__m256i __A) {
1370 // CHECK-LABEL: @test_mm256_cvt_roundepu64_ps
1371 // CHECK: @llvm.x86.avx512.uitofp.round.v4f32.v4i64
1372 return _mm256_cvt_roundepu64_ps(__A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1375 __m128 test_mm256_mask_cvt_roundepu64_ps(__m128 __W, __mmask8 __U, __m256i __A) {
1376 // CHECK-LABEL: @test_mm256_mask_cvt_roundepu64_ps
1377 // CHECK: @llvm.x86.avx512.uitofp.round.v4f32.v4i64
1378 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
1379 return _mm256_mask_cvt_roundepu64_ps(__W, __U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1382 __m128 test_mm256_maskz_cvt_roundepu64_ps(__mmask8 __U, __m256i __A) {
1383 // CHECK-LABEL: @test_mm256_maskz_cvt_roundepu64_ps
1384 // CHECK: @llvm.x86.avx512.uitofp.round.v4f32.v4i64
1385 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}}
1386 return _mm256_maskz_cvt_roundepu64_ps(__U, __A, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
1389 __m256h test_mm256_cvt_roundepi16_ph(__m256i A) {
1390 // CHECK-LABEL: test_mm256_cvt_roundepi16_ph
1391 // CHECK: @llvm.x86.avx512.sitofp.round.v16f16.v16i16
1392 return _mm256_cvt_roundepi16_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1395 __m256h test_mm256_mask_cvt_roundepi16_ph(__m256h A, __mmask16 B, __m256i C) {
1396 // CHECK-LABEL: test_mm256_mask_cvt_roundepi16_ph
1397 // CHECK: @llvm.x86.avx512.sitofp.round.v16f16.v16i16
1398 return _mm256_mask_cvt_roundepi16_ph(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1401 __m256h test_mm256_maskz_cvt_roundepi16_ph(__mmask16 A, __m256i B) {
1402 // CHECK-LABEL: test_mm256_maskz_cvt_roundepi16_ph
1403 // CHECK: @llvm.x86.avx512.sitofp.round.v16f16.v16i16
1404 return _mm256_maskz_cvt_roundepi16_ph(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1407 __m256h test_mm256_cvt_roundepu16_ph(__m256i A) {
1408 // CHECK-LABEL: test_mm256_cvt_roundepu16_ph
1409 // CHECK: @llvm.x86.avx512.uitofp.round.v16f16.v16i16
1410 return _mm256_cvt_roundepu16_ph(A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1413 __m256h test_mm256_mask_cvt_roundepu16_ph(__m256h A, __mmask16 B, __m256i C) {
1414 // CHECK-LABEL: test_mm256_mask_cvt_roundepu16_ph
1415 // CHECK: @llvm.x86.avx512.uitofp.round.v16f16.v16i16
1416 return _mm256_mask_cvt_roundepu16_ph(A, B, C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1419 __m256h test_mm256_maskz_cvt_roundepu16_ph(__mmask16 A, __m256i B) {
1420 // CHECK-LABEL: test_mm256_maskz_cvt_roundepu16_ph
1421 // CHECK: @llvm.x86.avx512.uitofp.round.v16f16.v16i16
1422 return _mm256_maskz_cvt_roundepu16_ph(A, B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1425 __m256d test_mm256_div_round_pd(__m256d __A, __m256d __B) {
1426 // CHECK-LABEL: @test_mm256_div_round_pd
1427 // CHECK: @llvm.x86.avx10.vdivpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 11)
1428 return _mm256_div_round_pd(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1431 __m256d test_mm256_mask_div_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
1432 // CHECK-LABEL: @test_mm256_mask_div_round_pd
1433 // CHECK: @llvm.x86.avx10.vdivpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 10)
1434 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1435 return _mm256_mask_div_round_pd(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
1438 __m256d test_mm256_maskz_div_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
1439 // CHECK-LABEL: @test_mm256_maskz_div_round_pd
1440 // CHECK: @llvm.x86.avx10.vdivpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 9)
1441 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1442 return _mm256_maskz_div_round_pd(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
1445 __m256h test_mm256_div_round_ph(__m256h __A, __m256h __B) {
1446 // CHECK-LABEL: @test_mm256_div_round_ph
1447 // CHECK: @llvm.x86.avx10.vdivph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 11)
1448 return _mm256_div_round_ph(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1451 __m256h test_mm256_mask_div_round_ph(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
1452 // CHECK-LABEL: @test_mm256_mask_div_round_ph
1453 // CHECK: @llvm.x86.avx10.vdivph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 10)
1454 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1455 return _mm256_mask_div_round_ph(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
1458 __m256h test_mm256_maskz_div_round_ph(__mmask8 __U, __m256h __A, __m256h __B) {
1459 // CHECK-LABEL: @test_mm256_maskz_div_round_ph
1460 // CHECK: @llvm.x86.avx10.vdivph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 9)
1461 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1462 return _mm256_maskz_div_round_ph(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
1465 __m256 test_mm256_div_round_ps(__m256 __A, __m256 __B) {
1466 // CHECK-LABEL: @test_mm256_div_round_ps
1467 // CHECK: @llvm.x86.avx10.vdivps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 11)
1468 return _mm256_div_round_ps(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1471 __m256 test_mm256_mask_div_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
1472 // CHECK-LABEL: @test_mm256_mask_div_round_ps
1473 // CHECK: @llvm.x86.avx10.vdivps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 10)
1474 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1475 return _mm256_mask_div_round_ps(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
1478 __m256 test_mm256_maskz_div_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
1479 // CHECK-LABEL: @test_mm256_maskz_div_round_ps
1480 // CHECK: @llvm.x86.avx10.vdivps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 9)
1481 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1482 return _mm256_maskz_div_round_ps(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
1485 __m256h test_mm256_fcmadd_round_pch(__m256h __A, __m256h __B, __m256h __C) {
1486 // CHECK-LABEL: @test_mm256_fcmadd_round_pch
1487 // CHECK: @llvm.x86.avx10.mask.vfcmaddcph256
1488 return _mm256_fcmadd_round_pch(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1491 __m256h test_mm256_mask_fcmadd_round_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
1492 // CHECK-LABEL: @test_mm256_mask_fcmadd_round_pch
1493 // CHECK: @llvm.x86.avx10.mask.vfcmaddcph256
1494 // CHECK: %{{.*}} = select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1495 return _mm256_mask_fcmadd_round_pch(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1498 __m256h test_mm256_mask3_fcmadd_round_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
1499 // CHECK-LABEL: @test_mm256_mask3_fcmadd_round_pch
1500 // CHECK: @llvm.x86.avx10.mask.vfcmaddcph256
1501 // CHECK-NOT: %{{.*}} = select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1502 return _mm256_mask3_fcmadd_round_pch(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1505 __m256h test_mm256_maskz_fcmadd_round_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
1506 // CHECK-LABEL: @test_mm256_maskz_fcmadd_round_pch
1507 // CHECK: @llvm.x86.avx10.maskz.vfcmaddcph256
1508 return _mm256_maskz_fcmadd_round_pch(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1511 __m256h test_mm256_cmul_round_pch(__m256h __A, __m256h __B) {
1512 // CHECK-LABEL: @test_mm256_cmul_round_pch
1513 // CHECK: @llvm.x86.avx10.mask.vfcmulcph256
1514 return _mm256_cmul_round_pch(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1517 __m256h test_mm256_mask_cmul_round_pch(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
1518 // CHECK-LABEL: @test_mm256_mask_cmul_round_pch
1519 // CHECK: @llvm.x86.avx10.mask.vfcmulcph256
1520 return _mm256_mask_cmul_round_pch(__W, __U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1523 __m256h test_mm256_maskz_cmul_round_pch(__mmask8 __U, __m256h __A, __m256h __B) {
1524 // CHECK-LABEL: @test_mm256_maskz_cmul_round_pch
1525 // CHECK: @llvm.x86.avx10.mask.vfcmulcph256
1526 return _mm256_maskz_cmul_round_pch(__U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1529 __m256d test_mm256_fixupimm_round_pd(__m256d __A, __m256d __B, __m256i __C) {
1530 // CHECK-LABEL: @test_mm256_fixupimm_round_pd
1531 // CHECK: @llvm.x86.avx10.mask.vfixupimmpd256
1532 return _mm256_fixupimm_round_pd(__A, __B, __C, 5, 8);
1535 __m256d test_mm256_mask_fixupimm_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) {
1536 // CHECK-LABEL: @test_mm256_mask_fixupimm_round_pd
1537 // CHECK: @llvm.x86.avx10.mask.vfixupimmpd256
1538 return _mm256_mask_fixupimm_round_pd(__A, __U, __B, __C, 5, 8);
1541 __m256d test_mm256_maskz_fixupimm_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) {
1542 // CHECK-LABEL: @test_mm256_maskz_fixupimm_round_pd
1543 // CHECK: @llvm.x86.avx10.maskz.vfixupimmpd256
1544 return _mm256_maskz_fixupimm_round_pd(__U, __A, __B, __C, 5, 8);
1547 __m256 test_mm256_fixupimm_round_ps(__m256 __A, __m256 __B, __m256i __C) {
1548 // CHECK-LABEL: @test_mm256_fixupimm_round_ps
1549 // CHECK: @llvm.x86.avx10.mask.vfixupimmps256
1550 return _mm256_fixupimm_round_ps(__A, __B, __C, 5, 8);
1553 __m256 test_mm256_mask_fixupimm_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) {
1554 // CHECK-LABEL: @test_mm256_mask_fixupimm_round_ps
1555 // CHECK: @llvm.x86.avx10.mask.vfixupimmps256
1556 return _mm256_mask_fixupimm_round_ps(__A, __U, __B, __C, 5, 8);
1559 __m256 test_mm256_maskz_fixupimm_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) {
1560 // CHECK-LABEL: @test_mm256_maskz_fixupimm_round_ps
1561 // CHECK: @llvm.x86.avx10.maskz.vfixupimmps256
1562 return _mm256_maskz_fixupimm_round_ps(__U, __A, __B, __C, 5, 8);
1565 __m256d test_mm256_fmadd_round_pd(__m256d __A, __m256d __B, __m256d __C) {
1566 // CHECK-LABEL: @test_mm256_fmadd_round_pd
1567 // CHECK: @llvm.x86.avx10.vfmaddpd256
1568 return _mm256_fmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1571 __m256d test_mm256_mask_fmadd_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
1572 // CHECK-LABEL: @test_mm256_mask_fmadd_round_pd
1573 // CHECK: @llvm.x86.avx10.vfmaddpd256
1574 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1575 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1576 return _mm256_mask_fmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1579 __m256d test_mm256_mask3_fmadd_round_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
1580 // CHECK-LABEL: @test_mm256_mask3_fmadd_round_pd
1581 // CHECK: @llvm.x86.avx10.vfmaddpd256
1582 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1583 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1584 return _mm256_mask3_fmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1587 __m256d test_mm256_maskz_fmadd_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
1588 // CHECK-LABEL: @test_mm256_maskz_fmadd_round_pd
1589 // CHECK: @llvm.x86.avx10.vfmaddpd256
1590 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1591 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> zeroinitializer
1592 return _mm256_maskz_fmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1595 __m256d test_mm256_fmsub_round_pd(__m256d __A, __m256d __B, __m256d __C) {
1596 // CHECK-LABEL: @test_mm256_fmsub_round_pd
1597 // CHECK: fneg <4 x double>
1598 // CHECK: @llvm.x86.avx10.vfmaddpd256
1599 return _mm256_fmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1602 __m256d test_mm256_mask_fmsub_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
1603 // CHECK-LABEL: @test_mm256_mask_fmsub_round_pd
1604 // CHECK: fneg <4 x double>
1605 // CHECK: @llvm.x86.avx10.vfmaddpd256
1606 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1607 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1608 return _mm256_mask_fmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1611 __m256d test_mm256_maskz_fmsub_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
1612 // CHECK-LABEL: @test_mm256_maskz_fmsub_round_pd
1613 // CHECK: fneg <4 x double>
1614 // CHECK: @llvm.x86.avx10.vfmaddpd256
1615 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1616 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> zeroinitializer
1617 return _mm256_maskz_fmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1620 __m256d test_mm256_fnmadd_round_pd(__m256d __A, __m256d __B, __m256d __C) {
1621 // CHECK-LABEL: @test_mm256_fnmadd_round_pd
1622 // CHECK: fneg <4 x double>
1623 // CHECK: @llvm.x86.avx10.vfmaddpd256
1624 return _mm256_fnmadd_round_pd(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1627 __m256d test_mm256_mask3_fnmadd_round_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
1628 // CHECK-LABEL: @test_mm256_mask3_fnmadd_round_pd
1629 // CHECK: fneg <4 x double>
1630 // CHECK: @llvm.x86.avx10.vfmaddpd256
1631 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1632 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1633 return _mm256_mask3_fnmadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1636 __m256d test_mm256_maskz_fnmadd_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
1637 // CHECK-LABEL: @test_mm256_maskz_fnmadd_round_pd
1638 // CHECK: fneg <4 x double>
1639 // CHECK: @llvm.x86.avx10.vfmaddpd256
1640 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1641 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> zeroinitializer
1642 return _mm256_maskz_fnmadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1645 __m256d test_mm256_fnmsub_round_pd(__m256d __A, __m256d __B, __m256d __C) {
1646 // CHECK-LABEL: @test_mm256_fnmsub_round_pd
1647 // CHECK: fneg <4 x double>
1648 // CHECK: fneg <4 x double>
1649 // CHECK: @llvm.x86.avx10.vfmaddpd256
1650 return _mm256_fnmsub_round_pd(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1653 __m256d test_mm256_maskz_fnmsub_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
1654 // CHECK-LABEL: @test_mm256_maskz_fnmsub_round_pd
1655 // CHECK: fneg <4 x double>
1656 // CHECK: fneg <4 x double>
1657 // CHECK: @llvm.x86.avx10.vfmaddpd256
1658 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1659 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> zeroinitializer
1660 return _mm256_maskz_fnmsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1663 __m256h test_mm256_fmadd_round_ph(__m256h __A, __m256h __B, __m256h __C) {
1664 // CHECK-LABEL: @test_mm256_fmadd_round_ph
1665 // CHECK: @llvm.x86.avx10.vfmaddph256
1666 return _mm256_fmadd_round_ph(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1669 __m256h test_mm256_mask_fmadd_round_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
1670 // CHECK-LABEL: @test_mm256_mask_fmadd_round_ph
1671 // CHECK: @llvm.x86.avx10.vfmaddph256
1672 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1673 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1674 return _mm256_mask_fmadd_round_ph(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1677 __m256h test_mm256_mask3_fmadd_round_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
1678 // CHECK-LABEL: @test_mm256_mask3_fmadd_round_ph
1679 // CHECK: @llvm.x86.avx10.vfmaddph256
1680 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1681 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1682 return _mm256_mask3_fmadd_round_ph(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1685 __m256h test_mm256_maskz_fmadd_round_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
1686 // CHECK-LABEL: @test_mm256_maskz_fmadd_round_ph
1687 // CHECK: @llvm.x86.avx10.vfmaddph256
1688 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1689 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> zeroinitializer
1690 return _mm256_maskz_fmadd_round_ph(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1693 __m256h test_mm256_fmsub_round_ph(__m256h __A, __m256h __B, __m256h __C) {
1694 // CHECK-LABEL: @test_mm256_fmsub_round_ph
1695 // CHECK: fneg
1696 // CHECK: @llvm.x86.avx10.vfmaddph256
1697 return _mm256_fmsub_round_ph(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1700 __m256h test_mm256_mask_fmsub_round_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
1701 // CHECK-LABEL: @test_mm256_mask_fmsub_round_ph
1702 // CHECK: fneg
1703 // CHECK: @llvm.x86.avx10.vfmaddph256
1704 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1705 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1706 return _mm256_mask_fmsub_round_ph(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1709 __m256h test_mm256_maskz_fmsub_round_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
1710 // CHECK-LABEL: @test_mm256_maskz_fmsub_round_ph
1711 // CHECK: fneg
1712 // CHECK: @llvm.x86.avx10.vfmaddph256
1713 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1714 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> zeroinitializer
1715 return _mm256_maskz_fmsub_round_ph(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1718 __m256h test_mm256_fnmadd_round_ph(__m256h __A, __m256h __B, __m256h __C) {
1719 // CHECK-LABEL: @test_mm256_fnmadd_round_ph
1720 // CHECK: fneg
1721 // CHECK: @llvm.x86.avx10.vfmaddph256
1722 return _mm256_fnmadd_round_ph(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1725 __m256h test_mm256_mask3_fnmadd_round_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
1726 // CHECK-LABEL: @test_mm256_mask3_fnmadd_round_ph
1727 // CHECK: fneg
1728 // CHECK: @llvm.x86.avx10.vfmaddph256
1729 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1730 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1731 return _mm256_mask3_fnmadd_round_ph(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1734 __m256h test_mm256_maskz_fnmadd_round_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
1735 // CHECK-LABEL: @test_mm256_maskz_fnmadd_round_ph
1736 // CHECK: fneg
1737 // CHECK: @llvm.x86.avx10.vfmaddph256
1738 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1739 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> zeroinitializer
1740 return _mm256_maskz_fnmadd_round_ph(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1743 __m256h test_mm256_fnmsub_round_ph(__m256h __A, __m256h __B, __m256h __C) {
1744 // CHECK-LABEL: @test_mm256_fnmsub_round_ph
1745 // CHECK: fneg
1746 // CHECK: fneg
1747 // CHECK: @llvm.x86.avx10.vfmaddph256
1748 return _mm256_fnmsub_round_ph(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1751 __m256h test_mm256_maskz_fnmsub_round_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
1752 // CHECK-LABEL: @test_mm256_maskz_fnmsub_round_ph
1753 // CHECK: fneg
1754 // CHECK: fneg
1755 // CHECK: @llvm.x86.avx10.vfmaddph256
1756 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1757 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> zeroinitializer
1758 return _mm256_maskz_fnmsub_round_ph(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1761 __m256 test_mm256_fmadd_round_ps(__m256 __A, __m256 __B, __m256 __C) {
1762 // CHECK-LABEL: @test_mm256_fmadd_round_ps
1763 // CHECK: @llvm.x86.avx10.vfmaddps256
1764 return _mm256_fmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1767 __m256 test_mm256_mask_fmadd_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
1768 // CHECK-LABEL: @test_mm256_mask_fmadd_round_ps
1769 // CHECK: @llvm.x86.avx10.vfmaddps256
1770 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1771 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1772 return _mm256_mask_fmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1775 __m256 test_mm256_mask3_fmadd_round_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
1776 // CHECK-LABEL: @test_mm256_mask3_fmadd_round_ps
1777 // CHECK: @llvm.x86.avx10.vfmaddps256
1778 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1779 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1780 return _mm256_mask3_fmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1783 __m256 test_mm256_maskz_fmadd_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
1784 // CHECK-LABEL: @test_mm256_maskz_fmadd_round_ps
1785 // CHECK: @llvm.x86.avx10.vfmaddps256
1786 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1787 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> zeroinitializer
1788 return _mm256_maskz_fmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1791 __m256 test_mm256_fmsub_round_ps(__m256 __A, __m256 __B, __m256 __C) {
1792 // CHECK-LABEL: @test_mm256_fmsub_round_ps
1793 // CHECK: fneg <8 x float> %{{.*}}
1794 // CHECK: @llvm.x86.avx10.vfmaddps256
1795 return _mm256_fmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1798 __m256 test_mm256_mask_fmsub_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
1799 // CHECK-LABEL: @test_mm256_mask_fmsub_round_ps
1800 // CHECK: fneg <8 x float> %{{.*}}
1801 // CHECK: @llvm.x86.avx10.vfmaddps256
1802 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1803 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1804 return _mm256_mask_fmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1807 __m256 test_mm256_maskz_fmsub_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
1808 // CHECK-LABEL: @test_mm256_maskz_fmsub_round_ps
1809 // CHECK: fneg <8 x float> %{{.*}}
1810 // CHECK: @llvm.x86.avx10.vfmaddps256
1811 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1812 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> zeroinitializer
1813 return _mm256_maskz_fmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1816 __m256 test_mm256_fnmadd_round_ps(__m256 __A, __m256 __B, __m256 __C) {
1817 // CHECK-LABEL: @test_mm256_fnmadd_round_ps
1818 // CHECK: fneg <8 x float> %{{.*}}
1819 // CHECK: @llvm.x86.avx10.vfmaddps256
1820 return _mm256_fnmadd_round_ps(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1823 __m256 test_mm256_mask3_fnmadd_round_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
1824 // CHECK-LABEL: @test_mm256_mask3_fnmadd_round_ps
1825 // CHECK: fneg <8 x float> %{{.*}}
1826 // CHECK: @llvm.x86.avx10.vfmaddps256
1827 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1828 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1829 return _mm256_mask3_fnmadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1832 __m256 test_mm256_maskz_fnmadd_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
1833 // CHECK-LABEL: @test_mm256_maskz_fnmadd_round_ps
1834 // CHECK: fneg <8 x float> %{{.*}}
1835 // CHECK: @llvm.x86.avx10.vfmaddps256
1836 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1837 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> zeroinitializer
1838 return _mm256_maskz_fnmadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1841 __m256 test_mm256_fnmsub_round_ps(__m256 __A, __m256 __B, __m256 __C) {
1842 // CHECK-LABEL: @test_mm256_fnmsub_round_ps
1843 // CHECK: fneg <8 x float> %{{.*}}
1844 // CHECK: fneg <8 x float> %{{.*}}
1845 // CHECK: @llvm.x86.avx10.vfmaddps256
1846 return _mm256_fnmsub_round_ps(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1849 __m256 test_mm256_maskz_fnmsub_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
1850 // CHECK-LABEL: @test_mm256_maskz_fnmsub_round_ps
1851 // CHECK: fneg <8 x float> %{{.*}}
1852 // CHECK: fneg <8 x float> %{{.*}}
1853 // CHECK: @llvm.x86.avx10.vfmaddps256
1854 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1855 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> zeroinitializer
1856 return _mm256_maskz_fnmsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1859 __m256h test_mm256_fmadd_round_pch(__m256h __A, __m256h __B, __m256h __C) {
1860 // CHECK-LABEL: @test_mm256_fmadd_round_pch
1861 // CHECK: @llvm.x86.avx10.mask.vfmaddcph256
1862 return _mm256_fmadd_round_pch(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1865 __m256h test_mm256_mask_fmadd_round_pch(__m256h __A, __mmask8 __U, __m256h __B, __m256h __C) {
1866 // CHECK-LABEL: @test_mm256_mask_fmadd_round_pch
1867 // CHECK: @llvm.x86.avx10.mask.vfmaddcph256
1868 // CHECK: %{{.*}} = select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1869 return _mm256_mask_fmadd_round_pch(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1872 __m256h test_mm256_mask3_fmadd_round_pch(__m256h __A, __m256h __B, __m256h __C, __mmask8 __U) {
1873 // CHECK-LABEL: @test_mm256_mask3_fmadd_round_pch
1874 // CHECK: @llvm.x86.avx10.mask.vfmaddcph256
1875 // CHECK-NOT: %{{.*}} = select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
1876 return _mm256_mask3_fmadd_round_pch(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1879 __m256h test_mm256_maskz_fmadd_round_pch(__mmask8 __U, __m256h __A, __m256h __B, __m256h __C) {
1880 // CHECK-LABEL: @test_mm256_maskz_fmadd_round_pch
1881 // CHECK: @llvm.x86.avx10.maskz.vfmaddcph256
1882 return _mm256_maskz_fmadd_round_pch(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1885 __m256d test_mm256_fmaddsub_round_pd(__m256d __A, __m256d __B, __m256d __C) {
1886 // CHECK-LABEL: @test_mm256_fmaddsub_round_pd
1887 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1888 return _mm256_fmaddsub_round_pd(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1891 __m256d test_mm256_mask_fmaddsub_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
1892 // CHECK-LABEL: @test_mm256_mask_fmaddsub_round_pd
1893 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1894 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1895 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1896 return _mm256_mask_fmaddsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1899 __m256d test_mm256_mask3_fmaddsub_round_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
1900 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_round_pd
1901 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1902 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1903 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1904 return _mm256_mask3_fmaddsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1907 __m256d test_mm256_maskz_fmaddsub_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
1908 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_round_pd
1909 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1910 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1911 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> zeroinitializer
1912 return _mm256_maskz_fmaddsub_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1915 __m256d test_mm256_fmsubadd_round_pd(__m256d __A, __m256d __B, __m256d __C) {
1916 // CHECK-LABEL: @test_mm256_fmsubadd_round_pd
1917 // CHECK: fneg <4 x double> %{{.*}}
1918 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1919 return _mm256_fmsubadd_round_pd(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1922 __m256d test_mm256_mask_fmsubadd_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
1923 // CHECK-LABEL: @test_mm256_mask_fmsubadd_round_pd
1924 // CHECK: fneg <4 x double> %{{.*}}
1925 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1926 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1927 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
1928 return _mm256_mask_fmsubadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1931 __m256d test_mm256_maskz_fmsubadd_round_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) {
1932 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_round_pd
1933 // CHECK: fneg <4 x double> %{{.*}}
1934 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
1935 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
1936 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> zeroinitializer
1937 return _mm256_maskz_fmsubadd_round_pd(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1940 __m256h test_mm256_fmaddsub_round_ph(__m256h __A, __m256h __B, __m256h __C) {
1941 // CHECK-LABEL: @test_mm256_fmaddsub_round_ph
1942 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1943 return _mm256_fmaddsub_round_ph(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1946 __m256h test_mm256_mask_fmaddsub_round_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
1947 // CHECK-LABEL: @test_mm256_mask_fmaddsub_round_ph
1948 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1949 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1950 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1951 return _mm256_mask_fmaddsub_round_ph(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1954 __m256h test_mm256_mask3_fmaddsub_round_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
1955 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_round_ph
1956 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1957 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1958 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1959 return _mm256_mask3_fmaddsub_round_ph(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1962 __m256h test_mm256_maskz_fmaddsub_round_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
1963 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_round_ph
1964 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1965 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1966 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> zeroinitializer
1967 return _mm256_maskz_fmaddsub_round_ph(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1970 __m256h test_mm256_fmsubadd_round_ph(__m256h __A, __m256h __B, __m256h __C) {
1971 // CHECK-LABEL: @test_mm256_fmsubadd_round_ph
1972 // CHECK: fneg
1973 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1974 return _mm256_fmsubadd_round_ph(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1977 __m256h test_mm256_mask_fmsubadd_round_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
1978 // CHECK-LABEL: @test_mm256_mask_fmsubadd_round_ph
1979 // CHECK: fneg
1980 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1981 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1982 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
1983 return _mm256_mask_fmsubadd_round_ph(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1986 __m256h test_mm256_maskz_fmsubadd_round_ph(__mmask16 __U, __m256h __A, __m256h __B, __m256h __C) {
1987 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_round_ph
1988 // CHECK: fneg
1989 // CHECK: @llvm.x86.avx10.vfmaddsubph256
1990 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
1991 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> zeroinitializer
1992 return _mm256_maskz_fmsubadd_round_ph(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
1995 __m256 test_mm256_fmaddsub_round_ps(__m256 __A, __m256 __B, __m256 __C) {
1996 // CHECK-LABEL: @test_mm256_fmaddsub_round_ps
1997 // CHECK: @llvm.x86.avx10.vfmaddsubps256
1998 return _mm256_fmaddsub_round_ps(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2001 __m256 test_mm256_mask_fmaddsub_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
2002 // CHECK-LABEL: @test_mm256_mask_fmaddsub_round_ps
2003 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2004 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2005 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2006 return _mm256_mask_fmaddsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2009 __m256 test_mm256_mask3_fmaddsub_round_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
2010 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_round_ps
2011 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2012 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2013 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2014 return _mm256_mask3_fmaddsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2017 __m256 test_mm256_maskz_fmaddsub_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
2018 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_round_ps
2019 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2020 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2021 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> zeroinitializer
2022 return _mm256_maskz_fmaddsub_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2025 __m256 test_mm256_fmsubadd_round_ps(__m256 __A, __m256 __B, __m256 __C) {
2026 // CHECK-LABEL: @test_mm256_fmsubadd_round_ps
2027 // CHECK: fneg <8 x float> %{{.*}}
2028 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2029 return _mm256_fmsubadd_round_ps(__A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2032 __m256 test_mm256_mask_fmsubadd_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
2033 // CHECK-LABEL: @test_mm256_mask_fmsubadd_round_ps
2034 // CHECK: fneg <8 x float> %{{.*}}
2035 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2036 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2037 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2038 return _mm256_mask_fmsubadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2041 __m256 test_mm256_maskz_fmsubadd_round_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) {
2042 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_round_ps
2043 // CHECK: fneg <8 x float> %{{.*}}
2044 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2045 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2046 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> zeroinitializer
2047 return _mm256_maskz_fmsubadd_round_ps(__U, __A, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2050 __m256d test_mm256_mask3_fmsub_round_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2051 // CHECK-LABEL: @test_mm256_mask3_fmsub_round_pd
2052 // CHECK: fneg <4 x double> %{{.*}}
2053 // CHECK: @llvm.x86.avx10.vfmaddpd256
2054 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2055 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2056 return _mm256_mask3_fmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2059 __m256d test_mm256_mask3_fmsubadd_round_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2060 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_round_pd
2061 // CHECK: fneg <4 x double> %{{.*}}
2062 // CHECK: @llvm.x86.avx10.vfmaddsubpd256
2063 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2064 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2065 return _mm256_mask3_fmsubadd_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2068 __m256d test_mm256_mask_fnmadd_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2069 // CHECK-LABEL: @test_mm256_mask_fnmadd_round_pd
2070 // CHECK: fneg <4 x double>
2071 // CHECK: @llvm.x86.avx10.vfmaddpd256
2072 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2073 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2074 return _mm256_mask_fnmadd_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2077 __m256d test_mm256_mask_fnmsub_round_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) {
2078 // CHECK-LABEL: @test_mm256_mask_fnmsub_round_pd
2079 // CHECK: fneg <4 x double>
2080 // CHECK: fneg <4 x double>
2081 // CHECK: @llvm.x86.avx10.vfmaddpd256
2082 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2083 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2084 return _mm256_mask_fnmsub_round_pd(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2087 __m256d test_mm256_mask3_fnmsub_round_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) {
2088 // CHECK-LABEL: @test_mm256_mask3_fnmsub_round_pd
2089 // CHECK: fneg <4 x double>
2090 // CHECK: fneg <4 x double>
2091 // CHECK: @llvm.x86.avx10.vfmaddpd256
2092 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2093 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2094 return _mm256_mask3_fnmsub_round_pd(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2097 __m256h test_mm256_mask3_fmsub_round_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
2098 // CHECK-LABEL: @test_mm256_mask3_fmsub_round_ph
2099 // CHECK: fneg
2100 // CHECK: @llvm.x86.avx10.vfmaddph256
2101 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2102 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2103 return _mm256_mask3_fmsub_round_ph(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2106 __m256h test_mm256_mask3_fmsubadd_round_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
2107 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_round_ph
2108 // CHECK: fneg
2109 // CHECK: @llvm.x86.avx10.vfmaddsubph256
2110 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2111 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2112 return _mm256_mask3_fmsubadd_round_ph(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2115 __m256h test_mm256_mask_fnmadd_round_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
2116 // CHECK-LABEL: @test_mm256_mask_fnmadd_round_ph
2117 // CHECK: fneg
2118 // CHECK: @llvm.x86.avx10.vfmaddph256
2119 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2120 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2121 return _mm256_mask_fnmadd_round_ph(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2124 __m256h test_mm256_mask_fnmsub_round_ph(__m256h __A, __mmask16 __U, __m256h __B, __m256h __C) {
2125 // CHECK-LABEL: @test_mm256_mask_fnmsub_round_ph
2126 // CHECK: fneg
2127 // CHECK: fneg
2128 // CHECK: @llvm.x86.avx10.vfmaddph256
2129 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2130 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2131 return _mm256_mask_fnmsub_round_ph(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2134 __m256h test_mm256_mask3_fnmsub_round_ph(__m256h __A, __m256h __B, __m256h __C, __mmask16 __U) {
2135 // CHECK-LABEL: @test_mm256_mask3_fnmsub_round_ph
2136 // CHECK: fneg
2137 // CHECK: fneg
2138 // CHECK: @llvm.x86.avx10.vfmaddph256
2139 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2140 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2141 return _mm256_mask3_fnmsub_round_ph(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2144 __m256 test_mm256_mask3_fmsub_round_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
2145 // CHECK-LABEL: @test_mm256_mask3_fmsub_round_ps
2146 // CHECK: fneg <8 x float> %{{.*}}
2147 // CHECK: @llvm.x86.avx10.vfmaddps256
2148 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2149 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2150 return _mm256_mask3_fmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2153 __m256 test_mm256_mask3_fmsubadd_round_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
2154 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_round_ps
2155 // CHECK: fneg <8 x float> %{{.*}}
2156 // CHECK: @llvm.x86.avx10.vfmaddsubps256
2157 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2158 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2159 return _mm256_mask3_fmsubadd_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2162 __m256 test_mm256_mask_fnmadd_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
2163 // CHECK-LABEL: @test_mm256_mask_fnmadd_round_ps
2164 // CHECK: fneg <8 x float> %{{.*}}
2165 // CHECK: @llvm.x86.avx10.vfmaddps256
2166 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2167 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2168 return _mm256_mask_fnmadd_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2171 __m256 test_mm256_mask_fnmsub_round_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) {
2172 // CHECK-LABEL: @test_mm256_mask_fnmsub_round_ps
2173 // CHECK: fneg <8 x float> %{{.*}}
2174 // CHECK: fneg <8 x float> %{{.*}}
2175 // CHECK: @llvm.x86.avx10.vfmaddps256
2176 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2177 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2178 return _mm256_mask_fnmsub_round_ps(__A, __U, __B, __C, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2181 __m256 test_mm256_mask3_fnmsub_round_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) {
2182 // CHECK-LABEL: @test_mm256_mask3_fnmsub_round_ps
2183 // CHECK: fneg <8 x float> %{{.*}}
2184 // CHECK: fneg <8 x float> %{{.*}}
2185 // CHECK: @llvm.x86.avx10.vfmaddps256
2186 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2187 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2188 return _mm256_mask3_fnmsub_round_ps(__A, __B, __C, __U, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2191 __m256h test_mm256_mul_round_pch(__m256h __A, __m256h __B) {
2192 // CHECK-LABEL: @test_mm256_mul_round_pch
2193 // CHECK: @llvm.x86.avx10.mask.vfmulcph256
2194 return _mm256_mul_round_pch(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2197 __m256h test_mm256_mask_mul_round_pch(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
2198 // CHECK-LABEL: @test_mm256_mask_mul_round_pch
2199 // CHECK: @llvm.x86.avx10.mask.vfmulcph256
2200 return _mm256_mask_mul_round_pch(__W, __U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2203 __m256h test_mm256_maskz_mul_round_pch(__mmask8 __U, __m256h __A, __m256h __B) {
2204 // CHECK-LABEL: @test_mm256_maskz_mul_round_pch
2205 // CHECK: @llvm.x86.avx10.mask.vfmulcph256
2206 return _mm256_maskz_mul_round_pch(__U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2209 __m256d test_mm256_getexp_round_pd(__m256d __A) {
2210 // CHECK-LABEL: @test_mm256_getexp_round_pd
2211 // CHECK: @llvm.x86.avx10.mask.vgetexppd256
2212 return _mm256_getexp_round_pd(__A, _MM_FROUND_NO_EXC);
2215 __m256d test_mm256_mask_getexp_round_pd(__m256d __W, __mmask8 __U, __m256d __A) {
2216 // CHECK-LABEL: @test_mm256_mask_getexp_round_pd
2217 // CHECK: @llvm.x86.avx10.mask.vgetexppd256
2218 return _mm256_mask_getexp_round_pd(__W, __U, __A, _MM_FROUND_NO_EXC);
2221 __m256d test_mm256_maskz_getexp_round_pd(__mmask8 __U, __m256d __A) {
2222 // CHECK-LABEL: @test_mm256_maskz_getexp_round_pd
2223 // CHECK: @llvm.x86.avx10.mask.vgetexppd256
2224 return _mm256_maskz_getexp_round_pd(__U, __A, _MM_FROUND_NO_EXC);
2227 __m256h test_mm256_getexp_round_ph(__m256h __A) {
2228 // CHECK-LABEL: @test_mm256_getexp_round_ph
2229 // CHECK: @llvm.x86.avx10.mask.vgetexpph256
2230 return _mm256_getexp_round_ph(__A, _MM_FROUND_NO_EXC);
2233 __m256h test_mm256_mask_getexp_round_ph(__m256h __W, __mmask16 __U, __m256h __A) {
2234 // CHECK-LABEL: @test_mm256_mask_getexp_round_ph
2235 // CHECK: @llvm.x86.avx10.mask.vgetexpph256
2236 return _mm256_mask_getexp_round_ph(__W, __U, __A, _MM_FROUND_NO_EXC);
2239 __m256h test_mm256_maskz_getexp_round_ph(__mmask16 __U, __m256h __A) {
2240 // CHECK-LABEL: @test_mm256_maskz_getexp_round_ph
2241 // CHECK: @llvm.x86.avx10.mask.vgetexpph256
2242 return _mm256_maskz_getexp_round_ph(__U, __A, _MM_FROUND_NO_EXC);
2245 __m256 test_mm256_getexp_round_ps(__m256 __A) {
2246 // CHECK-LABEL: @test_mm256_getexp_round_ps
2247 // CHECK: @llvm.x86.avx10.mask.vgetexpps256
2248 return _mm256_getexp_round_ps(__A, _MM_FROUND_NO_EXC);
2251 __m256 test_mm256_mask_getexp_round_ps(__m256 __W, __mmask8 __U, __m256 __A) {
2252 // CHECK-LABEL: @test_mm256_mask_getexp_round_ps
2253 // CHECK: @llvm.x86.avx10.mask.vgetexpps256
2254 return _mm256_mask_getexp_round_ps(__W, __U, __A, _MM_FROUND_NO_EXC);
2257 __m256 test_mm256_maskz_getexp_round_ps(__mmask8 __U, __m256 __A) {
2258 // CHECK-LABEL: @test_mm256_maskz_getexp_round_ps
2259 // CHECK: @llvm.x86.avx10.mask.vgetexpps256
2260 return _mm256_maskz_getexp_round_ps(__U, __A, _MM_FROUND_NO_EXC);
2263 __m256d test_mm256_getmant_round_pd(__m256d __A) {
2264 // CHECK-LABEL: @test_mm256_getmant_round_pd
2265 // CHECK: @llvm.x86.avx10.mask.vgetmantpd256
2266 return _mm256_getmant_round_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2269 __m256d test_mm256_mask_getmant_round_pd(__m256d __W, __mmask8 __U, __m256d __A) {
2270 // CHECK-LABEL: @test_mm256_mask_getmant_round_pd
2271 // CHECK: @llvm.x86.avx10.mask.vgetmantpd256
2272 return _mm256_mask_getmant_round_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2275 __m256d test_mm256_maskz_getmant_round_pd(__mmask8 __U, __m256d __A) {
2276 // CHECK-LABEL: @test_mm256_maskz_getmant_round_pd
2277 // CHECK: @llvm.x86.avx10.mask.vgetmantpd256
2278 return _mm256_maskz_getmant_round_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2281 __m256h test_mm256_getmant_round_ph(__m256h __A) {
2282 // CHECK-LABEL: @test_mm256_getmant_round_ph
2283 // CHECK: @llvm.x86.avx10.mask.vgetmantph256
2284 return _mm256_getmant_round_ph(__A, _MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2287 __m256h test_mm256_mask_getmant_round_ph(__m256h __W, __mmask16 __U, __m256h __A) {
2288 // CHECK-LABEL: @test_mm256_mask_getmant_round_ph
2289 // CHECK: @llvm.x86.avx10.mask.vgetmantph256
2290 return _mm256_mask_getmant_round_ph(__W, __U, __A, _MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2293 __m256h test_mm256_maskz_getmant_round_ph(__mmask16 __U, __m256h __A) {
2294 // CHECK-LABEL: @test_mm256_maskz_getmant_round_ph
2295 // CHECK: @llvm.x86.avx10.mask.vgetmantph256
2296 return _mm256_maskz_getmant_round_ph(__U, __A, _MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2299 __m256 test_mm256_getmant_round_ps(__m256 __A) {
2300 // CHECK-LABEL: @test_mm256_getmant_round_ps
2301 // CHECK: @llvm.x86.avx10.mask.vgetmantps256
2302 return _mm256_getmant_round_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2305 __m256 test_mm256_mask_getmant_round_ps(__m256 __W, __mmask8 __U, __m256 __A) {
2306 // CHECK-LABEL: @test_mm256_mask_getmant_round_ps
2307 // CHECK: @llvm.x86.avx10.mask.vgetmantps256
2308 return _mm256_mask_getmant_round_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2311 __m256 test_mm256_maskz_getmant_round_ps(__mmask8 __U, __m256 __A) {
2312 // CHECK-LABEL: @test_mm256_maskz_getmant_round_ps
2313 // CHECK: @llvm.x86.avx10.mask.vgetmantps256
2314 return _mm256_maskz_getmant_round_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan, _MM_FROUND_NO_EXC);
2317 __m256d test_mm256_max_round_pd(__m256d __A, __m256d __B) {
2318 // CHECK-LABEL: @test_mm256_max_round_pd
2319 // CHECK: @llvm.x86.avx10.vmaxpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 8)
2320 return _mm256_max_round_pd(__A, __B, _MM_FROUND_NO_EXC);
2323 __m256d test_mm256_mask_max_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2324 // CHECK-LABEL: @test_mm256_mask_max_round_pd
2325 // CHECK: @llvm.x86.avx10.vmaxpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 8)
2326 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2327 return _mm256_mask_max_round_pd(__W, __U, __A, __B, _MM_FROUND_NO_EXC);
2330 __m256d test_mm256_maskz_max_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2331 // CHECK-LABEL: @test_mm256_maskz_max_round_pd
2332 // CHECK: @llvm.x86.avx10.vmaxpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 8)
2333 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2334 return _mm256_maskz_max_round_pd(__U, __A, __B, _MM_FROUND_NO_EXC);
2337 __m256h test_mm256_max_round_ph(__m256h __A, __m256h __B) {
2338 // CHECK-LABEL: @test_mm256_max_round_ph
2339 // CHECK: @llvm.x86.avx10.vmaxph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 8)
2340 return _mm256_max_round_ph(__A, __B, _MM_FROUND_NO_EXC);
2343 __m256h test_mm256_mask_max_round_ph(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
2344 // CHECK-LABEL: @test_mm256_mask_max_round_ph
2345 // CHECK: @llvm.x86.avx10.vmaxph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 8)
2346 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2347 return _mm256_mask_max_round_ph(__W, __U, __A, __B, _MM_FROUND_NO_EXC);
2350 __m256h test_mm256_maskz_max_round_ph(__mmask8 __U, __m256h __A, __m256h __B) {
2351 // CHECK-LABEL: @test_mm256_maskz_max_round_ph
2352 // CHECK: @llvm.x86.avx10.vmaxph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 8)
2353 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2354 return _mm256_maskz_max_round_ph(__U, __A, __B, _MM_FROUND_NO_EXC);
2357 __m256 test_mm256_max_round_ps(__m256 __A, __m256 __B) {
2358 // CHECK-LABEL: @test_mm256_max_round_ps
2359 // CHECK: @llvm.x86.avx10.vmaxps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 8)
2360 return _mm256_max_round_ps(__A, __B, _MM_FROUND_NO_EXC);
2363 __m256 test_mm256_mask_max_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2364 // CHECK-LABEL: @test_mm256_mask_max_round_ps
2365 // CHECK: @llvm.x86.avx10.vmaxps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 8)
2366 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2367 return _mm256_mask_max_round_ps(__W, __U, __A, __B, _MM_FROUND_NO_EXC);
2370 __m256 test_mm256_maskz_max_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2371 // CHECK-LABEL: @test_mm256_maskz_max_round_ps
2372 // CHECK: @llvm.x86.avx10.vmaxps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 8)
2373 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2374 return _mm256_maskz_max_round_ps(__U, __A, __B, _MM_FROUND_NO_EXC);
2377 __m256d test_mm256_min_round_pd(__m256d __A, __m256d __B) {
2378 // CHECK-LABEL: @test_mm256_min_round_pd
2379 // CHECK: @llvm.x86.avx10.vminpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 8)
2380 return _mm256_min_round_pd(__A, __B, _MM_FROUND_NO_EXC);
2383 __m256d test_mm256_mask_min_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2384 // CHECK-LABEL: @test_mm256_mask_min_round_pd
2385 // CHECK: @llvm.x86.avx10.vminpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 8)
2386 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2387 return _mm256_mask_min_round_pd(__W, __U, __A, __B, _MM_FROUND_NO_EXC);
2390 __m256d test_mm256_maskz_min_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2391 // CHECK-LABEL: @test_mm256_maskz_min_round_pd
2392 // CHECK: @llvm.x86.avx10.vminpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 8)
2393 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2394 return _mm256_maskz_min_round_pd(__U, __A, __B, _MM_FROUND_NO_EXC);
2397 __m256h test_mm256_min_round_ph(__m256h __A, __m256h __B) {
2398 // CHECK-LABEL: @test_mm256_min_round_ph
2399 // CHECK: @llvm.x86.avx10.vminph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 8)
2400 return _mm256_min_round_ph(__A, __B, _MM_FROUND_NO_EXC);
2403 __m256h test_mm256_mask_min_round_ph(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
2404 // CHECK-LABEL: @test_mm256_mask_min_round_ph
2405 // CHECK: @llvm.x86.avx10.vminph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 8)
2406 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2407 return _mm256_mask_min_round_ph(__W, __U, __A, __B, _MM_FROUND_NO_EXC);
2410 __m256h test_mm256_maskz_min_round_ph(__mmask8 __U, __m256h __A, __m256h __B) {
2411 // CHECK-LABEL: @test_mm256_maskz_min_round_ph
2412 // CHECK: @llvm.x86.avx10.vminph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 8)
2413 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2414 return _mm256_maskz_min_round_ph(__U, __A, __B, _MM_FROUND_NO_EXC);
2417 __m256 test_mm256_min_round_ps(__m256 __A, __m256 __B) {
2418 // CHECK-LABEL: @test_mm256_min_round_ps
2419 // CHECK: @llvm.x86.avx10.vminps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 8)
2420 return _mm256_min_round_ps(__A, __B, _MM_FROUND_NO_EXC);
2423 __m256 test_mm256_mask_min_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2424 // CHECK-LABEL: @test_mm256_mask_min_round_ps
2425 // CHECK: @llvm.x86.avx10.vminps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 8)
2426 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2427 return _mm256_mask_min_round_ps(__W, __U, __A, __B, _MM_FROUND_NO_EXC);
2430 __m256 test_mm256_maskz_min_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2431 // CHECK-LABEL: @test_mm256_maskz_min_round_ps
2432 // CHECK: @llvm.x86.avx10.vminps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 8)
2433 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2434 return _mm256_maskz_min_round_ps(__U, __A, __B, _MM_FROUND_NO_EXC);
2437 __m256d test_mm256_mul_round_pd(__m256d __A, __m256d __B) {
2438 // CHECK-LABEL: @test_mm256_mul_round_pd
2439 // CHECK: @llvm.x86.avx10.vmulpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 11)
2440 return _mm256_mul_round_pd(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2443 __m256d test_mm256_mask_mul_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2444 // CHECK-LABEL: @test_mm256_mask_mul_round_pd
2445 // CHECK: @llvm.x86.avx10.vmulpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 10)
2446 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2447 return _mm256_mask_mul_round_pd(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
2450 __m256d test_mm256_maskz_mul_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2451 // CHECK-LABEL: @test_mm256_maskz_mul_round_pd
2452 // CHECK: @llvm.x86.avx10.vmulpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 9)
2453 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2454 return _mm256_maskz_mul_round_pd(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
2457 __m256h test_mm256_mul_round_ph(__m256h __A, __m256h __B) {
2458 // CHECK-LABEL: @test_mm256_mul_round_ph
2459 // CHECK: @llvm.x86.avx10.vmulph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 11)
2460 return _mm256_mul_round_ph(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2463 __m256h test_mm256_mask_mul_round_ph(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
2464 // CHECK-LABEL: @test_mm256_mask_mul_round_ph
2465 // CHECK: @llvm.x86.avx10.vmulph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 10)
2466 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2467 return _mm256_mask_mul_round_ph(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
2470 __m256h test_mm256_maskz_mul_round_ph(__mmask8 __U, __m256h __A, __m256h __B) {
2471 // CHECK-LABEL: @test_mm256_maskz_mul_round_ph
2472 // CHECK: @llvm.x86.avx10.vmulph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 9)
2473 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2474 return _mm256_maskz_mul_round_ph(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
2477 __m256 test_mm256_mul_round_ps(__m256 __A, __m256 __B) {
2478 // CHECK-LABEL: @test_mm256_mul_round_ps
2479 // CHECK: @llvm.x86.avx10.vmulps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 11)
2480 return _mm256_mul_round_ps(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2483 __m256 test_mm256_mask_mul_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2484 // CHECK-LABEL: @test_mm256_mask_mul_round_ps
2485 // CHECK: @llvm.x86.avx10.vmulps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 10)
2486 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2487 return _mm256_mask_mul_round_ps(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
2490 __m256 test_mm256_maskz_mul_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2491 // CHECK-LABEL: @test_mm256_maskz_mul_round_ps
2492 // CHECK: @llvm.x86.avx10.vmulps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 9)
2493 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2494 return _mm256_maskz_mul_round_ps(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
2497 __m256d test_mm256_range_round_pd(__m256d __A, __m256d __B) {
2498 // CHECK-LABEL: @test_mm256_range_round_pd
2499 // CHECK: @llvm.x86.avx10.mask.vrangepd256
2500 return _mm256_range_round_pd(__A, __B, 4, 8);
2503 __m256d test_mm256_mask_range_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2504 // CHECK-LABEL: @test_mm256_mask_range_round_pd
2505 // CHECK: @llvm.x86.avx10.mask.vrangepd256
2506 return _mm256_mask_range_round_pd(__W, __U, __A, __B, 4, 8);
2509 __m256d test_mm256_maskz_range_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2510 // CHECK-LABEL: @test_mm256_maskz_range_round_pd
2511 // CHECK: @llvm.x86.avx10.mask.vrangepd256
2512 return _mm256_maskz_range_round_pd(__U, __A, __B, 4, 8);
2515 __m256 test_mm256_range_round_ps(__m256 __A, __m256 __B) {
2516 // CHECK-LABEL: @test_mm256_range_round_ps
2517 // CHECK: @llvm.x86.avx10.mask.vrangeps256
2518 return _mm256_range_round_ps(__A, __B, 4, 8);
2521 __m256 test_mm256_mask_range_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2522 // CHECK-LABEL: @test_mm256_mask_range_round_ps
2523 // CHECK: @llvm.x86.avx10.mask.vrangeps256
2524 return _mm256_mask_range_round_ps(__W, __U, __A, __B, 4, 8);
2527 __m256 test_mm256_maskz_range_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2528 // CHECK-LABEL: @test_mm256_maskz_range_round_ps
2529 // CHECK: @llvm.x86.avx10.mask.vrangeps256
2530 return _mm256_maskz_range_round_ps(__U, __A, __B, 4, 8);
2533 __m256d test_mm256_reduce_round_pd(__m256d __A) {
2534 // CHECK-LABEL: @test_mm256_reduce_round_pd
2535 // CHECK: @llvm.x86.avx10.mask.vreducepd256
2536 return _mm256_reduce_round_pd(__A, 4, 8);
2539 __m256d test_mm256_mask_reduce_round_pd(__m256d __W, __mmask8 __U, __m256d __A) {
2540 // CHECK-LABEL: @test_mm256_mask_reduce_round_pd
2541 // CHECK: @llvm.x86.avx10.mask.vreducepd256
2542 return _mm256_mask_reduce_round_pd(__W, __U, __A, 4, 8);
2545 __m256d test_mm256_maskz_reduce_round_pd(__mmask8 __U, __m256d __A) {
2546 // CHECK-LABEL: @test_mm256_maskz_reduce_round_pd
2547 // CHECK: @llvm.x86.avx10.mask.vreducepd256
2548 return _mm256_maskz_reduce_round_pd(__U, __A, 4, 8);
2551 __m256h test_mm256_mask_reduce_round_ph(__m256h __A, __mmask8 __U, __m256h __C) {
2552 // CHECK-LABEL: @test_mm256_mask_reduce_round_ph
2553 // CHECK: @llvm.x86.avx10.mask.vreduceph256
2554 return _mm256_mask_reduce_round_ph(__A, __U, __C, 3, _MM_FROUND_NO_EXC);
2557 __m256h test_mm256_maskz_reduce_round_ph(__m256h __A, __mmask8 __U) {
2558 // CHECK-LABEL: @test_mm256_maskz_reduce_round_ph
2559 // CHECK: @llvm.x86.avx10.mask.vreduceph256
2560 return _mm256_maskz_reduce_round_ph(__U, __A, 3, _MM_FROUND_NO_EXC);
2563 __m256h test_mm256_reduce_round_ph(__m256h __A) {
2564 // CHECK-LABEL: @test_mm256_reduce_round_ph
2565 // CHECK: @llvm.x86.avx10.mask.vreduceph256
2566 return _mm256_reduce_round_ph(__A, 3, _MM_FROUND_NO_EXC);
2569 __m256 test_mm256_reduce_round_ps(__m256 __A) {
2570 // CHECK-LABEL: @test_mm256_reduce_round_ps
2571 // CHECK: @llvm.x86.avx10.mask.vreduceps256
2572 return _mm256_reduce_round_ps(__A, 4, 8);
2575 __m256 test_mm256_mask_reduce_round_ps(__m256 __W, __mmask8 __U, __m256 __A) {
2576 // CHECK-LABEL: @test_mm256_mask_reduce_round_ps
2577 // CHECK: @llvm.x86.avx10.mask.vreduceps256
2578 return _mm256_mask_reduce_round_ps(__W, __U, __A, 4, 8);
2581 __m256 test_mm256_maskz_reduce_round_ps(__mmask8 __U, __m256 __A) {
2582 // CHECK-LABEL: @test_mm256_maskz_reduce_round_ps
2583 // CHECK: @llvm.x86.avx10.mask.vreduceps256
2584 return _mm256_maskz_reduce_round_ps(__U, __A, 4, 8);
2587 __m256d test_mm256_roundscale_round_pd(__m256d __A)
2589 // CHECK-LABEL: @test_mm256_roundscale_round_pd
2590 // CHECK: @llvm.x86.avx10.mask.vrndscalepd256
2591 return _mm256_roundscale_round_pd(__A,_MM_FROUND_TO_ZERO,_MM_FROUND_NO_EXC);
2594 __m256d test_mm256_mask_roundscale_round_pd(__m256d __A,__mmask8 __U,__m256d __C)
2596 // CHECK-LABEL: @test_mm256_mask_roundscale_round_pd
2597 // CHECK: @llvm.x86.avx10.mask.vrndscalepd256
2598 return _mm256_mask_roundscale_round_pd(__A,__U,__C,_MM_FROUND_TO_ZERO,_MM_FROUND_NO_EXC);
2601 __m256d test_mm256_maskz_roundscale_round_pd(__m256d __A,__mmask8 __U)
2603 // CHECK-LABEL: @test_mm256_maskz_roundscale_round_pd
2604 // CHECK: @llvm.x86.avx10.mask.vrndscalepd256
2605 return _mm256_maskz_roundscale_round_pd(__U,__A,_MM_FROUND_TO_ZERO,_MM_FROUND_NO_EXC);
2608 __m256h test_mm256_mask_roundscale_round_ph(__m256h __A, __mmask8 __U, __m256h __C) {
2609 // CHECK-LABEL: @test_mm256_mask_roundscale_round_ph
2610 // CHECK: @llvm.x86.avx10.mask.vrndscaleph256
2611 return _mm256_mask_roundscale_round_ph(__A, __U, __C, 3, _MM_FROUND_NO_EXC);
2614 __m256h test_mm256_maskz_roundscale_round_ph(__m256h __A, __mmask8 __U) {
2615 // CHECK-LABEL: @test_mm256_maskz_roundscale_round_ph
2616 // CHECK: @llvm.x86.avx10.mask.vrndscaleph256
2617 return _mm256_maskz_roundscale_round_ph(__U, __A, 3, _MM_FROUND_NO_EXC);
2620 __m256h test_mm256_roundscale_round_ph(__m256h __A) {
2621 // CHECK-LABEL: @test_mm256_roundscale_round_ph
2622 // CHECK: @llvm.x86.avx10.mask.vrndscaleph256
2623 return _mm256_roundscale_round_ph(__A, 3, _MM_FROUND_NO_EXC);
2626 __m256 test_mm256_roundscale_round_ps(__m256 __A)
2628 // CHECK-LABEL: @test_mm256_roundscale_round_ps
2629 // CHECK: @llvm.x86.avx10.mask.vrndscaleps256
2630 return _mm256_roundscale_round_ps(__A,_MM_FROUND_TO_ZERO,_MM_FROUND_NO_EXC);
2633 __m256 test_mm256_mask_roundscale_round_ps(__m256 __A,__mmask8 __U,__m256 __C)
2635 // CHECK-LABEL: @test_mm256_mask_roundscale_round_ps
2636 // CHECK: @llvm.x86.avx10.mask.vrndscaleps256
2637 return _mm256_mask_roundscale_round_ps(__A,__U,__C,_MM_FROUND_TO_ZERO,_MM_FROUND_NO_EXC);
2640 __m256 test_mm256_maskz_roundscale_round_ps(__m256 __A,__mmask8 __U)
2642 // CHECK-LABEL: @test_mm256_maskz_roundscale_round_ps
2643 // CHECK: @llvm.x86.avx10.mask.vrndscaleps256
2644 return _mm256_maskz_roundscale_round_ps(__U,__A,_MM_FROUND_TO_ZERO,_MM_FROUND_NO_EXC);
2647 __m256d test_mm256_scalef_round_pd(__m256d __A, __m256d __B) {
2648 // CHECK-LABEL: @test_mm256_scalef_round_pd
2649 // CHECK: @llvm.x86.avx10.mask.vscalefpd256
2650 return _mm256_scalef_round_pd(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2653 __m256d test_mm256_mask_scalef_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2654 // CHECK-LABEL: @test_mm256_mask_scalef_round_pd
2655 // CHECK: @llvm.x86.avx10.mask.vscalefpd256
2656 return _mm256_mask_scalef_round_pd(__W, __U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2659 __m256d test_mm256_maskz_scalef_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2660 // CHECK-LABEL: @test_mm256_maskz_scalef_round_pd
2661 // CHECK: @llvm.x86.avx10.mask.vscalefpd256
2662 return _mm256_maskz_scalef_round_pd(__U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2665 __m256h test_mm256_scalef_round_ph(__m256h __A, __m256h __B) {
2666 // CHECK-LABEL: @test_mm256_scalef_round_ph
2667 // CHECK: @llvm.x86.avx10.mask.vscalefph256
2668 return _mm256_scalef_round_ph(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2671 __m256h test_mm256_mask_scalef_round_ph(__m256h __W, __mmask16 __U, __m256h __A, __m256h __B) {
2672 // CHECK-LABEL: @test_mm256_mask_scalef_round_ph
2673 // CHECK: @llvm.x86.avx10.mask.vscalefph256
2674 return _mm256_mask_scalef_round_ph(__W, __U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2677 __m256h test_mm256_maskz_scalef_round_ph(__mmask16 __U, __m256h __A, __m256h __B) {
2678 // CHECK-LABEL: @test_mm256_maskz_scalef_round_ph
2679 // CHECK: @llvm.x86.avx10.mask.vscalefph256
2680 return _mm256_maskz_scalef_round_ph(__U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2683 __m256 test_mm256_scalef_round_ps(__m256 __A, __m256 __B) {
2684 // CHECK-LABEL: @test_mm256_scalef_round_ps
2685 // CHECK: @llvm.x86.avx10.mask.vscalefps256
2686 return _mm256_scalef_round_ps(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2689 __m256 test_mm256_mask_scalef_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2690 // CHECK-LABEL: @test_mm256_mask_scalef_round_ps
2691 // CHECK: @llvm.x86.avx10.mask.vscalefps256
2692 return _mm256_mask_scalef_round_ps(__W, __U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2695 __m256 test_mm256_maskz_scalef_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2696 // CHECK-LABEL: @test_mm256_maskz_scalef_round_ps
2697 // CHECK: @llvm.x86.avx10.mask.vscalefps256
2698 return _mm256_maskz_scalef_round_ps(__U, __A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2701 __m256d test_mm256_sqrt_round_pd(__m256d __A)
2703 // CHECK-LABEL: @test_mm256_sqrt_round_pd
2704 // CHECK: call <4 x double> @llvm.x86.avx10.vsqrtpd256(<4 x double> %{{.*}}, i32 11)
2705 return _mm256_sqrt_round_pd(__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2708 __m256d test_mm256_mask_sqrt_round_pd(__m256d __W,__mmask8 __U,__m256d __A)
2710 // CHECK-LABEL: @test_mm256_mask_sqrt_round_pd
2711 // CHECK: call <4 x double> @llvm.x86.avx10.vsqrtpd256(<4 x double> %{{.*}}, i32 11)
2712 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2713 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2714 return _mm256_mask_sqrt_round_pd(__W,__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2717 __m256d test_mm256_maskz_sqrt_round_pd(__mmask8 __U,__m256d __A)
2719 // CHECK-LABEL: @test_mm256_maskz_sqrt_round_pd
2720 // CHECK: call <4 x double> @llvm.x86.avx10.vsqrtpd256(<4 x double> %{{.*}}, i32 11)
2721 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2722 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> {{.*}}
2723 return _mm256_maskz_sqrt_round_pd(__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2726 __m256h test_mm256_sqrt_round_ph(__m256h __A) {
2727 // CHECK-LABEL: @test_mm256_sqrt_round_ph
2728 // CHECK: call <16 x half> @llvm.x86.avx10.vsqrtph256(<16 x half> %{{.*}}, i32 11)
2729 return _mm256_sqrt_round_ph(__A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2732 __m256h test_mm256_mask_sqrt_round_ph(__m256h __W, __mmask16 __U, __m256h __A) {
2733 // CHECK-LABEL: @test_mm256_mask_sqrt_round_ph
2734 // CHECK: call <16 x half> @llvm.x86.avx10.vsqrtph256(<16 x half> %{{.*}}, i32 11)
2735 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2736 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2737 return _mm256_mask_sqrt_round_ph(__W, __U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2740 __m256h test_mm256_maskz_sqrt_round_ph(__mmask16 __U, __m256h __A) {
2741 // CHECK-LABEL: @test_mm256_maskz_sqrt_round_ph
2742 // CHECK: call <16 x half> @llvm.x86.avx10.vsqrtph256(<16 x half> %{{.*}}, i32 11)
2743 // CHECK: bitcast i16 %{{.*}} to <16 x i1>
2744 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> {{.*}}
2745 return _mm256_maskz_sqrt_round_ph(__U, __A, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2748 __m256 test_mm256_sqrt_round_ps(__m256 __A)
2750 // CHECK-LABEL: @test_mm256_sqrt_round_ps
2751 // CHECK: call <8 x float> @llvm.x86.avx10.vsqrtps256(<8 x float> %{{.*}}, i32 11)
2752 return _mm256_sqrt_round_ps(__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2755 __m256 test_mm256_mask_sqrt_round_ps(__m256 __W,__mmask8 __U,__m256 __A)
2757 // CHECK-LABEL: @test_mm256_mask_sqrt_round_ps
2758 // CHECK: call <8 x float> @llvm.x86.avx10.vsqrtps256(<8 x float> %{{.*}}, i32 11)
2759 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2760 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2761 return _mm256_mask_sqrt_round_ps(__W,__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2764 __m256 test_mm256_maskz_sqrt_round_ps(__mmask8 __U,__m256 __A)
2766 // CHECK-LABEL: @test_mm256_maskz_sqrt_round_ps
2767 // CHECK: call <8 x float> @llvm.x86.avx10.vsqrtps256(<8 x float> %{{.*}}, i32 11)
2768 // CHECK: bitcast i8 %{{.*}} to <8 x i1>
2769 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> {{.*}}
2770 return _mm256_maskz_sqrt_round_ps(__U,__A,_MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2773 __m256d test_mm256_sub_round_pd(__m256d __A, __m256d __B) {
2774 // CHECK-LABEL: @test_mm256_sub_round_pd
2775 // CHECK: @llvm.x86.avx10.vsubpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 11)
2776 return _mm256_sub_round_pd(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2779 __m256d test_mm256_mask_sub_round_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) {
2780 // CHECK-LABEL: @test_mm256_mask_sub_round_pd
2781 // CHECK: @llvm.x86.avx10.vsubpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 10)
2782 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2783 return _mm256_mask_sub_round_pd(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
2786 __m256d test_mm256_maskz_sub_round_pd(__mmask8 __U, __m256d __A, __m256d __B) {
2787 // CHECK-LABEL: @test_mm256_maskz_sub_round_pd
2788 // CHECK: @llvm.x86.avx10.vsubpd256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i32 9)
2789 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}}
2790 return _mm256_maskz_sub_round_pd(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
2793 __m256h test_mm256_sub_round_ph(__m256h __A, __m256h __B) {
2794 // CHECK-LABEL: @test_mm256_sub_round_ph
2795 // CHECK: @llvm.x86.avx10.vsubph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 11)
2796 return _mm256_sub_round_ph(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2799 __m256h test_mm256_mask_sub_round_ph(__m256h __W, __mmask8 __U, __m256h __A, __m256h __B) {
2800 // CHECK-LABEL: @test_mm256_mask_sub_round_ph
2801 // CHECK: @llvm.x86.avx10.vsubph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 10)
2802 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2803 return _mm256_mask_sub_round_ph(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
2806 __m256h test_mm256_maskz_sub_round_ph(__mmask8 __U, __m256h __A, __m256h __B) {
2807 // CHECK-LABEL: @test_mm256_maskz_sub_round_ph
2808 // CHECK: @llvm.x86.avx10.vsubph256(<16 x half> %{{.*}}, <16 x half> %{{.*}}, i32 9)
2809 // CHECK: select <16 x i1> %{{.*}}, <16 x half> %{{.*}}, <16 x half> %{{.*}}
2810 return _mm256_maskz_sub_round_ph(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);
2813 __m256 test_mm256_sub_round_ps(__m256 __A, __m256 __B) {
2814 // CHECK-LABEL: @test_mm256_sub_round_ps
2815 // CHECK: @llvm.x86.avx10.vsubps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 11)
2816 return _mm256_sub_round_ps(__A, __B, _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC);
2819 __m256 test_mm256_mask_sub_round_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) {
2820 // CHECK-LABEL: @test_mm256_mask_sub_round_ps
2821 // CHECK: @llvm.x86.avx10.vsubps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 10)
2822 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2823 return _mm256_mask_sub_round_ps(__W, __U, __A, __B, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
2826 __m256 test_mm256_maskz_sub_round_ps(__mmask8 __U, __m256 __A, __m256 __B) {
2827 // CHECK-LABEL: @test_mm256_maskz_sub_round_ps
2828 // CHECK: @llvm.x86.avx10.vsubps256(<8 x float> %{{.*}}, <8 x float> %{{.*}}, i32 9)
2829 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}}
2830 return _mm256_maskz_sub_round_ps(__U, __A, __B, _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC);