# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py # RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP32 # RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=FP64 --- | define void @false_s() {entry: ret void} define void @true_s() {entry: ret void} define void @uno_s() {entry: ret void} define void @ord_s() {entry: ret void} define void @oeq_s() {entry: ret void} define void @une_s() {entry: ret void} define void @ueq_s() {entry: ret void} define void @one_s() {entry: ret void} define void @olt_s() {entry: ret void} define void @uge_s() {entry: ret void} define void @ult_s() {entry: ret void} define void @oge_s() {entry: ret void} define void @ole_s() {entry: ret void} define void @ugt_s() {entry: ret void} define void @ule_s() {entry: ret void} define void @ogt_s() {entry: ret void} define void @false_d() {entry: ret void} define void @true_d() {entry: ret void} define void @uno_d() {entry: ret void} define void @ord_d() {entry: ret void} define void @oeq_d() {entry: ret void} define void @une_d() {entry: ret void} define void @ueq_d() {entry: ret void} define void @one_d() {entry: ret void} define void @olt_d() {entry: ret void} define void @uge_d() {entry: ret void} define void @ult_d() {entry: ret void} define void @oge_d() {entry: ret void} define void @ole_d() {entry: ret void} define void @ugt_d() {entry: ret void} define void @ule_d() {entry: ret void} define void @ogt_d() {entry: ret void} ... --- name: false_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: false_s ; FP32: liveins: $f12, $f14 ; FP32: [[ORi:%[0-9]+]]:gpr32 = ORi $zero, 0 ; FP32: $v0 = COPY [[ORi]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: false_s ; FP64: liveins: $f12, $f14 ; FP64: [[ORi:%[0-9]+]]:gpr32 = ORi $zero, 0 ; FP64: $v0 = COPY [[ORi]] ; FP64: RetRA implicit $v0 %5:gprb(s32) = G_CONSTANT i32 0 %4:gprb(s32) = COPY %5(s32) $v0 = COPY %4(s32) RetRA implicit $v0 ... --- name: true_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: true_s ; FP32: liveins: $f12, $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 65535 ; FP32: $v0 = COPY [[ADDiu]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: true_s ; FP64: liveins: $f12, $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 65535 ; FP64: $v0 = COPY [[ADDiu]] ; FP64: RetRA implicit $v0 %5:gprb(s32) = G_CONSTANT i32 -1 %4:gprb(s32) = COPY %5(s32) $v0 = COPY %4(s32) RetRA implicit $v0 ... --- name: uno_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: uno_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: uno_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(uno), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ord_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ord_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ord_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ord), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: oeq_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: oeq_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: oeq_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(oeq), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: une_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: une_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: une_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(une), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ueq_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ueq_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ueq_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ueq), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: one_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: one_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: one_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(one), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: olt_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: olt_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: olt_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(olt), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: uge_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: uge_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: uge_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(uge), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ult_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ult_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ult_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ult), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: oge_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: oge_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: oge_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(oge), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ole_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ole_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ole_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ole), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ugt_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ugt_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ugt_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ugt), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ule_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ule_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ule_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ule), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ogt_s alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $f12, $f14 ; FP32-LABEL: name: ogt_s ; FP32: liveins: $f12, $f14 ; FP32: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP32: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_S32 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ogt_s ; FP64: liveins: $f12, $f14 ; FP64: [[COPY:%[0-9]+]]:fgr32 = COPY $f12 ; FP64: [[COPY1:%[0-9]+]]:fgr32 = COPY $f14 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_S32 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s32) = COPY $f12 %1:fprb(s32) = COPY $f14 %4:gprb(s32) = G_FCMP floatpred(ogt), %0(s32), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: false_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: false_d ; FP32: liveins: $d6, $d7 ; FP32: [[ORi:%[0-9]+]]:gpr32 = ORi $zero, 0 ; FP32: $v0 = COPY [[ORi]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: false_d ; FP64: liveins: $d6, $d7 ; FP64: [[ORi:%[0-9]+]]:gpr32 = ORi $zero, 0 ; FP64: $v0 = COPY [[ORi]] ; FP64: RetRA implicit $v0 %5:gprb(s32) = G_CONSTANT i32 0 %4:gprb(s32) = COPY %5(s32) $v0 = COPY %4(s32) RetRA implicit $v0 ... --- name: true_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: true_d ; FP32: liveins: $d6, $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 65535 ; FP32: $v0 = COPY [[ADDiu]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: true_d ; FP64: liveins: $d6, $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 65535 ; FP64: $v0 = COPY [[ADDiu]] ; FP64: RetRA implicit $v0 %5:gprb(s32) = G_CONSTANT i32 -1 %4:gprb(s32) = COPY %5(s32) $v0 = COPY %4(s32) RetRA implicit $v0 ... --- name: uno_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: uno_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: uno_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(uno), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ord_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ord_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ord_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 1, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ord), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: oeq_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: oeq_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: oeq_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(oeq), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: une_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: une_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: une_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 2, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(une), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ueq_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ueq_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ueq_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ueq), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: one_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: one_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: one_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 3, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(one), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: olt_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: olt_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: olt_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(olt), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: uge_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: uge_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: uge_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 4, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(uge), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ult_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ult_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ult_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ult), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: oge_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: oge_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: oge_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 5, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(oge), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ole_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ole_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ole_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ole), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ugt_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ugt_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ugt_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 6, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ugt), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ule_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ule_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP32: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVF_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ule_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP64: [[MOVF_I:%[0-9]+]]:gpr32 = MOVF_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVF_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ule), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ... --- name: ogt_d alignment: 4 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.1.entry: liveins: $d6, $d7 ; FP32-LABEL: name: ogt_d ; FP32: liveins: $d6, $d7 ; FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6 ; FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7 ; FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP32: FCMP_D32 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP32: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP32: $v0 = COPY [[MOVT_I]] ; FP32: RetRA implicit $v0 ; FP64-LABEL: name: ogt_d ; FP64: liveins: $d6, $d7 ; FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6 ; FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7 ; FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu $zero, 1 ; FP64: FCMP_D64 [[COPY]], [[COPY1]], 7, implicit-def $fcc0 ; FP64: [[MOVT_I:%[0-9]+]]:gpr32 = MOVT_I $zero, $fcc0, [[ADDiu]] ; FP64: $v0 = COPY [[MOVT_I]] ; FP64: RetRA implicit $v0 %0:fprb(s64) = COPY $d6 %1:fprb(s64) = COPY $d7 %4:gprb(s32) = G_FCMP floatpred(ogt), %0(s64), %1 %3:gprb(s32) = COPY %4(s32) $v0 = COPY %3(s32) RetRA implicit $v0 ...