32 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=newgvn -S %s | FileCheck %s3 4define hidden void @foo() {5; CHECK-LABEL: @foo(6; CHECK-NEXT: top:7; CHECK-NEXT: br label [[IF:%.*]]8; CHECK: if:9; CHECK-NEXT: br i1 false, label [[L50:%.*]], label [[IF]]10; CHECK: L50:11; CHECK-NEXT: store i8 poison, ptr null, align 112; CHECK-NEXT: ret void13;14top:15 %.promoted = load i8, ptr undef, align 816 br label %if17 18;; This is really a multi-valued phi, because the phi is defined by an expression of the phi.19;; This means that we can't propagate the value over the backedge, because we'll just cycle20;; through every value.21 22if: ; preds = %if, %top23 %0 = phi i8 [ %1, %if ], [ %.promoted, %top ]24 %1 = xor i8 %0, undef25 br i1 false, label %L50, label %if26 27L50: ; preds = %if28 %.lcssa = phi i8 [ %1, %if ]29 store i8 %.lcssa, ptr undef, align 830 ret void31}32