53 lines · plain
1; RUN: llc -mtriple=hexagon -enable-pipeliner < %s2; REQUIRES: asserts3 4; This test checks that we don't assert when the Phi value from the5; loop is actually defined prior to the loop, e.g., from CSE.6 7define fastcc void @f0() {8b0:9 br i1 undef, label %b10, label %b110 11b1: ; preds = %b012 br i1 undef, label %b3, label %b213 14b2: ; preds = %b115 br label %b816 17b3: ; preds = %b118 br i1 undef, label %b4, label %b619 20b4: ; preds = %b321 %v0 = load i16, ptr undef, align 222 br label %b723 24b5: ; preds = %b725 br label %b626 27b6: ; preds = %b5, %b328 %v1 = phi i16 [ %v9, %b5 ], [ 0, %b3 ]29 br i1 undef, label %b10, label %b930 31b7: ; preds = %b7, %b432 %v2 = phi i16 [ 0, %b7 ], [ %v0, %b4 ]33 %v3 = phi i16 [ %v9, %b7 ], [ 0, %b4 ]34 %v4 = phi i32 [ %v10, %b7 ], [ undef, %b4 ]35 %v5 = or i16 0, %v336 %v6 = or i16 0, %v537 %v7 = or i16 0, %v638 %v8 = lshr i16 %v2, 839 %v9 = or i16 %v8, %v740 %v10 = add nsw i32 %v4, -3241 %v11 = icmp sgt i32 %v10, 3142 br i1 %v11, label %b7, label %b543 44b8: ; preds = %b8, %b245 br label %b846 47b9: ; preds = %b648 br label %b1049 50b10: ; preds = %b9, %b6, %b051 ret void52}53