; 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
}
