31 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S -passes=gvn < %s | FileCheck %s3 4define i64 @ptrtoaddr_same(ptr %p) {5; CHECK-LABEL: define i64 @ptrtoaddr_same(6; CHECK-SAME: ptr [[P:%.*]]) {7; CHECK-NEXT: [[J:%.*]] = ptrtoaddr ptr [[P]] to i648; CHECK-NEXT: ret i64 09;10 %i = ptrtoaddr ptr %p to i6411 %j = ptrtoaddr ptr %p to i6412 %sub = sub i64 %i, %j13 ret i64 %sub14}15 16; Note that unlike for ptrtoint, it's not possible for ptrtoaddr to differ17; in result type for the same input.18define i64 @ptrtoaddr_different(ptr %p, ptr %p2) {19; CHECK-LABEL: define i64 @ptrtoaddr_different(20; CHECK-SAME: ptr [[P:%.*]], ptr [[P2:%.*]]) {21; CHECK-NEXT: [[I:%.*]] = ptrtoaddr ptr [[P]] to i6422; CHECK-NEXT: [[J:%.*]] = ptrtoaddr ptr [[P2]] to i6423; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[I]], [[J]]24; CHECK-NEXT: ret i64 [[SUB]]25;26 %i = ptrtoaddr ptr %p to i6427 %j = ptrtoaddr ptr %p2 to i6428 %sub = sub i64 %i, %j29 ret i64 %sub30}31