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