mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221904 91177308-0d34-0410-b5e6-96231b3b80d8
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)
|