xref: /llvm-project/llvm/test/CodeGen/Mips/fp-maximumnum-minimumnum.ll (revision fb9e685fc41b8abc87725f8509624b3a80330dee)
1*fb9e685fSYunQiang Su; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*fb9e685fSYunQiang Su; RUN: llc --mtriple=mipsisa32r6 < %s | FileCheck %s --check-prefix=MIPS32R6
3*fb9e685fSYunQiang Su
4*fb9e685fSYunQiang Sudeclare float @llvm.maximumnum.f32(float, float)
5*fb9e685fSYunQiang Sudeclare double @llvm.maximumnum.f64(double, double)
6*fb9e685fSYunQiang Sudeclare float @llvm.minimumnum.f32(float, float)
7*fb9e685fSYunQiang Sudeclare double @llvm.minimumnum.f64(double, double)
8*fb9e685fSYunQiang Su
9*fb9e685fSYunQiang Sudefine float @maximumnum_float(float %x, float %y) {
10*fb9e685fSYunQiang Su; MIPS32R6-LABEL: maximumnum_float:
11*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
12*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f14, $f14
13*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f1, $f12, $f12
14*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
15*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    max.s $f0, $f1, $f0
16*fb9e685fSYunQiang Su  %z = call float @llvm.maximumnum.f32(float %x, float %y)
17*fb9e685fSYunQiang Su  ret float %z
18*fb9e685fSYunQiang Su}
19*fb9e685fSYunQiang Su
20*fb9e685fSYunQiang Sudefine float @maximumnum_float_nsz(float %x, float %y) {
21*fb9e685fSYunQiang Su; MIPS32R6-LABEL: maximumnum_float_nsz:
22*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
23*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f14, $f14
24*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f1, $f12, $f12
25*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
26*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    max.s $f0, $f1, $f0
27*fb9e685fSYunQiang Su  %z = call nsz float @llvm.maximumnum.f32(float %x, float %y)
28*fb9e685fSYunQiang Su  ret float %z
29*fb9e685fSYunQiang Su}
30*fb9e685fSYunQiang Su
31*fb9e685fSYunQiang Sudefine float @maximumnum_float_nnan(float %x, float %y) {
32*fb9e685fSYunQiang Su; MIPS32R6-LABEL: maximumnum_float_nnan:
33*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
34*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
35*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    max.s $f0, $f12, $f14
36*fb9e685fSYunQiang Su  %z = call nnan float @llvm.maximumnum.f32(float %x, float %y)
37*fb9e685fSYunQiang Su  ret float %z
38*fb9e685fSYunQiang Su}
39*fb9e685fSYunQiang Su
40*fb9e685fSYunQiang Su
41*fb9e685fSYunQiang Sudefine double @maximumnum_double(double %x, double %y) {
42*fb9e685fSYunQiang Su; MIPS32R6-LABEL: maximumnum_double:
43*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
44*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f14, $f14
45*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f1, $f12, $f12
46*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
47*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    max.d $f0, $f1, $f0
48*fb9e685fSYunQiang Su  %z = call double @llvm.maximumnum.f64(double %x, double %y)
49*fb9e685fSYunQiang Su  ret double %z
50*fb9e685fSYunQiang Su}
51*fb9e685fSYunQiang Su
52*fb9e685fSYunQiang Sudefine double @maximumnum_double_nsz(double %x, double %y) {
53*fb9e685fSYunQiang Su; MIPS32R6-LABEL: maximumnum_double_nsz:
54*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
55*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f14, $f14
56*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f1, $f12, $f12
57*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
58*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    max.d $f0, $f1, $f0
59*fb9e685fSYunQiang Su  %z = call nsz double @llvm.maximumnum.f64(double %x, double %y)
60*fb9e685fSYunQiang Su  ret double %z
61*fb9e685fSYunQiang Su}
62*fb9e685fSYunQiang Su
63*fb9e685fSYunQiang Sudefine double @maximumnum_double_nnan(double %x, double %y) {
64*fb9e685fSYunQiang Su; MIPS32R6-LABEL: maximumnum_double_nnan:
65*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
66*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
67*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    max.d $f0, $f12, $f14
68*fb9e685fSYunQiang Su  %z = call nnan double @llvm.maximumnum.f64(double %x, double %y)
69*fb9e685fSYunQiang Su  ret double %z
70*fb9e685fSYunQiang Su}
71*fb9e685fSYunQiang Su
72*fb9e685fSYunQiang Sudefine float @minimumnum_float(float %x, float %y) {
73*fb9e685fSYunQiang Su; MIPS32R6-LABEL: minimumnum_float:
74*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
75*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f14, $f14
76*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f1, $f12, $f12
77*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
78*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f1, $f0
79*fb9e685fSYunQiang Su  %z = call float @llvm.minimumnum.f32(float %x, float %y)
80*fb9e685fSYunQiang Su  ret float %z
81*fb9e685fSYunQiang Su}
82*fb9e685fSYunQiang Su
83*fb9e685fSYunQiang Sudefine float @minimumnum_float_nsz(float %x, float %y) {
84*fb9e685fSYunQiang Su; MIPS32R6-LABEL: minimumnum_float_nsz:
85*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
86*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f14, $f14
87*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f1, $f12, $f12
88*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
89*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f1, $f0
90*fb9e685fSYunQiang Su  %z = call nsz float @llvm.minimumnum.f32(float %x, float %y)
91*fb9e685fSYunQiang Su  ret float %z
92*fb9e685fSYunQiang Su}
93*fb9e685fSYunQiang Su
94*fb9e685fSYunQiang Sudefine float @minimumnum_float_nnan(float %x, float %y) {
95*fb9e685fSYunQiang Su; MIPS32R6-LABEL: minimumnum_float_nnan:
96*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
97*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
98*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.s $f0, $f12, $f14
99*fb9e685fSYunQiang Su  %z = call nnan float @llvm.minimumnum.f32(float %x, float %y)
100*fb9e685fSYunQiang Su  ret float %z
101*fb9e685fSYunQiang Su}
102*fb9e685fSYunQiang Su
103*fb9e685fSYunQiang Sudefine double @minimumnum_double(double %x, double %y) {
104*fb9e685fSYunQiang Su; MIPS32R6-LABEL: minimumnum_double:
105*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
106*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f14, $f14
107*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f1, $f12, $f12
108*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
109*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f1, $f0
110*fb9e685fSYunQiang Su  %z = call double @llvm.minimumnum.f64(double %x, double %y)
111*fb9e685fSYunQiang Su  ret double %z
112*fb9e685fSYunQiang Su}
113*fb9e685fSYunQiang Su
114*fb9e685fSYunQiang Sudefine double @minimumnum_double_nsz(double %x, double %y) {
115*fb9e685fSYunQiang Su; MIPS32R6-LABEL: minimumnum_double_nsz:
116*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
117*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f14, $f14
118*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f1, $f12, $f12
119*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
120*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f1, $f0
121*fb9e685fSYunQiang Su  %z = call nsz double @llvm.minimumnum.f64(double %x, double %y)
122*fb9e685fSYunQiang Su  ret double %z
123*fb9e685fSYunQiang Su}
124*fb9e685fSYunQiang Su
125*fb9e685fSYunQiang Sudefine double @minimumnum_double_nnan(double %x, double %y) {
126*fb9e685fSYunQiang Su; MIPS32R6-LABEL: minimumnum_double_nnan:
127*fb9e685fSYunQiang Su; MIPS32R6:       # %bb.0:
128*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    jr $ra
129*fb9e685fSYunQiang Su; MIPS32R6-NEXT:    min.d $f0, $f12, $f14
130*fb9e685fSYunQiang Su  %z = call nnan double @llvm.minimumnum.f64(double %x, double %y)
131*fb9e685fSYunQiang Su  ret double %z
132*fb9e685fSYunQiang Su}
133