brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 99c3121 Raw
43 lines · plain
1; RUN: llc -mtriple=hexagon -mcpu=hexagonv5 -enable-pipeliner \2; RUN:     -pipeliner-max-stages=2 < %s -pipeliner-experimental-cg=true | FileCheck %s3 4@A = global [8 x i32] [i32 4, i32 -3, i32 5, i32 -2, i32 -1, i32 2, i32 6, i32 -2], align 85 6define i32 @test(i32 %Left, i32 %Right) {7entry:8  %add = add nsw i32 %Right, %Left9  %div = sdiv i32 %add, 210  %cmp9 = icmp slt i32 %div, %Left11  br i1 %cmp9, label %for.end, label %for.body.preheader12 13for.body.preheader:14  br label %for.body15 16; CHECK: loop0(.LBB0_[[LOOP:.]],17; CHECK: .LBB0_[[LOOP]]:18; CHECK: [[REG1:(r[0-9]+)]] = max(r{{[0-9]+}},[[REG1]])19; CHECK: [[REG0:(r[0-9]+)]] = add([[REG2:(r[0-9]+)]],[[REG0]])20; CHECK: [[REG2]] = memw21; CHECK: endloop022 23for.body:24  %MaxLeftBorderSum.012 = phi i32 [ %MaxLeftBorderSum.1, %for.body ], [ 0, %for.body.preheader ]25  %i.011 = phi i32 [ %dec, %for.body ], [ %div, %for.body.preheader ]26  %LeftBorderSum.010 = phi i32 [ %add1, %for.body ], [ 0, %for.body.preheader ]27  %arrayidx = getelementptr inbounds [8 x i32], ptr @A, i32 0, i32 %i.01128  %0 = load i32, ptr %arrayidx, align 429  %add1 = add nsw i32 %0, %LeftBorderSum.01030  %cmp2 = icmp sgt i32 %add1, %MaxLeftBorderSum.01231  %MaxLeftBorderSum.1 = select i1 %cmp2, i32 %add1, i32 %MaxLeftBorderSum.01232  %dec = add nsw i32 %i.011, -133  %cmp = icmp slt i32 %dec, %Left34  br i1 %cmp, label %for.end.loopexit, label %for.body35 36for.end.loopexit:37  br label %for.end38 39for.end:40  %MaxLeftBorderSum.0.lcssa = phi i32 [ 0, %entry ], [ %MaxLeftBorderSum.1, %for.end.loopexit ]41  ret i32 %MaxLeftBorderSum.0.lcssa42}43