1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-unknown-unknown -target-feature +avx10.2-256 -emit-llvm -o - | FileCheck %s
8 int test_mm_cvttssd_i32(__m128d __A
) {
9 // CHECK-LABEL: @test_mm_cvttssd_i32
10 // CHECK: @llvm.x86.avx10.vcvttsd2sis
11 return _mm_cvtts_roundsd_i32(__A
, _MM_FROUND_NO_EXC
);
14 int test_mm_cvttssd_si32(__m128d __A
) {
15 // CHECK-LABEL: @test_mm_cvttssd_si32(
16 // CHECK: @llvm.x86.avx10.vcvttsd2sis(<2 x double>
17 return _mm_cvtts_roundsd_si32(__A
, _MM_FROUND_NO_EXC
);
20 unsigned test_mm_cvttssd_u32(__m128d __A
) {
21 // CHECK-LABEL: @test_mm_cvttssd_u32(
22 // CHECK: @llvm.x86.avx10.vcvttsd2usis(<2 x double>
23 return _mm_cvtts_roundsd_u32(__A
, _MM_FROUND_NO_EXC
);
26 int test_mm_cvttsss_i32(__m128 __A
) {
27 // CHECK-LABEL: @test_mm_cvttsss_i32(
28 // CHECK: @llvm.x86.avx10.vcvttss2sis(<4 x float>
29 return _mm_cvtts_roundss_i32(__A
, _MM_FROUND_NO_EXC
);
32 int test_mm_cvttsss_si32(__m128 __A
) {
33 // CHECK-LABEL: @test_mm_cvttsss_si32(
34 // CHECK: @llvm.x86.avx10.vcvttss2sis(<4 x float>
35 return _mm_cvtts_roundss_si32(__A
, _MM_FROUND_NO_EXC
);
38 unsigned test_mm_cvttsss_u32(__m128 __A
) {
39 // CHECK-LABEL: @test_mm_cvttsss_u32(
40 // CHECK: @llvm.x86.avx10.vcvttss2usis(<4 x float>
41 return _mm_cvtts_roundss_u32(__A
, _MM_FROUND_NO_EXC
);
46 __m128i
test_mm_cvttspd_epi64(__m128d A
){
47 // CHECK-LABEL: @test_mm_cvttspd_epi64
48 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.128(<2 x double>
49 return _mm_cvttspd_epi64(A
);
52 __m128i
test_mm_mask_cvttspd_epi64(__m128i W
, __mmask8 U
, __m128d A
){
53 // CHECK-LABEL: @test_mm_mask_cvttspd_epi64
54 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.128(<2 x double>
55 return _mm_mask_cvttspd_epi64(W
, U
, A
);
58 __m128i
test_mm_maskz_cvttspd_epi64(__mmask8 U
,__m128d A
){
59 // CHECK-LABEL: @test_mm_maskz_cvttspd_epi64
60 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.128(<2 x double>
61 return _mm_maskz_cvttspd_epi64(U
, A
);
64 __m128i
test_mm_cvttspd_epu64(__m128d A
){
65 // CHECK-LABEL: @test_mm_cvttspd_epu64
66 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.128(<2 x double>
67 return _mm_cvttspd_epu64(A
);
70 __m128i
test_mm_mask_cvttspd_epu64(__m128i W
, __mmask8 U
, __m128d A
){
71 // CHECK-LABEL: @test_mm_mask_cvttspd_epu64
72 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.128(<2 x double>
73 return _mm_mask_cvttspd_epu64(W
, U
, A
);
76 __m128i
test_mm_maskz_cvttspd_epu64(__mmask8 U
,__m128d A
){
77 // CHECK-LABEL: @test_mm_maskz_cvttspd_epu64
78 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.128(<2 x double>
79 return _mm_maskz_cvttspd_epu64(U
, A
);
83 __m256i
test_mm256_cvttspd_epi64(__m256d A
){
84 // CHECK-LABEL: @test_mm256_cvttspd_epi64
85 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.256(<4 x double>
86 return _mm256_cvttspd_epi64(A
);
89 __m256i
test_mm256_mask_cvttspd_epi64(__m256i W
,__mmask8 U
, __m256d A
){
90 // CHECK-LABEL: @test_mm256_mask_cvttspd_epi64
91 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.256(<4 x double>
92 return _mm256_mask_cvttspd_epi64(W
,U
, A
);
95 __m256i
test_mm256_maskz_cvttspd_epi64(__mmask8 U
, __m256d A
){
96 // CHECK-LABEL: @test_mm256_maskz_cvttspd_epi64
97 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.256(<4 x double>
98 return _mm256_maskz_cvttspd_epi64(U
, A
);
101 __m256i
test_mm256_cvtts_roundpd_epi64(__m256d A
){
102 // CHECK-LABEL: @test_mm256_cvtts_roundpd_epi64
103 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.256(<4 x double>
104 return _mm256_cvtts_roundpd_epi64(A
,_MM_FROUND_NEARBYINT
);
107 __m256i
test_mm256_mask_cvtts_roundpd_epi64(__m256i W
,__mmask8 U
, __m256d A
){
108 // CHECK-LABEL: @test_mm256_mask_cvtts_roundpd_epi64
109 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.256(<4 x double>
110 return _mm256_mask_cvtts_roundpd_epi64(W
,U
,A
,_MM_FROUND_NEARBYINT
);
113 __m256i
test_mm256_maskz_cvtts_roundpd_epi64(__mmask8 U
, __m256d A
){
114 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundpd_epi64
115 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.256(<4 x double>
116 return _mm256_maskz_cvtts_roundpd_epi64(U
,A
,_MM_FROUND_NEARBYINT
);
119 __m256i
test_mm256_cvttspd_epu64(__m256d A
){
120 // CHECK-LABEL: @test_mm256_cvttspd_epu64
121 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.256(<4 x double>
122 return _mm256_cvttspd_epu64(A
);
125 __m256i
test_mm256_mask_cvttspd_epu64(__m256i W
,__mmask8 U
, __m256d A
){
126 // CHECK-LABEL: @test_mm256_mask_cvttspd_epu64
127 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.256(<4 x double>
128 return _mm256_mask_cvttspd_epu64(W
,U
, A
);
131 __m256i
test_mm256_maskz_cvttspd_epu64(__mmask8 U
, __m256d A
){
132 // CHECK-LABEL: @test_mm256_maskz_cvttspd_epu64
133 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.256(<4 x double>
134 return _mm256_maskz_cvttspd_epu64(U
, A
);
137 __m256i
test_mm256_cvtts_roundpd_epu64(__m256d A
){
138 // CHECK-LABEL: @test_mm256_cvtts_roundpd_epu64
139 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.256(<4 x double>
140 return _mm256_cvtts_roundpd_epu64(A
,_MM_FROUND_NEARBYINT
);
143 __m256i
test_mm256_mask_cvtts_roundpd_epu64(__m256i W
,__mmask8 U
, __m256d A
){
144 // CHECK-LABEL: @test_mm256_mask_cvtts_roundpd_epu64
145 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.256(<4 x double>
146 return _mm256_mask_cvtts_roundpd_epu64(W
,U
,A
,_MM_FROUND_NEARBYINT
);
149 __m256i
test_mm256_maskz_cvtts_roundpd_epu64(__mmask8 U
, __m256d A
){
150 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundpd_epu64
151 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.256(<4 x double>
152 return _mm256_maskz_cvtts_roundpd_epu64(U
,A
,_MM_FROUND_NEARBYINT
);
156 __m128i
test_mm_cvttsps_epi64(__m128 A
){
157 // CHECK-LABEL: @test_mm_cvttsps_epi64
158 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.128(<4 x float>
159 return _mm_cvttsps_epi64(A
);
162 __m128i
test_mm_mask_cvttsps_epi64(__m128i W
, __mmask8 U
, __m128 A
){
163 // CHECK-LABEL: @test_mm_mask_cvttsps_epi64
164 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.128(<4 x float>
165 return _mm_mask_cvttsps_epi64(W
, U
, A
);
168 __m128i
test_mm_maskz_cvttsps_epi64(__mmask8 U
,__m128 A
){
169 // CHECK-LABEL: @test_mm_maskz_cvttsps_epi64
170 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.128(<4 x float>
171 return _mm_maskz_cvttsps_epi64(U
, A
);
174 __m128i
test_mm_cvttsps_epu64(__m128 A
){
175 // CHECK-LABEL: @test_mm_cvttsps_epu64
176 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.128(<4 x float>
177 return _mm_cvttsps_epu64(A
);
180 __m128i
test_mm_mask_cvttsps_epu64(__m128i W
, __mmask8 U
, __m128 A
){
181 // CHECK-LABEL: @test_mm_mask_cvttsps_epu64
182 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.128(<4 x float>
183 return _mm_mask_cvttsps_epu64(W
, U
, A
);
186 __m128i
test_mm_maskz_cvttsps_epu64(__mmask8 U
,__m128 A
){
187 // CHECK-LABEL: @test_mm_maskz_cvttsps_epu64
188 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.128(<4 x float>
189 return _mm_maskz_cvttsps_epu64(U
, A
);
192 __m256i
test_mm256_cvttsps_epi64(__m128 A
){
193 // CHECK-LABEL: @test_mm256_cvttsps_epi64
194 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.256(<4 x float>
195 return _mm256_cvttsps_epi64(A
);
198 __m256i
test_mm256_mask_cvttsps_epi64(__m256i W
,__mmask8 U
, __m128 A
){
199 // CHECK-LABEL: @test_mm256_mask_cvttsps_epi64
200 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.256(<4 x float>
201 return _mm256_mask_cvttsps_epi64(W
,U
, A
);
204 __m256i
test_mm256_maskz_cvttsps_epi64(__mmask8 U
, __m128 A
){
205 // CHECK-LABEL: @test_mm256_maskz_cvttsps_epi64
206 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.256(<4 x float>
207 return _mm256_maskz_cvttsps_epi64(U
, A
);
210 __m256i
test_mm256_cvtts_roundps_epi64(__m128 A
){
211 // CHECK-LABEL: @test_mm256_cvtts_roundps_epi64
212 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.256(<4 x float>
213 return _mm256_cvtts_roundps_epi64(A
, _MM_FROUND_NEARBYINT
);
216 __m256i
test_mm256_mask_cvtts_roundps_epi64(__m256i W
,__mmask8 U
, __m128 A
){
217 // CHECK-LABEL: @test_mm256_mask_cvtts_roundps_epi64
218 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.256(<4 x float>
219 return _mm256_mask_cvtts_roundps_epi64(W
,U
,A
,_MM_FROUND_NEARBYINT
);
222 __m256i
test_mm256_maskz_cvtts_roundps_epi64(__mmask8 U
, __m128 A
){
223 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundps_epi64
224 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.256(<4 x float>
225 return _mm256_maskz_cvtts_roundps_epi64(U
,A
,_MM_FROUND_NEARBYINT
);
228 __m256i
test_mm256_cvttsps_epu64(__m128 A
){
229 // CHECK-LABEL: @test_mm256_cvttsps_epu64
230 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.256(<4 x float>
231 return _mm256_cvttsps_epu64(A
);
234 __m256i
test_mm256_mask_cvttsps_epu64(__m256i W
,__mmask8 U
, __m128 A
){
235 // CHECK-LABEL: @test_mm256_mask_cvttsps_epu64
236 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.256(<4 x float>
237 return _mm256_mask_cvttsps_epu64(W
,U
, A
);
240 __m256i
test_mm256_maskz_cvttsps_epu64(__mmask8 U
, __m128 A
){
241 // CHECK-LABEL: @test_mm256_maskz_cvttsps_epu64
242 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.256(<4 x float>
243 return _mm256_maskz_cvttsps_epu64(U
, A
);
246 __m256i
test_mm256_cvtts_roundps_epu64(__m128 A
){
247 // CHECK-LABEL: @test_mm256_cvtts_roundps_epu64
248 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.256(<4 x float>
249 return _mm256_cvtts_roundps_epu64(A
, _MM_FROUND_NEARBYINT
);
252 __m256i
test_mm256_mask_cvtts_roundps_epu64(__m256i W
,__mmask8 U
, __m128 A
){
253 // CHECK-LABEL: @test_mm256_mask_cvtts_roundps_epu64
254 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.256(<4 x float>
255 return _mm256_mask_cvtts_roundps_epu64(W
,U
,A
,_MM_FROUND_NEARBYINT
);
258 __m256i
test_mm256_maskz_cvtts_roundps_epu64(__mmask8 U
, __m128 A
){
259 // CHECK-LABEL: @test_mm256_maskz_cvtts_roundps_epu64
260 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.256(<4 x float>
261 return _mm256_maskz_cvtts_roundps_epu64(U
,A
,_MM_FROUND_NEARBYINT
);