1*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT160K %s 2*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx9-4-generic -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 3*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx9-generic -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 4*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 5*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx941 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 6*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 7*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 8*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 9*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx908 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 10*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 11*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90c -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 12*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 13*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 14*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 15*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 16*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 17*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT64K %s 18*5a556d55SMatt Arsenault; RUN: not llc -mtriple=amdgcn-amd-amdpal -mcpu=gfx600 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERROR-LIMIT32K %s 19*5a556d55SMatt Arsenault 20*5a556d55SMatt Arsenault; gfx950 supports upto 160 KB LDS memory. The generic target does not. 21*5a556d55SMatt Arsenault; This is a negative test to check when the LDS size exceeds the max usable limit. 22*5a556d55SMatt Arsenault 23*5a556d55SMatt Arsenault; ERROR-LIMIT160K: error: <unknown>:0:0: local memory (163844) exceeds limit (163840) in function 'test_lds_limit' 24*5a556d55SMatt Arsenault; ERROR-LIMIT64K: error: <unknown>:0:0: local memory (163844) exceeds limit (65536) in function 'test_lds_limit' 25*5a556d55SMatt Arsenault; ERROR-LIMIT32K: error: <unknown>:0:0: local memory (163844) exceeds limit (32768) in function 'test_lds_limit' 26*5a556d55SMatt Arsenault@dst = addrspace(3) global [40961 x i32] poison 27*5a556d55SMatt Arsenault 28*5a556d55SMatt Arsenaultdefine amdgpu_kernel void @test_lds_limit(i32 %val) { 29*5a556d55SMatt Arsenault %gep = getelementptr [40961 x i32], ptr addrspace(3) @dst, i32 0, i32 100 30*5a556d55SMatt Arsenault store i32 %val, ptr addrspace(3) %gep 31*5a556d55SMatt Arsenault ret void 32*5a556d55SMatt Arsenault} 33