Skip to content

Commit 3de59f1

Browse files
committed
Add llvm intrinsic tests
1 parent 441dc5c commit 3de59f1

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed

llvm/test/CodeGen/PowerPC/scalar-min-max.ll

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,3 +189,163 @@ entry:
189189
%cond = select i1 %cmp, double %a, double %b
190190
ret double %cond
191191
}
192+
193+
define float @testfminnum(float %a, float %b) {
194+
; CHECK-LABEL: testfminnum:
195+
; CHECK: # %bb.0: # %entry
196+
; CHECK-NEXT: xsmindp f1, f1, f2
197+
; CHECK-NEXT: blr
198+
;
199+
; NO-FAST-P9-LABEL: testfminnum:
200+
; NO-FAST-P9: # %bb.0: # %entry
201+
; NO-FAST-P9-NEXT: xsmindp f1, f1, f2
202+
; NO-FAST-P9-NEXT: blr
203+
;
204+
; NO-FAST-P8-LABEL: testfminnum:
205+
; NO-FAST-P8: # %bb.0: # %entry
206+
; NO-FAST-P8-NEXT: xsmindp f1, f1, f2
207+
; NO-FAST-P8-NEXT: blr
208+
entry:
209+
%0 = tail call float @llvm.minnum.f32(float %a, float %b)
210+
ret float %0
211+
}
212+
213+
define float @testfmaxnum(float %a, float %b) {
214+
; CHECK-LABEL: testfmaxnum:
215+
; CHECK: # %bb.0: # %entry
216+
; CHECK-NEXT: xsmaxdp f1, f1, f2
217+
; CHECK-NEXT: blr
218+
;
219+
; NO-FAST-P9-LABEL: testfmaxnum:
220+
; NO-FAST-P9: # %bb.0: # %entry
221+
; NO-FAST-P9-NEXT: xsmaxdp f1, f1, f2
222+
; NO-FAST-P9-NEXT: blr
223+
;
224+
; NO-FAST-P8-LABEL: testfmaxnum:
225+
; NO-FAST-P8: # %bb.0: # %entry
226+
; NO-FAST-P8-NEXT: xsmaxdp f1, f1, f2
227+
; NO-FAST-P8-NEXT: blr
228+
entry:
229+
%0 = tail call float @llvm.maxnum.f32(float %a, float %b)
230+
ret float %0
231+
}
232+
233+
define double @testdminnum(double %a, double %b) {
234+
; CHECK-LABEL: testdminnum:
235+
; CHECK: # %bb.0: # %entry
236+
; CHECK-NEXT: xsmindp f1, f1, f2
237+
; CHECK-NEXT: blr
238+
;
239+
; NO-FAST-P9-LABEL: testdminnum:
240+
; NO-FAST-P9: # %bb.0: # %entry
241+
; NO-FAST-P9-NEXT: xsmindp f1, f1, f2
242+
; NO-FAST-P9-NEXT: blr
243+
;
244+
; NO-FAST-P8-LABEL: testdminnum:
245+
; NO-FAST-P8: # %bb.0: # %entry
246+
; NO-FAST-P8-NEXT: xsmindp f1, f1, f2
247+
; NO-FAST-P8-NEXT: blr
248+
entry:
249+
%0 = tail call double @llvm.minnum.f64(double %a, double %b)
250+
ret double %0
251+
}
252+
253+
define double @testdmaxnum(double %a, double %b) {
254+
; CHECK-LABEL: testdmaxnum:
255+
; CHECK: # %bb.0: # %entry
256+
; CHECK-NEXT: xsmaxdp f1, f1, f2
257+
; CHECK-NEXT: blr
258+
;
259+
; NO-FAST-P9-LABEL: testdmaxnum:
260+
; NO-FAST-P9: # %bb.0: # %entry
261+
; NO-FAST-P9-NEXT: xsmaxdp f1, f1, f2
262+
; NO-FAST-P9-NEXT: blr
263+
;
264+
; NO-FAST-P8-LABEL: testdmaxnum:
265+
; NO-FAST-P8: # %bb.0: # %entry
266+
; NO-FAST-P8-NEXT: xsmaxdp f1, f1, f2
267+
; NO-FAST-P8-NEXT: blr
268+
entry:
269+
%0 = tail call double @llvm.maxnum.f64(double %a, double %b)
270+
ret double %0
271+
}
272+
273+
define <4 x float> @testfminnum_v4f32(<4 x float> %a, <4 x float> %b) {
274+
; CHECK-LABEL: testfminnum_v4f32:
275+
; CHECK: # %bb.0: # %entry
276+
; CHECK-NEXT: xvminsp vs34, vs34, vs35
277+
; CHECK-NEXT: blr
278+
;
279+
; NO-FAST-P9-LABEL: testfminnum_v4f32:
280+
; NO-FAST-P9: # %bb.0: # %entry
281+
; NO-FAST-P9-NEXT: xvminsp vs34, vs34, vs35
282+
; NO-FAST-P9-NEXT: blr
283+
;
284+
; NO-FAST-P8-LABEL: testfminnum_v4f32:
285+
; NO-FAST-P8: # %bb.0: # %entry
286+
; NO-FAST-P8-NEXT: xvminsp vs34, vs34, vs35
287+
; NO-FAST-P8-NEXT: blr
288+
entry:
289+
%0 = tail call <4 x float> @llvm.minnum.v4f32(<4 x float> %a, <4 x float> %b)
290+
ret <4 x float> %0
291+
}
292+
293+
define <4 x float> @testfmaxnum_v4f32(<4 x float> %a, <4 x float> %b) {
294+
; CHECK-LABEL: testfmaxnum_v4f32:
295+
; CHECK: # %bb.0: # %entry
296+
; CHECK-NEXT: xvmaxsp vs34, vs34, vs35
297+
; CHECK-NEXT: blr
298+
;
299+
; NO-FAST-P9-LABEL: testfmaxnum_v4f32:
300+
; NO-FAST-P9: # %bb.0: # %entry
301+
; NO-FAST-P9-NEXT: xvmaxsp vs34, vs34, vs35
302+
; NO-FAST-P9-NEXT: blr
303+
;
304+
; NO-FAST-P8-LABEL: testfmaxnum_v4f32:
305+
; NO-FAST-P8: # %bb.0: # %entry
306+
; NO-FAST-P8-NEXT: xvmaxsp vs34, vs34, vs35
307+
; NO-FAST-P8-NEXT: blr
308+
entry:
309+
%0 = tail call <4 x float> @llvm.maxnum.v4f32(<4 x float> %a, <4 x float> %b)
310+
ret <4 x float> %0
311+
}
312+
313+
define <2 x double> @testdminnum_v2f64(<2 x double> %a, <2 x double> %b) {
314+
; CHECK-LABEL: testdminnum_v2f64:
315+
; CHECK: # %bb.0: # %entry
316+
; CHECK-NEXT: xvmindp vs34, vs34, vs35
317+
; CHECK-NEXT: blr
318+
;
319+
; NO-FAST-P9-LABEL: testdminnum_v2f64:
320+
; NO-FAST-P9: # %bb.0: # %entry
321+
; NO-FAST-P9-NEXT: xvmindp vs34, vs34, vs35
322+
; NO-FAST-P9-NEXT: blr
323+
;
324+
; NO-FAST-P8-LABEL: testdminnum_v2f64:
325+
; NO-FAST-P8: # %bb.0: # %entry
326+
; NO-FAST-P8-NEXT: xvmindp vs34, vs34, vs35
327+
; NO-FAST-P8-NEXT: blr
328+
entry:
329+
%0 = tail call <2 x double> @llvm.minnum.v2f64(<2 x double> %a, <2 x double> %b)
330+
ret <2 x double> %0
331+
}
332+
333+
define <2 x double> @testdmaxnum_v2f64(<2 x double> %a, <2 x double> %b) {
334+
; CHECK-LABEL: testdmaxnum_v2f64:
335+
; CHECK: # %bb.0: # %entry
336+
; CHECK-NEXT: xvmaxdp vs34, vs34, vs35
337+
; CHECK-NEXT: blr
338+
;
339+
; NO-FAST-P9-LABEL: testdmaxnum_v2f64:
340+
; NO-FAST-P9: # %bb.0: # %entry
341+
; NO-FAST-P9-NEXT: xvmaxdp vs34, vs34, vs35
342+
; NO-FAST-P9-NEXT: blr
343+
;
344+
; NO-FAST-P8-LABEL: testdmaxnum_v2f64:
345+
; NO-FAST-P8: # %bb.0: # %entry
346+
; NO-FAST-P8-NEXT: xvmaxdp vs34, vs34, vs35
347+
; NO-FAST-P8-NEXT: blr
348+
entry:
349+
%0 = tail call <2 x double> @llvm.maxnum.v2f64(<2 x double> %a, <2 x double> %b)
350+
ret <2 x double> %0
351+
}

0 commit comments

Comments
 (0)