[llvm] r308780 - [PPC] Add Defs = [CARRY] to MIR SRADI_32

Guozhi Wei via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 21 14:06:08 PDT 2017


Author: carrot
Date: Fri Jul 21 14:06:08 2017
New Revision: 308780

URL: http://llvm.org/viewvc/llvm-project?rev=308780&view=rev
Log:
[PPC] Add Defs = [CARRY] to MIR SRADI_32

MIR SRADI uses instruction template XSForm_1rc which declares Defs = [CARRY]. But MIR SRADI_32 uses instruction template XSForm_1, and it doesn't declare such implicit definition. With patch D33720 it causes wrong code generation for perl.

This patch adds the implicit definition.

Differential Revision: https://reviews.llvm.org/D35699


Modified:
    llvm/trunk/lib/Target/PowerPC/PPCInstr64Bit.td

Modified: llvm/trunk/lib/Target/PowerPC/PPCInstr64Bit.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCInstr64Bit.td?rev=308780&r1=308779&r2=308780&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCInstr64Bit.td (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCInstr64Bit.td Fri Jul 21 14:06:08 2017
@@ -643,7 +643,7 @@ defm SRADI  : XSForm_1rc<31, 413, (outs
                          "sradi", "$rA, $rS, $SH", IIC_IntRotateDI,
                          [(set i64:$rA, (sra i64:$rS, (i32 imm:$SH)))]>, isPPC64;
 // For fast-isel:
-let isCodeGenOnly = 1 in
+let isCodeGenOnly = 1, Defs = [CARRY] in
 def SRADI_32  : XSForm_1<31, 413, (outs gprc:$rA), (ins gprc:$rS, u6imm:$SH),
                          "sradi $rA, $rS, $SH", IIC_IntRotateDI, []>, isPPC64;
 




More information about the llvm-commits mailing list