| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py |
| ; RUN: opt -S -passes=newgvn %s | FileCheck %s |
| |
| @a = external global i32 |
| |
| define void @b() { |
| ; CHECK-LABEL: @b( |
| ; CHECK-NEXT: br i1 false, label [[C:%.*]], label [[WHILE_D:%.*]] |
| ; CHECK: while.d: |
| ; CHECK-NEXT: br label [[F:%.*]] |
| ; CHECK: f: |
| ; CHECK-NEXT: br i1 undef, label [[IF_E:%.*]], label [[C]] |
| ; CHECK: c: |
| ; CHECK-NEXT: br i1 undef, label [[IF_G:%.*]], label [[IF_E]] |
| ; CHECK: if.g: |
| ; CHECK-NEXT: store i32 undef, ptr @a |
| ; CHECK-NEXT: br label [[WHILE_D]] |
| ; CHECK: if.e: |
| ; CHECK-NEXT: br label [[F]] |
| ; |
| br i1 false, label %c, label %while.d |
| |
| while.d: ; preds = %if.g, %0 |
| br label %f |
| |
| f: ; preds = %if.e, %while.d |
| br i1 undef, label %if.e, label %c |
| |
| c: ; preds = %f, %0 |
| br i1 undef, label %if.g, label %if.e |
| |
| if.g: ; preds = %c |
| store i32 undef, ptr @a |
| br label %while.d |
| |
| if.e: ; preds = %c, %f |
| br label %f |
| } |
| |