@@ -12,7 +12,7 @@ define ptr @ptrmask_combine_consecutive_preserve_attrs(ptr %p0, i64 %m1) {
12
12
; CHECK-LABEL: define ptr @ptrmask_combine_consecutive_preserve_attrs
13
13
; CHECK-SAME: (ptr [[P0:%.*]], i64 [[M1:%.*]]) {
14
14
; CHECK-NEXT: [[TMP1:%.*]] = and i64 [[M1]], 224
15
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 [[TMP1]])
15
+ ; CHECK-NEXT: [[R:%.*]] = call align 32 ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 [[TMP1]])
16
16
; CHECK-NEXT: ret ptr [[R]]
17
17
;
18
18
%pm0 = call ptr @llvm.ptrmask.p0.i64 (ptr %p0 , i64 224 )
@@ -47,7 +47,7 @@ define ptr @ptrmask_combine_consecutive_preserve_attrs_fail(ptr %p0, i64 %m0) {
47
47
define ptr @ptrmask_combine_consecutive_preserve_attrs_todo0 (ptr %p0 ) {
48
48
; CHECK-LABEL: define ptr @ptrmask_combine_consecutive_preserve_attrs_todo0
49
49
; CHECK-SAME: (ptr [[P0:%.*]]) {
50
- ; CHECK-NEXT: [[PM0:%.*]] = call noalias ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 224)
50
+ ; CHECK-NEXT: [[PM0:%.*]] = call noalias align 32 ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 224)
51
51
; CHECK-NEXT: ret ptr [[PM0]]
52
52
;
53
53
%pm0 = call noalias ptr @llvm.ptrmask.p0.i64 (ptr %p0 , i64 224 )
@@ -58,7 +58,7 @@ define ptr @ptrmask_combine_consecutive_preserve_attrs_todo0(ptr %p0) {
58
58
define ptr @ptrmask_combine_consecutive_preserve_attrs_todo1 (ptr %p0 ) {
59
59
; CHECK-LABEL: define ptr @ptrmask_combine_consecutive_preserve_attrs_todo1
60
60
; CHECK-SAME: (ptr [[P0:%.*]]) {
61
- ; CHECK-NEXT: [[PM0:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 224)
61
+ ; CHECK-NEXT: [[PM0:%.*]] = call align 32 ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 224)
62
62
; CHECK-NEXT: ret ptr [[PM0]]
63
63
;
64
64
%pm0 = call ptr @llvm.ptrmask.p0.i64 (ptr %p0 , i64 224 )
@@ -69,7 +69,7 @@ define ptr @ptrmask_combine_consecutive_preserve_attrs_todo1(ptr %p0) {
69
69
define ptr addrspace (1 ) @ptrmask_combine_consecutive_preserve_attrs_todo2 (ptr addrspace (1 ) %p0 ) {
70
70
; CHECK-LABEL: define ptr addrspace(1) @ptrmask_combine_consecutive_preserve_attrs_todo2
71
71
; CHECK-SAME: (ptr addrspace(1) [[P0:%.*]]) {
72
- ; CHECK-NEXT: [[PM0:%.*]] = call noalias ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P0]], i32 224)
72
+ ; CHECK-NEXT: [[PM0:%.*]] = call noalias align 32 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P0]], i32 224)
73
73
; CHECK-NEXT: ret ptr addrspace(1) [[PM0]]
74
74
;
75
75
%pm0 = call noalias ptr addrspace (1 ) @llvm.ptrmask.p1.i32 (ptr addrspace (1 ) %p0 , i32 224 )
@@ -80,9 +80,9 @@ define ptr addrspace(1) @ptrmask_combine_consecutive_preserve_attrs_todo2(ptr ad
80
80
define ptr @ptrmask_combine_add_nonnull (ptr %p ) {
81
81
; CHECK-LABEL: define ptr @ptrmask_combine_add_nonnull
82
82
; CHECK-SAME: (ptr [[P:%.*]]) {
83
- ; CHECK-NEXT: [[PM0:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P]], i64 -64)
83
+ ; CHECK-NEXT: [[PM0:%.*]] = call align 64 ptr @llvm.ptrmask.p0.i64(ptr [[P]], i64 -64)
84
84
; CHECK-NEXT: [[PGEP:%.*]] = getelementptr i8, ptr [[PM0]], i64 33
85
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[PGEP]], i64 -32)
85
+ ; CHECK-NEXT: [[R:%.*]] = call nonnull align 32 ptr @llvm.ptrmask.p0.i64(ptr [[PGEP]], i64 -32)
86
86
; CHECK-NEXT: ret ptr [[R]]
87
87
;
88
88
%pm0 = call ptr @llvm.ptrmask.p0.i64 (ptr %p , i64 -64 )
@@ -94,7 +94,7 @@ define ptr @ptrmask_combine_add_nonnull(ptr %p) {
94
94
define ptr @ptrmask_combine_add_alignment (ptr %p ) {
95
95
; CHECK-LABEL: define ptr @ptrmask_combine_add_alignment
96
96
; CHECK-SAME: (ptr [[P:%.*]]) {
97
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P]], i64 -64)
97
+ ; CHECK-NEXT: [[R:%.*]] = call align 64 ptr @llvm.ptrmask.p0.i64(ptr [[P]], i64 -64)
98
98
; CHECK-NEXT: ret ptr [[R]]
99
99
;
100
100
%r = call ptr @llvm.ptrmask.p0.i64 (ptr %p , i64 -64 )
@@ -104,7 +104,7 @@ define ptr @ptrmask_combine_add_alignment(ptr %p) {
104
104
define ptr addrspace (1 ) @ptrmask_combine_add_alignment2 (ptr addrspace (1 ) align 32 %p ) {
105
105
; CHECK-LABEL: define ptr addrspace(1) @ptrmask_combine_add_alignment2
106
106
; CHECK-SAME: (ptr addrspace(1) align 32 [[P:%.*]]) {
107
- ; CHECK-NEXT: [[R:%.*]] = call ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 -64)
107
+ ; CHECK-NEXT: [[R:%.*]] = call align 64 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 -64)
108
108
; CHECK-NEXT: ret ptr addrspace(1) [[R]]
109
109
;
110
110
%r = call ptr addrspace (1 ) @llvm.ptrmask.p1.i32 (ptr addrspace (1 ) %p , i32 -64 )
@@ -114,7 +114,7 @@ define ptr addrspace(1) @ptrmask_combine_add_alignment2(ptr addrspace(1) align 3
114
114
define <2 x ptr > @ptrmask_combine_add_alignment_vec (<2 x ptr > %p ) {
115
115
; CHECK-LABEL: define <2 x ptr> @ptrmask_combine_add_alignment_vec
116
116
; CHECK-SAME: (<2 x ptr> [[P:%.*]]) {
117
- ; CHECK-NEXT: [[R:%.*]] = call <2 x ptr> @llvm.ptrmask.v2p0.v2i64(<2 x ptr> [[P]], <2 x i64> <i64 -96, i64 -96>)
117
+ ; CHECK-NEXT: [[R:%.*]] = call align 32 <2 x ptr> @llvm.ptrmask.v2p0.v2i64(<2 x ptr> [[P]], <2 x i64> <i64 -96, i64 -96>)
118
118
; CHECK-NEXT: ret <2 x ptr> [[R]]
119
119
;
120
120
%r = call <2 x ptr > @llvm.ptrmask.v2p0.v2i64 (<2 x ptr > %p , <2 x i64 > <i64 -96 , i64 -96 >)
@@ -124,7 +124,7 @@ define <2 x ptr> @ptrmask_combine_add_alignment_vec(<2 x ptr> %p) {
124
124
define ptr addrspace (1 ) @ptrmask_combine_improve_alignment (ptr addrspace (1 ) %p ) {
125
125
; CHECK-LABEL: define ptr addrspace(1) @ptrmask_combine_improve_alignment
126
126
; CHECK-SAME: (ptr addrspace(1) [[P:%.*]]) {
127
- ; CHECK-NEXT: [[R:%.*]] = call align 32 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 -64)
127
+ ; CHECK-NEXT: [[R:%.*]] = call align 64 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 -64)
128
128
; CHECK-NEXT: ret ptr addrspace(1) [[R]]
129
129
;
130
130
%r = call align 32 ptr addrspace (1 ) @llvm.ptrmask.p1.i32 (ptr addrspace (1 ) %p , i32 -64 )
@@ -134,7 +134,7 @@ define ptr addrspace(1) @ptrmask_combine_improve_alignment(ptr addrspace(1) %p)
134
134
define <2 x ptr addrspace (1 ) > @ptrmask_combine_improve_alignment_vec (<2 x ptr addrspace (1 ) > %p ) {
135
135
; CHECK-LABEL: define <2 x ptr addrspace(1)> @ptrmask_combine_improve_alignment_vec
136
136
; CHECK-SAME: (<2 x ptr addrspace(1)> [[P:%.*]]) {
137
- ; CHECK-NEXT: [[R:%.*]] = call align 32 <2 x ptr addrspace(1)> @llvm.ptrmask.v2p1.v2i32(<2 x ptr addrspace(1)> [[P]], <2 x i32> <i32 -64, i32 -128>)
137
+ ; CHECK-NEXT: [[R:%.*]] = call align 64 <2 x ptr addrspace(1)> @llvm.ptrmask.v2p1.v2i32(<2 x ptr addrspace(1)> [[P]], <2 x i32> <i32 -64, i32 -128>)
138
138
; CHECK-NEXT: ret <2 x ptr addrspace(1)> [[R]]
139
139
;
140
140
%r = call align 32 <2 x ptr addrspace (1 ) > @llvm.ptrmask.v2p1.v2i32 (<2 x ptr addrspace (1 ) > %p , <2 x i32 > <i32 -64 , i32 -128 >)
@@ -230,7 +230,7 @@ define <2 x i32> @ptrtoint_of_ptrmask_vec_fail(<2 x ptr addrspace(1) > %p, <2 x
230
230
define ptr addrspace (1 ) @ptrmask_is_null (ptr addrspace (1 ) align 32 %p ) {
231
231
; CHECK-LABEL: define ptr addrspace(1) @ptrmask_is_null
232
232
; CHECK-SAME: (ptr addrspace(1) align 32 [[P:%.*]]) {
233
- ; CHECK-NEXT: [[R:%.*]] = call ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 0)
233
+ ; CHECK-NEXT: [[R:%.*]] = call align 4294967296 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 0)
234
234
; CHECK-NEXT: ret ptr addrspace(1) [[R]]
235
235
;
236
236
%r = call ptr addrspace (1 ) @llvm.ptrmask.p1.i32 (ptr addrspace (1 ) %p , i32 31 )
@@ -250,7 +250,7 @@ define <2 x ptr addrspace(1) > @ptrmask_is_null_vec(<2 x ptr addrspace(1) > alig
250
250
define ptr addrspace (1 ) @ptrmask_is_null_fail (ptr addrspace (1 ) align 16 %p ) {
251
251
; CHECK-LABEL: define ptr addrspace(1) @ptrmask_is_null_fail
252
252
; CHECK-SAME: (ptr addrspace(1) align 16 [[P:%.*]]) {
253
- ; CHECK-NEXT: [[R:%.*]] = call ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 16)
253
+ ; CHECK-NEXT: [[R:%.*]] = call align 16 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P]], i32 16)
254
254
; CHECK-NEXT: ret ptr addrspace(1) [[R]]
255
255
;
256
256
%r = call ptr addrspace (1 ) @llvm.ptrmask.p1.i32 (ptr addrspace (1 ) %p , i32 31 )
@@ -270,7 +270,7 @@ define <2 x ptr addrspace(1) > @ptrmask_is_null_vec_fail(<2 x ptr addrspace(1) >
270
270
define ptr @ptrmask_maintain_provenance_i64 (ptr %p0 ) {
271
271
; CHECK-LABEL: define ptr @ptrmask_maintain_provenance_i64
272
272
; CHECK-SAME: (ptr [[P0:%.*]]) {
273
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 0)
273
+ ; CHECK-NEXT: [[R:%.*]] = call align 4294967296 ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 0)
274
274
; CHECK-NEXT: ret ptr [[R]]
275
275
;
276
276
%r = call ptr @llvm.ptrmask.p0.i64 (ptr %p0 , i64 0 )
@@ -280,7 +280,7 @@ define ptr @ptrmask_maintain_provenance_i64(ptr %p0) {
280
280
define ptr addrspace (1 ) @ptrmask_maintain_provenance_i32 (ptr addrspace (1 ) %p0 ) {
281
281
; CHECK-LABEL: define ptr addrspace(1) @ptrmask_maintain_provenance_i32
282
282
; CHECK-SAME: (ptr addrspace(1) [[P0:%.*]]) {
283
- ; CHECK-NEXT: [[R:%.*]] = call ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P0]], i32 0)
283
+ ; CHECK-NEXT: [[R:%.*]] = call align 4294967296 ptr addrspace(1) @llvm.ptrmask.p1.i32(ptr addrspace(1) [[P0]], i32 0)
284
284
; CHECK-NEXT: ret ptr addrspace(1) [[R]]
285
285
;
286
286
%r = call ptr addrspace (1 ) @llvm.ptrmask.p1.i32 (ptr addrspace (1 ) %p0 , i32 0 )
@@ -292,7 +292,7 @@ define ptr @ptrmask_is_useless0(i64 %i, i64 %m) {
292
292
; CHECK-SAME: (i64 [[I:%.*]], i64 [[M:%.*]]) {
293
293
; CHECK-NEXT: [[I0:%.*]] = and i64 [[I]], -4
294
294
; CHECK-NEXT: [[P0:%.*]] = inttoptr i64 [[I0]] to ptr
295
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 [[M]])
295
+ ; CHECK-NEXT: [[R:%.*]] = call align 4 ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 [[M]])
296
296
; CHECK-NEXT: ret ptr [[R]]
297
297
;
298
298
%m0 = and i64 %m , -4
@@ -307,7 +307,7 @@ define ptr @ptrmask_is_useless1(i64 %i, i64 %m) {
307
307
; CHECK-SAME: (i64 [[I:%.*]], i64 [[M:%.*]]) {
308
308
; CHECK-NEXT: [[I0:%.*]] = and i64 [[I]], -8
309
309
; CHECK-NEXT: [[P0:%.*]] = inttoptr i64 [[I0]] to ptr
310
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 [[M]])
310
+ ; CHECK-NEXT: [[R:%.*]] = call align 8 ptr @llvm.ptrmask.p0.i64(ptr [[P0]], i64 [[M]])
311
311
; CHECK-NEXT: ret ptr [[R]]
312
312
;
313
313
%m0 = and i64 %m , -4
@@ -397,7 +397,7 @@ define ptr @ptrmask_is_useless_fail0(i64 %i, i64 %m) {
397
397
; CHECK-NEXT: [[M0:%.*]] = and i64 [[M]], -4
398
398
; CHECK-NEXT: [[I0:%.*]] = or i64 [[I]], -4
399
399
; CHECK-NEXT: [[P0:%.*]] = inttoptr i64 [[I0]] to ptr
400
- ; CHECK-NEXT: [[R:%.*]] = call ptr @llvm.ptrmask.p0.i64(ptr nonnull [[P0]], i64 [[M0]])
400
+ ; CHECK-NEXT: [[R:%.*]] = call align 4 ptr @llvm.ptrmask.p0.i64(ptr nonnull [[P0]], i64 [[M0]])
401
401
; CHECK-NEXT: ret ptr [[R]]
402
402
;
403
403
%m0 = and i64 %m , -4
0 commit comments