199 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 %s -o - | FileCheck --check-prefixes=CHECK-UNKNOWN %s3; RUN: llc -mtriple=amdgcn-unknown-mesa3d -mcpu=gfx1250 %s -o - | FileCheck -check-prefixes=CHECK-MESA3D %s4; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx1250 %s -o - | FileCheck --check-prefixes=CHECK-G-UNKNOWN %s5; RUN: llc -global-isel -mtriple=amdgcn-unknown-mesa3d -mcpu=gfx1250 %s -o - | FileCheck -check-prefixes=CHECK-G-MESA3D %s6 7declare i32 @llvm.amdgcn.cluster.workgroup.max.flat.id() #08 9define amdgpu_kernel void @test_workgroup_max_flat_id(ptr addrspace(1) %out) #1 {10; CHECK-UNKNOWN-LABEL: test_workgroup_max_flat_id:11; CHECK-UNKNOWN: ; %bb.0:12; CHECK-UNKNOWN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 113; CHECK-UNKNOWN-NEXT: s_load_b64 s[0:1], s[4:5], 0x2414; CHECK-UNKNOWN-NEXT: s_bfe_u32 s2, ttmp6, 0x4001815; CHECK-UNKNOWN-NEXT: s_delay_alu instid0(SALU_CYCLE_1)16; CHECK-UNKNOWN-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s217; CHECK-UNKNOWN-NEXT: s_wait_kmcnt 0x018; CHECK-UNKNOWN-NEXT: global_store_b32 v0, v1, s[0:1]19; CHECK-UNKNOWN-NEXT: s_endpgm20;21; CHECK-MESA3D-LABEL: test_workgroup_max_flat_id:22; CHECK-MESA3D: .amd_kernel_code_t23; CHECK-MESA3D-NEXT: amd_code_version_major = 124; CHECK-MESA3D-NEXT: amd_code_version_minor = 225; CHECK-MESA3D-NEXT: amd_machine_kind = 126; CHECK-MESA3D-NEXT: amd_machine_version_major = 1227; CHECK-MESA3D-NEXT: amd_machine_version_minor = 528; CHECK-MESA3D-NEXT: amd_machine_version_stepping = 029; CHECK-MESA3D-NEXT: kernel_code_entry_byte_offset = 25630; CHECK-MESA3D-NEXT: kernel_code_prefetch_byte_size = 031; CHECK-MESA3D-NEXT: granulated_workitem_vgpr_count = 032; CHECK-MESA3D-NEXT: granulated_wavefront_sgpr_count = 033; CHECK-MESA3D-NEXT: priority = 034; CHECK-MESA3D-NEXT: float_mode = 24035; CHECK-MESA3D-NEXT: priv = 036; CHECK-MESA3D-NEXT: enable_dx10_clamp = 037; CHECK-MESA3D-NEXT: debug_mode = 038; CHECK-MESA3D-NEXT: enable_ieee_mode = 039; CHECK-MESA3D-NEXT: enable_wgp_mode = 040; CHECK-MESA3D-NEXT: enable_mem_ordered = 141; CHECK-MESA3D-NEXT: enable_fwd_progress = 142; CHECK-MESA3D-NEXT: enable_sgpr_private_segment_wave_byte_offset = 043; CHECK-MESA3D-NEXT: user_sgpr_count = 844; CHECK-MESA3D-NEXT: enable_trap_handler = 045; CHECK-MESA3D-NEXT: enable_sgpr_workgroup_id_x = 146; CHECK-MESA3D-NEXT: enable_sgpr_workgroup_id_y = 147; CHECK-MESA3D-NEXT: enable_sgpr_workgroup_id_z = 148; CHECK-MESA3D-NEXT: enable_sgpr_workgroup_info = 049; CHECK-MESA3D-NEXT: enable_vgpr_workitem_id = 250; CHECK-MESA3D-NEXT: enable_exception_msb = 051; CHECK-MESA3D-NEXT: granulated_lds_size = 052; CHECK-MESA3D-NEXT: enable_exception = 053; CHECK-MESA3D-NEXT: enable_sgpr_private_segment_buffer = 054; CHECK-MESA3D-NEXT: enable_sgpr_dispatch_ptr = 155; CHECK-MESA3D-NEXT: enable_sgpr_queue_ptr = 156; CHECK-MESA3D-NEXT: enable_sgpr_kernarg_segment_ptr = 157; CHECK-MESA3D-NEXT: enable_sgpr_dispatch_id = 158; CHECK-MESA3D-NEXT: enable_sgpr_flat_scratch_init = 059; CHECK-MESA3D-NEXT: enable_sgpr_private_segment_size = 060; CHECK-MESA3D-NEXT: enable_sgpr_grid_workgroup_count_x = 061; CHECK-MESA3D-NEXT: enable_sgpr_grid_workgroup_count_y = 062; CHECK-MESA3D-NEXT: enable_sgpr_grid_workgroup_count_z = 063; CHECK-MESA3D-NEXT: enable_wavefront_size32 = 164; CHECK-MESA3D-NEXT: enable_ordered_append_gds = 065; CHECK-MESA3D-NEXT: private_element_size = 166; CHECK-MESA3D-NEXT: is_ptr64 = 167; CHECK-MESA3D-NEXT: is_dynamic_callstack = 068; CHECK-MESA3D-NEXT: is_debug_enabled = 069; CHECK-MESA3D-NEXT: is_xnack_enabled = 170; CHECK-MESA3D-NEXT: workitem_private_segment_byte_size = 071; CHECK-MESA3D-NEXT: workgroup_group_segment_byte_size = 072; CHECK-MESA3D-NEXT: gds_segment_byte_size = 073; CHECK-MESA3D-NEXT: kernarg_segment_byte_size = 2474; CHECK-MESA3D-NEXT: workgroup_fbarrier_count = 075; CHECK-MESA3D-NEXT: wavefront_sgpr_count = 676; CHECK-MESA3D-NEXT: workitem_vgpr_count = 277; CHECK-MESA3D-NEXT: reserved_vgpr_first = 078; CHECK-MESA3D-NEXT: reserved_vgpr_count = 079; CHECK-MESA3D-NEXT: reserved_sgpr_first = 080; CHECK-MESA3D-NEXT: reserved_sgpr_count = 081; CHECK-MESA3D-NEXT: debug_wavefront_private_segment_offset_sgpr = 082; CHECK-MESA3D-NEXT: debug_private_segment_buffer_sgpr = 083; CHECK-MESA3D-NEXT: kernarg_segment_alignment = 484; CHECK-MESA3D-NEXT: group_segment_alignment = 485; CHECK-MESA3D-NEXT: private_segment_alignment = 486; CHECK-MESA3D-NEXT: wavefront_size = 587; CHECK-MESA3D-NEXT: call_convention = -188; CHECK-MESA3D-NEXT: runtime_loader_kernel_symbol = 089; CHECK-MESA3D-NEXT: .end_amd_kernel_code_t90; CHECK-MESA3D-NEXT: ; %bb.0:91; CHECK-MESA3D-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 192; CHECK-MESA3D-NEXT: s_load_b64 s[0:1], s[4:5], 0x093; CHECK-MESA3D-NEXT: s_bfe_u32 s2, ttmp6, 0x4001894; CHECK-MESA3D-NEXT: s_delay_alu instid0(SALU_CYCLE_1)95; CHECK-MESA3D-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s296; CHECK-MESA3D-NEXT: s_wait_kmcnt 0x097; CHECK-MESA3D-NEXT: global_store_b32 v0, v1, s[0:1]98; CHECK-MESA3D-NEXT: s_endpgm99;100; CHECK-G-UNKNOWN-LABEL: test_workgroup_max_flat_id:101; CHECK-G-UNKNOWN: ; %bb.0:102; CHECK-G-UNKNOWN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1103; CHECK-G-UNKNOWN-NEXT: s_load_b64 s[0:1], s[4:5], 0x24104; CHECK-G-UNKNOWN-NEXT: s_bfe_u32 s2, ttmp6, 0x40018105; CHECK-G-UNKNOWN-NEXT: s_delay_alu instid0(SALU_CYCLE_1)106; CHECK-G-UNKNOWN-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2107; CHECK-G-UNKNOWN-NEXT: s_wait_kmcnt 0x0108; CHECK-G-UNKNOWN-NEXT: global_store_b32 v1, v0, s[0:1]109; CHECK-G-UNKNOWN-NEXT: s_endpgm110;111; CHECK-G-MESA3D-LABEL: test_workgroup_max_flat_id:112; CHECK-G-MESA3D: .amd_kernel_code_t113; CHECK-G-MESA3D-NEXT: amd_code_version_major = 1114; CHECK-G-MESA3D-NEXT: amd_code_version_minor = 2115; CHECK-G-MESA3D-NEXT: amd_machine_kind = 1116; CHECK-G-MESA3D-NEXT: amd_machine_version_major = 12117; CHECK-G-MESA3D-NEXT: amd_machine_version_minor = 5118; CHECK-G-MESA3D-NEXT: amd_machine_version_stepping = 0119; CHECK-G-MESA3D-NEXT: kernel_code_entry_byte_offset = 256120; CHECK-G-MESA3D-NEXT: kernel_code_prefetch_byte_size = 0121; CHECK-G-MESA3D-NEXT: granulated_workitem_vgpr_count = 0122; CHECK-G-MESA3D-NEXT: granulated_wavefront_sgpr_count = 0123; CHECK-G-MESA3D-NEXT: priority = 0124; CHECK-G-MESA3D-NEXT: float_mode = 240125; CHECK-G-MESA3D-NEXT: priv = 0126; CHECK-G-MESA3D-NEXT: enable_dx10_clamp = 0127; CHECK-G-MESA3D-NEXT: debug_mode = 0128; CHECK-G-MESA3D-NEXT: enable_ieee_mode = 0129; CHECK-G-MESA3D-NEXT: enable_wgp_mode = 0130; CHECK-G-MESA3D-NEXT: enable_mem_ordered = 1131; CHECK-G-MESA3D-NEXT: enable_fwd_progress = 1132; CHECK-G-MESA3D-NEXT: enable_sgpr_private_segment_wave_byte_offset = 0133; CHECK-G-MESA3D-NEXT: user_sgpr_count = 8134; CHECK-G-MESA3D-NEXT: enable_trap_handler = 0135; CHECK-G-MESA3D-NEXT: enable_sgpr_workgroup_id_x = 1136; CHECK-G-MESA3D-NEXT: enable_sgpr_workgroup_id_y = 1137; CHECK-G-MESA3D-NEXT: enable_sgpr_workgroup_id_z = 1138; CHECK-G-MESA3D-NEXT: enable_sgpr_workgroup_info = 0139; CHECK-G-MESA3D-NEXT: enable_vgpr_workitem_id = 2140; CHECK-G-MESA3D-NEXT: enable_exception_msb = 0141; CHECK-G-MESA3D-NEXT: granulated_lds_size = 0142; CHECK-G-MESA3D-NEXT: enable_exception = 0143; CHECK-G-MESA3D-NEXT: enable_sgpr_private_segment_buffer = 0144; CHECK-G-MESA3D-NEXT: enable_sgpr_dispatch_ptr = 1145; CHECK-G-MESA3D-NEXT: enable_sgpr_queue_ptr = 1146; CHECK-G-MESA3D-NEXT: enable_sgpr_kernarg_segment_ptr = 1147; CHECK-G-MESA3D-NEXT: enable_sgpr_dispatch_id = 1148; CHECK-G-MESA3D-NEXT: enable_sgpr_flat_scratch_init = 0149; CHECK-G-MESA3D-NEXT: enable_sgpr_private_segment_size = 0150; CHECK-G-MESA3D-NEXT: enable_sgpr_grid_workgroup_count_x = 0151; CHECK-G-MESA3D-NEXT: enable_sgpr_grid_workgroup_count_y = 0152; CHECK-G-MESA3D-NEXT: enable_sgpr_grid_workgroup_count_z = 0153; CHECK-G-MESA3D-NEXT: enable_wavefront_size32 = 1154; CHECK-G-MESA3D-NEXT: enable_ordered_append_gds = 0155; CHECK-G-MESA3D-NEXT: private_element_size = 1156; CHECK-G-MESA3D-NEXT: is_ptr64 = 1157; CHECK-G-MESA3D-NEXT: is_dynamic_callstack = 0158; CHECK-G-MESA3D-NEXT: is_debug_enabled = 0159; CHECK-G-MESA3D-NEXT: is_xnack_enabled = 1160; CHECK-G-MESA3D-NEXT: workitem_private_segment_byte_size = 0161; CHECK-G-MESA3D-NEXT: workgroup_group_segment_byte_size = 0162; CHECK-G-MESA3D-NEXT: gds_segment_byte_size = 0163; CHECK-G-MESA3D-NEXT: kernarg_segment_byte_size = 24164; CHECK-G-MESA3D-NEXT: workgroup_fbarrier_count = 0165; CHECK-G-MESA3D-NEXT: wavefront_sgpr_count = 6166; CHECK-G-MESA3D-NEXT: workitem_vgpr_count = 2167; CHECK-G-MESA3D-NEXT: reserved_vgpr_first = 0168; CHECK-G-MESA3D-NEXT: reserved_vgpr_count = 0169; CHECK-G-MESA3D-NEXT: reserved_sgpr_first = 0170; CHECK-G-MESA3D-NEXT: reserved_sgpr_count = 0171; CHECK-G-MESA3D-NEXT: debug_wavefront_private_segment_offset_sgpr = 0172; CHECK-G-MESA3D-NEXT: debug_private_segment_buffer_sgpr = 0173; CHECK-G-MESA3D-NEXT: kernarg_segment_alignment = 4174; CHECK-G-MESA3D-NEXT: group_segment_alignment = 4175; CHECK-G-MESA3D-NEXT: private_segment_alignment = 4176; CHECK-G-MESA3D-NEXT: wavefront_size = 5177; CHECK-G-MESA3D-NEXT: call_convention = -1178; CHECK-G-MESA3D-NEXT: runtime_loader_kernel_symbol = 0179; CHECK-G-MESA3D-NEXT: .end_amd_kernel_code_t180; CHECK-G-MESA3D-NEXT: ; %bb.0:181; CHECK-G-MESA3D-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1182; CHECK-G-MESA3D-NEXT: s_load_b64 s[0:1], s[4:5], 0x0183; CHECK-G-MESA3D-NEXT: s_bfe_u32 s2, ttmp6, 0x40018184; CHECK-G-MESA3D-NEXT: s_delay_alu instid0(SALU_CYCLE_1)185; CHECK-G-MESA3D-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2186; CHECK-G-MESA3D-NEXT: s_wait_kmcnt 0x0187; CHECK-G-MESA3D-NEXT: global_store_b32 v1, v0, s[0:1]188; CHECK-G-MESA3D-NEXT: s_endpgm189 %id = call i32 @llvm.amdgcn.cluster.workgroup.max.flat.id()190 store i32 %id, ptr addrspace(1) %out191 ret void192}193 194attributes #0 = { nounwind readnone }195attributes #1 = { nounwind }196 197!llvm.module.flags = !{!0}198!0 = !{i32 1, !"amdgpu_code_object_version", i32 400}199