mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-28 15:33:16 +00:00
Recommit this change and remove the failing part of the test - it didn't
pass in the first place and was masked by earlier failures not warning and aborting the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119184 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a284aa1657
commit
76dda7ec1d
@ -590,10 +590,11 @@ bool ARMFastISel::ARMComputeRegOffset(const Value *Obj, unsigned &Base,
|
|||||||
// Don't walk into other basic blocks; it's possible we haven't
|
// Don't walk into other basic blocks; it's possible we haven't
|
||||||
// visited them yet, so the instructions may not yet be assigned
|
// visited them yet, so the instructions may not yet be assigned
|
||||||
// virtual registers.
|
// virtual registers.
|
||||||
if (FuncInfo.MBBMap[I->getParent()] != FuncInfo.MBB)
|
if (FuncInfo.StaticAllocaMap.count(static_cast<const AllocaInst *>(Obj)) ||
|
||||||
return false;
|
FuncInfo.MBBMap[I->getParent()] == FuncInfo.MBB) {
|
||||||
Opcode = I->getOpcode();
|
Opcode = I->getOpcode();
|
||||||
U = I;
|
U = I;
|
||||||
|
}
|
||||||
} else if (const ConstantExpr *C = dyn_cast<ConstantExpr>(Obj)) {
|
} else if (const ConstantExpr *C = dyn_cast<ConstantExpr>(Obj)) {
|
||||||
Opcode = C->getOpcode();
|
Opcode = C->getOpcode();
|
||||||
U = C;
|
U = C;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: true
|
; RUN: llc < %s -O0 -fast-isel-abort -mtriple=armv7-apple-darwin
|
||||||
; RUN: true
|
; RUN: llc < %s -O0 -fast-isel-abort -mtriple=thumbv7-apple-darwin
|
||||||
|
|
||||||
; Very basic fast-isel functionality.
|
; Very basic fast-isel functionality.
|
||||||
|
|
||||||
@ -13,27 +13,4 @@ entry:
|
|||||||
%tmp1 = load i32* %b.addr
|
%tmp1 = load i32* %b.addr
|
||||||
%add = add nsw i32 %tmp, %tmp1
|
%add = add nsw i32 %tmp, %tmp1
|
||||||
ret i32 %add
|
ret i32 %add
|
||||||
}
|
}
|
||||||
|
|
||||||
define i32* @foo(i32* %p, i32* %q, i32** %z) nounwind {
|
|
||||||
entry:
|
|
||||||
%r = load i32* %p
|
|
||||||
%s = load i32* %q
|
|
||||||
%y = load i32** %z
|
|
||||||
br label %fast
|
|
||||||
|
|
||||||
fast:
|
|
||||||
%t0 = add i32 %r, %s
|
|
||||||
%t1 = mul i32 %t0, %s
|
|
||||||
%t2 = sub i32 %t1, %s
|
|
||||||
%t3 = and i32 %t2, %s
|
|
||||||
%t4 = xor i32 %t3, 3
|
|
||||||
%t5 = xor i32 %t4, %s
|
|
||||||
%t6 = add i32 %t5, 2
|
|
||||||
%t7 = getelementptr i32* %y, i32 1
|
|
||||||
%t8 = getelementptr i32* %t7, i32 %t6
|
|
||||||
br label %exit
|
|
||||||
|
|
||||||
exit:
|
|
||||||
ret i32* %t8
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user