File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
llvm/test/Transforms/NewGVN Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 1+ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
2+ ; RUN: opt -S -passes=newgvn < %s | FileCheck %s
3+
4+ define 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 i64
8+ ; CHECK-NEXT: [[J1:%.*]] = ptrtoaddr ptr [[P]] to i64
9+ ; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[J]], [[J1]]
10+ ; CHECK-NEXT: ret i64 [[SUB]]
11+ ;
12+ %i = ptr toaddr ptr %p to i64
13+ %j = ptr toaddr ptr %p to i64
14+ %sub = sub i64 %i , %j
15+ ret i64 %sub
16+ }
17+
18+ ; Note that unlike for ptrtoint, it's not possible for ptrtoaddr to differ
19+ ; in result type for the same input.
20+ define i64 @ptrtoaddr_different (ptr %p , ptr %p2 ) {
21+ ; CHECK-LABEL: define i64 @ptrtoaddr_different(
22+ ; CHECK-SAME: ptr [[P:%.*]], ptr [[P2:%.*]]) {
23+ ; CHECK-NEXT: [[I:%.*]] = ptrtoaddr ptr [[P]] to i64
24+ ; CHECK-NEXT: [[J:%.*]] = ptrtoaddr ptr [[P2]] to i64
25+ ; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[I]], [[J]]
26+ ; CHECK-NEXT: ret i64 [[SUB]]
27+ ;
28+ %i = ptr toaddr ptr %p to i64
29+ %j = ptr toaddr ptr %p2 to i64
30+ %sub = sub i64 %i , %j
31+ ret i64 %sub
32+ }
You can’t perform that action at this time.
0 commit comments