mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 21:57:55 +00:00
Radar 8803471: Fix expansion of ARM BCCi64 pseudo instructions.
If the basic block containing the BCCi64 (or BCCZi64) instruction ends with an unconditional branch, that branch needs to be deleted before appending the expansion of the BCCi64 to the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122521 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
af62935bce
commit
3c904694fc
@ -4433,6 +4433,9 @@ ARMTargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
|
||||
|
||||
case ARM::BCCi64:
|
||||
case ARM::BCCZi64: {
|
||||
// If there is an unconditional branch to the other successor, remove it.
|
||||
BB->erase(llvm::next(MachineBasicBlock::iterator(MI)), BB->end());
|
||||
|
||||
// Compare both parts that make up the double comparison separately for
|
||||
// equality.
|
||||
bool RHSisZero = MI->getOpcode() == ARM::BCCZi64;
|
||||
|
@ -38,6 +38,7 @@ entry:
|
||||
; FINITE: t2:
|
||||
; FINITE-NOT: vldr
|
||||
; FINITE: ldrd r0, [r0]
|
||||
; FINITE-NOT: b LBB
|
||||
; FINITE: cmp r0, #0
|
||||
; FINITE: cmpeq r1, #0
|
||||
; FINITE-NOT: vcmpe.f32
|
||||
|
Loading…
Reference in New Issue
Block a user