diff options
| author | Bob Wilson <bob.wilson@apple.com> | 2012-07-02 17:22:47 +0000 |
|---|---|---|
| committer | Bob Wilson <bob.wilson@apple.com> | 2012-07-02 17:22:47 +0000 |
| commit | 22972210287a4977a2054e180066007d7368df9f (patch) | |
| tree | 0da054a79e361c95038b0ee99ec5d4a7d5a6fe0b | |
| parent | d0bcfe4d9decdef9a90c15d6958b165913186e15 (diff) | |
| download | bcm5719-llvm-22972210287a4977a2054e180066007d7368df9f.tar.gz bcm5719-llvm-22972210287a4977a2054e180066007d7368df9f.zip | |
Do not attempt to use ROR for Thumb1.
Patch by Matt Fischer!
llvm-svn: 159538
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb2.td | 4 | ||||
| -rw-r--r-- | llvm/test/CodeGen/Thumb2/thumb2-ror.ll | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrThumb2.td b/llvm/lib/Target/ARM/ARMInstrThumb2.td index bc980cdf4fb..048dc1f0fd0 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb2.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb2.td @@ -2161,8 +2161,8 @@ defm t2ROR : T2I_sh_ir<0b11, "ror", imm0_31, BinOpFrag<(rotr node:$LHS, node:$RHS)>, "t2ROR">; // (rotr x, (and y, 0x...1f)) ==> (ROR x, y) -def : Pat<(rotr rGPR:$lhs, (and rGPR:$rhs, lo5AllOne)), - (t2RORrr rGPR:$lhs, rGPR:$rhs)>; +def : T2Pat<(rotr rGPR:$lhs, (and rGPR:$rhs, lo5AllOne)), + (t2RORrr rGPR:$lhs, rGPR:$rhs)>; let Uses = [CPSR] in { def t2RRX : T2sTwoReg<(outs rGPR:$Rd), (ins rGPR:$Rm), IIC_iMOVsi, diff --git a/llvm/test/CodeGen/Thumb2/thumb2-ror.ll b/llvm/test/CodeGen/Thumb2/thumb2-ror.ll index 590c333b3d1..5ad92cd7290 100644 --- a/llvm/test/CodeGen/Thumb2/thumb2-ror.ll +++ b/llvm/test/CodeGen/Thumb2/thumb2-ror.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s - +; RUN: llc < %s -march=thumb | FileCheck %s -check-prefix=THUMB1 ; CHECK: f1: ; CHECK: ror.w r0, r0, #22 @@ -13,6 +13,8 @@ define i32 @f1(i32 %a) { ; CHECK: f2: ; CHECK-NOT: and ; CHECK: ror +; THUMB1: f2 +; THUMB1: and define i32 @f2(i32 %v, i32 %nbits) { entry: %and = and i32 %nbits, 31 @@ -21,4 +23,4 @@ entry: %shl = shl i32 %v, %sub %or = or i32 %shl, %shr ret i32 %or -}
\ No newline at end of file +} |

