327 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck %s --check-prefix=GFX123 4define amdgpu_ps void @test_wmma_f32_16x16x16_f16(<8 x half> %A, <8 x half> %B, <8 x float> %C, ptr addrspace(1) %out) {5; GFX12-LABEL: test_wmma_f32_16x16x16_f16:6; GFX12: ; %bb.0: ; %bb7; GFX12-NEXT: v_wmma_f32_16x16x16_f16 v[8:15], v[0:3], v[4:7], v[8:15]8; GFX12-NEXT: s_clause 0x19; GFX12-NEXT: global_store_b128 v[16:17], v[12:15], off offset:1610; GFX12-NEXT: global_store_b128 v[16:17], v[8:11], off11; GFX12-NEXT: s_endpgm12bb:13 %res = call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.f16.v8f32.v8f16(<8 x half> %A, <8 x half> %B, <8 x float> %C)14 store <8 x float> %res, ptr addrspace(1) %out15 ret void16}17 18define amdgpu_ps void @test_wmma_f32_16x16x16_bf16(<8 x i16> %A, <8 x i16> %B, <8 x float> %C, ptr addrspace(1) %out) {19; GFX12-LABEL: test_wmma_f32_16x16x16_bf16:20; GFX12: ; %bb.0: ; %bb21; GFX12-NEXT: v_wmma_f32_16x16x16_bf16 v[8:15], v[0:3], v[4:7], v[8:15]22; GFX12-NEXT: s_clause 0x123; GFX12-NEXT: global_store_b128 v[16:17], v[12:15], off offset:1624; GFX12-NEXT: global_store_b128 v[16:17], v[8:11], off25; GFX12-NEXT: s_endpgm26bb:27 %res = call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.bf16.v8f32.v8i16(<8 x i16> %A, <8 x i16> %B, <8 x float> %C)28 store <8 x float> %res, ptr addrspace(1) %out29 ret void30}31 32define amdgpu_ps void @test_wmma_f16_16x16x16_f16(<8 x half> %A, <8 x half> %B, <8 x half> %C, ptr addrspace(1) %out) {33; GFX12-LABEL: test_wmma_f16_16x16x16_f16:34; GFX12: ; %bb.0: ; %bb35; GFX12-NEXT: v_wmma_f16_16x16x16_f16 v[8:11], v[0:3], v[4:7], v[8:11]36; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off37; GFX12-NEXT: s_endpgm38bb:39 %res = call <8 x half> @llvm.amdgcn.wmma.f16.16x16x16.f16.v8f16.v8f16(<8 x half> %A, <8 x half> %B, <8 x half> %C, i1 0)40 store <8 x half> %res, ptr addrspace(1) %out41 ret void42}43 44define amdgpu_ps void @test_wmma_bf16_16x16x16_bf16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, ptr addrspace(1) %out) {45; GFX12-LABEL: test_wmma_bf16_16x16x16_bf16:46; GFX12: ; %bb.0: ; %bb47; GFX12-NEXT: v_wmma_bf16_16x16x16_bf16 v[8:11], v[0:3], v[4:7], v[8:11]48; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off49; GFX12-NEXT: s_endpgm50bb:51 %res = call <8 x i16> @llvm.amdgcn.wmma.bf16.16x16x16.bf16.v8i16.v8i16(<8 x i16> %A, <8 x i16> %B, <8 x i16> %C, i1 0)52 store <8 x i16> %res, ptr addrspace(1) %out53 ret void54}55 56define amdgpu_ps void @test_wmma_i32_16x16x16_iu8(<2 x i32> %A, <2 x i32> %B, <8 x i32> %C, ptr addrspace(1) %out) {57; GFX12-LABEL: test_wmma_i32_16x16x16_iu8:58; GFX12: ; %bb.0: ; %bb59; GFX12-NEXT: v_wmma_i32_16x16x16_iu8 v[4:11], v[0:1], v[2:3], v[4:11]60; GFX12-NEXT: s_clause 0x161; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off offset:1662; GFX12-NEXT: global_store_b128 v[12:13], v[4:7], off63; GFX12-NEXT: s_endpgm64bb:65 %res = call <8 x i32> @llvm.amdgcn.wmma.i32.16x16x16.iu8.v8i32.v2i32(i1 0, <2 x i32> %A, i1 0, <2 x i32> %B, <8 x i32> %C, i1 0)66 store <8 x i32> %res, ptr addrspace(1) %out67 ret void68}69 70define amdgpu_ps void @test_wmma_i32_16x16x16_iu4(i32 %A, i32 %B, <8 x i32> %C, ptr addrspace(1) %out) {71; GFX12-LABEL: test_wmma_i32_16x16x16_iu4:72; GFX12: ; %bb.0: ; %bb73; GFX12-NEXT: v_wmma_i32_16x16x16_iu4 v[2:9], v0, v1, v[2:9]74; GFX12-NEXT: s_clause 0x175; GFX12-NEXT: global_store_b128 v[10:11], v[6:9], off offset:1676; GFX12-NEXT: global_store_b128 v[10:11], v[2:5], off77; GFX12-NEXT: s_endpgm78bb:79 %res = call <8 x i32> @llvm.amdgcn.wmma.i32.16x16x16.iu4.v8i32.i32(i1 0, i32 %A, i1 0, i32 %B, <8 x i32> %C, i1 0)80 store <8 x i32> %res, ptr addrspace(1) %out81 ret void82}83 84define amdgpu_ps void @test_wmma_f32_16x16x16_fp8_fp8(<2 x i32> %A, <2 x i32> %B, <8 x float> %C, ptr addrspace(1) %out) {85; GFX12-LABEL: test_wmma_f32_16x16x16_fp8_fp8:86; GFX12: ; %bb.0: ; %bb87; GFX12-NEXT: v_wmma_f32_16x16x16_fp8_fp8 v[4:11], v[0:1], v[2:3], v[4:11]88; GFX12-NEXT: s_clause 0x189; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off offset:1690; GFX12-NEXT: global_store_b128 v[12:13], v[4:7], off91; GFX12-NEXT: s_endpgm92bb:93 %res = call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.fp8.fp8.v8f32.v2i32(<2 x i32> %A, <2 x i32> %B, <8 x float> %C)94 store <8 x float> %res, ptr addrspace(1) %out95 ret void96}97 98define amdgpu_ps void @test_wmma_f32_16x16x16_bf8_fp8(<2 x i32> %A, <2 x i32> %B, <8 x float> %C, ptr addrspace(1) %out) {99; GFX12-LABEL: test_wmma_f32_16x16x16_bf8_fp8:100; GFX12: ; %bb.0: ; %bb101; GFX12-NEXT: v_wmma_f32_16x16x16_bf8_fp8 v[4:11], v[0:1], v[2:3], v[4:11]102; GFX12-NEXT: s_clause 0x1103; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off offset:16104; GFX12-NEXT: global_store_b128 v[12:13], v[4:7], off105; GFX12-NEXT: s_endpgm106bb:107 %res = call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.bf8.fp8.v8f32.v2i32(<2 x i32> %A, <2 x i32> %B, <8 x float> %C)108 store <8 x float> %res, ptr addrspace(1) %out109 ret void110}111 112define amdgpu_ps void @test_wmma_f32_16x16x16_fp8_bf8(<2 x i32> %A, <2 x i32> %B, <8 x float> %C, ptr addrspace(1) %out) {113; GFX12-LABEL: test_wmma_f32_16x16x16_fp8_bf8:114; GFX12: ; %bb.0: ; %bb115; GFX12-NEXT: v_wmma_f32_16x16x16_fp8_bf8 v[4:11], v[0:1], v[2:3], v[4:11]116; GFX12-NEXT: s_clause 0x1117; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off offset:16118; GFX12-NEXT: global_store_b128 v[12:13], v[4:7], off119; GFX12-NEXT: s_endpgm120bb:121 %res = call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.fp8.bf8.v8f32.v2i32(<2 x i32> %A, <2 x i32> %B, <8 x float> %C)122 store <8 x float> %res, ptr addrspace(1) %out123 ret void124}125 126define amdgpu_ps void @test_wmma_f32_16x16x16_bf8_bf8(<2 x i32> %A, <2 x i32> %B, <8 x float> %C, ptr addrspace(1) %out) {127; GFX12-LABEL: test_wmma_f32_16x16x16_bf8_bf8:128; GFX12: ; %bb.0: ; %bb129; GFX12-NEXT: v_wmma_f32_16x16x16_bf8_bf8 v[4:11], v[0:1], v[2:3], v[4:11]130; GFX12-NEXT: s_clause 0x1131; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off offset:16132; GFX12-NEXT: global_store_b128 v[12:13], v[4:7], off133; GFX12-NEXT: s_endpgm134bb:135 %res = call <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.bf8.bf8.v8f32.v2i32(<2 x i32> %A, <2 x i32> %B, <8 x float> %C)136 store <8 x float> %res, ptr addrspace(1) %out137 ret void138}139 140define amdgpu_ps void @test_wmma_i32_16x16x32_iu4(<2 x i32> %A, <2 x i32> %B, <8 x i32> %C, ptr addrspace(1) %out) {141; GFX12-LABEL: test_wmma_i32_16x16x32_iu4:142; GFX12: ; %bb.0: ; %bb143; GFX12-NEXT: v_wmma_i32_16x16x32_iu4 v[4:11], v[0:1], v[2:3], v[4:11]144; GFX12-NEXT: s_clause 0x1145; GFX12-NEXT: global_store_b128 v[12:13], v[8:11], off offset:16146; GFX12-NEXT: global_store_b128 v[12:13], v[4:7], off147; GFX12-NEXT: s_endpgm148bb:149 %res = call <8 x i32> @llvm.amdgcn.wmma.i32.16x16x32.iu4.v8i32.v2i32(i1 0, <2 x i32> %A, i1 0, <2 x i32> %B, <8 x i32> %C, i1 0)150 store <8 x i32> %res, ptr addrspace(1) %out151 ret void152}153 154 155define amdgpu_ps void @test_swmmac_f32_16x16x32_f16(<8 x half> %A, <16 x half> %B, <8 x float> %C, i16 %Index, ptr addrspace(1) %out) {156; GFX12-LABEL: test_swmmac_f32_16x16x32_f16:157; GFX12: ; %bb.0: ; %bb158; GFX12-NEXT: v_swmmac_f32_16x16x32_f16 v[12:19], v[0:3], v[4:11], v20159; GFX12-NEXT: s_clause 0x1160; GFX12-NEXT: global_store_b128 v[21:22], v[16:19], off offset:16161; GFX12-NEXT: global_store_b128 v[21:22], v[12:15], off162; GFX12-NEXT: s_endpgm163bb:164 %res = call <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.f16.v8f32.v8f16.v16f16.i16(<8 x half> %A, <16 x half> %B, <8 x float> %C, i16 %Index)165 store <8 x float> %res, ptr addrspace(1) %out166 ret void167}168 169define amdgpu_ps void @test_swmmac_f32_16x16x32_bf16(<8 x i16> %A, <16 x i16> %B, <8 x float> %C, i16 %Index, ptr addrspace(1) %out) {170; GFX12-LABEL: test_swmmac_f32_16x16x32_bf16:171; GFX12: ; %bb.0: ; %bb172; GFX12-NEXT: v_swmmac_f32_16x16x32_bf16 v[12:19], v[0:3], v[4:11], v20173; GFX12-NEXT: s_clause 0x1174; GFX12-NEXT: global_store_b128 v[21:22], v[16:19], off offset:16175; GFX12-NEXT: global_store_b128 v[21:22], v[12:15], off176; GFX12-NEXT: s_endpgm177bb:178 %res = call <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.bf16.v8f32.v8i16.v16i16.i16(<8 x i16> %A, <16 x i16> %B, <8 x float> %C, i16 %Index)179 store <8 x float> %res, ptr addrspace(1) %out180 ret void181}182 183define amdgpu_ps void @test_swmmac_f16_16x16x32_f16(<8 x half> %A, <16 x half> %B, <8 x half> %C, i16 %Index, ptr addrspace(1) %out) {184; GFX12-LABEL: test_swmmac_f16_16x16x32_f16:185; GFX12: ; %bb.0: ; %bb186; GFX12-NEXT: v_swmmac_f16_16x16x32_f16 v[12:15], v[0:3], v[4:11], v16187; GFX12-NEXT: global_store_b128 v[17:18], v[12:15], off188; GFX12-NEXT: s_endpgm189bb:190 %res = call <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16.i16(<8 x half> %A, <16 x half> %B, <8 x half> %C, i16 %Index)191 store <8 x half> %res, ptr addrspace(1) %out192 ret void193}194 195define amdgpu_ps void @test_swmmac_bf16_16x16x32_bf16(<8 x i16> %A, <16 x i16> %B, <8 x i16> %C, i16 %Index, ptr addrspace(1) %out) {196; GFX12-LABEL: test_swmmac_bf16_16x16x32_bf16:197; GFX12: ; %bb.0: ; %bb198; GFX12-NEXT: v_swmmac_bf16_16x16x32_bf16 v[12:15], v[0:3], v[4:11], v16199; GFX12-NEXT: global_store_b128 v[17:18], v[12:15], off200; GFX12-NEXT: s_endpgm201bb:202 %res = call <8 x i16> @llvm.amdgcn.swmmac.bf16.16x16x32.bf16.v8i16.v8i16.v16i16.i16(<8 x i16> %A, <16 x i16> %B, <8 x i16> %C, i16 %Index)203 store <8 x i16> %res, ptr addrspace(1) %out204 ret void205}206 207define amdgpu_ps void @test_swmmac_i32_16x16x32_iu8(<2 x i32> %A, <4 x i32> %B, <8 x i32> %C, i16 %Index, ptr addrspace(1) %out) {208; GFX12-LABEL: test_swmmac_i32_16x16x32_iu8:209; GFX12: ; %bb.0: ; %bb210; GFX12-NEXT: v_swmmac_i32_16x16x32_iu8 v[6:13], v[0:1], v[2:5], v14211; GFX12-NEXT: s_clause 0x1212; GFX12-NEXT: global_store_b128 v[15:16], v[10:13], off offset:16213; GFX12-NEXT: global_store_b128 v[15:16], v[6:9], off214; GFX12-NEXT: s_endpgm215bb:216 %res = call <8 x i32> @llvm.amdgcn.swmmac.i32.16x16x32.iu8.v8i32.v2i32.v4i32.i16(i1 0, <2 x i32> %A, i1 0, <4 x i32> %B, <8 x i32> %C, i16 %Index, i1 0)217 store <8 x i32> %res, ptr addrspace(1) %out218 ret void219}220 221define amdgpu_ps void @test_swmmac_i32_16x16x32_iu4(i32 %A, <2 x i32> %B, <8 x i32> %C, i16 %Index, ptr addrspace(1) %out) {222; GFX12-LABEL: test_swmmac_i32_16x16x32_iu4:223; GFX12: ; %bb.0: ; %bb224; GFX12-NEXT: v_swmmac_i32_16x16x32_iu4 v[3:10], v0, v[1:2], v11225; GFX12-NEXT: s_clause 0x1226; GFX12-NEXT: global_store_b128 v[12:13], v[7:10], off offset:16227; GFX12-NEXT: global_store_b128 v[12:13], v[3:6], off228; GFX12-NEXT: s_endpgm229bb:230 %res = call <8 x i32> @llvm.amdgcn.swmmac.i32.16x16x32.iu4.v8i32.i32.v2i32.i16(i1 0, i32 %A, i1 0, <2 x i32> %B, <8 x i32> %C, i16 %Index, i1 0)231 store <8 x i32> %res, ptr addrspace(1) %out232 ret void233}234 235define amdgpu_ps void @test_swmmac_i32_16x16x64_iu4(<2 x i32> %A, <4 x i32> %B, <8 x i32> %C, i32 %Index, ptr addrspace(1) %out) {236; GFX12-LABEL: test_swmmac_i32_16x16x64_iu4:237; GFX12: ; %bb.0: ; %bb238; GFX12-NEXT: v_swmmac_i32_16x16x64_iu4 v[6:13], v[0:1], v[2:5], v14239; GFX12-NEXT: s_clause 0x1240; GFX12-NEXT: global_store_b128 v[15:16], v[10:13], off offset:16241; GFX12-NEXT: global_store_b128 v[15:16], v[6:9], off242; GFX12-NEXT: s_endpgm243bb:244 %res = call <8 x i32> @llvm.amdgcn.swmmac.i32.16x16x64.iu4.v8i32.v2i32.v4i32.i32(i1 0, <2 x i32> %A, i1 0, <4 x i32> %B, <8 x i32> %C, i32 %Index, i1 0)245 store <8 x i32> %res, ptr addrspace(1) %out246 ret void247}248 249define amdgpu_ps void @test_swmmac_f32_16x16x32_fp8_fp8(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index, ptr addrspace(1) %out) {250; GFX12-LABEL: test_swmmac_f32_16x16x32_fp8_fp8:251; GFX12: ; %bb.0: ; %bb252; GFX12-NEXT: v_swmmac_f32_16x16x32_fp8_fp8 v[6:13], v[0:1], v[2:5], v14253; GFX12-NEXT: s_clause 0x1254; GFX12-NEXT: global_store_b128 v[15:16], v[10:13], off offset:16255; GFX12-NEXT: global_store_b128 v[15:16], v[6:9], off256; GFX12-NEXT: s_endpgm257bb:258 %res = call <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.fp8.fp8.v8f32.v2i32.v4i32.i16(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index)259 store <8 x float> %res, ptr addrspace(1) %out260 ret void261}262 263define amdgpu_ps void @test_swmmac_f32_16x16x32_fp8_bf8(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index, ptr addrspace(1) %out) {264; GFX12-LABEL: test_swmmac_f32_16x16x32_fp8_bf8:265; GFX12: ; %bb.0: ; %bb266; GFX12-NEXT: v_swmmac_f32_16x16x32_fp8_bf8 v[6:13], v[0:1], v[2:5], v14267; GFX12-NEXT: s_clause 0x1268; GFX12-NEXT: global_store_b128 v[15:16], v[10:13], off offset:16269; GFX12-NEXT: global_store_b128 v[15:16], v[6:9], off270; GFX12-NEXT: s_endpgm271bb:272 %res = call <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.fp8.bf8.v8f32.v2i32.v4i32.i16(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index)273 store <8 x float> %res, ptr addrspace(1) %out274 ret void275}276 277define amdgpu_ps void @test_swmmac_f32_16x16x32_bf8_fp8(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index, ptr addrspace(1) %out) {278; GFX12-LABEL: test_swmmac_f32_16x16x32_bf8_fp8:279; GFX12: ; %bb.0: ; %bb280; GFX12-NEXT: v_swmmac_f32_16x16x32_bf8_fp8 v[6:13], v[0:1], v[2:5], v14281; GFX12-NEXT: s_clause 0x1282; GFX12-NEXT: global_store_b128 v[15:16], v[10:13], off offset:16283; GFX12-NEXT: global_store_b128 v[15:16], v[6:9], off284; GFX12-NEXT: s_endpgm285bb:286 %res = call <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.bf8.fp8.v8f32.v2i32.v4i32.i16(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index)287 store <8 x float> %res, ptr addrspace(1) %out288 ret void289}290 291define amdgpu_ps void @test_swmmac_f32_16x16x32_bf8_bf8(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index, ptr addrspace(1) %out) {292; GFX12-LABEL: test_swmmac_f32_16x16x32_bf8_bf8:293; GFX12: ; %bb.0: ; %bb294; GFX12-NEXT: v_swmmac_f32_16x16x32_bf8_bf8 v[6:13], v[0:1], v[2:5], v14295; GFX12-NEXT: s_clause 0x1296; GFX12-NEXT: global_store_b128 v[15:16], v[10:13], off offset:16297; GFX12-NEXT: global_store_b128 v[15:16], v[6:9], off298; GFX12-NEXT: s_endpgm299bb:300 %res = call <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.bf8.bf8.v8f32.v2i32.v4i32.i16(<2 x i32> %A, <4 x i32> %B, <8 x float> %C, i16 %Index)301 store <8 x float> %res, ptr addrspace(1) %out302 ret void303}304 305declare <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.f16.v8f32.v8f16(<8 x half>, <8 x half>, <8 x float>)306declare <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.bf16.v8f32.v8i16(<8 x i16>, <8 x i16>, <8 x float>)307declare <8 x half> @llvm.amdgcn.wmma.f16.16x16x16.f16.v8f16.v8f16(<8 x half>, <8 x half>, <8 x half>, i1 immarg)308declare <8 x i16> @llvm.amdgcn.wmma.bf16.16x16x16.bf16.v8i16.v8i16(<8 x i16>, <8 x i16>, <8 x i16>, i1 immarg)309declare <8 x i32> @llvm.amdgcn.wmma.i32.16x16x16.iu8.v8i32.v2i32.(i1 immarg, <2 x i32>, i1 immarg, <2 x i32>, <8 x i32>, i1 immarg)310declare <8 x i32> @llvm.amdgcn.wmma.i32.16x16x16.iu4.v8i32.i32(i1 immarg, i32, i1 immarg, i32, <8 x i32>, i1 immarg)311declare <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.fp8.fp8.v8f32.v2i32(<2 x i32>, <2 x i32>, <8 x float>)312declare <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.fp8.bf8.v8f32.v2i32(<2 x i32>, <2 x i32>, <8 x float>)313declare <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.bf8.fp8.v8f32.v2i32(<2 x i32>, <2 x i32>, <8 x float>)314declare <8 x float> @llvm.amdgcn.wmma.f32.16x16x16.bf8.bf8.v8f32.v2i32(<2 x i32>, <2 x i32>, <8 x float>)315declare <8 x i32> @llvm.amdgcn.wmma.i32.16x16x32.iu4.v8i32.v2i32(i1 immarg, <2 x i32>, i1 immarg, <2 x i32>, <8 x i32>, i1 immarg)316declare <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.f16.v8f32.v8f16.v16f16.i16(<8 x half>, <16 x half>, <8 x float>, i16)317declare <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.bf16.v8f32.v8i16.v16i16.i16(<8 x i16>, <16 x i16>, <8 x float>, i16)318declare <8 x half> @llvm.amdgcn.swmmac.f16.16x16x32.f16.v8f16.v8f16.v16f16..i16(<8 x half>, <16 x half>, <8 x half>, i16)319declare <8 x i16> @llvm.amdgcn.swmmac.bf16.16x16x32.bf16.v8i16.v8i16.v16i16.i16(<8 x i16>, <16 x i16>, <8 x i16>, i16)320declare <8 x i32> @llvm.amdgcn.swmmac.i32.16x16x32.iu8.v8i32.v2i32.v4i32.i16(i1 immarg, <2 x i32>, i1 immarg, <4 x i32>, <8 x i32>, i16 %Index, i1 immarg)321declare <8 x i32> @llvm.amdgcn.swmmac.i32.16x16x32.iu4.v8i32.i32.v2i32.i16(i1 immarg, i32, i1 immarg, <2 x i32>, <8 x i32>, i16 %Index, i1 immarg)322declare <8 x i32> @llvm.amdgcn.swmmac.i32.16x16x64.iu4.v8i32.v2i32.v4i32.i32(i1 immarg, <2 x i32>, i1 immarg, <4 x i32>, <8 x i32>, i32 %Index, i1 immarg)323declare <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.fp8.fp8.v8f32.v2i32.v4i32.i16(<2 x i32>, <4 x i32>, <8 x float>, i16)324declare <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.fp8.bf8.v8f32.v2i32.v4i32.i16(<2 x i32>, <4 x i32>, <8 x float>, i16)325declare <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.bf8.fp8.v8f32.v2i32.v4i32.i16(<2 x i32>, <4 x i32>, <8 x float>, i16)326declare <8 x float> @llvm.amdgcn.swmmac.f32.16x16x32.bf8.bf8.v8f32.v2i32.v4i32.i16(<2 x i32>, <4 x i32>, <8 x float>, i16)327