summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
diff options
context:
space:
mode:
authorNemanja Ivanovic <nemanja.i.ibm@gmail.com>2017-02-24 18:16:06 +0000
committerNemanja Ivanovic <nemanja.i.ibm@gmail.com>2017-02-24 18:16:06 +0000
commit195c5452d391903f57827532b964d25a7c82ebdf (patch)
tree28aa4143b8d1c101c84f7cff91e84b41846dd3db /llvm/lib/Target/PowerPC
parent82d53ed492bebd2a585fa4c37efc81ad1d6f68d9 (diff)
downloadbcm5719-llvm-195c5452d391903f57827532b964d25a7c82ebdf.tar.gz
bcm5719-llvm-195c5452d391903f57827532b964d25a7c82ebdf.zip
[PowerPC] Use subfic instruction for subtract from immediate
Provide a 64-bit pattern to use SUBFIC for subtracting from a 16-bit immediate. The corresponding pattern already exists for 32-bit integers. Committing on behalf of Hiroshi Inoue. Differential Revision: https://reviews.llvm.org/D29387 llvm-svn: 296144
Diffstat (limited to 'llvm/lib/Target/PowerPC')
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstr64Bit.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
index 0f12aa1aaa8..997b96ca6ec 100644
--- a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+++ b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
@@ -1232,6 +1232,10 @@ def : Pat<(srl i64:$rS, i32:$rB),
def : Pat<(shl i64:$rS, i32:$rB),
(SLD $rS, $rB)>;
+// SUBFIC
+def : Pat<(sub imm64SExt16:$imm, i64:$in),
+ (SUBFIC8 $in, imm:$imm)>;
+
// SHL/SRL
def : Pat<(shl i64:$in, (i32 imm:$imm)),
(RLDICR $in, imm:$imm, (SHL64 imm:$imm))>;
OpenPOWER on IntegriCloud