|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 |
| 2 | +; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -passes=amdgpu-preload-kernel-arguments -amdgpu-kernarg-preload=0 %s -o - | FileCheck -check-prefix=NO-PRELOAD %s |
| 3 | +; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -passes=amdgpu-preload-kernel-arguments %s -o - | FileCheck -check-prefix=DEFAULT-PRELOAD %s |
| 4 | + |
| 5 | +@g1 = protected addrspace(1) externally_initialized global i16 0, align 2 |
| 6 | + |
| 7 | +define amdgpu_kernel void @test_kernel_with_zero_kernel_arg() { |
| 8 | +; NO-PRELOAD-LABEL: define amdgpu_kernel void @test_kernel_with_zero_kernel_arg( |
| 9 | +; NO-PRELOAD-SAME: ) #[[ATTR0:[0-9]+]] { |
| 10 | +; NO-PRELOAD-NEXT: [[IMPLICITARG_PTR:%.*]] = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() |
| 11 | +; NO-PRELOAD-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, ptr addrspace(4) [[IMPLICITARG_PTR]], i64 12 |
| 12 | +; NO-PRELOAD-NEXT: [[GROUP_SIZE_X:%.*]] = load i16, ptr addrspace(4) [[GEP]], align 2 |
| 13 | +; NO-PRELOAD-NEXT: store i16 [[GROUP_SIZE_X]], ptr addrspace(1) @g1, align 2 |
| 14 | +; NO-PRELOAD-NEXT: ret void |
| 15 | +; |
| 16 | +; DEFAULT-PRELOAD-LABEL: define amdgpu_kernel void @test_kernel_with_zero_kernel_arg( |
| 17 | +; DEFAULT-PRELOAD-SAME: i32 inreg "amdgpu-hidden-argument" [[_HIDDEN_BLOCK_COUNT_X:%.*]], i32 inreg "amdgpu-hidden-argument" [[_HIDDEN_BLOCK_COUNT_Y:%.*]], i32 inreg "amdgpu-hidden-argument" [[_HIDDEN_BLOCK_COUNT_Z:%.*]], i16 inreg "amdgpu-hidden-argument" [[_HIDDEN_GROUP_SIZE_X:%.*]]) #[[ATTR0:[0-9]+]] { |
| 18 | +; DEFAULT-PRELOAD-NEXT: [[IMPLICITARG_PTR:%.*]] = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() |
| 19 | +; DEFAULT-PRELOAD-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, ptr addrspace(4) [[IMPLICITARG_PTR]], i64 12 |
| 20 | +; DEFAULT-PRELOAD-NEXT: [[GROUP_SIZE_X:%.*]] = load i16, ptr addrspace(4) [[GEP]], align 2 |
| 21 | +; DEFAULT-PRELOAD-NEXT: store i16 [[_HIDDEN_GROUP_SIZE_X]], ptr addrspace(1) @g1, align 2 |
| 22 | +; DEFAULT-PRELOAD-NEXT: ret void |
| 23 | +; |
| 24 | + %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() |
| 25 | + %gep = getelementptr inbounds i8, ptr addrspace(4) %implicitarg.ptr, i64 12 |
| 26 | + %group_size_x = load i16, ptr addrspace(4) %gep |
| 27 | + store i16 %group_size_x, ptr addrspace(1) @g1 |
| 28 | + ret void |
| 29 | +} |
0 commit comments