48 lines · plain
1; RUN: llc -mtriple=hexagon < %s2; REQUIRES: asserts3 4; Test that the HexagonExpandCondsets pass does not assert due to5; attempting to shrink a live interval incorrectly.6 7 8define void @test() #0 {9entry:10 br i1 undef, label %cleanup, label %if.end11 12if.end:13 %0 = load i32, ptr undef, align 414 %sext = shl i32 %0, 1615 %conv19 = ashr exact i32 %sext, 1616 br i1 undef, label %cleanup, label %for.body.lr.ph17 18for.body.lr.ph:19 br label %for.body20 21for.body:22 %bestScoreL16Q4.0278 = phi i16 [ 32767, %for.body.lr.ph ], [ %.sink, %early_termination ]23 br i1 false, label %for.body44.lr.ph, label %for.cond90.preheader24 25for.body44.lr.ph:26 %conv77 = sext i16 %bestScoreL16Q4.0278 to i3227 unreachable28 29for.cond90.preheader:30 br i1 undef, label %early_termination, label %for.body9731 32for.body97:33 br i1 undef, label %for.body97, label %early_termination34 35early_termination:36 %.sink = select i1 undef, i16 undef, i16 %bestScoreL16Q4.027837 %cmp27 = icmp slt i32 undef, %conv1938 br i1 %cmp27, label %for.body, label %for.end12439 40for.end124:41 unreachable42 43cleanup:44 ret void45}46 47attributes #0 = { nounwind "target-cpu"="hexagonv60" }48