@@ -169,82 +169,6 @@ void test_builtin_elementwise_sub_sat(float f1, float f2, double d1, double d2,
169169 i1 = __builtin_elementwise_sub_sat (1 , 'a' );
170170}
171171
172- void test_builtin_elementwise_maximum (float f1 , float f2 , double d1 , double d2 ,
173- float4 vf1 , float4 vf2 , long long int i1 ,
174- long long int i2 , si8 vi1 , si8 vi2 ,
175- unsigned u1 , unsigned u2 , u4 vu1 , u4 vu2 ,
176- _BitInt (31 ) bi1 , _BitInt (31 ) bi2 ,
177- unsigned _BitInt (55 ) bu1 , unsigned _BitInt (55 ) bu2 ) {
178- // CHECK-LABEL: define void @test_builtin_elementwise_maximum(
179- // CHECK: [[F1:%.+]] = load float, ptr %f1.addr, align 4
180- // CHECK-NEXT: [[F2:%.+]] = load float, ptr %f2.addr, align 4
181- // CHECK-NEXT: call float @llvm.maximum.f32(float [[F1]], float [[F2]])
182- f1 = __builtin_elementwise_maximum (f1 , f2 );
183-
184- // CHECK: [[D1:%.+]] = load double, ptr %d1.addr, align 8
185- // CHECK-NEXT: [[D2:%.+]] = load double, ptr %d2.addr, align 8
186- // CHECK-NEXT: call double @llvm.maximum.f64(double [[D1]], double [[D2]])
187- d1 = __builtin_elementwise_maximum (d1 , d2 );
188-
189- // CHECK: [[D2:%.+]] = load double, ptr %d2.addr, align 8
190- // CHECK-NEXT: call double @llvm.maximum.f64(double 2.000000e+01, double [[D2]])
191- d1 = __builtin_elementwise_maximum (20.0 , d2 );
192-
193- // CHECK: [[VF1:%.+]] = load <4 x float>, ptr %vf1.addr, align 16
194- // CHECK-NEXT: [[VF2:%.+]] = load <4 x float>, ptr %vf2.addr, align 16
195- // CHECK-NEXT: call <4 x float> @llvm.maximum.v4f32(<4 x float> [[VF1]], <4 x float> [[VF2]])
196- vf1 = __builtin_elementwise_maximum (vf1 , vf2 );
197-
198- // CHECK: [[CVF1:%.+]] = load <4 x float>, ptr %cvf1, align 16
199- // CHECK-NEXT: [[VF2:%.+]] = load <4 x float>, ptr %vf2.addr, align 16
200- // CHECK-NEXT: call <4 x float> @llvm.maximum.v4f32(<4 x float> [[CVF1]], <4 x float> [[VF2]])
201- const float4 cvf1 = vf1 ;
202- vf1 = __builtin_elementwise_maximum (cvf1 , vf2 );
203-
204- // CHECK: [[VF2:%.+]] = load <4 x float>, ptr %vf2.addr, align 16
205- // CHECK-NEXT: [[CVF1:%.+]] = load <4 x float>, ptr %cvf1, align 16
206- // CHECK-NEXT: call <4 x float> @llvm.maximum.v4f32(<4 x float> [[VF2]], <4 x float> [[CVF1]])
207- vf1 = __builtin_elementwise_maximum (vf2 , cvf1 );
208- }
209-
210- void test_builtin_elementwise_minimum (float f1 , float f2 , double d1 , double d2 ,
211- float4 vf1 , float4 vf2 , long long int i1 ,
212- long long int i2 , si8 vi1 , si8 vi2 ,
213- unsigned u1 , unsigned u2 , u4 vu1 , u4 vu2 ,
214- _BitInt (31 ) bi1 , _BitInt (31 ) bi2 ,
215- unsigned _BitInt (55 ) bu1 , unsigned _BitInt (55 ) bu2 ) {
216- // CHECK-LABEL: define void @test_builtin_elementwise_minimum(
217- // CHECK: [[F1:%.+]] = load float, ptr %f1.addr, align 4
218- // CHECK-NEXT: [[F2:%.+]] = load float, ptr %f2.addr, align 4
219- // CHECK-NEXT: call float @llvm.minimum.f32(float [[F1]], float [[F2]])
220- f1 = __builtin_elementwise_minimum (f1 , f2 );
221-
222- // CHECK: [[D1:%.+]] = load double, ptr %d1.addr, align 8
223- // CHECK-NEXT: [[D2:%.+]] = load double, ptr %d2.addr, align 8
224- // CHECK-NEXT: call double @llvm.minimum.f64(double [[D1]], double [[D2]])
225- d1 = __builtin_elementwise_minimum (d1 , d2 );
226-
227- // CHECK: [[D1:%.+]] = load double, ptr %d1.addr, align 8
228- // CHECK-NEXT: call double @llvm.minimum.f64(double [[D1]], double 2.000000e+00)
229- d1 = __builtin_elementwise_minimum (d1 , 2.0 );
230-
231- // CHECK: [[VF1:%.+]] = load <4 x float>, ptr %vf1.addr, align 16
232- // CHECK-NEXT: [[VF2:%.+]] = load <4 x float>, ptr %vf2.addr, align 16
233- // CHECK-NEXT: call <4 x float> @llvm.minimum.v4f32(<4 x float> [[VF1]], <4 x float> [[VF2]])
234- vf1 = __builtin_elementwise_minimum (vf1 , vf2 );
235-
236- // CHECK: [[CVF1:%.+]] = load <4 x float>, ptr %cvf1, align 16
237- // CHECK-NEXT: [[VF2:%.+]] = load <4 x float>, ptr %vf2.addr, align 16
238- // CHECK-NEXT: call <4 x float> @llvm.minimum.v4f32(<4 x float> [[CVF1]], <4 x float> [[VF2]])
239- const float4 cvf1 = vf1 ;
240- vf1 = __builtin_elementwise_minimum (cvf1 , vf2 );
241-
242- // CHECK: [[VF2:%.+]] = load <4 x float>, ptr %vf2.addr, align 16
243- // CHECK-NEXT: [[CVF1:%.+]] = load <4 x float>, ptr %cvf1, align 16
244- // CHECK-NEXT: call <4 x float> @llvm.minimum.v4f32(<4 x float> [[VF2]], <4 x float> [[CVF1]])
245- vf1 = __builtin_elementwise_minimum (vf2 , cvf1 );
246- }
247-
248172void test_builtin_elementwise_max (float f1 , float f2 , double d1 , double d2 ,
249173 float4 vf1 , float4 vf2 , long long int i1 ,
250174 long long int i2 , si8 vi1 , si8 vi2 ,
0 commit comments