1; RUN: llc %s -mtriple=mipsisa32r6el-linux-gnu -o - | \ 2; RUN: FileCheck %s --check-prefix=MIPS32R6EL 3; RUN: llc %s -mtriple=mipsisa64r6el-linux-gnuabi64 -o - | \ 4; RUN: FileCheck %s --check-prefix=MIPS64R6EL 5 6define float @mins(float %x, float %y) { 7; MIPS32R6EL-LABEL: mins 8; MIPS32R6EL: # %bb.0: 9; MIPS32R6EL-NEXT: min.s $f0, $f14, $f14 10; MIPS32R6EL-NEXT: min.s $f1, $f12, $f12 11; MIPS32R6EL-NEXT: jr $ra 12; MIPS32R6EL-NEXT: min.s $f0, $f1, $f0 13; 14; MIPS64R6EL-LABEL: mins 15; MIPS64R6EL: # %bb.0: 16; MIPS64R6EL-NEXT: min.s $f0, $f13, $f13 17; MIPS64R6EL-NEXT: min.s $f1, $f12, $f12 18; MIPS64R6EL-NEXT: jr $ra 19; MIPS64R6EL-NEXT: min.s $f0, $f1, $f0 20 21 %r = tail call float @llvm.minnum.f32(float %x, float %y) 22 ret float %r 23} 24 25define float @maxs(float %x, float %y) { 26; MIPS32R6EL-LABEL: maxs 27; MIPS32R6EL: # %bb.0: 28; MIPS32R6EL-NEXT: min.s $f0, $f14, $f14 29; MIPS32R6EL-NEXT: min.s $f1, $f12, $f12 30; MIPS32R6EL-NEXT: jr $ra 31; MIPS32R6EL-NEXT: max.s $f0, $f1, $f0 32; 33; MIPS64R6EL-LABEL: maxs 34; MIPS64R6EL: # %bb.0: 35; MIPS64R6EL-NEXT: min.s $f0, $f13, $f13 36; MIPS64R6EL-NEXT: min.s $f1, $f12, $f12 37; MIPS64R6EL-NEXT: jr $ra 38; MIPS64R6EL-NEXT: max.s $f0, $f1, $f0 39 40 %r = tail call float @llvm.maxnum.f32(float %x, float %y) 41 ret float %r 42} 43 44define double @mind(double %x, double %y) { 45; MIPS32R6EL-LABEL: mind 46; MIPS32R6EL: # %bb.0: 47; MIPS32R6EL-NEXT: min.d $f0, $f14, $f14 48; MIPS32R6EL-NEXT: min.d $f1, $f12, $f12 49; MIPS32R6EL-NEXT: jr $ra 50; MIPS32R6EL-NEXT: min.d $f0, $f1, $f0 51; 52; MIPS64R6EL-LABEL: mind 53; MIPS64R6EL: # %bb.0: 54; MIPS64R6EL-NEXT: min.d $f0, $f13, $f13 55; MIPS64R6EL-NEXT: min.d $f1, $f12, $f12 56; MIPS64R6EL-NEXT: jr $ra 57; MIPS64R6EL-NEXT: min.d $f0, $f1, $f0 58 59 %r = tail call double @llvm.minnum.f64(double %x, double %y) 60 ret double %r 61} 62 63define double @maxd(double %x, double %y) { 64; MIPS32R6EL-LABEL: maxd 65; MIPS32R6EL: # %bb.0: 66; MIPS32R6EL-NEXT: min.d $f0, $f14, $f14 67; MIPS32R6EL-NEXT: min.d $f1, $f12, $f12 68; MIPS32R6EL-NEXT: jr $ra 69; MIPS32R6EL-NEXT: max.d $f0, $f1, $f0 70; 71; MIPS64R6EL-LABEL: maxd 72; MIPS64R6EL: # %bb.0: 73; MIPS64R6EL-NEXT: min.d $f0, $f13, $f13 74; MIPS64R6EL-NEXT: min.d $f1, $f12, $f12 75; MIPS64R6EL-NEXT: jr $ra 76; MIPS64R6EL-NEXT: max.d $f0, $f1, $f0 77 78 %r = tail call double @llvm.maxnum.f64(double %x, double %y) 79 ret double %r 80} 81 82declare float @llvm.minnum.f32(float, float) 83declare float @llvm.maxnum.f32(float, float) 84declare double @llvm.minnum.f64(double, double) 85declare double @llvm.maxnum.f64(double, double) 86