1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386 -target-feature +avx10.2-256 -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,X86
2 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64 -target-feature +avx10.2-256 -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,X64
7 __m128i
test_mm_cvttspd_epi32(__m128d A
){
8 // CHECK-LABEL: @test_mm_cvttspd_epi32
9 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.128(<2 x double>
10 return _mm_cvttspd_epi32(A
);
13 __m128i
test_mm_mask_cvttspd_epi32(__m128i W
, __mmask8 U
, __m128d A
){
14 // CHECK-LABEL: @test_mm_mask_cvttspd_epi32
15 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.128(<2 x double>
16 return _mm_mask_cvttspd_epi32(W
,U
,A
);
19 __m128i
test_mm_maskz_cvttspd_epi32( __mmask8 U
, __m128d A
){
20 // CHECK-LABEL: @test_mm_maskz_cvttspd_epi32(
21 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.128(<2 x double>
22 return _mm_maskz_cvttspd_epi32(U
,A
);
25 __m128i
test_mm256_cvttspd_epi32(__m256d A
){
26 // CHECK-LABEL: @test_mm256_cvttspd_epi32
27 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.256(<4 x double>
28 return _mm256_cvttspd_epi32(A
);
31 __m128i
test_mm256_mask_cvttspd_epi32(__m128i W
,__mmask8 U
, __m256d A
){
32 // CHECK-LABEL: @test_mm256_mask_cvttspd_epi32
33 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.256(<4 x double>
34 return _mm256_mask_cvttspd_epi32(W
,U
,A
);
37 __m128i
test_mm256_maskz_cvttspd_epi32(__mmask8 U
, __m256d A
){
38 // CHECK-LABEL: @test_mm256_maskz_cvttspd_epi32
39 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.256(<4 x double>
40 return _mm256_maskz_cvttspd_epi32(U
,A
);
43 __m128i
test_mm256_cvtts_roundpd_epi32(__m256d A
){
44 // CHECK-LABEL: @test_mm256_cvtts_roundpd_epi32
45 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.256(<4 x double>
46 return _mm256_cvtts_roundpd_epi32(A
, _MM_FROUND_NEARBYINT
);
49 __m128i
test_mm256_mask_cvtts_roundpd_epi32(__m128i W
,__mmask8 U
, __m256d A
){
50 // CHECK-LABEL: @test_mm256_mask_cvtts_roundpd_epi32
51 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.256(<4 x double>
52 return _mm256_mask_cvtts_roundpd_epi32(W
,U
,A
,_MM_FROUND_NEARBYINT
);
55 __m128i
test_mm256_maskz_cvtts_roundpd_epi32(__mmask8 U
, __m256d A
){
56 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundpd_epi32
57 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.256(<4 x double>
58 return _mm256_maskz_cvtts_roundpd_epi32(U
,A
,_MM_FROUND_NEARBYINT
);
61 __m128i
test_mm_cvttspd_epu32(__m128d A
){
62 // CHECK-LABEL: @test_mm_cvttspd_epu32
63 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.128(<2 x double>
64 return _mm_cvttspd_epu32(A
);
67 __m128i
test_mm_mask_cvttspd_epu32(__m128i W
, __mmask8 U
, __m128d A
){
68 // CHECK-LABEL: @test_mm_mask_cvttspd_epu32
69 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.128(<2 x double>
70 return _mm_mask_cvttspd_epu32(W
,U
,A
);
73 __m128i
test_mm_maskz_cvttspd_epu32( __mmask8 U
, __m128d A
){
74 // CHECK-LABEL: @test_mm_maskz_cvttspd_epu32
75 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.128(<2 x double>
76 return _mm_maskz_cvttspd_epu32(U
,A
);
80 __m128i
test_mm256_cvttspd_epu32(__m256d A
){
81 // CHECK-LABEL: @test_mm256_cvttspd_epu32
82 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.256(<4 x double>
83 return _mm256_cvttspd_epu32(A
);
86 __m128i
test_mm256_mask_cvttspd_epu32(__m128i W
,__mmask8 U
, __m256d A
){
87 // CHECK-LABEL: @test_mm256_mask_cvttspd_epu32
88 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.256(<4 x double>
89 return _mm256_mask_cvttspd_epu32(W
,U
,A
);
92 __m128i
test_mm256_maskz_cvttspd_epu32(__mmask8 U
, __m256d A
){
93 // CHECK-LABEL: @test_mm256_maskz_cvttspd_epu32
94 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.256(<4 x double>
95 return _mm256_maskz_cvttspd_epu32(U
,A
);
98 __m128i
test_mm256_cvtts_roundpd_epu32(__m256d A
){
99 // CHECK-LABEL: @test_mm256_cvtts_roundpd_epu32
100 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.256(<4 x double>
101 return _mm256_cvtts_roundpd_epu32(A
, _MM_FROUND_NEARBYINT
);
104 __m128i
test_mm256_mask_cvtts_roundpd_epu32(__m128i W
,__mmask8 U
, __m256d A
){
105 // CHECK-LABEL: @test_mm256_mask_cvtts_roundpd_epu32
106 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.256(<4 x double>
107 return _mm256_mask_cvtts_roundpd_epu32(W
,U
,A
,_MM_FROUND_NEARBYINT
);
110 __m128i
test_mm256_maskz_cvtts_roundpd_epu32(__mmask8 U
, __m256d A
){
111 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundpd_epu32
112 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.256(<4 x double>
113 return _mm256_maskz_cvtts_roundpd_epu32(U
,A
,_MM_FROUND_NEARBYINT
);
116 __m128i
test_mm_cvttsps_epi32(__m128 A
){
117 // CHECK-LABEL: @test_mm_cvttsps_epi32
118 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.128(<4 x float>
119 return _mm_cvttsps_epi32(A
);
122 __m128i
test_mm_mask_cvttsps_epi32(__m128i W
, __mmask8 U
, __m128 A
){
123 // CHECK-LABEL: @test_mm_mask_cvttsps_epi32
124 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.128(<4 x float>
125 return _mm_mask_cvttsps_epi32(W
,U
,A
);
128 __m128i
test_mm_maskz_cvttsps_epi32( __mmask8 U
, __m128 A
){
129 // CHECK-LABEL: @test_mm_maskz_cvttsps_epi32
130 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.128(<4 x float>
131 return _mm_maskz_cvttsps_epi32(U
,A
);
134 __m256i
test_mm256_cvttsps_epi32(__m256 A
){
135 // CHECK-LABEL: @test_mm256_cvttsps_epi32
136 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.256(<8 x float>
137 return _mm256_cvttsps_epi32(A
);
140 __m256i
test_mm256_mask_cvttsps_epi32(__m256i W
,__mmask8 U
, __m256 A
){
141 // CHECK-LABEL: @test_mm256_mask_cvttsps_epi32
142 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.256(<8 x float>
143 return _mm256_mask_cvttsps_epi32(W
,U
,A
);
146 __m256i
test_mm256_maskz_cvttsps_epi32(__mmask8 U
, __m256 A
){
147 // CHECK-LABEL: @test_mm256_maskz_cvttsps_epi32
148 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.256(<8 x float>
149 return _mm256_maskz_cvttsps_epi32(U
,A
);
152 __m256i
test_mm256_cvtts_roundps_epi32(__m256 A
){
153 // CHECK-LABEL: @test_mm256_cvtts_roundps_epi32
154 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.256(<8 x float>
155 return _mm256_cvtts_roundps_epi32(A
, _MM_FROUND_NEARBYINT
);
158 __m256i
test_mm256_mask_cvtts_roundps_epi32(__m256i W
,__mmask8 U
, __m256 A
){
159 // CHECK-LABEL: @test_mm256_mask_cvtts_roundps_epi32
160 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.256(<8 x float>
161 return _mm256_mask_cvtts_roundps_epi32(W
,U
,A
,_MM_FROUND_NEARBYINT
);
164 __m256i
test_mm256_maskz_cvtts_roundps_epi32(__mmask8 U
, __m256 A
){
165 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundps_epi32
166 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.256(<8 x float>
167 return _mm256_maskz_cvtts_roundps_epi32(U
,A
,_MM_FROUND_NEARBYINT
);
170 __m128i
test_mm_cvttsps_epu32(__m128 A
){
171 // CHECK-LABEL: @test_mm_cvttsps_epu32
172 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.128(<4 x float>
173 return _mm_cvttsps_epu32(A
);
176 __m128i
test_mm_mask_cvttsps_epu32(__m128i W
, __mmask8 U
, __m128 A
){
177 // CHECK-LABEL: @test_mm_mask_cvttsps_epu32
178 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.128(<4 x float>
179 return _mm_mask_cvttsps_epu32(W
,U
,A
);
182 __m128i
test_mm_maskz_cvttsps_epu32( __mmask8 U
, __m128 A
){
183 // CHECK-LABEL: @test_mm_maskz_cvttsps_epu32
184 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.128(<4 x float>
185 return _mm_maskz_cvttsps_epu32(U
,A
);
188 __m256i
test_mm256_cvttsps_epu32(__m256 A
){
189 // CHECK-LABEL: @test_mm256_cvttsps_epu32
190 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.256(<8 x float>
191 return _mm256_cvttsps_epu32(A
);
194 __m256i
test_mm256_mask_cvttsps_epu32(__m256i W
,__mmask8 U
, __m256 A
){
195 // CHECK-LABEL: @test_mm256_mask_cvttsps_epu32
196 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.256(<8 x float>
197 return _mm256_mask_cvttsps_epu32(W
,U
,A
);
200 __m256i
test_mm256_maskz_cvttsps_epu32(__mmask8 U
, __m256 A
){
201 // CHECK-LABEL: @test_mm256_maskz_cvttsps_epu32
202 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.256(<8 x float>
203 return _mm256_maskz_cvttsps_epu32(U
,A
);
206 __m256i
test_mm256_cvtts_roundps_epu32(__m256 A
){
207 // CHECK-LABEL: @test_mm256_cvtts_roundps_epu32
208 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.256(<8 x float>
209 return _mm256_cvtts_roundps_epu32(A
, _MM_FROUND_NEARBYINT
);
212 __m256i
test_mm256_mask_cvtts_roundps_epu32(__m256i W
,__mmask8 U
, __m256 A
){
213 // CHECK-LABEL: @test_mm256_mask_cvtts_roundps_epu32
214 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.256(<8 x float>
215 return _mm256_mask_cvtts_roundps_epu32(W
,U
,A
,_MM_FROUND_NEARBYINT
);
218 __m256i
test_mm256_maskz_cvtts_roundps_epu32(__mmask8 U
, __m256 A
){
219 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundps_epu32
220 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.256(<8 x float>
221 return _mm256_maskz_cvtts_roundps_epu32(U
,A
,_MM_FROUND_NEARBYINT
);