1 // RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=x86_64 -target-feature +avx10.2-512 \
2 // RUN: -emit-llvm -o - -Wno-invalid-feature-combination -Wall -Werror | FileCheck %s
3 // RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=i386 -target-feature +avx10.2-512 \
4 // RUN: -emit-llvm -o - -Wno-invalid-feature-combination -Wall -Werror | FileCheck %s
8 __m512bh
test_mm512_minmaxne_pbh(__m512bh __A
, __m512bh __B
) {
9 // CHECK-LABEL: @test_mm512_minmaxne_pbh(
10 // CHECK: call <32 x bfloat> @llvm.x86.avx10.vminmaxnepbf16512(
11 return _mm512_minmaxne_pbh(__A
, __B
, 127);
14 __m512bh
test_mm512_mask_minmaxne_pbh(__m512bh __A
, __mmask32 __B
, __m512bh __C
, __m512bh __D
) {
15 // CHECK-LABEL: @test_mm512_mask_minmaxne_pbh(
16 // CHECK: call <32 x bfloat> @llvm.x86.avx10.vminmaxnepbf16512(
17 // CHECK: select <32 x i1> %{{.*}}, <32 x bfloat> %{{.*}}, <32 x bfloat> %{{.*}}
18 return _mm512_mask_minmaxne_pbh(__A
, __B
, __C
, __D
, 127);
21 __m512bh
test_mm512_maskz_minmaxne_pbh(__mmask32 __A
, __m512bh __B
, __m512bh __C
) {
22 // CHECK-LABEL: @test_mm512_maskz_minmaxne_pbh(
23 // CHECK: call <32 x bfloat> @llvm.x86.avx10.vminmaxnepbf16512(
24 // CHECK: zeroinitializer
25 // CHECK: select <32 x i1> %{{.*}}, <32 x bfloat> %{{.*}}, <32 x bfloat> %{{.*}}
26 return _mm512_maskz_minmaxne_pbh(__A
, __B
, __C
, 127);
29 __m512d
test_mm512_minmax_pd(__m512d __A
, __m512d __B
) {
30 // CHECK-LABEL: @test_mm512_minmax_pd(
31 // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(
32 return _mm512_minmax_pd(__A
, __B
, 127);
35 __m512d
test_mm512_mask_minmax_pd(__m512d __A
, __mmask8 __B
, __m512d __C
, __m512d __D
) {
36 // CHECK-LABEL: @test_mm512_mask_minmax_pd(
37 // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(
38 return _mm512_mask_minmax_pd(__A
, __B
, __C
, __D
, 127);
41 __m512d
test_mm512_maskz_minmax_pd(__mmask8 __A
, __m512d __B
, __m512d __C
) {
42 // CHECK-LABEL: @test_mm512_maskz_minmax_pd(
43 // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(
44 return _mm512_maskz_minmax_pd(__A
, __B
, __C
, 127);
47 __m512d
test_mm512_minmax_round_pd(__m512d __A
, __m512d __B
) {
48 // CHECK-LABEL: @test_mm512_minmax_round_pd(
49 // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(
50 return _mm512_minmax_round_pd(__A
, __B
, 127, _MM_FROUND_NO_EXC
);
53 __m512d
test_mm512_mask_minmax_round_pd(__m512d __A
, __mmask8 __B
, __m512d __C
, __m512d __D
) {
54 // CHECK-LABEL: @test_mm512_mask_minmax_round_pd(
55 // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(
56 return _mm512_mask_minmax_round_pd(__A
, __B
, __C
, __D
, 127, _MM_FROUND_NO_EXC
);
59 __m512d
test_mm512_maskz_minmax_round_pd(__mmask8 __A
, __m512d __B
, __m512d __C
) {
60 // CHECK-LABEL: @test_mm512_maskz_minmax_round_pd(
61 // CHECK: call <8 x double> @llvm.x86.avx10.mask.vminmaxpd.round(
62 return _mm512_maskz_minmax_round_pd(__A
, __B
, __C
, 127, _MM_FROUND_NO_EXC
);
65 __m512h
test_mm512_minmax_ph(__m512h __A
, __m512h __B
) {
66 // CHECK-LABEL: @test_mm512_minmax_ph(
67 // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(
68 return _mm512_minmax_ph(__A
, __B
, 127);
71 __m512h
test_mm512_mask_minmax_ph(__m512h __A
, __mmask32 __B
, __m512h __C
, __m512h __D
) {
72 // CHECK-LABEL: @test_mm512_mask_minmax_ph(
73 // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(
74 return _mm512_mask_minmax_ph(__A
, __B
, __C
, __D
, 127);
77 __m512h
test_mm512_maskz_minmax_ph(__mmask32 __A
, __m512h __B
, __m512h __C
) {
78 // CHECK-LABEL: @test_mm512_maskz_minmax_ph(
79 // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(
80 return _mm512_maskz_minmax_ph(__A
, __B
, __C
, 127);
83 __m512h
test_mm512_minmax_round_ph(__m512h __A
, __m512h __B
) {
84 // CHECK-LABEL: @test_mm512_minmax_round_ph(
85 // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(
86 return _mm512_minmax_round_ph(__A
, __B
, 127, _MM_FROUND_NO_EXC
);
89 __m512h
test_mm512_mask_minmax_round_ph(__m512h __A
, __mmask32 __B
, __m512h __C
, __m512h __D
) {
90 // CHECK-LABEL: @test_mm512_mask_minmax_round_ph(
91 // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(
92 return _mm512_mask_minmax_round_ph(__A
, __B
, __C
, __D
, 127, _MM_FROUND_NO_EXC
);
95 __m512h
test_mm512_maskz_minmax_round_ph(__mmask32 __A
, __m512h __B
, __m512h __C
) {
96 // CHECK-LABEL: @test_mm512_maskz_minmax_round_ph(
97 // CHECK: call <32 x half> @llvm.x86.avx10.mask.vminmaxph.round(
98 return _mm512_maskz_minmax_round_ph(__A
, __B
, __C
, 127, _MM_FROUND_NO_EXC
);
101 __m512
test_mm512_minmax_ps(__m512 __A
, __m512 __B
) {
102 // CHECK-LABEL: @test_mm512_minmax_ps(
103 // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(
104 return _mm512_minmax_ps(__A
, __B
, 127);
107 __m512
test_mm512_mask_minmax_ps(__m512 __A
, __mmask16 __B
, __m512 __C
, __m512 __D
) {
108 // CHECK-LABEL: @test_mm512_mask_minmax_ps(
109 // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(
110 return _mm512_mask_minmax_ps(__A
, __B
, __C
, __D
, 127);
113 __m512
test_mm512_maskz_minmax_ps(__mmask16 __A
, __m512 __B
, __m512 __C
) {
114 // CHECK-LABEL: @test_mm512_maskz_minmax_ps(
115 // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(
116 return _mm512_maskz_minmax_ps(__A
, __B
, __C
, 127);
119 __m512
test_mm512_minmax_round_ps(__m512 __A
, __m512 __B
) {
120 // CHECK-LABEL: @test_mm512_minmax_round_ps(
121 // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(
122 return _mm512_minmax_round_ps(__A
, __B
, 127, _MM_FROUND_NO_EXC
);
125 __m512
test_mm512_mask_minmax_round_ps(__m512 __A
, __mmask16 __B
, __m512 __C
, __m512 __D
) {
126 // CHECK-LABEL: @test_mm512_mask_minmax_round_ps(
127 // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(
128 return _mm512_mask_minmax_round_ps(__A
, __B
, __C
, __D
, 127, _MM_FROUND_NO_EXC
);
131 __m512
test_mm512_maskz_minmax_round_ps(__mmask16 __A
, __m512 __B
, __m512 __C
) {
132 // CHECK-LABEL: @test_mm512_maskz_minmax_round_ps(
133 // CHECK: call <16 x float> @llvm.x86.avx10.mask.vminmaxps.round(
134 return _mm512_maskz_minmax_round_ps(__A
, __B
, __C
, 127, _MM_FROUND_NO_EXC
);