1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-unknown-unknown -target-feature +avx10.2-512 -emit-llvm -o - | FileCheck %s
6 long long test_mm_cvttssd_si64(__m128d __A
) {
7 // CHECK-LABEL: @test_mm_cvttssd_si64(
8 // CHECK: @llvm.x86.avx10.vcvttsd2sis64(<2 x double>
9 return _mm_cvtts_roundsd_si64(__A
, _MM_FROUND_NO_EXC
);
12 long long test_mm_cvttssd_i64(__m128d __A
) {
13 // CHECK-LABEL: @test_mm_cvttssd_i64(
14 // CHECK: @llvm.x86.avx10.vcvttsd2sis64(<2 x double>
15 return _mm_cvtts_roundsd_i64(__A
, _MM_FROUND_NO_EXC
);
18 unsigned long long test_mm_cvttssd_u64(__m128d __A
) {
19 // CHECK-LABEL: @test_mm_cvttssd_u64(
20 // CHECK: @llvm.x86.avx10.vcvttsd2usis64(<2 x double>
21 return _mm_cvtts_roundsd_u64(__A
, _MM_FROUND_NO_EXC
);
24 float test_mm_cvttsss_i64(__m128 __A
) {
25 // CHECK-LABEL: @test_mm_cvttsss_i64(
26 // CHECK: @llvm.x86.avx10.vcvttss2sis64(<4 x float>
27 return _mm_cvtts_roundss_i64(__A
, _MM_FROUND_NO_EXC
);
30 long long test_mm_cvttsss_si64(__m128 __A
) {
31 // CHECK-LABEL: @test_mm_cvttsss_si64(
32 // CHECK: @llvm.x86.avx10.vcvttss2sis64(<4 x float>
33 return _mm_cvtts_roundss_si64(__A
, _MM_FROUND_NO_EXC
);
36 unsigned long long test_mm_cvttsss_u64(__m128 __A
) {
37 // CHECK-LABEL: @test_mm_cvttsss_u64(
38 // CHECK: @llvm.x86.avx10.vcvttss2usis64(<4 x float>
39 return _mm_cvtts_roundss_u64(__A
, _MM_FROUND_NO_EXC
);
42 __m512i
test_mm512_cvttspd_epi64(__m512d A
) {
43 // CHECK-LABEL: test_mm512_cvttspd_epi64
44 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>
45 return _mm512_cvttspd_epi64(A
);
48 __m512i
test_mm512_mask_cvttspd_epi64(__m512i W
, __mmask8 U
, __m512d A
) {
49 // CHECK-LABEL: test_mm512_mask_cvttspd_epi64
50 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>
51 return _mm512_mask_cvttspd_epi64(W
, U
, A
);
54 __m512i
test_mm512_maskz_cvttspd_epi64(__mmask8 U
, __m512d A
) {
55 // CHECK-LABEL: test_mm512_maskz_cvttspd_epi64
56 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>
57 return _mm512_maskz_cvttspd_epi64(U
, A
);
60 __m512i
test_mm512_cvtts_roundpd_epi64(__m512d A
) {
61 // CHECK-LABEL: test_mm512_cvtts_roundpd_epi64
62 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>
63 return _mm512_cvtts_roundpd_epi64(A
, _MM_FROUND_NO_EXC
);
66 __m512i
test_mm512_mask_cvtts_roundpd_epi64(__m512i W
, __mmask8 U
, __m512d A
) {
67 // CHECK-LABEL: test_mm512_mask_cvtts_roundpd_epi64
68 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>
69 return _mm512_mask_cvtts_roundpd_epi64(W
, U
, A
, _MM_FROUND_NO_EXC
);
72 __m512i
test_mm512_maskz_cvtts_roundpd_epi64(__mmask8 U
, __m512d A
) {
73 // CHECK-LABEL: test_mm512_maskz_cvtts_roundpd_epi64
74 // CHECK: @llvm.x86.avx10.mask.vcvttpd2qqs.round.512(<8 x double>
75 return _mm512_maskz_cvtts_roundpd_epi64(U
, A
, _MM_FROUND_NO_EXC
);
78 __m512i
test_mm512_cvttspd_epu64(__m512d A
) {
79 // CHECK-LABEL: test_mm512_cvttspd_epu64
80 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>
81 return _mm512_cvttspd_epu64(A
);
84 __m512i
test_mm512_mask_cvttspd_epu64(__m512i W
, __mmask8 U
, __m512d A
) {
85 // CHECK-LABEL: test_mm512_mask_cvttspd_epu64
86 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>
87 return _mm512_mask_cvttspd_epu64(W
, U
, A
);
90 __m512i
test_mm512_maskz_cvttspd_epu64(__mmask8 U
, __m512d A
) {
91 // CHECK-LABEL: test_mm512_maskz_cvttspd_epu64
92 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>
93 return _mm512_maskz_cvttspd_epu64(U
, A
);
96 __m512i
test_mm512_cvtts_roundpd_epu64(__m512d A
) {
97 // CHECK-LABEL: test_mm512_cvtts_roundpd_epu64
98 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>
99 return _mm512_cvtts_roundpd_epu64(A
, _MM_FROUND_NO_EXC
);
102 __m512i
test_mm512_mask_cvtts_roundpd_epu64(__m512i W
, __mmask8 U
, __m512d A
) {
103 // CHECK-LABEL: test_mm512_mask_cvtts_roundpd_epu64
104 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>
105 return _mm512_mask_cvtts_roundpd_epu64(W
, U
, A
, _MM_FROUND_NO_EXC
);
108 __m512i
test_mm512_maskz_cvtts_roundpd_epu64(__mmask8 U
, __m512d A
) {
109 // CHECK-LABEL: test_mm512_maskz_cvtts_roundpd_epu64
110 // CHECK: @llvm.x86.avx10.mask.vcvttpd2uqqs.round.512(<8 x double>
111 return _mm512_maskz_cvtts_roundpd_epu64(U
, A
, _MM_FROUND_NO_EXC
);
114 __m512i
test_mm512_cvttsps_epi64(__m256 A
) {
115 // CHECK-LABEL: test_mm512_cvttsps_epi64
116 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>
117 return _mm512_cvttsps_epi64(A
);
120 __m512i
test_mm512_mask_cvttsps_epi64(__m512i W
, __mmask8 U
, __m256 A
) {
121 // CHECK-LABEL: test_mm512_mask_cvttsps_epi64
122 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>
123 return _mm512_mask_cvttsps_epi64(W
, U
, A
);
126 __m512i
test_mm512_maskz_cvttsps_epi64(__mmask8 U
, __m256 A
) {
127 // CHECK-LABEL: test_mm512_maskz_cvttsps_epi64
128 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>
129 return _mm512_maskz_cvttsps_epi64(U
, A
);
132 __m512i
test_mm512_cvtts_roundps_epi64(__m256 A
) {
133 // CHECK-LABEL: test_mm512_cvtts_roundps_epi64
134 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>
135 return _mm512_cvtts_roundps_epi64(A
, _MM_FROUND_NO_EXC
);
138 __m512i
test_mm512_mask_cvtts_roundps_epi64(__m512i W
, __mmask8 U
, __m256 A
) {
139 // CHECK-LABEL: test_mm512_mask_cvtts_roundps_epi64
140 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>
141 return _mm512_mask_cvtts_roundps_epi64(W
, U
, A
, _MM_FROUND_NO_EXC
);
144 __m512i
test_mm512_maskz_cvtts_roundps_epi64(__mmask8 U
, __m256 A
) {
145 // CHECK-LABEL: test_mm512_maskz_cvtts_roundps_epi64
146 // CHECK: @llvm.x86.avx10.mask.vcvttps2qqs.round.512(<8 x float>
147 return _mm512_maskz_cvtts_roundps_epi64(U
, A
, _MM_FROUND_NO_EXC
);
150 __m512i
test_mm512_cvttsps_epu64(__m256 A
) {
151 // CHECK-LABEL: test_mm512_cvttsps_epu64
152 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>
153 return _mm512_cvttsps_epu64(A
);
156 __m512i
test_mm512_mask_cvttsps_epu64(__m512i W
, __mmask8 U
, __m256 A
) {
157 // CHECK-LABEL: test_mm512_mask_cvttsps_epu64
158 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>
159 return _mm512_mask_cvttsps_epu64(W
, U
, A
);
162 __m512i
test_mm512_maskz_cvttsps_epu64(__mmask8 U
, __m256 A
) {
163 // CHECK-LABEL: test_mm512_maskz_cvttsps_epu64
164 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>
165 return _mm512_maskz_cvttsps_epu64(U
, A
);
168 __m512i
test_mm512_cvtts_roundps_epu64(__m256 A
) {
169 // CHECK-LABEL: test_mm512_cvtts_roundps_epu64
170 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>
171 return _mm512_cvtts_roundps_epu64(A
, _MM_FROUND_NO_EXC
);
174 __m512i
test_mm512_mask_cvtts_roundps_epu64(__m512i W
, __mmask8 U
, __m256 A
) {
175 // CHECK-LABEL: test_mm512_mask_cvtts_roundps_epu64
176 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>
177 return _mm512_mask_cvtts_roundps_epu64(W
, U
, A
, _MM_FROUND_NO_EXC
);
180 __m512i
test_mm512_maskz_cvtts_roundps_epu64(__mmask8 U
, __m256 A
) {
181 // CHECK-LABEL: test_mm512_maskz_cvtts_roundps_epu64
182 // CHECK: @llvm.x86.avx10.mask.vcvttps2uqqs.round.512(<8 x float>
183 return _mm512_maskz_cvtts_roundps_epu64(U
, A
, _MM_FROUND_NO_EXC
);