brintos

brintos / llvm-project-archived public Read only

0
0
Text · 952 B · e51b42a Raw
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