brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.7 KiB · dcc3e0d Raw
340 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -misched-cluster=0 < %s | FileCheck -check-prefix=GCN %s3; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -misched-cluster=0 -amdgpu-igrouplp-exact-solver-max-branches=250000 < %s | FileCheck -check-prefix=EXACTCUTOFF %s4 5declare <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16..i16(<8 x half>, <16 x half>, <8 x half>, i16)6 7define amdgpu_kernel void @test_sched_group_barrier_pipeline_SWMMAC_cluster(ptr addrspace(3) noalias %in, ptr addrspace(3) noalias %out) #0 {8; GCN-LABEL: test_sched_group_barrier_pipeline_SWMMAC_cluster:9; GCN:       ; %bb.0: ; %entry10; GCN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x2411; GCN-NEXT:    v_lshlrev_b32_e32 v0, 4, v012; GCN-NEXT:    v_mov_b32_e32 v48, 013; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_1)14; GCN-NEXT:    v_and_b32_e32 v28, 0x3ff0, v015; GCN-NEXT:    s_wait_kmcnt 0x016; GCN-NEXT:    v_add_nc_u32_e32 v0, s0, v2817; GCN-NEXT:    v_dual_mov_b32 v50, s1 :: v_dual_add_nc_u32 v49, s1, v2818; GCN-NEXT:    ds_load_b128 v[8:11], v019; GCN-NEXT:    ds_load_b128 v[12:15], v0 offset:51220; GCN-NEXT:    ds_load_b128 v[16:19], v0 offset:153621; GCN-NEXT:    ds_load_b128 v[20:23], v0 offset:307222; GCN-NEXT:    ds_load_b128 v[24:27], v0 offset:512023; GCN-NEXT:    ds_load_b128 v[4:7], v0 offset:1128024; GCN-NEXT:    ds_load_b128 v[0:3], v0 offset:1126425; GCN-NEXT:    ; sched_group_barrier mask(0x00000100) size(7) SyncID(0)26; GCN-NEXT:    s_wait_dscnt 0x627; GCN-NEXT:    v_mov_b32_e32 v31, v1128; GCN-NEXT:    s_wait_dscnt 0x529; GCN-NEXT:    v_mov_b32_e32 v35, v1530; GCN-NEXT:    s_wait_dscnt 0x431; GCN-NEXT:    v_mov_b32_e32 v39, v1932; GCN-NEXT:    s_wait_dscnt 0x333; GCN-NEXT:    v_mov_b32_e32 v43, v2334; GCN-NEXT:    s_wait_dscnt 0x235; GCN-NEXT:    v_dual_mov_b32 v47, v27 :: v_dual_mov_b32 v30, v1036; GCN-NEXT:    v_dual_mov_b32 v29, v9 :: v_dual_mov_b32 v28, v837; GCN-NEXT:    v_dual_mov_b32 v34, v14 :: v_dual_mov_b32 v33, v1338; GCN-NEXT:    v_mov_b32_e32 v32, v1239; GCN-NEXT:    v_dual_mov_b32 v38, v18 :: v_dual_mov_b32 v37, v1740; GCN-NEXT:    v_mov_b32_e32 v36, v1641; GCN-NEXT:    v_dual_mov_b32 v42, v22 :: v_dual_mov_b32 v41, v2142; GCN-NEXT:    v_mov_b32_e32 v40, v2043; GCN-NEXT:    v_dual_mov_b32 v46, v26 :: v_dual_mov_b32 v45, v2544; GCN-NEXT:    v_mov_b32_e32 v44, v2445; GCN-NEXT:    s_wait_dscnt 0x046; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[28:31], v[8:11], v[0:7], v4847; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[32:35], v[12:15], v[0:7], v4848; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[36:39], v[16:19], v[0:7], v4849; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[40:43], v[20:23], v[0:7], v4850; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[44:47], v[24:27], v[0:7], v4851; GCN-NEXT:    ds_store_b128 v49, v[28:31]52; GCN-NEXT:    ds_store_b128 v50, v[32:35] offset:51253; GCN-NEXT:    ds_store_b128 v50, v[36:39] offset:102454; GCN-NEXT:    ds_store_b128 v50, v[40:43] offset:153655; GCN-NEXT:    ds_store_b128 v50, v[44:47] offset:204856; GCN-NEXT:    ; sched_group_barrier mask(0x00000008) size(5) SyncID(0)57; GCN-NEXT:    ; sched_group_barrier mask(0x00000200) size(5) SyncID(0)58; GCN-NEXT:    s_endpgm59;60; EXACTCUTOFF-LABEL: test_sched_group_barrier_pipeline_SWMMAC_cluster:61; EXACTCUTOFF:       ; %bb.0: ; %entry62; EXACTCUTOFF-NEXT:    s_load_b64 s[0:1], s[4:5], 0x2463; EXACTCUTOFF-NEXT:    v_lshlrev_b32_e32 v0, 4, v064; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v48, 065; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_1)66; EXACTCUTOFF-NEXT:    v_and_b32_e32 v28, 0x3ff0, v067; EXACTCUTOFF-NEXT:    s_wait_kmcnt 0x068; EXACTCUTOFF-NEXT:    v_add_nc_u32_e32 v0, s0, v2869; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v50, s1 :: v_dual_add_nc_u32 v49, s1, v2870; EXACTCUTOFF-NEXT:    ds_load_b128 v[8:11], v071; EXACTCUTOFF-NEXT:    ds_load_b128 v[12:15], v0 offset:51272; EXACTCUTOFF-NEXT:    ds_load_b128 v[16:19], v0 offset:153673; EXACTCUTOFF-NEXT:    ds_load_b128 v[20:23], v0 offset:307274; EXACTCUTOFF-NEXT:    ds_load_b128 v[24:27], v0 offset:512075; EXACTCUTOFF-NEXT:    ds_load_b128 v[4:7], v0 offset:1128076; EXACTCUTOFF-NEXT:    ds_load_b128 v[0:3], v0 offset:1126477; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000100) size(7) SyncID(0)78; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x679; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v31, v1180; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x581; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v35, v1582; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x483; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v39, v1984; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x385; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v43, v2386; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x287; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v47, v27 :: v_dual_mov_b32 v30, v1088; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v29, v9 :: v_dual_mov_b32 v28, v889; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v34, v14 :: v_dual_mov_b32 v33, v1390; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v32, v1291; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v38, v18 :: v_dual_mov_b32 v37, v1792; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v36, v1693; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v42, v22 :: v_dual_mov_b32 v41, v2194; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v40, v2095; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v46, v26 :: v_dual_mov_b32 v45, v2596; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v44, v2497; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x098; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[28:31], v[8:11], v[0:7], v4899; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[32:35], v[12:15], v[0:7], v48100; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[36:39], v[16:19], v[0:7], v48101; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[40:43], v[20:23], v[0:7], v48102; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[44:47], v[24:27], v[0:7], v48103; EXACTCUTOFF-NEXT:    ds_store_b128 v49, v[28:31]104; EXACTCUTOFF-NEXT:    ds_store_b128 v50, v[32:35] offset:512105; EXACTCUTOFF-NEXT:    ds_store_b128 v50, v[36:39] offset:1024106; EXACTCUTOFF-NEXT:    ds_store_b128 v50, v[40:43] offset:1536107; EXACTCUTOFF-NEXT:    ds_store_b128 v50, v[44:47] offset:2048108; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000008) size(5) SyncID(0)109; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000200) size(5) SyncID(0)110; EXACTCUTOFF-NEXT:    s_endpgm111entry:112  %idx = call i32 @llvm.amdgcn.workitem.id.x()113  %load.0.addr = getelementptr <8 x half>, ptr addrspace(3) %in, i32 %idx114  %load.0 = load <8 x half>, ptr addrspace(3) %load.0.addr115  %load.1.addr = getelementptr <8 x half>, ptr addrspace(3) %load.0.addr, i32 32116  %load.1 = load <8 x half>, ptr addrspace(3) %load.1.addr117  %load.2.addr = getelementptr <8 x half>, ptr addrspace(3) %load.1.addr, i32 64118  %load.2 = load <8 x half>, ptr addrspace(3) %load.2.addr119  %load.3.addr = getelementptr <8 x half>, ptr addrspace(3) %load.2.addr, i32 96120  %load.3 = load <8 x half>, ptr addrspace(3) %load.3.addr121  %load.4.addr = getelementptr <8 x half>, ptr addrspace(3) %load.3.addr, i32 128122  %load.4 = load <8 x half>, ptr addrspace(3) %load.4.addr123  %load.b.addr = getelementptr <16 x half>, ptr addrspace(3) %load.4.addr, i32 192124  %load.b = load <16 x half>, ptr addrspace(3) %load.b.addr125  %mai.0 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.0, <16 x half> %load.b, <8 x half> %load.0, i1 0)126  %mai.1 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.1, <16 x half> %load.b, <8 x half> %load.1, i1 0)127  %mai.2 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.2, <16 x half> %load.b, <8 x half> %load.2, i1 0)128  %mai.3 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.3, <16 x half> %load.b, <8 x half> %load.3, i1 0)129  %mai.4 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.4, <16 x half> %load.b, <8 x half> %load.4, i1 0)130  %store.0.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 %idx131  store <8 x half> %mai.0, ptr addrspace(3) %store.0.addr132  %store.1.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 32133  store <8 x half> %mai.1, ptr addrspace(3) %store.1.addr134  %store.2.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 64135  store <8 x half> %mai.2, ptr addrspace(3) %store.2.addr136  %store.3.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 96137  store <8 x half> %mai.3, ptr addrspace(3) %store.3.addr138  %store.4.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 128139  store <8 x half> %mai.4, ptr addrspace(3) %store.4.addr140  ; 7 DS read141  call void @llvm.amdgcn.sched.group.barrier(i32 256, i32 7, i32 0)142  ; 5 SWMMAC143  call void @llvm.amdgcn.sched.group.barrier(i32 8, i32 5, i32 0)144  ; 5 DS write145  call void @llvm.amdgcn.sched.group.barrier(i32 512, i32 5, i32 0)146  ret void147}148 149define amdgpu_kernel void @test_sched_group_barrier_pipeline_SWMMAC_interleaved(ptr addrspace(3) noalias %in, ptr addrspace(3) noalias %out) #0 {150; GCN-LABEL: test_sched_group_barrier_pipeline_SWMMAC_interleaved:151; GCN:       ; %bb.0: ; %entry152; GCN-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24153; GCN-NEXT:    v_and_b32_e32 v16, 0x3ff, v0154; GCN-NEXT:    v_mov_b32_e32 v18, 0155; GCN-NEXT:    s_wait_kmcnt 0x0156; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_2)157; GCN-NEXT:    v_lshl_add_u32 v17, v16, 5, s0158; GCN-NEXT:    v_lshl_add_u32 v16, v16, 4, s1159; GCN-NEXT:    ds_load_b128 v[8:11], v17 offset:1024160; GCN-NEXT:    ds_load_b128 v[0:3], v17161; GCN-NEXT:    ds_load_b128 v[4:7], v17 offset:16162; GCN-NEXT:    ; sched_group_barrier mask(0x00000100) size(3) SyncID(0)163; GCN-NEXT:    s_wait_dscnt 0x2164; GCN-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10165; GCN-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8166; GCN-NEXT:    s_wait_dscnt 0x0167; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_1)168; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18169; GCN-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)170; GCN-NEXT:    ds_store_b128 v16, v[12:15]171; GCN-NEXT:    ds_load_b128 v[8:11], v17 offset:2560172; GCN-NEXT:    v_mov_b32_e32 v16, s1173; GCN-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)174; GCN-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)175; GCN-NEXT:    s_wait_dscnt 0x0176; GCN-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10177; GCN-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8178; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_1)179; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18180; GCN-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)181; GCN-NEXT:    ds_store_b128 v16, v[12:15] offset:512182; GCN-NEXT:    ds_load_b128 v[8:11], v17 offset:4608183; GCN-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)184; GCN-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)185; GCN-NEXT:    s_wait_dscnt 0x0186; GCN-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10187; GCN-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8188; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_1)189; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18190; GCN-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)191; GCN-NEXT:    ds_store_b128 v16, v[12:15] offset:1024192; GCN-NEXT:    ds_load_b128 v[8:11], v17 offset:7168193; GCN-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)194; GCN-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)195; GCN-NEXT:    s_wait_dscnt 0x0196; GCN-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10197; GCN-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8198; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_1)199; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18200; GCN-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)201; GCN-NEXT:    ds_store_b128 v16, v[12:15] offset:1536202; GCN-NEXT:    ds_load_b128 v[8:11], v17 offset:10240203; GCN-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)204; GCN-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)205; GCN-NEXT:    s_wait_dscnt 0x0206; GCN-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10207; GCN-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8208; GCN-NEXT:    s_delay_alu instid0(VALU_DEP_1)209; GCN-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18210; GCN-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)211; GCN-NEXT:    ds_store_b128 v16, v[12:15] offset:2048212; GCN-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)213; GCN-NEXT:    s_endpgm214;215; EXACTCUTOFF-LABEL: test_sched_group_barrier_pipeline_SWMMAC_interleaved:216; EXACTCUTOFF:       ; %bb.0: ; %entry217; EXACTCUTOFF-NEXT:    s_load_b64 s[0:1], s[4:5], 0x24218; EXACTCUTOFF-NEXT:    v_and_b32_e32 v16, 0x3ff, v0219; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v18, 0220; EXACTCUTOFF-NEXT:    s_wait_kmcnt 0x0221; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_2)222; EXACTCUTOFF-NEXT:    v_lshl_add_u32 v17, v16, 5, s0223; EXACTCUTOFF-NEXT:    v_lshl_add_u32 v16, v16, 4, s1224; EXACTCUTOFF-NEXT:    ds_load_b128 v[8:11], v17 offset:1024225; EXACTCUTOFF-NEXT:    ds_load_b128 v[0:3], v17226; EXACTCUTOFF-NEXT:    ds_load_b128 v[4:7], v17 offset:16227; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000100) size(3) SyncID(0)228; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x2229; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10230; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8231; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x0232; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_1)233; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18234; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)235; EXACTCUTOFF-NEXT:    ds_store_b128 v16, v[12:15]236; EXACTCUTOFF-NEXT:    ds_load_b128 v[8:11], v17 offset:2560237; EXACTCUTOFF-NEXT:    v_mov_b32_e32 v16, s1238; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)239; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)240; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x0241; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10242; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8243; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_1)244; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18245; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)246; EXACTCUTOFF-NEXT:    ds_store_b128 v16, v[12:15] offset:512247; EXACTCUTOFF-NEXT:    ds_load_b128 v[8:11], v17 offset:4608248; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)249; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)250; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x0251; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10252; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8253; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_1)254; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18255; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)256; EXACTCUTOFF-NEXT:    ds_store_b128 v16, v[12:15] offset:1024257; EXACTCUTOFF-NEXT:    ds_load_b128 v[8:11], v17 offset:7168258; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)259; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)260; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x0261; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10262; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8263; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_1)264; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18265; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)266; EXACTCUTOFF-NEXT:    ds_store_b128 v16, v[12:15] offset:1536267; EXACTCUTOFF-NEXT:    ds_load_b128 v[8:11], v17 offset:10240268; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)269; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000100) size(1) SyncID(0)270; EXACTCUTOFF-NEXT:    s_wait_dscnt 0x0271; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v15, v11 :: v_dual_mov_b32 v14, v10272; EXACTCUTOFF-NEXT:    v_dual_mov_b32 v13, v9 :: v_dual_mov_b32 v12, v8273; EXACTCUTOFF-NEXT:    s_delay_alu instid0(VALU_DEP_1)274; EXACTCUTOFF-NEXT:    v_swmmac_f16_16x16x32_f16 v[12:15], v[8:11], v[0:7], v18275; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000008) size(1) SyncID(0)276; EXACTCUTOFF-NEXT:    ds_store_b128 v16, v[12:15] offset:2048277; EXACTCUTOFF-NEXT:    ; sched_group_barrier mask(0x00000200) size(1) SyncID(0)278; EXACTCUTOFF-NEXT:    s_endpgm279entry:280  %idx = call i32 @llvm.amdgcn.workitem.id.x()281  %load.b.addr = getelementptr <16 x half>, ptr addrspace(3) %in, i32 %idx282  %load.b = load <16 x half>, ptr addrspace(3) %load.b.addr283  %load.0.addr = getelementptr <8 x half>, ptr addrspace(3) %load.b.addr, i32 64284  %load.0 = load <8 x half>, ptr addrspace(3) %load.0.addr285  %load.1.addr = getelementptr <8 x half>, ptr addrspace(3) %load.0.addr, i32 96286  %load.1 = load <8 x half>, ptr addrspace(3) %load.1.addr287  %load.2.addr = getelementptr <8 x half>, ptr addrspace(3) %load.1.addr, i32 128288  %load.2 = load <8 x half>, ptr addrspace(3) %load.2.addr289  %load.3.addr = getelementptr <8 x half>, ptr addrspace(3) %load.2.addr, i32 160290  %load.3 = load <8 x half>, ptr addrspace(3) %load.3.addr291  %load.4.addr = getelementptr <8 x half>, ptr addrspace(3) %load.3.addr, i32 192292  %load.4 = load <8 x half>, ptr addrspace(3) %load.4.addr293  %mai.0 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.0, <16 x half> %load.b, <8 x half> %load.0, i1 0)294  %mai.1 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.1, <16 x half> %load.b, <8 x half> %load.1, i1 0)295  %mai.2 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.2, <16 x half> %load.b, <8 x half> %load.2, i1 0)296  %mai.3 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.3, <16 x half> %load.b, <8 x half> %load.3, i1 0)297  %mai.4 = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %load.4, <16 x half> %load.b, <8 x half> %load.4, i1 0)298  %store.0.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 %idx299  store <8 x half> %mai.0, ptr addrspace(3) %store.0.addr300  %store.1.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 32301  store <8 x half> %mai.1, ptr addrspace(3) %store.1.addr302  %store.2.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 64303  store <8 x half> %mai.2, ptr addrspace(3) %store.2.addr304  %store.3.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 96305  store <8 x half> %mai.3, ptr addrspace(3) %store.3.addr306  %store.4.addr = getelementptr <8 x half>, ptr addrspace(3) %out, i32 128307  store <8 x half> %mai.4, ptr addrspace(3) %store.4.addr308  ; 3 DS read309  call void @llvm.amdgcn.sched.group.barrier(i32 256, i32 3, i32 0)310  ; 1 SWMMAC311  call void @llvm.amdgcn.sched.group.barrier(i32 8, i32 1, i32 0)312  ; 1 DS write313  call void @llvm.amdgcn.sched.group.barrier(i32 512, i32 1, i32 0)314  ; 1 DS read315  call void @llvm.amdgcn.sched.group.barrier(i32 256, i32 1, i32 0)316  ; 1 SWMMAC317  call void @llvm.amdgcn.sched.group.barrier(i32 8, i32 1, i32 0)318  ; 1 DS write319  call void @llvm.amdgcn.sched.group.barrier(i32 512, i32 1, i32 0)320  ; 1 DS read321  call void @llvm.amdgcn.sched.group.barrier(i32 256, i32 1, i32 0)322  ; 1 SWMMAC323  call void @llvm.amdgcn.sched.group.barrier(i32 8, i32 1, i32 0)324  ; 1 DS write325  call void @llvm.amdgcn.sched.group.barrier(i32 512, i32 1, i32 0)326  ; 1 DS read327  call void @llvm.amdgcn.sched.group.barrier(i32 256, i32 1, i32 0)328  ; 1 SWMMAC329  call void @llvm.amdgcn.sched.group.barrier(i32 8, i32 1, i32 0)330  ; 1 DS write331  call void @llvm.amdgcn.sched.group.barrier(i32 512, i32 1, i32 0)332  ; 1 DS read333  call void @llvm.amdgcn.sched.group.barrier(i32 256, i32 1, i32 0)334  ; 1 SWMMAC335  call void @llvm.amdgcn.sched.group.barrier(i32 8, i32 1, i32 0)336  ; 1 DS write337  call void @llvm.amdgcn.sched.group.barrier(i32 512, i32 1, i32 0)338  ret void339}340