1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=bonaire < %s | FileCheck -check-prefix=GCN -check-prefix=CI -check-prefix=ALL %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=carrizo < %s | FileCheck -check-prefix=GCN -check-prefix=VI -check-prefix=ALL %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: {{^}}large_alloca_pixel_shader: 5*9880d681SAndroid Build Coastguard Worker; GCN-DAG: s_mov_b32 s8, SCRATCH_RSRC_DWORD0 6*9880d681SAndroid Build Coastguard Worker; GCN-DAG: s_mov_b32 s9, SCRATCH_RSRC_DWORD1 7*9880d681SAndroid Build Coastguard Worker; GCN-DAG: s_mov_b32 s10, -1 8*9880d681SAndroid Build Coastguard Worker; CI-DAG: s_mov_b32 s11, 0xe8f000 9*9880d681SAndroid Build Coastguard Worker; VI-DAG: s_mov_b32 s11, 0xe80000 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker; GCN: buffer_store_dword {{v[0-9]+}}, {{v[0-9]+}}, s[8:11], s0 offen 12*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_dword {{v[0-9]+}}, {{v[0-9]+}}, s[8:11], s0 offen 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; ALL: ; ScratchSize: 32772 15*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @large_alloca_pixel_shader(i32 %x, i32 %y) #0 { 16*9880d681SAndroid Build Coastguard Worker %large = alloca [8192 x i32], align 4 17*9880d681SAndroid Build Coastguard Worker %gep = getelementptr [8192 x i32], [8192 x i32]* %large, i32 0, i32 8191 18*9880d681SAndroid Build Coastguard Worker store volatile i32 %x, i32* %gep 19*9880d681SAndroid Build Coastguard Worker %gep1 = getelementptr [8192 x i32], [8192 x i32]* %large, i32 0, i32 %y 20*9880d681SAndroid Build Coastguard Worker %val = load volatile i32, i32* %gep1 21*9880d681SAndroid Build Coastguard Worker store volatile i32 %val, i32 addrspace(1)* undef 22*9880d681SAndroid Build Coastguard Worker ret void 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: {{^}}large_alloca_pixel_shader_inreg: 26*9880d681SAndroid Build Coastguard Worker; GCN-DAG: s_mov_b32 s8, SCRATCH_RSRC_DWORD0 27*9880d681SAndroid Build Coastguard Worker; GCN-DAG: s_mov_b32 s9, SCRATCH_RSRC_DWORD1 28*9880d681SAndroid Build Coastguard Worker; GCN-DAG: s_mov_b32 s10, -1 29*9880d681SAndroid Build Coastguard Worker; CI-DAG: s_mov_b32 s11, 0xe8f000 30*9880d681SAndroid Build Coastguard Worker; VI-DAG: s_mov_b32 s11, 0xe80000 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; GCN: buffer_store_dword {{v[0-9]+}}, {{v[0-9]+}}, s[8:11], s2 offen 33*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_dword {{v[0-9]+}}, {{v[0-9]+}}, s[8:11], s2 offen 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker; ALL: ; ScratchSize: 32772 36*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @large_alloca_pixel_shader_inreg(i32 inreg %x, i32 inreg %y) #0 { 37*9880d681SAndroid Build Coastguard Worker %large = alloca [8192 x i32], align 4 38*9880d681SAndroid Build Coastguard Worker %gep = getelementptr [8192 x i32], [8192 x i32]* %large, i32 0, i32 8191 39*9880d681SAndroid Build Coastguard Worker store volatile i32 %x, i32* %gep 40*9880d681SAndroid Build Coastguard Worker %gep1 = getelementptr [8192 x i32], [8192 x i32]* %large, i32 0, i32 %y 41*9880d681SAndroid Build Coastguard Worker %val = load volatile i32, i32* %gep1 42*9880d681SAndroid Build Coastguard Worker store volatile i32 %val, i32 addrspace(1)* undef 43*9880d681SAndroid Build Coastguard Worker ret void 44*9880d681SAndroid Build Coastguard Worker} 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind } 47