30 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S -passes=newgvn < %s | FileCheck %s3 4define i64 @ptrtoaddr_same(ptr %p) {5; CHECK-LABEL: define i64 @ptrtoaddr_same(6; CHECK-SAME: ptr [[P:%.*]]) {7; CHECK-NEXT: ret i64 08;9 %i = ptrtoaddr ptr %p to i6410 %j = ptrtoaddr ptr %p to i6411 %sub = sub i64 %i, %j12 ret i64 %sub13}14 15; Note that unlike for ptrtoint, it's not possible for ptrtoaddr to differ16; in result type for the same input.17define i64 @ptrtoaddr_different(ptr %p, ptr %p2) {18; CHECK-LABEL: define i64 @ptrtoaddr_different(19; CHECK-SAME: ptr [[P:%.*]], ptr [[P2:%.*]]) {20; CHECK-NEXT: [[I:%.*]] = ptrtoaddr ptr [[P]] to i6421; CHECK-NEXT: [[J:%.*]] = ptrtoaddr ptr [[P2]] to i6422; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[I]], [[J]]23; CHECK-NEXT: ret i64 [[SUB]]24;25 %i = ptrtoaddr ptr %p to i6426 %j = ptrtoaddr ptr %p2 to i6427 %sub = sub i64 %i, %j28 ret i64 %sub29}30