; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 ; RUN: opt -S -passes=gvn-sink < %s | FileCheck %s define i64 @test(i1 %c, ptr %p, ptr %p2) { ; CHECK-LABEL: define i64 @test( ; CHECK-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P2:%.*]]) { ; CHECK-NEXT: br i1 [[C]], label %[[IF:.*]], label %[[ELSE:.*]] ; CHECK: [[IF]]: ; CHECK-NEXT: br label %[[JOIN:.*]] ; CHECK: [[ELSE]]: ; CHECK-NEXT: br label %[[JOIN]] ; CHECK: [[JOIN]]: ; CHECK-NEXT: [[P2_SINK:%.*]] = phi ptr [ [[P2]], %[[ELSE]] ], [ [[P]], %[[IF]] ] ; CHECK-NEXT: [[PHI:%.*]] = ptrtoaddr ptr [[P2_SINK]] to i64 ; CHECK-NEXT: ret i64 [[PHI]] ; br i1 %c, label %if, label %else if: %p.addr = ptrtoaddr ptr %p to i64 br label %join else: %p2.addr = ptrtoaddr ptr %p2 to i64 br label %join join: %phi = phi i64 [ %p.addr, %if ], [ %p2.addr, %else ] ret i64 %phi }