brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1005 B · 6d02bc6 Raw
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