| ; 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(i1 %arg) { | |
| ; 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 %arg, 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 %arg, label %dead, label %done | |
| done: | |
| %e = phi i16 [ %xor1, %dead ], [ 0, %entry ] | |
| ret void | |
| } |