[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / clang / test / CodeGen / X86 / avx10_2_512satcvtds-builtins.c
blobcccee04627d22e6c08de2fb299a9d8297d969133
1 // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386 -target-feature +avx10.2-512 -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-512 -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,X64
4 #include <immintrin.h>
5 #include <stddef.h>
7 __m256i test_mm512_cvttspd_epi32(__m512d A) {
8 // CHECK-LABEL: test_mm512_cvttspd_epi32
9 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.512(<8 x double>
10 return _mm512_cvttspd_epi32(A);
13 __m256i test_mm512_mask_cvttspd_epi32(__m256i W, __mmask8 U, __m512d A) {
14 // CHECK-LABEL: test_mm512_mask_cvttspd_epi32
15 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.512(<8 x double>
16 return _mm512_mask_cvttspd_epi32(W, U, A);
19 __m256i test_mm512_maskz_cvttspd_epi32(__mmask8 U, __m512d A) {
20 // CHECK-LABEL: test_mm512_maskz_cvttspd_epi32
21 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.512(<8 x double>
22 return _mm512_maskz_cvttspd_epi32(U, A);
25 __m256i test_mm512_cvtts_roundpd_epi32(__m512d A) {
26 // CHECK-LABEL: test_mm512_cvtts_roundpd_epi32
27 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.512(<8 x double>
28 return _mm512_cvtts_roundpd_epi32(A, _MM_FROUND_NO_EXC);
31 __m256i test_mm512_mask_cvtts_roundpd_epi32(__m256i W, __mmask8 U, __m512d A) {
32 // CHECK-LABEL: test_mm512_mask_cvtts_roundpd_epi32
33 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.512(<8 x double>
34 return _mm512_mask_cvtts_roundpd_epi32(W, U, A, _MM_FROUND_NO_EXC);
37 __m256i test_mm512_maskz_cvtts_roundpd_epi32(__mmask8 U, __m512d A) {
38 // CHECK-LABEL: test_mm512_maskz_cvtts_roundpd_epi32
39 // CHECK: @llvm.x86.avx10.mask.vcvttpd2dqs.round.512(<8 x double>
40 return _mm512_maskz_cvtts_roundpd_epi32(U, A, _MM_FROUND_NO_EXC);
43 __m256i test_mm512_cvttspd_epu32(__m512d A) {
44 // CHECK-LABEL: test_mm512_cvttspd_epu32
45 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.512(<8 x double>
46 return _mm512_cvttspd_epu32(A);
49 __m256i test_mm512_mask_cvttspd_epu32(__m256i W, __mmask8 U, __m512d A) {
50 // CHECK-LABEL: test_mm512_mask_cvttspd_epu32
51 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.512(<8 x double>
52 return _mm512_mask_cvttspd_epu32(W, U, A);
55 __m256i test_mm512_maskz_cvttspd_epu32(__mmask8 U, __m512d A) {
56 // CHECK-LABEL: test_mm512_maskz_cvttspd_epu32
57 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.512(<8 x double>
58 return _mm512_maskz_cvttspd_epu32(U, A);
61 __m256i test_mm512_cvtts_roundpd_epu32(__m512d A) {
62 // CHECK-LABEL: test_mm512_cvtts_roundpd_epu32
63 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.512(<8 x double>
64 return _mm512_cvtts_roundpd_epu32(A, _MM_FROUND_NO_EXC);
67 __m256i test_mm512_mask_cvtts_roundpd_epu32(__m256i W, __mmask8 U, __m512d A) {
68 // CHECK-LABEL: test_mm512_mask_cvtts_roundpd_epu32
69 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.512(<8 x double>
70 return _mm512_mask_cvtts_roundpd_epu32(W, U, A, _MM_FROUND_NO_EXC);
73 __m256i test_mm512_maskz_cvtts_roundpd_epu32(__mmask8 U, __m512d A) {
74 // CHECK-LABEL: test_mm512_maskz_cvtts_roundpd_epu32
75 // CHECK: @llvm.x86.avx10.mask.vcvttpd2udqs.round.512(<8 x double>
76 return _mm512_maskz_cvtts_roundpd_epu32(U, A, _MM_FROUND_NO_EXC);
79 __m512i test_mm512_cvttsps_epi32(__m512 A) {
80 // CHECK-LABEL: test_mm512_cvttsps_epi32
81 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.512(<16 x float>
82 return _mm512_cvttsps_epi32(A);
85 __m512i test_mm512_mask_cvttsps_epi32(__m512i W, __mmask8 U, __m512 A) {
86 // CHECK-LABEL: test_mm512_mask_cvttsps_epi32
87 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.512(<16 x float>
88 return _mm512_mask_cvttsps_epi32(W, U, A);
91 __m512i test_mm512_maskz_cvttsps_epi32(__mmask8 U, __m512 A) {
92 // CHECK-LABEL: test_mm512_maskz_cvttsps_epi32
93 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.512(<16 x float>
94 return _mm512_maskz_cvttsps_epi32(U, A);
97 __m512i test_mm512_cvtts_roundps_epi32(__m512 A) {
98 // CHECK-LABEL: test_mm512_cvtts_roundps_epi32
99 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.512(<16 x float>
100 return _mm512_cvtts_roundps_epi32(A, _MM_FROUND_NO_EXC);
103 __m512i test_mm512_mask_cvtts_roundps_epi32(__m512i W, __mmask8 U, __m512 A) {
104 // CHECK-LABEL: test_mm512_mask_cvtts_roundps_epi32
105 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.512(<16 x float>
106 return _mm512_mask_cvtts_roundps_epi32(W, U, A, _MM_FROUND_NO_EXC);
109 __m512i test_mm512_maskz_cvtts_roundps_epi32(__mmask8 U, __m512 A) {
110 // CHECK-LABEL: test_mm512_maskz_cvtts_roundps_epi32
111 // CHECK: @llvm.x86.avx10.mask.vcvttps2dqs.round.512(<16 x float>
112 return _mm512_maskz_cvtts_roundps_epi32(U, A, _MM_FROUND_NO_EXC);
115 __m512i test_mm512_cvttsps_epu32(__m512 A) {
116 // CHECK-LABEL: test_mm512_cvttsps_epu32
117 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.512(<16 x float>
118 return _mm512_cvttsps_epu32(A);
121 __m512i test_mm512_mask_cvttsps_epu32(__m512i W, __mmask8 U, __m512 A) {
122 // CHECK-LABEL: test_mm512_mask_cvttsps_epu32
123 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.512(<16 x float>
124 return _mm512_mask_cvttsps_epu32(W, U, A);
127 __m512i test_mm512_maskz_cvttsps_epu32(__mmask8 U, __m512 A) {
128 // CHECK-LABEL: test_mm512_maskz_cvttsps_epu32
129 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.512(<16 x float>
130 return _mm512_maskz_cvttsps_epu32(U, A);
133 __m512i test_mm512_cvtts_roundps_epu32(__m512 A) {
134 // CHECK-LABEL: test_mm512_cvtts_roundps_epu32
135 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.512(<16 x float>
136 return _mm512_cvtts_roundps_epu32(A, _MM_FROUND_NO_EXC);
139 __m512i test_mm512_mask_cvtts_roundps_epu32(__m512i W, __mmask8 U, __m512 A) {
140 // CHECK-LABEL: test_mm512_mask_cvtts_roundps_epu32
141 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.512(<16 x float>
142 return _mm512_mask_cvtts_roundps_epu32(W, U, A, _MM_FROUND_NO_EXC);
144 __m512i test_mm512_maskz_cvtts_roundps_epu32(__mmask8 U, __m512 A) {
145 // CHECK-LABEL: test_mm512_maskz_cvtts_roundps_epu32
146 // CHECK: @llvm.x86.avx10.mask.vcvttps2udqs.round.512(<16 x float>
147 return _mm512_maskz_cvtts_roundps_epu32(U, A, _MM_FROUND_NO_EXC);
150 // X64: {{.*}}
151 // X86: {{.*}}