Add workaround for <rdar://problem/7098328>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77340 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Goodwin 2009-07-28 18:15:38 +00:00
parent 3e23d42dee
commit 5743854f47
2 changed files with 4 additions and 3 deletions

View File

@ -714,8 +714,9 @@ defm t2LSR : T2I_sh_ir<"lsr", BinOpFrag<(srl node:$LHS, node:$RHS)>>;
defm t2ASR : T2I_sh_ir<"asr", BinOpFrag<(sra node:$LHS, node:$RHS)>>;
defm t2ROR : T2I_sh_ir<"ror", BinOpFrag<(rotr node:$LHS, node:$RHS)>>;
// FIXME should be "rrx $dst,$src" once <rdar://problem/7098328> is fixed
def t2MOVrx : T2sI<(outs GPR:$dst), (ins GPR:$src),
"rrx", " $dst, $src",
"mov", ".w $dst, $src, rrx",
[(set GPR:$dst, (ARMrrx GPR:$src))]>;
let Defs = [CPSR] in {

View File

@ -2,7 +2,7 @@
define i1 @test1(i64 %poscnt, i32 %work) {
entry:
; CHECK: rrx r0, r0
; CHECK: mov.w r0, r0, rrx
; CHECK: lsrs.w r1, r1, #1
%0 = lshr i64 %poscnt, 1
%1 = icmp eq i64 %0, 0
@ -11,7 +11,7 @@ entry:
define i1 @test2(i64 %poscnt, i32 %work) {
entry:
; CHECK: rrx r0, r0
; CHECK: mov.w r0, r0, rrx
; CHECK: asrs.w r1, r1, #1
%0 = ashr i64 %poscnt, 1
%1 = icmp eq i64 %0, 0