[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / clang / test / CodeGen / X86 / avx10_2satcvtds-builtins.c
blobbb90f6a086fa2b67f00c1ca12217a667262c0472
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
4 #include <immintrin.h>
5 #include <stddef.h>
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);
224 // X64: {{.*}}
225 // X86: {{.*}}