@@ -267,9 +267,10 @@ define void @neg_empty_2() "kernel" {
267267define void @pos_constant_loads () "kernel" {
268268; CHECK-LABEL: define {{[^@]+}}@pos_constant_loads
269269; CHECK-SAME: () #[[ATTR4]] {
270- ; CHECK-NEXT: [[ARG:%.*]] = load ptr addrspace(4), ptr addrspace(4) @GPtr4, align 8
271- ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspace(4) @GC2, align 4
272- ; CHECK-NEXT: [[C:%.*]] = load i32, ptr addrspace(4) [[ARG]], align 4
270+ ; CHECK-NEXT: [[ARG:%.*]] = load ptr addrspace(4), ptr addrspacecast (ptr addrspace(4) @GPtr4 to ptr), align 8
271+ ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspacecast (ptr addrspace(4) @GC2 to ptr), align 4
272+ ; CHECK-NEXT: [[ARGC:%.*]] = addrspacecast ptr addrspace(4) [[ARG]] to ptr
273+ ; CHECK-NEXT: [[C:%.*]] = load i32, ptr [[ARGC]], align 4
273274; CHECK-NEXT: [[D:%.*]] = add i32 42, [[B]]
274275; CHECK-NEXT: [[E:%.*]] = add i32 [[D]], [[C]]
275276; CHECK-NEXT: call void @useI32(i32 [[E]])
@@ -300,7 +301,7 @@ define void @neg_loads() "kernel" {
300301; CHECK-NEXT: [[ARG:%.*]] = load ptr, ptr @GPtr, align 8
301302; CHECK-NEXT: [[A:%.*]] = load i32, ptr @G, align 4
302303; CHECK-NEXT: call void @aligned_barrier()
303- ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspace(3) @GS, align 4
304+ ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspacecast (ptr addrspace(3) @GS to ptr) , align 4
304305; CHECK-NEXT: call void @aligned_barrier()
305306; CHECK-NEXT: [[C:%.*]] = load i32, ptr [[ARG]], align 4
306307; CHECK-NEXT: call void @aligned_barrier()
@@ -332,8 +333,9 @@ define void @pos_priv_mem() "kernel" {
332333; CHECK-NEXT: [[LOC:%.*]] = alloca i32, align 4
333334; CHECK-NEXT: [[A:%.*]] = load i32, ptr @PG1, align 4
334335; CHECK-NEXT: store i32 [[A]], ptr [[LOC]], align 4
335- ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspace(5) @PG2, align 4
336- ; CHECK-NEXT: store i32 [[B]], ptr addrspace(5) [[ARG]], align 4
336+ ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspacecast (ptr addrspace(5) @PG2 to ptr), align 4
337+ ; CHECK-NEXT: [[ARGC:%.*]] = addrspacecast ptr addrspace(5) [[ARG]] to ptr
338+ ; CHECK-NEXT: store i32 [[B]], ptr [[ARGC]], align 4
337339; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[LOC]], align 4
338340; CHECK-NEXT: store i32 [[V]], ptr @PG1, align 4
339341; CHECK-NEXT: ret void
@@ -366,7 +368,7 @@ define void @neg_mem() "kernel" {
366368; CHECK-NEXT: store i32 [[A]], ptr [[ARG]], align 4
367369; CHECK-NEXT: fence release
368370; CHECK-NEXT: call void @aligned_barrier()
369- ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspace(1) @G2, align 4
371+ ; CHECK-NEXT: [[B:%.*]] = load i32, ptr addrspacecast (ptr addrspace(1) @G2 to ptr) , align 4
370372; CHECK-NEXT: store i32 [[B]], ptr @G1, align 4
371373; CHECK-NEXT: fence acquire
372374; CHECK-NEXT: ret void
0 commit comments