blob: 7f4b51aef9d3a3674904cc1aaaa04e0e97d5cce8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
; Test that LICM works when there is not a loop-preheader
; RUN: llvm-upgrade < %s | llvm-as | opt -licm | llvm-dis
void "testfunc"(int %i.s, bool %ifcond) {
br bool %ifcond, label %Then, label %Else
Then:
br label %Loop
Else:
br label %Loop
Loop:
%j = phi uint [0, %Then], [12, %Else], [%Next, %Loop]
%i = cast int %i.s to uint
%i2 = mul uint %i, 17
%Next = add uint %j, %i2
%cond = seteq uint %Next, 0
br bool %cond, label %Out, label %Loop
Out:
ret void
}
|