From: Tim Northover Date: Tue, 17 Jan 2017 23:04:01 +0000 (+0000) Subject: GlobalISel: fix comparison order for G_FCMP X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f4d04d46f85b5220f078cb5001438490eab88192;p=llvm GlobalISel: fix comparison order for G_FCMP As with G_ICMP we'd written the CSET instructions backwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292285 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AArch64/AArch64InstructionSelector.cpp b/lib/Target/AArch64/AArch64InstructionSelector.cpp index b51473524c7..f8565379998 100644 --- a/lib/Target/AArch64/AArch64InstructionSelector.cpp +++ b/lib/Target/AArch64/AArch64InstructionSelector.cpp @@ -1134,7 +1134,7 @@ bool AArch64InstructionSelector::select(MachineInstr &I) const { .addDef(Def1Reg) .addUse(AArch64::WZR) .addUse(AArch64::WZR) - .addImm(CC1); + .addImm(getInvertedCondCode(CC1)); if (CC2 != AArch64CC::AL) { unsigned Def2Reg = MRI.createVirtualRegister(&AArch64::GPR32RegClass); @@ -1143,7 +1143,7 @@ bool AArch64InstructionSelector::select(MachineInstr &I) const { .addDef(Def2Reg) .addUse(AArch64::WZR) .addUse(AArch64::WZR) - .addImm(CC2); + .addImm(getInvertedCondCode(CC2)); MachineInstr &OrMI = *BuildMI(MBB, I, I.getDebugLoc(), TII.get(AArch64::ORRWrr)) .addDef(DefReg) diff --git a/test/CodeGen/AArch64/GlobalISel/arm64-instructionselect.mir b/test/CodeGen/AArch64/GlobalISel/arm64-instructionselect.mir index ece5a858b49..b443303eaf5 100644 --- a/test/CodeGen/AArch64/GlobalISel/arm64-instructionselect.mir +++ b/test/CodeGen/AArch64/GlobalISel/arm64-instructionselect.mir @@ -2879,12 +2879,12 @@ registers: # CHECK: body: # CHECK: FCMPSrr %0, %0, implicit-def %nzcv -# CHECK: [[TST_MI:%[0-9]+]] = CSINCWr %wzr, %wzr, 4, implicit %nzcv -# CHECK: [[TST_GT:%[0-9]+]] = CSINCWr %wzr, %wzr, 12, implicit %nzcv +# CHECK: [[TST_MI:%[0-9]+]] = CSINCWr %wzr, %wzr, 5, implicit %nzcv +# CHECK: [[TST_GT:%[0-9]+]] = CSINCWr %wzr, %wzr, 13, implicit %nzcv # CHECK: %1 = ORRWrr [[TST_MI]], [[TST_GT]] # CHECK: FCMPDrr %2, %2, implicit-def %nzcv -# CHECK: %3 = CSINCWr %wzr, %wzr, 5, implicit %nzcv +# CHECK: %3 = CSINCWr %wzr, %wzr, 4, implicit %nzcv body: | bb.0: