1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/CodeGen/ARM/constant-islands.ll
Tim Northover a52b6a893f ARM: avoid duplicating branches during constant islands.
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
2014-11-13 17:58:51 +00:00

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)