Skip to content

Commit 3041560

Browse files
committed
[GVN] Add ptrtoaddr test (NFC)
1 parent d7eade1 commit 3041560

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
2+
; RUN: opt -S -passes=gvn < %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: [[I:%.*]] = ptrtoaddr ptr [[P]] to i64
8+
; CHECK-NEXT: [[J:%.*]] = ptrtoaddr ptr [[P]] to i64
9+
; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[I]], [[J]]
10+
; CHECK-NEXT: ret i64 [[SUB]]
11+
;
12+
%i = ptrtoaddr ptr %p to i64
13+
%j = ptrtoaddr 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 = ptrtoaddr ptr %p to i64
29+
%j = ptrtoaddr ptr %p2 to i64
30+
%sub = sub i64 %i, %j
31+
ret i64 %sub
32+
}

0 commit comments

Comments
 (0)