Skip to content

Commit d7e7e0a

Browse files
authored
[X86][AVX10.2] Remove YMM rounding from VMINMAXP[H,S,D] (#132405)
Ref: https://cdrdv2.intel.com/v1/dl/getContent/784343
1 parent ff9c5c3 commit d7e7e0a

File tree

15 files changed

+69
-427
lines changed

15 files changed

+69
-427
lines changed

clang/include/clang/Basic/BuiltinsX86.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4823,7 +4823,7 @@ let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] i
48234823
}
48244824

48254825
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
4826-
def vminmaxpd256_round_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char, _Constant int)">;
4826+
def vminmaxpd256_mask : X86Builtin<"_Vector<4, double>(_Vector<4, double>, _Vector<4, double>, _Constant int, _Vector<4, double>, unsigned char)">;
48274827
}
48284828

48294829
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
@@ -4835,7 +4835,7 @@ let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] i
48354835
}
48364836

48374837
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
4838-
def vminmaxph256_round_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, _Constant int, _Vector<16, _Float16>, unsigned short, _Constant int)">;
4838+
def vminmaxph256_mask : X86Builtin<"_Vector<16, _Float16>(_Vector<16, _Float16>, _Vector<16, _Float16>, _Constant int, _Vector<16, _Float16>, unsigned short)">;
48394839
}
48404840

48414841
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
@@ -4847,7 +4847,7 @@ let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] i
48474847
}
48484848

48494849
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
4850-
def vminmaxps256_round_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char, _Constant int)">;
4850+
def vminmaxps256_mask : X86Builtin<"_Vector<8, float>(_Vector<8, float>, _Vector<8, float>, _Constant int, _Vector<8, float>, unsigned char)">;
48514851
}
48524852

48534853
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {

clang/lib/Headers/avx10_2minmaxintrin.h

Lines changed: 18 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -66,34 +66,19 @@
6666
(__v2df)_mm_setzero_pd(), (__mmask8)(U)))
6767

6868
#define _mm256_minmax_pd(A, B, C) \
69-
((__m256d)__builtin_ia32_vminmaxpd256_round_mask( \
69+
((__m256d)__builtin_ia32_vminmaxpd256_mask( \
7070
(__v4df)(__m256d)(A), (__v4df)(__m256d)(B), (int)(C), \
71-
(__v4df)_mm256_setzero_pd(), (__mmask8)-1, _MM_FROUND_NO_EXC))
71+
(__v4df)_mm256_setzero_pd(), (__mmask8)-1))
7272

7373
#define _mm256_mask_minmax_pd(W, U, A, B, C) \
74-
((__m256d)__builtin_ia32_vminmaxpd256_round_mask( \
74+
((__m256d)__builtin_ia32_vminmaxpd256_mask( \
7575
(__v4df)(__m256d)(A), (__v4df)(__m256d)(B), (int)(C), \
76-
(__v4df)(__m256d)(W), (__mmask8)(U), _MM_FROUND_NO_EXC))
76+
(__v4df)(__m256d)(W), (__mmask8)(U)))
7777

7878
#define _mm256_maskz_minmax_pd(U, A, B, C) \
79-
((__m256d)__builtin_ia32_vminmaxpd256_round_mask( \
79+
((__m256d)__builtin_ia32_vminmaxpd256_mask( \
8080
(__v4df)(__m256d)(A), (__v4df)(__m256d)(B), (int)(C), \
81-
(__v4df)_mm256_setzero_pd(), (__mmask8)(U), _MM_FROUND_NO_EXC))
82-
83-
#define _mm256_minmax_round_pd(A, B, C, R) \
84-
((__m256d)__builtin_ia32_vminmaxpd256_round_mask( \
85-
(__v4df)(__m256d)(A), (__v4df)(__m256d)(B), (int)(C), \
86-
(__v4df)_mm256_undefined_pd(), (__mmask8)-1, (int)(R)))
87-
88-
#define _mm256_mask_minmax_round_pd(W, U, A, B, C, R) \
89-
((__m256d)__builtin_ia32_vminmaxpd256_round_mask( \
90-
(__v4df)(__m256d)(A), (__v4df)(__m256d)(B), (int)(C), \
91-
(__v4df)(__m256d)(W), (__mmask8)(U), (int)(R)))
92-
93-
#define _mm256_maskz_minmax_round_pd(U, A, B, C, R) \
94-
((__m256d)__builtin_ia32_vminmaxpd256_round_mask( \
95-
(__v4df)(__m256d)(A), (__v4df)(__m256d)(B), (int)(C), \
96-
(__v4df)_mm256_setzero_pd(), (__mmask8)(U), (int)(R)))
81+
(__v4df)_mm256_setzero_pd(), (__mmask8)(U)))
9782

9883
#define _mm_minmax_ph(A, B, C) \
9984
((__m128h)__builtin_ia32_vminmaxph128_mask( \
@@ -111,34 +96,19 @@
11196
(__v8hf)_mm_setzero_ph(), (__mmask8)(U)))
11297

11398
#define _mm256_minmax_ph(A, B, C) \
114-
((__m256h)__builtin_ia32_vminmaxph256_round_mask( \
99+
((__m256h)__builtin_ia32_vminmaxph256_mask( \
115100
(__v16hf)(__m256h)(A), (__v16hf)(__m256h)(B), (int)(C), \
116-
(__v16hf)_mm256_setzero_ph(), (__mmask16)-1, _MM_FROUND_NO_EXC))
101+
(__v16hf)_mm256_setzero_ph(), (__mmask16)-1))
117102

118103
#define _mm256_mask_minmax_ph(W, U, A, B, C) \
119-
((__m256h)__builtin_ia32_vminmaxph256_round_mask( \
104+
((__m256h)__builtin_ia32_vminmaxph256_mask( \
120105
(__v16hf)(__m256h)(A), (__v16hf)(__m256h)(B), (int)(C), \
121-
(__v16hf)(__m256h)(W), (__mmask16)(U), _MM_FROUND_NO_EXC))
106+
(__v16hf)(__m256h)(W), (__mmask16)(U)))
122107

123108
#define _mm256_maskz_minmax_ph(U, A, B, C) \
124-
((__m256h)__builtin_ia32_vminmaxph256_round_mask( \
125-
(__v16hf)(__m256h)(A), (__v16hf)(__m256h)(B), (int)(C), \
126-
(__v16hf)_mm256_setzero_ph(), (__mmask16)(U), _MM_FROUND_NO_EXC))
127-
128-
#define _mm256_minmax_round_ph(A, B, C, R) \
129-
((__m256h)__builtin_ia32_vminmaxph256_round_mask( \
109+
((__m256h)__builtin_ia32_vminmaxph256_mask( \
130110
(__v16hf)(__m256h)(A), (__v16hf)(__m256h)(B), (int)(C), \
131-
(__v16hf)_mm256_undefined_ph(), (__mmask16)-1, (int)(R)))
132-
133-
#define _mm256_mask_minmax_round_ph(W, U, A, B, C, R) \
134-
((__m256h)__builtin_ia32_vminmaxph256_round_mask( \
135-
(__v16hf)(__m256h)(A), (__v16hf)(__m256h)(B), (C), \
136-
(__v16hf)(__m256h)(W), (__mmask16)(U), (int)(R)))
137-
138-
#define _mm256_maskz_minmax_round_ph(U, A, B, C, R) \
139-
((__m256h)__builtin_ia32_vminmaxph256_round_mask( \
140-
(__v16hf)(__m256h)(A), (__v16hf)(__m256h)(B), (int)(C), \
141-
(__v16hf)_mm256_setzero_ph(), (__mmask16)(U), (int)(R)))
111+
(__v16hf)_mm256_setzero_ph(), (__mmask16)(U)))
142112

143113
#define _mm_minmax_ps(A, B, C) \
144114
((__m128)__builtin_ia32_vminmaxps128_mask( \
@@ -156,34 +126,19 @@
156126
(__v4sf)_mm_setzero_ps(), (__mmask8)(U)))
157127

158128
#define _mm256_minmax_ps(A, B, C) \
159-
((__m256)__builtin_ia32_vminmaxps256_round_mask( \
129+
((__m256)__builtin_ia32_vminmaxps256_mask( \
160130
(__v8sf)(__m256)(A), (__v8sf)(__m256)(B), (int)(C), \
161-
(__v8sf)_mm256_setzero_ps(), (__mmask8)-1, _MM_FROUND_NO_EXC))
131+
(__v8sf)_mm256_setzero_ps(), (__mmask8)-1))
162132

163133
#define _mm256_mask_minmax_ps(W, U, A, B, C) \
164-
((__m256)__builtin_ia32_vminmaxps256_round_mask( \
134+
((__m256)__builtin_ia32_vminmaxps256_mask( \
165135
(__v8sf)(__m256)(A), (__v8sf)(__m256)(B), (int)(C), (__v8sf)(__m256)(W), \
166-
(__mmask8)(U), _MM_FROUND_NO_EXC))
136+
(__mmask8)(U)))
167137

168138
#define _mm256_maskz_minmax_ps(U, A, B, C) \
169-
((__m256)__builtin_ia32_vminmaxps256_round_mask( \
170-
(__v8sf)(__m256)(A), (__v8sf)(__m256)(B), (int)(C), \
171-
(__v8sf)_mm256_setzero_ps(), (__mmask8)(U), _MM_FROUND_NO_EXC))
172-
173-
#define _mm256_minmax_round_ps(A, B, C, R) \
174-
((__m256)__builtin_ia32_vminmaxps256_round_mask( \
175-
(__v8sf)(__m256)(A), (__v8sf)(__m256)(B), (int)(C), \
176-
(__v8sf)_mm256_undefined_ps(), (__mmask8)-1, (int)(R)))
177-
178-
#define _mm256_mask_minmax_round_ps(W, U, A, B, C, R) \
179-
((__m256)__builtin_ia32_vminmaxps256_round_mask( \
180-
(__v8sf)(__m256)(A), (__v8sf)(__m256)(B), (int)(C), (__v8sf)(__m256)(W), \
181-
(__mmask8)(U), (int)(R)))
182-
183-
#define _mm256_maskz_minmax_round_ps(U, A, B, C, R) \
184-
((__m256)__builtin_ia32_vminmaxps256_round_mask( \
139+
((__m256)__builtin_ia32_vminmaxps256_mask( \
185140
(__v8sf)(__m256)(A), (__v8sf)(__m256)(B), (int)(C), \
186-
(__v8sf)_mm256_setzero_ps(), (__mmask8)(U), (int)(R)))
141+
(__v8sf)_mm256_setzero_ps(), (__mmask8)(U)))
187142

188143
#define _mm_minmax_sd(A, B, C) \
189144
((__m128d)__builtin_ia32_vminmaxsd_round_mask( \

clang/lib/Sema/SemaX86.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,6 @@ bool SemaX86::CheckBuiltinRoundingOrSAE(unsigned BuiltinID, CallExpr *TheCall) {
147147
case X86::BI__builtin_ia32_rndscalesd_round_mask:
148148
case X86::BI__builtin_ia32_rndscaless_round_mask:
149149
case X86::BI__builtin_ia32_rndscalesh_round_mask:
150-
case X86::BI__builtin_ia32_vminmaxpd256_round_mask:
151-
case X86::BI__builtin_ia32_vminmaxps256_round_mask:
152-
case X86::BI__builtin_ia32_vminmaxph256_round_mask:
153150
case X86::BI__builtin_ia32_vminmaxpd512_round_mask:
154151
case X86::BI__builtin_ia32_vminmaxps512_round_mask:
155152
case X86::BI__builtin_ia32_vminmaxph512_round_mask:
@@ -909,11 +906,11 @@ bool SemaX86::CheckBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID,
909906
case X86::BI__builtin_ia32_vminmaxbf16256:
910907
case X86::BI__builtin_ia32_vminmaxbf16512:
911908
case X86::BI__builtin_ia32_vminmaxpd128_mask:
912-
case X86::BI__builtin_ia32_vminmaxpd256_round_mask:
909+
case X86::BI__builtin_ia32_vminmaxpd256_mask:
913910
case X86::BI__builtin_ia32_vminmaxph128_mask:
914-
case X86::BI__builtin_ia32_vminmaxph256_round_mask:
911+
case X86::BI__builtin_ia32_vminmaxph256_mask:
915912
case X86::BI__builtin_ia32_vminmaxps128_mask:
916-
case X86::BI__builtin_ia32_vminmaxps256_round_mask:
913+
case X86::BI__builtin_ia32_vminmaxps256_mask:
917914
case X86::BI__builtin_ia32_vminmaxpd512_round_mask:
918915
case X86::BI__builtin_ia32_vminmaxps512_round_mask:
919916
case X86::BI__builtin_ia32_vminmaxph512_round_mask:

clang/test/CodeGen/X86/avx10_2_512minmax-error.c

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -113,17 +113,6 @@ __m512 test_mm512_minmax_round_ps(__m512 __A, __m512 __B) {
113113
return _mm512_minmax_round_ps(__A, __B, 127, 11); // expected-error {{invalid rounding argument}}
114114
}
115115

116-
__m256d test_mm256_minmax_round_pd(__m256d __A, __m256d __B) {
117-
return _mm256_minmax_round_pd(__A, __B, 127, 11); // expected-error {{invalid rounding argument}}
118-
}
119-
120-
__m256h test_mm256_minmax_round_ph(__m256h __A, __m256h __B) {
121-
return _mm256_minmax_round_ph(__A, __B, 127, 11); // expected-error {{invalid rounding argument}}
122-
}
123-
124-
__m256 test_mm256_minmax_round_ps(__m256 __A, __m256 __B) {
125-
return _mm256_minmax_round_ps(__A, __B, 127, 11); // expected-error {{invalid rounding argument}}
126-
}
127116
__m128d test_mm_minmax_round_sd(__m128d __A, __m128d __B) {
128117
return _mm_minmax_round_sd(__A, __B, 127, 11); // expected-error {{invalid rounding argument}}
129118
}

clang/test/CodeGen/X86/avx10_2minmax-builtins.c

Lines changed: 9 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -67,40 +67,22 @@ __m128d test_mm_maskz_minmax_pd(__mmask8 __A, __m128d __B, __m128d __C) {
6767

6868
__m256d test_mm256_minmax_pd(__m256d __A, __m256d __B) {
6969
// CHECK-LABEL: @test_mm256_minmax_pd(
70-
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256.round(
70+
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256(
7171
return _mm256_minmax_pd(__A, __B, 127);
7272
}
7373

7474
__m256d test_mm256_mask_minmax_pd(__m256d __A, __mmask8 __B, __m256d __C, __m256d __D) {
7575
// CHECK-LABEL: @test_mm256_mask_minmax_pd(
76-
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256.round(
76+
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256(
7777
return _mm256_mask_minmax_pd(__A, __B, __C, __D, 127);
7878
}
7979

8080
__m256d test_mm256_maskz_minmax_pd(__mmask8 __A, __m256d __B, __m256d __C) {
8181
// CHECK-LABEL: @test_mm256_maskz_minmax_pd(
82-
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256.round(
82+
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256(
8383
return _mm256_maskz_minmax_pd(__A, __B, __C, 127);
8484
}
8585

86-
__m256d test_mm256_minmax_round_pd(__m256d __A, __m256d __B) {
87-
// CHECK-LABEL: @test_mm256_minmax_round_pd(
88-
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256.round(
89-
return _mm256_minmax_round_pd(__A, __B, 127, _MM_FROUND_NO_EXC);
90-
}
91-
92-
__m256d test_mm256_mask_minmax_round_pd(__m256d __A, __mmask8 __B, __m256d __C, __m256d __D) {
93-
// CHECK-LABEL: @test_mm256_mask_minmax_round_pd(
94-
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256.round(
95-
return _mm256_mask_minmax_round_pd(__A, __B, __C, __D, 127, _MM_FROUND_NO_EXC);
96-
}
97-
98-
__m256d test_mm256_maskz_minmax_round_pd(__mmask8 __A, __m256d __B, __m256d __C) {
99-
// CHECK-LABEL: @test_mm256_maskz_minmax_round_pd(
100-
// CHECK: call <4 x double> @llvm.x86.avx10.mask.vminmaxpd256.round(
101-
return _mm256_maskz_minmax_round_pd(__A, __B, __C, 127, _MM_FROUND_NO_EXC);
102-
}
103-
10486
__m128h test_mm_minmax_ph(__m128h __A, __m128h __B) {
10587
// CHECK-LABEL: @test_mm_minmax_ph(
10688
// CHECK: call <8 x half> @llvm.x86.avx10.mask.vminmaxph128(
@@ -121,40 +103,22 @@ __m128h test_mm_maskz_minmax_ph(__mmask8 __A, __m128h __B, __m128h __C) {
121103

122104
__m256h test_mm256_minmax_ph(__m256h __A, __m256h __B) {
123105
// CHECK-LABEL: @test_mm256_minmax_ph(
124-
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256.round(
106+
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256(
125107
return _mm256_minmax_ph(__A, __B, 127);
126108
}
127109

128110
__m256h test_mm256_mask_minmax_ph(__m256h __A, __mmask16 __B, __m256h __C, __m256h __D) {
129111
// CHECK-LABEL: @test_mm256_mask_minmax_ph(
130-
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256.round(
112+
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256(
131113
return _mm256_mask_minmax_ph(__A, __B, __C, __D, 127);
132114
}
133115

134116
__m256h test_mm256_maskz_minmax_ph(__mmask16 __A, __m256h __B, __m256h __C) {
135117
// CHECK-LABEL: @test_mm256_maskz_minmax_ph(
136-
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256.round(
118+
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256(
137119
return _mm256_maskz_minmax_ph(__A, __B, __C, 127);
138120
}
139121

140-
__m256h test_mm256_minmax_round_ph(__m256h __A, __m256h __B) {
141-
// CHECK-LABEL: @test_mm256_minmax_round_ph(
142-
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256.round(
143-
return _mm256_minmax_round_ph(__A, __B, 127, _MM_FROUND_NO_EXC);
144-
}
145-
146-
__m256h test_mm256_mask_minmax_round_ph(__m256h __A, __mmask16 __B, __m256h __C, __m256h __D) {
147-
// CHECK-LABEL: @test_mm256_mask_minmax_round_ph(
148-
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256.round(
149-
return _mm256_mask_minmax_round_ph(__A, __B, __C, __D, 127, _MM_FROUND_NO_EXC);
150-
}
151-
152-
__m256h test_mm256_maskz_minmax_round_ph(__mmask16 __A, __m256h __B, __m256h __C) {
153-
// CHECK-LABEL: @test_mm256_maskz_minmax_round_ph(
154-
// CHECK: call <16 x half> @llvm.x86.avx10.mask.vminmaxph256.round(
155-
return _mm256_maskz_minmax_round_ph(__A, __B, __C, 127, _MM_FROUND_NO_EXC);
156-
}
157-
158122
__m128 test_mm_minmax_ps(__m128 __A, __m128 __B) {
159123
// CHECK-LABEL: @test_mm_minmax_ps(
160124
// CHECK: call <4 x float> @llvm.x86.avx10.mask.vminmaxps128(
@@ -175,40 +139,22 @@ __m128 test_mm_maskz_minmax_ps(__mmask8 __A, __m128 __B, __m128 __C) {
175139

176140
__m256 test_mm256_minmax_ps(__m256 __A, __m256 __B) {
177141
// CHECK-LABEL: @test_mm256_minmax_ps(
178-
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256.round(
142+
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256(
179143
return _mm256_minmax_ps(__A, __B, 127);
180144
}
181145

182146
__m256 test_mm256_mask_minmax_ps(__m256 __A, __mmask8 __B, __m256 __C, __m256 __D) {
183147
// CHECK-LABEL: @test_mm256_mask_minmax_ps(
184-
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256.round(
148+
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256(
185149
return _mm256_mask_minmax_ps(__A, __B, __C, __D, 127);
186150
}
187151

188152
__m256 test_mm256_maskz_minmax_ps(__mmask8 __A, __m256 __B, __m256 __C) {
189153
// CHECK-LABEL: @test_mm256_maskz_minmax_ps(
190-
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256.round(
154+
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256(
191155
return _mm256_maskz_minmax_ps(__A, __B, __C, 127);
192156
}
193157

194-
__m256 test_mm256_minmax_round_ps(__m256 __A, __m256 __B) {
195-
// CHECK-LABEL: @test_mm256_minmax_round_ps(
196-
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256.round(
197-
return _mm256_minmax_round_ps(__A, __B, 127, _MM_FROUND_NO_EXC);
198-
}
199-
200-
__m256 test_mm256_mask_minmax_round_ps(__m256 __A, __mmask8 __B, __m256 __C, __m256 __D) {
201-
// CHECK-LABEL: @test_mm256_mask_minmax_round_ps(
202-
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256.round(
203-
return _mm256_mask_minmax_round_ps(__A, __B, __C, __D, 127, _MM_FROUND_NO_EXC);
204-
}
205-
206-
__m256 test_mm256_maskz_minmax_round_ps(__mmask8 __A, __m256 __B, __m256 __C) {
207-
// CHECK-LABEL: @test_mm256_maskz_minmax_round_ps(
208-
// CHECK: call <8 x float> @llvm.x86.avx10.mask.vminmaxps256.round(
209-
return _mm256_maskz_minmax_round_ps(__A, __B, __C, 127, _MM_FROUND_NO_EXC);
210-
}
211-
212158
__m128d test_mm_minmax_sd(__m128d __A, __m128d __B) {
213159
// CHECK-LABEL: @test_mm_minmax_sd(
214160
// CHECK: call <2 x double> @llvm.x86.avx10.mask.vminmaxsd.round(

0 commit comments

Comments
 (0)