aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2013-07-05 18:57:49 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2013-07-05 18:57:49 +0000
commitfe3b2995aa38b25bada9fa2e850590b3988668b5 (patch)
treec911753ad5f9be8212b139e980975c602593cf5c /lib/Target/ARM
parentffd3bb8f0d875f4aae3097660f973b1e7512ee05 (diff)
downloadexternal_llvm-fe3b2995aa38b25bada9fa2e850590b3988668b5.zip
external_llvm-fe3b2995aa38b25bada9fa2e850590b3988668b5.tar.gz
external_llvm-fe3b2995aa38b25bada9fa2e850590b3988668b5.tar.bz2
ARM: Add a pack pattern for matching arithmetic shift right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185714 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM')
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index 75d3de9..9eba553 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -4017,6 +4017,9 @@ def : ARMV6Pat<(or (and GPRnopc:$src1, 0xFFFF0000),
(srl GPRnopc:$src2, imm16:$sh)),
(PKHTB GPRnopc:$src1, GPRnopc:$src2, imm16:$sh)>;
def : ARMV6Pat<(or (and GPRnopc:$src1, 0xFFFF0000),
+ (sra GPRnopc:$src2, imm16_31:$sh)),
+ (PKHTB GPRnopc:$src1, GPRnopc:$src2, imm16_31:$sh)>;
+def : ARMV6Pat<(or (and GPRnopc:$src1, 0xFFFF0000),
(and (srl GPRnopc:$src2, imm1_15:$sh), 0xFFFF)),
(PKHTB GPRnopc:$src1, GPRnopc:$src2, imm1_15:$sh)>;