; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -mattr=+trap-handler < %s | FileCheck %s --check-prefixes=GCN,TRAP-HANDLER-ENABLE
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx803 -mattr=-trap-handler < %s | FileCheck %s --check-prefixes=GCN,TRAP-HANDLER-DISABLE

; GCN-LABEL: {{^}}amdhsa_trap_num_sgprs
; TRAP-HANDLER-ENABLE:  NumSgprs: 60
; TRAP-HANDLER-DISABLE: NumSgprs: 78
define amdgpu_kernel void @amdhsa_trap_num_sgprs(
    i32 addrspace(1)* %out0, i32 %in0,
    i32 addrspace(1)* %out1, i32 %in1,
    i32 addrspace(1)* %out2, i32 %in2,
    i32 addrspace(1)* %out3, i32 %in3,
    i32 addrspace(1)* %out4, i32 %in4,
    i32 addrspace(1)* %out5, i32 %in5,
    i32 addrspace(1)* %out6, i32 %in6,
    i32 addrspace(1)* %out7, i32 %in7,
    i32 addrspace(1)* %out8, i32 %in8,
    i32 addrspace(1)* %out9, i32 %in9,
    i32 addrspace(1)* %out10, i32 %in10,
    i32 addrspace(1)* %out11, i32 %in11,
    i32 addrspace(1)* %out12, i32 %in12,
    i32 addrspace(1)* %out13, i32 %in13,
    i32 addrspace(1)* %out14, i32 %in14,
    i32 addrspace(1)* %out15, i32 %in15,
    i32 addrspace(1)* %out16, i32 %in16,
    i32 addrspace(1)* %out17, i32 %in17,
    i32 addrspace(1)* %out18, i32 %in18,
    i32 addrspace(1)* %out19, i32 %in19,
    i32 addrspace(1)* %out20, i32 %in20,
    i32 addrspace(1)* %out21, i32 %in21,
    i32 addrspace(1)* %out22, i32 %in22,
    i32 addrspace(1)* %out23, i32 %in23,
    i32 addrspace(1)* %out24, i32 %in24,
    i32 addrspace(1)* %out25, i32 %in25,
    i32 addrspace(1)* %out26, i32 %in26,
    i32 addrspace(1)* %out27, i32 %in27,
    i32 addrspace(1)* %out28, i32 %in28,
    i32 addrspace(1)* %out29, i32 %in29) {
entry:
  store i32 %in0, i32 addrspace(1)* %out0
  store i32 %in1, i32 addrspace(1)* %out1
  store i32 %in2, i32 addrspace(1)* %out2
  store i32 %in3, i32 addrspace(1)* %out3
  store i32 %in4, i32 addrspace(1)* %out4
  store i32 %in5, i32 addrspace(1)* %out5
  store i32 %in6, i32 addrspace(1)* %out6
  store i32 %in7, i32 addrspace(1)* %out7
  store i32 %in8, i32 addrspace(1)* %out8
  store i32 %in9, i32 addrspace(1)* %out9
  store i32 %in10, i32 addrspace(1)* %out10
  store i32 %in11, i32 addrspace(1)* %out11
  store i32 %in12, i32 addrspace(1)* %out12
  store i32 %in13, i32 addrspace(1)* %out13
  store i32 %in14, i32 addrspace(1)* %out14
  store i32 %in15, i32 addrspace(1)* %out15
  store i32 %in16, i32 addrspace(1)* %out16
  store i32 %in17, i32 addrspace(1)* %out17
  store i32 %in18, i32 addrspace(1)* %out18
  store i32 %in19, i32 addrspace(1)* %out19
  store i32 %in20, i32 addrspace(1)* %out20
  store i32 %in21, i32 addrspace(1)* %out21
  store i32 %in22, i32 addrspace(1)* %out22
  store i32 %in23, i32 addrspace(1)* %out23
  store i32 %in24, i32 addrspace(1)* %out24
  store i32 %in25, i32 addrspace(1)* %out25
  store i32 %in26, i32 addrspace(1)* %out26
  store i32 %in27, i32 addrspace(1)* %out27
  store i32 %in28, i32 addrspace(1)* %out28
  store i32 %in29, i32 addrspace(1)* %out29
  ret void
}
