brintos

brintos / llvm-project-archived public Read only

0
0
Text · 65.4 KiB · b16fa1e Raw
1287 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.id.x() #08declare i32 @llvm.amdgcn.cluster.workgroup.id.y() #09declare i32 @llvm.amdgcn.cluster.workgroup.id.z() #010 11define amdgpu_kernel void @test_workgroup_id_x(ptr addrspace(1) %out) #1 {12; CHECK-UNKNOWN-LABEL: test_workgroup_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[0:1], s[4:5], 0x2416; CHECK-UNKNOWN-NEXT:    s_and_b32 s2, ttmp6, 1517; CHECK-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)18; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s219; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x020; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v1, s[0:1]21; CHECK-UNKNOWN-NEXT:    s_endpgm22;23; CHECK-MESA3D-LABEL: test_workgroup_id_x:24; CHECK-MESA3D:         .amd_kernel_code_t25; CHECK-MESA3D-NEXT:     amd_code_version_major = 126; CHECK-MESA3D-NEXT:     amd_code_version_minor = 227; CHECK-MESA3D-NEXT:     amd_machine_kind = 128; CHECK-MESA3D-NEXT:     amd_machine_version_major = 1229; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 530; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 031; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 25632; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 033; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 034; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 035; CHECK-MESA3D-NEXT:     priority = 036; CHECK-MESA3D-NEXT:     float_mode = 24037; CHECK-MESA3D-NEXT:     priv = 038; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 039; CHECK-MESA3D-NEXT:     debug_mode = 040; CHECK-MESA3D-NEXT:     enable_ieee_mode = 041; CHECK-MESA3D-NEXT:     enable_wgp_mode = 042; CHECK-MESA3D-NEXT:     enable_mem_ordered = 143; CHECK-MESA3D-NEXT:     enable_fwd_progress = 144; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 045; CHECK-MESA3D-NEXT:     user_sgpr_count = 846; CHECK-MESA3D-NEXT:     enable_trap_handler = 047; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 148; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 149; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 150; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 051; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 252; CHECK-MESA3D-NEXT:     enable_exception_msb = 053; CHECK-MESA3D-NEXT:     granulated_lds_size = 054; CHECK-MESA3D-NEXT:     enable_exception = 055; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 056; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 157; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 158; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 159; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 160; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 061; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 062; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 063; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 064; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 065; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 166; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 067; CHECK-MESA3D-NEXT:     private_element_size = 168; CHECK-MESA3D-NEXT:     is_ptr64 = 169; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 070; CHECK-MESA3D-NEXT:     is_debug_enabled = 071; CHECK-MESA3D-NEXT:     is_xnack_enabled = 172; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 073; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 074; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 075; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 2476; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 077; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 678; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 279; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 080; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 081; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 082; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 083; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 084; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 085; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 486; CHECK-MESA3D-NEXT:     group_segment_alignment = 487; CHECK-MESA3D-NEXT:     private_segment_alignment = 488; CHECK-MESA3D-NEXT:     wavefront_size = 589; CHECK-MESA3D-NEXT:     call_convention = -190; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 091; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t92; CHECK-MESA3D-NEXT:  ; %bb.0:93; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 194; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x095; CHECK-MESA3D-NEXT:    s_and_b32 s2, ttmp6, 1596; CHECK-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)97; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s298; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x099; CHECK-MESA3D-NEXT:    global_store_b32 v0, v1, s[0:1]100; CHECK-MESA3D-NEXT:    s_endpgm101;102; CHECK-G-UNKNOWN-LABEL: test_workgroup_id_x:103; CHECK-G-UNKNOWN:       ; %bb.0:104; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1105; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24106; CHECK-G-UNKNOWN-NEXT:    s_and_b32 s2, ttmp6, 15107; CHECK-G-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)108; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2109; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0110; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[0:1]111; CHECK-G-UNKNOWN-NEXT:    s_endpgm112;113; CHECK-G-MESA3D-LABEL: test_workgroup_id_x:114; CHECK-G-MESA3D:         .amd_kernel_code_t115; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1116; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2117; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1118; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12119; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5120; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0121; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256122; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0123; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0124; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0125; CHECK-G-MESA3D-NEXT:     priority = 0126; CHECK-G-MESA3D-NEXT:     float_mode = 240127; CHECK-G-MESA3D-NEXT:     priv = 0128; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0129; CHECK-G-MESA3D-NEXT:     debug_mode = 0130; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0131; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0132; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1133; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1134; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0135; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 8136; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0137; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1138; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1139; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1140; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0141; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 2142; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0143; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0144; CHECK-G-MESA3D-NEXT:     enable_exception = 0145; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0146; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1147; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1148; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1149; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1150; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0151; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0152; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0153; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0154; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0155; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1156; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0157; CHECK-G-MESA3D-NEXT:     private_element_size = 1158; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1159; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0160; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0161; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1162; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0163; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0164; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0165; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 24166; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0167; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 6168; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 2169; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0170; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0171; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0172; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0173; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0174; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0175; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4176; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4177; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4178; CHECK-G-MESA3D-NEXT:     wavefront_size = 5179; CHECK-G-MESA3D-NEXT:     call_convention = -1180; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0181; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t182; CHECK-G-MESA3D-NEXT:  ; %bb.0:183; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1184; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0185; CHECK-G-MESA3D-NEXT:    s_and_b32 s2, ttmp6, 15186; CHECK-G-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)187; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2188; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0189; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]190; CHECK-G-MESA3D-NEXT:    s_endpgm191  %id = call i32 @llvm.amdgcn.cluster.workgroup.id.x()192  store i32 %id, ptr addrspace(1) %out193  ret void194}195 196define amdgpu_kernel void @test_workgroup_id_x_optimized(ptr addrspace(1) %out) "amdgpu-cluster-dims"="1,2,2" {197; CHECK-UNKNOWN-LABEL: test_workgroup_id_x_optimized:198; CHECK-UNKNOWN:       ; %bb.0:199; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1200; CHECK-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24201; CHECK-UNKNOWN-NEXT:    v_mov_b32_e32 v0, 0202; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0203; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v0, s[0:1]204; CHECK-UNKNOWN-NEXT:    s_endpgm205;206; CHECK-MESA3D-LABEL: test_workgroup_id_x_optimized:207; CHECK-MESA3D:         .amd_kernel_code_t208; CHECK-MESA3D-NEXT:     amd_code_version_major = 1209; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2210; CHECK-MESA3D-NEXT:     amd_machine_kind = 1211; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12212; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5213; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0214; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256215; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0216; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0217; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0218; CHECK-MESA3D-NEXT:     priority = 0219; CHECK-MESA3D-NEXT:     float_mode = 240220; CHECK-MESA3D-NEXT:     priv = 0221; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0222; CHECK-MESA3D-NEXT:     debug_mode = 0223; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0224; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0225; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1226; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1227; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0228; CHECK-MESA3D-NEXT:     user_sgpr_count = 8229; CHECK-MESA3D-NEXT:     enable_trap_handler = 0230; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1231; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1232; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1233; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0234; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 2235; CHECK-MESA3D-NEXT:     enable_exception_msb = 0236; CHECK-MESA3D-NEXT:     granulated_lds_size = 0237; CHECK-MESA3D-NEXT:     enable_exception = 0238; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0239; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1240; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1241; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1242; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1243; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0244; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0245; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0246; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0247; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0248; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1249; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0250; CHECK-MESA3D-NEXT:     private_element_size = 1251; CHECK-MESA3D-NEXT:     is_ptr64 = 1252; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0253; CHECK-MESA3D-NEXT:     is_debug_enabled = 0254; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1255; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0256; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0257; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0258; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 24259; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0260; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 6261; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 1262; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0263; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0264; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0265; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0266; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0267; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0268; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4269; CHECK-MESA3D-NEXT:     group_segment_alignment = 4270; CHECK-MESA3D-NEXT:     private_segment_alignment = 4271; CHECK-MESA3D-NEXT:     wavefront_size = 5272; CHECK-MESA3D-NEXT:     call_convention = -1273; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0274; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t275; CHECK-MESA3D-NEXT:  ; %bb.0:276; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1277; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0278; CHECK-MESA3D-NEXT:    v_mov_b32_e32 v0, 0279; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x0280; CHECK-MESA3D-NEXT:    global_store_b32 v0, v0, s[0:1]281; CHECK-MESA3D-NEXT:    s_endpgm282;283; CHECK-G-UNKNOWN-LABEL: test_workgroup_id_x_optimized:284; CHECK-G-UNKNOWN:       ; %bb.0:285; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1286; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24287; CHECK-G-UNKNOWN-NEXT:    v_mov_b32_e32 v0, 0288; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0289; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v0, v0, s[0:1]290; CHECK-G-UNKNOWN-NEXT:    s_endpgm291;292; CHECK-G-MESA3D-LABEL: test_workgroup_id_x_optimized:293; CHECK-G-MESA3D:         .amd_kernel_code_t294; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1295; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2296; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1297; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12298; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5299; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0300; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256301; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0302; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0303; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0304; CHECK-G-MESA3D-NEXT:     priority = 0305; CHECK-G-MESA3D-NEXT:     float_mode = 240306; CHECK-G-MESA3D-NEXT:     priv = 0307; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0308; CHECK-G-MESA3D-NEXT:     debug_mode = 0309; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0310; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0311; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1312; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1313; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0314; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 8315; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0316; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1317; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1318; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1319; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0320; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 2321; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0322; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0323; CHECK-G-MESA3D-NEXT:     enable_exception = 0324; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0325; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1326; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1327; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1328; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1329; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0330; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0331; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0332; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0333; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0334; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1335; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0336; CHECK-G-MESA3D-NEXT:     private_element_size = 1337; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1338; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0339; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0340; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1341; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0342; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0343; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0344; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 24345; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0346; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 6347; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 1348; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0349; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0350; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0351; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0352; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0353; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0354; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4355; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4356; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4357; CHECK-G-MESA3D-NEXT:     wavefront_size = 5358; CHECK-G-MESA3D-NEXT:     call_convention = -1359; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0360; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t361; CHECK-G-MESA3D-NEXT:  ; %bb.0:362; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1363; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0364; CHECK-G-MESA3D-NEXT:    v_mov_b32_e32 v0, 0365; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0366; CHECK-G-MESA3D-NEXT:    global_store_b32 v0, v0, s[0:1]367; CHECK-G-MESA3D-NEXT:    s_endpgm368  %id = call i32 @llvm.amdgcn.cluster.workgroup.id.x()369  store i32 %id, ptr addrspace(1) %out370  ret void371}372 373define amdgpu_kernel void @test_workgroup_id_y(ptr addrspace(1) %out) #1 {374; CHECK-UNKNOWN-LABEL: test_workgroup_id_y:375; CHECK-UNKNOWN:       ; %bb.0:376; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1377; CHECK-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24378; CHECK-UNKNOWN-NEXT:    s_bfe_u32 s2, ttmp6, 0x40004379; CHECK-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)380; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2381; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0382; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v1, s[0:1]383; CHECK-UNKNOWN-NEXT:    s_endpgm384;385; CHECK-MESA3D-LABEL: test_workgroup_id_y:386; CHECK-MESA3D:         .amd_kernel_code_t387; CHECK-MESA3D-NEXT:     amd_code_version_major = 1388; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2389; CHECK-MESA3D-NEXT:     amd_machine_kind = 1390; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12391; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5392; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0393; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256394; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0395; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0396; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0397; CHECK-MESA3D-NEXT:     priority = 0398; CHECK-MESA3D-NEXT:     float_mode = 240399; CHECK-MESA3D-NEXT:     priv = 0400; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0401; CHECK-MESA3D-NEXT:     debug_mode = 0402; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0403; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0404; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1405; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1406; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0407; CHECK-MESA3D-NEXT:     user_sgpr_count = 8408; CHECK-MESA3D-NEXT:     enable_trap_handler = 0409; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1410; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1411; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1412; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0413; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 2414; CHECK-MESA3D-NEXT:     enable_exception_msb = 0415; CHECK-MESA3D-NEXT:     granulated_lds_size = 0416; CHECK-MESA3D-NEXT:     enable_exception = 0417; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0418; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1419; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1420; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1421; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1422; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0423; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0424; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0425; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0426; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0427; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1428; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0429; CHECK-MESA3D-NEXT:     private_element_size = 1430; CHECK-MESA3D-NEXT:     is_ptr64 = 1431; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0432; CHECK-MESA3D-NEXT:     is_debug_enabled = 0433; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1434; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0435; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0436; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0437; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 24438; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0439; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 6440; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 2441; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0442; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0443; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0444; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0445; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0446; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0447; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4448; CHECK-MESA3D-NEXT:     group_segment_alignment = 4449; CHECK-MESA3D-NEXT:     private_segment_alignment = 4450; CHECK-MESA3D-NEXT:     wavefront_size = 5451; CHECK-MESA3D-NEXT:     call_convention = -1452; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0453; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t454; CHECK-MESA3D-NEXT:  ; %bb.0:455; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1456; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0457; CHECK-MESA3D-NEXT:    s_bfe_u32 s2, ttmp6, 0x40004458; CHECK-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)459; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2460; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x0461; CHECK-MESA3D-NEXT:    global_store_b32 v0, v1, s[0:1]462; CHECK-MESA3D-NEXT:    s_endpgm463;464; CHECK-G-UNKNOWN-LABEL: test_workgroup_id_y:465; CHECK-G-UNKNOWN:       ; %bb.0:466; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1467; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24468; CHECK-G-UNKNOWN-NEXT:    s_bfe_u32 s2, ttmp6, 0x40004469; CHECK-G-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)470; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2471; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0472; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[0:1]473; CHECK-G-UNKNOWN-NEXT:    s_endpgm474;475; CHECK-G-MESA3D-LABEL: test_workgroup_id_y:476; CHECK-G-MESA3D:         .amd_kernel_code_t477; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1478; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2479; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1480; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12481; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5482; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0483; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256484; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0485; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0486; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0487; CHECK-G-MESA3D-NEXT:     priority = 0488; CHECK-G-MESA3D-NEXT:     float_mode = 240489; CHECK-G-MESA3D-NEXT:     priv = 0490; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0491; CHECK-G-MESA3D-NEXT:     debug_mode = 0492; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0493; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0494; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1495; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1496; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0497; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 8498; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0499; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1500; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1501; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1502; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0503; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 2504; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0505; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0506; CHECK-G-MESA3D-NEXT:     enable_exception = 0507; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0508; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1509; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1510; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1511; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1512; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0513; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0514; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0515; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0516; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0517; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1518; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0519; CHECK-G-MESA3D-NEXT:     private_element_size = 1520; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1521; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0522; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0523; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1524; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0525; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0526; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0527; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 24528; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0529; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 6530; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 2531; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0532; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0533; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0534; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0535; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0536; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0537; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4538; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4539; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4540; CHECK-G-MESA3D-NEXT:     wavefront_size = 5541; CHECK-G-MESA3D-NEXT:     call_convention = -1542; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0543; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t544; CHECK-G-MESA3D-NEXT:  ; %bb.0:545; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1546; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0547; CHECK-G-MESA3D-NEXT:    s_bfe_u32 s2, ttmp6, 0x40004548; CHECK-G-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)549; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2550; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0551; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]552; CHECK-G-MESA3D-NEXT:    s_endpgm553  %id = call i32 @llvm.amdgcn.cluster.workgroup.id.y()554  store i32 %id, ptr addrspace(1) %out555  ret void556}557 558define amdgpu_kernel void @test_workgroup_id_y_optimized(ptr addrspace(1) %out) "amdgpu-cluster-dims"="2,1,2" {559; CHECK-UNKNOWN-LABEL: test_workgroup_id_y_optimized:560; CHECK-UNKNOWN:       ; %bb.0:561; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1562; CHECK-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24563; CHECK-UNKNOWN-NEXT:    v_mov_b32_e32 v0, 0564; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0565; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v0, s[0:1]566; CHECK-UNKNOWN-NEXT:    s_endpgm567;568; CHECK-MESA3D-LABEL: test_workgroup_id_y_optimized:569; CHECK-MESA3D:         .amd_kernel_code_t570; CHECK-MESA3D-NEXT:     amd_code_version_major = 1571; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2572; CHECK-MESA3D-NEXT:     amd_machine_kind = 1573; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12574; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5575; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0576; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256577; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0578; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0579; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0580; CHECK-MESA3D-NEXT:     priority = 0581; CHECK-MESA3D-NEXT:     float_mode = 240582; CHECK-MESA3D-NEXT:     priv = 0583; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0584; CHECK-MESA3D-NEXT:     debug_mode = 0585; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0586; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0587; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1588; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1589; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0590; CHECK-MESA3D-NEXT:     user_sgpr_count = 8591; CHECK-MESA3D-NEXT:     enable_trap_handler = 0592; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1593; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1594; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1595; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0596; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 2597; CHECK-MESA3D-NEXT:     enable_exception_msb = 0598; CHECK-MESA3D-NEXT:     granulated_lds_size = 0599; CHECK-MESA3D-NEXT:     enable_exception = 0600; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0601; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1602; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1603; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1604; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1605; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0606; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0607; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0608; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0609; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0610; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1611; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0612; CHECK-MESA3D-NEXT:     private_element_size = 1613; CHECK-MESA3D-NEXT:     is_ptr64 = 1614; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0615; CHECK-MESA3D-NEXT:     is_debug_enabled = 0616; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1617; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0618; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0619; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0620; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 24621; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0622; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 6623; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 1624; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0625; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0626; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0627; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0628; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0629; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0630; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4631; CHECK-MESA3D-NEXT:     group_segment_alignment = 4632; CHECK-MESA3D-NEXT:     private_segment_alignment = 4633; CHECK-MESA3D-NEXT:     wavefront_size = 5634; CHECK-MESA3D-NEXT:     call_convention = -1635; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0636; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t637; CHECK-MESA3D-NEXT:  ; %bb.0:638; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1639; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0640; CHECK-MESA3D-NEXT:    v_mov_b32_e32 v0, 0641; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x0642; CHECK-MESA3D-NEXT:    global_store_b32 v0, v0, s[0:1]643; CHECK-MESA3D-NEXT:    s_endpgm644;645; CHECK-G-UNKNOWN-LABEL: test_workgroup_id_y_optimized:646; CHECK-G-UNKNOWN:       ; %bb.0:647; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1648; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24649; CHECK-G-UNKNOWN-NEXT:    v_mov_b32_e32 v0, 0650; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0651; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v0, v0, s[0:1]652; CHECK-G-UNKNOWN-NEXT:    s_endpgm653;654; CHECK-G-MESA3D-LABEL: test_workgroup_id_y_optimized:655; CHECK-G-MESA3D:         .amd_kernel_code_t656; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1657; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2658; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1659; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12660; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5661; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0662; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256663; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0664; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0665; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0666; CHECK-G-MESA3D-NEXT:     priority = 0667; CHECK-G-MESA3D-NEXT:     float_mode = 240668; CHECK-G-MESA3D-NEXT:     priv = 0669; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0670; CHECK-G-MESA3D-NEXT:     debug_mode = 0671; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0672; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0673; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1674; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1675; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0676; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 8677; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0678; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1679; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1680; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1681; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0682; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 2683; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0684; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0685; CHECK-G-MESA3D-NEXT:     enable_exception = 0686; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0687; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1688; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1689; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1690; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1691; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0692; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0693; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0694; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0695; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0696; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1697; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0698; CHECK-G-MESA3D-NEXT:     private_element_size = 1699; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1700; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0701; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0702; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1703; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0704; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0705; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0706; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 24707; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0708; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 6709; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 1710; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0711; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0712; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0713; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0714; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0715; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0716; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4717; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4718; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4719; CHECK-G-MESA3D-NEXT:     wavefront_size = 5720; CHECK-G-MESA3D-NEXT:     call_convention = -1721; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0722; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t723; CHECK-G-MESA3D-NEXT:  ; %bb.0:724; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1725; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0726; CHECK-G-MESA3D-NEXT:    v_mov_b32_e32 v0, 0727; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0728; CHECK-G-MESA3D-NEXT:    global_store_b32 v0, v0, s[0:1]729; CHECK-G-MESA3D-NEXT:    s_endpgm730  %id = call i32 @llvm.amdgcn.cluster.workgroup.id.y()731  store i32 %id, ptr addrspace(1) %out732  ret void733}734 735define amdgpu_kernel void @test_workgroup_id_z(ptr addrspace(1) %out) #1 {736; CHECK-UNKNOWN-LABEL: test_workgroup_id_z:737; CHECK-UNKNOWN:       ; %bb.0:738; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1739; CHECK-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24740; CHECK-UNKNOWN-NEXT:    s_bfe_u32 s2, ttmp6, 0x40008741; CHECK-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)742; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2743; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0744; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v1, s[0:1]745; CHECK-UNKNOWN-NEXT:    s_endpgm746;747; CHECK-MESA3D-LABEL: test_workgroup_id_z:748; CHECK-MESA3D:         .amd_kernel_code_t749; CHECK-MESA3D-NEXT:     amd_code_version_major = 1750; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2751; CHECK-MESA3D-NEXT:     amd_machine_kind = 1752; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12753; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5754; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0755; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256756; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0757; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0758; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0759; CHECK-MESA3D-NEXT:     priority = 0760; CHECK-MESA3D-NEXT:     float_mode = 240761; CHECK-MESA3D-NEXT:     priv = 0762; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0763; CHECK-MESA3D-NEXT:     debug_mode = 0764; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0765; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0766; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1767; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1768; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0769; CHECK-MESA3D-NEXT:     user_sgpr_count = 8770; CHECK-MESA3D-NEXT:     enable_trap_handler = 0771; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1772; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1773; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1774; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0775; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 2776; CHECK-MESA3D-NEXT:     enable_exception_msb = 0777; CHECK-MESA3D-NEXT:     granulated_lds_size = 0778; CHECK-MESA3D-NEXT:     enable_exception = 0779; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0780; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1781; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1782; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1783; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1784; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0785; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0786; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0787; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0788; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0789; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1790; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0791; CHECK-MESA3D-NEXT:     private_element_size = 1792; CHECK-MESA3D-NEXT:     is_ptr64 = 1793; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0794; CHECK-MESA3D-NEXT:     is_debug_enabled = 0795; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1796; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0797; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0798; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0799; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 24800; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0801; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 6802; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 2803; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0804; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0805; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0806; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0807; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0808; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0809; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4810; CHECK-MESA3D-NEXT:     group_segment_alignment = 4811; CHECK-MESA3D-NEXT:     private_segment_alignment = 4812; CHECK-MESA3D-NEXT:     wavefront_size = 5813; CHECK-MESA3D-NEXT:     call_convention = -1814; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0815; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t816; CHECK-MESA3D-NEXT:  ; %bb.0:817; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1818; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0819; CHECK-MESA3D-NEXT:    s_bfe_u32 s2, ttmp6, 0x40008820; CHECK-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)821; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2822; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x0823; CHECK-MESA3D-NEXT:    global_store_b32 v0, v1, s[0:1]824; CHECK-MESA3D-NEXT:    s_endpgm825;826; CHECK-G-UNKNOWN-LABEL: test_workgroup_id_z:827; CHECK-G-UNKNOWN:       ; %bb.0:828; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1829; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24830; CHECK-G-UNKNOWN-NEXT:    s_bfe_u32 s2, ttmp6, 0x40008831; CHECK-G-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)832; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2833; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x0834; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[0:1]835; CHECK-G-UNKNOWN-NEXT:    s_endpgm836;837; CHECK-G-MESA3D-LABEL: test_workgroup_id_z:838; CHECK-G-MESA3D:         .amd_kernel_code_t839; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 1840; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 2841; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 1842; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 12843; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 5844; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 0845; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256846; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0847; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0848; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0849; CHECK-G-MESA3D-NEXT:     priority = 0850; CHECK-G-MESA3D-NEXT:     float_mode = 240851; CHECK-G-MESA3D-NEXT:     priv = 0852; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 0853; CHECK-G-MESA3D-NEXT:     debug_mode = 0854; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 0855; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 0856; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 1857; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 1858; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0859; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 8860; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 0861; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1862; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1863; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1864; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0865; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 2866; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 0867; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 0868; CHECK-G-MESA3D-NEXT:     enable_exception = 0869; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0870; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1871; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1872; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1873; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1874; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0875; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0876; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0877; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0878; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0879; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 1880; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 0881; CHECK-G-MESA3D-NEXT:     private_element_size = 1882; CHECK-G-MESA3D-NEXT:     is_ptr64 = 1883; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 0884; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 0885; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 1886; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 0887; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0888; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 0889; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 24890; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 0891; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 6892; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 2893; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 0894; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 0895; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 0896; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 0897; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0898; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0899; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 4900; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 4901; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 4902; CHECK-G-MESA3D-NEXT:     wavefront_size = 5903; CHECK-G-MESA3D-NEXT:     call_convention = -1904; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 0905; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t906; CHECK-G-MESA3D-NEXT:  ; %bb.0:907; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1908; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x0909; CHECK-G-MESA3D-NEXT:    s_bfe_u32 s2, ttmp6, 0x40008910; CHECK-G-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)911; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s2912; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x0913; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]914; CHECK-G-MESA3D-NEXT:    s_endpgm915  %id = call i32 @llvm.amdgcn.cluster.workgroup.id.z()916  store i32 %id, ptr addrspace(1) %out917  ret void918}919 920define amdgpu_kernel void @test_workgroup_flat_id(ptr addrspace(1) %out) {921; CHECK-UNKNOWN-LABEL: test_workgroup_flat_id:922; CHECK-UNKNOWN:       ; %bb.0:923; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1924; CHECK-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24925; CHECK-UNKNOWN-NEXT:    s_getreg_b32 s2, hwreg(HW_REG_IB_STS2, 21, 4)926; CHECK-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)927; CHECK-UNKNOWN-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2928; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x0929; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v1, s[0:1]930; CHECK-UNKNOWN-NEXT:    s_endpgm931;932; CHECK-MESA3D-LABEL: test_workgroup_flat_id:933; CHECK-MESA3D:         .amd_kernel_code_t934; CHECK-MESA3D-NEXT:     amd_code_version_major = 1935; CHECK-MESA3D-NEXT:     amd_code_version_minor = 2936; CHECK-MESA3D-NEXT:     amd_machine_kind = 1937; CHECK-MESA3D-NEXT:     amd_machine_version_major = 12938; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 5939; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 0940; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 256941; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 0942; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 0943; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 0944; CHECK-MESA3D-NEXT:     priority = 0945; CHECK-MESA3D-NEXT:     float_mode = 240946; CHECK-MESA3D-NEXT:     priv = 0947; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 0948; CHECK-MESA3D-NEXT:     debug_mode = 0949; CHECK-MESA3D-NEXT:     enable_ieee_mode = 0950; CHECK-MESA3D-NEXT:     enable_wgp_mode = 0951; CHECK-MESA3D-NEXT:     enable_mem_ordered = 1952; CHECK-MESA3D-NEXT:     enable_fwd_progress = 1953; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 0954; CHECK-MESA3D-NEXT:     user_sgpr_count = 8955; CHECK-MESA3D-NEXT:     enable_trap_handler = 0956; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 1957; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 1958; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 1959; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 0960; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 2961; CHECK-MESA3D-NEXT:     enable_exception_msb = 0962; CHECK-MESA3D-NEXT:     granulated_lds_size = 0963; CHECK-MESA3D-NEXT:     enable_exception = 0964; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 0965; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 1966; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 1967; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 1968; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 1969; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 0970; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 0971; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 0972; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 0973; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 0974; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 1975; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 0976; CHECK-MESA3D-NEXT:     private_element_size = 1977; CHECK-MESA3D-NEXT:     is_ptr64 = 1978; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 0979; CHECK-MESA3D-NEXT:     is_debug_enabled = 0980; CHECK-MESA3D-NEXT:     is_xnack_enabled = 1981; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 0982; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 0983; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 0984; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 24985; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 0986; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 6987; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 2988; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 0989; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 0990; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 0991; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 0992; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 0993; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 0994; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 4995; CHECK-MESA3D-NEXT:     group_segment_alignment = 4996; CHECK-MESA3D-NEXT:     private_segment_alignment = 4997; CHECK-MESA3D-NEXT:     wavefront_size = 5998; CHECK-MESA3D-NEXT:     call_convention = -1999; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 01000; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t1001; CHECK-MESA3D-NEXT:  ; %bb.0:1002; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11003; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x01004; CHECK-MESA3D-NEXT:    s_getreg_b32 s2, hwreg(HW_REG_IB_STS2, 21, 4)1005; CHECK-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1006; CHECK-MESA3D-NEXT:    v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s21007; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x01008; CHECK-MESA3D-NEXT:    global_store_b32 v0, v1, s[0:1]1009; CHECK-MESA3D-NEXT:    s_endpgm1010;1011; CHECK-G-UNKNOWN-LABEL: test_workgroup_flat_id:1012; CHECK-G-UNKNOWN:       ; %bb.0:1013; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11014; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241015; CHECK-G-UNKNOWN-NEXT:    s_getreg_b32 s2, hwreg(HW_REG_IB_STS2, 21, 4)1016; CHECK-G-UNKNOWN-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1017; CHECK-G-UNKNOWN-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s21018; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x01019; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v1, v0, s[0:1]1020; CHECK-G-UNKNOWN-NEXT:    s_endpgm1021;1022; CHECK-G-MESA3D-LABEL: test_workgroup_flat_id:1023; CHECK-G-MESA3D:         .amd_kernel_code_t1024; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 11025; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 21026; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 11027; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 121028; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 51029; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 01030; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 2561031; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 01032; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 01033; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 01034; CHECK-G-MESA3D-NEXT:     priority = 01035; CHECK-G-MESA3D-NEXT:     float_mode = 2401036; CHECK-G-MESA3D-NEXT:     priv = 01037; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 01038; CHECK-G-MESA3D-NEXT:     debug_mode = 01039; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 01040; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 01041; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 11042; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 11043; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 01044; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 81045; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 01046; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 11047; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 11048; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 11049; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 01050; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 21051; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 01052; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 01053; CHECK-G-MESA3D-NEXT:     enable_exception = 01054; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 01055; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 11056; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 11057; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 11058; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 11059; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 01060; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 01061; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 01062; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 01063; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 01064; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 11065; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 01066; CHECK-G-MESA3D-NEXT:     private_element_size = 11067; CHECK-G-MESA3D-NEXT:     is_ptr64 = 11068; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 01069; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 01070; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 11071; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 01072; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 01073; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 01074; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 241075; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 01076; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 61077; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 21078; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 01079; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 01080; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 01081; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 01082; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 01083; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 01084; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 41085; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 41086; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 41087; CHECK-G-MESA3D-NEXT:     wavefront_size = 51088; CHECK-G-MESA3D-NEXT:     call_convention = -11089; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 01090; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t1091; CHECK-G-MESA3D-NEXT:  ; %bb.0:1092; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11093; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x01094; CHECK-G-MESA3D-NEXT:    s_getreg_b32 s2, hwreg(HW_REG_IB_STS2, 21, 4)1095; CHECK-G-MESA3D-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)1096; CHECK-G-MESA3D-NEXT:    v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s21097; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x01098; CHECK-G-MESA3D-NEXT:    global_store_b32 v1, v0, s[0:1]1099; CHECK-G-MESA3D-NEXT:    s_endpgm1100  %id = call i32 @llvm.amdgcn.cluster.workgroup.flat.id()1101  store i32 %id, ptr addrspace(1) %out1102  ret void1103}1104 1105define amdgpu_kernel void @test_workgroup_id_z_optimized(ptr addrspace(1) %out) "amdgpu-cluster-dims"="2,2,1" {1106; CHECK-UNKNOWN-LABEL: test_workgroup_id_z_optimized:1107; CHECK-UNKNOWN:       ; %bb.0:1108; CHECK-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11109; CHECK-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241110; CHECK-UNKNOWN-NEXT:    v_mov_b32_e32 v0, 01111; CHECK-UNKNOWN-NEXT:    s_wait_kmcnt 0x01112; CHECK-UNKNOWN-NEXT:    global_store_b32 v0, v0, s[0:1]1113; CHECK-UNKNOWN-NEXT:    s_endpgm1114;1115; CHECK-MESA3D-LABEL: test_workgroup_id_z_optimized:1116; CHECK-MESA3D:         .amd_kernel_code_t1117; CHECK-MESA3D-NEXT:     amd_code_version_major = 11118; CHECK-MESA3D-NEXT:     amd_code_version_minor = 21119; CHECK-MESA3D-NEXT:     amd_machine_kind = 11120; CHECK-MESA3D-NEXT:     amd_machine_version_major = 121121; CHECK-MESA3D-NEXT:     amd_machine_version_minor = 51122; CHECK-MESA3D-NEXT:     amd_machine_version_stepping = 01123; CHECK-MESA3D-NEXT:     kernel_code_entry_byte_offset = 2561124; CHECK-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 01125; CHECK-MESA3D-NEXT:     granulated_workitem_vgpr_count = 01126; CHECK-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 01127; CHECK-MESA3D-NEXT:     priority = 01128; CHECK-MESA3D-NEXT:     float_mode = 2401129; CHECK-MESA3D-NEXT:     priv = 01130; CHECK-MESA3D-NEXT:     enable_dx10_clamp = 01131; CHECK-MESA3D-NEXT:     debug_mode = 01132; CHECK-MESA3D-NEXT:     enable_ieee_mode = 01133; CHECK-MESA3D-NEXT:     enable_wgp_mode = 01134; CHECK-MESA3D-NEXT:     enable_mem_ordered = 11135; CHECK-MESA3D-NEXT:     enable_fwd_progress = 11136; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 01137; CHECK-MESA3D-NEXT:     user_sgpr_count = 81138; CHECK-MESA3D-NEXT:     enable_trap_handler = 01139; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 11140; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 11141; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 11142; CHECK-MESA3D-NEXT:     enable_sgpr_workgroup_info = 01143; CHECK-MESA3D-NEXT:     enable_vgpr_workitem_id = 21144; CHECK-MESA3D-NEXT:     enable_exception_msb = 01145; CHECK-MESA3D-NEXT:     granulated_lds_size = 01146; CHECK-MESA3D-NEXT:     enable_exception = 01147; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 01148; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 11149; CHECK-MESA3D-NEXT:     enable_sgpr_queue_ptr = 11150; CHECK-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 11151; CHECK-MESA3D-NEXT:     enable_sgpr_dispatch_id = 11152; CHECK-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 01153; CHECK-MESA3D-NEXT:     enable_sgpr_private_segment_size = 01154; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 01155; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 01156; CHECK-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 01157; CHECK-MESA3D-NEXT:     enable_wavefront_size32 = 11158; CHECK-MESA3D-NEXT:     enable_ordered_append_gds = 01159; CHECK-MESA3D-NEXT:     private_element_size = 11160; CHECK-MESA3D-NEXT:     is_ptr64 = 11161; CHECK-MESA3D-NEXT:     is_dynamic_callstack = 01162; CHECK-MESA3D-NEXT:     is_debug_enabled = 01163; CHECK-MESA3D-NEXT:     is_xnack_enabled = 11164; CHECK-MESA3D-NEXT:     workitem_private_segment_byte_size = 01165; CHECK-MESA3D-NEXT:     workgroup_group_segment_byte_size = 01166; CHECK-MESA3D-NEXT:     gds_segment_byte_size = 01167; CHECK-MESA3D-NEXT:     kernarg_segment_byte_size = 241168; CHECK-MESA3D-NEXT:     workgroup_fbarrier_count = 01169; CHECK-MESA3D-NEXT:     wavefront_sgpr_count = 61170; CHECK-MESA3D-NEXT:     workitem_vgpr_count = 11171; CHECK-MESA3D-NEXT:     reserved_vgpr_first = 01172; CHECK-MESA3D-NEXT:     reserved_vgpr_count = 01173; CHECK-MESA3D-NEXT:     reserved_sgpr_first = 01174; CHECK-MESA3D-NEXT:     reserved_sgpr_count = 01175; CHECK-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 01176; CHECK-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 01177; CHECK-MESA3D-NEXT:     kernarg_segment_alignment = 41178; CHECK-MESA3D-NEXT:     group_segment_alignment = 41179; CHECK-MESA3D-NEXT:     private_segment_alignment = 41180; CHECK-MESA3D-NEXT:     wavefront_size = 51181; CHECK-MESA3D-NEXT:     call_convention = -11182; CHECK-MESA3D-NEXT:     runtime_loader_kernel_symbol = 01183; CHECK-MESA3D-NEXT:    .end_amd_kernel_code_t1184; CHECK-MESA3D-NEXT:  ; %bb.0:1185; CHECK-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11186; CHECK-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x01187; CHECK-MESA3D-NEXT:    v_mov_b32_e32 v0, 01188; CHECK-MESA3D-NEXT:    s_wait_kmcnt 0x01189; CHECK-MESA3D-NEXT:    global_store_b32 v0, v0, s[0:1]1190; CHECK-MESA3D-NEXT:    s_endpgm1191;1192; CHECK-G-UNKNOWN-LABEL: test_workgroup_id_z_optimized:1193; CHECK-G-UNKNOWN:       ; %bb.0:1194; CHECK-G-UNKNOWN-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11195; CHECK-G-UNKNOWN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x241196; CHECK-G-UNKNOWN-NEXT:    v_mov_b32_e32 v0, 01197; CHECK-G-UNKNOWN-NEXT:    s_wait_kmcnt 0x01198; CHECK-G-UNKNOWN-NEXT:    global_store_b32 v0, v0, s[0:1]1199; CHECK-G-UNKNOWN-NEXT:    s_endpgm1200;1201; CHECK-G-MESA3D-LABEL: test_workgroup_id_z_optimized:1202; CHECK-G-MESA3D:         .amd_kernel_code_t1203; CHECK-G-MESA3D-NEXT:     amd_code_version_major = 11204; CHECK-G-MESA3D-NEXT:     amd_code_version_minor = 21205; CHECK-G-MESA3D-NEXT:     amd_machine_kind = 11206; CHECK-G-MESA3D-NEXT:     amd_machine_version_major = 121207; CHECK-G-MESA3D-NEXT:     amd_machine_version_minor = 51208; CHECK-G-MESA3D-NEXT:     amd_machine_version_stepping = 01209; CHECK-G-MESA3D-NEXT:     kernel_code_entry_byte_offset = 2561210; CHECK-G-MESA3D-NEXT:     kernel_code_prefetch_byte_size = 01211; CHECK-G-MESA3D-NEXT:     granulated_workitem_vgpr_count = 01212; CHECK-G-MESA3D-NEXT:     granulated_wavefront_sgpr_count = 01213; CHECK-G-MESA3D-NEXT:     priority = 01214; CHECK-G-MESA3D-NEXT:     float_mode = 2401215; CHECK-G-MESA3D-NEXT:     priv = 01216; CHECK-G-MESA3D-NEXT:     enable_dx10_clamp = 01217; CHECK-G-MESA3D-NEXT:     debug_mode = 01218; CHECK-G-MESA3D-NEXT:     enable_ieee_mode = 01219; CHECK-G-MESA3D-NEXT:     enable_wgp_mode = 01220; CHECK-G-MESA3D-NEXT:     enable_mem_ordered = 11221; CHECK-G-MESA3D-NEXT:     enable_fwd_progress = 11222; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_wave_byte_offset = 01223; CHECK-G-MESA3D-NEXT:     user_sgpr_count = 81224; CHECK-G-MESA3D-NEXT:     enable_trap_handler = 01225; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_x = 11226; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_y = 11227; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_id_z = 11228; CHECK-G-MESA3D-NEXT:     enable_sgpr_workgroup_info = 01229; CHECK-G-MESA3D-NEXT:     enable_vgpr_workitem_id = 21230; CHECK-G-MESA3D-NEXT:     enable_exception_msb = 01231; CHECK-G-MESA3D-NEXT:     granulated_lds_size = 01232; CHECK-G-MESA3D-NEXT:     enable_exception = 01233; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_buffer = 01234; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_ptr = 11235; CHECK-G-MESA3D-NEXT:     enable_sgpr_queue_ptr = 11236; CHECK-G-MESA3D-NEXT:     enable_sgpr_kernarg_segment_ptr = 11237; CHECK-G-MESA3D-NEXT:     enable_sgpr_dispatch_id = 11238; CHECK-G-MESA3D-NEXT:     enable_sgpr_flat_scratch_init = 01239; CHECK-G-MESA3D-NEXT:     enable_sgpr_private_segment_size = 01240; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_x = 01241; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_y = 01242; CHECK-G-MESA3D-NEXT:     enable_sgpr_grid_workgroup_count_z = 01243; CHECK-G-MESA3D-NEXT:     enable_wavefront_size32 = 11244; CHECK-G-MESA3D-NEXT:     enable_ordered_append_gds = 01245; CHECK-G-MESA3D-NEXT:     private_element_size = 11246; CHECK-G-MESA3D-NEXT:     is_ptr64 = 11247; CHECK-G-MESA3D-NEXT:     is_dynamic_callstack = 01248; CHECK-G-MESA3D-NEXT:     is_debug_enabled = 01249; CHECK-G-MESA3D-NEXT:     is_xnack_enabled = 11250; CHECK-G-MESA3D-NEXT:     workitem_private_segment_byte_size = 01251; CHECK-G-MESA3D-NEXT:     workgroup_group_segment_byte_size = 01252; CHECK-G-MESA3D-NEXT:     gds_segment_byte_size = 01253; CHECK-G-MESA3D-NEXT:     kernarg_segment_byte_size = 241254; CHECK-G-MESA3D-NEXT:     workgroup_fbarrier_count = 01255; CHECK-G-MESA3D-NEXT:     wavefront_sgpr_count = 61256; CHECK-G-MESA3D-NEXT:     workitem_vgpr_count = 11257; CHECK-G-MESA3D-NEXT:     reserved_vgpr_first = 01258; CHECK-G-MESA3D-NEXT:     reserved_vgpr_count = 01259; CHECK-G-MESA3D-NEXT:     reserved_sgpr_first = 01260; CHECK-G-MESA3D-NEXT:     reserved_sgpr_count = 01261; CHECK-G-MESA3D-NEXT:     debug_wavefront_private_segment_offset_sgpr = 01262; CHECK-G-MESA3D-NEXT:     debug_private_segment_buffer_sgpr = 01263; CHECK-G-MESA3D-NEXT:     kernarg_segment_alignment = 41264; CHECK-G-MESA3D-NEXT:     group_segment_alignment = 41265; CHECK-G-MESA3D-NEXT:     private_segment_alignment = 41266; CHECK-G-MESA3D-NEXT:     wavefront_size = 51267; CHECK-G-MESA3D-NEXT:     call_convention = -11268; CHECK-G-MESA3D-NEXT:     runtime_loader_kernel_symbol = 01269; CHECK-G-MESA3D-NEXT:    .end_amd_kernel_code_t1270; CHECK-G-MESA3D-NEXT:  ; %bb.0:1271; CHECK-G-MESA3D-NEXT:    s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 11272; CHECK-G-MESA3D-NEXT:    s_load_b64 s[0:1], s[4:5], 0x01273; CHECK-G-MESA3D-NEXT:    v_mov_b32_e32 v0, 01274; CHECK-G-MESA3D-NEXT:    s_wait_kmcnt 0x01275; CHECK-G-MESA3D-NEXT:    global_store_b32 v0, v0, s[0:1]1276; CHECK-G-MESA3D-NEXT:    s_endpgm1277  %id = call i32 @llvm.amdgcn.cluster.workgroup.id.z()1278  store i32 %id, ptr addrspace(1) %out1279  ret void1280}1281 1282attributes #0 = { nounwind readnone }1283attributes #1 = { nounwind }1284 1285!llvm.module.flags = !{!0}1286!0 = !{i32 1, !"amdgpu_code_object_version", i32 400}1287