| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py |
| ; RUN: opt -passes=reassociate %s -S | FileCheck %s |
| |
| target triple = "x86_64-unknown-linux-gnu" |
| |
| define void @f() { |
| ; CHECK-LABEL: @f( |
| ; CHECK-NEXT: entry: |
| ; CHECK-NEXT: br label [[DONE:%.*]] |
| ; CHECK: dead: |
| ; CHECK-NEXT: [[XOR0:%.*]] = xor i16 [[XOR1:%.*]], undef |
| ; CHECK-NEXT: [[XOR1]] = xor i16 [[XOR0]], undef |
| ; CHECK-NEXT: br i1 undef, label [[DEAD:%.*]], label [[DONE]] |
| ; CHECK: done: |
| ; CHECK-NEXT: ret void |
| ; |
| entry: |
| br label %done |
| |
| dead: |
| %xor0 = xor i16 %xor1, undef |
| %xor1 = xor i16 %xor0, undef |
| br i1 undef, label %dead, label %done |
| |
| done: |
| %e = phi i16 [ %xor1, %dead ], [ 0, %entry ] |
| ret void |
| } |