]> granicus.if.org Git - llvm/commitdiff
Only emit movw on ARMv6T2+
authorRenato Golin <renato.golin@linaro.org>
Tue, 2 Sep 2014 22:45:13 +0000 (22:45 +0000)
committerRenato Golin <renato.golin@linaro.org>
Tue, 2 Sep 2014 22:45:13 +0000 (22:45 +0000)
Fix PR18364.

Patch by Dimitry Andric.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216989 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td
test/CodeGen/ARM/carry.ll

index 07f608c1c5b2e6c902819a2a09f2aca7aef418ce..1c2f1900bcb0526daa4312334c8e32bc5d5fe68f 100644 (file)
@@ -3426,7 +3426,8 @@ def : ARMPat<(ARMaddc GPR:$src, imm0_65535_neg:$imm),
 def : ARMPat<(ARMadde GPR:$src, so_imm_not:$imm, CPSR),
              (SBCri   GPR:$src, so_imm_not:$imm)>;
 def : ARMPat<(ARMadde GPR:$src, imm0_65535_neg:$imm, CPSR),
-             (SBCrr   GPR:$src, (MOVi16 (imm_not_XFORM imm:$imm)))>;
+             (SBCrr   GPR:$src, (MOVi16 (imm_not_XFORM imm:$imm)))>,
+             Requires<[IsARM, HasV6T2]>;
 
 // Note: These are implemented in C++ code, because they have to generate
 // ADD/SUBrs instructions, which use a complex pattern that a xform function
index e344b08a8aebf98a3e9aa437f677e4f705898837..7ea9be2c61e69653e76767676ff330077f521487 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s
+; RUN: llc -mtriple=armv6t2-eabi %s -o - | FileCheck %s
 
 define i64 @f1(i64 %a, i64 %b) {
 ; CHECK-LABEL: f1: