mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
db3c93e416
This will remove suboptimal branching from the generated ll/sc loops. The extra simplification pass affects a lot of testcases, which have been modified to accommodate this change: either by modifying the test to become immune to the CFG simplification, or (less preferablt) by adding option -hexagon-initial-cfg-clenaup=0. llvm-svn: 338774
28 lines
679 B
LLVM
28 lines
679 B
LLVM
; RUN: llc -march=hexagon -hexagon-initial-cfg-cleanup=0 < %s | FileCheck %s
|
|
|
|
; Check that this compiles successfully.
|
|
; CHECK: if (p0)
|
|
|
|
target triple = "hexagon"
|
|
|
|
define void @fred() #0 {
|
|
b0:
|
|
br label %b1
|
|
|
|
b1: ; preds = %b1, %b0
|
|
%v2 = load i32, i32* undef, align 4
|
|
%v3 = select i1 undef, i32 %v2, i32 0
|
|
%v4 = and i32 %v3, 7
|
|
%v5 = icmp eq i32 %v4, 4
|
|
%v6 = or i1 undef, %v5
|
|
%v7 = and i1 undef, %v6
|
|
%v8 = xor i1 %v7, true
|
|
%v9 = or i1 undef, %v8
|
|
br i1 %v9, label %b10, label %b1
|
|
|
|
b10: ; preds = %b1
|
|
unreachable
|
|
}
|
|
|
|
attributes #0 = { nounwind "target-cpu"="hexagonv55" }
|