31 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S -passes=gvn-sink < %s | FileCheck %s3 4define i64 @test(i1 %c, ptr %p, ptr %p2) {5; CHECK-LABEL: define i64 @test(6; CHECK-SAME: i1 [[C:%.*]], ptr [[P:%.*]], ptr [[P2:%.*]]) {7; CHECK-NEXT: br i1 [[C]], label %[[IF:.*]], label %[[ELSE:.*]]8; CHECK: [[IF]]:9; CHECK-NEXT: br label %[[JOIN:.*]]10; CHECK: [[ELSE]]:11; CHECK-NEXT: br label %[[JOIN]]12; CHECK: [[JOIN]]:13; CHECK-NEXT: [[P2_SINK:%.*]] = phi ptr [ [[P2]], %[[ELSE]] ], [ [[P]], %[[IF]] ]14; CHECK-NEXT: [[PHI:%.*]] = ptrtoaddr ptr [[P2_SINK]] to i6415; CHECK-NEXT: ret i64 [[PHI]]16;17 br i1 %c, label %if, label %else18 19if:20 %p.addr = ptrtoaddr ptr %p to i6421 br label %join22 23else:24 %p2.addr = ptrtoaddr ptr %p2 to i6425 br label %join26 27join:28 %phi = phi i64 [ %p.addr, %if ], [ %p2.addr, %else ]29 ret i64 %phi30}31