From 18f8bb84faa1d6cb44e1ca29e783dfd309f109df Mon Sep 17 00:00:00 2001 From: Tim Northover Date: Thu, 8 May 2014 10:30:56 +0000 Subject: ARM64: make sure FastISel emits SSA MachineInstrs We need to use a temporary register for a 2-step operation like REM. llvm-svn: 208297 --- llvm/lib/Target/ARM64/ARM64FastISel.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Target/ARM64/ARM64FastISel.cpp') diff --git a/llvm/lib/Target/ARM64/ARM64FastISel.cpp b/llvm/lib/Target/ARM64/ARM64FastISel.cpp index 78cde1c22c9..0d4001ebf67 100644 --- a/llvm/lib/Target/ARM64/ARM64FastISel.cpp +++ b/llvm/lib/Target/ARM64/ARM64FastISel.cpp @@ -1849,14 +1849,15 @@ bool ARM64FastISel::SelectRem(const Instruction *I, unsigned ISDOpcode) { if (!Src1Reg) return false; - unsigned ResultReg = createResultReg(TLI.getRegClassFor(DestVT)); - BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(DivOpc), ResultReg) + unsigned QuotReg = createResultReg(TLI.getRegClassFor(DestVT)); + BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(DivOpc), QuotReg) .addReg(Src0Reg) .addReg(Src1Reg); // The remainder is computed as numerator - (quotient * denominator) using the // MSUB instruction. + unsigned ResultReg = createResultReg(TLI.getRegClassFor(DestVT)); BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(MSubOpc), ResultReg) - .addReg(ResultReg) + .addReg(QuotReg) .addReg(Src1Reg) .addReg(Src0Reg); UpdateValueMap(I, ResultReg); -- cgit v1.2.3