@@ -16,25 +16,25 @@ define void @ptrtoint(i8* %in, i64* %out0, i32* %out1, i16* %out2, i128* %out3)
16
16
; X64-LABEL: 'ptrtoint'
17
17
; X64-NEXT: Classifying expressions for: @ptrtoint
18
18
; X64-NEXT: %p0 = ptrtoint i8* %in to i64
19
- ; X64-NEXT: --> %in U: full-set S: full-set
19
+ ; X64-NEXT: --> %p0 U: full-set S: full-set
20
20
; X64-NEXT: %p1 = ptrtoint i8* %in to i32
21
- ; X64-NEXT: --> (trunc i8* %in to i32) U: full-set S: full-set
21
+ ; X64-NEXT: --> %p1 U: full-set S: full-set
22
22
; X64-NEXT: %p2 = ptrtoint i8* %in to i16
23
- ; X64-NEXT: --> (trunc i8* %in to i16) U: full-set S: full-set
23
+ ; X64-NEXT: --> %p2 U: full-set S: full-set
24
24
; X64-NEXT: %p3 = ptrtoint i8* %in to i128
25
- ; X64-NEXT: --> (zext i8* %in to i128) U: [0,18446744073709551616) S: [0 ,18446744073709551616)
25
+ ; X64-NEXT: --> %p3 U: [0,18446744073709551616) S: [-18446744073709551616 ,18446744073709551616)
26
26
; X64-NEXT: Determining loop execution counts for: @ptrtoint
27
27
;
28
28
; X32-LABEL: 'ptrtoint'
29
29
; X32-NEXT: Classifying expressions for: @ptrtoint
30
30
; X32-NEXT: %p0 = ptrtoint i8* %in to i64
31
- ; X32-NEXT: --> (zext i8* %in to i64) U: [0,4294967296) S: [0 ,4294967296)
31
+ ; X32-NEXT: --> %p0 U: [0,4294967296) S: [-4294967296 ,4294967296)
32
32
; X32-NEXT: %p1 = ptrtoint i8* %in to i32
33
- ; X32-NEXT: --> %in U: full-set S: full-set
33
+ ; X32-NEXT: --> %p1 U: full-set S: full-set
34
34
; X32-NEXT: %p2 = ptrtoint i8* %in to i16
35
- ; X32-NEXT: --> (trunc i8* %in to i16) U: full-set S: full-set
35
+ ; X32-NEXT: --> %p2 U: full-set S: full-set
36
36
; X32-NEXT: %p3 = ptrtoint i8* %in to i128
37
- ; X32-NEXT: --> (zext i8* %in to i128) U: [0,4294967296) S: [0 ,4294967296)
37
+ ; X32-NEXT: --> %p3 U: [0,4294967296) S: [-4294967296 ,4294967296)
38
38
; X32-NEXT: Determining loop execution counts for: @ptrtoint
39
39
;
40
40
%p0 = ptrtoint i8* %in to i64
@@ -53,25 +53,25 @@ define void @ptrtoint_as1(i8 addrspace(1)* %in, i64* %out0, i32* %out1, i16* %ou
53
53
; X64-LABEL: 'ptrtoint_as1'
54
54
; X64-NEXT: Classifying expressions for: @ptrtoint_as1
55
55
; X64-NEXT: %p0 = ptrtoint i8 addrspace(1)* %in to i64
56
- ; X64-NEXT: --> %in U: full-set S: full-set
56
+ ; X64-NEXT: --> %p0 U: full-set S: full-set
57
57
; X64-NEXT: %p1 = ptrtoint i8 addrspace(1)* %in to i32
58
- ; X64-NEXT: --> (trunc i8 addrspace(1)* %in to i32) U: full-set S: full-set
58
+ ; X64-NEXT: --> %p1 U: full-set S: full-set
59
59
; X64-NEXT: %p2 = ptrtoint i8 addrspace(1)* %in to i16
60
- ; X64-NEXT: --> (trunc i8 addrspace(1)* %in to i16) U: full-set S: full-set
60
+ ; X64-NEXT: --> %p2 U: full-set S: full-set
61
61
; X64-NEXT: %p3 = ptrtoint i8 addrspace(1)* %in to i128
62
- ; X64-NEXT: --> (zext i8 addrspace(1)* %in to i128) U: [0,18446744073709551616) S: [0 ,18446744073709551616)
62
+ ; X64-NEXT: --> %p3 U: [0,18446744073709551616) S: [-18446744073709551616 ,18446744073709551616)
63
63
; X64-NEXT: Determining loop execution counts for: @ptrtoint_as1
64
64
;
65
65
; X32-LABEL: 'ptrtoint_as1'
66
66
; X32-NEXT: Classifying expressions for: @ptrtoint_as1
67
67
; X32-NEXT: %p0 = ptrtoint i8 addrspace(1)* %in to i64
68
- ; X32-NEXT: --> (zext i8 addrspace(1)* %in to i64) U: [0,4294967296) S: [0 ,4294967296)
68
+ ; X32-NEXT: --> %p0 U: [0,4294967296) S: [-4294967296 ,4294967296)
69
69
; X32-NEXT: %p1 = ptrtoint i8 addrspace(1)* %in to i32
70
- ; X32-NEXT: --> %in U: full-set S: full-set
70
+ ; X32-NEXT: --> %p1 U: full-set S: full-set
71
71
; X32-NEXT: %p2 = ptrtoint i8 addrspace(1)* %in to i16
72
- ; X32-NEXT: --> (trunc i8 addrspace(1)* %in to i16) U: full-set S: full-set
72
+ ; X32-NEXT: --> %p2 U: full-set S: full-set
73
73
; X32-NEXT: %p3 = ptrtoint i8 addrspace(1)* %in to i128
74
- ; X32-NEXT: --> (zext i8 addrspace(1)* %in to i128) U: [0,4294967296) S: [0 ,4294967296)
74
+ ; X32-NEXT: --> %p3 U: [0,4294967296) S: [-4294967296 ,4294967296)
75
75
; X32-NEXT: Determining loop execution counts for: @ptrtoint_as1
76
76
;
77
77
%p0 = ptrtoint i8 addrspace (1 )* %in to i64
@@ -92,15 +92,15 @@ define void @ptrtoint_of_bitcast(i8* %in, i64* %out0) {
92
92
; X64-NEXT: %in_casted = bitcast i8* %in to float*
93
93
; X64-NEXT: --> %in U: full-set S: full-set
94
94
; X64-NEXT: %p0 = ptrtoint float* %in_casted to i64
95
- ; X64-NEXT: --> %in U: full-set S: full-set
95
+ ; X64-NEXT: --> %p0 U: full-set S: full-set
96
96
; X64-NEXT: Determining loop execution counts for: @ptrtoint_of_bitcast
97
97
;
98
98
; X32-LABEL: 'ptrtoint_of_bitcast'
99
99
; X32-NEXT: Classifying expressions for: @ptrtoint_of_bitcast
100
100
; X32-NEXT: %in_casted = bitcast i8* %in to float*
101
101
; X32-NEXT: --> %in U: full-set S: full-set
102
102
; X32-NEXT: %p0 = ptrtoint float* %in_casted to i64
103
- ; X32-NEXT: --> (zext i8* %in to i64) U: [0,4294967296) S: [0 ,4294967296)
103
+ ; X32-NEXT: --> %p0 U: [0,4294967296) S: [-4294967296 ,4294967296)
104
104
; X32-NEXT: Determining loop execution counts for: @ptrtoint_of_bitcast
105
105
;
106
106
%in_casted = bitcast i8* %in to float *
@@ -116,15 +116,15 @@ define void @ptrtoint_of_addrspacecast(i8* %in, i64* %out0) {
116
116
; X64-NEXT: %in_casted = addrspacecast i8* %in to i8 addrspace(1)*
117
117
; X64-NEXT: --> %in_casted U: full-set S: full-set
118
118
; X64-NEXT: %p0 = ptrtoint i8 addrspace(1)* %in_casted to i64
119
- ; X64-NEXT: --> %in_casted U: full-set S: full-set
119
+ ; X64-NEXT: --> %p0 U: full-set S: full-set
120
120
; X64-NEXT: Determining loop execution counts for: @ptrtoint_of_addrspacecast
121
121
;
122
122
; X32-LABEL: 'ptrtoint_of_addrspacecast'
123
123
; X32-NEXT: Classifying expressions for: @ptrtoint_of_addrspacecast
124
124
; X32-NEXT: %in_casted = addrspacecast i8* %in to i8 addrspace(1)*
125
125
; X32-NEXT: --> %in_casted U: full-set S: full-set
126
126
; X32-NEXT: %p0 = ptrtoint i8 addrspace(1)* %in_casted to i64
127
- ; X32-NEXT: --> (zext i8 addrspace(1)* %in_casted to i64) U: [0,4294967296) S: [0 ,4294967296)
127
+ ; X32-NEXT: --> %p0 U: [0,4294967296) S: [-4294967296 ,4294967296)
128
128
; X32-NEXT: Determining loop execution counts for: @ptrtoint_of_addrspacecast
129
129
;
130
130
%in_casted = addrspacecast i8* %in to i8 addrspace (1 )*
@@ -140,15 +140,15 @@ define void @ptrtoint_of_inttoptr(i64 %in, i64* %out0) {
140
140
; X64-NEXT: %in_casted = inttoptr i64 %in to i8*
141
141
; X64-NEXT: --> %in_casted U: full-set S: full-set
142
142
; X64-NEXT: %p0 = ptrtoint i8* %in_casted to i64
143
- ; X64-NEXT: --> %in_casted U: full-set S: full-set
143
+ ; X64-NEXT: --> %p0 U: full-set S: full-set
144
144
; X64-NEXT: Determining loop execution counts for: @ptrtoint_of_inttoptr
145
145
;
146
146
; X32-LABEL: 'ptrtoint_of_inttoptr'
147
147
; X32-NEXT: Classifying expressions for: @ptrtoint_of_inttoptr
148
148
; X32-NEXT: %in_casted = inttoptr i64 %in to i8*
149
149
; X32-NEXT: --> %in_casted U: full-set S: full-set
150
150
; X32-NEXT: %p0 = ptrtoint i8* %in_casted to i64
151
- ; X32-NEXT: --> (zext i8* %in_casted to i64) U: [0,4294967296) S: [0 ,4294967296)
151
+ ; X32-NEXT: --> %p0 U: [0,4294967296) S: [-4294967296 ,4294967296)
152
152
; X32-NEXT: Determining loop execution counts for: @ptrtoint_of_inttoptr
153
153
;
154
154
%in_casted = inttoptr i64 %in to i8*
@@ -197,17 +197,11 @@ define void @ptrtoint_of_nullptr(i64* %out0) {
197
197
198
198
; A constant inttoptr argument of an ptrtoint is still bad.
199
199
define void @ptrtoint_of_constantexpr_inttoptr (i64* %out0 ) {
200
- ; X64-LABEL: 'ptrtoint_of_constantexpr_inttoptr'
201
- ; X64-NEXT: Classifying expressions for: @ptrtoint_of_constantexpr_inttoptr
202
- ; X64-NEXT: %p0 = ptrtoint i8* inttoptr (i64 42 to i8*) to i64
203
- ; X64-NEXT: --> inttoptr (i64 42 to i8*) U: [42,43) S: [-64,64)
204
- ; X64-NEXT: Determining loop execution counts for: @ptrtoint_of_constantexpr_inttoptr
205
- ;
206
- ; X32-LABEL: 'ptrtoint_of_constantexpr_inttoptr'
207
- ; X32-NEXT: Classifying expressions for: @ptrtoint_of_constantexpr_inttoptr
208
- ; X32-NEXT: %p0 = ptrtoint i8* inttoptr (i64 42 to i8*) to i64
209
- ; X32-NEXT: --> (zext i8* inttoptr (i64 42 to i8*) to i64) U: [42,43) S: [0,4294967296)
210
- ; X32-NEXT: Determining loop execution counts for: @ptrtoint_of_constantexpr_inttoptr
200
+ ; ALL-LABEL: 'ptrtoint_of_constantexpr_inttoptr'
201
+ ; ALL-NEXT: Classifying expressions for: @ptrtoint_of_constantexpr_inttoptr
202
+ ; ALL-NEXT: %p0 = ptrtoint i8* inttoptr (i64 42 to i8*) to i64
203
+ ; ALL-NEXT: --> %p0 U: [42,43) S: [-64,64)
204
+ ; ALL-NEXT: Determining loop execution counts for: @ptrtoint_of_constantexpr_inttoptr
211
205
;
212
206
%p0 = ptrtoint i8* inttoptr (i64 42 to i8* ) to i64
213
207
store i64 %p0 , i64* %out0
0 commit comments