Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / CodeGen / X86 / avx10_2_512satcvtds-builtins-x64.c
blob8c8959a03d7bd41ee32516d921f630b2545244c8
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
3 #include <immintrin.h>
4 #include <stddef.h>
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);