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
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
);