[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGen / X86 / avx10_2satcvtds-builtins-x64.c
blob00384731a51f71953a8b529c30d1e8dc8d884a73
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
3 #include <immintrin.h>
4 #include <stddef.h>
6 // scalar
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);
44 // vector
45 // 128 bit
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);
82 // 256 bit
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 );
155 // 128 bit
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 );