brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · 4d93afb Raw
320 lines · plain
1; RUN: sed 's/CODE_OBJECT_VERSION/600/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=kaveri | FileCheck -check-prefixes=GCN,HSA,COV5 %s2; RUN: sed 's/CODE_OBJECT_VERSION/500/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=kaveri | FileCheck -check-prefixes=GCN,HSA,COV5 %s3; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-amd-amdhsa -mcpu=kaveri | FileCheck -check-prefixes=GCN,HSA,COV4 %s4; RUN: sed 's/CODE_OBJECT_VERSION/400/g' %s | llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti | FileCheck -check-prefixes=GCN,MESA %s5 6; GCN-LABEL: {{^}}kernel_implicitarg_ptr_empty:7 8; MESA: enable_sgpr_kernarg_segment_ptr = 19; MESA: kernarg_segment_byte_size = 1610; MESA: kernarg_segment_alignment = 411 12; HSA: s_load_dword s0, s[4:5], 0x013 14; COV4: .amdhsa_kernarg_size 5615; COV5: .amdhsa_kernarg_size 25616define amdgpu_kernel void @kernel_implicitarg_ptr_empty() #0 {17  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()18  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr19  ret void20}21 22; GCN-LABEL: {{^}}kernel_implicitarg_ptr_empty_0implicit:23; MESA: enable_sgpr_kernarg_segment_ptr = 124; MESA: kernarg_segment_byte_size = 1625; MESA: kernarg_segment_alignment = 426 27; HSA: s_mov_b64 [[NULL:s\[[0-9]+:[0-9]+\]]], 0{{$}}28; HSA: s_load_dword s0, [[NULL]], 0x029 30; MESA: s_load_dword s0, s[4:5], 0x031 32; COV4: .amdhsa_kernarg_size 033; COV5: .amdhsa_kernarg_size 034define amdgpu_kernel void @kernel_implicitarg_ptr_empty_0implicit() #3 {35  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()36  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr37  ret void38}39 40; GCN-LABEL: {{^}}opencl_kernel_implicitarg_ptr_empty:41 42; MESA: enable_sgpr_kernarg_segment_ptr = 143; MESA: kernarg_segment_byte_size = 1644; MESA: kernarg_segment_alignment = 445 46; HSA: s_load_dword s0, s[4:5], 0x047 48; HSA: .amdhsa_kernarg_size 4849define amdgpu_kernel void @opencl_kernel_implicitarg_ptr_empty() #1 {50  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()51  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr52  ret void53}54 55; GCN-LABEL: {{^}}kernel_implicitarg_ptr:56 57; MESA: enable_sgpr_kernarg_segment_ptr = 158; MESA: kernarg_segment_byte_size = 12859; MESA: kernarg_segment_alignment = 460 61; HSA: s_load_dword s0, s[4:5], 0x1c62 63; COV4: .amdhsa_kernarg_size 16864; COV5: .amdhsa_kernarg_size 36865define amdgpu_kernel void @kernel_implicitarg_ptr([112 x i8]) #0 {66  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()67  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr68  ret void69}70 71; GCN-LABEL: {{^}}opencl_kernel_implicitarg_ptr:72 73; MESA: enable_sgpr_kernarg_segment_ptr = 174; MESA: kernarg_segment_byte_size = 12875; MESA: kernarg_segment_alignment = 476 77; HSA: s_load_dword s0, s[4:5], 0x1c78 79; HSA: .amdhsa_kernarg_size 16080define amdgpu_kernel void @opencl_kernel_implicitarg_ptr([112 x i8]) #1 {81  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()82  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr83  ret void84}85 86; GCN-LABEL: {{^}}func_implicitarg_ptr:87; GCN: s_waitcnt88; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x089; GCN-NEXT: s_waitcnt90; GCN-NEXT: s_setpc_b6491define void @func_implicitarg_ptr() #0 {92  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()93  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr94  ret void95}96 97; GCN-LABEL: {{^}}opencl_func_implicitarg_ptr:98; GCN: s_waitcnt99; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0100; GCN-NEXT: s_waitcnt101; GCN-NEXT: s_setpc_b64102define void @opencl_func_implicitarg_ptr() #0 {103  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()104  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr105  ret void106}107 108; GCN-LABEL: {{^}}kernel_call_implicitarg_ptr_func_empty:109 110; MESA: enable_sgpr_kernarg_segment_ptr = 1111; MESA: kernarg_segment_byte_size = 16112; MESA: kernarg_segment_alignment = 4113 114; GCN: s_mov_b64 s[8:9], s[4:5]115; GCN: s_swappc_b64116 117; COV4: .amdhsa_kernarg_size 56118; COV5: .amdhsa_kernarg_size 256119define amdgpu_kernel void @kernel_call_implicitarg_ptr_func_empty() #0 {120  call void @func_implicitarg_ptr()121  ret void122}123 124; GCN-LABEL: {{^}}kernel_call_implicitarg_ptr_func_empty_implicit0:125; MESA: enable_sgpr_kernarg_segment_ptr = 1126; MESA: kernarg_segment_byte_size = 16127; MESA: kernarg_segment_alignment = 4128 129; HSA: s_mov_b64 s[8:9], 0{{$}}130; MESA: s_mov_b64 s[8:9], s[4:5]{{$}}131; GCN: s_swappc_b64132 133; HSA: .amdhsa_kernarg_size 0134define amdgpu_kernel void @kernel_call_implicitarg_ptr_func_empty_implicit0() #3 {135  call void @func_implicitarg_ptr()136  ret void137}138 139; GCN-LABEL: {{^}}opencl_kernel_call_implicitarg_ptr_func_empty:140; MESA: enable_sgpr_kernarg_segment_ptr = 1141; MESA: kernarg_segment_byte_size = 16142; GCN: s_mov_b64 s[8:9], s[4:5]143; GCN-NOT: s4144; GCN-NOT: s5145; GCN: s_swappc_b64146 147; HSA: .amdhsa_kernarg_size 48148define amdgpu_kernel void @opencl_kernel_call_implicitarg_ptr_func_empty() #1 {149  call void @func_implicitarg_ptr()150  ret void151}152 153; GCN-LABEL: {{^}}kernel_call_implicitarg_ptr_func:154; MESA: enable_sgpr_kernarg_segment_ptr = 1155; MESA: kernarg_segment_byte_size = 128156; MESA: kernarg_segment_alignment = 4157 158; HSA: s_add_u32 s8, s4, 0x70159; MESA: s_add_u32 s8, s4, 0x70160 161; GCN: s_addc_u32 s9, s5, 0{{$}}162; GCN: s_swappc_b64163 164; COV4: .amdhsa_kernarg_size 168165; COV5: .amdhsa_kernarg_size 368166define amdgpu_kernel void @kernel_call_implicitarg_ptr_func([112 x i8]) #0 {167  call void @func_implicitarg_ptr()168  ret void169}170 171; GCN-LABEL: {{^}}opencl_kernel_call_implicitarg_ptr_func:172; MESA: enable_sgpr_kernarg_segment_ptr = 1173; MESA: kernarg_segment_byte_size = 128174; MESA: kernarg_segment_alignment = 4175 176; GCN: s_add_u32 s8, s4, 0x70177; GCN: s_addc_u32 s9, s5, 0{{$}}178; GCN: s_swappc_b64179 180; HSA: .amdhsa_kernarg_size 160181define amdgpu_kernel void @opencl_kernel_call_implicitarg_ptr_func([112 x i8]) #1 {182  call void @func_implicitarg_ptr()183  ret void184}185 186; GCN-LABEL: {{^}}func_call_implicitarg_ptr_func:187; GCN-NOT: s8188; GCN-NOT: s9189; GCN-NOT: s[8:9]190; GCN: s_swappc_b64191; GCN: s_setpc_b64 s[30:31]192define void @func_call_implicitarg_ptr_func() #0 {193  call void @func_implicitarg_ptr()194  ret void195}196 197; GCN-LABEL: {{^}}opencl_func_call_implicitarg_ptr_func:198; GCN-NOT: s8199; GCN-NOT: s9200; GCN-NOT: s[8:9]201; GCN: s_swappc_b64202; GCN: s_setpc_b64 s[30:31]203define void @opencl_func_call_implicitarg_ptr_func() #0 {204  call void @func_implicitarg_ptr()205  ret void206}207 208; GCN-LABEL: {{^}}func_kernarg_implicitarg_ptr:209; GCN: s_waitcnt210; GCN-DAG: s_mov_b64 [[NULL:s\[[0-9]+:[0-9]+\]]], 0211; GCN-DAG: s_load_dword s{{[0-9]+}}, [[NULL]], 0x0212; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0213; GCN: s_waitcnt lgkmcnt(0)214define void @func_kernarg_implicitarg_ptr() #0 {215  %kernarg.segment.ptr = call ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr()216  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()217  %load0 = load volatile i32, ptr addrspace(4) %kernarg.segment.ptr218  %load1 = load volatile i32, ptr addrspace(4) %implicitarg.ptr219  ret void220}221 222; GCN-LABEL: {{^}}opencl_func_kernarg_implicitarg_ptr:223; GCN: s_waitcnt224; GCN-DAG: s_mov_b64 [[NULL:s\[[0-9]+:[0-9]+\]]], 0225; GCN-DAG: s_load_dword s{{[0-9]+}}, [[NULL]], 0x0226; GCN: s_load_dword s{{[0-9]+}}, s[8:9], 0x0227; GCN: s_waitcnt lgkmcnt(0)228define void @opencl_func_kernarg_implicitarg_ptr() #0 {229  %kernarg.segment.ptr = call ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr()230  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()231  %load0 = load volatile i32, ptr addrspace(4) %kernarg.segment.ptr232  %load1 = load volatile i32, ptr addrspace(4) %implicitarg.ptr233  ret void234}235 236; GCN-LABEL: {{^}}kernel_call_kernarg_implicitarg_ptr_func:237; GCN: s_add_u32 s8, s4, 0x70238; GCN: s_addc_u32 s9, s5, 0239; GCN: s_swappc_b64240define amdgpu_kernel void @kernel_call_kernarg_implicitarg_ptr_func([112 x i8]) #0 {241  call void @func_kernarg_implicitarg_ptr()242  ret void243}244 245; GCN-LABEL: {{^}}kernel_implicitarg_no_struct_align_padding:246; MESA: kernarg_segment_byte_size = 84247; MESA: kernarg_segment_alignment = 6248 249; HSA: .amdhsa_kernarg_size 120250define amdgpu_kernel void @kernel_implicitarg_no_struct_align_padding(<16 x i32>, i32) #1 {251  %implicitarg.ptr = call ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()252  %load = load volatile i32, ptr addrspace(4) %implicitarg.ptr253  ret void254}255 256; HSA-LABEL:   amdhsa.kernels:257; HSA:         .kernarg_segment_align: 8258; COV5-NEXT:    .kernarg_segment_size: 256259; COV4-NEXT:    .kernarg_segment_size: 56260; HSA-LABEL:   .name:           kernel_implicitarg_ptr_empty261 262; HSA:         .kernarg_segment_align: 4263; HSA-NEXT:    .kernarg_segment_size: 0264; HSA-LABEL:   .name:           kernel_implicitarg_ptr_empty_0implicit265 266; HSA:         .kernarg_segment_align: 8267; HSA-NEXT:    .kernarg_segment_size: 48268; HSA-LABEL:   .name:           opencl_kernel_implicitarg_ptr_empty269 270; HSA:         .kernarg_segment_align: 8271; COV5-NEXT:    .kernarg_segment_size: 368272; COV4-NEXT:    .kernarg_segment_size: 168273; HSA-LABEL:   .name:           kernel_implicitarg_ptr274 275; HSA:         .kernarg_segment_align: 8276; HSA-NEXT:    .kernarg_segment_size: 160277; HSA-LABEL:   .name:           opencl_kernel_implicitarg_ptr278 279; HSA:         .kernarg_segment_align: 8280; COV5-NEXT:    .kernarg_segment_size: 256281; COV4-NEXT:    .kernarg_segment_size: 56282; HSA-LABEL:   .name:           kernel_call_implicitarg_ptr_func_empty283 284; HSA:         .kernarg_segment_align: 4285; HSA-NEXT:    .kernarg_segment_size: 0286; HSA-LABEL:   .name:           kernel_call_implicitarg_ptr_func_empty_implicit0287 288; HSA:         .kernarg_segment_align: 8289; HSA-NEXT:    .kernarg_segment_size: 48290; HSA-LABEL:   .name:           opencl_kernel_call_implicitarg_ptr_func_empty291 292; HSA:         .kernarg_segment_align: 8293; COV5-NEXT:    .kernarg_segment_size: 368294; COV4-NEXT:    .kernarg_segment_size: 168295; HSA-LABEL:   .name:           kernel_call_implicitarg_ptr_func296 297; HSA:         .kernarg_segment_align: 8298; HSA-NEXT:    .kernarg_segment_size: 160299; HSA-LABEL:   .name:           opencl_kernel_call_implicitarg_ptr_func300 301; HSA:         .kernarg_segment_align: 8302; COV5-NEXT:    .kernarg_segment_size: 368303; COV4-NEXT:    .kernarg_segment_size: 168304; HSA-LABEL:   .name:           kernel_call_kernarg_implicitarg_ptr_func305 306; HSA:         .kernarg_segment_align: 64307; HSA-NEXT:    .kernarg_segment_size: 120308; HSA-LABEL:   .name:           kernel_implicitarg_no_struct_align_padding309 310declare ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr() #2311declare ptr addrspace(4) @llvm.amdgcn.kernarg.segment.ptr() #2312 313attributes #0 = { nounwind noinline "amdgpu-no-dispatch-ptr" "amdgpu-no-queue-ptr" }314attributes #1 = { nounwind noinline "amdgpu-implicitarg-num-bytes"="48" "amdgpu-no-dispatch-ptr" "amdgpu-no-queue-ptr" }315attributes #2 = { nounwind readnone speculatable }316attributes #3 = { nounwind noinline "amdgpu-implicitarg-num-bytes"="0" "amdgpu-no-dispatch-ptr" "amdgpu-no-queue-ptr" }317 318!llvm.module.flags = !{!0}319!0 = !{i32 1, !"amdhsa_code_object_version", i32 CODE_OBJECT_VERSION}320