brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.0 KiB · aa762c8 Raw
551 lines · plain
1; RUN: opt -mtriple=amdgcn-amd-amdhsa -passes=amdgpu-attributor %s -o %t.bc2; RUN: llc -mtriple=amdgcn -mcpu=gfx1250 %t.bc -o - | FileCheck --check-prefixes=CHECK-UNKNOWN %s3; RUN: llc -mtriple=amdgcn-unknown-mesa3d -mcpu=gfx1250 %t.bc -o - | FileCheck -check-prefixes=CHECK-MESA3D %s4; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx1250 %t.bc -o - | FileCheck --check-prefixes=CHECK-G-UNKNOWN %s5; RUN: llc -global-isel -mtriple=amdgcn-unknown-mesa3d -mcpu=gfx1250 %t.bc -o - | FileCheck -check-prefixes=CHECK-G-MESA3D %s6 7declare i32 @llvm.amdgcn.cluster.id.x() #08declare i32 @llvm.amdgcn.cluster.id.y() #09declare i32 @llvm.amdgcn.cluster.id.z() #010 11define amdgpu_kernel void @test_cluster_id_x(ptr addrspace(1) %out) {12; CHECK-UNKNOWN-LABEL: test_cluster_id_x:13; CHECK-UNKNOWN:       ; %bb.0:14; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 115; CHECK-UNKNOWN-NEXT:    s_load_b64 s[2:3], s[0:1], 0x2416; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, ttmp9 :: v_dual_mov_b32 v1, 017; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x018; CHECK-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[2:3]19; CHECK-UNKNOWN-NEXT:    s_endpgm20;21; CHECK-MESA3D-LABEL: test_cluster_id_x: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 = 244; CHECK-MESA3D-NEXT:     enable_trap_handler = 045; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 146; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 047; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 048; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 049; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 050; 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 = 055; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 056; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 157; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 058; 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 = 874; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 075; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 276; 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[0:1], 0x093; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, ttmp9 :: v_dual_mov_b32 v1, 094; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x095; CHECK-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]96; CHECK-MESA3D-NEXT:    s_endpgm97;98; CHECK-G-UNKNOWN-LABEL: test_cluster_id_x:99; CHECK-G-UNKNOWN:       ; %bb.0:100; CHECK-G-UNKNOWN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1101; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[2:3], s[0:1], 0x24102; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v0, ttmp9 :: v_dual_mov_b32 v1, 0103; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0104; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[2:3]105; CHECK-G-UNKNOWN-NEXT:    s_endpgm106;107; CHECK-G-MESA3D-LABEL: test_cluster_id_x:108; CHECK-G-MESA3D:         .amd_kernel_code_t109; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1110; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2111; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1112; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12113; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5114; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0115; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256116; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0117; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0118; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0119; CHECK-G-MESA3D-NEXT:     priority = 0120; CHECK-G-MESA3D-NEXT:     float_mode = 240121; CHECK-G-MESA3D-NEXT:     priv = 0122; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0123; CHECK-G-MESA3D-NEXT:     debug_mode = 0124; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0125; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0126; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1127; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1128; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0129; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 2130; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0131; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1132; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 0133; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 0134; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0135; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 0136; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0137; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0138; CHECK-G-MESA3D-NEXT:     enable_exception = 0139; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0140; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 0141; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 0142; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1143; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 0144; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0145; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0146; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0147; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0148; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0149; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1150; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0151; CHECK-G-MESA3D-NEXT:     private_element_size = 1152; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1153; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0154; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0155; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1156; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0157; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0158; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0159; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 8160; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0161; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 2162; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 2163; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0164; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0165; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0166; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0167; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0168; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0169; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4170; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4171; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4172; CHECK-G-MESA3D-NEXT:     wavefront_size = 5173; CHECK-G-MESA3D-NEXT:     call_convention = -1174; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0175; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t176; CHECK-G-MESA3D-NEXT:  ; %bb.0:177; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1178; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[0:1], 0x0179; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v0, ttmp9 :: v_dual_mov_b32 v1, 0180; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0181; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]182; CHECK-G-MESA3D-NEXT:    s_endpgm183  %id = call i32 @llvm.amdgcn.cluster.id.x()184  store i32 %id, ptr addrspace(1) %out185  ret void186}187 188define amdgpu_kernel void @test_cluster_id_y(ptr addrspace(1) %out) #1 {189; CHECK-UNKNOWN-LABEL: test_cluster_id_y:190; CHECK-UNKNOWN:       ; %bb.0:191; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1192; CHECK-UNKNOWN-NEXT:    s_load_b64 s[2:3], s[0:1], 0x24193; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, ttmp7 :: v_dual_mov_b32 v1, 0194; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0195; CHECK-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[2:3]196; CHECK-UNKNOWN-NEXT:    s_endpgm197;198; CHECK-MESA3D-LABEL: test_cluster_id_y:199; CHECK-MESA3D:         .amd_kernel_code_t200; CHECK-MESA3D-NEXT:     amd_code_version_major = 1201; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2202; CHECK-MESA3D-NEXT:     amd_machine_kind = 1203; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12204; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5205; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0206; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256207; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0208; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0209; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0210; CHECK-MESA3D-NEXT:     priority = 0211; CHECK-MESA3D-NEXT:     float_mode = 240212; CHECK-MESA3D-NEXT:     priv = 0213; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0214; CHECK-MESA3D-NEXT:     debug_mode = 0215; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0216; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0217; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1218; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1219; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0220; CHECK-MESA3D-NEXT:     user_sgpr_count = 2221; CHECK-MESA3D-NEXT:     enable_trap_handler = 0222; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1223; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1224; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 0225; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0226; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 0227; CHECK-MESA3D-NEXT:     enable_exception_msb = 0228; CHECK-MESA3D-NEXT:     granulated_lds_size = 0229; CHECK-MESA3D-NEXT:     enable_exception = 0230; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0231; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 0232; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 0233; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1234; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 0235; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0236; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0237; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0238; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0239; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0240; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1241; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0242; CHECK-MESA3D-NEXT:     private_element_size = 1243; CHECK-MESA3D-NEXT:     is_ptr64 = 1244; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0245; CHECK-MESA3D-NEXT:     is_debug_enabled = 0246; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1247; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0248; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0249; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0250; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 8251; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0252; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 2253; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 2254; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0255; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0256; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0257; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0258; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0259; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0260; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4261; CHECK-MESA3D-NEXT:     group_segment_alignment = 4262; CHECK-MESA3D-NEXT:     private_segment_alignment = 4263; CHECK-MESA3D-NEXT:     wavefront_size = 5264; CHECK-MESA3D-NEXT:     call_convention = -1265; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0266; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t267; CHECK-MESA3D-NEXT:  ; %bb.0:268; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1269; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[0:1], 0x0270; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, ttmp7 :: v_dual_mov_b32 v1, 0271; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x0272; CHECK-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]273; CHECK-MESA3D-NEXT:    s_endpgm274;275; CHECK-G-UNKNOWN-LABEL: test_cluster_id_y:276; CHECK-G-UNKNOWN:       ; %bb.0:277; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1278; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[2:3], s[0:1], 0x24279; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v0, ttmp7 :: v_dual_mov_b32 v1, 0280; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0281; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[2:3]282; CHECK-G-UNKNOWN-NEXT:    s_endpgm283;284; CHECK-G-MESA3D-LABEL: test_cluster_id_y:285; CHECK-G-MESA3D:         .amd_kernel_code_t286; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1287; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2288; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1289; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12290; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5291; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0292; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256293; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0294; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0295; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0296; CHECK-G-MESA3D-NEXT:     priority = 0297; CHECK-G-MESA3D-NEXT:     float_mode = 240298; CHECK-G-MESA3D-NEXT:     priv = 0299; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0300; CHECK-G-MESA3D-NEXT:     debug_mode = 0301; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0302; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0303; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1304; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1305; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0306; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 2307; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0308; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1309; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1310; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 0311; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0312; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 0313; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0314; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0315; CHECK-G-MESA3D-NEXT:     enable_exception = 0316; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0317; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 0318; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 0319; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1320; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 0321; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0322; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0323; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0324; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0325; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0326; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1327; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0328; CHECK-G-MESA3D-NEXT:     private_element_size = 1329; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1330; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0331; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0332; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1333; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0334; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0335; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0336; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 8337; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0338; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 2339; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 2340; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0341; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0342; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0343; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0344; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0345; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0346; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4347; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4348; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4349; CHECK-G-MESA3D-NEXT:     wavefront_size = 5350; CHECK-G-MESA3D-NEXT:     call_convention = -1351; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0352; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t353; CHECK-G-MESA3D-NEXT:  ; %bb.0:354; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1355; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[0:1], 0x0356; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v0, ttmp7 :: v_dual_mov_b32 v1, 0357; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0358; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]359; CHECK-G-MESA3D-NEXT:    s_endpgm360  %id = call i32 @llvm.amdgcn.cluster.id.y()361  store i32 %id, ptr addrspace(1) %out362  ret void363}364 365define amdgpu_kernel void @test_cluster_id_z(ptr addrspace(1) %out) #1 {366; CHECK-UNKNOWN-LABEL: test_cluster_id_z:367; CHECK-UNKNOWN:       ; %bb.0:368; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1369; CHECK-UNKNOWN-NEXT:    s_load_b64 s[2:3], s[0:1], 0x24370; CHECK-UNKNOWN-NEXT:    s_wait_xcnt 0x0371; CHECK-UNKNOWN-NEXT:    s_lshr_b32 s0, ttmp7, 16372; CHECK-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)373; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s0374; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0375; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v1, s[2:3]376; CHECK-UNKNOWN-NEXT:    s_endpgm377;378; CHECK-MESA3D-LABEL: test_cluster_id_z:379; CHECK-MESA3D:         .amd_kernel_code_t380; CHECK-MESA3D-NEXT:     amd_code_version_major = 1381; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2382; CHECK-MESA3D-NEXT:     amd_machine_kind = 1383; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12384; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5385; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0386; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256387; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0388; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0389; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0390; CHECK-MESA3D-NEXT:     priority = 0391; CHECK-MESA3D-NEXT:     float_mode = 240392; CHECK-MESA3D-NEXT:     priv = 0393; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0394; CHECK-MESA3D-NEXT:     debug_mode = 0395; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0396; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0397; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1398; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1399; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0400; CHECK-MESA3D-NEXT:     user_sgpr_count = 2401; CHECK-MESA3D-NEXT:     enable_trap_handler = 0402; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1403; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 0404; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1405; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0406; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 0407; CHECK-MESA3D-NEXT:     enable_exception_msb = 0408; CHECK-MESA3D-NEXT:     granulated_lds_size = 0409; CHECK-MESA3D-NEXT:     enable_exception = 0410; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0411; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 0412; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 0413; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1414; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 0415; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0416; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0417; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0418; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0419; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0420; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1421; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0422; CHECK-MESA3D-NEXT:     private_element_size = 1423; CHECK-MESA3D-NEXT:     is_ptr64 = 1424; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0425; CHECK-MESA3D-NEXT:     is_debug_enabled = 0426; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1427; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0428; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0429; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0430; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 8431; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0432; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 3433; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 2434; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0435; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0436; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0437; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0438; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0439; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0440; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4441; CHECK-MESA3D-NEXT:     group_segment_alignment = 4442; CHECK-MESA3D-NEXT:     private_segment_alignment = 4443; CHECK-MESA3D-NEXT:     wavefront_size = 5444; CHECK-MESA3D-NEXT:     call_convention = -1445; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0446; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t447; CHECK-MESA3D-NEXT:  ; %bb.0:448; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1449; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[0:1], 0x0450; CHECK-MESA3D-NEXT:    s_lshr_b32 s2, ttmp7, 16451; CHECK-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)452; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2453; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x0454; CHECK-MESA3D-NEXT:    global_store_b32 v0, v1, s[0:1]455; CHECK-MESA3D-NEXT:    s_endpgm456;457; CHECK-G-UNKNOWN-LABEL: test_cluster_id_z:458; CHECK-G-UNKNOWN:       ; %bb.0:459; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1460; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[2:3], s[0:1], 0x24461; CHECK-G-UNKNOWN-NEXT:    s_wait_xcnt 0x0462; CHECK-G-UNKNOWN-NEXT:    s_lshr_b32 s0, ttmp7, 16463; CHECK-G-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)464; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s0465; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0466; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[2:3]467; CHECK-G-UNKNOWN-NEXT:    s_endpgm468;469; CHECK-G-MESA3D-LABEL: test_cluster_id_z:470; CHECK-G-MESA3D:         .amd_kernel_code_t471; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1472; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2473; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1474; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12475; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5476; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0477; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256478; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0479; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0480; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0481; CHECK-G-MESA3D-NEXT:     priority = 0482; CHECK-G-MESA3D-NEXT:     float_mode = 240483; CHECK-G-MESA3D-NEXT:     priv = 0484; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0485; CHECK-G-MESA3D-NEXT:     debug_mode = 0486; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0487; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0488; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1489; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1490; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0491; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 2492; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0493; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1494; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 0495; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1496; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0497; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 0498; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0499; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0500; CHECK-G-MESA3D-NEXT:     enable_exception = 0501; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0502; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 0503; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 0504; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1505; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 0506; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0507; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0508; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0509; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0510; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0511; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1512; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0513; CHECK-G-MESA3D-NEXT:     private_element_size = 1514; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1515; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0516; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0517; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1518; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0519; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0520; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0521; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 8522; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0523; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 3524; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 2525; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0526; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0527; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0528; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0529; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0530; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0531; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4532; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4533; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4534; CHECK-G-MESA3D-NEXT:     wavefront_size = 5535; CHECK-G-MESA3D-NEXT:     call_convention = -1536; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0537; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t538; CHECK-G-MESA3D-NEXT:  ; %bb.0:539; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1540; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[0:1], 0x0541; CHECK-G-MESA3D-NEXT:    s_lshr_b32 s2, ttmp7, 16542; CHECK-G-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)543; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2544; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0545; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]546; CHECK-G-MESA3D-NEXT:    s_endpgm547  %id = call i32 @llvm.amdgcn.cluster.id.z()548  store i32 %id, ptr addrspace(1) %out549  ret void550}551