xref: /llvm-project/llvm/test/CodeGen/AMDGPU/lds-size-pal-gfx950.ll (revision 5a556d55fb753d7e6e7a310a3fc0f7e83f8f9144)
1*5a556d55SMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck -check-prefix=PAL %s
2*5a556d55SMatt Arsenault
3*5a556d55SMatt Arsenault; GFX950supports upto 160 KB configurable LDS memory.
4*5a556d55SMatt Arsenault; This test checks the min and max size of LDS that can be allocated.
5*5a556d55SMatt Arsenault
6*5a556d55SMatt Arsenault; PAL: .shader_functions:
7*5a556d55SMatt Arsenault; PAL: test_lds_array_i32:
8*5a556d55SMatt Arsenault; PAL: .lds_size:       0x28000
9*5a556d55SMatt Arsenault; PAL: test_lds_i32:
10*5a556d55SMatt Arsenault; PAL: .lds_size:       0x4
11*5a556d55SMatt Arsenault
12*5a556d55SMatt Arsenault
13*5a556d55SMatt Arsenault@lds.i32 = addrspace(3) global i32 poison
14*5a556d55SMatt Arsenault@lds.array.i32 = addrspace(3) global [40959 x i32] poison
15*5a556d55SMatt Arsenault
16*5a556d55SMatt Arsenaultdefine amdgpu_gfx void @test_lds_i32(i32 %val) {
17*5a556d55SMatt Arsenault  store i32 %val, ptr addrspace(3) @lds.i32
18*5a556d55SMatt Arsenault  ret void
19*5a556d55SMatt Arsenault}
20*5a556d55SMatt Arsenault
21*5a556d55SMatt Arsenaultdefine amdgpu_gfx void @test_lds_array_i32() {
22*5a556d55SMatt Arsenault  %gep = getelementptr inbounds [40959 x i32], ptr addrspace(3) @lds.array.i32, i32 0, i32 20
23*5a556d55SMatt Arsenault  %val = load i32, ptr addrspace(3) %gep
24*5a556d55SMatt Arsenault  store i32 %val, ptr addrspace(3) @lds.i32
25*5a556d55SMatt Arsenault  ret void
26*5a556d55SMatt Arsenault}