xref: /llvm-project/llvm/test/Transforms/InferAddressSpaces/AMDGPU/issue110433.ll (revision a87640c97e5ce5b88304b4149c0e59f4399aff0a)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=infer-address-spaces %s | FileCheck %s
3
4define <8 x i1> @load_vector_of_flat_ptr_from_constant(ptr addrspace(4) %ptr) {
5; CHECK-LABEL: define <8 x i1> @load_vector_of_flat_ptr_from_constant(
6; CHECK-SAME: ptr addrspace(4) [[PTR:%.*]]) {
7; CHECK-NEXT:    [[LD:%.*]] = load <8 x ptr>, ptr addrspace(4) [[PTR]], align 128
8; CHECK-NEXT:    [[TMP1:%.*]] = addrspacecast <8 x ptr> [[LD]] to <8 x ptr addrspace(1)>
9; CHECK-NEXT:    [[TMP2:%.*]] = addrspacecast <8 x ptr addrspace(1)> [[TMP1]] to <8 x ptr>
10; CHECK-NEXT:    [[CMP:%.*]] = icmp eq <8 x ptr> [[TMP2]], zeroinitializer
11; CHECK-NEXT:    ret <8 x i1> [[CMP]]
12;
13  %ld = load <8 x ptr>, ptr addrspace(4) %ptr, align 128
14  %cmp = icmp eq <8 x ptr> %ld, zeroinitializer
15  ret <8 x i1> %cmp
16}
17
18define <8 x i1> @load_vector_of_flat_ptr_from_global(ptr addrspace(1) %ptr) {
19; CHECK-LABEL: define <8 x i1> @load_vector_of_flat_ptr_from_global(
20; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
21; CHECK-NEXT:    [[LD:%.*]] = load <8 x ptr>, ptr addrspace(1) [[PTR]], align 128
22; CHECK-NEXT:    [[CMP:%.*]] = icmp eq <8 x ptr> [[LD]], zeroinitializer
23; CHECK-NEXT:    ret <8 x i1> [[CMP]]
24;
25  %ld = load <8 x ptr>, ptr addrspace(1) %ptr, align 128
26  %cmp = icmp eq <8 x ptr> %ld, zeroinitializer
27  ret <8 x i1> %cmp
28}
29
30define <8 x i1> @load_vector_of_flat_ptr_from_global_invariant(ptr addrspace(1) %ptr) {
31; CHECK-LABEL: define <8 x i1> @load_vector_of_flat_ptr_from_global_invariant(
32; CHECK-SAME: ptr addrspace(1) [[PTR:%.*]]) {
33; CHECK-NEXT:    [[LD:%.*]] = load <8 x ptr>, ptr addrspace(1) [[PTR]], align 128, !invariant [[META0:![0-9]+]]
34; CHECK-NEXT:    [[CMP:%.*]] = icmp eq <8 x ptr> [[LD]], zeroinitializer
35; CHECK-NEXT:    ret <8 x i1> [[CMP]]
36;
37  %ld = load <8 x ptr>, ptr addrspace(1) %ptr, align 128, !invariant !0
38  %cmp = icmp eq <8 x ptr> %ld, zeroinitializer
39  ret <8 x i1> %cmp
40}
41
42!0 = !{}
43;.
44; CHECK: [[META0]] = !{}
45;.
46