mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
a52b6a893f
We were using a naive heuristic to determine whether a basic block already had an unconditional branch at the end. This mostly corresponded to reality (assuming branches got optimised) because there's not much point in a branch to the next block, but could go wrong. llvm-svn: 221904
26 lines
561 B
LLVM
26 lines
561 B
LLVM
; RUN: llc -mtriple=thumbv7-linux-gnueabihf -O0 -fast-isel=0 -o - %s | FileCheck %s
|
|
|
|
define void @test_no_duplicate_branches(float %in) {
|
|
; CHECK-LABEL: test_no_duplicate_branches:
|
|
; CHECK: vldr {{s[0-9]+}}, [[CONST:\.LCPI[0-9]+_[0-9]+]]
|
|
; CHECK: b .LBB
|
|
; CHECK-NOT: b .LBB
|
|
; CHECK: [[CONST]]:
|
|
; CHECK-NEXT: .long 1150963712
|
|
|
|
%tst = fcmp oeq float %in, 1234.5
|
|
|
|
%chain = zext i1 %tst to i32
|
|
|
|
br i1 %tst, label %true, label %false
|
|
|
|
true:
|
|
call i32 @llvm.arm.space(i32 2000, i32 undef)
|
|
ret void
|
|
|
|
false:
|
|
ret void
|
|
}
|
|
|
|
declare i32 @llvm.arm.space(i32, i32)
|