brintos

brintos / llvm-project-archived public Read only

0
0
Text · 767 B · ab173b8 Raw
37 lines · plain
1; RUN: llc -mtriple=i686-linux < %s | FileCheck %s2 3 4define i32 @bar(i32 %count) {5; Test checks that basic block backedge2 is not moved before header,6; because it can't reduce taken branches.7; Later backedge1 and backedge2 is rotated before loop header.8; CHECK-LABEL: bar9; CHECK: %.entry10; CHECK: %.header11; CHECK: %.backedge112; CHECK: %.backedge213; CHECK: %.exit14.entry:15  %c = shl nsw i32 %count, 216  br label %.header17 18.header:19  %val1 = call i32 @foo()20  %cond1 = icmp sgt i32 %val1, 121  br i1 %cond1, label %.exit, label %.backedge122 23.backedge1:24  %val2 = call i32 @foo()25  %cond2 = icmp sgt i32 %val2, 126  br i1 %cond2, label %.header, label %.backedge227 28.backedge2:29  %val3 = call i32 @foo()30  br label %.header31 32.exit:33  ret i32 %c34}35 36declare i32 @foo()37