brintos

brintos / llvm-project-archived public Read only

0
0
Text · 298.4 KiB · f0205a3 Raw
6376 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=0 < %s | FileCheck -check-prefixes=GCN,SDAG %s3; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 < %s | FileCheck -check-prefixes=GCN,GISEL %s4 5; 0 = fp86; 1 = bf87; 2 = fp68; 3 = bf69; 4 = fp410 11; --------------------------------------------------------------------12; Different format signatures13; --------------------------------------------------------------------14 15; fp8 x fp816define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {17; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0:18; SDAG:       ; %bb.0:19; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)20; SDAG-NEXT:    scratch_load_dword a15, off, s3221; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:822; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:423; SDAG-NEXT:    v_accvgpr_write_b32 a0, v1624; SDAG-NEXT:    v_accvgpr_write_b32 a1, v1725; SDAG-NEXT:    v_accvgpr_write_b32 a2, v1826; SDAG-NEXT:    v_accvgpr_write_b32 a3, v1927; SDAG-NEXT:    v_accvgpr_write_b32 a4, v2028; SDAG-NEXT:    v_accvgpr_write_b32 a5, v2129; SDAG-NEXT:    v_accvgpr_write_b32 a6, v2230; SDAG-NEXT:    v_accvgpr_write_b32 a7, v2331; SDAG-NEXT:    v_accvgpr_write_b32 a8, v2432; SDAG-NEXT:    v_accvgpr_write_b32 a9, v2533; SDAG-NEXT:    v_accvgpr_write_b32 a10, v2634; SDAG-NEXT:    v_accvgpr_write_b32 a11, v2735; SDAG-NEXT:    v_accvgpr_write_b32 a12, v2836; SDAG-NEXT:    v_accvgpr_write_b32 a13, v2937; SDAG-NEXT:    v_accvgpr_write_b32 a14, v3038; SDAG-NEXT:    s_waitcnt vmcnt(0)39; SDAG-NEXT:    s_nop 040; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0]41; SDAG-NEXT:    s_nop 1542; SDAG-NEXT:    s_nop 343; SDAG-NEXT:    v_accvgpr_read_b32 v0, a044; SDAG-NEXT:    v_accvgpr_read_b32 v1, a145; SDAG-NEXT:    v_accvgpr_read_b32 v2, a246; SDAG-NEXT:    v_accvgpr_read_b32 v3, a347; SDAG-NEXT:    v_accvgpr_read_b32 v4, a448; SDAG-NEXT:    v_accvgpr_read_b32 v5, a549; SDAG-NEXT:    v_accvgpr_read_b32 v6, a650; SDAG-NEXT:    v_accvgpr_read_b32 v7, a751; SDAG-NEXT:    v_accvgpr_read_b32 v8, a852; SDAG-NEXT:    v_accvgpr_read_b32 v9, a953; SDAG-NEXT:    v_accvgpr_read_b32 v10, a1054; SDAG-NEXT:    v_accvgpr_read_b32 v11, a1155; SDAG-NEXT:    v_accvgpr_read_b32 v12, a1256; SDAG-NEXT:    v_accvgpr_read_b32 v13, a1357; SDAG-NEXT:    v_accvgpr_read_b32 v14, a1458; SDAG-NEXT:    v_accvgpr_read_b32 v15, a1559; SDAG-NEXT:    s_setpc_b64 s[30:31]60;61; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0:62; GISEL:       ; %bb.0:63; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)64; GISEL-NEXT:    scratch_load_dword a15, off, s3265; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:466; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:867; GISEL-NEXT:    v_accvgpr_write_b32 a0, v1668; GISEL-NEXT:    v_accvgpr_write_b32 a1, v1769; GISEL-NEXT:    v_accvgpr_write_b32 a2, v1870; GISEL-NEXT:    v_accvgpr_write_b32 a3, v1971; GISEL-NEXT:    v_accvgpr_write_b32 a4, v2072; GISEL-NEXT:    v_accvgpr_write_b32 a5, v2173; GISEL-NEXT:    v_accvgpr_write_b32 a6, v2274; GISEL-NEXT:    v_accvgpr_write_b32 a7, v2375; GISEL-NEXT:    v_accvgpr_write_b32 a8, v2476; GISEL-NEXT:    v_accvgpr_write_b32 a9, v2577; GISEL-NEXT:    v_accvgpr_write_b32 a10, v2678; GISEL-NEXT:    v_accvgpr_write_b32 a11, v2779; GISEL-NEXT:    v_accvgpr_write_b32 a12, v2880; GISEL-NEXT:    v_accvgpr_write_b32 a13, v2981; GISEL-NEXT:    v_accvgpr_write_b32 a14, v3082; GISEL-NEXT:    s_waitcnt vmcnt(0)83; GISEL-NEXT:    s_nop 084; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0]85; GISEL-NEXT:    s_nop 1586; GISEL-NEXT:    s_nop 387; GISEL-NEXT:    v_accvgpr_read_b32 v0, a088; GISEL-NEXT:    v_accvgpr_read_b32 v1, a189; GISEL-NEXT:    v_accvgpr_read_b32 v2, a290; GISEL-NEXT:    v_accvgpr_read_b32 v3, a391; GISEL-NEXT:    v_accvgpr_read_b32 v4, a492; GISEL-NEXT:    v_accvgpr_read_b32 v5, a593; GISEL-NEXT:    v_accvgpr_read_b32 v6, a694; GISEL-NEXT:    v_accvgpr_read_b32 v7, a795; GISEL-NEXT:    v_accvgpr_read_b32 v8, a896; GISEL-NEXT:    v_accvgpr_read_b32 v9, a997; GISEL-NEXT:    v_accvgpr_read_b32 v10, a1098; GISEL-NEXT:    v_accvgpr_read_b32 v11, a1199; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12100; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13101; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14102; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15103; GISEL-NEXT:    s_setpc_b64 s[30:31]104  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,105                                                                                      i32 0, ; cbsz106                                                                                      i32 0, ; blgp107                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)108  ret <16 x float> %result109}110 111define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_1_1__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {112; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_1_1__cbsz1__blgp1:113; SDAG:       ; %bb.0:114; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)115; SDAG-NEXT:    scratch_load_dword a15, off, s32116; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8117; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4118; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16119; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17120; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18121; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19122; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20123; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21124; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22125; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23126; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24127; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25128; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26129; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27130; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28131; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29132; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30133; SDAG-NEXT:    s_waitcnt vmcnt(0)134; SDAG-NEXT:    s_nop 0135; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel:[1,1,0] op_sel_hi:[0,0,0]136; SDAG-NEXT:    s_nop 15137; SDAG-NEXT:    s_nop 3138; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0139; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1140; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2141; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3142; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4143; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5144; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6145; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7146; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8147; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9148; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10149; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11150; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12151; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13152; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14153; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15154; SDAG-NEXT:    s_setpc_b64 s[30:31]155;156; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_1_1__cbsz1__blgp1:157; GISEL:       ; %bb.0:158; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)159; GISEL-NEXT:    scratch_load_dword a15, off, s32160; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4161; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8162; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16163; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17164; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18165; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19166; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20167; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21168; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22169; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23170; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24171; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25172; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26173; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27174; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28175; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29176; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30177; GISEL-NEXT:    s_waitcnt vmcnt(0)178; GISEL-NEXT:    s_nop 0179; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel:[1,1,0] op_sel_hi:[0,0,0]180; GISEL-NEXT:    s_nop 15181; GISEL-NEXT:    s_nop 3182; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0183; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1184; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2185; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3186; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4187; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5188; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6189; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7190; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8191; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9192; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10193; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11194; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12195; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13196; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14197; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15198; GISEL-NEXT:    s_setpc_b64 s[30:31]199  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,200                                                                                      i32 0, ; cbsz201                                                                                      i32 0, ; blgp202                                                                                      i32 1, i32 %scale0, i32 1, i32 %scale1)203  ret <16 x float> %result204}205 206define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_2_2__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {207; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_2__cbsz1__blgp1:208; SDAG:       ; %bb.0:209; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)210; SDAG-NEXT:    scratch_load_dword a15, off, s32211; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8212; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4213; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16214; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17215; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18216; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19217; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20218; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21219; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22220; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23221; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24222; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25223; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26224; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27225; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28226; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29227; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30228; SDAG-NEXT:    s_waitcnt vmcnt(0)229; SDAG-NEXT:    s_nop 0230; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]231; SDAG-NEXT:    s_nop 15232; SDAG-NEXT:    s_nop 3233; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0234; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1235; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2236; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3237; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4238; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5239; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6240; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7241; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8242; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9243; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10244; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11245; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12246; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13247; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14248; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15249; SDAG-NEXT:    s_setpc_b64 s[30:31]250;251; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_2__cbsz1__blgp1:252; GISEL:       ; %bb.0:253; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)254; GISEL-NEXT:    scratch_load_dword a15, off, s32255; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4256; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8257; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16258; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17259; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18260; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19261; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20262; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21263; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22264; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23265; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24266; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25267; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26268; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27269; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28270; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29271; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30272; GISEL-NEXT:    s_waitcnt vmcnt(0)273; GISEL-NEXT:    s_nop 0274; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]275; GISEL-NEXT:    s_nop 15276; GISEL-NEXT:    s_nop 3277; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0278; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1279; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2280; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3281; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4282; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5283; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6284; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7285; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8286; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9287; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10288; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11289; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12290; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13291; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14292; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15293; GISEL-NEXT:    s_setpc_b64 s[30:31]294  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,295                                                                                      i32 0, ; cbsz296                                                                                      i32 0, ; blgp297                                                                                      i32 2, i32 %scale0, i32 2, i32 %scale1)298  ret <16 x float> %result299}300 301define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_3_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {302; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_3__cbsz1__blgp1:303; SDAG:       ; %bb.0:304; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)305; SDAG-NEXT:    scratch_load_dword a15, off, s32306; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8307; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4308; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16309; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17310; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18311; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19312; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20313; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21314; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22315; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23316; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24317; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25318; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26319; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27320; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28321; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29322; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30323; SDAG-NEXT:    s_waitcnt vmcnt(0)324; SDAG-NEXT:    s_nop 0325; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel:[1,1,0] op_sel_hi:[1,1,0]326; SDAG-NEXT:    s_nop 15327; SDAG-NEXT:    s_nop 3328; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0329; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1330; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2331; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3332; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4333; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5334; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6335; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7336; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8337; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9338; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10339; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11340; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12341; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13342; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14343; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15344; SDAG-NEXT:    s_setpc_b64 s[30:31]345;346; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_3__cbsz1__blgp1:347; GISEL:       ; %bb.0:348; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)349; GISEL-NEXT:    scratch_load_dword a15, off, s32350; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4351; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8352; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16353; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17354; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18355; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19356; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20357; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21358; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22359; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23360; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24361; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25362; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26363; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27364; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28365; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29366; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30367; GISEL-NEXT:    s_waitcnt vmcnt(0)368; GISEL-NEXT:    s_nop 0369; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel:[1,1,0] op_sel_hi:[1,1,0]370; GISEL-NEXT:    s_nop 15371; GISEL-NEXT:    s_nop 3372; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0373; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1374; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2375; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3376; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4377; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5378; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6379; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7380; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8381; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9382; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10383; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11384; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12385; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13386; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14387; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15388; GISEL-NEXT:    s_setpc_b64 s[30:31]389  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,390                                                                                      i32 0, ; cbsz391                                                                                      i32 0, ; blgp392                                                                                      i32 3, i32 %scale0, i32 3, i32 %scale1)393  ret <16 x float> %result394}395 396define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {397; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_3__cbsz1__blgp1:398; SDAG:       ; %bb.0:399; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)400; SDAG-NEXT:    scratch_load_dword a15, off, s32401; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8402; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4403; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16404; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17405; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18406; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19407; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20408; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21409; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22410; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23411; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24412; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25413; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26414; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27415; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28416; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29417; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30418; SDAG-NEXT:    s_waitcnt vmcnt(0)419; SDAG-NEXT:    s_nop 0420; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel:[0,1,0] op_sel_hi:[0,1,0]421; SDAG-NEXT:    s_nop 15422; SDAG-NEXT:    s_nop 3423; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0424; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1425; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2426; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3427; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4428; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5429; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6430; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7431; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8432; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9433; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10434; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11435; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12436; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13437; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14438; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15439; SDAG-NEXT:    s_setpc_b64 s[30:31]440;441; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_3__cbsz1__blgp1:442; GISEL:       ; %bb.0:443; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)444; GISEL-NEXT:    scratch_load_dword a15, off, s32445; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4446; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8447; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16448; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17449; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18450; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19451; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20452; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21453; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22454; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23455; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24456; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25457; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26458; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27459; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28460; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29461; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30462; GISEL-NEXT:    s_waitcnt vmcnt(0)463; GISEL-NEXT:    s_nop 0464; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel:[0,1,0] op_sel_hi:[0,1,0]465; GISEL-NEXT:    s_nop 15466; GISEL-NEXT:    s_nop 3467; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0468; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1469; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2470; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3471; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4472; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5473; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6474; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7475; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8476; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9477; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10478; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11479; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12480; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13481; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14482; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15483; GISEL-NEXT:    s_setpc_b64 s[30:31]484  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,485                                                                                      i32 0, ; cbsz486                                                                                      i32 0, ; blgp487                                                                                      i32 0, i32 %scale0, i32 3, i32 %scale1)488  ret <16 x float> %result489}490 491define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_3_0__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {492; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_0__cbsz1__blgp1:493; SDAG:       ; %bb.0:494; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)495; SDAG-NEXT:    scratch_load_dword a15, off, s32496; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8497; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4498; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16499; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17500; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18501; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19502; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20503; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21504; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22505; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23506; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24507; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25508; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26509; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27510; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28511; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29512; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30513; SDAG-NEXT:    s_waitcnt vmcnt(0)514; SDAG-NEXT:    s_nop 0515; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel:[1,0,0] op_sel_hi:[1,0,0]516; SDAG-NEXT:    s_nop 15517; SDAG-NEXT:    s_nop 3518; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0519; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1520; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2521; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3522; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4523; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5524; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6525; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7526; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8527; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9528; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10529; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11530; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12531; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13532; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14533; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15534; SDAG-NEXT:    s_setpc_b64 s[30:31]535;536; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_0__cbsz1__blgp1:537; GISEL:       ; %bb.0:538; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)539; GISEL-NEXT:    scratch_load_dword a15, off, s32540; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4541; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8542; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16543; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17544; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18545; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19546; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20547; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21548; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22549; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23550; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24551; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25552; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26553; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27554; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28555; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29556; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30557; GISEL-NEXT:    s_waitcnt vmcnt(0)558; GISEL-NEXT:    s_nop 0559; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel:[1,0,0] op_sel_hi:[1,0,0]560; GISEL-NEXT:    s_nop 15561; GISEL-NEXT:    s_nop 3562; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0563; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1564; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2565; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3566; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4567; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5568; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6569; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7570; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8571; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9572; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10573; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11574; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12575; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13576; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14577; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15578; GISEL-NEXT:    s_setpc_b64 s[30:31]579  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,580                                                                                      i32 0, ; cbsz581                                                                                      i32 0, ; blgp582                                                                                      i32 3, i32 %scale0, i32 0, i32 %scale1)583  ret <16 x float> %result584}585 586define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_2_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {587; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_3__cbsz1__blgp1:588; SDAG:       ; %bb.0:589; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)590; SDAG-NEXT:    scratch_load_dword a15, off, s32591; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8592; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4593; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16594; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17595; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18596; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19597; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20598; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21599; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22600; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23601; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24602; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25603; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26604; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27605; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28606; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29607; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30608; SDAG-NEXT:    s_waitcnt vmcnt(0)609; SDAG-NEXT:    s_nop 0610; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel:[0,1,0] op_sel_hi:[1,1,0]611; SDAG-NEXT:    s_nop 15612; SDAG-NEXT:    s_nop 3613; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0614; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1615; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2616; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3617; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4618; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5619; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6620; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7621; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8622; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9623; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10624; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11625; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12626; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13627; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14628; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15629; SDAG-NEXT:    s_setpc_b64 s[30:31]630;631; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_3__cbsz1__blgp1:632; GISEL:       ; %bb.0:633; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)634; GISEL-NEXT:    scratch_load_dword a15, off, s32635; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4636; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8637; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16638; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17639; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18640; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19641; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20642; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21643; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22644; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23645; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24646; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25647; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26648; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27649; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28650; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29651; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30652; GISEL-NEXT:    s_waitcnt vmcnt(0)653; GISEL-NEXT:    s_nop 0654; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel:[0,1,0] op_sel_hi:[1,1,0]655; GISEL-NEXT:    s_nop 15656; GISEL-NEXT:    s_nop 3657; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0658; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1659; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2660; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3661; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4662; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5663; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6664; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7665; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8666; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9667; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10668; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11669; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12670; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13671; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14672; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15673; GISEL-NEXT:    s_setpc_b64 s[30:31]674  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,675                                                                                      i32 0, ; cbsz676                                                                                      i32 0, ; blgp677                                                                                      i32 2, i32 %scale0, i32 3, i32 %scale1)678  ret <16 x float> %result679}680 681define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_3_2__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {682; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_2__cbsz1__blgp1:683; SDAG:       ; %bb.0:684; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)685; SDAG-NEXT:    scratch_load_dword a15, off, s32686; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8687; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4688; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16689; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17690; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18691; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19692; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20693; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21694; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22695; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23696; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24697; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25698; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26699; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27700; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28701; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29702; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30703; SDAG-NEXT:    s_waitcnt vmcnt(0)704; SDAG-NEXT:    s_nop 0705; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel:[1,0,0] op_sel_hi:[1,1,0]706; SDAG-NEXT:    s_nop 15707; SDAG-NEXT:    s_nop 3708; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0709; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1710; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2711; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3712; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4713; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5714; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6715; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7716; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8717; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9718; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10719; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11720; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12721; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13722; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14723; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15724; SDAG-NEXT:    s_setpc_b64 s[30:31]725;726; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_2__cbsz1__blgp1:727; GISEL:       ; %bb.0:728; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)729; GISEL-NEXT:    scratch_load_dword a15, off, s32730; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4731; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8732; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16733; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17734; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18735; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19736; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20737; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21738; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22739; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23740; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24741; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25742; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26743; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27744; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28745; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29746; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30747; GISEL-NEXT:    s_waitcnt vmcnt(0)748; GISEL-NEXT:    s_nop 0749; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel:[1,0,0] op_sel_hi:[1,1,0]750; GISEL-NEXT:    s_nop 15751; GISEL-NEXT:    s_nop 3752; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0753; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1754; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2755; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3756; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4757; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5758; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6759; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7760; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8761; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9762; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10763; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11764; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12765; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13766; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14767; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15768; GISEL-NEXT:    s_setpc_b64 s[30:31]769  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,770                                                                                      i32 0, ; cbsz771                                                                                      i32 0, ; blgp772                                                                                      i32 3, i32 %scale0, i32 2, i32 %scale1)773  ret <16 x float> %result774}775 776; This should be optimized to avoid the scale777define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {778; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0__constant_scale_0_0:779; GCN:       ; %bb.0:780; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)781; GCN-NEXT:    scratch_load_dword a15, off, s32782; GCN-NEXT:    v_accvgpr_write_b32 a0, v16783; GCN-NEXT:    v_accvgpr_write_b32 a1, v17784; GCN-NEXT:    v_accvgpr_write_b32 a2, v18785; GCN-NEXT:    v_accvgpr_write_b32 a3, v19786; GCN-NEXT:    v_accvgpr_write_b32 a4, v20787; GCN-NEXT:    v_accvgpr_write_b32 a5, v21788; GCN-NEXT:    v_accvgpr_write_b32 a6, v22789; GCN-NEXT:    v_accvgpr_write_b32 a7, v23790; GCN-NEXT:    v_accvgpr_write_b32 a8, v24791; GCN-NEXT:    v_accvgpr_write_b32 a9, v25792; GCN-NEXT:    v_accvgpr_write_b32 a10, v26793; GCN-NEXT:    v_accvgpr_write_b32 a11, v27794; GCN-NEXT:    v_accvgpr_write_b32 a12, v28795; GCN-NEXT:    v_accvgpr_write_b32 a13, v29796; GCN-NEXT:    v_accvgpr_write_b32 a14, v30797; GCN-NEXT:    s_waitcnt vmcnt(0)798; GCN-NEXT:    s_nop 0799; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15]800; GCN-NEXT:    s_nop 15801; GCN-NEXT:    s_nop 3802; GCN-NEXT:    v_accvgpr_read_b32 v0, a0803; GCN-NEXT:    v_accvgpr_read_b32 v1, a1804; GCN-NEXT:    v_accvgpr_read_b32 v2, a2805; GCN-NEXT:    v_accvgpr_read_b32 v3, a3806; GCN-NEXT:    v_accvgpr_read_b32 v4, a4807; GCN-NEXT:    v_accvgpr_read_b32 v5, a5808; GCN-NEXT:    v_accvgpr_read_b32 v6, a6809; GCN-NEXT:    v_accvgpr_read_b32 v7, a7810; GCN-NEXT:    v_accvgpr_read_b32 v8, a8811; GCN-NEXT:    v_accvgpr_read_b32 v9, a9812; GCN-NEXT:    v_accvgpr_read_b32 v10, a10813; GCN-NEXT:    v_accvgpr_read_b32 v11, a11814; GCN-NEXT:    v_accvgpr_read_b32 v12, a12815; GCN-NEXT:    v_accvgpr_read_b32 v13, a13816; GCN-NEXT:    v_accvgpr_read_b32 v14, a14817; GCN-NEXT:    v_accvgpr_read_b32 v15, a15818; GCN-NEXT:    s_setpc_b64 s[30:31]819  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,820                                                                                      i32 0, ; cbsz821                                                                                      i32 0, ; blgp822                                                                                      i32 0, i32 0, i32 0, i32 0)823  ret <16 x float> %result824}825 826; fp8 x bf8827define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {828; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1:829; SDAG:       ; %bb.0:830; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)831; SDAG-NEXT:    scratch_load_dword a15, off, s32832; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:8833; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:4834; SDAG-NEXT:    v_accvgpr_write_b32 a0, v16835; SDAG-NEXT:    v_accvgpr_write_b32 a1, v17836; SDAG-NEXT:    v_accvgpr_write_b32 a2, v18837; SDAG-NEXT:    v_accvgpr_write_b32 a3, v19838; SDAG-NEXT:    v_accvgpr_write_b32 a4, v20839; SDAG-NEXT:    v_accvgpr_write_b32 a5, v21840; SDAG-NEXT:    v_accvgpr_write_b32 a6, v22841; SDAG-NEXT:    v_accvgpr_write_b32 a7, v23842; SDAG-NEXT:    v_accvgpr_write_b32 a8, v24843; SDAG-NEXT:    v_accvgpr_write_b32 a9, v25844; SDAG-NEXT:    v_accvgpr_write_b32 a10, v26845; SDAG-NEXT:    v_accvgpr_write_b32 a11, v27846; SDAG-NEXT:    v_accvgpr_write_b32 a12, v28847; SDAG-NEXT:    v_accvgpr_write_b32 a13, v29848; SDAG-NEXT:    v_accvgpr_write_b32 a14, v30849; SDAG-NEXT:    s_waitcnt vmcnt(0)850; SDAG-NEXT:    s_nop 0851; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] blgp:1852; SDAG-NEXT:    s_nop 15853; SDAG-NEXT:    s_nop 3854; SDAG-NEXT:    v_accvgpr_read_b32 v0, a0855; SDAG-NEXT:    v_accvgpr_read_b32 v1, a1856; SDAG-NEXT:    v_accvgpr_read_b32 v2, a2857; SDAG-NEXT:    v_accvgpr_read_b32 v3, a3858; SDAG-NEXT:    v_accvgpr_read_b32 v4, a4859; SDAG-NEXT:    v_accvgpr_read_b32 v5, a5860; SDAG-NEXT:    v_accvgpr_read_b32 v6, a6861; SDAG-NEXT:    v_accvgpr_read_b32 v7, a7862; SDAG-NEXT:    v_accvgpr_read_b32 v8, a8863; SDAG-NEXT:    v_accvgpr_read_b32 v9, a9864; SDAG-NEXT:    v_accvgpr_read_b32 v10, a10865; SDAG-NEXT:    v_accvgpr_read_b32 v11, a11866; SDAG-NEXT:    v_accvgpr_read_b32 v12, a12867; SDAG-NEXT:    v_accvgpr_read_b32 v13, a13868; SDAG-NEXT:    v_accvgpr_read_b32 v14, a14869; SDAG-NEXT:    v_accvgpr_read_b32 v15, a15870; SDAG-NEXT:    s_setpc_b64 s[30:31]871;872; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1:873; GISEL:       ; %bb.0:874; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)875; GISEL-NEXT:    scratch_load_dword a15, off, s32876; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:4877; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:8878; GISEL-NEXT:    v_accvgpr_write_b32 a0, v16879; GISEL-NEXT:    v_accvgpr_write_b32 a1, v17880; GISEL-NEXT:    v_accvgpr_write_b32 a2, v18881; GISEL-NEXT:    v_accvgpr_write_b32 a3, v19882; GISEL-NEXT:    v_accvgpr_write_b32 a4, v20883; GISEL-NEXT:    v_accvgpr_write_b32 a5, v21884; GISEL-NEXT:    v_accvgpr_write_b32 a6, v22885; GISEL-NEXT:    v_accvgpr_write_b32 a7, v23886; GISEL-NEXT:    v_accvgpr_write_b32 a8, v24887; GISEL-NEXT:    v_accvgpr_write_b32 a9, v25888; GISEL-NEXT:    v_accvgpr_write_b32 a10, v26889; GISEL-NEXT:    v_accvgpr_write_b32 a11, v27890; GISEL-NEXT:    v_accvgpr_write_b32 a12, v28891; GISEL-NEXT:    v_accvgpr_write_b32 a13, v29892; GISEL-NEXT:    v_accvgpr_write_b32 a14, v30893; GISEL-NEXT:    s_waitcnt vmcnt(0)894; GISEL-NEXT:    s_nop 0895; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] blgp:1896; GISEL-NEXT:    s_nop 15897; GISEL-NEXT:    s_nop 3898; GISEL-NEXT:    v_accvgpr_read_b32 v0, a0899; GISEL-NEXT:    v_accvgpr_read_b32 v1, a1900; GISEL-NEXT:    v_accvgpr_read_b32 v2, a2901; GISEL-NEXT:    v_accvgpr_read_b32 v3, a3902; GISEL-NEXT:    v_accvgpr_read_b32 v4, a4903; GISEL-NEXT:    v_accvgpr_read_b32 v5, a5904; GISEL-NEXT:    v_accvgpr_read_b32 v6, a6905; GISEL-NEXT:    v_accvgpr_read_b32 v7, a7906; GISEL-NEXT:    v_accvgpr_read_b32 v8, a8907; GISEL-NEXT:    v_accvgpr_read_b32 v9, a9908; GISEL-NEXT:    v_accvgpr_read_b32 v10, a10909; GISEL-NEXT:    v_accvgpr_read_b32 v11, a11910; GISEL-NEXT:    v_accvgpr_read_b32 v12, a12911; GISEL-NEXT:    v_accvgpr_read_b32 v13, a13912; GISEL-NEXT:    v_accvgpr_read_b32 v14, a14913; GISEL-NEXT:    v_accvgpr_read_b32 v15, a15914; GISEL-NEXT:    s_setpc_b64 s[30:31]915  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,916                                                                                      i32 0, ; cbsz917                                                                                      i32 1, ; blgp918                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)919  ret <16 x float> %result920}921 922define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {923; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1__constant_scale_0_0:924; GCN:       ; %bb.0:925; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)926; GCN-NEXT:    scratch_load_dword a15, off, s32927; GCN-NEXT:    v_accvgpr_write_b32 a0, v16928; GCN-NEXT:    v_accvgpr_write_b32 a1, v17929; GCN-NEXT:    v_accvgpr_write_b32 a2, v18930; GCN-NEXT:    v_accvgpr_write_b32 a3, v19931; GCN-NEXT:    v_accvgpr_write_b32 a4, v20932; GCN-NEXT:    v_accvgpr_write_b32 a5, v21933; GCN-NEXT:    v_accvgpr_write_b32 a6, v22934; GCN-NEXT:    v_accvgpr_write_b32 a7, v23935; GCN-NEXT:    v_accvgpr_write_b32 a8, v24936; GCN-NEXT:    v_accvgpr_write_b32 a9, v25937; GCN-NEXT:    v_accvgpr_write_b32 a10, v26938; GCN-NEXT:    v_accvgpr_write_b32 a11, v27939; GCN-NEXT:    v_accvgpr_write_b32 a12, v28940; GCN-NEXT:    v_accvgpr_write_b32 a13, v29941; GCN-NEXT:    v_accvgpr_write_b32 a14, v30942; GCN-NEXT:    s_waitcnt vmcnt(0)943; GCN-NEXT:    s_nop 0944; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] blgp:1945; GCN-NEXT:    s_nop 15946; GCN-NEXT:    s_nop 3947; GCN-NEXT:    v_accvgpr_read_b32 v0, a0948; GCN-NEXT:    v_accvgpr_read_b32 v1, a1949; GCN-NEXT:    v_accvgpr_read_b32 v2, a2950; GCN-NEXT:    v_accvgpr_read_b32 v3, a3951; GCN-NEXT:    v_accvgpr_read_b32 v4, a4952; GCN-NEXT:    v_accvgpr_read_b32 v5, a5953; GCN-NEXT:    v_accvgpr_read_b32 v6, a6954; GCN-NEXT:    v_accvgpr_read_b32 v7, a7955; GCN-NEXT:    v_accvgpr_read_b32 v8, a8956; GCN-NEXT:    v_accvgpr_read_b32 v9, a9957; GCN-NEXT:    v_accvgpr_read_b32 v10, a10958; GCN-NEXT:    v_accvgpr_read_b32 v11, a11959; GCN-NEXT:    v_accvgpr_read_b32 v12, a12960; GCN-NEXT:    v_accvgpr_read_b32 v13, a13961; GCN-NEXT:    v_accvgpr_read_b32 v14, a14962; GCN-NEXT:    v_accvgpr_read_b32 v15, a15963; GCN-NEXT:    s_setpc_b64 s[30:31]964  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,965                                                                                      i32 0, ; cbsz966                                                                                      i32 1, ; blgp967                                                                                      i32 0, i32 0, i32 0, i32 0)968  ret <16 x float> %result969}970 971; fp8 x fp6972define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {973; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2:974; GCN:       ; %bb.0:975; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)976; GCN-NEXT:    scratch_load_dword v31, off, s32977; GCN-NEXT:    v_accvgpr_write_b32 a0, v14978; GCN-NEXT:    v_accvgpr_write_b32 a1, v15979; GCN-NEXT:    v_accvgpr_write_b32 a2, v16980; GCN-NEXT:    v_accvgpr_write_b32 a3, v17981; GCN-NEXT:    v_accvgpr_write_b32 a4, v18982; GCN-NEXT:    v_accvgpr_write_b32 a5, v19983; GCN-NEXT:    v_accvgpr_write_b32 a6, v20984; GCN-NEXT:    v_accvgpr_write_b32 a7, v21985; GCN-NEXT:    v_accvgpr_write_b32 a8, v22986; GCN-NEXT:    v_accvgpr_write_b32 a9, v23987; GCN-NEXT:    v_accvgpr_write_b32 a10, v24988; GCN-NEXT:    v_accvgpr_write_b32 a11, v25989; GCN-NEXT:    v_accvgpr_write_b32 a12, v26990; GCN-NEXT:    v_accvgpr_write_b32 a13, v27991; GCN-NEXT:    v_accvgpr_write_b32 a14, v28992; GCN-NEXT:    v_accvgpr_write_b32 a15, v29993; GCN-NEXT:    s_waitcnt vmcnt(0)994; GCN-NEXT:    s_nop 0995; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] blgp:2996; GCN-NEXT:    s_nop 15997; GCN-NEXT:    s_nop 3998; GCN-NEXT:    v_accvgpr_read_b32 v0, a0999; GCN-NEXT:    v_accvgpr_read_b32 v1, a11000; GCN-NEXT:    v_accvgpr_read_b32 v2, a21001; GCN-NEXT:    v_accvgpr_read_b32 v3, a31002; GCN-NEXT:    v_accvgpr_read_b32 v4, a41003; GCN-NEXT:    v_accvgpr_read_b32 v5, a51004; GCN-NEXT:    v_accvgpr_read_b32 v6, a61005; GCN-NEXT:    v_accvgpr_read_b32 v7, a71006; GCN-NEXT:    v_accvgpr_read_b32 v8, a81007; GCN-NEXT:    v_accvgpr_read_b32 v9, a91008; GCN-NEXT:    v_accvgpr_read_b32 v10, a101009; GCN-NEXT:    v_accvgpr_read_b32 v11, a111010; GCN-NEXT:    v_accvgpr_read_b32 v12, a121011; GCN-NEXT:    v_accvgpr_read_b32 v13, a131012; GCN-NEXT:    v_accvgpr_read_b32 v14, a141013; GCN-NEXT:    v_accvgpr_read_b32 v15, a151014; GCN-NEXT:    s_setpc_b64 s[30:31]1015  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1016                                                                                      i32 0, ; cbsz1017                                                                                      i32 2, ; blgp1018                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1019  ret <16 x float> %result1020}1021 1022define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {1023; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2__constant_scale_0_0:1024; GCN:       ; %bb.0:1025; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1026; GCN-NEXT:    v_accvgpr_write_b32 a0, v141027; GCN-NEXT:    v_accvgpr_write_b32 a1, v151028; GCN-NEXT:    v_accvgpr_write_b32 a2, v161029; GCN-NEXT:    v_accvgpr_write_b32 a3, v171030; GCN-NEXT:    v_accvgpr_write_b32 a4, v181031; GCN-NEXT:    v_accvgpr_write_b32 a5, v191032; GCN-NEXT:    v_accvgpr_write_b32 a6, v201033; GCN-NEXT:    v_accvgpr_write_b32 a7, v211034; GCN-NEXT:    v_accvgpr_write_b32 a8, v221035; GCN-NEXT:    v_accvgpr_write_b32 a9, v231036; GCN-NEXT:    v_accvgpr_write_b32 a10, v241037; GCN-NEXT:    v_accvgpr_write_b32 a11, v251038; GCN-NEXT:    v_accvgpr_write_b32 a12, v261039; GCN-NEXT:    v_accvgpr_write_b32 a13, v271040; GCN-NEXT:    v_accvgpr_write_b32 a14, v281041; GCN-NEXT:    v_accvgpr_write_b32 a15, v291042; GCN-NEXT:    s_nop 11043; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] blgp:21044; GCN-NEXT:    s_nop 151045; GCN-NEXT:    s_nop 31046; GCN-NEXT:    v_accvgpr_read_b32 v0, a01047; GCN-NEXT:    v_accvgpr_read_b32 v1, a11048; GCN-NEXT:    v_accvgpr_read_b32 v2, a21049; GCN-NEXT:    v_accvgpr_read_b32 v3, a31050; GCN-NEXT:    v_accvgpr_read_b32 v4, a41051; GCN-NEXT:    v_accvgpr_read_b32 v5, a51052; GCN-NEXT:    v_accvgpr_read_b32 v6, a61053; GCN-NEXT:    v_accvgpr_read_b32 v7, a71054; GCN-NEXT:    v_accvgpr_read_b32 v8, a81055; GCN-NEXT:    v_accvgpr_read_b32 v9, a91056; GCN-NEXT:    v_accvgpr_read_b32 v10, a101057; GCN-NEXT:    v_accvgpr_read_b32 v11, a111058; GCN-NEXT:    v_accvgpr_read_b32 v12, a121059; GCN-NEXT:    v_accvgpr_read_b32 v13, a131060; GCN-NEXT:    v_accvgpr_read_b32 v14, a141061; GCN-NEXT:    v_accvgpr_read_b32 v15, a151062; GCN-NEXT:    s_setpc_b64 s[30:31]1063  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1064                                                                                      i32 0, ; cbsz1065                                                                                      i32 2, ; blgp1066                                                                                      i32 0, i32 0, i32 0, i32 0)1067  ret <16 x float> %result1068}1069 1070; fp8 x bf61071define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1072; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3:1073; GCN:       ; %bb.0:1074; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1075; GCN-NEXT:    scratch_load_dword v31, off, s321076; GCN-NEXT:    v_accvgpr_write_b32 a0, v141077; GCN-NEXT:    v_accvgpr_write_b32 a1, v151078; GCN-NEXT:    v_accvgpr_write_b32 a2, v161079; GCN-NEXT:    v_accvgpr_write_b32 a3, v171080; GCN-NEXT:    v_accvgpr_write_b32 a4, v181081; GCN-NEXT:    v_accvgpr_write_b32 a5, v191082; GCN-NEXT:    v_accvgpr_write_b32 a6, v201083; GCN-NEXT:    v_accvgpr_write_b32 a7, v211084; GCN-NEXT:    v_accvgpr_write_b32 a8, v221085; GCN-NEXT:    v_accvgpr_write_b32 a9, v231086; GCN-NEXT:    v_accvgpr_write_b32 a10, v241087; GCN-NEXT:    v_accvgpr_write_b32 a11, v251088; GCN-NEXT:    v_accvgpr_write_b32 a12, v261089; GCN-NEXT:    v_accvgpr_write_b32 a13, v271090; GCN-NEXT:    v_accvgpr_write_b32 a14, v281091; GCN-NEXT:    v_accvgpr_write_b32 a15, v291092; GCN-NEXT:    s_waitcnt vmcnt(0)1093; GCN-NEXT:    s_nop 01094; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] blgp:31095; GCN-NEXT:    s_nop 151096; GCN-NEXT:    s_nop 31097; GCN-NEXT:    v_accvgpr_read_b32 v0, a01098; GCN-NEXT:    v_accvgpr_read_b32 v1, a11099; GCN-NEXT:    v_accvgpr_read_b32 v2, a21100; GCN-NEXT:    v_accvgpr_read_b32 v3, a31101; GCN-NEXT:    v_accvgpr_read_b32 v4, a41102; GCN-NEXT:    v_accvgpr_read_b32 v5, a51103; GCN-NEXT:    v_accvgpr_read_b32 v6, a61104; GCN-NEXT:    v_accvgpr_read_b32 v7, a71105; GCN-NEXT:    v_accvgpr_read_b32 v8, a81106; GCN-NEXT:    v_accvgpr_read_b32 v9, a91107; GCN-NEXT:    v_accvgpr_read_b32 v10, a101108; GCN-NEXT:    v_accvgpr_read_b32 v11, a111109; GCN-NEXT:    v_accvgpr_read_b32 v12, a121110; GCN-NEXT:    v_accvgpr_read_b32 v13, a131111; GCN-NEXT:    v_accvgpr_read_b32 v14, a141112; GCN-NEXT:    v_accvgpr_read_b32 v15, a151113; GCN-NEXT:    s_setpc_b64 s[30:31]1114  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1115                                                                                      i32 0, ; cbsz1116                                                                                      i32 3, ; blgp1117                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1118  ret <16 x float> %result1119}1120 1121define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {1122; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3__constant_scale_0_0:1123; GCN:       ; %bb.0:1124; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1125; GCN-NEXT:    v_accvgpr_write_b32 a0, v141126; GCN-NEXT:    v_accvgpr_write_b32 a1, v151127; GCN-NEXT:    v_accvgpr_write_b32 a2, v161128; GCN-NEXT:    v_accvgpr_write_b32 a3, v171129; GCN-NEXT:    v_accvgpr_write_b32 a4, v181130; GCN-NEXT:    v_accvgpr_write_b32 a5, v191131; GCN-NEXT:    v_accvgpr_write_b32 a6, v201132; GCN-NEXT:    v_accvgpr_write_b32 a7, v211133; GCN-NEXT:    v_accvgpr_write_b32 a8, v221134; GCN-NEXT:    v_accvgpr_write_b32 a9, v231135; GCN-NEXT:    v_accvgpr_write_b32 a10, v241136; GCN-NEXT:    v_accvgpr_write_b32 a11, v251137; GCN-NEXT:    v_accvgpr_write_b32 a12, v261138; GCN-NEXT:    v_accvgpr_write_b32 a13, v271139; GCN-NEXT:    v_accvgpr_write_b32 a14, v281140; GCN-NEXT:    v_accvgpr_write_b32 a15, v291141; GCN-NEXT:    s_nop 11142; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] blgp:31143; GCN-NEXT:    s_nop 151144; GCN-NEXT:    s_nop 31145; GCN-NEXT:    v_accvgpr_read_b32 v0, a01146; GCN-NEXT:    v_accvgpr_read_b32 v1, a11147; GCN-NEXT:    v_accvgpr_read_b32 v2, a21148; GCN-NEXT:    v_accvgpr_read_b32 v3, a31149; GCN-NEXT:    v_accvgpr_read_b32 v4, a41150; GCN-NEXT:    v_accvgpr_read_b32 v5, a51151; GCN-NEXT:    v_accvgpr_read_b32 v6, a61152; GCN-NEXT:    v_accvgpr_read_b32 v7, a71153; GCN-NEXT:    v_accvgpr_read_b32 v8, a81154; GCN-NEXT:    v_accvgpr_read_b32 v9, a91155; GCN-NEXT:    v_accvgpr_read_b32 v10, a101156; GCN-NEXT:    v_accvgpr_read_b32 v11, a111157; GCN-NEXT:    v_accvgpr_read_b32 v12, a121158; GCN-NEXT:    v_accvgpr_read_b32 v13, a131159; GCN-NEXT:    v_accvgpr_read_b32 v14, a141160; GCN-NEXT:    v_accvgpr_read_b32 v15, a151161; GCN-NEXT:    s_setpc_b64 s[30:31]1162  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1163                                                                                      i32 0, ; cbsz1164                                                                                      i32 3, ; blgp1165                                                                                      i32 0, i32 0, i32 0, i32 0)1166  ret <16 x float> %result1167}1168 1169; fp8 x fp41170define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1171; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4:1172; GCN:       ; %bb.0:1173; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1174; GCN-NEXT:    v_accvgpr_write_b32 a0, v121175; GCN-NEXT:    v_accvgpr_write_b32 a1, v131176; GCN-NEXT:    v_accvgpr_write_b32 a2, v141177; GCN-NEXT:    v_accvgpr_write_b32 a3, v151178; GCN-NEXT:    v_accvgpr_write_b32 a4, v161179; GCN-NEXT:    v_accvgpr_write_b32 a5, v171180; GCN-NEXT:    v_accvgpr_write_b32 a6, v181181; GCN-NEXT:    v_accvgpr_write_b32 a7, v191182; GCN-NEXT:    v_accvgpr_write_b32 a8, v201183; GCN-NEXT:    v_accvgpr_write_b32 a9, v211184; GCN-NEXT:    v_accvgpr_write_b32 a10, v221185; GCN-NEXT:    v_accvgpr_write_b32 a11, v231186; GCN-NEXT:    v_accvgpr_write_b32 a12, v241187; GCN-NEXT:    v_accvgpr_write_b32 a13, v251188; GCN-NEXT:    v_accvgpr_write_b32 a14, v261189; GCN-NEXT:    v_accvgpr_write_b32 a15, v271190; GCN-NEXT:    s_nop 11191; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] blgp:41192; GCN-NEXT:    s_nop 151193; GCN-NEXT:    s_nop 31194; GCN-NEXT:    v_accvgpr_read_b32 v0, a01195; GCN-NEXT:    v_accvgpr_read_b32 v1, a11196; GCN-NEXT:    v_accvgpr_read_b32 v2, a21197; GCN-NEXT:    v_accvgpr_read_b32 v3, a31198; GCN-NEXT:    v_accvgpr_read_b32 v4, a41199; GCN-NEXT:    v_accvgpr_read_b32 v5, a51200; GCN-NEXT:    v_accvgpr_read_b32 v6, a61201; GCN-NEXT:    v_accvgpr_read_b32 v7, a71202; GCN-NEXT:    v_accvgpr_read_b32 v8, a81203; GCN-NEXT:    v_accvgpr_read_b32 v9, a91204; GCN-NEXT:    v_accvgpr_read_b32 v10, a101205; GCN-NEXT:    v_accvgpr_read_b32 v11, a111206; GCN-NEXT:    v_accvgpr_read_b32 v12, a121207; GCN-NEXT:    v_accvgpr_read_b32 v13, a131208; GCN-NEXT:    v_accvgpr_read_b32 v14, a141209; GCN-NEXT:    v_accvgpr_read_b32 v15, a151210; GCN-NEXT:    s_setpc_b64 s[30:31]1211  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,1212                                                                                      i32 0, ; cbsz1213                                                                                      i32 4, ; blgp1214                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1215  ret <16 x float> %result1216}1217 1218define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4__constant_scale_0_0(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) {1219; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4__constant_scale_0_0:1220; GCN:       ; %bb.0:1221; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1222; GCN-NEXT:    v_accvgpr_write_b32 a0, v121223; GCN-NEXT:    v_accvgpr_write_b32 a1, v131224; GCN-NEXT:    v_accvgpr_write_b32 a2, v141225; GCN-NEXT:    v_accvgpr_write_b32 a3, v151226; GCN-NEXT:    v_accvgpr_write_b32 a4, v161227; GCN-NEXT:    v_accvgpr_write_b32 a5, v171228; GCN-NEXT:    v_accvgpr_write_b32 a6, v181229; GCN-NEXT:    v_accvgpr_write_b32 a7, v191230; GCN-NEXT:    v_accvgpr_write_b32 a8, v201231; GCN-NEXT:    v_accvgpr_write_b32 a9, v211232; GCN-NEXT:    v_accvgpr_write_b32 a10, v221233; GCN-NEXT:    v_accvgpr_write_b32 a11, v231234; GCN-NEXT:    v_accvgpr_write_b32 a12, v241235; GCN-NEXT:    v_accvgpr_write_b32 a13, v251236; GCN-NEXT:    v_accvgpr_write_b32 a14, v261237; GCN-NEXT:    v_accvgpr_write_b32 a15, v271238; GCN-NEXT:    s_nop 11239; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15] blgp:41240; GCN-NEXT:    s_nop 151241; GCN-NEXT:    s_nop 31242; GCN-NEXT:    v_accvgpr_read_b32 v0, a01243; GCN-NEXT:    v_accvgpr_read_b32 v1, a11244; GCN-NEXT:    v_accvgpr_read_b32 v2, a21245; GCN-NEXT:    v_accvgpr_read_b32 v3, a31246; GCN-NEXT:    v_accvgpr_read_b32 v4, a41247; GCN-NEXT:    v_accvgpr_read_b32 v5, a51248; GCN-NEXT:    v_accvgpr_read_b32 v6, a61249; GCN-NEXT:    v_accvgpr_read_b32 v7, a71250; GCN-NEXT:    v_accvgpr_read_b32 v8, a81251; GCN-NEXT:    v_accvgpr_read_b32 v9, a91252; GCN-NEXT:    v_accvgpr_read_b32 v10, a101253; GCN-NEXT:    v_accvgpr_read_b32 v11, a111254; GCN-NEXT:    v_accvgpr_read_b32 v12, a121255; GCN-NEXT:    v_accvgpr_read_b32 v13, a131256; GCN-NEXT:    v_accvgpr_read_b32 v14, a141257; GCN-NEXT:    v_accvgpr_read_b32 v15, a151258; GCN-NEXT:    s_setpc_b64 s[30:31]1259  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,1260                                                                                      i32 0, ; cbsz1261                                                                                      i32 4, ; blgp1262                                                                                      i32 0, i32 0, i32 0, i32 0)1263  ret <16 x float> %result1264}1265 1266; bf8 x fp81267define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1268; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0:1269; SDAG:       ; %bb.0:1270; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1271; SDAG-NEXT:    scratch_load_dword a15, off, s321272; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:81273; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:41274; SDAG-NEXT:    v_accvgpr_write_b32 a0, v161275; SDAG-NEXT:    v_accvgpr_write_b32 a1, v171276; SDAG-NEXT:    v_accvgpr_write_b32 a2, v181277; SDAG-NEXT:    v_accvgpr_write_b32 a3, v191278; SDAG-NEXT:    v_accvgpr_write_b32 a4, v201279; SDAG-NEXT:    v_accvgpr_write_b32 a5, v211280; SDAG-NEXT:    v_accvgpr_write_b32 a6, v221281; SDAG-NEXT:    v_accvgpr_write_b32 a7, v231282; SDAG-NEXT:    v_accvgpr_write_b32 a8, v241283; SDAG-NEXT:    v_accvgpr_write_b32 a9, v251284; SDAG-NEXT:    v_accvgpr_write_b32 a10, v261285; SDAG-NEXT:    v_accvgpr_write_b32 a11, v271286; SDAG-NEXT:    v_accvgpr_write_b32 a12, v281287; SDAG-NEXT:    v_accvgpr_write_b32 a13, v291288; SDAG-NEXT:    v_accvgpr_write_b32 a14, v301289; SDAG-NEXT:    s_waitcnt vmcnt(0)1290; SDAG-NEXT:    s_nop 01291; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:11292; SDAG-NEXT:    s_nop 151293; SDAG-NEXT:    s_nop 31294; SDAG-NEXT:    v_accvgpr_read_b32 v0, a01295; SDAG-NEXT:    v_accvgpr_read_b32 v1, a11296; SDAG-NEXT:    v_accvgpr_read_b32 v2, a21297; SDAG-NEXT:    v_accvgpr_read_b32 v3, a31298; SDAG-NEXT:    v_accvgpr_read_b32 v4, a41299; SDAG-NEXT:    v_accvgpr_read_b32 v5, a51300; SDAG-NEXT:    v_accvgpr_read_b32 v6, a61301; SDAG-NEXT:    v_accvgpr_read_b32 v7, a71302; SDAG-NEXT:    v_accvgpr_read_b32 v8, a81303; SDAG-NEXT:    v_accvgpr_read_b32 v9, a91304; SDAG-NEXT:    v_accvgpr_read_b32 v10, a101305; SDAG-NEXT:    v_accvgpr_read_b32 v11, a111306; SDAG-NEXT:    v_accvgpr_read_b32 v12, a121307; SDAG-NEXT:    v_accvgpr_read_b32 v13, a131308; SDAG-NEXT:    v_accvgpr_read_b32 v14, a141309; SDAG-NEXT:    v_accvgpr_read_b32 v15, a151310; SDAG-NEXT:    s_setpc_b64 s[30:31]1311;1312; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0:1313; GISEL:       ; %bb.0:1314; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1315; GISEL-NEXT:    scratch_load_dword a15, off, s321316; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:41317; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:81318; GISEL-NEXT:    v_accvgpr_write_b32 a0, v161319; GISEL-NEXT:    v_accvgpr_write_b32 a1, v171320; GISEL-NEXT:    v_accvgpr_write_b32 a2, v181321; GISEL-NEXT:    v_accvgpr_write_b32 a3, v191322; GISEL-NEXT:    v_accvgpr_write_b32 a4, v201323; GISEL-NEXT:    v_accvgpr_write_b32 a5, v211324; GISEL-NEXT:    v_accvgpr_write_b32 a6, v221325; GISEL-NEXT:    v_accvgpr_write_b32 a7, v231326; GISEL-NEXT:    v_accvgpr_write_b32 a8, v241327; GISEL-NEXT:    v_accvgpr_write_b32 a9, v251328; GISEL-NEXT:    v_accvgpr_write_b32 a10, v261329; GISEL-NEXT:    v_accvgpr_write_b32 a11, v271330; GISEL-NEXT:    v_accvgpr_write_b32 a12, v281331; GISEL-NEXT:    v_accvgpr_write_b32 a13, v291332; GISEL-NEXT:    v_accvgpr_write_b32 a14, v301333; GISEL-NEXT:    s_waitcnt vmcnt(0)1334; GISEL-NEXT:    s_nop 01335; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:11336; GISEL-NEXT:    s_nop 151337; GISEL-NEXT:    s_nop 31338; GISEL-NEXT:    v_accvgpr_read_b32 v0, a01339; GISEL-NEXT:    v_accvgpr_read_b32 v1, a11340; GISEL-NEXT:    v_accvgpr_read_b32 v2, a21341; GISEL-NEXT:    v_accvgpr_read_b32 v3, a31342; GISEL-NEXT:    v_accvgpr_read_b32 v4, a41343; GISEL-NEXT:    v_accvgpr_read_b32 v5, a51344; GISEL-NEXT:    v_accvgpr_read_b32 v6, a61345; GISEL-NEXT:    v_accvgpr_read_b32 v7, a71346; GISEL-NEXT:    v_accvgpr_read_b32 v8, a81347; GISEL-NEXT:    v_accvgpr_read_b32 v9, a91348; GISEL-NEXT:    v_accvgpr_read_b32 v10, a101349; GISEL-NEXT:    v_accvgpr_read_b32 v11, a111350; GISEL-NEXT:    v_accvgpr_read_b32 v12, a121351; GISEL-NEXT:    v_accvgpr_read_b32 v13, a131352; GISEL-NEXT:    v_accvgpr_read_b32 v14, a141353; GISEL-NEXT:    v_accvgpr_read_b32 v15, a151354; GISEL-NEXT:    s_setpc_b64 s[30:31]1355  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1356                                                                                      i32 1, ; cbsz1357                                                                                      i32 0, ; blgp1358                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1359  ret <16 x float> %result1360}1361 1362define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {1363; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0__constant_scale_0_0:1364; GCN:       ; %bb.0:1365; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1366; GCN-NEXT:    scratch_load_dword a15, off, s321367; GCN-NEXT:    v_accvgpr_write_b32 a0, v161368; GCN-NEXT:    v_accvgpr_write_b32 a1, v171369; GCN-NEXT:    v_accvgpr_write_b32 a2, v181370; GCN-NEXT:    v_accvgpr_write_b32 a3, v191371; GCN-NEXT:    v_accvgpr_write_b32 a4, v201372; GCN-NEXT:    v_accvgpr_write_b32 a5, v211373; GCN-NEXT:    v_accvgpr_write_b32 a6, v221374; GCN-NEXT:    v_accvgpr_write_b32 a7, v231375; GCN-NEXT:    v_accvgpr_write_b32 a8, v241376; GCN-NEXT:    v_accvgpr_write_b32 a9, v251377; GCN-NEXT:    v_accvgpr_write_b32 a10, v261378; GCN-NEXT:    v_accvgpr_write_b32 a11, v271379; GCN-NEXT:    v_accvgpr_write_b32 a12, v281380; GCN-NEXT:    v_accvgpr_write_b32 a13, v291381; GCN-NEXT:    v_accvgpr_write_b32 a14, v301382; GCN-NEXT:    s_waitcnt vmcnt(0)1383; GCN-NEXT:    s_nop 01384; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:11385; GCN-NEXT:    s_nop 151386; GCN-NEXT:    s_nop 31387; GCN-NEXT:    v_accvgpr_read_b32 v0, a01388; GCN-NEXT:    v_accvgpr_read_b32 v1, a11389; GCN-NEXT:    v_accvgpr_read_b32 v2, a21390; GCN-NEXT:    v_accvgpr_read_b32 v3, a31391; GCN-NEXT:    v_accvgpr_read_b32 v4, a41392; GCN-NEXT:    v_accvgpr_read_b32 v5, a51393; GCN-NEXT:    v_accvgpr_read_b32 v6, a61394; GCN-NEXT:    v_accvgpr_read_b32 v7, a71395; GCN-NEXT:    v_accvgpr_read_b32 v8, a81396; GCN-NEXT:    v_accvgpr_read_b32 v9, a91397; GCN-NEXT:    v_accvgpr_read_b32 v10, a101398; GCN-NEXT:    v_accvgpr_read_b32 v11, a111399; GCN-NEXT:    v_accvgpr_read_b32 v12, a121400; GCN-NEXT:    v_accvgpr_read_b32 v13, a131401; GCN-NEXT:    v_accvgpr_read_b32 v14, a141402; GCN-NEXT:    v_accvgpr_read_b32 v15, a151403; GCN-NEXT:    s_setpc_b64 s[30:31]1404  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1405                                                                                      i32 1, ; cbsz1406                                                                                      i32 0, ; blgp1407                                                                                      i32 0, i32 0, i32 0, i32 0)1408  ret <16 x float> %result1409}1410 1411; bf8 x bf81412define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1413; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1:1414; SDAG:       ; %bb.0:1415; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1416; SDAG-NEXT:    scratch_load_dword a15, off, s321417; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:81418; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:41419; SDAG-NEXT:    v_accvgpr_write_b32 a0, v161420; SDAG-NEXT:    v_accvgpr_write_b32 a1, v171421; SDAG-NEXT:    v_accvgpr_write_b32 a2, v181422; SDAG-NEXT:    v_accvgpr_write_b32 a3, v191423; SDAG-NEXT:    v_accvgpr_write_b32 a4, v201424; SDAG-NEXT:    v_accvgpr_write_b32 a5, v211425; SDAG-NEXT:    v_accvgpr_write_b32 a6, v221426; SDAG-NEXT:    v_accvgpr_write_b32 a7, v231427; SDAG-NEXT:    v_accvgpr_write_b32 a8, v241428; SDAG-NEXT:    v_accvgpr_write_b32 a9, v251429; SDAG-NEXT:    v_accvgpr_write_b32 a10, v261430; SDAG-NEXT:    v_accvgpr_write_b32 a11, v271431; SDAG-NEXT:    v_accvgpr_write_b32 a12, v281432; SDAG-NEXT:    v_accvgpr_write_b32 a13, v291433; SDAG-NEXT:    v_accvgpr_write_b32 a14, v301434; SDAG-NEXT:    s_waitcnt vmcnt(0)1435; SDAG-NEXT:    s_nop 01436; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:1 blgp:11437; SDAG-NEXT:    s_nop 151438; SDAG-NEXT:    s_nop 31439; SDAG-NEXT:    v_accvgpr_read_b32 v0, a01440; SDAG-NEXT:    v_accvgpr_read_b32 v1, a11441; SDAG-NEXT:    v_accvgpr_read_b32 v2, a21442; SDAG-NEXT:    v_accvgpr_read_b32 v3, a31443; SDAG-NEXT:    v_accvgpr_read_b32 v4, a41444; SDAG-NEXT:    v_accvgpr_read_b32 v5, a51445; SDAG-NEXT:    v_accvgpr_read_b32 v6, a61446; SDAG-NEXT:    v_accvgpr_read_b32 v7, a71447; SDAG-NEXT:    v_accvgpr_read_b32 v8, a81448; SDAG-NEXT:    v_accvgpr_read_b32 v9, a91449; SDAG-NEXT:    v_accvgpr_read_b32 v10, a101450; SDAG-NEXT:    v_accvgpr_read_b32 v11, a111451; SDAG-NEXT:    v_accvgpr_read_b32 v12, a121452; SDAG-NEXT:    v_accvgpr_read_b32 v13, a131453; SDAG-NEXT:    v_accvgpr_read_b32 v14, a141454; SDAG-NEXT:    v_accvgpr_read_b32 v15, a151455; SDAG-NEXT:    s_setpc_b64 s[30:31]1456;1457; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1:1458; GISEL:       ; %bb.0:1459; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1460; GISEL-NEXT:    scratch_load_dword a15, off, s321461; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:41462; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:81463; GISEL-NEXT:    v_accvgpr_write_b32 a0, v161464; GISEL-NEXT:    v_accvgpr_write_b32 a1, v171465; GISEL-NEXT:    v_accvgpr_write_b32 a2, v181466; GISEL-NEXT:    v_accvgpr_write_b32 a3, v191467; GISEL-NEXT:    v_accvgpr_write_b32 a4, v201468; GISEL-NEXT:    v_accvgpr_write_b32 a5, v211469; GISEL-NEXT:    v_accvgpr_write_b32 a6, v221470; GISEL-NEXT:    v_accvgpr_write_b32 a7, v231471; GISEL-NEXT:    v_accvgpr_write_b32 a8, v241472; GISEL-NEXT:    v_accvgpr_write_b32 a9, v251473; GISEL-NEXT:    v_accvgpr_write_b32 a10, v261474; GISEL-NEXT:    v_accvgpr_write_b32 a11, v271475; GISEL-NEXT:    v_accvgpr_write_b32 a12, v281476; GISEL-NEXT:    v_accvgpr_write_b32 a13, v291477; GISEL-NEXT:    v_accvgpr_write_b32 a14, v301478; GISEL-NEXT:    s_waitcnt vmcnt(0)1479; GISEL-NEXT:    s_nop 01480; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:1 blgp:11481; GISEL-NEXT:    s_nop 151482; GISEL-NEXT:    s_nop 31483; GISEL-NEXT:    v_accvgpr_read_b32 v0, a01484; GISEL-NEXT:    v_accvgpr_read_b32 v1, a11485; GISEL-NEXT:    v_accvgpr_read_b32 v2, a21486; GISEL-NEXT:    v_accvgpr_read_b32 v3, a31487; GISEL-NEXT:    v_accvgpr_read_b32 v4, a41488; GISEL-NEXT:    v_accvgpr_read_b32 v5, a51489; GISEL-NEXT:    v_accvgpr_read_b32 v6, a61490; GISEL-NEXT:    v_accvgpr_read_b32 v7, a71491; GISEL-NEXT:    v_accvgpr_read_b32 v8, a81492; GISEL-NEXT:    v_accvgpr_read_b32 v9, a91493; GISEL-NEXT:    v_accvgpr_read_b32 v10, a101494; GISEL-NEXT:    v_accvgpr_read_b32 v11, a111495; GISEL-NEXT:    v_accvgpr_read_b32 v12, a121496; GISEL-NEXT:    v_accvgpr_read_b32 v13, a131497; GISEL-NEXT:    v_accvgpr_read_b32 v14, a141498; GISEL-NEXT:    v_accvgpr_read_b32 v15, a151499; GISEL-NEXT:    s_setpc_b64 s[30:31]1500  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1501                                                                                      i32 1, ; cbsz1502                                                                                      i32 1, ; blgp1503                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1504  ret <16 x float> %result1505}1506 1507 1508define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {1509; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1__constant_scale_0_0:1510; GCN:       ; %bb.0:1511; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1512; GCN-NEXT:    scratch_load_dword a15, off, s321513; GCN-NEXT:    v_accvgpr_write_b32 a0, v161514; GCN-NEXT:    v_accvgpr_write_b32 a1, v171515; GCN-NEXT:    v_accvgpr_write_b32 a2, v181516; GCN-NEXT:    v_accvgpr_write_b32 a3, v191517; GCN-NEXT:    v_accvgpr_write_b32 a4, v201518; GCN-NEXT:    v_accvgpr_write_b32 a5, v211519; GCN-NEXT:    v_accvgpr_write_b32 a6, v221520; GCN-NEXT:    v_accvgpr_write_b32 a7, v231521; GCN-NEXT:    v_accvgpr_write_b32 a8, v241522; GCN-NEXT:    v_accvgpr_write_b32 a9, v251523; GCN-NEXT:    v_accvgpr_write_b32 a10, v261524; GCN-NEXT:    v_accvgpr_write_b32 a11, v271525; GCN-NEXT:    v_accvgpr_write_b32 a12, v281526; GCN-NEXT:    v_accvgpr_write_b32 a13, v291527; GCN-NEXT:    v_accvgpr_write_b32 a14, v301528; GCN-NEXT:    s_waitcnt vmcnt(0)1529; GCN-NEXT:    s_nop 01530; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:1 blgp:11531; GCN-NEXT:    s_nop 151532; GCN-NEXT:    s_nop 31533; GCN-NEXT:    v_accvgpr_read_b32 v0, a01534; GCN-NEXT:    v_accvgpr_read_b32 v1, a11535; GCN-NEXT:    v_accvgpr_read_b32 v2, a21536; GCN-NEXT:    v_accvgpr_read_b32 v3, a31537; GCN-NEXT:    v_accvgpr_read_b32 v4, a41538; GCN-NEXT:    v_accvgpr_read_b32 v5, a51539; GCN-NEXT:    v_accvgpr_read_b32 v6, a61540; GCN-NEXT:    v_accvgpr_read_b32 v7, a71541; GCN-NEXT:    v_accvgpr_read_b32 v8, a81542; GCN-NEXT:    v_accvgpr_read_b32 v9, a91543; GCN-NEXT:    v_accvgpr_read_b32 v10, a101544; GCN-NEXT:    v_accvgpr_read_b32 v11, a111545; GCN-NEXT:    v_accvgpr_read_b32 v12, a121546; GCN-NEXT:    v_accvgpr_read_b32 v13, a131547; GCN-NEXT:    v_accvgpr_read_b32 v14, a141548; GCN-NEXT:    v_accvgpr_read_b32 v15, a151549; GCN-NEXT:    s_setpc_b64 s[30:31]1550  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1551                                                                                      i32 1, ; cbsz1552                                                                                      i32 1, ; blgp1553                                                                                      i32 0, i32 0, i32 0, i32 0)1554  ret <16 x float> %result1555}1556 1557; bf8 x fp61558define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1559; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2:1560; GCN:       ; %bb.0:1561; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1562; GCN-NEXT:    scratch_load_dword v31, off, s321563; GCN-NEXT:    v_accvgpr_write_b32 a0, v141564; GCN-NEXT:    v_accvgpr_write_b32 a1, v151565; GCN-NEXT:    v_accvgpr_write_b32 a2, v161566; GCN-NEXT:    v_accvgpr_write_b32 a3, v171567; GCN-NEXT:    v_accvgpr_write_b32 a4, v181568; GCN-NEXT:    v_accvgpr_write_b32 a5, v191569; GCN-NEXT:    v_accvgpr_write_b32 a6, v201570; GCN-NEXT:    v_accvgpr_write_b32 a7, v211571; GCN-NEXT:    v_accvgpr_write_b32 a8, v221572; GCN-NEXT:    v_accvgpr_write_b32 a9, v231573; GCN-NEXT:    v_accvgpr_write_b32 a10, v241574; GCN-NEXT:    v_accvgpr_write_b32 a11, v251575; GCN-NEXT:    v_accvgpr_write_b32 a12, v261576; GCN-NEXT:    v_accvgpr_write_b32 a13, v271577; GCN-NEXT:    v_accvgpr_write_b32 a14, v281578; GCN-NEXT:    v_accvgpr_write_b32 a15, v291579; GCN-NEXT:    s_waitcnt vmcnt(0)1580; GCN-NEXT:    s_nop 01581; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:1 blgp:21582; GCN-NEXT:    s_nop 151583; GCN-NEXT:    s_nop 31584; GCN-NEXT:    v_accvgpr_read_b32 v0, a01585; GCN-NEXT:    v_accvgpr_read_b32 v1, a11586; GCN-NEXT:    v_accvgpr_read_b32 v2, a21587; GCN-NEXT:    v_accvgpr_read_b32 v3, a31588; GCN-NEXT:    v_accvgpr_read_b32 v4, a41589; GCN-NEXT:    v_accvgpr_read_b32 v5, a51590; GCN-NEXT:    v_accvgpr_read_b32 v6, a61591; GCN-NEXT:    v_accvgpr_read_b32 v7, a71592; GCN-NEXT:    v_accvgpr_read_b32 v8, a81593; GCN-NEXT:    v_accvgpr_read_b32 v9, a91594; GCN-NEXT:    v_accvgpr_read_b32 v10, a101595; GCN-NEXT:    v_accvgpr_read_b32 v11, a111596; GCN-NEXT:    v_accvgpr_read_b32 v12, a121597; GCN-NEXT:    v_accvgpr_read_b32 v13, a131598; GCN-NEXT:    v_accvgpr_read_b32 v14, a141599; GCN-NEXT:    v_accvgpr_read_b32 v15, a151600; GCN-NEXT:    s_setpc_b64 s[30:31]1601  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1602                                                                                      i32 1, ; cbsz1603                                                                                      i32 2, ; blgp1604                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1605  ret <16 x float> %result1606}1607 1608define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2__constant_scale_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {1609; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2__constant_scale_0:1610; GCN:       ; %bb.0:1611; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1612; GCN-NEXT:    v_accvgpr_write_b32 a0, v141613; GCN-NEXT:    v_accvgpr_write_b32 a1, v151614; GCN-NEXT:    v_accvgpr_write_b32 a2, v161615; GCN-NEXT:    v_accvgpr_write_b32 a3, v171616; GCN-NEXT:    v_accvgpr_write_b32 a4, v181617; GCN-NEXT:    v_accvgpr_write_b32 a5, v191618; GCN-NEXT:    v_accvgpr_write_b32 a6, v201619; GCN-NEXT:    v_accvgpr_write_b32 a7, v211620; GCN-NEXT:    v_accvgpr_write_b32 a8, v221621; GCN-NEXT:    v_accvgpr_write_b32 a9, v231622; GCN-NEXT:    v_accvgpr_write_b32 a10, v241623; GCN-NEXT:    v_accvgpr_write_b32 a11, v251624; GCN-NEXT:    v_accvgpr_write_b32 a12, v261625; GCN-NEXT:    v_accvgpr_write_b32 a13, v271626; GCN-NEXT:    v_accvgpr_write_b32 a14, v281627; GCN-NEXT:    v_accvgpr_write_b32 a15, v291628; GCN-NEXT:    s_nop 11629; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] cbsz:1 blgp:21630; GCN-NEXT:    s_nop 151631; GCN-NEXT:    s_nop 31632; GCN-NEXT:    v_accvgpr_read_b32 v0, a01633; GCN-NEXT:    v_accvgpr_read_b32 v1, a11634; GCN-NEXT:    v_accvgpr_read_b32 v2, a21635; GCN-NEXT:    v_accvgpr_read_b32 v3, a31636; GCN-NEXT:    v_accvgpr_read_b32 v4, a41637; GCN-NEXT:    v_accvgpr_read_b32 v5, a51638; GCN-NEXT:    v_accvgpr_read_b32 v6, a61639; GCN-NEXT:    v_accvgpr_read_b32 v7, a71640; GCN-NEXT:    v_accvgpr_read_b32 v8, a81641; GCN-NEXT:    v_accvgpr_read_b32 v9, a91642; GCN-NEXT:    v_accvgpr_read_b32 v10, a101643; GCN-NEXT:    v_accvgpr_read_b32 v11, a111644; GCN-NEXT:    v_accvgpr_read_b32 v12, a121645; GCN-NEXT:    v_accvgpr_read_b32 v13, a131646; GCN-NEXT:    v_accvgpr_read_b32 v14, a141647; GCN-NEXT:    v_accvgpr_read_b32 v15, a151648; GCN-NEXT:    s_setpc_b64 s[30:31]1649  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1650                                                                                      i32 1, ; cbsz1651                                                                                      i32 2, ; blgp1652                                                                                      i32 0, i32 0, i32 0, i32 0)1653  ret <16 x float> %result1654}1655 1656; bf8 x bf61657define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1658; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3:1659; GCN:       ; %bb.0:1660; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1661; GCN-NEXT:    scratch_load_dword v31, off, s321662; GCN-NEXT:    v_accvgpr_write_b32 a0, v141663; GCN-NEXT:    v_accvgpr_write_b32 a1, v151664; GCN-NEXT:    v_accvgpr_write_b32 a2, v161665; GCN-NEXT:    v_accvgpr_write_b32 a3, v171666; GCN-NEXT:    v_accvgpr_write_b32 a4, v181667; GCN-NEXT:    v_accvgpr_write_b32 a5, v191668; GCN-NEXT:    v_accvgpr_write_b32 a6, v201669; GCN-NEXT:    v_accvgpr_write_b32 a7, v211670; GCN-NEXT:    v_accvgpr_write_b32 a8, v221671; GCN-NEXT:    v_accvgpr_write_b32 a9, v231672; GCN-NEXT:    v_accvgpr_write_b32 a10, v241673; GCN-NEXT:    v_accvgpr_write_b32 a11, v251674; GCN-NEXT:    v_accvgpr_write_b32 a12, v261675; GCN-NEXT:    v_accvgpr_write_b32 a13, v271676; GCN-NEXT:    v_accvgpr_write_b32 a14, v281677; GCN-NEXT:    v_accvgpr_write_b32 a15, v291678; GCN-NEXT:    s_waitcnt vmcnt(0)1679; GCN-NEXT:    s_nop 01680; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:1 blgp:31681; GCN-NEXT:    s_nop 151682; GCN-NEXT:    s_nop 31683; GCN-NEXT:    v_accvgpr_read_b32 v0, a01684; GCN-NEXT:    v_accvgpr_read_b32 v1, a11685; GCN-NEXT:    v_accvgpr_read_b32 v2, a21686; GCN-NEXT:    v_accvgpr_read_b32 v3, a31687; GCN-NEXT:    v_accvgpr_read_b32 v4, a41688; GCN-NEXT:    v_accvgpr_read_b32 v5, a51689; GCN-NEXT:    v_accvgpr_read_b32 v6, a61690; GCN-NEXT:    v_accvgpr_read_b32 v7, a71691; GCN-NEXT:    v_accvgpr_read_b32 v8, a81692; GCN-NEXT:    v_accvgpr_read_b32 v9, a91693; GCN-NEXT:    v_accvgpr_read_b32 v10, a101694; GCN-NEXT:    v_accvgpr_read_b32 v11, a111695; GCN-NEXT:    v_accvgpr_read_b32 v12, a121696; GCN-NEXT:    v_accvgpr_read_b32 v13, a131697; GCN-NEXT:    v_accvgpr_read_b32 v14, a141698; GCN-NEXT:    v_accvgpr_read_b32 v15, a151699; GCN-NEXT:    s_setpc_b64 s[30:31]1700  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1701                                                                                      i32 1, ; cbsz1702                                                                                      i32 3, ; blgp1703                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1704  ret <16 x float> %result1705}1706 1707define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {1708; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3__constant_scale_0_0:1709; GCN:       ; %bb.0:1710; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1711; GCN-NEXT:    v_accvgpr_write_b32 a0, v141712; GCN-NEXT:    v_accvgpr_write_b32 a1, v151713; GCN-NEXT:    v_accvgpr_write_b32 a2, v161714; GCN-NEXT:    v_accvgpr_write_b32 a3, v171715; GCN-NEXT:    v_accvgpr_write_b32 a4, v181716; GCN-NEXT:    v_accvgpr_write_b32 a5, v191717; GCN-NEXT:    v_accvgpr_write_b32 a6, v201718; GCN-NEXT:    v_accvgpr_write_b32 a7, v211719; GCN-NEXT:    v_accvgpr_write_b32 a8, v221720; GCN-NEXT:    v_accvgpr_write_b32 a9, v231721; GCN-NEXT:    v_accvgpr_write_b32 a10, v241722; GCN-NEXT:    v_accvgpr_write_b32 a11, v251723; GCN-NEXT:    v_accvgpr_write_b32 a12, v261724; GCN-NEXT:    v_accvgpr_write_b32 a13, v271725; GCN-NEXT:    v_accvgpr_write_b32 a14, v281726; GCN-NEXT:    v_accvgpr_write_b32 a15, v291727; GCN-NEXT:    s_nop 11728; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] cbsz:1 blgp:31729; GCN-NEXT:    s_nop 151730; GCN-NEXT:    s_nop 31731; GCN-NEXT:    v_accvgpr_read_b32 v0, a01732; GCN-NEXT:    v_accvgpr_read_b32 v1, a11733; GCN-NEXT:    v_accvgpr_read_b32 v2, a21734; GCN-NEXT:    v_accvgpr_read_b32 v3, a31735; GCN-NEXT:    v_accvgpr_read_b32 v4, a41736; GCN-NEXT:    v_accvgpr_read_b32 v5, a51737; GCN-NEXT:    v_accvgpr_read_b32 v6, a61738; GCN-NEXT:    v_accvgpr_read_b32 v7, a71739; GCN-NEXT:    v_accvgpr_read_b32 v8, a81740; GCN-NEXT:    v_accvgpr_read_b32 v9, a91741; GCN-NEXT:    v_accvgpr_read_b32 v10, a101742; GCN-NEXT:    v_accvgpr_read_b32 v11, a111743; GCN-NEXT:    v_accvgpr_read_b32 v12, a121744; GCN-NEXT:    v_accvgpr_read_b32 v13, a131745; GCN-NEXT:    v_accvgpr_read_b32 v14, a141746; GCN-NEXT:    v_accvgpr_read_b32 v15, a151747; GCN-NEXT:    s_setpc_b64 s[30:31]1748  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,1749                                                                                      i32 1, ; cbsz1750                                                                                      i32 3, ; blgp1751                                                                                      i32 0, i32 0, i32 0, i32 0)1752  ret <16 x float> %result1753}1754 1755; bf8 x fp41756define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1757; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4:1758; GCN:       ; %bb.0:1759; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1760; GCN-NEXT:    v_accvgpr_write_b32 a0, v121761; GCN-NEXT:    v_accvgpr_write_b32 a1, v131762; GCN-NEXT:    v_accvgpr_write_b32 a2, v141763; GCN-NEXT:    v_accvgpr_write_b32 a3, v151764; GCN-NEXT:    v_accvgpr_write_b32 a4, v161765; GCN-NEXT:    v_accvgpr_write_b32 a5, v171766; GCN-NEXT:    v_accvgpr_write_b32 a6, v181767; GCN-NEXT:    v_accvgpr_write_b32 a7, v191768; GCN-NEXT:    v_accvgpr_write_b32 a8, v201769; GCN-NEXT:    v_accvgpr_write_b32 a9, v211770; GCN-NEXT:    v_accvgpr_write_b32 a10, v221771; GCN-NEXT:    v_accvgpr_write_b32 a11, v231772; GCN-NEXT:    v_accvgpr_write_b32 a12, v241773; GCN-NEXT:    v_accvgpr_write_b32 a13, v251774; GCN-NEXT:    v_accvgpr_write_b32 a14, v261775; GCN-NEXT:    v_accvgpr_write_b32 a15, v271776; GCN-NEXT:    s_nop 11777; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:1 blgp:41778; GCN-NEXT:    s_nop 151779; GCN-NEXT:    s_nop 31780; GCN-NEXT:    v_accvgpr_read_b32 v0, a01781; GCN-NEXT:    v_accvgpr_read_b32 v1, a11782; GCN-NEXT:    v_accvgpr_read_b32 v2, a21783; GCN-NEXT:    v_accvgpr_read_b32 v3, a31784; GCN-NEXT:    v_accvgpr_read_b32 v4, a41785; GCN-NEXT:    v_accvgpr_read_b32 v5, a51786; GCN-NEXT:    v_accvgpr_read_b32 v6, a61787; GCN-NEXT:    v_accvgpr_read_b32 v7, a71788; GCN-NEXT:    v_accvgpr_read_b32 v8, a81789; GCN-NEXT:    v_accvgpr_read_b32 v9, a91790; GCN-NEXT:    v_accvgpr_read_b32 v10, a101791; GCN-NEXT:    v_accvgpr_read_b32 v11, a111792; GCN-NEXT:    v_accvgpr_read_b32 v12, a121793; GCN-NEXT:    v_accvgpr_read_b32 v13, a131794; GCN-NEXT:    v_accvgpr_read_b32 v14, a141795; GCN-NEXT:    v_accvgpr_read_b32 v15, a151796; GCN-NEXT:    s_setpc_b64 s[30:31]1797  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,1798                                                                                      i32 1, ; cbsz1799                                                                                      i32 4, ; blgp1800                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1801  ret <16 x float> %result1802}1803 1804define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4__constant_scale_0_0(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) {1805; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4__constant_scale_0_0:1806; GCN:       ; %bb.0:1807; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1808; GCN-NEXT:    v_accvgpr_write_b32 a0, v121809; GCN-NEXT:    v_accvgpr_write_b32 a1, v131810; GCN-NEXT:    v_accvgpr_write_b32 a2, v141811; GCN-NEXT:    v_accvgpr_write_b32 a3, v151812; GCN-NEXT:    v_accvgpr_write_b32 a4, v161813; GCN-NEXT:    v_accvgpr_write_b32 a5, v171814; GCN-NEXT:    v_accvgpr_write_b32 a6, v181815; GCN-NEXT:    v_accvgpr_write_b32 a7, v191816; GCN-NEXT:    v_accvgpr_write_b32 a8, v201817; GCN-NEXT:    v_accvgpr_write_b32 a9, v211818; GCN-NEXT:    v_accvgpr_write_b32 a10, v221819; GCN-NEXT:    v_accvgpr_write_b32 a11, v231820; GCN-NEXT:    v_accvgpr_write_b32 a12, v241821; GCN-NEXT:    v_accvgpr_write_b32 a13, v251822; GCN-NEXT:    v_accvgpr_write_b32 a14, v261823; GCN-NEXT:    v_accvgpr_write_b32 a15, v271824; GCN-NEXT:    s_nop 11825; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15] cbsz:1 blgp:41826; GCN-NEXT:    s_nop 151827; GCN-NEXT:    s_nop 31828; GCN-NEXT:    v_accvgpr_read_b32 v0, a01829; GCN-NEXT:    v_accvgpr_read_b32 v1, a11830; GCN-NEXT:    v_accvgpr_read_b32 v2, a21831; GCN-NEXT:    v_accvgpr_read_b32 v3, a31832; GCN-NEXT:    v_accvgpr_read_b32 v4, a41833; GCN-NEXT:    v_accvgpr_read_b32 v5, a51834; GCN-NEXT:    v_accvgpr_read_b32 v6, a61835; GCN-NEXT:    v_accvgpr_read_b32 v7, a71836; GCN-NEXT:    v_accvgpr_read_b32 v8, a81837; GCN-NEXT:    v_accvgpr_read_b32 v9, a91838; GCN-NEXT:    v_accvgpr_read_b32 v10, a101839; GCN-NEXT:    v_accvgpr_read_b32 v11, a111840; GCN-NEXT:    v_accvgpr_read_b32 v12, a121841; GCN-NEXT:    v_accvgpr_read_b32 v13, a131842; GCN-NEXT:    v_accvgpr_read_b32 v14, a141843; GCN-NEXT:    v_accvgpr_read_b32 v15, a151844; GCN-NEXT:    s_setpc_b64 s[30:31]1845  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,1846                                                                                      i32 1, ; cbsz1847                                                                                      i32 4, ; blgp1848                                                                                      i32 0, i32 0, i32 0, i32 0)1849  ret <16 x float> %result1850}1851 1852; fp6 x fp81853define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1854; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0:1855; GCN:       ; %bb.0:1856; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1857; GCN-NEXT:    scratch_load_dword v31, off, s321858; GCN-NEXT:    v_accvgpr_write_b32 a0, v141859; GCN-NEXT:    v_accvgpr_write_b32 a1, v151860; GCN-NEXT:    v_accvgpr_write_b32 a2, v161861; GCN-NEXT:    v_accvgpr_write_b32 a3, v171862; GCN-NEXT:    v_accvgpr_write_b32 a4, v181863; GCN-NEXT:    v_accvgpr_write_b32 a5, v191864; GCN-NEXT:    v_accvgpr_write_b32 a6, v201865; GCN-NEXT:    v_accvgpr_write_b32 a7, v211866; GCN-NEXT:    v_accvgpr_write_b32 a8, v221867; GCN-NEXT:    v_accvgpr_write_b32 a9, v231868; GCN-NEXT:    v_accvgpr_write_b32 a10, v241869; GCN-NEXT:    v_accvgpr_write_b32 a11, v251870; GCN-NEXT:    v_accvgpr_write_b32 a12, v261871; GCN-NEXT:    v_accvgpr_write_b32 a13, v271872; GCN-NEXT:    v_accvgpr_write_b32 a14, v281873; GCN-NEXT:    v_accvgpr_write_b32 a15, v291874; GCN-NEXT:    s_waitcnt vmcnt(0)1875; GCN-NEXT:    s_nop 01876; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:21877; GCN-NEXT:    s_nop 151878; GCN-NEXT:    s_nop 31879; GCN-NEXT:    v_accvgpr_read_b32 v0, a01880; GCN-NEXT:    v_accvgpr_read_b32 v1, a11881; GCN-NEXT:    v_accvgpr_read_b32 v2, a21882; GCN-NEXT:    v_accvgpr_read_b32 v3, a31883; GCN-NEXT:    v_accvgpr_read_b32 v4, a41884; GCN-NEXT:    v_accvgpr_read_b32 v5, a51885; GCN-NEXT:    v_accvgpr_read_b32 v6, a61886; GCN-NEXT:    v_accvgpr_read_b32 v7, a71887; GCN-NEXT:    v_accvgpr_read_b32 v8, a81888; GCN-NEXT:    v_accvgpr_read_b32 v9, a91889; GCN-NEXT:    v_accvgpr_read_b32 v10, a101890; GCN-NEXT:    v_accvgpr_read_b32 v11, a111891; GCN-NEXT:    v_accvgpr_read_b32 v12, a121892; GCN-NEXT:    v_accvgpr_read_b32 v13, a131893; GCN-NEXT:    v_accvgpr_read_b32 v14, a141894; GCN-NEXT:    v_accvgpr_read_b32 v15, a151895; GCN-NEXT:    s_setpc_b64 s[30:31]1896  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1897                                                                                      i32 2, ; cbsz1898                                                                                      i32 0, ; blgp1899                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1900  ret <16 x float> %result1901}1902 1903define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {1904; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0__constant_scale_0_0:1905; GCN:       ; %bb.0:1906; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1907; GCN-NEXT:    v_accvgpr_write_b32 a0, v141908; GCN-NEXT:    v_accvgpr_write_b32 a1, v151909; GCN-NEXT:    v_accvgpr_write_b32 a2, v161910; GCN-NEXT:    v_accvgpr_write_b32 a3, v171911; GCN-NEXT:    v_accvgpr_write_b32 a4, v181912; GCN-NEXT:    v_accvgpr_write_b32 a5, v191913; GCN-NEXT:    v_accvgpr_write_b32 a6, v201914; GCN-NEXT:    v_accvgpr_write_b32 a7, v211915; GCN-NEXT:    v_accvgpr_write_b32 a8, v221916; GCN-NEXT:    v_accvgpr_write_b32 a9, v231917; GCN-NEXT:    v_accvgpr_write_b32 a10, v241918; GCN-NEXT:    v_accvgpr_write_b32 a11, v251919; GCN-NEXT:    v_accvgpr_write_b32 a12, v261920; GCN-NEXT:    v_accvgpr_write_b32 a13, v271921; GCN-NEXT:    v_accvgpr_write_b32 a14, v281922; GCN-NEXT:    v_accvgpr_write_b32 a15, v291923; GCN-NEXT:    s_nop 11924; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:21925; GCN-NEXT:    s_nop 151926; GCN-NEXT:    s_nop 31927; GCN-NEXT:    v_accvgpr_read_b32 v0, a01928; GCN-NEXT:    v_accvgpr_read_b32 v1, a11929; GCN-NEXT:    v_accvgpr_read_b32 v2, a21930; GCN-NEXT:    v_accvgpr_read_b32 v3, a31931; GCN-NEXT:    v_accvgpr_read_b32 v4, a41932; GCN-NEXT:    v_accvgpr_read_b32 v5, a51933; GCN-NEXT:    v_accvgpr_read_b32 v6, a61934; GCN-NEXT:    v_accvgpr_read_b32 v7, a71935; GCN-NEXT:    v_accvgpr_read_b32 v8, a81936; GCN-NEXT:    v_accvgpr_read_b32 v9, a91937; GCN-NEXT:    v_accvgpr_read_b32 v10, a101938; GCN-NEXT:    v_accvgpr_read_b32 v11, a111939; GCN-NEXT:    v_accvgpr_read_b32 v12, a121940; GCN-NEXT:    v_accvgpr_read_b32 v13, a131941; GCN-NEXT:    v_accvgpr_read_b32 v14, a141942; GCN-NEXT:    v_accvgpr_read_b32 v15, a151943; GCN-NEXT:    s_setpc_b64 s[30:31]1944  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1945                                                                                      i32 2, ; cbsz1946                                                                                      i32 0, ; blgp1947                                                                                      i32 0, i32 0, i32 0, i32 0)1948  ret <16 x float> %result1949}1950 1951; fp6 x bf81952define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {1953; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1:1954; GCN:       ; %bb.0:1955; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1956; GCN-NEXT:    scratch_load_dword v31, off, s321957; GCN-NEXT:    v_accvgpr_write_b32 a0, v141958; GCN-NEXT:    v_accvgpr_write_b32 a1, v151959; GCN-NEXT:    v_accvgpr_write_b32 a2, v161960; GCN-NEXT:    v_accvgpr_write_b32 a3, v171961; GCN-NEXT:    v_accvgpr_write_b32 a4, v181962; GCN-NEXT:    v_accvgpr_write_b32 a5, v191963; GCN-NEXT:    v_accvgpr_write_b32 a6, v201964; GCN-NEXT:    v_accvgpr_write_b32 a7, v211965; GCN-NEXT:    v_accvgpr_write_b32 a8, v221966; GCN-NEXT:    v_accvgpr_write_b32 a9, v231967; GCN-NEXT:    v_accvgpr_write_b32 a10, v241968; GCN-NEXT:    v_accvgpr_write_b32 a11, v251969; GCN-NEXT:    v_accvgpr_write_b32 a12, v261970; GCN-NEXT:    v_accvgpr_write_b32 a13, v271971; GCN-NEXT:    v_accvgpr_write_b32 a14, v281972; GCN-NEXT:    v_accvgpr_write_b32 a15, v291973; GCN-NEXT:    s_waitcnt vmcnt(0)1974; GCN-NEXT:    s_nop 01975; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:2 blgp:11976; GCN-NEXT:    s_nop 151977; GCN-NEXT:    s_nop 31978; GCN-NEXT:    v_accvgpr_read_b32 v0, a01979; GCN-NEXT:    v_accvgpr_read_b32 v1, a11980; GCN-NEXT:    v_accvgpr_read_b32 v2, a21981; GCN-NEXT:    v_accvgpr_read_b32 v3, a31982; GCN-NEXT:    v_accvgpr_read_b32 v4, a41983; GCN-NEXT:    v_accvgpr_read_b32 v5, a51984; GCN-NEXT:    v_accvgpr_read_b32 v6, a61985; GCN-NEXT:    v_accvgpr_read_b32 v7, a71986; GCN-NEXT:    v_accvgpr_read_b32 v8, a81987; GCN-NEXT:    v_accvgpr_read_b32 v9, a91988; GCN-NEXT:    v_accvgpr_read_b32 v10, a101989; GCN-NEXT:    v_accvgpr_read_b32 v11, a111990; GCN-NEXT:    v_accvgpr_read_b32 v12, a121991; GCN-NEXT:    v_accvgpr_read_b32 v13, a131992; GCN-NEXT:    v_accvgpr_read_b32 v14, a141993; GCN-NEXT:    v_accvgpr_read_b32 v15, a151994; GCN-NEXT:    s_setpc_b64 s[30:31]1995  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,1996                                                                                      i32 2, ; cbsz1997                                                                                      i32 1, ; blgp1998                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)1999  ret <16 x float> %result2000}2001 2002define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {2003; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1__constant_scale_0_0:2004; GCN:       ; %bb.0:2005; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2006; GCN-NEXT:    v_accvgpr_write_b32 a0, v142007; GCN-NEXT:    v_accvgpr_write_b32 a1, v152008; GCN-NEXT:    v_accvgpr_write_b32 a2, v162009; GCN-NEXT:    v_accvgpr_write_b32 a3, v172010; GCN-NEXT:    v_accvgpr_write_b32 a4, v182011; GCN-NEXT:    v_accvgpr_write_b32 a5, v192012; GCN-NEXT:    v_accvgpr_write_b32 a6, v202013; GCN-NEXT:    v_accvgpr_write_b32 a7, v212014; GCN-NEXT:    v_accvgpr_write_b32 a8, v222015; GCN-NEXT:    v_accvgpr_write_b32 a9, v232016; GCN-NEXT:    v_accvgpr_write_b32 a10, v242017; GCN-NEXT:    v_accvgpr_write_b32 a11, v252018; GCN-NEXT:    v_accvgpr_write_b32 a12, v262019; GCN-NEXT:    v_accvgpr_write_b32 a13, v272020; GCN-NEXT:    v_accvgpr_write_b32 a14, v282021; GCN-NEXT:    v_accvgpr_write_b32 a15, v292022; GCN-NEXT:    s_nop 12023; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:2 blgp:12024; GCN-NEXT:    s_nop 152025; GCN-NEXT:    s_nop 32026; GCN-NEXT:    v_accvgpr_read_b32 v0, a02027; GCN-NEXT:    v_accvgpr_read_b32 v1, a12028; GCN-NEXT:    v_accvgpr_read_b32 v2, a22029; GCN-NEXT:    v_accvgpr_read_b32 v3, a32030; GCN-NEXT:    v_accvgpr_read_b32 v4, a42031; GCN-NEXT:    v_accvgpr_read_b32 v5, a52032; GCN-NEXT:    v_accvgpr_read_b32 v6, a62033; GCN-NEXT:    v_accvgpr_read_b32 v7, a72034; GCN-NEXT:    v_accvgpr_read_b32 v8, a82035; GCN-NEXT:    v_accvgpr_read_b32 v9, a92036; GCN-NEXT:    v_accvgpr_read_b32 v10, a102037; GCN-NEXT:    v_accvgpr_read_b32 v11, a112038; GCN-NEXT:    v_accvgpr_read_b32 v12, a122039; GCN-NEXT:    v_accvgpr_read_b32 v13, a132040; GCN-NEXT:    v_accvgpr_read_b32 v14, a142041; GCN-NEXT:    v_accvgpr_read_b32 v15, a152042; GCN-NEXT:    s_setpc_b64 s[30:31]2043  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2044                                                                                      i32 2, ; cbsz2045                                                                                      i32 1, ; blgp2046                                                                                      i32 0, i32 0, i32 0, i32 0)2047  ret <16 x float> %result2048}2049 2050; fp6 x fp62051define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2052; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2:2053; GCN:       ; %bb.0:2054; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2055; GCN-NEXT:    v_accvgpr_write_b32 a0, v122056; GCN-NEXT:    v_accvgpr_write_b32 a1, v132057; GCN-NEXT:    v_accvgpr_write_b32 a2, v142058; GCN-NEXT:    v_accvgpr_write_b32 a3, v152059; GCN-NEXT:    v_accvgpr_write_b32 a4, v162060; GCN-NEXT:    v_accvgpr_write_b32 a5, v172061; GCN-NEXT:    v_accvgpr_write_b32 a6, v182062; GCN-NEXT:    v_accvgpr_write_b32 a7, v192063; GCN-NEXT:    v_accvgpr_write_b32 a8, v202064; GCN-NEXT:    v_accvgpr_write_b32 a9, v212065; GCN-NEXT:    v_accvgpr_write_b32 a10, v222066; GCN-NEXT:    v_accvgpr_write_b32 a11, v232067; GCN-NEXT:    v_accvgpr_write_b32 a12, v242068; GCN-NEXT:    v_accvgpr_write_b32 a13, v252069; GCN-NEXT:    v_accvgpr_write_b32 a14, v262070; GCN-NEXT:    v_accvgpr_write_b32 a15, v272071; GCN-NEXT:    s_nop 12072; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:2 blgp:22073; GCN-NEXT:    s_nop 112074; GCN-NEXT:    v_accvgpr_read_b32 v0, a02075; GCN-NEXT:    v_accvgpr_read_b32 v1, a12076; GCN-NEXT:    v_accvgpr_read_b32 v2, a22077; GCN-NEXT:    v_accvgpr_read_b32 v3, a32078; GCN-NEXT:    v_accvgpr_read_b32 v4, a42079; GCN-NEXT:    v_accvgpr_read_b32 v5, a52080; GCN-NEXT:    v_accvgpr_read_b32 v6, a62081; GCN-NEXT:    v_accvgpr_read_b32 v7, a72082; GCN-NEXT:    v_accvgpr_read_b32 v8, a82083; GCN-NEXT:    v_accvgpr_read_b32 v9, a92084; GCN-NEXT:    v_accvgpr_read_b32 v10, a102085; GCN-NEXT:    v_accvgpr_read_b32 v11, a112086; GCN-NEXT:    v_accvgpr_read_b32 v12, a122087; GCN-NEXT:    v_accvgpr_read_b32 v13, a132088; GCN-NEXT:    v_accvgpr_read_b32 v14, a142089; GCN-NEXT:    v_accvgpr_read_b32 v15, a152090; GCN-NEXT:    s_setpc_b64 s[30:31]2091  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2092                                                                                      i32 2, ; cbsz2093                                                                                      i32 2, ; blgp2094                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2095  ret <16 x float> %result2096}2097 2098define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {2099; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2__constant_scale_0_0:2100; GCN:       ; %bb.0:2101; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2102; GCN-NEXT:    v_accvgpr_write_b32 a0, v122103; GCN-NEXT:    v_accvgpr_write_b32 a1, v132104; GCN-NEXT:    v_accvgpr_write_b32 a2, v142105; GCN-NEXT:    v_accvgpr_write_b32 a3, v152106; GCN-NEXT:    v_accvgpr_write_b32 a4, v162107; GCN-NEXT:    v_accvgpr_write_b32 a5, v172108; GCN-NEXT:    v_accvgpr_write_b32 a6, v182109; GCN-NEXT:    v_accvgpr_write_b32 a7, v192110; GCN-NEXT:    v_accvgpr_write_b32 a8, v202111; GCN-NEXT:    v_accvgpr_write_b32 a9, v212112; GCN-NEXT:    v_accvgpr_write_b32 a10, v222113; GCN-NEXT:    v_accvgpr_write_b32 a11, v232114; GCN-NEXT:    v_accvgpr_write_b32 a12, v242115; GCN-NEXT:    v_accvgpr_write_b32 a13, v252116; GCN-NEXT:    v_accvgpr_write_b32 a14, v262117; GCN-NEXT:    v_accvgpr_write_b32 a15, v272118; GCN-NEXT:    s_nop 12119; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:2 blgp:22120; GCN-NEXT:    s_nop 112121; GCN-NEXT:    v_accvgpr_read_b32 v0, a02122; GCN-NEXT:    v_accvgpr_read_b32 v1, a12123; GCN-NEXT:    v_accvgpr_read_b32 v2, a22124; GCN-NEXT:    v_accvgpr_read_b32 v3, a32125; GCN-NEXT:    v_accvgpr_read_b32 v4, a42126; GCN-NEXT:    v_accvgpr_read_b32 v5, a52127; GCN-NEXT:    v_accvgpr_read_b32 v6, a62128; GCN-NEXT:    v_accvgpr_read_b32 v7, a72129; GCN-NEXT:    v_accvgpr_read_b32 v8, a82130; GCN-NEXT:    v_accvgpr_read_b32 v9, a92131; GCN-NEXT:    v_accvgpr_read_b32 v10, a102132; GCN-NEXT:    v_accvgpr_read_b32 v11, a112133; GCN-NEXT:    v_accvgpr_read_b32 v12, a122134; GCN-NEXT:    v_accvgpr_read_b32 v13, a132135; GCN-NEXT:    v_accvgpr_read_b32 v14, a142136; GCN-NEXT:    v_accvgpr_read_b32 v15, a152137; GCN-NEXT:    s_setpc_b64 s[30:31]2138  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2139                                                                                      i32 2, ; cbsz2140                                                                                      i32 2, ; blgp2141                                                                                      i32 0, i32 0, i32 0, i32 0)2142  ret <16 x float> %result2143}2144 2145; fp6 x bf62146define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2147; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3:2148; GCN:       ; %bb.0:2149; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2150; GCN-NEXT:    v_accvgpr_write_b32 a0, v122151; GCN-NEXT:    v_accvgpr_write_b32 a1, v132152; GCN-NEXT:    v_accvgpr_write_b32 a2, v142153; GCN-NEXT:    v_accvgpr_write_b32 a3, v152154; GCN-NEXT:    v_accvgpr_write_b32 a4, v162155; GCN-NEXT:    v_accvgpr_write_b32 a5, v172156; GCN-NEXT:    v_accvgpr_write_b32 a6, v182157; GCN-NEXT:    v_accvgpr_write_b32 a7, v192158; GCN-NEXT:    v_accvgpr_write_b32 a8, v202159; GCN-NEXT:    v_accvgpr_write_b32 a9, v212160; GCN-NEXT:    v_accvgpr_write_b32 a10, v222161; GCN-NEXT:    v_accvgpr_write_b32 a11, v232162; GCN-NEXT:    v_accvgpr_write_b32 a12, v242163; GCN-NEXT:    v_accvgpr_write_b32 a13, v252164; GCN-NEXT:    v_accvgpr_write_b32 a14, v262165; GCN-NEXT:    v_accvgpr_write_b32 a15, v272166; GCN-NEXT:    s_nop 12167; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:2 blgp:32168; GCN-NEXT:    s_nop 112169; GCN-NEXT:    v_accvgpr_read_b32 v0, a02170; GCN-NEXT:    v_accvgpr_read_b32 v1, a12171; GCN-NEXT:    v_accvgpr_read_b32 v2, a22172; GCN-NEXT:    v_accvgpr_read_b32 v3, a32173; GCN-NEXT:    v_accvgpr_read_b32 v4, a42174; GCN-NEXT:    v_accvgpr_read_b32 v5, a52175; GCN-NEXT:    v_accvgpr_read_b32 v6, a62176; GCN-NEXT:    v_accvgpr_read_b32 v7, a72177; GCN-NEXT:    v_accvgpr_read_b32 v8, a82178; GCN-NEXT:    v_accvgpr_read_b32 v9, a92179; GCN-NEXT:    v_accvgpr_read_b32 v10, a102180; GCN-NEXT:    v_accvgpr_read_b32 v11, a112181; GCN-NEXT:    v_accvgpr_read_b32 v12, a122182; GCN-NEXT:    v_accvgpr_read_b32 v13, a132183; GCN-NEXT:    v_accvgpr_read_b32 v14, a142184; GCN-NEXT:    v_accvgpr_read_b32 v15, a152185; GCN-NEXT:    s_setpc_b64 s[30:31]2186  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2187                                                                                      i32 2, ; cbsz2188                                                                                      i32 3, ; blgp2189                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2190  ret <16 x float> %result2191}2192 2193define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {2194; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3__constant_scale_0_0:2195; GCN:       ; %bb.0:2196; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2197; GCN-NEXT:    v_accvgpr_write_b32 a0, v122198; GCN-NEXT:    v_accvgpr_write_b32 a1, v132199; GCN-NEXT:    v_accvgpr_write_b32 a2, v142200; GCN-NEXT:    v_accvgpr_write_b32 a3, v152201; GCN-NEXT:    v_accvgpr_write_b32 a4, v162202; GCN-NEXT:    v_accvgpr_write_b32 a5, v172203; GCN-NEXT:    v_accvgpr_write_b32 a6, v182204; GCN-NEXT:    v_accvgpr_write_b32 a7, v192205; GCN-NEXT:    v_accvgpr_write_b32 a8, v202206; GCN-NEXT:    v_accvgpr_write_b32 a9, v212207; GCN-NEXT:    v_accvgpr_write_b32 a10, v222208; GCN-NEXT:    v_accvgpr_write_b32 a11, v232209; GCN-NEXT:    v_accvgpr_write_b32 a12, v242210; GCN-NEXT:    v_accvgpr_write_b32 a13, v252211; GCN-NEXT:    v_accvgpr_write_b32 a14, v262212; GCN-NEXT:    v_accvgpr_write_b32 a15, v272213; GCN-NEXT:    s_nop 12214; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:2 blgp:32215; GCN-NEXT:    s_nop 112216; GCN-NEXT:    v_accvgpr_read_b32 v0, a02217; GCN-NEXT:    v_accvgpr_read_b32 v1, a12218; GCN-NEXT:    v_accvgpr_read_b32 v2, a22219; GCN-NEXT:    v_accvgpr_read_b32 v3, a32220; GCN-NEXT:    v_accvgpr_read_b32 v4, a42221; GCN-NEXT:    v_accvgpr_read_b32 v5, a52222; GCN-NEXT:    v_accvgpr_read_b32 v6, a62223; GCN-NEXT:    v_accvgpr_read_b32 v7, a72224; GCN-NEXT:    v_accvgpr_read_b32 v8, a82225; GCN-NEXT:    v_accvgpr_read_b32 v9, a92226; GCN-NEXT:    v_accvgpr_read_b32 v10, a102227; GCN-NEXT:    v_accvgpr_read_b32 v11, a112228; GCN-NEXT:    v_accvgpr_read_b32 v12, a122229; GCN-NEXT:    v_accvgpr_read_b32 v13, a132230; GCN-NEXT:    v_accvgpr_read_b32 v14, a142231; GCN-NEXT:    v_accvgpr_read_b32 v15, a152232; GCN-NEXT:    s_setpc_b64 s[30:31]2233  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2234                                                                                      i32 2, ; cbsz2235                                                                                      i32 3, ; blgp2236                                                                                      i32 0, i32 0, i32 0, i32 0)2237  ret <16 x float> %result2238}2239 2240 2241; bf6 x fp82242define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2243; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0:2244; GCN:       ; %bb.0:2245; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2246; GCN-NEXT:    scratch_load_dword v31, off, s322247; GCN-NEXT:    v_accvgpr_write_b32 a0, v142248; GCN-NEXT:    v_accvgpr_write_b32 a1, v152249; GCN-NEXT:    v_accvgpr_write_b32 a2, v162250; GCN-NEXT:    v_accvgpr_write_b32 a3, v172251; GCN-NEXT:    v_accvgpr_write_b32 a4, v182252; GCN-NEXT:    v_accvgpr_write_b32 a5, v192253; GCN-NEXT:    v_accvgpr_write_b32 a6, v202254; GCN-NEXT:    v_accvgpr_write_b32 a7, v212255; GCN-NEXT:    v_accvgpr_write_b32 a8, v222256; GCN-NEXT:    v_accvgpr_write_b32 a9, v232257; GCN-NEXT:    v_accvgpr_write_b32 a10, v242258; GCN-NEXT:    v_accvgpr_write_b32 a11, v252259; GCN-NEXT:    v_accvgpr_write_b32 a12, v262260; GCN-NEXT:    v_accvgpr_write_b32 a13, v272261; GCN-NEXT:    v_accvgpr_write_b32 a14, v282262; GCN-NEXT:    v_accvgpr_write_b32 a15, v292263; GCN-NEXT:    s_waitcnt vmcnt(0)2264; GCN-NEXT:    s_nop 02265; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:32266; GCN-NEXT:    s_nop 152267; GCN-NEXT:    s_nop 32268; GCN-NEXT:    v_accvgpr_read_b32 v0, a02269; GCN-NEXT:    v_accvgpr_read_b32 v1, a12270; GCN-NEXT:    v_accvgpr_read_b32 v2, a22271; GCN-NEXT:    v_accvgpr_read_b32 v3, a32272; GCN-NEXT:    v_accvgpr_read_b32 v4, a42273; GCN-NEXT:    v_accvgpr_read_b32 v5, a52274; GCN-NEXT:    v_accvgpr_read_b32 v6, a62275; GCN-NEXT:    v_accvgpr_read_b32 v7, a72276; GCN-NEXT:    v_accvgpr_read_b32 v8, a82277; GCN-NEXT:    v_accvgpr_read_b32 v9, a92278; GCN-NEXT:    v_accvgpr_read_b32 v10, a102279; GCN-NEXT:    v_accvgpr_read_b32 v11, a112280; GCN-NEXT:    v_accvgpr_read_b32 v12, a122281; GCN-NEXT:    v_accvgpr_read_b32 v13, a132282; GCN-NEXT:    v_accvgpr_read_b32 v14, a142283; GCN-NEXT:    v_accvgpr_read_b32 v15, a152284; GCN-NEXT:    s_setpc_b64 s[30:31]2285  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2286                                                                                      i32 3, ; cbsz2287                                                                                      i32 0, ; blgp2288                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2289  ret <16 x float> %result2290}2291 2292define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {2293; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0__constant_scale_0_0:2294; GCN:       ; %bb.0:2295; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2296; GCN-NEXT:    v_accvgpr_write_b32 a0, v142297; GCN-NEXT:    v_accvgpr_write_b32 a1, v152298; GCN-NEXT:    v_accvgpr_write_b32 a2, v162299; GCN-NEXT:    v_accvgpr_write_b32 a3, v172300; GCN-NEXT:    v_accvgpr_write_b32 a4, v182301; GCN-NEXT:    v_accvgpr_write_b32 a5, v192302; GCN-NEXT:    v_accvgpr_write_b32 a6, v202303; GCN-NEXT:    v_accvgpr_write_b32 a7, v212304; GCN-NEXT:    v_accvgpr_write_b32 a8, v222305; GCN-NEXT:    v_accvgpr_write_b32 a9, v232306; GCN-NEXT:    v_accvgpr_write_b32 a10, v242307; GCN-NEXT:    v_accvgpr_write_b32 a11, v252308; GCN-NEXT:    v_accvgpr_write_b32 a12, v262309; GCN-NEXT:    v_accvgpr_write_b32 a13, v272310; GCN-NEXT:    v_accvgpr_write_b32 a14, v282311; GCN-NEXT:    v_accvgpr_write_b32 a15, v292312; GCN-NEXT:    s_nop 12313; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:32314; GCN-NEXT:    s_nop 152315; GCN-NEXT:    s_nop 32316; GCN-NEXT:    v_accvgpr_read_b32 v0, a02317; GCN-NEXT:    v_accvgpr_read_b32 v1, a12318; GCN-NEXT:    v_accvgpr_read_b32 v2, a22319; GCN-NEXT:    v_accvgpr_read_b32 v3, a32320; GCN-NEXT:    v_accvgpr_read_b32 v4, a42321; GCN-NEXT:    v_accvgpr_read_b32 v5, a52322; GCN-NEXT:    v_accvgpr_read_b32 v6, a62323; GCN-NEXT:    v_accvgpr_read_b32 v7, a72324; GCN-NEXT:    v_accvgpr_read_b32 v8, a82325; GCN-NEXT:    v_accvgpr_read_b32 v9, a92326; GCN-NEXT:    v_accvgpr_read_b32 v10, a102327; GCN-NEXT:    v_accvgpr_read_b32 v11, a112328; GCN-NEXT:    v_accvgpr_read_b32 v12, a122329; GCN-NEXT:    v_accvgpr_read_b32 v13, a132330; GCN-NEXT:    v_accvgpr_read_b32 v14, a142331; GCN-NEXT:    v_accvgpr_read_b32 v15, a152332; GCN-NEXT:    s_setpc_b64 s[30:31]2333  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2334                                                                                      i32 3, ; cbsz2335                                                                                      i32 0, ; blgp2336                                                                                      i32 0, i32 0, i32 0, i32 0)2337  ret <16 x float> %result2338}2339 2340; bf6 x bf82341define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2342; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1:2343; GCN:       ; %bb.0:2344; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2345; GCN-NEXT:    scratch_load_dword v31, off, s322346; GCN-NEXT:    v_accvgpr_write_b32 a0, v142347; GCN-NEXT:    v_accvgpr_write_b32 a1, v152348; GCN-NEXT:    v_accvgpr_write_b32 a2, v162349; GCN-NEXT:    v_accvgpr_write_b32 a3, v172350; GCN-NEXT:    v_accvgpr_write_b32 a4, v182351; GCN-NEXT:    v_accvgpr_write_b32 a5, v192352; GCN-NEXT:    v_accvgpr_write_b32 a6, v202353; GCN-NEXT:    v_accvgpr_write_b32 a7, v212354; GCN-NEXT:    v_accvgpr_write_b32 a8, v222355; GCN-NEXT:    v_accvgpr_write_b32 a9, v232356; GCN-NEXT:    v_accvgpr_write_b32 a10, v242357; GCN-NEXT:    v_accvgpr_write_b32 a11, v252358; GCN-NEXT:    v_accvgpr_write_b32 a12, v262359; GCN-NEXT:    v_accvgpr_write_b32 a13, v272360; GCN-NEXT:    v_accvgpr_write_b32 a14, v282361; GCN-NEXT:    v_accvgpr_write_b32 a15, v292362; GCN-NEXT:    s_waitcnt vmcnt(0)2363; GCN-NEXT:    s_nop 02364; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:3 blgp:12365; GCN-NEXT:    s_nop 152366; GCN-NEXT:    s_nop 32367; GCN-NEXT:    v_accvgpr_read_b32 v0, a02368; GCN-NEXT:    v_accvgpr_read_b32 v1, a12369; GCN-NEXT:    v_accvgpr_read_b32 v2, a22370; GCN-NEXT:    v_accvgpr_read_b32 v3, a32371; GCN-NEXT:    v_accvgpr_read_b32 v4, a42372; GCN-NEXT:    v_accvgpr_read_b32 v5, a52373; GCN-NEXT:    v_accvgpr_read_b32 v6, a62374; GCN-NEXT:    v_accvgpr_read_b32 v7, a72375; GCN-NEXT:    v_accvgpr_read_b32 v8, a82376; GCN-NEXT:    v_accvgpr_read_b32 v9, a92377; GCN-NEXT:    v_accvgpr_read_b32 v10, a102378; GCN-NEXT:    v_accvgpr_read_b32 v11, a112379; GCN-NEXT:    v_accvgpr_read_b32 v12, a122380; GCN-NEXT:    v_accvgpr_read_b32 v13, a132381; GCN-NEXT:    v_accvgpr_read_b32 v14, a142382; GCN-NEXT:    v_accvgpr_read_b32 v15, a152383; GCN-NEXT:    s_setpc_b64 s[30:31]2384  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2385                                                                                      i32 3, ; cbsz2386                                                                                      i32 1, ; blgp2387                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2388  ret <16 x float> %result2389}2390 2391define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {2392; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1__constant_scale_0_0:2393; GCN:       ; %bb.0:2394; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2395; GCN-NEXT:    v_accvgpr_write_b32 a0, v142396; GCN-NEXT:    v_accvgpr_write_b32 a1, v152397; GCN-NEXT:    v_accvgpr_write_b32 a2, v162398; GCN-NEXT:    v_accvgpr_write_b32 a3, v172399; GCN-NEXT:    v_accvgpr_write_b32 a4, v182400; GCN-NEXT:    v_accvgpr_write_b32 a5, v192401; GCN-NEXT:    v_accvgpr_write_b32 a6, v202402; GCN-NEXT:    v_accvgpr_write_b32 a7, v212403; GCN-NEXT:    v_accvgpr_write_b32 a8, v222404; GCN-NEXT:    v_accvgpr_write_b32 a9, v232405; GCN-NEXT:    v_accvgpr_write_b32 a10, v242406; GCN-NEXT:    v_accvgpr_write_b32 a11, v252407; GCN-NEXT:    v_accvgpr_write_b32 a12, v262408; GCN-NEXT:    v_accvgpr_write_b32 a13, v272409; GCN-NEXT:    v_accvgpr_write_b32 a14, v282410; GCN-NEXT:    v_accvgpr_write_b32 a15, v292411; GCN-NEXT:    s_nop 12412; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:3 blgp:12413; GCN-NEXT:    s_nop 152414; GCN-NEXT:    s_nop 32415; GCN-NEXT:    v_accvgpr_read_b32 v0, a02416; GCN-NEXT:    v_accvgpr_read_b32 v1, a12417; GCN-NEXT:    v_accvgpr_read_b32 v2, a22418; GCN-NEXT:    v_accvgpr_read_b32 v3, a32419; GCN-NEXT:    v_accvgpr_read_b32 v4, a42420; GCN-NEXT:    v_accvgpr_read_b32 v5, a52421; GCN-NEXT:    v_accvgpr_read_b32 v6, a62422; GCN-NEXT:    v_accvgpr_read_b32 v7, a72423; GCN-NEXT:    v_accvgpr_read_b32 v8, a82424; GCN-NEXT:    v_accvgpr_read_b32 v9, a92425; GCN-NEXT:    v_accvgpr_read_b32 v10, a102426; GCN-NEXT:    v_accvgpr_read_b32 v11, a112427; GCN-NEXT:    v_accvgpr_read_b32 v12, a122428; GCN-NEXT:    v_accvgpr_read_b32 v13, a132429; GCN-NEXT:    v_accvgpr_read_b32 v14, a142430; GCN-NEXT:    v_accvgpr_read_b32 v15, a152431; GCN-NEXT:    s_setpc_b64 s[30:31]2432  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2433                                                                                      i32 3, ; cbsz2434                                                                                      i32 1, ; blgp2435                                                                                      i32 0, i32 0, i32 0, i32 0)2436  ret <16 x float> %result2437}2438 2439; bf6 x fp62440define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2441; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2:2442; GCN:       ; %bb.0:2443; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2444; GCN-NEXT:    v_accvgpr_write_b32 a0, v122445; GCN-NEXT:    v_accvgpr_write_b32 a1, v132446; GCN-NEXT:    v_accvgpr_write_b32 a2, v142447; GCN-NEXT:    v_accvgpr_write_b32 a3, v152448; GCN-NEXT:    v_accvgpr_write_b32 a4, v162449; GCN-NEXT:    v_accvgpr_write_b32 a5, v172450; GCN-NEXT:    v_accvgpr_write_b32 a6, v182451; GCN-NEXT:    v_accvgpr_write_b32 a7, v192452; GCN-NEXT:    v_accvgpr_write_b32 a8, v202453; GCN-NEXT:    v_accvgpr_write_b32 a9, v212454; GCN-NEXT:    v_accvgpr_write_b32 a10, v222455; GCN-NEXT:    v_accvgpr_write_b32 a11, v232456; GCN-NEXT:    v_accvgpr_write_b32 a12, v242457; GCN-NEXT:    v_accvgpr_write_b32 a13, v252458; GCN-NEXT:    v_accvgpr_write_b32 a14, v262459; GCN-NEXT:    v_accvgpr_write_b32 a15, v272460; GCN-NEXT:    s_nop 12461; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:3 blgp:22462; GCN-NEXT:    s_nop 112463; GCN-NEXT:    v_accvgpr_read_b32 v0, a02464; GCN-NEXT:    v_accvgpr_read_b32 v1, a12465; GCN-NEXT:    v_accvgpr_read_b32 v2, a22466; GCN-NEXT:    v_accvgpr_read_b32 v3, a32467; GCN-NEXT:    v_accvgpr_read_b32 v4, a42468; GCN-NEXT:    v_accvgpr_read_b32 v5, a52469; GCN-NEXT:    v_accvgpr_read_b32 v6, a62470; GCN-NEXT:    v_accvgpr_read_b32 v7, a72471; GCN-NEXT:    v_accvgpr_read_b32 v8, a82472; GCN-NEXT:    v_accvgpr_read_b32 v9, a92473; GCN-NEXT:    v_accvgpr_read_b32 v10, a102474; GCN-NEXT:    v_accvgpr_read_b32 v11, a112475; GCN-NEXT:    v_accvgpr_read_b32 v12, a122476; GCN-NEXT:    v_accvgpr_read_b32 v13, a132477; GCN-NEXT:    v_accvgpr_read_b32 v14, a142478; GCN-NEXT:    v_accvgpr_read_b32 v15, a152479; GCN-NEXT:    s_setpc_b64 s[30:31]2480  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2481                                                                                      i32 3, ; cbsz2482                                                                                      i32 2, ; blgp2483                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2484  ret <16 x float> %result2485}2486 2487define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {2488; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2__constant_scale_0_0:2489; GCN:       ; %bb.0:2490; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2491; GCN-NEXT:    v_accvgpr_write_b32 a0, v122492; GCN-NEXT:    v_accvgpr_write_b32 a1, v132493; GCN-NEXT:    v_accvgpr_write_b32 a2, v142494; GCN-NEXT:    v_accvgpr_write_b32 a3, v152495; GCN-NEXT:    v_accvgpr_write_b32 a4, v162496; GCN-NEXT:    v_accvgpr_write_b32 a5, v172497; GCN-NEXT:    v_accvgpr_write_b32 a6, v182498; GCN-NEXT:    v_accvgpr_write_b32 a7, v192499; GCN-NEXT:    v_accvgpr_write_b32 a8, v202500; GCN-NEXT:    v_accvgpr_write_b32 a9, v212501; GCN-NEXT:    v_accvgpr_write_b32 a10, v222502; GCN-NEXT:    v_accvgpr_write_b32 a11, v232503; GCN-NEXT:    v_accvgpr_write_b32 a12, v242504; GCN-NEXT:    v_accvgpr_write_b32 a13, v252505; GCN-NEXT:    v_accvgpr_write_b32 a14, v262506; GCN-NEXT:    v_accvgpr_write_b32 a15, v272507; GCN-NEXT:    s_nop 12508; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:3 blgp:22509; GCN-NEXT:    s_nop 112510; GCN-NEXT:    v_accvgpr_read_b32 v0, a02511; GCN-NEXT:    v_accvgpr_read_b32 v1, a12512; GCN-NEXT:    v_accvgpr_read_b32 v2, a22513; GCN-NEXT:    v_accvgpr_read_b32 v3, a32514; GCN-NEXT:    v_accvgpr_read_b32 v4, a42515; GCN-NEXT:    v_accvgpr_read_b32 v5, a52516; GCN-NEXT:    v_accvgpr_read_b32 v6, a62517; GCN-NEXT:    v_accvgpr_read_b32 v7, a72518; GCN-NEXT:    v_accvgpr_read_b32 v8, a82519; GCN-NEXT:    v_accvgpr_read_b32 v9, a92520; GCN-NEXT:    v_accvgpr_read_b32 v10, a102521; GCN-NEXT:    v_accvgpr_read_b32 v11, a112522; GCN-NEXT:    v_accvgpr_read_b32 v12, a122523; GCN-NEXT:    v_accvgpr_read_b32 v13, a132524; GCN-NEXT:    v_accvgpr_read_b32 v14, a142525; GCN-NEXT:    v_accvgpr_read_b32 v15, a152526; GCN-NEXT:    s_setpc_b64 s[30:31]2527  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2528                                                                                      i32 3, ; cbsz2529                                                                                      i32 2, ; blgp2530                                                                                      i32 0, i32 0, i32 0, i32 0)2531  ret <16 x float> %result2532}2533 2534; bf6 x fp42535define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2536; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4:2537; GCN:       ; %bb.0:2538; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2539; GCN-NEXT:    v_accvgpr_write_b32 a0, v102540; GCN-NEXT:    v_accvgpr_write_b32 a1, v112541; GCN-NEXT:    v_accvgpr_write_b32 a2, v122542; GCN-NEXT:    v_accvgpr_write_b32 a3, v132543; GCN-NEXT:    v_accvgpr_write_b32 a4, v142544; GCN-NEXT:    v_accvgpr_write_b32 a5, v152545; GCN-NEXT:    v_accvgpr_write_b32 a6, v162546; GCN-NEXT:    v_accvgpr_write_b32 a7, v172547; GCN-NEXT:    v_accvgpr_write_b32 a8, v182548; GCN-NEXT:    v_accvgpr_write_b32 a9, v192549; GCN-NEXT:    v_accvgpr_write_b32 a10, v202550; GCN-NEXT:    v_accvgpr_write_b32 a11, v212551; GCN-NEXT:    v_accvgpr_write_b32 a12, v222552; GCN-NEXT:    v_accvgpr_write_b32 a13, v232553; GCN-NEXT:    v_accvgpr_write_b32 a14, v242554; GCN-NEXT:    v_accvgpr_write_b32 a15, v252555; GCN-NEXT:    s_nop 12556; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:3 blgp:42557; GCN-NEXT:    s_nop 112558; GCN-NEXT:    v_accvgpr_read_b32 v0, a02559; GCN-NEXT:    v_accvgpr_read_b32 v1, a12560; GCN-NEXT:    v_accvgpr_read_b32 v2, a22561; GCN-NEXT:    v_accvgpr_read_b32 v3, a32562; GCN-NEXT:    v_accvgpr_read_b32 v4, a42563; GCN-NEXT:    v_accvgpr_read_b32 v5, a52564; GCN-NEXT:    v_accvgpr_read_b32 v6, a62565; GCN-NEXT:    v_accvgpr_read_b32 v7, a72566; GCN-NEXT:    v_accvgpr_read_b32 v8, a82567; GCN-NEXT:    v_accvgpr_read_b32 v9, a92568; GCN-NEXT:    v_accvgpr_read_b32 v10, a102569; GCN-NEXT:    v_accvgpr_read_b32 v11, a112570; GCN-NEXT:    v_accvgpr_read_b32 v12, a122571; GCN-NEXT:    v_accvgpr_read_b32 v13, a132572; GCN-NEXT:    v_accvgpr_read_b32 v14, a142573; GCN-NEXT:    v_accvgpr_read_b32 v15, a152574; GCN-NEXT:    s_setpc_b64 s[30:31]2575  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,2576                                                                                      i32 3, ; cbsz2577                                                                                      i32 4, ; blgp2578                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2579  ret <16 x float> %result2580}2581 2582define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4__constant_scale_0_0(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) {2583; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4__constant_scale_0_0:2584; GCN:       ; %bb.0:2585; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2586; GCN-NEXT:    v_accvgpr_write_b32 a0, v102587; GCN-NEXT:    v_accvgpr_write_b32 a1, v112588; GCN-NEXT:    v_accvgpr_write_b32 a2, v122589; GCN-NEXT:    v_accvgpr_write_b32 a3, v132590; GCN-NEXT:    v_accvgpr_write_b32 a4, v142591; GCN-NEXT:    v_accvgpr_write_b32 a5, v152592; GCN-NEXT:    v_accvgpr_write_b32 a6, v162593; GCN-NEXT:    v_accvgpr_write_b32 a7, v172594; GCN-NEXT:    v_accvgpr_write_b32 a8, v182595; GCN-NEXT:    v_accvgpr_write_b32 a9, v192596; GCN-NEXT:    v_accvgpr_write_b32 a10, v202597; GCN-NEXT:    v_accvgpr_write_b32 a11, v212598; GCN-NEXT:    v_accvgpr_write_b32 a12, v222599; GCN-NEXT:    v_accvgpr_write_b32 a13, v232600; GCN-NEXT:    v_accvgpr_write_b32 a14, v242601; GCN-NEXT:    v_accvgpr_write_b32 a15, v252602; GCN-NEXT:    s_nop 12603; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15] cbsz:3 blgp:42604; GCN-NEXT:    s_nop 112605; GCN-NEXT:    v_accvgpr_read_b32 v0, a02606; GCN-NEXT:    v_accvgpr_read_b32 v1, a12607; GCN-NEXT:    v_accvgpr_read_b32 v2, a22608; GCN-NEXT:    v_accvgpr_read_b32 v3, a32609; GCN-NEXT:    v_accvgpr_read_b32 v4, a42610; GCN-NEXT:    v_accvgpr_read_b32 v5, a52611; GCN-NEXT:    v_accvgpr_read_b32 v6, a62612; GCN-NEXT:    v_accvgpr_read_b32 v7, a72613; GCN-NEXT:    v_accvgpr_read_b32 v8, a82614; GCN-NEXT:    v_accvgpr_read_b32 v9, a92615; GCN-NEXT:    v_accvgpr_read_b32 v10, a102616; GCN-NEXT:    v_accvgpr_read_b32 v11, a112617; GCN-NEXT:    v_accvgpr_read_b32 v12, a122618; GCN-NEXT:    v_accvgpr_read_b32 v13, a132619; GCN-NEXT:    v_accvgpr_read_b32 v14, a142620; GCN-NEXT:    v_accvgpr_read_b32 v15, a152621; GCN-NEXT:    s_setpc_b64 s[30:31]2622  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,2623                                                                                      i32 3, ; cbsz2624                                                                                      i32 4, ; blgp2625                                                                                      i32 0, i32 0, i32 0, i32 0)2626  ret <16 x float> %result2627}2628 2629; bf6 x bf62630define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2631; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3:2632; GCN:       ; %bb.0:2633; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2634; GCN-NEXT:    v_accvgpr_write_b32 a0, v122635; GCN-NEXT:    v_accvgpr_write_b32 a1, v132636; GCN-NEXT:    v_accvgpr_write_b32 a2, v142637; GCN-NEXT:    v_accvgpr_write_b32 a3, v152638; GCN-NEXT:    v_accvgpr_write_b32 a4, v162639; GCN-NEXT:    v_accvgpr_write_b32 a5, v172640; GCN-NEXT:    v_accvgpr_write_b32 a6, v182641; GCN-NEXT:    v_accvgpr_write_b32 a7, v192642; GCN-NEXT:    v_accvgpr_write_b32 a8, v202643; GCN-NEXT:    v_accvgpr_write_b32 a9, v212644; GCN-NEXT:    v_accvgpr_write_b32 a10, v222645; GCN-NEXT:    v_accvgpr_write_b32 a11, v232646; GCN-NEXT:    v_accvgpr_write_b32 a12, v242647; GCN-NEXT:    v_accvgpr_write_b32 a13, v252648; GCN-NEXT:    v_accvgpr_write_b32 a14, v262649; GCN-NEXT:    v_accvgpr_write_b32 a15, v272650; GCN-NEXT:    s_nop 12651; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:3 blgp:32652; GCN-NEXT:    s_nop 112653; GCN-NEXT:    v_accvgpr_read_b32 v0, a02654; GCN-NEXT:    v_accvgpr_read_b32 v1, a12655; GCN-NEXT:    v_accvgpr_read_b32 v2, a22656; GCN-NEXT:    v_accvgpr_read_b32 v3, a32657; GCN-NEXT:    v_accvgpr_read_b32 v4, a42658; GCN-NEXT:    v_accvgpr_read_b32 v5, a52659; GCN-NEXT:    v_accvgpr_read_b32 v6, a62660; GCN-NEXT:    v_accvgpr_read_b32 v7, a72661; GCN-NEXT:    v_accvgpr_read_b32 v8, a82662; GCN-NEXT:    v_accvgpr_read_b32 v9, a92663; GCN-NEXT:    v_accvgpr_read_b32 v10, a102664; GCN-NEXT:    v_accvgpr_read_b32 v11, a112665; GCN-NEXT:    v_accvgpr_read_b32 v12, a122666; GCN-NEXT:    v_accvgpr_read_b32 v13, a132667; GCN-NEXT:    v_accvgpr_read_b32 v14, a142668; GCN-NEXT:    v_accvgpr_read_b32 v15, a152669; GCN-NEXT:    s_setpc_b64 s[30:31]2670  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2671                                                                                      i32 3, ; cbsz2672                                                                                      i32 3, ; blgp2673                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2674  ret <16 x float> %result2675}2676 2677define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {2678; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3__constant_scale_0_0:2679; GCN:       ; %bb.0:2680; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2681; GCN-NEXT:    v_accvgpr_write_b32 a0, v122682; GCN-NEXT:    v_accvgpr_write_b32 a1, v132683; GCN-NEXT:    v_accvgpr_write_b32 a2, v142684; GCN-NEXT:    v_accvgpr_write_b32 a3, v152685; GCN-NEXT:    v_accvgpr_write_b32 a4, v162686; GCN-NEXT:    v_accvgpr_write_b32 a5, v172687; GCN-NEXT:    v_accvgpr_write_b32 a6, v182688; GCN-NEXT:    v_accvgpr_write_b32 a7, v192689; GCN-NEXT:    v_accvgpr_write_b32 a8, v202690; GCN-NEXT:    v_accvgpr_write_b32 a9, v212691; GCN-NEXT:    v_accvgpr_write_b32 a10, v222692; GCN-NEXT:    v_accvgpr_write_b32 a11, v232693; GCN-NEXT:    v_accvgpr_write_b32 a12, v242694; GCN-NEXT:    v_accvgpr_write_b32 a13, v252695; GCN-NEXT:    v_accvgpr_write_b32 a14, v262696; GCN-NEXT:    v_accvgpr_write_b32 a15, v272697; GCN-NEXT:    s_nop 12698; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:3 blgp:32699; GCN-NEXT:    s_nop 112700; GCN-NEXT:    v_accvgpr_read_b32 v0, a02701; GCN-NEXT:    v_accvgpr_read_b32 v1, a12702; GCN-NEXT:    v_accvgpr_read_b32 v2, a22703; GCN-NEXT:    v_accvgpr_read_b32 v3, a32704; GCN-NEXT:    v_accvgpr_read_b32 v4, a42705; GCN-NEXT:    v_accvgpr_read_b32 v5, a52706; GCN-NEXT:    v_accvgpr_read_b32 v6, a62707; GCN-NEXT:    v_accvgpr_read_b32 v7, a72708; GCN-NEXT:    v_accvgpr_read_b32 v8, a82709; GCN-NEXT:    v_accvgpr_read_b32 v9, a92710; GCN-NEXT:    v_accvgpr_read_b32 v10, a102711; GCN-NEXT:    v_accvgpr_read_b32 v11, a112712; GCN-NEXT:    v_accvgpr_read_b32 v12, a122713; GCN-NEXT:    v_accvgpr_read_b32 v13, a132714; GCN-NEXT:    v_accvgpr_read_b32 v14, a142715; GCN-NEXT:    v_accvgpr_read_b32 v15, a152716; GCN-NEXT:    s_setpc_b64 s[30:31]2717  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,2718                                                                                      i32 3, ; cbsz2719                                                                                      i32 3, ; blgp2720                                                                                      i32 0, i32 0, i32 0, i32 0)2721  ret <16 x float> %result2722}2723 2724; fp6 x fp42725define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2726; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4:2727; GCN:       ; %bb.0:2728; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2729; GCN-NEXT:    v_accvgpr_write_b32 a0, v102730; GCN-NEXT:    v_accvgpr_write_b32 a1, v112731; GCN-NEXT:    v_accvgpr_write_b32 a2, v122732; GCN-NEXT:    v_accvgpr_write_b32 a3, v132733; GCN-NEXT:    v_accvgpr_write_b32 a4, v142734; GCN-NEXT:    v_accvgpr_write_b32 a5, v152735; GCN-NEXT:    v_accvgpr_write_b32 a6, v162736; GCN-NEXT:    v_accvgpr_write_b32 a7, v172737; GCN-NEXT:    v_accvgpr_write_b32 a8, v182738; GCN-NEXT:    v_accvgpr_write_b32 a9, v192739; GCN-NEXT:    v_accvgpr_write_b32 a10, v202740; GCN-NEXT:    v_accvgpr_write_b32 a11, v212741; GCN-NEXT:    v_accvgpr_write_b32 a12, v222742; GCN-NEXT:    v_accvgpr_write_b32 a13, v232743; GCN-NEXT:    v_accvgpr_write_b32 a14, v242744; GCN-NEXT:    v_accvgpr_write_b32 a15, v252745; GCN-NEXT:    s_nop 12746; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:2 blgp:42747; GCN-NEXT:    s_nop 112748; GCN-NEXT:    v_accvgpr_read_b32 v0, a02749; GCN-NEXT:    v_accvgpr_read_b32 v1, a12750; GCN-NEXT:    v_accvgpr_read_b32 v2, a22751; GCN-NEXT:    v_accvgpr_read_b32 v3, a32752; GCN-NEXT:    v_accvgpr_read_b32 v4, a42753; GCN-NEXT:    v_accvgpr_read_b32 v5, a52754; GCN-NEXT:    v_accvgpr_read_b32 v6, a62755; GCN-NEXT:    v_accvgpr_read_b32 v7, a72756; GCN-NEXT:    v_accvgpr_read_b32 v8, a82757; GCN-NEXT:    v_accvgpr_read_b32 v9, a92758; GCN-NEXT:    v_accvgpr_read_b32 v10, a102759; GCN-NEXT:    v_accvgpr_read_b32 v11, a112760; GCN-NEXT:    v_accvgpr_read_b32 v12, a122761; GCN-NEXT:    v_accvgpr_read_b32 v13, a132762; GCN-NEXT:    v_accvgpr_read_b32 v14, a142763; GCN-NEXT:    v_accvgpr_read_b32 v15, a152764; GCN-NEXT:    s_setpc_b64 s[30:31]2765  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,2766                                                                                      i32 2, ; cbsz2767                                                                                      i32 4, ; blgp2768                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2769  ret <16 x float> %result2770}2771 2772define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4__constant_scale_0_0(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) {2773; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4__constant_scale_0_0:2774; GCN:       ; %bb.0:2775; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2776; GCN-NEXT:    v_accvgpr_write_b32 a0, v102777; GCN-NEXT:    v_accvgpr_write_b32 a1, v112778; GCN-NEXT:    v_accvgpr_write_b32 a2, v122779; GCN-NEXT:    v_accvgpr_write_b32 a3, v132780; GCN-NEXT:    v_accvgpr_write_b32 a4, v142781; GCN-NEXT:    v_accvgpr_write_b32 a5, v152782; GCN-NEXT:    v_accvgpr_write_b32 a6, v162783; GCN-NEXT:    v_accvgpr_write_b32 a7, v172784; GCN-NEXT:    v_accvgpr_write_b32 a8, v182785; GCN-NEXT:    v_accvgpr_write_b32 a9, v192786; GCN-NEXT:    v_accvgpr_write_b32 a10, v202787; GCN-NEXT:    v_accvgpr_write_b32 a11, v212788; GCN-NEXT:    v_accvgpr_write_b32 a12, v222789; GCN-NEXT:    v_accvgpr_write_b32 a13, v232790; GCN-NEXT:    v_accvgpr_write_b32 a14, v242791; GCN-NEXT:    v_accvgpr_write_b32 a15, v252792; GCN-NEXT:    s_nop 12793; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15] cbsz:2 blgp:42794; GCN-NEXT:    s_nop 112795; GCN-NEXT:    v_accvgpr_read_b32 v0, a02796; GCN-NEXT:    v_accvgpr_read_b32 v1, a12797; GCN-NEXT:    v_accvgpr_read_b32 v2, a22798; GCN-NEXT:    v_accvgpr_read_b32 v3, a32799; GCN-NEXT:    v_accvgpr_read_b32 v4, a42800; GCN-NEXT:    v_accvgpr_read_b32 v5, a52801; GCN-NEXT:    v_accvgpr_read_b32 v6, a62802; GCN-NEXT:    v_accvgpr_read_b32 v7, a72803; GCN-NEXT:    v_accvgpr_read_b32 v8, a82804; GCN-NEXT:    v_accvgpr_read_b32 v9, a92805; GCN-NEXT:    v_accvgpr_read_b32 v10, a102806; GCN-NEXT:    v_accvgpr_read_b32 v11, a112807; GCN-NEXT:    v_accvgpr_read_b32 v12, a122808; GCN-NEXT:    v_accvgpr_read_b32 v13, a132809; GCN-NEXT:    v_accvgpr_read_b32 v14, a142810; GCN-NEXT:    v_accvgpr_read_b32 v15, a152811; GCN-NEXT:    s_setpc_b64 s[30:31]2812  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,2813                                                                                      i32 2, ; cbsz2814                                                                                      i32 4, ; blgp2815                                                                                      i32 0, i32 0, i32 0, i32 0)2816  ret <16 x float> %result2817}2818 2819; fp4 x fp82820define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2821; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0:2822; GCN:       ; %bb.0:2823; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2824; GCN-NEXT:    v_accvgpr_write_b32 a0, v122825; GCN-NEXT:    v_accvgpr_write_b32 a1, v132826; GCN-NEXT:    v_accvgpr_write_b32 a2, v142827; GCN-NEXT:    v_accvgpr_write_b32 a3, v152828; GCN-NEXT:    v_accvgpr_write_b32 a4, v162829; GCN-NEXT:    v_accvgpr_write_b32 a5, v172830; GCN-NEXT:    v_accvgpr_write_b32 a6, v182831; GCN-NEXT:    v_accvgpr_write_b32 a7, v192832; GCN-NEXT:    v_accvgpr_write_b32 a8, v202833; GCN-NEXT:    v_accvgpr_write_b32 a9, v212834; GCN-NEXT:    v_accvgpr_write_b32 a10, v222835; GCN-NEXT:    v_accvgpr_write_b32 a11, v232836; GCN-NEXT:    v_accvgpr_write_b32 a12, v242837; GCN-NEXT:    v_accvgpr_write_b32 a13, v252838; GCN-NEXT:    v_accvgpr_write_b32 a14, v262839; GCN-NEXT:    v_accvgpr_write_b32 a15, v272840; GCN-NEXT:    s_nop 12841; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:42842; GCN-NEXT:    s_nop 152843; GCN-NEXT:    s_nop 32844; GCN-NEXT:    v_accvgpr_read_b32 v0, a02845; GCN-NEXT:    v_accvgpr_read_b32 v1, a12846; GCN-NEXT:    v_accvgpr_read_b32 v2, a22847; GCN-NEXT:    v_accvgpr_read_b32 v3, a32848; GCN-NEXT:    v_accvgpr_read_b32 v4, a42849; GCN-NEXT:    v_accvgpr_read_b32 v5, a52850; GCN-NEXT:    v_accvgpr_read_b32 v6, a62851; GCN-NEXT:    v_accvgpr_read_b32 v7, a72852; GCN-NEXT:    v_accvgpr_read_b32 v8, a82853; GCN-NEXT:    v_accvgpr_read_b32 v9, a92854; GCN-NEXT:    v_accvgpr_read_b32 v10, a102855; GCN-NEXT:    v_accvgpr_read_b32 v11, a112856; GCN-NEXT:    v_accvgpr_read_b32 v12, a122857; GCN-NEXT:    v_accvgpr_read_b32 v13, a132858; GCN-NEXT:    v_accvgpr_read_b32 v14, a142859; GCN-NEXT:    v_accvgpr_read_b32 v15, a152860; GCN-NEXT:    s_setpc_b64 s[30:31]2861  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2862                                                                                      i32 4, ; cbsz2863                                                                                      i32 0, ; blgp2864                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2865  ret <16 x float> %result2866}2867 2868define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0__constant_scale_0_0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {2869; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0__constant_scale_0_0:2870; GCN:       ; %bb.0:2871; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2872; GCN-NEXT:    v_accvgpr_write_b32 a0, v122873; GCN-NEXT:    v_accvgpr_write_b32 a1, v132874; GCN-NEXT:    v_accvgpr_write_b32 a2, v142875; GCN-NEXT:    v_accvgpr_write_b32 a3, v152876; GCN-NEXT:    v_accvgpr_write_b32 a4, v162877; GCN-NEXT:    v_accvgpr_write_b32 a5, v172878; GCN-NEXT:    v_accvgpr_write_b32 a6, v182879; GCN-NEXT:    v_accvgpr_write_b32 a7, v192880; GCN-NEXT:    v_accvgpr_write_b32 a8, v202881; GCN-NEXT:    v_accvgpr_write_b32 a9, v212882; GCN-NEXT:    v_accvgpr_write_b32 a10, v222883; GCN-NEXT:    v_accvgpr_write_b32 a11, v232884; GCN-NEXT:    v_accvgpr_write_b32 a12, v242885; GCN-NEXT:    v_accvgpr_write_b32 a13, v252886; GCN-NEXT:    v_accvgpr_write_b32 a14, v262887; GCN-NEXT:    v_accvgpr_write_b32 a15, v272888; GCN-NEXT:    s_nop 12889; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15] cbsz:42890; GCN-NEXT:    s_nop 152891; GCN-NEXT:    s_nop 32892; GCN-NEXT:    v_accvgpr_read_b32 v0, a02893; GCN-NEXT:    v_accvgpr_read_b32 v1, a12894; GCN-NEXT:    v_accvgpr_read_b32 v2, a22895; GCN-NEXT:    v_accvgpr_read_b32 v3, a32896; GCN-NEXT:    v_accvgpr_read_b32 v4, a42897; GCN-NEXT:    v_accvgpr_read_b32 v5, a52898; GCN-NEXT:    v_accvgpr_read_b32 v6, a62899; GCN-NEXT:    v_accvgpr_read_b32 v7, a72900; GCN-NEXT:    v_accvgpr_read_b32 v8, a82901; GCN-NEXT:    v_accvgpr_read_b32 v9, a92902; GCN-NEXT:    v_accvgpr_read_b32 v10, a102903; GCN-NEXT:    v_accvgpr_read_b32 v11, a112904; GCN-NEXT:    v_accvgpr_read_b32 v12, a122905; GCN-NEXT:    v_accvgpr_read_b32 v13, a132906; GCN-NEXT:    v_accvgpr_read_b32 v14, a142907; GCN-NEXT:    v_accvgpr_read_b32 v15, a152908; GCN-NEXT:    s_setpc_b64 s[30:31]2909  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2910                                                                                      i32 4, ; cbsz2911                                                                                      i32 0, ; blgp2912                                                                                      i32 0, i32 0, i32 0, i32 0)2913  ret <16 x float> %result2914}2915 2916; fp4 x bf82917define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {2918; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1:2919; GCN:       ; %bb.0:2920; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2921; GCN-NEXT:    v_accvgpr_write_b32 a0, v122922; GCN-NEXT:    v_accvgpr_write_b32 a1, v132923; GCN-NEXT:    v_accvgpr_write_b32 a2, v142924; GCN-NEXT:    v_accvgpr_write_b32 a3, v152925; GCN-NEXT:    v_accvgpr_write_b32 a4, v162926; GCN-NEXT:    v_accvgpr_write_b32 a5, v172927; GCN-NEXT:    v_accvgpr_write_b32 a6, v182928; GCN-NEXT:    v_accvgpr_write_b32 a7, v192929; GCN-NEXT:    v_accvgpr_write_b32 a8, v202930; GCN-NEXT:    v_accvgpr_write_b32 a9, v212931; GCN-NEXT:    v_accvgpr_write_b32 a10, v222932; GCN-NEXT:    v_accvgpr_write_b32 a11, v232933; GCN-NEXT:    v_accvgpr_write_b32 a12, v242934; GCN-NEXT:    v_accvgpr_write_b32 a13, v252935; GCN-NEXT:    v_accvgpr_write_b32 a14, v262936; GCN-NEXT:    v_accvgpr_write_b32 a15, v272937; GCN-NEXT:    s_nop 12938; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:4 blgp:12939; GCN-NEXT:    s_nop 152940; GCN-NEXT:    s_nop 32941; GCN-NEXT:    v_accvgpr_read_b32 v0, a02942; GCN-NEXT:    v_accvgpr_read_b32 v1, a12943; GCN-NEXT:    v_accvgpr_read_b32 v2, a22944; GCN-NEXT:    v_accvgpr_read_b32 v3, a32945; GCN-NEXT:    v_accvgpr_read_b32 v4, a42946; GCN-NEXT:    v_accvgpr_read_b32 v5, a52947; GCN-NEXT:    v_accvgpr_read_b32 v6, a62948; GCN-NEXT:    v_accvgpr_read_b32 v7, a72949; GCN-NEXT:    v_accvgpr_read_b32 v8, a82950; GCN-NEXT:    v_accvgpr_read_b32 v9, a92951; GCN-NEXT:    v_accvgpr_read_b32 v10, a102952; GCN-NEXT:    v_accvgpr_read_b32 v11, a112953; GCN-NEXT:    v_accvgpr_read_b32 v12, a122954; GCN-NEXT:    v_accvgpr_read_b32 v13, a132955; GCN-NEXT:    v_accvgpr_read_b32 v14, a142956; GCN-NEXT:    v_accvgpr_read_b32 v15, a152957; GCN-NEXT:    s_setpc_b64 s[30:31]2958  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,2959                                                                                      i32 4, ; cbsz2960                                                                                      i32 1, ; blgp2961                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)2962  ret <16 x float> %result2963}2964 2965define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1__constant_scale_0_0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {2966; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1__constant_scale_0_0:2967; GCN:       ; %bb.0:2968; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)2969; GCN-NEXT:    v_accvgpr_write_b32 a0, v122970; GCN-NEXT:    v_accvgpr_write_b32 a1, v132971; GCN-NEXT:    v_accvgpr_write_b32 a2, v142972; GCN-NEXT:    v_accvgpr_write_b32 a3, v152973; GCN-NEXT:    v_accvgpr_write_b32 a4, v162974; GCN-NEXT:    v_accvgpr_write_b32 a5, v172975; GCN-NEXT:    v_accvgpr_write_b32 a6, v182976; GCN-NEXT:    v_accvgpr_write_b32 a7, v192977; GCN-NEXT:    v_accvgpr_write_b32 a8, v202978; GCN-NEXT:    v_accvgpr_write_b32 a9, v212979; GCN-NEXT:    v_accvgpr_write_b32 a10, v222980; GCN-NEXT:    v_accvgpr_write_b32 a11, v232981; GCN-NEXT:    v_accvgpr_write_b32 a12, v242982; GCN-NEXT:    v_accvgpr_write_b32 a13, v252983; GCN-NEXT:    v_accvgpr_write_b32 a14, v262984; GCN-NEXT:    v_accvgpr_write_b32 a15, v272985; GCN-NEXT:    s_nop 12986; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15] cbsz:4 blgp:12987; GCN-NEXT:    s_nop 152988; GCN-NEXT:    s_nop 32989; GCN-NEXT:    v_accvgpr_read_b32 v0, a02990; GCN-NEXT:    v_accvgpr_read_b32 v1, a12991; GCN-NEXT:    v_accvgpr_read_b32 v2, a22992; GCN-NEXT:    v_accvgpr_read_b32 v3, a32993; GCN-NEXT:    v_accvgpr_read_b32 v4, a42994; GCN-NEXT:    v_accvgpr_read_b32 v5, a52995; GCN-NEXT:    v_accvgpr_read_b32 v6, a62996; GCN-NEXT:    v_accvgpr_read_b32 v7, a72997; GCN-NEXT:    v_accvgpr_read_b32 v8, a82998; GCN-NEXT:    v_accvgpr_read_b32 v9, a92999; GCN-NEXT:    v_accvgpr_read_b32 v10, a103000; GCN-NEXT:    v_accvgpr_read_b32 v11, a113001; GCN-NEXT:    v_accvgpr_read_b32 v12, a123002; GCN-NEXT:    v_accvgpr_read_b32 v13, a133003; GCN-NEXT:    v_accvgpr_read_b32 v14, a143004; GCN-NEXT:    v_accvgpr_read_b32 v15, a153005; GCN-NEXT:    s_setpc_b64 s[30:31]3006  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,3007                                                                                      i32 4, ; cbsz3008                                                                                      i32 1, ; blgp3009                                                                                      i32 0, i32 0, i32 0, i32 0)3010  ret <16 x float> %result3011}3012 3013; fp4 x fp63014define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {3015; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2:3016; GCN:       ; %bb.0:3017; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3018; GCN-NEXT:    v_accvgpr_write_b32 a0, v103019; GCN-NEXT:    v_accvgpr_write_b32 a1, v113020; GCN-NEXT:    v_accvgpr_write_b32 a2, v123021; GCN-NEXT:    v_accvgpr_write_b32 a3, v133022; GCN-NEXT:    v_accvgpr_write_b32 a4, v143023; GCN-NEXT:    v_accvgpr_write_b32 a5, v153024; GCN-NEXT:    v_accvgpr_write_b32 a6, v163025; GCN-NEXT:    v_accvgpr_write_b32 a7, v173026; GCN-NEXT:    v_accvgpr_write_b32 a8, v183027; GCN-NEXT:    v_accvgpr_write_b32 a9, v193028; GCN-NEXT:    v_accvgpr_write_b32 a10, v203029; GCN-NEXT:    v_accvgpr_write_b32 a11, v213030; GCN-NEXT:    v_accvgpr_write_b32 a12, v223031; GCN-NEXT:    v_accvgpr_write_b32 a13, v233032; GCN-NEXT:    v_accvgpr_write_b32 a14, v243033; GCN-NEXT:    v_accvgpr_write_b32 a15, v253034; GCN-NEXT:    s_nop 13035; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:4 blgp:23036; GCN-NEXT:    s_nop 113037; GCN-NEXT:    v_accvgpr_read_b32 v0, a03038; GCN-NEXT:    v_accvgpr_read_b32 v1, a13039; GCN-NEXT:    v_accvgpr_read_b32 v2, a23040; GCN-NEXT:    v_accvgpr_read_b32 v3, a33041; GCN-NEXT:    v_accvgpr_read_b32 v4, a43042; GCN-NEXT:    v_accvgpr_read_b32 v5, a53043; GCN-NEXT:    v_accvgpr_read_b32 v6, a63044; GCN-NEXT:    v_accvgpr_read_b32 v7, a73045; GCN-NEXT:    v_accvgpr_read_b32 v8, a83046; GCN-NEXT:    v_accvgpr_read_b32 v9, a93047; GCN-NEXT:    v_accvgpr_read_b32 v10, a103048; GCN-NEXT:    v_accvgpr_read_b32 v11, a113049; GCN-NEXT:    v_accvgpr_read_b32 v12, a123050; GCN-NEXT:    v_accvgpr_read_b32 v13, a133051; GCN-NEXT:    v_accvgpr_read_b32 v14, a143052; GCN-NEXT:    v_accvgpr_read_b32 v15, a153053; GCN-NEXT:    s_setpc_b64 s[30:31]3054  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,3055                                                                                      i32 4, ; cbsz3056                                                                                      i32 2, ; blgp3057                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)3058  ret <16 x float> %result3059}3060 3061define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2__constant_scale_0_0(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {3062; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2__constant_scale_0_0:3063; GCN:       ; %bb.0:3064; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3065; GCN-NEXT:    v_accvgpr_write_b32 a0, v103066; GCN-NEXT:    v_accvgpr_write_b32 a1, v113067; GCN-NEXT:    v_accvgpr_write_b32 a2, v123068; GCN-NEXT:    v_accvgpr_write_b32 a3, v133069; GCN-NEXT:    v_accvgpr_write_b32 a4, v143070; GCN-NEXT:    v_accvgpr_write_b32 a5, v153071; GCN-NEXT:    v_accvgpr_write_b32 a6, v163072; GCN-NEXT:    v_accvgpr_write_b32 a7, v173073; GCN-NEXT:    v_accvgpr_write_b32 a8, v183074; GCN-NEXT:    v_accvgpr_write_b32 a9, v193075; GCN-NEXT:    v_accvgpr_write_b32 a10, v203076; GCN-NEXT:    v_accvgpr_write_b32 a11, v213077; GCN-NEXT:    v_accvgpr_write_b32 a12, v223078; GCN-NEXT:    v_accvgpr_write_b32 a13, v233079; GCN-NEXT:    v_accvgpr_write_b32 a14, v243080; GCN-NEXT:    v_accvgpr_write_b32 a15, v253081; GCN-NEXT:    s_nop 13082; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15] cbsz:4 blgp:23083; GCN-NEXT:    s_nop 113084; GCN-NEXT:    v_accvgpr_read_b32 v0, a03085; GCN-NEXT:    v_accvgpr_read_b32 v1, a13086; GCN-NEXT:    v_accvgpr_read_b32 v2, a23087; GCN-NEXT:    v_accvgpr_read_b32 v3, a33088; GCN-NEXT:    v_accvgpr_read_b32 v4, a43089; GCN-NEXT:    v_accvgpr_read_b32 v5, a53090; GCN-NEXT:    v_accvgpr_read_b32 v6, a63091; GCN-NEXT:    v_accvgpr_read_b32 v7, a73092; GCN-NEXT:    v_accvgpr_read_b32 v8, a83093; GCN-NEXT:    v_accvgpr_read_b32 v9, a93094; GCN-NEXT:    v_accvgpr_read_b32 v10, a103095; GCN-NEXT:    v_accvgpr_read_b32 v11, a113096; GCN-NEXT:    v_accvgpr_read_b32 v12, a123097; GCN-NEXT:    v_accvgpr_read_b32 v13, a133098; GCN-NEXT:    v_accvgpr_read_b32 v14, a143099; GCN-NEXT:    v_accvgpr_read_b32 v15, a153100; GCN-NEXT:    s_setpc_b64 s[30:31]3101  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,3102                                                                                      i32 4, ; cbsz3103                                                                                      i32 2, ; blgp3104                                                                                      i32 0, i32 0, i32 0, i32 0)3105  ret <16 x float> %result3106}3107 3108; fp4 x bf63109define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {3110; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3:3111; GCN:       ; %bb.0:3112; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3113; GCN-NEXT:    v_accvgpr_write_b32 a0, v103114; GCN-NEXT:    v_accvgpr_write_b32 a1, v113115; GCN-NEXT:    v_accvgpr_write_b32 a2, v123116; GCN-NEXT:    v_accvgpr_write_b32 a3, v133117; GCN-NEXT:    v_accvgpr_write_b32 a4, v143118; GCN-NEXT:    v_accvgpr_write_b32 a5, v153119; GCN-NEXT:    v_accvgpr_write_b32 a6, v163120; GCN-NEXT:    v_accvgpr_write_b32 a7, v173121; GCN-NEXT:    v_accvgpr_write_b32 a8, v183122; GCN-NEXT:    v_accvgpr_write_b32 a9, v193123; GCN-NEXT:    v_accvgpr_write_b32 a10, v203124; GCN-NEXT:    v_accvgpr_write_b32 a11, v213125; GCN-NEXT:    v_accvgpr_write_b32 a12, v223126; GCN-NEXT:    v_accvgpr_write_b32 a13, v233127; GCN-NEXT:    v_accvgpr_write_b32 a14, v243128; GCN-NEXT:    v_accvgpr_write_b32 a15, v253129; GCN-NEXT:    s_nop 13130; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:4 blgp:33131; GCN-NEXT:    s_nop 113132; GCN-NEXT:    v_accvgpr_read_b32 v0, a03133; GCN-NEXT:    v_accvgpr_read_b32 v1, a13134; GCN-NEXT:    v_accvgpr_read_b32 v2, a23135; GCN-NEXT:    v_accvgpr_read_b32 v3, a33136; GCN-NEXT:    v_accvgpr_read_b32 v4, a43137; GCN-NEXT:    v_accvgpr_read_b32 v5, a53138; GCN-NEXT:    v_accvgpr_read_b32 v6, a63139; GCN-NEXT:    v_accvgpr_read_b32 v7, a73140; GCN-NEXT:    v_accvgpr_read_b32 v8, a83141; GCN-NEXT:    v_accvgpr_read_b32 v9, a93142; GCN-NEXT:    v_accvgpr_read_b32 v10, a103143; GCN-NEXT:    v_accvgpr_read_b32 v11, a113144; GCN-NEXT:    v_accvgpr_read_b32 v12, a123145; GCN-NEXT:    v_accvgpr_read_b32 v13, a133146; GCN-NEXT:    v_accvgpr_read_b32 v14, a143147; GCN-NEXT:    v_accvgpr_read_b32 v15, a153148; GCN-NEXT:    s_setpc_b64 s[30:31]3149  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,3150                                                                                      i32 4, ; cbsz3151                                                                                      i32 3, ; blgp3152                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)3153  ret <16 x float> %result3154}3155 3156define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3__constant_scale_0_0(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) {3157; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3__constant_scale_0_0:3158; GCN:       ; %bb.0:3159; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3160; GCN-NEXT:    v_accvgpr_write_b32 a0, v103161; GCN-NEXT:    v_accvgpr_write_b32 a1, v113162; GCN-NEXT:    v_accvgpr_write_b32 a2, v123163; GCN-NEXT:    v_accvgpr_write_b32 a3, v133164; GCN-NEXT:    v_accvgpr_write_b32 a4, v143165; GCN-NEXT:    v_accvgpr_write_b32 a5, v153166; GCN-NEXT:    v_accvgpr_write_b32 a6, v163167; GCN-NEXT:    v_accvgpr_write_b32 a7, v173168; GCN-NEXT:    v_accvgpr_write_b32 a8, v183169; GCN-NEXT:    v_accvgpr_write_b32 a9, v193170; GCN-NEXT:    v_accvgpr_write_b32 a10, v203171; GCN-NEXT:    v_accvgpr_write_b32 a11, v213172; GCN-NEXT:    v_accvgpr_write_b32 a12, v223173; GCN-NEXT:    v_accvgpr_write_b32 a13, v233174; GCN-NEXT:    v_accvgpr_write_b32 a14, v243175; GCN-NEXT:    v_accvgpr_write_b32 a15, v253176; GCN-NEXT:    s_nop 13177; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15] cbsz:4 blgp:33178; GCN-NEXT:    s_nop 113179; GCN-NEXT:    v_accvgpr_read_b32 v0, a03180; GCN-NEXT:    v_accvgpr_read_b32 v1, a13181; GCN-NEXT:    v_accvgpr_read_b32 v2, a23182; GCN-NEXT:    v_accvgpr_read_b32 v3, a33183; GCN-NEXT:    v_accvgpr_read_b32 v4, a43184; GCN-NEXT:    v_accvgpr_read_b32 v5, a53185; GCN-NEXT:    v_accvgpr_read_b32 v6, a63186; GCN-NEXT:    v_accvgpr_read_b32 v7, a73187; GCN-NEXT:    v_accvgpr_read_b32 v8, a83188; GCN-NEXT:    v_accvgpr_read_b32 v9, a93189; GCN-NEXT:    v_accvgpr_read_b32 v10, a103190; GCN-NEXT:    v_accvgpr_read_b32 v11, a113191; GCN-NEXT:    v_accvgpr_read_b32 v12, a123192; GCN-NEXT:    v_accvgpr_read_b32 v13, a133193; GCN-NEXT:    v_accvgpr_read_b32 v14, a143194; GCN-NEXT:    v_accvgpr_read_b32 v15, a153195; GCN-NEXT:    s_setpc_b64 s[30:31]3196  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,3197                                                                                      i32 4, ; cbsz3198                                                                                      i32 3, ; blgp3199                                                                                      i32 0, i32 0, i32 0, i32 0)3200  ret <16 x float> %result3201}3202 3203; fp4 x fp43204define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {3205; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4:3206; GCN:       ; %bb.0:3207; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3208; GCN-NEXT:    v_accvgpr_write_b32 a0, v83209; GCN-NEXT:    v_accvgpr_write_b32 a1, v93210; GCN-NEXT:    v_accvgpr_write_b32 a2, v103211; GCN-NEXT:    v_accvgpr_write_b32 a3, v113212; GCN-NEXT:    v_accvgpr_write_b32 a4, v123213; GCN-NEXT:    v_accvgpr_write_b32 a5, v133214; GCN-NEXT:    v_accvgpr_write_b32 a6, v143215; GCN-NEXT:    v_accvgpr_write_b32 a7, v153216; GCN-NEXT:    v_accvgpr_write_b32 a8, v163217; GCN-NEXT:    v_accvgpr_write_b32 a9, v173218; GCN-NEXT:    v_accvgpr_write_b32 a10, v183219; GCN-NEXT:    v_accvgpr_write_b32 a11, v193220; GCN-NEXT:    v_accvgpr_write_b32 a12, v203221; GCN-NEXT:    v_accvgpr_write_b32 a13, v213222; GCN-NEXT:    v_accvgpr_write_b32 a14, v223223; GCN-NEXT:    v_accvgpr_write_b32 a15, v233224; GCN-NEXT:    s_nop 13225; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:7], a[0:15], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:43226; GCN-NEXT:    s_nop 113227; GCN-NEXT:    v_accvgpr_read_b32 v0, a03228; GCN-NEXT:    v_accvgpr_read_b32 v1, a13229; GCN-NEXT:    v_accvgpr_read_b32 v2, a23230; GCN-NEXT:    v_accvgpr_read_b32 v3, a33231; GCN-NEXT:    v_accvgpr_read_b32 v4, a43232; GCN-NEXT:    v_accvgpr_read_b32 v5, a53233; GCN-NEXT:    v_accvgpr_read_b32 v6, a63234; GCN-NEXT:    v_accvgpr_read_b32 v7, a73235; GCN-NEXT:    v_accvgpr_read_b32 v8, a83236; GCN-NEXT:    v_accvgpr_read_b32 v9, a93237; GCN-NEXT:    v_accvgpr_read_b32 v10, a103238; GCN-NEXT:    v_accvgpr_read_b32 v11, a113239; GCN-NEXT:    v_accvgpr_read_b32 v12, a123240; GCN-NEXT:    v_accvgpr_read_b32 v13, a133241; GCN-NEXT:    v_accvgpr_read_b32 v14, a143242; GCN-NEXT:    v_accvgpr_read_b32 v15, a153243; GCN-NEXT:    s_setpc_b64 s[30:31]3244  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,3245                                                                                      i32 4, ; cbsz3246                                                                                      i32 4, ; blgp3247                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)3248  ret <16 x float> %result3249}3250 3251define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4__constant_scale_0_0(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) {3252; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4__constant_scale_0_0:3253; GCN:       ; %bb.0:3254; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3255; GCN-NEXT:    v_accvgpr_write_b32 a0, v83256; GCN-NEXT:    v_accvgpr_write_b32 a1, v93257; GCN-NEXT:    v_accvgpr_write_b32 a2, v103258; GCN-NEXT:    v_accvgpr_write_b32 a3, v113259; GCN-NEXT:    v_accvgpr_write_b32 a4, v123260; GCN-NEXT:    v_accvgpr_write_b32 a5, v133261; GCN-NEXT:    v_accvgpr_write_b32 a6, v143262; GCN-NEXT:    v_accvgpr_write_b32 a7, v153263; GCN-NEXT:    v_accvgpr_write_b32 a8, v163264; GCN-NEXT:    v_accvgpr_write_b32 a9, v173265; GCN-NEXT:    v_accvgpr_write_b32 a10, v183266; GCN-NEXT:    v_accvgpr_write_b32 a11, v193267; GCN-NEXT:    v_accvgpr_write_b32 a12, v203268; GCN-NEXT:    v_accvgpr_write_b32 a13, v213269; GCN-NEXT:    v_accvgpr_write_b32 a14, v223270; GCN-NEXT:    v_accvgpr_write_b32 a15, v233271; GCN-NEXT:    s_nop 13272; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:4 blgp:43273; GCN-NEXT:    s_nop 113274; GCN-NEXT:    v_accvgpr_read_b32 v0, a03275; GCN-NEXT:    v_accvgpr_read_b32 v1, a13276; GCN-NEXT:    v_accvgpr_read_b32 v2, a23277; GCN-NEXT:    v_accvgpr_read_b32 v3, a33278; GCN-NEXT:    v_accvgpr_read_b32 v4, a43279; GCN-NEXT:    v_accvgpr_read_b32 v5, a53280; GCN-NEXT:    v_accvgpr_read_b32 v6, a63281; GCN-NEXT:    v_accvgpr_read_b32 v7, a73282; GCN-NEXT:    v_accvgpr_read_b32 v8, a83283; GCN-NEXT:    v_accvgpr_read_b32 v9, a93284; GCN-NEXT:    v_accvgpr_read_b32 v10, a103285; GCN-NEXT:    v_accvgpr_read_b32 v11, a113286; GCN-NEXT:    v_accvgpr_read_b32 v12, a123287; GCN-NEXT:    v_accvgpr_read_b32 v13, a133288; GCN-NEXT:    v_accvgpr_read_b32 v14, a143289; GCN-NEXT:    v_accvgpr_read_b32 v15, a153290; GCN-NEXT:    s_setpc_b64 s[30:31]3291  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2,3292                                                                                      i32 4, ; cbsz3293                                                                                      i32 4, ; blgp3294                                                                                      i32 0, i32 0, i32 0, i32 0)3295  ret <16 x float> %result3296}3297 3298; --------------------------------------------------------------------3299; Different input parameter classes3300; --------------------------------------------------------------------3301 3302define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__sgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 inreg %scale0, i32 inreg %scale1) {3303; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__sgpr_scaleB:3304; GCN:       ; %bb.0:3305; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3306; GCN-NEXT:    scratch_load_dword a15, off, s323307; GCN-NEXT:    v_accvgpr_write_b32 a0, v163308; GCN-NEXT:    v_accvgpr_write_b32 a1, v173309; GCN-NEXT:    v_accvgpr_write_b32 a2, v183310; GCN-NEXT:    v_accvgpr_write_b32 a3, v193311; GCN-NEXT:    v_accvgpr_write_b32 a4, v203312; GCN-NEXT:    v_accvgpr_write_b32 a5, v213313; GCN-NEXT:    v_accvgpr_write_b32 a6, v223314; GCN-NEXT:    v_accvgpr_write_b32 a7, v233315; GCN-NEXT:    v_accvgpr_write_b32 a8, v243316; GCN-NEXT:    v_accvgpr_write_b32 a9, v253317; GCN-NEXT:    v_accvgpr_write_b32 a10, v263318; GCN-NEXT:    v_accvgpr_write_b32 a11, v273319; GCN-NEXT:    v_accvgpr_write_b32 a12, v283320; GCN-NEXT:    v_accvgpr_write_b32 a13, v293321; GCN-NEXT:    v_accvgpr_write_b32 a14, v303322; GCN-NEXT:    v_mov_b32_e32 v16, s03323; GCN-NEXT:    v_mov_b32_e32 v17, s13324; GCN-NEXT:    s_waitcnt vmcnt(0)3325; GCN-NEXT:    s_nop 03326; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v16, v17 op_sel_hi:[0,0,0]3327; GCN-NEXT:    s_nop 153328; GCN-NEXT:    s_nop 33329; GCN-NEXT:    v_accvgpr_read_b32 v0, a03330; GCN-NEXT:    v_accvgpr_read_b32 v1, a13331; GCN-NEXT:    v_accvgpr_read_b32 v2, a23332; GCN-NEXT:    v_accvgpr_read_b32 v3, a33333; GCN-NEXT:    v_accvgpr_read_b32 v4, a43334; GCN-NEXT:    v_accvgpr_read_b32 v5, a53335; GCN-NEXT:    v_accvgpr_read_b32 v6, a63336; GCN-NEXT:    v_accvgpr_read_b32 v7, a73337; GCN-NEXT:    v_accvgpr_read_b32 v8, a83338; GCN-NEXT:    v_accvgpr_read_b32 v9, a93339; GCN-NEXT:    v_accvgpr_read_b32 v10, a103340; GCN-NEXT:    v_accvgpr_read_b32 v11, a113341; GCN-NEXT:    v_accvgpr_read_b32 v12, a123342; GCN-NEXT:    v_accvgpr_read_b32 v13, a133343; GCN-NEXT:    v_accvgpr_read_b32 v14, a143344; GCN-NEXT:    v_accvgpr_read_b32 v15, a153345; GCN-NEXT:    s_setpc_b64 s[30:31]3346  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3347  ret <16 x float> %result3348}3349 3350define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__vgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 inreg %scale0, i32 %scale1) {3351; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__vgpr_scaleB:3352; GCN:       ; %bb.0:3353; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3354; GCN-NEXT:    scratch_load_dword a15, off, s323355; GCN-NEXT:    scratch_load_dword v31, off, s32 offset:43356; GCN-NEXT:    v_accvgpr_write_b32 a0, v163357; GCN-NEXT:    v_accvgpr_write_b32 a1, v173358; GCN-NEXT:    v_accvgpr_write_b32 a2, v183359; GCN-NEXT:    v_accvgpr_write_b32 a3, v193360; GCN-NEXT:    v_accvgpr_write_b32 a4, v203361; GCN-NEXT:    v_accvgpr_write_b32 a5, v213362; GCN-NEXT:    v_accvgpr_write_b32 a6, v223363; GCN-NEXT:    v_accvgpr_write_b32 a7, v233364; GCN-NEXT:    v_accvgpr_write_b32 a8, v243365; GCN-NEXT:    v_accvgpr_write_b32 a9, v253366; GCN-NEXT:    v_accvgpr_write_b32 a10, v263367; GCN-NEXT:    v_accvgpr_write_b32 a11, v273368; GCN-NEXT:    v_accvgpr_write_b32 a12, v283369; GCN-NEXT:    v_accvgpr_write_b32 a13, v293370; GCN-NEXT:    v_accvgpr_write_b32 a14, v303371; GCN-NEXT:    v_mov_b32_e32 v16, s03372; GCN-NEXT:    s_waitcnt vmcnt(0)3373; GCN-NEXT:    s_nop 03374; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v16, v31 op_sel_hi:[0,0,0]3375; GCN-NEXT:    s_nop 153376; GCN-NEXT:    s_nop 33377; GCN-NEXT:    v_accvgpr_read_b32 v0, a03378; GCN-NEXT:    v_accvgpr_read_b32 v1, a13379; GCN-NEXT:    v_accvgpr_read_b32 v2, a23380; GCN-NEXT:    v_accvgpr_read_b32 v3, a33381; GCN-NEXT:    v_accvgpr_read_b32 v4, a43382; GCN-NEXT:    v_accvgpr_read_b32 v5, a53383; GCN-NEXT:    v_accvgpr_read_b32 v6, a63384; GCN-NEXT:    v_accvgpr_read_b32 v7, a73385; GCN-NEXT:    v_accvgpr_read_b32 v8, a83386; GCN-NEXT:    v_accvgpr_read_b32 v9, a93387; GCN-NEXT:    v_accvgpr_read_b32 v10, a103388; GCN-NEXT:    v_accvgpr_read_b32 v11, a113389; GCN-NEXT:    v_accvgpr_read_b32 v12, a123390; GCN-NEXT:    v_accvgpr_read_b32 v13, a133391; GCN-NEXT:    v_accvgpr_read_b32 v14, a143392; GCN-NEXT:    v_accvgpr_read_b32 v15, a153393; GCN-NEXT:    s_setpc_b64 s[30:31]3394  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3395  ret <16 x float> %result3396}3397 3398define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgpr_scaleA__sgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 inreg %scale1) {3399; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgpr_scaleA__sgpr_scaleB:3400; GCN:       ; %bb.0:3401; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3402; GCN-NEXT:    scratch_load_dword a15, off, s323403; GCN-NEXT:    scratch_load_dword v31, off, s32 offset:43404; GCN-NEXT:    v_accvgpr_write_b32 a0, v163405; GCN-NEXT:    v_accvgpr_write_b32 a1, v173406; GCN-NEXT:    v_accvgpr_write_b32 a2, v183407; GCN-NEXT:    v_accvgpr_write_b32 a3, v193408; GCN-NEXT:    v_accvgpr_write_b32 a4, v203409; GCN-NEXT:    v_accvgpr_write_b32 a5, v213410; GCN-NEXT:    v_accvgpr_write_b32 a6, v223411; GCN-NEXT:    v_accvgpr_write_b32 a7, v233412; GCN-NEXT:    v_accvgpr_write_b32 a8, v243413; GCN-NEXT:    v_accvgpr_write_b32 a9, v253414; GCN-NEXT:    v_accvgpr_write_b32 a10, v263415; GCN-NEXT:    v_accvgpr_write_b32 a11, v273416; GCN-NEXT:    v_accvgpr_write_b32 a12, v283417; GCN-NEXT:    v_accvgpr_write_b32 a13, v293418; GCN-NEXT:    v_accvgpr_write_b32 a14, v303419; GCN-NEXT:    v_mov_b32_e32 v16, s03420; GCN-NEXT:    s_waitcnt vmcnt(0)3421; GCN-NEXT:    s_nop 03422; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v16 op_sel_hi:[0,0,0]3423; GCN-NEXT:    s_nop 153424; GCN-NEXT:    s_nop 33425; GCN-NEXT:    v_accvgpr_read_b32 v0, a03426; GCN-NEXT:    v_accvgpr_read_b32 v1, a13427; GCN-NEXT:    v_accvgpr_read_b32 v2, a23428; GCN-NEXT:    v_accvgpr_read_b32 v3, a33429; GCN-NEXT:    v_accvgpr_read_b32 v4, a43430; GCN-NEXT:    v_accvgpr_read_b32 v5, a53431; GCN-NEXT:    v_accvgpr_read_b32 v6, a63432; GCN-NEXT:    v_accvgpr_read_b32 v7, a73433; GCN-NEXT:    v_accvgpr_read_b32 v8, a83434; GCN-NEXT:    v_accvgpr_read_b32 v9, a93435; GCN-NEXT:    v_accvgpr_read_b32 v10, a103436; GCN-NEXT:    v_accvgpr_read_b32 v11, a113437; GCN-NEXT:    v_accvgpr_read_b32 v12, a123438; GCN-NEXT:    v_accvgpr_read_b32 v13, a133439; GCN-NEXT:    v_accvgpr_read_b32 v14, a143440; GCN-NEXT:    v_accvgpr_read_b32 v15, a153441; GCN-NEXT:    s_setpc_b64 s[30:31]3442  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3443  ret <16 x float> %result3444}3445 3446define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgprs(<8 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x float> inreg %arg2, i32 %scale0, i32 %scale1) {3447; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgprs:3448; SDAG:       ; %bb.0:3449; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3450; SDAG-NEXT:    v_mov_b32_e32 v26, s03451; SDAG-NEXT:    v_mov_b32_e32 v27, s13452; SDAG-NEXT:    v_mov_b32_e32 v28, s23453; SDAG-NEXT:    v_mov_b32_e32 v29, s33454; SDAG-NEXT:    v_mov_b32_e32 v30, s163455; SDAG-NEXT:    v_mov_b32_e32 v31, s173456; SDAG-NEXT:    v_mov_b32_e32 v32, s183457; SDAG-NEXT:    v_mov_b32_e32 v33, s193458; SDAG-NEXT:    v_mov_b32_e32 v16, s283459; SDAG-NEXT:    v_mov_b32_e32 v17, s293460; SDAG-NEXT:    v_mov_b32_e32 v18, s203461; SDAG-NEXT:    v_mov_b32_e32 v19, s213462; SDAG-NEXT:    v_mov_b32_e32 v20, s223463; SDAG-NEXT:    v_mov_b32_e32 v21, s233464; SDAG-NEXT:    v_mov_b32_e32 v22, s243465; SDAG-NEXT:    v_mov_b32_e32 v23, s253466; SDAG-NEXT:    v_mov_b32_e32 v24, s263467; SDAG-NEXT:    v_mov_b32_e32 v25, s273468; SDAG-NEXT:    v_accvgpr_write_b32 a0, v163469; SDAG-NEXT:    v_accvgpr_write_b32 a1, v173470; SDAG-NEXT:    v_accvgpr_write_b32 a2, v03471; SDAG-NEXT:    v_accvgpr_write_b32 a3, v13472; SDAG-NEXT:    v_accvgpr_write_b32 a4, v23473; SDAG-NEXT:    v_accvgpr_write_b32 a5, v33474; SDAG-NEXT:    v_accvgpr_write_b32 a6, v43475; SDAG-NEXT:    v_accvgpr_write_b32 a7, v53476; SDAG-NEXT:    v_accvgpr_write_b32 a8, v63477; SDAG-NEXT:    v_accvgpr_write_b32 a9, v73478; SDAG-NEXT:    v_accvgpr_write_b32 a10, v83479; SDAG-NEXT:    v_accvgpr_write_b32 a11, v93480; SDAG-NEXT:    v_accvgpr_write_b32 a12, v103481; SDAG-NEXT:    v_accvgpr_write_b32 a13, v113482; SDAG-NEXT:    v_accvgpr_write_b32 a14, v123483; SDAG-NEXT:    v_accvgpr_write_b32 a15, v133484; SDAG-NEXT:    s_nop 13485; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[18:25], a[0:15], v14, v15 op_sel_hi:[0,0,0]3486; SDAG-NEXT:    s_nop 153487; SDAG-NEXT:    s_nop 33488; SDAG-NEXT:    v_accvgpr_read_b32 v0, a03489; SDAG-NEXT:    v_accvgpr_read_b32 v1, a13490; SDAG-NEXT:    v_accvgpr_read_b32 v2, a23491; SDAG-NEXT:    v_accvgpr_read_b32 v3, a33492; SDAG-NEXT:    v_accvgpr_read_b32 v4, a43493; SDAG-NEXT:    v_accvgpr_read_b32 v5, a53494; SDAG-NEXT:    v_accvgpr_read_b32 v6, a63495; SDAG-NEXT:    v_accvgpr_read_b32 v7, a73496; SDAG-NEXT:    v_accvgpr_read_b32 v8, a83497; SDAG-NEXT:    v_accvgpr_read_b32 v9, a93498; SDAG-NEXT:    v_accvgpr_read_b32 v10, a103499; SDAG-NEXT:    v_accvgpr_read_b32 v11, a113500; SDAG-NEXT:    v_accvgpr_read_b32 v12, a123501; SDAG-NEXT:    v_accvgpr_read_b32 v13, a133502; SDAG-NEXT:    v_accvgpr_read_b32 v14, a143503; SDAG-NEXT:    v_accvgpr_read_b32 v15, a153504; SDAG-NEXT:    s_setpc_b64 s[30:31]3505;3506; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgprs:3507; GISEL:       ; %bb.0:3508; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3509; GISEL-NEXT:    s_mov_b32 s12, s03510; GISEL-NEXT:    s_mov_b32 s13, s13511; GISEL-NEXT:    s_mov_b32 s14, s23512; GISEL-NEXT:    s_mov_b32 s15, s33513; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[18:19]3514; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[16:17]3515; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[14:15]3516; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[12:13]3517; GISEL-NEXT:    v_mov_b32_e32 v32, s283518; GISEL-NEXT:    v_mov_b32_e32 v33, s293519; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[26:27]3520; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[24:25]3521; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[22:23]3522; GISEL-NEXT:    v_mov_b64_e32 v[24:25], s[20:21]3523; GISEL-NEXT:    v_accvgpr_write_b32 a0, v323524; GISEL-NEXT:    v_accvgpr_write_b32 a1, v333525; GISEL-NEXT:    v_accvgpr_write_b32 a2, v03526; GISEL-NEXT:    v_accvgpr_write_b32 a3, v13527; GISEL-NEXT:    v_accvgpr_write_b32 a4, v23528; GISEL-NEXT:    v_accvgpr_write_b32 a5, v33529; GISEL-NEXT:    v_accvgpr_write_b32 a6, v43530; GISEL-NEXT:    v_accvgpr_write_b32 a7, v53531; GISEL-NEXT:    v_accvgpr_write_b32 a8, v63532; GISEL-NEXT:    v_accvgpr_write_b32 a9, v73533; GISEL-NEXT:    v_accvgpr_write_b32 a10, v83534; GISEL-NEXT:    v_accvgpr_write_b32 a11, v93535; GISEL-NEXT:    v_accvgpr_write_b32 a12, v103536; GISEL-NEXT:    v_accvgpr_write_b32 a13, v113537; GISEL-NEXT:    v_accvgpr_write_b32 a14, v123538; GISEL-NEXT:    v_accvgpr_write_b32 a15, v133539; GISEL-NEXT:    s_nop 13540; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[16:23], v[24:31], a[0:15], v14, v15 op_sel_hi:[0,0,0]3541; GISEL-NEXT:    s_nop 153542; GISEL-NEXT:    s_nop 33543; GISEL-NEXT:    v_accvgpr_read_b32 v0, a03544; GISEL-NEXT:    v_accvgpr_read_b32 v1, a13545; GISEL-NEXT:    v_accvgpr_read_b32 v2, a23546; GISEL-NEXT:    v_accvgpr_read_b32 v3, a33547; GISEL-NEXT:    v_accvgpr_read_b32 v4, a43548; GISEL-NEXT:    v_accvgpr_read_b32 v5, a53549; GISEL-NEXT:    v_accvgpr_read_b32 v6, a63550; GISEL-NEXT:    v_accvgpr_read_b32 v7, a73551; GISEL-NEXT:    v_accvgpr_read_b32 v8, a83552; GISEL-NEXT:    v_accvgpr_read_b32 v9, a93553; GISEL-NEXT:    v_accvgpr_read_b32 v10, a103554; GISEL-NEXT:    v_accvgpr_read_b32 v11, a113555; GISEL-NEXT:    v_accvgpr_read_b32 v12, a123556; GISEL-NEXT:    v_accvgpr_read_b32 v13, a133557; GISEL-NEXT:    v_accvgpr_read_b32 v14, a143558; GISEL-NEXT:    v_accvgpr_read_b32 v15, a153559; GISEL-NEXT:    s_setpc_b64 s[30:31]3560  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3561  ret <16 x float> %result3562}3563 3564define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 inreg %scale0, i32 %scale1) {3565; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr:3566; SDAG:       ; %bb.0:3567; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3568; SDAG-NEXT:    v_mov_b32_e32 v26, s03569; SDAG-NEXT:    v_mov_b32_e32 v27, s13570; SDAG-NEXT:    v_mov_b32_e32 v28, s23571; SDAG-NEXT:    v_mov_b32_e32 v29, s33572; SDAG-NEXT:    v_mov_b32_e32 v30, s163573; SDAG-NEXT:    v_mov_b32_e32 v31, s173574; SDAG-NEXT:    v_mov_b32_e32 v32, s183575; SDAG-NEXT:    v_mov_b32_e32 v33, s193576; SDAG-NEXT:    v_accvgpr_write_b32 a0, v83577; SDAG-NEXT:    v_accvgpr_write_b32 a1, v93578; SDAG-NEXT:    v_accvgpr_write_b32 a2, v103579; SDAG-NEXT:    v_accvgpr_write_b32 a3, v113580; SDAG-NEXT:    v_accvgpr_write_b32 a4, v123581; SDAG-NEXT:    v_accvgpr_write_b32 a5, v133582; SDAG-NEXT:    v_accvgpr_write_b32 a6, v143583; SDAG-NEXT:    v_accvgpr_write_b32 a7, v153584; SDAG-NEXT:    v_accvgpr_write_b32 a8, v163585; SDAG-NEXT:    v_accvgpr_write_b32 a9, v173586; SDAG-NEXT:    v_accvgpr_write_b32 a10, v183587; SDAG-NEXT:    v_accvgpr_write_b32 a11, v193588; SDAG-NEXT:    v_accvgpr_write_b32 a12, v203589; SDAG-NEXT:    v_accvgpr_write_b32 a13, v213590; SDAG-NEXT:    v_accvgpr_write_b32 a14, v223591; SDAG-NEXT:    v_accvgpr_write_b32 a15, v233592; SDAG-NEXT:    v_mov_b32_e32 v8, s203593; SDAG-NEXT:    s_nop 13594; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v8, v24 op_sel_hi:[0,0,0]3595; SDAG-NEXT:    s_nop 153596; SDAG-NEXT:    s_nop 33597; SDAG-NEXT:    v_accvgpr_read_b32 v0, a03598; SDAG-NEXT:    v_accvgpr_read_b32 v1, a13599; SDAG-NEXT:    v_accvgpr_read_b32 v2, a23600; SDAG-NEXT:    v_accvgpr_read_b32 v3, a33601; SDAG-NEXT:    v_accvgpr_read_b32 v4, a43602; SDAG-NEXT:    v_accvgpr_read_b32 v5, a53603; SDAG-NEXT:    v_accvgpr_read_b32 v6, a63604; SDAG-NEXT:    v_accvgpr_read_b32 v7, a73605; SDAG-NEXT:    v_accvgpr_read_b32 v8, a83606; SDAG-NEXT:    v_accvgpr_read_b32 v9, a93607; SDAG-NEXT:    v_accvgpr_read_b32 v10, a103608; SDAG-NEXT:    v_accvgpr_read_b32 v11, a113609; SDAG-NEXT:    v_accvgpr_read_b32 v12, a123610; SDAG-NEXT:    v_accvgpr_read_b32 v13, a133611; SDAG-NEXT:    v_accvgpr_read_b32 v14, a143612; SDAG-NEXT:    v_accvgpr_read_b32 v15, a153613; SDAG-NEXT:    s_setpc_b64 s[30:31]3614;3615; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr:3616; GISEL:       ; %bb.0:3617; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3618; GISEL-NEXT:    s_mov_b32 s12, s03619; GISEL-NEXT:    s_mov_b32 s13, s13620; GISEL-NEXT:    s_mov_b32 s14, s23621; GISEL-NEXT:    s_mov_b32 s15, s33622; GISEL-NEXT:    v_mov_b64_e32 v[32:33], s[18:19]3623; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[16:17]3624; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[14:15]3625; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[12:13]3626; GISEL-NEXT:    v_accvgpr_write_b32 a0, v83627; GISEL-NEXT:    v_accvgpr_write_b32 a1, v93628; GISEL-NEXT:    v_accvgpr_write_b32 a2, v103629; GISEL-NEXT:    v_accvgpr_write_b32 a3, v113630; GISEL-NEXT:    v_accvgpr_write_b32 a4, v123631; GISEL-NEXT:    v_accvgpr_write_b32 a5, v133632; GISEL-NEXT:    v_accvgpr_write_b32 a6, v143633; GISEL-NEXT:    v_accvgpr_write_b32 a7, v153634; GISEL-NEXT:    v_accvgpr_write_b32 a8, v163635; GISEL-NEXT:    v_accvgpr_write_b32 a9, v173636; GISEL-NEXT:    v_accvgpr_write_b32 a10, v183637; GISEL-NEXT:    v_accvgpr_write_b32 a11, v193638; GISEL-NEXT:    v_accvgpr_write_b32 a12, v203639; GISEL-NEXT:    v_accvgpr_write_b32 a13, v213640; GISEL-NEXT:    v_accvgpr_write_b32 a14, v223641; GISEL-NEXT:    v_accvgpr_write_b32 a15, v233642; GISEL-NEXT:    v_mov_b32_e32 v8, s203643; GISEL-NEXT:    s_nop 13644; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v8, v24 op_sel_hi:[0,0,0]3645; GISEL-NEXT:    s_nop 153646; GISEL-NEXT:    s_nop 33647; GISEL-NEXT:    v_accvgpr_read_b32 v0, a03648; GISEL-NEXT:    v_accvgpr_read_b32 v1, a13649; GISEL-NEXT:    v_accvgpr_read_b32 v2, a23650; GISEL-NEXT:    v_accvgpr_read_b32 v3, a33651; GISEL-NEXT:    v_accvgpr_read_b32 v4, a43652; GISEL-NEXT:    v_accvgpr_read_b32 v5, a53653; GISEL-NEXT:    v_accvgpr_read_b32 v6, a63654; GISEL-NEXT:    v_accvgpr_read_b32 v7, a73655; GISEL-NEXT:    v_accvgpr_read_b32 v8, a83656; GISEL-NEXT:    v_accvgpr_read_b32 v9, a93657; GISEL-NEXT:    v_accvgpr_read_b32 v10, a103658; GISEL-NEXT:    v_accvgpr_read_b32 v11, a113659; GISEL-NEXT:    v_accvgpr_read_b32 v12, a123660; GISEL-NEXT:    v_accvgpr_read_b32 v13, a133661; GISEL-NEXT:    v_accvgpr_read_b32 v14, a143662; GISEL-NEXT:    v_accvgpr_read_b32 v15, a153663; GISEL-NEXT:    s_setpc_b64 s[30:31]3664  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3665  ret <16 x float> %result3666}3667 3668define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 inreg %scale1) {3669; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr:3670; SDAG:       ; %bb.0:3671; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3672; SDAG-NEXT:    v_mov_b32_e32 v26, s03673; SDAG-NEXT:    v_mov_b32_e32 v27, s13674; SDAG-NEXT:    v_mov_b32_e32 v28, s23675; SDAG-NEXT:    v_mov_b32_e32 v29, s33676; SDAG-NEXT:    v_mov_b32_e32 v30, s163677; SDAG-NEXT:    v_mov_b32_e32 v31, s173678; SDAG-NEXT:    v_mov_b32_e32 v32, s183679; SDAG-NEXT:    v_mov_b32_e32 v33, s193680; SDAG-NEXT:    v_accvgpr_write_b32 a0, v83681; SDAG-NEXT:    v_accvgpr_write_b32 a1, v93682; SDAG-NEXT:    v_accvgpr_write_b32 a2, v103683; SDAG-NEXT:    v_accvgpr_write_b32 a3, v113684; SDAG-NEXT:    v_accvgpr_write_b32 a4, v123685; SDAG-NEXT:    v_accvgpr_write_b32 a5, v133686; SDAG-NEXT:    v_accvgpr_write_b32 a6, v143687; SDAG-NEXT:    v_accvgpr_write_b32 a7, v153688; SDAG-NEXT:    v_accvgpr_write_b32 a8, v163689; SDAG-NEXT:    v_accvgpr_write_b32 a9, v173690; SDAG-NEXT:    v_accvgpr_write_b32 a10, v183691; SDAG-NEXT:    v_accvgpr_write_b32 a11, v193692; SDAG-NEXT:    v_accvgpr_write_b32 a12, v203693; SDAG-NEXT:    v_accvgpr_write_b32 a13, v213694; SDAG-NEXT:    v_accvgpr_write_b32 a14, v223695; SDAG-NEXT:    v_accvgpr_write_b32 a15, v233696; SDAG-NEXT:    v_mov_b32_e32 v8, s203697; SDAG-NEXT:    s_nop 13698; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v24, v8 op_sel_hi:[0,0,0]3699; SDAG-NEXT:    s_nop 153700; SDAG-NEXT:    s_nop 33701; SDAG-NEXT:    v_accvgpr_read_b32 v0, a03702; SDAG-NEXT:    v_accvgpr_read_b32 v1, a13703; SDAG-NEXT:    v_accvgpr_read_b32 v2, a23704; SDAG-NEXT:    v_accvgpr_read_b32 v3, a33705; SDAG-NEXT:    v_accvgpr_read_b32 v4, a43706; SDAG-NEXT:    v_accvgpr_read_b32 v5, a53707; SDAG-NEXT:    v_accvgpr_read_b32 v6, a63708; SDAG-NEXT:    v_accvgpr_read_b32 v7, a73709; SDAG-NEXT:    v_accvgpr_read_b32 v8, a83710; SDAG-NEXT:    v_accvgpr_read_b32 v9, a93711; SDAG-NEXT:    v_accvgpr_read_b32 v10, a103712; SDAG-NEXT:    v_accvgpr_read_b32 v11, a113713; SDAG-NEXT:    v_accvgpr_read_b32 v12, a123714; SDAG-NEXT:    v_accvgpr_read_b32 v13, a133715; SDAG-NEXT:    v_accvgpr_read_b32 v14, a143716; SDAG-NEXT:    v_accvgpr_read_b32 v15, a153717; SDAG-NEXT:    s_setpc_b64 s[30:31]3718;3719; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr:3720; GISEL:       ; %bb.0:3721; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3722; GISEL-NEXT:    s_mov_b32 s12, s03723; GISEL-NEXT:    s_mov_b32 s13, s13724; GISEL-NEXT:    s_mov_b32 s14, s23725; GISEL-NEXT:    s_mov_b32 s15, s33726; GISEL-NEXT:    v_mov_b64_e32 v[32:33], s[18:19]3727; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[16:17]3728; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[14:15]3729; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[12:13]3730; GISEL-NEXT:    v_accvgpr_write_b32 a0, v83731; GISEL-NEXT:    v_accvgpr_write_b32 a1, v93732; GISEL-NEXT:    v_accvgpr_write_b32 a2, v103733; GISEL-NEXT:    v_accvgpr_write_b32 a3, v113734; GISEL-NEXT:    v_accvgpr_write_b32 a4, v123735; GISEL-NEXT:    v_accvgpr_write_b32 a5, v133736; GISEL-NEXT:    v_accvgpr_write_b32 a6, v143737; GISEL-NEXT:    v_accvgpr_write_b32 a7, v153738; GISEL-NEXT:    v_accvgpr_write_b32 a8, v163739; GISEL-NEXT:    v_accvgpr_write_b32 a9, v173740; GISEL-NEXT:    v_accvgpr_write_b32 a10, v183741; GISEL-NEXT:    v_accvgpr_write_b32 a11, v193742; GISEL-NEXT:    v_accvgpr_write_b32 a12, v203743; GISEL-NEXT:    v_accvgpr_write_b32 a13, v213744; GISEL-NEXT:    v_accvgpr_write_b32 a14, v223745; GISEL-NEXT:    v_accvgpr_write_b32 a15, v233746; GISEL-NEXT:    v_mov_b32_e32 v8, s203747; GISEL-NEXT:    s_nop 13748; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v24, v8 op_sel_hi:[0,0,0]3749; GISEL-NEXT:    s_nop 153750; GISEL-NEXT:    s_nop 33751; GISEL-NEXT:    v_accvgpr_read_b32 v0, a03752; GISEL-NEXT:    v_accvgpr_read_b32 v1, a13753; GISEL-NEXT:    v_accvgpr_read_b32 v2, a23754; GISEL-NEXT:    v_accvgpr_read_b32 v3, a33755; GISEL-NEXT:    v_accvgpr_read_b32 v4, a43756; GISEL-NEXT:    v_accvgpr_read_b32 v5, a53757; GISEL-NEXT:    v_accvgpr_read_b32 v6, a63758; GISEL-NEXT:    v_accvgpr_read_b32 v7, a73759; GISEL-NEXT:    v_accvgpr_read_b32 v8, a83760; GISEL-NEXT:    v_accvgpr_read_b32 v9, a93761; GISEL-NEXT:    v_accvgpr_read_b32 v10, a103762; GISEL-NEXT:    v_accvgpr_read_b32 v11, a113763; GISEL-NEXT:    v_accvgpr_read_b32 v12, a123764; GISEL-NEXT:    v_accvgpr_read_b32 v13, a133765; GISEL-NEXT:    v_accvgpr_read_b32 v14, a143766; GISEL-NEXT:    v_accvgpr_read_b32 v15, a153767; GISEL-NEXT:    s_setpc_b64 s[30:31]3768  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3769  ret <16 x float> %result3770}3771 3772define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr(<8 x i32> %arg0, <8 x i32> inreg %arg1, <16 x float> %arg2, i32 %scale0, i32 inreg %scale1) {3773; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr:3774; SDAG:       ; %bb.0:3775; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3776; SDAG-NEXT:    v_mov_b32_e32 v26, s03777; SDAG-NEXT:    v_mov_b32_e32 v27, s13778; SDAG-NEXT:    v_mov_b32_e32 v28, s23779; SDAG-NEXT:    v_mov_b32_e32 v29, s33780; SDAG-NEXT:    v_mov_b32_e32 v30, s163781; SDAG-NEXT:    v_mov_b32_e32 v31, s173782; SDAG-NEXT:    v_mov_b32_e32 v32, s183783; SDAG-NEXT:    v_mov_b32_e32 v33, s193784; SDAG-NEXT:    v_accvgpr_write_b32 a0, v83785; SDAG-NEXT:    v_accvgpr_write_b32 a1, v93786; SDAG-NEXT:    v_accvgpr_write_b32 a2, v103787; SDAG-NEXT:    v_accvgpr_write_b32 a3, v113788; SDAG-NEXT:    v_accvgpr_write_b32 a4, v123789; SDAG-NEXT:    v_accvgpr_write_b32 a5, v133790; SDAG-NEXT:    v_accvgpr_write_b32 a6, v143791; SDAG-NEXT:    v_accvgpr_write_b32 a7, v153792; SDAG-NEXT:    v_accvgpr_write_b32 a8, v163793; SDAG-NEXT:    v_accvgpr_write_b32 a9, v173794; SDAG-NEXT:    v_accvgpr_write_b32 a10, v183795; SDAG-NEXT:    v_accvgpr_write_b32 a11, v193796; SDAG-NEXT:    v_accvgpr_write_b32 a12, v203797; SDAG-NEXT:    v_accvgpr_write_b32 a13, v213798; SDAG-NEXT:    v_accvgpr_write_b32 a14, v223799; SDAG-NEXT:    v_accvgpr_write_b32 a15, v233800; SDAG-NEXT:    v_mov_b32_e32 v8, s203801; SDAG-NEXT:    s_nop 13802; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[26:33], a[0:15], v24, v8 op_sel_hi:[0,0,0]3803; SDAG-NEXT:    s_nop 153804; SDAG-NEXT:    s_nop 33805; SDAG-NEXT:    v_accvgpr_read_b32 v0, a03806; SDAG-NEXT:    v_accvgpr_read_b32 v1, a13807; SDAG-NEXT:    v_accvgpr_read_b32 v2, a23808; SDAG-NEXT:    v_accvgpr_read_b32 v3, a33809; SDAG-NEXT:    v_accvgpr_read_b32 v4, a43810; SDAG-NEXT:    v_accvgpr_read_b32 v5, a53811; SDAG-NEXT:    v_accvgpr_read_b32 v6, a63812; SDAG-NEXT:    v_accvgpr_read_b32 v7, a73813; SDAG-NEXT:    v_accvgpr_read_b32 v8, a83814; SDAG-NEXT:    v_accvgpr_read_b32 v9, a93815; SDAG-NEXT:    v_accvgpr_read_b32 v10, a103816; SDAG-NEXT:    v_accvgpr_read_b32 v11, a113817; SDAG-NEXT:    v_accvgpr_read_b32 v12, a123818; SDAG-NEXT:    v_accvgpr_read_b32 v13, a133819; SDAG-NEXT:    v_accvgpr_read_b32 v14, a143820; SDAG-NEXT:    v_accvgpr_read_b32 v15, a153821; SDAG-NEXT:    s_setpc_b64 s[30:31]3822;3823; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr:3824; GISEL:       ; %bb.0:3825; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3826; GISEL-NEXT:    s_mov_b32 s12, s03827; GISEL-NEXT:    s_mov_b32 s13, s13828; GISEL-NEXT:    s_mov_b32 s14, s23829; GISEL-NEXT:    s_mov_b32 s15, s33830; GISEL-NEXT:    v_mov_b64_e32 v[32:33], s[18:19]3831; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[16:17]3832; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[14:15]3833; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[12:13]3834; GISEL-NEXT:    v_accvgpr_write_b32 a0, v83835; GISEL-NEXT:    v_accvgpr_write_b32 a1, v93836; GISEL-NEXT:    v_accvgpr_write_b32 a2, v103837; GISEL-NEXT:    v_accvgpr_write_b32 a3, v113838; GISEL-NEXT:    v_accvgpr_write_b32 a4, v123839; GISEL-NEXT:    v_accvgpr_write_b32 a5, v133840; GISEL-NEXT:    v_accvgpr_write_b32 a6, v143841; GISEL-NEXT:    v_accvgpr_write_b32 a7, v153842; GISEL-NEXT:    v_accvgpr_write_b32 a8, v163843; GISEL-NEXT:    v_accvgpr_write_b32 a9, v173844; GISEL-NEXT:    v_accvgpr_write_b32 a10, v183845; GISEL-NEXT:    v_accvgpr_write_b32 a11, v193846; GISEL-NEXT:    v_accvgpr_write_b32 a12, v203847; GISEL-NEXT:    v_accvgpr_write_b32 a13, v213848; GISEL-NEXT:    v_accvgpr_write_b32 a14, v223849; GISEL-NEXT:    v_accvgpr_write_b32 a15, v233850; GISEL-NEXT:    v_mov_b32_e32 v8, s203851; GISEL-NEXT:    s_nop 13852; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[26:33], a[0:15], v24, v8 op_sel_hi:[0,0,0]3853; GISEL-NEXT:    s_nop 153854; GISEL-NEXT:    s_nop 33855; GISEL-NEXT:    v_accvgpr_read_b32 v0, a03856; GISEL-NEXT:    v_accvgpr_read_b32 v1, a13857; GISEL-NEXT:    v_accvgpr_read_b32 v2, a23858; GISEL-NEXT:    v_accvgpr_read_b32 v3, a33859; GISEL-NEXT:    v_accvgpr_read_b32 v4, a43860; GISEL-NEXT:    v_accvgpr_read_b32 v5, a53861; GISEL-NEXT:    v_accvgpr_read_b32 v6, a63862; GISEL-NEXT:    v_accvgpr_read_b32 v7, a73863; GISEL-NEXT:    v_accvgpr_read_b32 v8, a83864; GISEL-NEXT:    v_accvgpr_read_b32 v9, a93865; GISEL-NEXT:    v_accvgpr_read_b32 v10, a103866; GISEL-NEXT:    v_accvgpr_read_b32 v11, a113867; GISEL-NEXT:    v_accvgpr_read_b32 v12, a123868; GISEL-NEXT:    v_accvgpr_read_b32 v13, a133869; GISEL-NEXT:    v_accvgpr_read_b32 v14, a143870; GISEL-NEXT:    v_accvgpr_read_b32 v15, a153871; GISEL-NEXT:    s_setpc_b64 s[30:31]3872  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3873  ret <16 x float> %result3874}3875 3876define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> inreg %arg2, i32 %scale0, i32 inreg %scale1) {3877; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr:3878; GCN:       ; %bb.0:3879; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3880; GCN-NEXT:    v_accvgpr_write_b32 a0, s03881; GCN-NEXT:    v_accvgpr_write_b32 a1, s13882; GCN-NEXT:    v_accvgpr_write_b32 a2, s23883; GCN-NEXT:    v_accvgpr_write_b32 a3, s33884; GCN-NEXT:    v_accvgpr_write_b32 a4, s163885; GCN-NEXT:    v_accvgpr_write_b32 a5, s173886; GCN-NEXT:    v_accvgpr_write_b32 a6, s183887; GCN-NEXT:    v_accvgpr_write_b32 a7, s193888; GCN-NEXT:    v_accvgpr_write_b32 a8, s203889; GCN-NEXT:    v_accvgpr_write_b32 a9, s213890; GCN-NEXT:    v_accvgpr_write_b32 a10, s223891; GCN-NEXT:    v_accvgpr_write_b32 a11, s233892; GCN-NEXT:    v_accvgpr_write_b32 a12, s243893; GCN-NEXT:    v_accvgpr_write_b32 a13, s253894; GCN-NEXT:    v_accvgpr_write_b32 a14, s263895; GCN-NEXT:    v_accvgpr_write_b32 a15, s273896; GCN-NEXT:    v_mov_b32_e32 v17, s283897; GCN-NEXT:    s_nop 13898; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v16, v17 op_sel_hi:[0,0,0]3899; GCN-NEXT:    s_nop 153900; GCN-NEXT:    s_nop 33901; GCN-NEXT:    v_accvgpr_read_b32 v0, a03902; GCN-NEXT:    v_accvgpr_read_b32 v1, a13903; GCN-NEXT:    v_accvgpr_read_b32 v2, a23904; GCN-NEXT:    v_accvgpr_read_b32 v3, a33905; GCN-NEXT:    v_accvgpr_read_b32 v4, a43906; GCN-NEXT:    v_accvgpr_read_b32 v5, a53907; GCN-NEXT:    v_accvgpr_read_b32 v6, a63908; GCN-NEXT:    v_accvgpr_read_b32 v7, a73909; GCN-NEXT:    v_accvgpr_read_b32 v8, a83910; GCN-NEXT:    v_accvgpr_read_b32 v9, a93911; GCN-NEXT:    v_accvgpr_read_b32 v10, a103912; GCN-NEXT:    v_accvgpr_read_b32 v11, a113913; GCN-NEXT:    v_accvgpr_read_b32 v12, a123914; GCN-NEXT:    v_accvgpr_read_b32 v13, a133915; GCN-NEXT:    v_accvgpr_read_b32 v14, a143916; GCN-NEXT:    v_accvgpr_read_b32 v15, a153917; GCN-NEXT:    s_setpc_b64 s[30:31]3918  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)3919  ret <16 x float> %result3920}3921 3922define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <16 x float> inreg %arg2, i32 %scale0, i32 inreg %scale1) {3923; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr:3924; SDAG:       ; %bb.0:3925; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3926; SDAG-NEXT:    v_mov_b32_e32 v26, s03927; SDAG-NEXT:    v_mov_b32_e32 v27, s13928; SDAG-NEXT:    v_mov_b32_e32 v28, s23929; SDAG-NEXT:    v_mov_b32_e32 v29, s33930; SDAG-NEXT:    v_mov_b32_e32 v30, s163931; SDAG-NEXT:    v_mov_b32_e32 v31, s173932; SDAG-NEXT:    v_mov_b32_e32 v32, s183933; SDAG-NEXT:    v_mov_b32_e32 v33, s193934; SDAG-NEXT:    v_mov_b32_e32 v16, s203935; SDAG-NEXT:    v_mov_b32_e32 v17, s213936; SDAG-NEXT:    v_mov_b32_e32 v18, s223937; SDAG-NEXT:    v_mov_b32_e32 v19, s233938; SDAG-NEXT:    v_mov_b32_e32 v20, s243939; SDAG-NEXT:    v_mov_b32_e32 v21, s253940; SDAG-NEXT:    v_mov_b32_e32 v22, s263941; SDAG-NEXT:    v_mov_b32_e32 v23, s273942; SDAG-NEXT:    v_mov_b32_e32 v24, s283943; SDAG-NEXT:    v_mov_b32_e32 v25, s293944; SDAG-NEXT:    v_accvgpr_write_b32 a0, v163945; SDAG-NEXT:    v_accvgpr_write_b32 a1, v173946; SDAG-NEXT:    v_accvgpr_write_b32 a2, v183947; SDAG-NEXT:    v_accvgpr_write_b32 a3, v193948; SDAG-NEXT:    v_accvgpr_write_b32 a4, v203949; SDAG-NEXT:    v_accvgpr_write_b32 a5, v213950; SDAG-NEXT:    v_accvgpr_write_b32 a6, v223951; SDAG-NEXT:    v_accvgpr_write_b32 a7, v233952; SDAG-NEXT:    v_accvgpr_write_b32 a8, v243953; SDAG-NEXT:    v_accvgpr_write_b32 a9, v253954; SDAG-NEXT:    v_accvgpr_write_b32 a10, v83955; SDAG-NEXT:    v_accvgpr_write_b32 a11, v93956; SDAG-NEXT:    v_accvgpr_write_b32 a12, v103957; SDAG-NEXT:    v_accvgpr_write_b32 a13, v113958; SDAG-NEXT:    v_accvgpr_write_b32 a14, v123959; SDAG-NEXT:    v_accvgpr_write_b32 a15, v133960; SDAG-NEXT:    s_nop 13961; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v14, v15 op_sel_hi:[0,0,0]3962; SDAG-NEXT:    s_nop 153963; SDAG-NEXT:    s_nop 33964; SDAG-NEXT:    v_accvgpr_read_b32 v0, a03965; SDAG-NEXT:    v_accvgpr_read_b32 v1, a13966; SDAG-NEXT:    v_accvgpr_read_b32 v2, a23967; SDAG-NEXT:    v_accvgpr_read_b32 v3, a33968; SDAG-NEXT:    v_accvgpr_read_b32 v4, a43969; SDAG-NEXT:    v_accvgpr_read_b32 v5, a53970; SDAG-NEXT:    v_accvgpr_read_b32 v6, a63971; SDAG-NEXT:    v_accvgpr_read_b32 v7, a73972; SDAG-NEXT:    v_accvgpr_read_b32 v8, a83973; SDAG-NEXT:    v_accvgpr_read_b32 v9, a93974; SDAG-NEXT:    v_accvgpr_read_b32 v10, a103975; SDAG-NEXT:    v_accvgpr_read_b32 v11, a113976; SDAG-NEXT:    v_accvgpr_read_b32 v12, a123977; SDAG-NEXT:    v_accvgpr_read_b32 v13, a133978; SDAG-NEXT:    v_accvgpr_read_b32 v14, a143979; SDAG-NEXT:    v_accvgpr_read_b32 v15, a153980; SDAG-NEXT:    s_setpc_b64 s[30:31]3981;3982; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr:3983; GISEL:       ; %bb.0:3984; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)3985; GISEL-NEXT:    s_mov_b32 s12, s03986; GISEL-NEXT:    s_mov_b32 s13, s13987; GISEL-NEXT:    s_mov_b32 s14, s23988; GISEL-NEXT:    s_mov_b32 s15, s33989; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[18:19]3990; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[16:17]3991; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[14:15]3992; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[12:13]3993; GISEL-NEXT:    v_mov_b32_e32 v24, s203994; GISEL-NEXT:    v_mov_b32_e32 v25, s213995; GISEL-NEXT:    v_mov_b32_e32 v26, s223996; GISEL-NEXT:    v_mov_b32_e32 v27, s233997; GISEL-NEXT:    v_mov_b32_e32 v28, s243998; GISEL-NEXT:    v_mov_b32_e32 v29, s253999; GISEL-NEXT:    v_mov_b32_e32 v30, s264000; GISEL-NEXT:    v_mov_b32_e32 v31, s274001; GISEL-NEXT:    v_mov_b32_e32 v32, s284002; GISEL-NEXT:    v_mov_b32_e32 v33, s294003; GISEL-NEXT:    v_accvgpr_write_b32 a0, v244004; GISEL-NEXT:    v_accvgpr_write_b32 a1, v254005; GISEL-NEXT:    v_accvgpr_write_b32 a2, v264006; GISEL-NEXT:    v_accvgpr_write_b32 a3, v274007; GISEL-NEXT:    v_accvgpr_write_b32 a4, v284008; GISEL-NEXT:    v_accvgpr_write_b32 a5, v294009; GISEL-NEXT:    v_accvgpr_write_b32 a6, v304010; GISEL-NEXT:    v_accvgpr_write_b32 a7, v314011; GISEL-NEXT:    v_accvgpr_write_b32 a8, v324012; GISEL-NEXT:    v_accvgpr_write_b32 a9, v334013; GISEL-NEXT:    v_accvgpr_write_b32 a10, v84014; GISEL-NEXT:    v_accvgpr_write_b32 a11, v94015; GISEL-NEXT:    v_accvgpr_write_b32 a12, v104016; GISEL-NEXT:    v_accvgpr_write_b32 a13, v114017; GISEL-NEXT:    v_accvgpr_write_b32 a14, v124018; GISEL-NEXT:    v_accvgpr_write_b32 a15, v134019; GISEL-NEXT:    s_nop 14020; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[16:23], v[0:7], a[0:15], v14, v15 op_sel_hi:[0,0,0]4021; GISEL-NEXT:    s_nop 154022; GISEL-NEXT:    s_nop 34023; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04024; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14025; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24026; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34027; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44028; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54029; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64030; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74031; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84032; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94033; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104034; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114035; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124036; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134037; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144038; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154039; GISEL-NEXT:    s_setpc_b64 s[30:31]4040  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)4041  ret <16 x float> %result4042}4043 4044define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {4045; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm:4046; SDAG:       ; %bb.0:4047; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4048; SDAG-NEXT:    scratch_load_dword a15, off, s324049; SDAG-NEXT:    v_mov_b32_e32 v31, -24050; SDAG-NEXT:    v_mov_b32_e32 v32, 334051; SDAG-NEXT:    v_accvgpr_write_b32 a0, v164052; SDAG-NEXT:    v_accvgpr_write_b32 a1, v174053; SDAG-NEXT:    v_accvgpr_write_b32 a2, v184054; SDAG-NEXT:    v_accvgpr_write_b32 a3, v194055; SDAG-NEXT:    v_accvgpr_write_b32 a4, v204056; SDAG-NEXT:    v_accvgpr_write_b32 a5, v214057; SDAG-NEXT:    v_accvgpr_write_b32 a6, v224058; SDAG-NEXT:    v_accvgpr_write_b32 a7, v234059; SDAG-NEXT:    v_accvgpr_write_b32 a8, v244060; SDAG-NEXT:    v_accvgpr_write_b32 a9, v254061; SDAG-NEXT:    v_accvgpr_write_b32 a10, v264062; SDAG-NEXT:    v_accvgpr_write_b32 a11, v274063; SDAG-NEXT:    v_accvgpr_write_b32 a12, v284064; SDAG-NEXT:    v_accvgpr_write_b32 a13, v294065; SDAG-NEXT:    v_accvgpr_write_b32 a14, v304066; SDAG-NEXT:    s_waitcnt vmcnt(0)4067; SDAG-NEXT:    s_nop 04068; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]4069; SDAG-NEXT:    s_nop 154070; SDAG-NEXT:    s_nop 34071; SDAG-NEXT:    v_accvgpr_read_b32 v0, a04072; SDAG-NEXT:    v_accvgpr_read_b32 v1, a14073; SDAG-NEXT:    v_accvgpr_read_b32 v2, a24074; SDAG-NEXT:    v_accvgpr_read_b32 v3, a34075; SDAG-NEXT:    v_accvgpr_read_b32 v4, a44076; SDAG-NEXT:    v_accvgpr_read_b32 v5, a54077; SDAG-NEXT:    v_accvgpr_read_b32 v6, a64078; SDAG-NEXT:    v_accvgpr_read_b32 v7, a74079; SDAG-NEXT:    v_accvgpr_read_b32 v8, a84080; SDAG-NEXT:    v_accvgpr_read_b32 v9, a94081; SDAG-NEXT:    v_accvgpr_read_b32 v10, a104082; SDAG-NEXT:    v_accvgpr_read_b32 v11, a114083; SDAG-NEXT:    v_accvgpr_read_b32 v12, a124084; SDAG-NEXT:    v_accvgpr_read_b32 v13, a134085; SDAG-NEXT:    v_accvgpr_read_b32 v14, a144086; SDAG-NEXT:    v_accvgpr_read_b32 v15, a154087; SDAG-NEXT:    s_setpc_b64 s[30:31]4088;4089; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm:4090; GISEL:       ; %bb.0:4091; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4092; GISEL-NEXT:    scratch_load_dword a15, off, s324093; GISEL-NEXT:    v_mov_b32_e32 v31, 334094; GISEL-NEXT:    v_mov_b32_e32 v32, -24095; GISEL-NEXT:    v_accvgpr_write_b32 a0, v164096; GISEL-NEXT:    v_accvgpr_write_b32 a1, v174097; GISEL-NEXT:    v_accvgpr_write_b32 a2, v184098; GISEL-NEXT:    v_accvgpr_write_b32 a3, v194099; GISEL-NEXT:    v_accvgpr_write_b32 a4, v204100; GISEL-NEXT:    v_accvgpr_write_b32 a5, v214101; GISEL-NEXT:    v_accvgpr_write_b32 a6, v224102; GISEL-NEXT:    v_accvgpr_write_b32 a7, v234103; GISEL-NEXT:    v_accvgpr_write_b32 a8, v244104; GISEL-NEXT:    v_accvgpr_write_b32 a9, v254105; GISEL-NEXT:    v_accvgpr_write_b32 a10, v264106; GISEL-NEXT:    v_accvgpr_write_b32 a11, v274107; GISEL-NEXT:    v_accvgpr_write_b32 a12, v284108; GISEL-NEXT:    v_accvgpr_write_b32 a13, v294109; GISEL-NEXT:    v_accvgpr_write_b32 a14, v304110; GISEL-NEXT:    s_waitcnt vmcnt(0)4111; GISEL-NEXT:    s_nop 04112; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]4113; GISEL-NEXT:    s_nop 154114; GISEL-NEXT:    s_nop 34115; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04116; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14117; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24118; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34119; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44120; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54121; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64122; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74123; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84124; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94125; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104126; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114127; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124128; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134129; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144130; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154131; GISEL-NEXT:    s_setpc_b64 s[30:31]4132  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 33, i32 2, i32 -2)4133  ret <16 x float> %result4134}4135 4136define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {4137; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm:4138; SDAG:       ; %bb.0:4139; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4140; SDAG-NEXT:    scratch_load_dword a15, off, s324141; SDAG-NEXT:    v_mov_b32_e32 v31, -24142; SDAG-NEXT:    v_mov_b32_e32 v32, 0x414143; SDAG-NEXT:    v_accvgpr_write_b32 a0, v164144; SDAG-NEXT:    v_accvgpr_write_b32 a1, v174145; SDAG-NEXT:    v_accvgpr_write_b32 a2, v184146; SDAG-NEXT:    v_accvgpr_write_b32 a3, v194147; SDAG-NEXT:    v_accvgpr_write_b32 a4, v204148; SDAG-NEXT:    v_accvgpr_write_b32 a5, v214149; SDAG-NEXT:    v_accvgpr_write_b32 a6, v224150; SDAG-NEXT:    v_accvgpr_write_b32 a7, v234151; SDAG-NEXT:    v_accvgpr_write_b32 a8, v244152; SDAG-NEXT:    v_accvgpr_write_b32 a9, v254153; SDAG-NEXT:    v_accvgpr_write_b32 a10, v264154; SDAG-NEXT:    v_accvgpr_write_b32 a11, v274155; SDAG-NEXT:    v_accvgpr_write_b32 a12, v284156; SDAG-NEXT:    v_accvgpr_write_b32 a13, v294157; SDAG-NEXT:    v_accvgpr_write_b32 a14, v304158; SDAG-NEXT:    s_waitcnt vmcnt(0)4159; SDAG-NEXT:    s_nop 04160; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]4161; SDAG-NEXT:    s_nop 154162; SDAG-NEXT:    s_nop 34163; SDAG-NEXT:    v_accvgpr_read_b32 v0, a04164; SDAG-NEXT:    v_accvgpr_read_b32 v1, a14165; SDAG-NEXT:    v_accvgpr_read_b32 v2, a24166; SDAG-NEXT:    v_accvgpr_read_b32 v3, a34167; SDAG-NEXT:    v_accvgpr_read_b32 v4, a44168; SDAG-NEXT:    v_accvgpr_read_b32 v5, a54169; SDAG-NEXT:    v_accvgpr_read_b32 v6, a64170; SDAG-NEXT:    v_accvgpr_read_b32 v7, a74171; SDAG-NEXT:    v_accvgpr_read_b32 v8, a84172; SDAG-NEXT:    v_accvgpr_read_b32 v9, a94173; SDAG-NEXT:    v_accvgpr_read_b32 v10, a104174; SDAG-NEXT:    v_accvgpr_read_b32 v11, a114175; SDAG-NEXT:    v_accvgpr_read_b32 v12, a124176; SDAG-NEXT:    v_accvgpr_read_b32 v13, a134177; SDAG-NEXT:    v_accvgpr_read_b32 v14, a144178; SDAG-NEXT:    v_accvgpr_read_b32 v15, a154179; SDAG-NEXT:    s_setpc_b64 s[30:31]4180;4181; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm:4182; GISEL:       ; %bb.0:4183; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4184; GISEL-NEXT:    scratch_load_dword a15, off, s324185; GISEL-NEXT:    v_mov_b32_e32 v31, 0x414186; GISEL-NEXT:    v_mov_b32_e32 v32, -24187; GISEL-NEXT:    v_accvgpr_write_b32 a0, v164188; GISEL-NEXT:    v_accvgpr_write_b32 a1, v174189; GISEL-NEXT:    v_accvgpr_write_b32 a2, v184190; GISEL-NEXT:    v_accvgpr_write_b32 a3, v194191; GISEL-NEXT:    v_accvgpr_write_b32 a4, v204192; GISEL-NEXT:    v_accvgpr_write_b32 a5, v214193; GISEL-NEXT:    v_accvgpr_write_b32 a6, v224194; GISEL-NEXT:    v_accvgpr_write_b32 a7, v234195; GISEL-NEXT:    v_accvgpr_write_b32 a8, v244196; GISEL-NEXT:    v_accvgpr_write_b32 a9, v254197; GISEL-NEXT:    v_accvgpr_write_b32 a10, v264198; GISEL-NEXT:    v_accvgpr_write_b32 a11, v274199; GISEL-NEXT:    v_accvgpr_write_b32 a12, v284200; GISEL-NEXT:    v_accvgpr_write_b32 a13, v294201; GISEL-NEXT:    v_accvgpr_write_b32 a14, v304202; GISEL-NEXT:    s_waitcnt vmcnt(0)4203; GISEL-NEXT:    s_nop 04204; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]4205; GISEL-NEXT:    s_nop 154206; GISEL-NEXT:    s_nop 34207; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04208; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14209; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24210; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34211; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44212; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54213; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64214; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74215; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84216; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94217; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104218; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114219; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124220; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134221; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144222; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154223; GISEL-NEXT:    s_setpc_b64 s[30:31]4224  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 -2)4225  ret <16 x float> %result4226}4227 4228define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_FP_literal(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {4229; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_FP_literal:4230; SDAG:       ; %bb.0:4231; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4232; SDAG-NEXT:    scratch_load_dword a15, off, s324233; SDAG-NEXT:    v_mov_b32_e32 v31, 1.04234; SDAG-NEXT:    v_mov_b32_e32 v32, 0x414235; SDAG-NEXT:    v_accvgpr_write_b32 a0, v164236; SDAG-NEXT:    v_accvgpr_write_b32 a1, v174237; SDAG-NEXT:    v_accvgpr_write_b32 a2, v184238; SDAG-NEXT:    v_accvgpr_write_b32 a3, v194239; SDAG-NEXT:    v_accvgpr_write_b32 a4, v204240; SDAG-NEXT:    v_accvgpr_write_b32 a5, v214241; SDAG-NEXT:    v_accvgpr_write_b32 a6, v224242; SDAG-NEXT:    v_accvgpr_write_b32 a7, v234243; SDAG-NEXT:    v_accvgpr_write_b32 a8, v244244; SDAG-NEXT:    v_accvgpr_write_b32 a9, v254245; SDAG-NEXT:    v_accvgpr_write_b32 a10, v264246; SDAG-NEXT:    v_accvgpr_write_b32 a11, v274247; SDAG-NEXT:    v_accvgpr_write_b32 a12, v284248; SDAG-NEXT:    v_accvgpr_write_b32 a13, v294249; SDAG-NEXT:    v_accvgpr_write_b32 a14, v304250; SDAG-NEXT:    s_waitcnt vmcnt(0)4251; SDAG-NEXT:    s_nop 04252; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]4253; SDAG-NEXT:    s_nop 154254; SDAG-NEXT:    s_nop 34255; SDAG-NEXT:    v_accvgpr_read_b32 v0, a04256; SDAG-NEXT:    v_accvgpr_read_b32 v1, a14257; SDAG-NEXT:    v_accvgpr_read_b32 v2, a24258; SDAG-NEXT:    v_accvgpr_read_b32 v3, a34259; SDAG-NEXT:    v_accvgpr_read_b32 v4, a44260; SDAG-NEXT:    v_accvgpr_read_b32 v5, a54261; SDAG-NEXT:    v_accvgpr_read_b32 v6, a64262; SDAG-NEXT:    v_accvgpr_read_b32 v7, a74263; SDAG-NEXT:    v_accvgpr_read_b32 v8, a84264; SDAG-NEXT:    v_accvgpr_read_b32 v9, a94265; SDAG-NEXT:    v_accvgpr_read_b32 v10, a104266; SDAG-NEXT:    v_accvgpr_read_b32 v11, a114267; SDAG-NEXT:    v_accvgpr_read_b32 v12, a124268; SDAG-NEXT:    v_accvgpr_read_b32 v13, a134269; SDAG-NEXT:    v_accvgpr_read_b32 v14, a144270; SDAG-NEXT:    v_accvgpr_read_b32 v15, a154271; SDAG-NEXT:    s_setpc_b64 s[30:31]4272;4273; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_FP_literal:4274; GISEL:       ; %bb.0:4275; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4276; GISEL-NEXT:    scratch_load_dword a15, off, s324277; GISEL-NEXT:    v_mov_b32_e32 v31, 0x414278; GISEL-NEXT:    v_mov_b32_e32 v32, 1.04279; GISEL-NEXT:    v_accvgpr_write_b32 a0, v164280; GISEL-NEXT:    v_accvgpr_write_b32 a1, v174281; GISEL-NEXT:    v_accvgpr_write_b32 a2, v184282; GISEL-NEXT:    v_accvgpr_write_b32 a3, v194283; GISEL-NEXT:    v_accvgpr_write_b32 a4, v204284; GISEL-NEXT:    v_accvgpr_write_b32 a5, v214285; GISEL-NEXT:    v_accvgpr_write_b32 a6, v224286; GISEL-NEXT:    v_accvgpr_write_b32 a7, v234287; GISEL-NEXT:    v_accvgpr_write_b32 a8, v244288; GISEL-NEXT:    v_accvgpr_write_b32 a9, v254289; GISEL-NEXT:    v_accvgpr_write_b32 a10, v264290; GISEL-NEXT:    v_accvgpr_write_b32 a11, v274291; GISEL-NEXT:    v_accvgpr_write_b32 a12, v284292; GISEL-NEXT:    v_accvgpr_write_b32 a13, v294293; GISEL-NEXT:    v_accvgpr_write_b32 a14, v304294; GISEL-NEXT:    s_waitcnt vmcnt(0)4295; GISEL-NEXT:    s_nop 04296; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]4297; GISEL-NEXT:    s_nop 154298; GISEL-NEXT:    s_nop 34299; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04300; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14301; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24302; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34303; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44304; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54305; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64306; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74307; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84308; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94309; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104310; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114311; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124312; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134313; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144314; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154315; GISEL-NEXT:    s_setpc_b64 s[30:31]4316  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 1065353216)4317  ret <16 x float> %result4318}4319 4320define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_FP_literal__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {4321; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_FP_literal__scaleB_inlineimm:4322; SDAG:       ; %bb.0:4323; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4324; SDAG-NEXT:    scratch_load_dword a15, off, s324325; SDAG-NEXT:    v_mov_b32_e32 v31, -24326; SDAG-NEXT:    v_mov_b32_e32 v32, 1.04327; SDAG-NEXT:    v_accvgpr_write_b32 a0, v164328; SDAG-NEXT:    v_accvgpr_write_b32 a1, v174329; SDAG-NEXT:    v_accvgpr_write_b32 a2, v184330; SDAG-NEXT:    v_accvgpr_write_b32 a3, v194331; SDAG-NEXT:    v_accvgpr_write_b32 a4, v204332; SDAG-NEXT:    v_accvgpr_write_b32 a5, v214333; SDAG-NEXT:    v_accvgpr_write_b32 a6, v224334; SDAG-NEXT:    v_accvgpr_write_b32 a7, v234335; SDAG-NEXT:    v_accvgpr_write_b32 a8, v244336; SDAG-NEXT:    v_accvgpr_write_b32 a9, v254337; SDAG-NEXT:    v_accvgpr_write_b32 a10, v264338; SDAG-NEXT:    v_accvgpr_write_b32 a11, v274339; SDAG-NEXT:    v_accvgpr_write_b32 a12, v284340; SDAG-NEXT:    v_accvgpr_write_b32 a13, v294341; SDAG-NEXT:    v_accvgpr_write_b32 a14, v304342; SDAG-NEXT:    s_waitcnt vmcnt(0)4343; SDAG-NEXT:    s_nop 04344; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]4345; SDAG-NEXT:    s_nop 154346; SDAG-NEXT:    s_nop 34347; SDAG-NEXT:    v_accvgpr_read_b32 v0, a04348; SDAG-NEXT:    v_accvgpr_read_b32 v1, a14349; SDAG-NEXT:    v_accvgpr_read_b32 v2, a24350; SDAG-NEXT:    v_accvgpr_read_b32 v3, a34351; SDAG-NEXT:    v_accvgpr_read_b32 v4, a44352; SDAG-NEXT:    v_accvgpr_read_b32 v5, a54353; SDAG-NEXT:    v_accvgpr_read_b32 v6, a64354; SDAG-NEXT:    v_accvgpr_read_b32 v7, a74355; SDAG-NEXT:    v_accvgpr_read_b32 v8, a84356; SDAG-NEXT:    v_accvgpr_read_b32 v9, a94357; SDAG-NEXT:    v_accvgpr_read_b32 v10, a104358; SDAG-NEXT:    v_accvgpr_read_b32 v11, a114359; SDAG-NEXT:    v_accvgpr_read_b32 v12, a124360; SDAG-NEXT:    v_accvgpr_read_b32 v13, a134361; SDAG-NEXT:    v_accvgpr_read_b32 v14, a144362; SDAG-NEXT:    v_accvgpr_read_b32 v15, a154363; SDAG-NEXT:    s_setpc_b64 s[30:31]4364;4365; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_FP_literal__scaleB_inlineimm:4366; GISEL:       ; %bb.0:4367; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4368; GISEL-NEXT:    scratch_load_dword a15, off, s324369; GISEL-NEXT:    v_mov_b32_e32 v31, 1.04370; GISEL-NEXT:    v_mov_b32_e32 v32, -24371; GISEL-NEXT:    v_accvgpr_write_b32 a0, v164372; GISEL-NEXT:    v_accvgpr_write_b32 a1, v174373; GISEL-NEXT:    v_accvgpr_write_b32 a2, v184374; GISEL-NEXT:    v_accvgpr_write_b32 a3, v194375; GISEL-NEXT:    v_accvgpr_write_b32 a4, v204376; GISEL-NEXT:    v_accvgpr_write_b32 a5, v214377; GISEL-NEXT:    v_accvgpr_write_b32 a6, v224378; GISEL-NEXT:    v_accvgpr_write_b32 a7, v234379; GISEL-NEXT:    v_accvgpr_write_b32 a8, v244380; GISEL-NEXT:    v_accvgpr_write_b32 a9, v254381; GISEL-NEXT:    v_accvgpr_write_b32 a10, v264382; GISEL-NEXT:    v_accvgpr_write_b32 a11, v274383; GISEL-NEXT:    v_accvgpr_write_b32 a12, v284384; GISEL-NEXT:    v_accvgpr_write_b32 a13, v294385; GISEL-NEXT:    v_accvgpr_write_b32 a14, v304386; GISEL-NEXT:    s_waitcnt vmcnt(0)4387; GISEL-NEXT:    s_nop 04388; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]4389; GISEL-NEXT:    s_nop 154390; GISEL-NEXT:    s_nop 34391; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04392; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14393; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24394; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34395; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44396; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54397; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64398; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74399; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84400; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94401; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104402; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114403; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124404; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134405; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144406; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154407; GISEL-NEXT:    s_setpc_b64 s[30:31]4408  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 1065353216, i32 2, i32 -2)4409  ret <16 x float> %result4410}4411 4412define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_FP_literal__scaleB_FP_literal(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {4413; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_FP_literal__scaleB_FP_literal:4414; SDAG:       ; %bb.0:4415; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4416; SDAG-NEXT:    scratch_load_dword a15, off, s324417; SDAG-NEXT:    v_mov_b32_e32 v31, 1.04418; SDAG-NEXT:    v_mov_b32_e32 v32, 0.159154944419; SDAG-NEXT:    v_accvgpr_write_b32 a0, v164420; SDAG-NEXT:    v_accvgpr_write_b32 a1, v174421; SDAG-NEXT:    v_accvgpr_write_b32 a2, v184422; SDAG-NEXT:    v_accvgpr_write_b32 a3, v194423; SDAG-NEXT:    v_accvgpr_write_b32 a4, v204424; SDAG-NEXT:    v_accvgpr_write_b32 a5, v214425; SDAG-NEXT:    v_accvgpr_write_b32 a6, v224426; SDAG-NEXT:    v_accvgpr_write_b32 a7, v234427; SDAG-NEXT:    v_accvgpr_write_b32 a8, v244428; SDAG-NEXT:    v_accvgpr_write_b32 a9, v254429; SDAG-NEXT:    v_accvgpr_write_b32 a10, v264430; SDAG-NEXT:    v_accvgpr_write_b32 a11, v274431; SDAG-NEXT:    v_accvgpr_write_b32 a12, v284432; SDAG-NEXT:    v_accvgpr_write_b32 a13, v294433; SDAG-NEXT:    v_accvgpr_write_b32 a14, v304434; SDAG-NEXT:    s_waitcnt vmcnt(0)4435; SDAG-NEXT:    s_nop 04436; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]4437; SDAG-NEXT:    s_nop 154438; SDAG-NEXT:    s_nop 34439; SDAG-NEXT:    v_accvgpr_read_b32 v0, a04440; SDAG-NEXT:    v_accvgpr_read_b32 v1, a14441; SDAG-NEXT:    v_accvgpr_read_b32 v2, a24442; SDAG-NEXT:    v_accvgpr_read_b32 v3, a34443; SDAG-NEXT:    v_accvgpr_read_b32 v4, a44444; SDAG-NEXT:    v_accvgpr_read_b32 v5, a54445; SDAG-NEXT:    v_accvgpr_read_b32 v6, a64446; SDAG-NEXT:    v_accvgpr_read_b32 v7, a74447; SDAG-NEXT:    v_accvgpr_read_b32 v8, a84448; SDAG-NEXT:    v_accvgpr_read_b32 v9, a94449; SDAG-NEXT:    v_accvgpr_read_b32 v10, a104450; SDAG-NEXT:    v_accvgpr_read_b32 v11, a114451; SDAG-NEXT:    v_accvgpr_read_b32 v12, a124452; SDAG-NEXT:    v_accvgpr_read_b32 v13, a134453; SDAG-NEXT:    v_accvgpr_read_b32 v14, a144454; SDAG-NEXT:    v_accvgpr_read_b32 v15, a154455; SDAG-NEXT:    s_setpc_b64 s[30:31]4456;4457; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_FP_literal__scaleB_FP_literal:4458; GISEL:       ; %bb.0:4459; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4460; GISEL-NEXT:    scratch_load_dword a15, off, s324461; GISEL-NEXT:    v_mov_b32_e32 v31, 0.159154944462; GISEL-NEXT:    v_mov_b32_e32 v32, 1.04463; GISEL-NEXT:    v_accvgpr_write_b32 a0, v164464; GISEL-NEXT:    v_accvgpr_write_b32 a1, v174465; GISEL-NEXT:    v_accvgpr_write_b32 a2, v184466; GISEL-NEXT:    v_accvgpr_write_b32 a3, v194467; GISEL-NEXT:    v_accvgpr_write_b32 a4, v204468; GISEL-NEXT:    v_accvgpr_write_b32 a5, v214469; GISEL-NEXT:    v_accvgpr_write_b32 a6, v224470; GISEL-NEXT:    v_accvgpr_write_b32 a7, v234471; GISEL-NEXT:    v_accvgpr_write_b32 a8, v244472; GISEL-NEXT:    v_accvgpr_write_b32 a9, v254473; GISEL-NEXT:    v_accvgpr_write_b32 a10, v264474; GISEL-NEXT:    v_accvgpr_write_b32 a11, v274475; GISEL-NEXT:    v_accvgpr_write_b32 a12, v284476; GISEL-NEXT:    v_accvgpr_write_b32 a13, v294477; GISEL-NEXT:    v_accvgpr_write_b32 a14, v304478; GISEL-NEXT:    s_waitcnt vmcnt(0)4479; GISEL-NEXT:    s_nop 04480; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]4481; GISEL-NEXT:    s_nop 154482; GISEL-NEXT:    s_nop 34483; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04484; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14485; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24486; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34487; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44488; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54489; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64490; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74491; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84492; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94493; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104494; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114495; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124496; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134497; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144498; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154499; GISEL-NEXT:    s_setpc_b64 s[30:31]4500  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 1042479491, i32 2, i32 1065353216)4501  ret <16 x float> %result4502}4503 4504define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_kimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {4505; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_kimm:4506; SDAG:       ; %bb.0:4507; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4508; SDAG-NEXT:    scratch_load_dword a15, off, s324509; SDAG-NEXT:    v_mov_b32_e32 v31, 0x4d4510; SDAG-NEXT:    v_mov_b32_e32 v32, 0x414511; SDAG-NEXT:    v_accvgpr_write_b32 a0, v164512; SDAG-NEXT:    v_accvgpr_write_b32 a1, v174513; SDAG-NEXT:    v_accvgpr_write_b32 a2, v184514; SDAG-NEXT:    v_accvgpr_write_b32 a3, v194515; SDAG-NEXT:    v_accvgpr_write_b32 a4, v204516; SDAG-NEXT:    v_accvgpr_write_b32 a5, v214517; SDAG-NEXT:    v_accvgpr_write_b32 a6, v224518; SDAG-NEXT:    v_accvgpr_write_b32 a7, v234519; SDAG-NEXT:    v_accvgpr_write_b32 a8, v244520; SDAG-NEXT:    v_accvgpr_write_b32 a9, v254521; SDAG-NEXT:    v_accvgpr_write_b32 a10, v264522; SDAG-NEXT:    v_accvgpr_write_b32 a11, v274523; SDAG-NEXT:    v_accvgpr_write_b32 a12, v284524; SDAG-NEXT:    v_accvgpr_write_b32 a13, v294525; SDAG-NEXT:    v_accvgpr_write_b32 a14, v304526; SDAG-NEXT:    s_waitcnt vmcnt(0)4527; SDAG-NEXT:    s_nop 04528; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[1,1,0]4529; SDAG-NEXT:    s_nop 154530; SDAG-NEXT:    s_nop 34531; SDAG-NEXT:    v_accvgpr_read_b32 v0, a04532; SDAG-NEXT:    v_accvgpr_read_b32 v1, a14533; SDAG-NEXT:    v_accvgpr_read_b32 v2, a24534; SDAG-NEXT:    v_accvgpr_read_b32 v3, a34535; SDAG-NEXT:    v_accvgpr_read_b32 v4, a44536; SDAG-NEXT:    v_accvgpr_read_b32 v5, a54537; SDAG-NEXT:    v_accvgpr_read_b32 v6, a64538; SDAG-NEXT:    v_accvgpr_read_b32 v7, a74539; SDAG-NEXT:    v_accvgpr_read_b32 v8, a84540; SDAG-NEXT:    v_accvgpr_read_b32 v9, a94541; SDAG-NEXT:    v_accvgpr_read_b32 v10, a104542; SDAG-NEXT:    v_accvgpr_read_b32 v11, a114543; SDAG-NEXT:    v_accvgpr_read_b32 v12, a124544; SDAG-NEXT:    v_accvgpr_read_b32 v13, a134545; SDAG-NEXT:    v_accvgpr_read_b32 v14, a144546; SDAG-NEXT:    v_accvgpr_read_b32 v15, a154547; SDAG-NEXT:    s_setpc_b64 s[30:31]4548;4549; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_kimm:4550; GISEL:       ; %bb.0:4551; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)4552; GISEL-NEXT:    scratch_load_dword a15, off, s324553; GISEL-NEXT:    v_mov_b32_e32 v31, 0x414554; GISEL-NEXT:    v_mov_b32_e32 v32, 0x4d4555; GISEL-NEXT:    v_accvgpr_write_b32 a0, v164556; GISEL-NEXT:    v_accvgpr_write_b32 a1, v174557; GISEL-NEXT:    v_accvgpr_write_b32 a2, v184558; GISEL-NEXT:    v_accvgpr_write_b32 a3, v194559; GISEL-NEXT:    v_accvgpr_write_b32 a4, v204560; GISEL-NEXT:    v_accvgpr_write_b32 a5, v214561; GISEL-NEXT:    v_accvgpr_write_b32 a6, v224562; GISEL-NEXT:    v_accvgpr_write_b32 a7, v234563; GISEL-NEXT:    v_accvgpr_write_b32 a8, v244564; GISEL-NEXT:    v_accvgpr_write_b32 a9, v254565; GISEL-NEXT:    v_accvgpr_write_b32 a10, v264566; GISEL-NEXT:    v_accvgpr_write_b32 a11, v274567; GISEL-NEXT:    v_accvgpr_write_b32 a12, v284568; GISEL-NEXT:    v_accvgpr_write_b32 a13, v294569; GISEL-NEXT:    v_accvgpr_write_b32 a14, v304570; GISEL-NEXT:    s_waitcnt vmcnt(0)4571; GISEL-NEXT:    s_nop 04572; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[1,1,0]4573; GISEL-NEXT:    s_nop 154574; GISEL-NEXT:    s_nop 34575; GISEL-NEXT:    v_accvgpr_read_b32 v0, a04576; GISEL-NEXT:    v_accvgpr_read_b32 v1, a14577; GISEL-NEXT:    v_accvgpr_read_b32 v2, a24578; GISEL-NEXT:    v_accvgpr_read_b32 v3, a34579; GISEL-NEXT:    v_accvgpr_read_b32 v4, a44580; GISEL-NEXT:    v_accvgpr_read_b32 v5, a54581; GISEL-NEXT:    v_accvgpr_read_b32 v6, a64582; GISEL-NEXT:    v_accvgpr_read_b32 v7, a74583; GISEL-NEXT:    v_accvgpr_read_b32 v8, a84584; GISEL-NEXT:    v_accvgpr_read_b32 v9, a94585; GISEL-NEXT:    v_accvgpr_read_b32 v10, a104586; GISEL-NEXT:    v_accvgpr_read_b32 v11, a114587; GISEL-NEXT:    v_accvgpr_read_b32 v12, a124588; GISEL-NEXT:    v_accvgpr_read_b32 v13, a134589; GISEL-NEXT:    v_accvgpr_read_b32 v14, a144590; GISEL-NEXT:    v_accvgpr_read_b32 v15, a154591; GISEL-NEXT:    s_setpc_b64 s[30:31]4592  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 77)4593  ret <16 x float> %result4594}4595 4596define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1, ptr addrspace(1) %ptr) #0 {4597; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd:4598; SDAG:       ; %bb.0:4599; SDAG-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x04600; SDAG-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x404601; SDAG-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x804602; SDAG-NEXT:    s_waitcnt lgkmcnt(0)4603; SDAG-NEXT:    v_mov_b64_e32 v[0:1], s[36:37]4604; SDAG-NEXT:    v_mov_b32_e32 v16, s84605; SDAG-NEXT:    v_mov_b32_e32 v17, s94606; SDAG-NEXT:    v_mov_b32_e32 v18, s104607; SDAG-NEXT:    v_mov_b32_e32 v19, s114608; SDAG-NEXT:    v_mov_b32_e32 v20, s124609; SDAG-NEXT:    v_mov_b32_e32 v21, s134610; SDAG-NEXT:    v_mov_b32_e32 v22, s144611; SDAG-NEXT:    v_mov_b32_e32 v23, s154612; SDAG-NEXT:    v_mov_b32_e32 v24, s164613; SDAG-NEXT:    v_mov_b32_e32 v25, s174614; SDAG-NEXT:    v_mov_b32_e32 v26, s184615; SDAG-NEXT:    v_mov_b32_e32 v27, s194616; SDAG-NEXT:    v_mov_b32_e32 v28, s204617; SDAG-NEXT:    v_mov_b32_e32 v29, s214618; SDAG-NEXT:    v_mov_b32_e32 v30, s224619; SDAG-NEXT:    v_mov_b32_e32 v31, s234620; SDAG-NEXT:    v_mov_b64_e32 v[2:3], s[38:39]4621; SDAG-NEXT:    v_mov_b64_e32 v[4:5], s[40:41]4622; SDAG-NEXT:    v_mov_b64_e32 v[6:7], s[42:43]4623; SDAG-NEXT:    v_mov_b64_e32 v[8:9], s[44:45]4624; SDAG-NEXT:    v_mov_b64_e32 v[10:11], s[46:47]4625; SDAG-NEXT:    v_mov_b64_e32 v[12:13], s[48:49]4626; SDAG-NEXT:    v_mov_b64_e32 v[14:15], s[50:51]4627; SDAG-NEXT:    v_mov_b32_e32 v32, s04628; SDAG-NEXT:    v_mov_b32_e32 v33, s14629; SDAG-NEXT:    s_nop 14630; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[0:15], v32, v33 op_sel:[1,1,0] op_sel_hi:[1,0,0] blgp:24631; SDAG-NEXT:    v_mov_b32_e32 v16, 04632; SDAG-NEXT:    s_nop 154633; SDAG-NEXT:    s_nop 24634; SDAG-NEXT:    global_store_dwordx4 v16, v[12:15], s[2:3] offset:484635; SDAG-NEXT:    global_store_dwordx4 v16, v[8:11], s[2:3] offset:324636; SDAG-NEXT:    global_store_dwordx4 v16, v[4:7], s[2:3] offset:164637; SDAG-NEXT:    global_store_dwordx4 v16, v[0:3], s[2:3]4638; SDAG-NEXT:    s_endpgm4639;4640; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd:4641; GISEL:       ; %bb.0:4642; GISEL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x04643; GISEL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x404644; GISEL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x804645; GISEL-NEXT:    s_waitcnt lgkmcnt(0)4646; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[14:15]4647; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[12:13]4648; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[10:11]4649; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[8:9]4650; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[22:23]4651; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[36:37]4652; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[20:21]4653; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[18:19]4654; GISEL-NEXT:    v_mov_b64_e32 v[24:25], s[16:17]4655; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[38:39]4656; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[40:41]4657; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[42:43]4658; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[44:45]4659; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[46:47]4660; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[48:49]4661; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[50:51]4662; GISEL-NEXT:    v_mov_b32_e32 v32, s04663; GISEL-NEXT:    v_mov_b32_e32 v33, s14664; GISEL-NEXT:    s_nop 14665; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[0:15], v32, v33 op_sel:[1,1,0] op_sel_hi:[1,0,0] blgp:24666; GISEL-NEXT:    v_mov_b32_e32 v16, 04667; GISEL-NEXT:    s_nop 154668; GISEL-NEXT:    s_nop 24669; GISEL-NEXT:    global_store_dwordx4 v16, v[0:3], s[2:3]4670; GISEL-NEXT:    global_store_dwordx4 v16, v[4:7], s[2:3] offset:164671; GISEL-NEXT:    global_store_dwordx4 v16, v[8:11], s[2:3] offset:324672; GISEL-NEXT:    global_store_dwordx4 v16, v[12:15], s[2:3] offset:484673; GISEL-NEXT:    s_endpgm4674  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 3, i32 %scale0, i32 1, i32 %scale1)4675  store <16 x float> %result, ptr addrspace(1) %ptr, align 644676  ret void4677}4678 4679define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, ptr addrspace(1) %ptr) #0 {4680; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm:4681; SDAG:       ; %bb.0:4682; SDAG-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x04683; SDAG-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x404684; SDAG-NEXT:    v_mov_b32_e32 v32, -24685; SDAG-NEXT:    v_mov_b32_e32 v33, 0x414686; SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x804687; SDAG-NEXT:    s_waitcnt lgkmcnt(0)4688; SDAG-NEXT:    v_mov_b32_e32 v16, s84689; SDAG-NEXT:    v_mov_b32_e32 v17, s94690; SDAG-NEXT:    v_mov_b32_e32 v18, s104691; SDAG-NEXT:    v_mov_b32_e32 v19, s114692; SDAG-NEXT:    v_mov_b32_e32 v20, s124693; SDAG-NEXT:    v_mov_b32_e32 v21, s134694; SDAG-NEXT:    v_mov_b32_e32 v22, s144695; SDAG-NEXT:    v_mov_b32_e32 v23, s154696; SDAG-NEXT:    v_mov_b64_e32 v[0:1], s[36:37]4697; SDAG-NEXT:    v_mov_b32_e32 v24, s164698; SDAG-NEXT:    v_mov_b32_e32 v25, s174699; SDAG-NEXT:    v_mov_b32_e32 v26, s184700; SDAG-NEXT:    v_mov_b32_e32 v27, s194701; SDAG-NEXT:    v_mov_b32_e32 v28, s204702; SDAG-NEXT:    v_mov_b32_e32 v29, s214703; SDAG-NEXT:    v_mov_b32_e32 v30, s224704; SDAG-NEXT:    v_mov_b32_e32 v31, s234705; SDAG-NEXT:    v_mov_b64_e32 v[2:3], s[38:39]4706; SDAG-NEXT:    v_mov_b64_e32 v[4:5], s[40:41]4707; SDAG-NEXT:    v_mov_b64_e32 v[6:7], s[42:43]4708; SDAG-NEXT:    v_mov_b64_e32 v[8:9], s[44:45]4709; SDAG-NEXT:    v_mov_b64_e32 v[10:11], s[46:47]4710; SDAG-NEXT:    v_mov_b64_e32 v[12:13], s[48:49]4711; SDAG-NEXT:    v_mov_b64_e32 v[14:15], s[50:51]4712; SDAG-NEXT:    s_nop 14713; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[0:15], v33, v32 op_sel:[1,1,0] op_sel_hi:[1,0,0] blgp:24714; SDAG-NEXT:    v_mov_b32_e32 v16, 04715; SDAG-NEXT:    s_nop 154716; SDAG-NEXT:    s_nop 24717; SDAG-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:484718; SDAG-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:324719; SDAG-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:164720; SDAG-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]4721; SDAG-NEXT:    s_endpgm4722;4723; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm:4724; GISEL:       ; %bb.0:4725; GISEL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x04726; GISEL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x404727; GISEL-NEXT:    v_mov_b32_e32 v32, 0x414728; GISEL-NEXT:    v_mov_b32_e32 v33, -24729; GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x804730; GISEL-NEXT:    s_waitcnt lgkmcnt(0)4731; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[14:15]4732; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[12:13]4733; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[10:11]4734; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[8:9]4735; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[22:23]4736; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[36:37]4737; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[20:21]4738; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[18:19]4739; GISEL-NEXT:    v_mov_b64_e32 v[24:25], s[16:17]4740; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[38:39]4741; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[40:41]4742; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[42:43]4743; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[44:45]4744; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[46:47]4745; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[48:49]4746; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[50:51]4747; GISEL-NEXT:    s_nop 14748; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[0:15], v32, v33 op_sel:[1,1,0] op_sel_hi:[1,0,0] blgp:24749; GISEL-NEXT:    v_mov_b32_e32 v16, 04750; GISEL-NEXT:    s_nop 154751; GISEL-NEXT:    s_nop 24752; GISEL-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]4753; GISEL-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:164754; GISEL-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:324755; GISEL-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:484756; GISEL-NEXT:    s_endpgm4757  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 3, i32 65, i32 1, i32 -2)4758  store <16 x float> %result, ptr addrspace(1) %ptr, align 644759  ret void4760}4761 4762define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) #1 {4763; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__nonmac:4764; SDAG:       ; %bb.0:4765; SDAG-NEXT:    s_load_dwordx16 s[12:27], s[4:5], 0x04766; SDAG-NEXT:    s_waitcnt lgkmcnt(0)4767; SDAG-NEXT:    v_mov_b32_e32 v2, s124768; SDAG-NEXT:    v_mov_b32_e32 v3, s134769; SDAG-NEXT:    v_mov_b32_e32 v4, s144770; SDAG-NEXT:    v_mov_b32_e32 v5, s154771; SDAG-NEXT:    v_mov_b32_e32 v6, s164772; SDAG-NEXT:    v_mov_b32_e32 v7, s174773; SDAG-NEXT:    v_mov_b32_e32 v8, s184774; SDAG-NEXT:    v_mov_b32_e32 v9, s194775; SDAG-NEXT:    v_mov_b32_e32 v10, s204776; SDAG-NEXT:    v_mov_b32_e32 v11, s214777; SDAG-NEXT:    v_mov_b32_e32 v12, s224778; SDAG-NEXT:    v_mov_b32_e32 v13, s234779; SDAG-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x404780; SDAG-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x804781; SDAG-NEXT:    v_mov_b32_e32 v14, s244782; SDAG-NEXT:    v_mov_b32_e32 v15, s254783; SDAG-NEXT:    v_mov_b32_e32 v16, s264784; SDAG-NEXT:    s_waitcnt lgkmcnt(0)4785; SDAG-NEXT:    v_accvgpr_write_b32 a0, s84786; SDAG-NEXT:    v_mov_b32_e32 v17, s274787; SDAG-NEXT:    v_accvgpr_write_b32 a1, s94788; SDAG-NEXT:    v_accvgpr_write_b32 a2, s104789; SDAG-NEXT:    v_accvgpr_write_b32 a3, s114790; SDAG-NEXT:    v_accvgpr_write_b32 a4, s124791; SDAG-NEXT:    v_accvgpr_write_b32 a5, s134792; SDAG-NEXT:    v_accvgpr_write_b32 a6, s144793; SDAG-NEXT:    v_accvgpr_write_b32 a7, s154794; SDAG-NEXT:    v_accvgpr_write_b32 a8, s164795; SDAG-NEXT:    v_accvgpr_write_b32 a9, s174796; SDAG-NEXT:    v_accvgpr_write_b32 a10, s184797; SDAG-NEXT:    v_accvgpr_write_b32 a11, s194798; SDAG-NEXT:    v_accvgpr_write_b32 a12, s204799; SDAG-NEXT:    v_accvgpr_write_b32 a13, s214800; SDAG-NEXT:    v_accvgpr_write_b32 a14, s224801; SDAG-NEXT:    v_accvgpr_write_b32 a15, s234802; SDAG-NEXT:    v_mov_b32_e32 v0, s04803; SDAG-NEXT:    v_mov_b32_e32 v1, s14804; SDAG-NEXT:    s_nop 14805; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[2:9], v[10:17], a[0:15], v0, v1 op_sel_hi:[0,0,0]4806; SDAG-NEXT:    v_mov_b32_e32 v2, s204807; SDAG-NEXT:    v_mov_b32_e32 v3, s214808; SDAG-NEXT:    v_mov_b32_e32 v4, s224809; SDAG-NEXT:    v_mov_b32_e32 v5, s234810; SDAG-NEXT:    v_mov_b64_e32 v[0:1], 484811; SDAG-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off sc0 sc14812; SDAG-NEXT:    s_waitcnt vmcnt(0)4813; SDAG-NEXT:    v_mov_b32_e32 v6, s184814; SDAG-NEXT:    v_mov_b32_e32 v7, s194815; SDAG-NEXT:    v_mov_b32_e32 v4, s164816; SDAG-NEXT:    v_mov_b32_e32 v5, s174817; SDAG-NEXT:    v_mov_b64_e32 v[2:3], 324818; SDAG-NEXT:    global_store_dwordx4 v[2:3], v[4:7], off sc0 sc14819; SDAG-NEXT:    s_waitcnt vmcnt(0)4820; SDAG-NEXT:    v_mov_b32_e32 v8, s144821; SDAG-NEXT:    v_mov_b32_e32 v9, s154822; SDAG-NEXT:    v_mov_b32_e32 v6, s124823; SDAG-NEXT:    v_mov_b32_e32 v7, s134824; SDAG-NEXT:    v_mov_b64_e32 v[4:5], 164825; SDAG-NEXT:    global_store_dwordx4 v[4:5], v[6:9], off sc0 sc14826; SDAG-NEXT:    s_waitcnt vmcnt(0)4827; SDAG-NEXT:    v_mov_b32_e32 v10, s104828; SDAG-NEXT:    v_mov_b32_e32 v11, s114829; SDAG-NEXT:    v_mov_b32_e32 v8, s84830; SDAG-NEXT:    v_mov_b32_e32 v9, s94831; SDAG-NEXT:    v_mov_b64_e32 v[6:7], 04832; SDAG-NEXT:    global_store_dwordx4 v[6:7], v[8:11], off sc0 sc14833; SDAG-NEXT:    s_waitcnt vmcnt(0)4834; SDAG-NEXT:    global_store_dwordx4 v[2:3], a[8:11], off sc0 sc14835; SDAG-NEXT:    s_waitcnt vmcnt(0)4836; SDAG-NEXT:    global_store_dwordx4 v[0:1], a[12:15], off sc0 sc14837; SDAG-NEXT:    s_waitcnt vmcnt(0)4838; SDAG-NEXT:    global_store_dwordx4 v[6:7], a[0:3], off sc0 sc14839; SDAG-NEXT:    s_waitcnt vmcnt(0)4840; SDAG-NEXT:    global_store_dwordx4 v[4:5], a[4:7], off sc0 sc14841; SDAG-NEXT:    s_waitcnt vmcnt(0)4842; SDAG-NEXT:    s_endpgm4843;4844; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__nonmac:4845; GISEL:       ; %bb.0:4846; GISEL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x04847; GISEL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x404848; GISEL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x804849; GISEL-NEXT:    v_mov_b64_e32 v[16:17], 04850; GISEL-NEXT:    v_mov_b64_e32 v[18:19], 164851; GISEL-NEXT:    s_waitcnt lgkmcnt(0)4852; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[36:37]4853; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[38:39]4854; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[40:41]4855; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[42:43]4856; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[44:45]4857; GISEL-NEXT:    v_accvgpr_write_b32 a0, s84858; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[46:47]4859; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[48:49]4860; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[50:51]4861; GISEL-NEXT:    v_accvgpr_write_b32 a1, s94862; GISEL-NEXT:    v_accvgpr_write_b32 a2, s104863; GISEL-NEXT:    v_accvgpr_write_b32 a3, s114864; GISEL-NEXT:    v_accvgpr_write_b32 a4, s124865; GISEL-NEXT:    v_accvgpr_write_b32 a5, s134866; GISEL-NEXT:    v_accvgpr_write_b32 a6, s144867; GISEL-NEXT:    v_accvgpr_write_b32 a7, s154868; GISEL-NEXT:    v_accvgpr_write_b32 a8, s164869; GISEL-NEXT:    v_accvgpr_write_b32 a9, s174870; GISEL-NEXT:    v_accvgpr_write_b32 a10, s184871; GISEL-NEXT:    v_accvgpr_write_b32 a11, s194872; GISEL-NEXT:    v_accvgpr_write_b32 a12, s204873; GISEL-NEXT:    v_accvgpr_write_b32 a13, s214874; GISEL-NEXT:    v_accvgpr_write_b32 a14, s224875; GISEL-NEXT:    v_accvgpr_write_b32 a15, s234876; GISEL-NEXT:    v_mov_b32_e32 v20, s04877; GISEL-NEXT:    v_mov_b32_e32 v21, s14878; GISEL-NEXT:    v_mov_b64_e32 v[22:23], 484879; GISEL-NEXT:    s_nop 04880; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v20, v21 op_sel_hi:[0,0,0]4881; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[8:9]4882; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[10:11]4883; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[12:13]4884; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[16:17]4885; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[20:21]4886; GISEL-NEXT:    v_mov_b64_e32 v[20:21], 324887; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[14:15]4888; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[18:19]4889; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[22:23]4890; GISEL-NEXT:    global_store_dwordx4 v[16:17], v[0:3], off sc0 sc14891; GISEL-NEXT:    s_waitcnt vmcnt(0)4892; GISEL-NEXT:    global_store_dwordx4 v[18:19], v[4:7], off sc0 sc14893; GISEL-NEXT:    s_waitcnt vmcnt(0)4894; GISEL-NEXT:    global_store_dwordx4 v[20:21], v[8:11], off sc0 sc14895; GISEL-NEXT:    s_waitcnt vmcnt(0)4896; GISEL-NEXT:    global_store_dwordx4 v[22:23], v[12:15], off sc0 sc14897; GISEL-NEXT:    s_waitcnt vmcnt(0)4898; GISEL-NEXT:    s_nop 24899; GISEL-NEXT:    global_store_dwordx4 v[16:17], a[0:3], off sc0 sc14900; GISEL-NEXT:    s_waitcnt vmcnt(0)4901; GISEL-NEXT:    global_store_dwordx4 v[18:19], a[4:7], off sc0 sc14902; GISEL-NEXT:    s_waitcnt vmcnt(0)4903; GISEL-NEXT:    global_store_dwordx4 v[20:21], a[8:11], off sc0 sc14904; GISEL-NEXT:    s_waitcnt vmcnt(0)4905; GISEL-NEXT:    global_store_dwordx4 v[22:23], a[12:15], off sc0 sc14906; GISEL-NEXT:    s_waitcnt vmcnt(0)4907; GISEL-NEXT:    s_endpgm4908  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1)4909  store volatile <16 x float> %arg2, ptr addrspace(1) null, align 644910  store volatile <16 x float> %result, ptr addrspace(1) null, align 644911  ret void4912}4913 4914define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_25_42__nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) #1 {4915; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__nonmac:4916; SDAG:       ; %bb.0:4917; SDAG-NEXT:    s_load_dwordx16 s[12:27], s[4:5], 0x04918; SDAG-NEXT:    v_mov_b32_e32 v0, 424919; SDAG-NEXT:    v_mov_b32_e32 v1, 254920; SDAG-NEXT:    s_waitcnt lgkmcnt(0)4921; SDAG-NEXT:    v_mov_b32_e32 v2, s124922; SDAG-NEXT:    v_mov_b32_e32 v3, s134923; SDAG-NEXT:    v_mov_b32_e32 v4, s144924; SDAG-NEXT:    v_mov_b32_e32 v5, s154925; SDAG-NEXT:    v_mov_b32_e32 v6, s164926; SDAG-NEXT:    v_mov_b32_e32 v7, s174927; SDAG-NEXT:    v_mov_b32_e32 v8, s184928; SDAG-NEXT:    v_mov_b32_e32 v9, s194929; SDAG-NEXT:    v_mov_b32_e32 v10, s204930; SDAG-NEXT:    v_mov_b32_e32 v11, s214931; SDAG-NEXT:    v_mov_b32_e32 v12, s224932; SDAG-NEXT:    v_mov_b32_e32 v13, s234933; SDAG-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x404934; SDAG-NEXT:    v_mov_b32_e32 v14, s244935; SDAG-NEXT:    v_mov_b32_e32 v15, s254936; SDAG-NEXT:    v_mov_b32_e32 v16, s264937; SDAG-NEXT:    v_mov_b32_e32 v17, s274938; SDAG-NEXT:    s_waitcnt lgkmcnt(0)4939; SDAG-NEXT:    v_accvgpr_write_b32 a0, s84940; SDAG-NEXT:    v_accvgpr_write_b32 a1, s94941; SDAG-NEXT:    v_accvgpr_write_b32 a2, s104942; SDAG-NEXT:    v_accvgpr_write_b32 a3, s114943; SDAG-NEXT:    v_accvgpr_write_b32 a4, s124944; SDAG-NEXT:    v_accvgpr_write_b32 a5, s134945; SDAG-NEXT:    v_accvgpr_write_b32 a6, s144946; SDAG-NEXT:    v_accvgpr_write_b32 a7, s154947; SDAG-NEXT:    v_accvgpr_write_b32 a8, s164948; SDAG-NEXT:    v_accvgpr_write_b32 a9, s174949; SDAG-NEXT:    v_accvgpr_write_b32 a10, s184950; SDAG-NEXT:    v_accvgpr_write_b32 a11, s194951; SDAG-NEXT:    v_accvgpr_write_b32 a12, s204952; SDAG-NEXT:    v_accvgpr_write_b32 a13, s214953; SDAG-NEXT:    v_accvgpr_write_b32 a14, s224954; SDAG-NEXT:    v_accvgpr_write_b32 a15, s234955; SDAG-NEXT:    s_nop 14956; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[2:9], v[10:17], a[0:15], v1, v0 op_sel_hi:[0,0,0] blgp:24957; SDAG-NEXT:    v_mov_b32_e32 v2, s204958; SDAG-NEXT:    v_mov_b32_e32 v3, s214959; SDAG-NEXT:    v_mov_b32_e32 v4, s224960; SDAG-NEXT:    v_mov_b32_e32 v5, s234961; SDAG-NEXT:    v_mov_b64_e32 v[0:1], 484962; SDAG-NEXT:    global_store_dwordx4 v[0:1], v[2:5], off sc0 sc14963; SDAG-NEXT:    s_waitcnt vmcnt(0)4964; SDAG-NEXT:    v_mov_b32_e32 v6, s184965; SDAG-NEXT:    v_mov_b32_e32 v7, s194966; SDAG-NEXT:    v_mov_b32_e32 v4, s164967; SDAG-NEXT:    v_mov_b32_e32 v5, s174968; SDAG-NEXT:    v_mov_b64_e32 v[2:3], 324969; SDAG-NEXT:    global_store_dwordx4 v[2:3], v[4:7], off sc0 sc14970; SDAG-NEXT:    s_waitcnt vmcnt(0)4971; SDAG-NEXT:    v_mov_b32_e32 v8, s144972; SDAG-NEXT:    v_mov_b32_e32 v9, s154973; SDAG-NEXT:    v_mov_b32_e32 v6, s124974; SDAG-NEXT:    v_mov_b32_e32 v7, s134975; SDAG-NEXT:    v_mov_b64_e32 v[4:5], 164976; SDAG-NEXT:    global_store_dwordx4 v[4:5], v[6:9], off sc0 sc14977; SDAG-NEXT:    s_waitcnt vmcnt(0)4978; SDAG-NEXT:    v_mov_b32_e32 v10, s104979; SDAG-NEXT:    v_mov_b32_e32 v11, s114980; SDAG-NEXT:    v_mov_b32_e32 v8, s84981; SDAG-NEXT:    v_mov_b32_e32 v9, s94982; SDAG-NEXT:    v_mov_b64_e32 v[6:7], 04983; SDAG-NEXT:    global_store_dwordx4 v[6:7], v[8:11], off sc0 sc14984; SDAG-NEXT:    s_waitcnt vmcnt(0)4985; SDAG-NEXT:    global_store_dwordx4 v[2:3], a[8:11], off sc0 sc14986; SDAG-NEXT:    s_waitcnt vmcnt(0)4987; SDAG-NEXT:    global_store_dwordx4 v[0:1], a[12:15], off sc0 sc14988; SDAG-NEXT:    s_waitcnt vmcnt(0)4989; SDAG-NEXT:    global_store_dwordx4 v[6:7], a[0:3], off sc0 sc14990; SDAG-NEXT:    s_waitcnt vmcnt(0)4991; SDAG-NEXT:    global_store_dwordx4 v[4:5], a[4:7], off sc0 sc14992; SDAG-NEXT:    s_waitcnt vmcnt(0)4993; SDAG-NEXT:    s_endpgm4994;4995; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__nonmac:4996; GISEL:       ; %bb.0:4997; GISEL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x04998; GISEL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x404999; GISEL-NEXT:    v_mov_b32_e32 v20, 255000; GISEL-NEXT:    v_mov_b32_e32 v21, 425001; GISEL-NEXT:    v_mov_b64_e32 v[16:17], 05002; GISEL-NEXT:    s_waitcnt lgkmcnt(0)5003; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[36:37]5004; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[38:39]5005; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[40:41]5006; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[42:43]5007; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[44:45]5008; GISEL-NEXT:    v_accvgpr_write_b32 a0, s85009; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[46:47]5010; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[48:49]5011; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[50:51]5012; GISEL-NEXT:    v_accvgpr_write_b32 a1, s95013; GISEL-NEXT:    v_accvgpr_write_b32 a2, s105014; GISEL-NEXT:    v_accvgpr_write_b32 a3, s115015; GISEL-NEXT:    v_accvgpr_write_b32 a4, s125016; GISEL-NEXT:    v_accvgpr_write_b32 a5, s135017; GISEL-NEXT:    v_accvgpr_write_b32 a6, s145018; GISEL-NEXT:    v_accvgpr_write_b32 a7, s155019; GISEL-NEXT:    v_accvgpr_write_b32 a8, s165020; GISEL-NEXT:    v_accvgpr_write_b32 a9, s175021; GISEL-NEXT:    v_accvgpr_write_b32 a10, s185022; GISEL-NEXT:    v_accvgpr_write_b32 a11, s195023; GISEL-NEXT:    v_accvgpr_write_b32 a12, s205024; GISEL-NEXT:    v_accvgpr_write_b32 a13, s215025; GISEL-NEXT:    v_accvgpr_write_b32 a14, s225026; GISEL-NEXT:    v_accvgpr_write_b32 a15, s235027; GISEL-NEXT:    v_mov_b64_e32 v[18:19], 165028; GISEL-NEXT:    v_mov_b64_e32 v[22:23], 485029; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v20, v21 op_sel_hi:[0,0,0] blgp:25030; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[8:9]5031; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[10:11]5032; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[12:13]5033; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[16:17]5034; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[20:21]5035; GISEL-NEXT:    v_mov_b64_e32 v[20:21], 325036; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[14:15]5037; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[18:19]5038; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[22:23]5039; GISEL-NEXT:    global_store_dwordx4 v[16:17], v[0:3], off sc0 sc15040; GISEL-NEXT:    s_waitcnt vmcnt(0)5041; GISEL-NEXT:    global_store_dwordx4 v[18:19], v[4:7], off sc0 sc15042; GISEL-NEXT:    s_waitcnt vmcnt(0)5043; GISEL-NEXT:    global_store_dwordx4 v[20:21], v[8:11], off sc0 sc15044; GISEL-NEXT:    s_waitcnt vmcnt(0)5045; GISEL-NEXT:    global_store_dwordx4 v[22:23], v[12:15], off sc0 sc15046; GISEL-NEXT:    s_waitcnt vmcnt(0)5047; GISEL-NEXT:    s_nop 25048; GISEL-NEXT:    global_store_dwordx4 v[16:17], a[0:3], off sc0 sc15049; GISEL-NEXT:    s_waitcnt vmcnt(0)5050; GISEL-NEXT:    global_store_dwordx4 v[18:19], a[4:7], off sc0 sc15051; GISEL-NEXT:    s_waitcnt vmcnt(0)5052; GISEL-NEXT:    global_store_dwordx4 v[20:21], a[8:11], off sc0 sc15053; GISEL-NEXT:    s_waitcnt vmcnt(0)5054; GISEL-NEXT:    global_store_dwordx4 v[22:23], a[12:15], off sc0 sc15055; GISEL-NEXT:    s_waitcnt vmcnt(0)5056; GISEL-NEXT:    s_endpgm5057  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 0, i32 25, i32 0, i32 42)5058  store volatile <16 x float> %arg2, ptr addrspace(1) null, align 645059  store volatile <16 x float> %result, ptr addrspace(1) null, align 645060  ret void5061}5062 5063define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgprcd_nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) #0 {5064; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgprcd_nonmac:5065; SDAG:       ; %bb.0:5066; SDAG-NEXT:    s_load_dwordx16 s[12:27], s[4:5], 0x05067; SDAG-NEXT:    s_waitcnt lgkmcnt(0)5068; SDAG-NEXT:    v_mov_b32_e32 v32, s125069; SDAG-NEXT:    v_mov_b32_e32 v33, s135070; SDAG-NEXT:    v_mov_b32_e32 v34, s145071; SDAG-NEXT:    v_mov_b32_e32 v35, s155072; SDAG-NEXT:    v_mov_b32_e32 v36, s165073; SDAG-NEXT:    v_mov_b32_e32 v37, s175074; SDAG-NEXT:    v_mov_b32_e32 v38, s185075; SDAG-NEXT:    v_mov_b32_e32 v39, s195076; SDAG-NEXT:    v_mov_b32_e32 v40, s205077; SDAG-NEXT:    v_mov_b32_e32 v41, s215078; SDAG-NEXT:    v_mov_b32_e32 v42, s225079; SDAG-NEXT:    v_mov_b32_e32 v43, s235080; SDAG-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x405081; SDAG-NEXT:    v_mov_b32_e32 v44, s245082; SDAG-NEXT:    v_mov_b32_e32 v45, s255083; SDAG-NEXT:    v_mov_b32_e32 v46, s265084; SDAG-NEXT:    v_mov_b32_e32 v47, s275085; SDAG-NEXT:    s_waitcnt lgkmcnt(0)5086; SDAG-NEXT:    v_mov_b64_e32 v[30:31], s[22:23]5087; SDAG-NEXT:    v_mov_b64_e32 v[28:29], s[20:21]5088; SDAG-NEXT:    v_mov_b64_e32 v[26:27], s[18:19]5089; SDAG-NEXT:    v_mov_b64_e32 v[24:25], s[16:17]5090; SDAG-NEXT:    v_mov_b64_e32 v[22:23], s[14:15]5091; SDAG-NEXT:    v_mov_b64_e32 v[20:21], s[12:13]5092; SDAG-NEXT:    v_mov_b64_e32 v[18:19], s[10:11]5093; SDAG-NEXT:    v_mov_b64_e32 v[16:17], s[8:9]5094; SDAG-NEXT:    s_nop 15095; SDAG-NEXT:    v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[32:39], v[40:47], v[16:31] blgp:25096; SDAG-NEXT:    s_nop 145097; SDAG-NEXT:    v_mov_b32_e32 v16, s205098; SDAG-NEXT:    v_mov_b32_e32 v17, s215099; SDAG-NEXT:    v_mov_b32_e32 v18, s225100; SDAG-NEXT:    v_mov_b32_e32 v19, s235101; SDAG-NEXT:    v_mov_b64_e32 v[20:21], 485102; SDAG-NEXT:    global_store_dwordx4 v[20:21], v[16:19], off sc0 sc15103; SDAG-NEXT:    s_waitcnt vmcnt(0)5104; SDAG-NEXT:    v_mov_b64_e32 v[22:23], 325105; SDAG-NEXT:    v_mov_b64_e32 v[24:25], 165106; SDAG-NEXT:    v_mov_b32_e32 v16, s165107; SDAG-NEXT:    v_mov_b32_e32 v17, s175108; SDAG-NEXT:    v_mov_b32_e32 v18, s185109; SDAG-NEXT:    v_mov_b32_e32 v19, s195110; SDAG-NEXT:    global_store_dwordx4 v[22:23], v[16:19], off sc0 sc15111; SDAG-NEXT:    s_waitcnt vmcnt(0)5112; SDAG-NEXT:    v_mov_b64_e32 v[26:27], 05113; SDAG-NEXT:    v_mov_b32_e32 v16, s125114; SDAG-NEXT:    v_mov_b32_e32 v17, s135115; SDAG-NEXT:    v_mov_b32_e32 v18, s145116; SDAG-NEXT:    v_mov_b32_e32 v19, s155117; SDAG-NEXT:    global_store_dwordx4 v[24:25], v[16:19], off sc0 sc15118; SDAG-NEXT:    s_waitcnt vmcnt(0)5119; SDAG-NEXT:    s_nop 05120; SDAG-NEXT:    v_mov_b32_e32 v16, s85121; SDAG-NEXT:    v_mov_b32_e32 v17, s95122; SDAG-NEXT:    v_mov_b32_e32 v18, s105123; SDAG-NEXT:    v_mov_b32_e32 v19, s115124; SDAG-NEXT:    global_store_dwordx4 v[26:27], v[16:19], off sc0 sc15125; SDAG-NEXT:    s_waitcnt vmcnt(0)5126; SDAG-NEXT:    global_store_dwordx4 v[22:23], v[8:11], off sc0 sc15127; SDAG-NEXT:    s_waitcnt vmcnt(0)5128; SDAG-NEXT:    global_store_dwordx4 v[20:21], v[12:15], off sc0 sc15129; SDAG-NEXT:    s_waitcnt vmcnt(0)5130; SDAG-NEXT:    global_store_dwordx4 v[26:27], v[0:3], off sc0 sc15131; SDAG-NEXT:    s_waitcnt vmcnt(0)5132; SDAG-NEXT:    global_store_dwordx4 v[24:25], v[4:7], off sc0 sc15133; SDAG-NEXT:    s_waitcnt vmcnt(0)5134; SDAG-NEXT:    s_endpgm5135;5136; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgprcd_nonmac:5137; GISEL:       ; %bb.0:5138; GISEL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x05139; GISEL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x405140; GISEL-NEXT:    s_waitcnt lgkmcnt(0)5141; GISEL-NEXT:    v_mov_b64_e32 v[32:33], s[36:37]5142; GISEL-NEXT:    v_mov_b64_e32 v[34:35], s[38:39]5143; GISEL-NEXT:    v_mov_b64_e32 v[36:37], s[40:41]5144; GISEL-NEXT:    v_mov_b64_e32 v[38:39], s[42:43]5145; GISEL-NEXT:    v_mov_b64_e32 v[40:41], s[44:45]5146; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[22:23]5147; GISEL-NEXT:    v_mov_b64_e32 v[42:43], s[46:47]5148; GISEL-NEXT:    v_mov_b64_e32 v[44:45], s[48:49]5149; GISEL-NEXT:    v_mov_b64_e32 v[46:47], s[50:51]5150; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[20:21]5151; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[18:19]5152; GISEL-NEXT:    v_mov_b64_e32 v[24:25], s[16:17]5153; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[14:15]5154; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[12:13]5155; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[10:11]5156; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[8:9]5157; GISEL-NEXT:    s_nop 15158; GISEL-NEXT:    v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[32:39], v[40:47], v[16:31] blgp:25159; GISEL-NEXT:    v_mov_b64_e32 v[32:33], 05160; GISEL-NEXT:    v_mov_b64_e32 v[34:35], 165161; GISEL-NEXT:    v_mov_b64_e32 v[36:37], 325162; GISEL-NEXT:    v_mov_b64_e32 v[38:39], 485163; GISEL-NEXT:    global_store_dwordx4 v[32:33], v[16:19], off sc0 sc15164; GISEL-NEXT:    s_waitcnt vmcnt(0)5165; GISEL-NEXT:    global_store_dwordx4 v[34:35], v[20:23], off sc0 sc15166; GISEL-NEXT:    s_waitcnt vmcnt(0)5167; GISEL-NEXT:    global_store_dwordx4 v[36:37], v[24:27], off sc0 sc15168; GISEL-NEXT:    s_waitcnt vmcnt(0)5169; GISEL-NEXT:    global_store_dwordx4 v[38:39], v[28:31], off sc0 sc15170; GISEL-NEXT:    s_waitcnt vmcnt(0)5171; GISEL-NEXT:    s_nop 75172; GISEL-NEXT:    global_store_dwordx4 v[32:33], v[0:3], off sc0 sc15173; GISEL-NEXT:    s_waitcnt vmcnt(0)5174; GISEL-NEXT:    global_store_dwordx4 v[34:35], v[4:7], off sc0 sc15175; GISEL-NEXT:    s_waitcnt vmcnt(0)5176; GISEL-NEXT:    global_store_dwordx4 v[36:37], v[8:11], off sc0 sc15177; GISEL-NEXT:    s_waitcnt vmcnt(0)5178; GISEL-NEXT:    global_store_dwordx4 v[38:39], v[12:15], off sc0 sc15179; GISEL-NEXT:    s_waitcnt vmcnt(0)5180; GISEL-NEXT:    s_endpgm5181  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 0, i32 0, i32 0, i32 0)5182  store volatile <16 x float> %arg2, ptr addrspace(1) null, align 645183  store volatile <16 x float> %result, ptr addrspace(1) null, align 645184  ret void5185}5186 5187define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_25_42__vgprcd_nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) #0 {5188; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__vgprcd_nonmac:5189; SDAG:       ; %bb.0:5190; SDAG-NEXT:    s_load_dwordx16 s[12:27], s[4:5], 0x05191; SDAG-NEXT:    v_mov_b32_e32 v32, 425192; SDAG-NEXT:    v_mov_b32_e32 v33, 255193; SDAG-NEXT:    s_waitcnt lgkmcnt(0)5194; SDAG-NEXT:    v_mov_b32_e32 v16, s125195; SDAG-NEXT:    v_mov_b32_e32 v17, s135196; SDAG-NEXT:    v_mov_b32_e32 v18, s145197; SDAG-NEXT:    v_mov_b32_e32 v19, s155198; SDAG-NEXT:    v_mov_b32_e32 v20, s165199; SDAG-NEXT:    v_mov_b32_e32 v21, s175200; SDAG-NEXT:    v_mov_b32_e32 v22, s185201; SDAG-NEXT:    v_mov_b32_e32 v23, s195202; SDAG-NEXT:    v_mov_b32_e32 v24, s205203; SDAG-NEXT:    v_mov_b32_e32 v25, s215204; SDAG-NEXT:    v_mov_b32_e32 v26, s225205; SDAG-NEXT:    v_mov_b32_e32 v27, s235206; SDAG-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x405207; SDAG-NEXT:    v_mov_b32_e32 v28, s245208; SDAG-NEXT:    v_mov_b32_e32 v29, s255209; SDAG-NEXT:    v_mov_b32_e32 v30, s265210; SDAG-NEXT:    v_mov_b32_e32 v31, s275211; SDAG-NEXT:    s_waitcnt lgkmcnt(0)5212; SDAG-NEXT:    v_mov_b64_e32 v[0:1], s[8:9]5213; SDAG-NEXT:    v_mov_b64_e32 v[2:3], s[10:11]5214; SDAG-NEXT:    v_mov_b64_e32 v[4:5], s[12:13]5215; SDAG-NEXT:    v_mov_b64_e32 v[6:7], s[14:15]5216; SDAG-NEXT:    v_mov_b64_e32 v[8:9], s[16:17]5217; SDAG-NEXT:    v_mov_b64_e32 v[10:11], s[18:19]5218; SDAG-NEXT:    v_mov_b64_e32 v[12:13], s[20:21]5219; SDAG-NEXT:    v_mov_b64_e32 v[14:15], s[22:23]5220; SDAG-NEXT:    s_nop 15221; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[0:15], v33, v32 op_sel_hi:[0,0,0] blgp:25222; SDAG-NEXT:    v_mov_b32_e32 v16, s205223; SDAG-NEXT:    v_mov_b32_e32 v17, s215224; SDAG-NEXT:    v_mov_b32_e32 v18, s225225; SDAG-NEXT:    v_mov_b32_e32 v19, s235226; SDAG-NEXT:    v_mov_b64_e32 v[20:21], 485227; SDAG-NEXT:    global_store_dwordx4 v[20:21], v[16:19], off sc0 sc15228; SDAG-NEXT:    s_waitcnt vmcnt(0)5229; SDAG-NEXT:    v_mov_b64_e32 v[22:23], 325230; SDAG-NEXT:    v_mov_b64_e32 v[24:25], 165231; SDAG-NEXT:    v_mov_b32_e32 v16, s165232; SDAG-NEXT:    v_mov_b32_e32 v17, s175233; SDAG-NEXT:    v_mov_b32_e32 v18, s185234; SDAG-NEXT:    v_mov_b32_e32 v19, s195235; SDAG-NEXT:    global_store_dwordx4 v[22:23], v[16:19], off sc0 sc15236; SDAG-NEXT:    s_waitcnt vmcnt(0)5237; SDAG-NEXT:    v_mov_b64_e32 v[26:27], 05238; SDAG-NEXT:    v_mov_b32_e32 v16, s125239; SDAG-NEXT:    v_mov_b32_e32 v17, s135240; SDAG-NEXT:    v_mov_b32_e32 v18, s145241; SDAG-NEXT:    v_mov_b32_e32 v19, s155242; SDAG-NEXT:    global_store_dwordx4 v[24:25], v[16:19], off sc0 sc15243; SDAG-NEXT:    s_waitcnt vmcnt(0)5244; SDAG-NEXT:    s_nop 05245; SDAG-NEXT:    v_mov_b32_e32 v16, s85246; SDAG-NEXT:    v_mov_b32_e32 v17, s95247; SDAG-NEXT:    v_mov_b32_e32 v18, s105248; SDAG-NEXT:    v_mov_b32_e32 v19, s115249; SDAG-NEXT:    global_store_dwordx4 v[26:27], v[16:19], off sc0 sc15250; SDAG-NEXT:    s_waitcnt vmcnt(0)5251; SDAG-NEXT:    global_store_dwordx4 v[22:23], v[8:11], off sc0 sc15252; SDAG-NEXT:    s_waitcnt vmcnt(0)5253; SDAG-NEXT:    global_store_dwordx4 v[20:21], v[12:15], off sc0 sc15254; SDAG-NEXT:    s_waitcnt vmcnt(0)5255; SDAG-NEXT:    global_store_dwordx4 v[26:27], v[0:3], off sc0 sc15256; SDAG-NEXT:    s_waitcnt vmcnt(0)5257; SDAG-NEXT:    global_store_dwordx4 v[24:25], v[4:7], off sc0 sc15258; SDAG-NEXT:    s_waitcnt vmcnt(0)5259; SDAG-NEXT:    s_endpgm5260;5261; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__vgprcd_nonmac:5262; GISEL:       ; %bb.0:5263; GISEL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x05264; GISEL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x405265; GISEL-NEXT:    v_mov_b32_e32 v32, 255266; GISEL-NEXT:    v_mov_b32_e32 v33, 425267; GISEL-NEXT:    v_mov_b64_e32 v[34:35], 165268; GISEL-NEXT:    s_waitcnt lgkmcnt(0)5269; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[36:37]5270; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[38:39]5271; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[40:41]5272; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[42:43]5273; GISEL-NEXT:    v_mov_b64_e32 v[24:25], s[44:45]5274; GISEL-NEXT:    v_mov_b64_e32 v[0:1], s[8:9]5275; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[46:47]5276; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[48:49]5277; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[50:51]5278; GISEL-NEXT:    v_mov_b64_e32 v[2:3], s[10:11]5279; GISEL-NEXT:    v_mov_b64_e32 v[4:5], s[12:13]5280; GISEL-NEXT:    v_mov_b64_e32 v[6:7], s[14:15]5281; GISEL-NEXT:    v_mov_b64_e32 v[8:9], s[16:17]5282; GISEL-NEXT:    v_mov_b64_e32 v[10:11], s[18:19]5283; GISEL-NEXT:    v_mov_b64_e32 v[12:13], s[20:21]5284; GISEL-NEXT:    v_mov_b64_e32 v[14:15], s[22:23]5285; GISEL-NEXT:    v_mov_b64_e32 v[36:37], 325286; GISEL-NEXT:    v_mov_b64_e32 v[38:39], 485287; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[0:15], v32, v33 op_sel_hi:[0,0,0] blgp:25288; GISEL-NEXT:    v_mov_b64_e32 v[18:19], s[10:11]5289; GISEL-NEXT:    v_mov_b64_e32 v[32:33], 05290; GISEL-NEXT:    v_mov_b64_e32 v[16:17], s[8:9]5291; GISEL-NEXT:    v_mov_b64_e32 v[22:23], s[14:15]5292; GISEL-NEXT:    v_mov_b64_e32 v[26:27], s[18:19]5293; GISEL-NEXT:    v_mov_b64_e32 v[30:31], s[22:23]5294; GISEL-NEXT:    v_mov_b64_e32 v[20:21], s[12:13]5295; GISEL-NEXT:    v_mov_b64_e32 v[24:25], s[16:17]5296; GISEL-NEXT:    v_mov_b64_e32 v[28:29], s[20:21]5297; GISEL-NEXT:    global_store_dwordx4 v[32:33], v[16:19], off sc0 sc15298; GISEL-NEXT:    s_waitcnt vmcnt(0)5299; GISEL-NEXT:    global_store_dwordx4 v[34:35], v[20:23], off sc0 sc15300; GISEL-NEXT:    s_waitcnt vmcnt(0)5301; GISEL-NEXT:    global_store_dwordx4 v[36:37], v[24:27], off sc0 sc15302; GISEL-NEXT:    s_waitcnt vmcnt(0)5303; GISEL-NEXT:    global_store_dwordx4 v[38:39], v[28:31], off sc0 sc15304; GISEL-NEXT:    s_waitcnt vmcnt(0)5305; GISEL-NEXT:    s_nop 25306; GISEL-NEXT:    global_store_dwordx4 v[32:33], v[0:3], off sc0 sc15307; GISEL-NEXT:    s_waitcnt vmcnt(0)5308; GISEL-NEXT:    global_store_dwordx4 v[34:35], v[4:7], off sc0 sc15309; GISEL-NEXT:    s_waitcnt vmcnt(0)5310; GISEL-NEXT:    global_store_dwordx4 v[36:37], v[8:11], off sc0 sc15311; GISEL-NEXT:    s_waitcnt vmcnt(0)5312; GISEL-NEXT:    global_store_dwordx4 v[38:39], v[12:15], off sc0 sc15313; GISEL-NEXT:    s_waitcnt vmcnt(0)5314; GISEL-NEXT:    s_endpgm5315  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 0, i32 25, i32 0, i32 42)5316  store volatile <16 x float> %arg2, ptr addrspace(1) null, align 645317  store volatile <16 x float> %result, ptr addrspace(1) null, align 645318  ret void5319}5320 5321define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_a(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5322; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_a:5323; GCN:       ; %bb.0:5324; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5325; GCN-NEXT:    scratch_load_dword a15, off, s325326; GCN-NEXT:    v_accvgpr_write_b32 a0, v165327; GCN-NEXT:    v_accvgpr_write_b32 a1, v175328; GCN-NEXT:    v_accvgpr_write_b32 a2, v185329; GCN-NEXT:    v_accvgpr_write_b32 a3, v195330; GCN-NEXT:    v_accvgpr_write_b32 a4, v205331; GCN-NEXT:    v_accvgpr_write_b32 a5, v215332; GCN-NEXT:    v_accvgpr_write_b32 a6, v225333; GCN-NEXT:    v_accvgpr_write_b32 a7, v235334; GCN-NEXT:    v_accvgpr_write_b32 a8, v245335; GCN-NEXT:    v_accvgpr_write_b32 a9, v255336; GCN-NEXT:    v_accvgpr_write_b32 a10, v265337; GCN-NEXT:    v_accvgpr_write_b32 a11, v275338; GCN-NEXT:    v_accvgpr_write_b32 a12, v285339; GCN-NEXT:    v_accvgpr_write_b32 a13, v295340; GCN-NEXT:    v_accvgpr_write_b32 a14, v305341; GCN-NEXT:    s_waitcnt vmcnt(0)5342; GCN-NEXT:    s_nop 05343; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15]5344; GCN-NEXT:    s_nop 155345; GCN-NEXT:    s_nop 35346; GCN-NEXT:    v_accvgpr_read_b32 v0, a05347; GCN-NEXT:    v_accvgpr_read_b32 v1, a15348; GCN-NEXT:    v_accvgpr_read_b32 v2, a25349; GCN-NEXT:    v_accvgpr_read_b32 v3, a35350; GCN-NEXT:    v_accvgpr_read_b32 v4, a45351; GCN-NEXT:    v_accvgpr_read_b32 v5, a55352; GCN-NEXT:    v_accvgpr_read_b32 v6, a65353; GCN-NEXT:    v_accvgpr_read_b32 v7, a75354; GCN-NEXT:    v_accvgpr_read_b32 v8, a85355; GCN-NEXT:    v_accvgpr_read_b32 v9, a95356; GCN-NEXT:    v_accvgpr_read_b32 v10, a105357; GCN-NEXT:    v_accvgpr_read_b32 v11, a115358; GCN-NEXT:    v_accvgpr_read_b32 v12, a125359; GCN-NEXT:    v_accvgpr_read_b32 v13, a135360; GCN-NEXT:    v_accvgpr_read_b32 v14, a145361; GCN-NEXT:    v_accvgpr_read_b32 v15, a155362; GCN-NEXT:    s_setpc_b64 s[30:31]5363  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)5364  ret <16 x float> %result5365}5366 5367define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_b(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5368; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_b:5369; GCN:       ; %bb.0:5370; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5371; GCN-NEXT:    scratch_load_dword a15, off, s325372; GCN-NEXT:    v_accvgpr_write_b32 a0, v165373; GCN-NEXT:    v_accvgpr_write_b32 a1, v175374; GCN-NEXT:    v_accvgpr_write_b32 a2, v185375; GCN-NEXT:    v_accvgpr_write_b32 a3, v195376; GCN-NEXT:    v_accvgpr_write_b32 a4, v205377; GCN-NEXT:    v_accvgpr_write_b32 a5, v215378; GCN-NEXT:    v_accvgpr_write_b32 a6, v225379; GCN-NEXT:    v_accvgpr_write_b32 a7, v235380; GCN-NEXT:    v_accvgpr_write_b32 a8, v245381; GCN-NEXT:    v_accvgpr_write_b32 a9, v255382; GCN-NEXT:    v_accvgpr_write_b32 a10, v265383; GCN-NEXT:    v_accvgpr_write_b32 a11, v275384; GCN-NEXT:    v_accvgpr_write_b32 a12, v285385; GCN-NEXT:    v_accvgpr_write_b32 a13, v295386; GCN-NEXT:    v_accvgpr_write_b32 a14, v305387; GCN-NEXT:    s_waitcnt vmcnt(0)5388; GCN-NEXT:    s_nop 05389; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15]5390; GCN-NEXT:    s_nop 155391; GCN-NEXT:    s_nop 35392; GCN-NEXT:    v_accvgpr_read_b32 v0, a05393; GCN-NEXT:    v_accvgpr_read_b32 v1, a15394; GCN-NEXT:    v_accvgpr_read_b32 v2, a25395; GCN-NEXT:    v_accvgpr_read_b32 v3, a35396; GCN-NEXT:    v_accvgpr_read_b32 v4, a45397; GCN-NEXT:    v_accvgpr_read_b32 v5, a55398; GCN-NEXT:    v_accvgpr_read_b32 v6, a65399; GCN-NEXT:    v_accvgpr_read_b32 v7, a75400; GCN-NEXT:    v_accvgpr_read_b32 v8, a85401; GCN-NEXT:    v_accvgpr_read_b32 v9, a95402; GCN-NEXT:    v_accvgpr_read_b32 v10, a105403; GCN-NEXT:    v_accvgpr_read_b32 v11, a115404; GCN-NEXT:    v_accvgpr_read_b32 v12, a125405; GCN-NEXT:    v_accvgpr_read_b32 v13, a135406; GCN-NEXT:    v_accvgpr_read_b32 v14, a145407; GCN-NEXT:    v_accvgpr_read_b32 v15, a155408; GCN-NEXT:    s_setpc_b64 s[30:31]5409  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 3, i32 0, i32 1, i32 0)5410  ret <16 x float> %result5411}5412 5413define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5414; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_1:5415; SDAG:       ; %bb.0:5416; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5417; SDAG-NEXT:    scratch_load_dword a15, off, s325418; SDAG-NEXT:    v_mov_b32_e32 v31, 15419; SDAG-NEXT:    v_mov_b32_e32 v32, 05420; SDAG-NEXT:    v_accvgpr_write_b32 a0, v165421; SDAG-NEXT:    v_accvgpr_write_b32 a1, v175422; SDAG-NEXT:    v_accvgpr_write_b32 a2, v185423; SDAG-NEXT:    v_accvgpr_write_b32 a3, v195424; SDAG-NEXT:    v_accvgpr_write_b32 a4, v205425; SDAG-NEXT:    v_accvgpr_write_b32 a5, v215426; SDAG-NEXT:    v_accvgpr_write_b32 a6, v225427; SDAG-NEXT:    v_accvgpr_write_b32 a7, v235428; SDAG-NEXT:    v_accvgpr_write_b32 a8, v245429; SDAG-NEXT:    v_accvgpr_write_b32 a9, v255430; SDAG-NEXT:    v_accvgpr_write_b32 a10, v265431; SDAG-NEXT:    v_accvgpr_write_b32 a11, v275432; SDAG-NEXT:    v_accvgpr_write_b32 a12, v285433; SDAG-NEXT:    v_accvgpr_write_b32 a13, v295434; SDAG-NEXT:    v_accvgpr_write_b32 a14, v305435; SDAG-NEXT:    s_waitcnt vmcnt(0)5436; SDAG-NEXT:    s_nop 05437; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0]5438; SDAG-NEXT:    s_nop 155439; SDAG-NEXT:    s_nop 35440; SDAG-NEXT:    v_accvgpr_read_b32 v0, a05441; SDAG-NEXT:    v_accvgpr_read_b32 v1, a15442; SDAG-NEXT:    v_accvgpr_read_b32 v2, a25443; SDAG-NEXT:    v_accvgpr_read_b32 v3, a35444; SDAG-NEXT:    v_accvgpr_read_b32 v4, a45445; SDAG-NEXT:    v_accvgpr_read_b32 v5, a55446; SDAG-NEXT:    v_accvgpr_read_b32 v6, a65447; SDAG-NEXT:    v_accvgpr_read_b32 v7, a75448; SDAG-NEXT:    v_accvgpr_read_b32 v8, a85449; SDAG-NEXT:    v_accvgpr_read_b32 v9, a95450; SDAG-NEXT:    v_accvgpr_read_b32 v10, a105451; SDAG-NEXT:    v_accvgpr_read_b32 v11, a115452; SDAG-NEXT:    v_accvgpr_read_b32 v12, a125453; SDAG-NEXT:    v_accvgpr_read_b32 v13, a135454; SDAG-NEXT:    v_accvgpr_read_b32 v14, a145455; SDAG-NEXT:    v_accvgpr_read_b32 v15, a155456; SDAG-NEXT:    s_setpc_b64 s[30:31]5457;5458; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_1:5459; GISEL:       ; %bb.0:5460; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5461; GISEL-NEXT:    scratch_load_dword a15, off, s325462; GISEL-NEXT:    v_mov_b32_e32 v31, 05463; GISEL-NEXT:    v_mov_b32_e32 v32, 15464; GISEL-NEXT:    v_accvgpr_write_b32 a0, v165465; GISEL-NEXT:    v_accvgpr_write_b32 a1, v175466; GISEL-NEXT:    v_accvgpr_write_b32 a2, v185467; GISEL-NEXT:    v_accvgpr_write_b32 a3, v195468; GISEL-NEXT:    v_accvgpr_write_b32 a4, v205469; GISEL-NEXT:    v_accvgpr_write_b32 a5, v215470; GISEL-NEXT:    v_accvgpr_write_b32 a6, v225471; GISEL-NEXT:    v_accvgpr_write_b32 a7, v235472; GISEL-NEXT:    v_accvgpr_write_b32 a8, v245473; GISEL-NEXT:    v_accvgpr_write_b32 a9, v255474; GISEL-NEXT:    v_accvgpr_write_b32 a10, v265475; GISEL-NEXT:    v_accvgpr_write_b32 a11, v275476; GISEL-NEXT:    v_accvgpr_write_b32 a12, v285477; GISEL-NEXT:    v_accvgpr_write_b32 a13, v295478; GISEL-NEXT:    v_accvgpr_write_b32 a14, v305479; GISEL-NEXT:    s_waitcnt vmcnt(0)5480; GISEL-NEXT:    s_nop 05481; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0]5482; GISEL-NEXT:    s_nop 155483; GISEL-NEXT:    s_nop 35484; GISEL-NEXT:    v_accvgpr_read_b32 v0, a05485; GISEL-NEXT:    v_accvgpr_read_b32 v1, a15486; GISEL-NEXT:    v_accvgpr_read_b32 v2, a25487; GISEL-NEXT:    v_accvgpr_read_b32 v3, a35488; GISEL-NEXT:    v_accvgpr_read_b32 v4, a45489; GISEL-NEXT:    v_accvgpr_read_b32 v5, a55490; GISEL-NEXT:    v_accvgpr_read_b32 v6, a65491; GISEL-NEXT:    v_accvgpr_read_b32 v7, a75492; GISEL-NEXT:    v_accvgpr_read_b32 v8, a85493; GISEL-NEXT:    v_accvgpr_read_b32 v9, a95494; GISEL-NEXT:    v_accvgpr_read_b32 v10, a105495; GISEL-NEXT:    v_accvgpr_read_b32 v11, a115496; GISEL-NEXT:    v_accvgpr_read_b32 v12, a125497; GISEL-NEXT:    v_accvgpr_read_b32 v13, a135498; GISEL-NEXT:    v_accvgpr_read_b32 v14, a145499; GISEL-NEXT:    v_accvgpr_read_b32 v15, a155500; GISEL-NEXT:    s_setpc_b64 s[30:31]5501  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1)5502  ret <16 x float> %result5503}5504 5505define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_1_0_a(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5506; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_1_0_a:5507; SDAG:       ; %bb.0:5508; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5509; SDAG-NEXT:    scratch_load_dword a15, off, s325510; SDAG-NEXT:    v_mov_b32_e32 v31, 05511; SDAG-NEXT:    v_mov_b32_e32 v32, 15512; SDAG-NEXT:    v_accvgpr_write_b32 a0, v165513; SDAG-NEXT:    v_accvgpr_write_b32 a1, v175514; SDAG-NEXT:    v_accvgpr_write_b32 a2, v185515; SDAG-NEXT:    v_accvgpr_write_b32 a3, v195516; SDAG-NEXT:    v_accvgpr_write_b32 a4, v205517; SDAG-NEXT:    v_accvgpr_write_b32 a5, v215518; SDAG-NEXT:    v_accvgpr_write_b32 a6, v225519; SDAG-NEXT:    v_accvgpr_write_b32 a7, v235520; SDAG-NEXT:    v_accvgpr_write_b32 a8, v245521; SDAG-NEXT:    v_accvgpr_write_b32 a9, v255522; SDAG-NEXT:    v_accvgpr_write_b32 a10, v265523; SDAG-NEXT:    v_accvgpr_write_b32 a11, v275524; SDAG-NEXT:    v_accvgpr_write_b32 a12, v285525; SDAG-NEXT:    v_accvgpr_write_b32 a13, v295526; SDAG-NEXT:    v_accvgpr_write_b32 a14, v305527; SDAG-NEXT:    s_waitcnt vmcnt(0)5528; SDAG-NEXT:    s_nop 05529; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0]5530; SDAG-NEXT:    s_nop 155531; SDAG-NEXT:    s_nop 35532; SDAG-NEXT:    v_accvgpr_read_b32 v0, a05533; SDAG-NEXT:    v_accvgpr_read_b32 v1, a15534; SDAG-NEXT:    v_accvgpr_read_b32 v2, a25535; SDAG-NEXT:    v_accvgpr_read_b32 v3, a35536; SDAG-NEXT:    v_accvgpr_read_b32 v4, a45537; SDAG-NEXT:    v_accvgpr_read_b32 v5, a55538; SDAG-NEXT:    v_accvgpr_read_b32 v6, a65539; SDAG-NEXT:    v_accvgpr_read_b32 v7, a75540; SDAG-NEXT:    v_accvgpr_read_b32 v8, a85541; SDAG-NEXT:    v_accvgpr_read_b32 v9, a95542; SDAG-NEXT:    v_accvgpr_read_b32 v10, a105543; SDAG-NEXT:    v_accvgpr_read_b32 v11, a115544; SDAG-NEXT:    v_accvgpr_read_b32 v12, a125545; SDAG-NEXT:    v_accvgpr_read_b32 v13, a135546; SDAG-NEXT:    v_accvgpr_read_b32 v14, a145547; SDAG-NEXT:    v_accvgpr_read_b32 v15, a155548; SDAG-NEXT:    s_setpc_b64 s[30:31]5549;5550; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_1_0_a:5551; GISEL:       ; %bb.0:5552; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5553; GISEL-NEXT:    scratch_load_dword a15, off, s325554; GISEL-NEXT:    v_mov_b32_e32 v31, 15555; GISEL-NEXT:    v_mov_b32_e32 v32, 05556; GISEL-NEXT:    v_accvgpr_write_b32 a0, v165557; GISEL-NEXT:    v_accvgpr_write_b32 a1, v175558; GISEL-NEXT:    v_accvgpr_write_b32 a2, v185559; GISEL-NEXT:    v_accvgpr_write_b32 a3, v195560; GISEL-NEXT:    v_accvgpr_write_b32 a4, v205561; GISEL-NEXT:    v_accvgpr_write_b32 a5, v215562; GISEL-NEXT:    v_accvgpr_write_b32 a6, v225563; GISEL-NEXT:    v_accvgpr_write_b32 a7, v235564; GISEL-NEXT:    v_accvgpr_write_b32 a8, v245565; GISEL-NEXT:    v_accvgpr_write_b32 a9, v255566; GISEL-NEXT:    v_accvgpr_write_b32 a10, v265567; GISEL-NEXT:    v_accvgpr_write_b32 a11, v275568; GISEL-NEXT:    v_accvgpr_write_b32 a12, v285569; GISEL-NEXT:    v_accvgpr_write_b32 a13, v295570; GISEL-NEXT:    v_accvgpr_write_b32 a14, v305571; GISEL-NEXT:    s_waitcnt vmcnt(0)5572; GISEL-NEXT:    s_nop 05573; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0]5574; GISEL-NEXT:    s_nop 155575; GISEL-NEXT:    s_nop 35576; GISEL-NEXT:    v_accvgpr_read_b32 v0, a05577; GISEL-NEXT:    v_accvgpr_read_b32 v1, a15578; GISEL-NEXT:    v_accvgpr_read_b32 v2, a25579; GISEL-NEXT:    v_accvgpr_read_b32 v3, a35580; GISEL-NEXT:    v_accvgpr_read_b32 v4, a45581; GISEL-NEXT:    v_accvgpr_read_b32 v5, a55582; GISEL-NEXT:    v_accvgpr_read_b32 v6, a65583; GISEL-NEXT:    v_accvgpr_read_b32 v7, a75584; GISEL-NEXT:    v_accvgpr_read_b32 v8, a85585; GISEL-NEXT:    v_accvgpr_read_b32 v9, a95586; GISEL-NEXT:    v_accvgpr_read_b32 v10, a105587; GISEL-NEXT:    v_accvgpr_read_b32 v11, a115588; GISEL-NEXT:    v_accvgpr_read_b32 v12, a125589; GISEL-NEXT:    v_accvgpr_read_b32 v13, a135590; GISEL-NEXT:    v_accvgpr_read_b32 v14, a145591; GISEL-NEXT:    v_accvgpr_read_b32 v15, a155592; GISEL-NEXT:    s_setpc_b64 s[30:31]5593  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0)5594  ret <16 x float> %result5595}5596 5597; --------------------------------------------------------------------5598; Incorrect signature for format cases (IR vector too large)5599; --------------------------------------------------------------------5600 5601define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5602; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6:5603; SDAG:       ; %bb.0:5604; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5605; SDAG-NEXT:    scratch_load_dword a15, off, s325606; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:85607; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:45608; SDAG-NEXT:    v_accvgpr_write_b32 a0, v165609; SDAG-NEXT:    v_accvgpr_write_b32 a1, v175610; SDAG-NEXT:    v_accvgpr_write_b32 a2, v185611; SDAG-NEXT:    v_accvgpr_write_b32 a3, v195612; SDAG-NEXT:    v_accvgpr_write_b32 a4, v205613; SDAG-NEXT:    v_accvgpr_write_b32 a5, v215614; SDAG-NEXT:    v_accvgpr_write_b32 a6, v225615; SDAG-NEXT:    v_accvgpr_write_b32 a7, v235616; SDAG-NEXT:    v_accvgpr_write_b32 a8, v245617; SDAG-NEXT:    v_accvgpr_write_b32 a9, v255618; SDAG-NEXT:    v_accvgpr_write_b32 a10, v265619; SDAG-NEXT:    v_accvgpr_write_b32 a11, v275620; SDAG-NEXT:    v_accvgpr_write_b32 a12, v285621; SDAG-NEXT:    v_accvgpr_write_b32 a13, v295622; SDAG-NEXT:    v_accvgpr_write_b32 a14, v305623; SDAG-NEXT:    s_waitcnt vmcnt(0)5624; SDAG-NEXT:    s_nop 05625; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] blgp:25626; SDAG-NEXT:    s_nop 155627; SDAG-NEXT:    s_nop 35628; SDAG-NEXT:    v_accvgpr_read_b32 v0, a05629; SDAG-NEXT:    v_accvgpr_read_b32 v1, a15630; SDAG-NEXT:    v_accvgpr_read_b32 v2, a25631; SDAG-NEXT:    v_accvgpr_read_b32 v3, a35632; SDAG-NEXT:    v_accvgpr_read_b32 v4, a45633; SDAG-NEXT:    v_accvgpr_read_b32 v5, a55634; SDAG-NEXT:    v_accvgpr_read_b32 v6, a65635; SDAG-NEXT:    v_accvgpr_read_b32 v7, a75636; SDAG-NEXT:    v_accvgpr_read_b32 v8, a85637; SDAG-NEXT:    v_accvgpr_read_b32 v9, a95638; SDAG-NEXT:    v_accvgpr_read_b32 v10, a105639; SDAG-NEXT:    v_accvgpr_read_b32 v11, a115640; SDAG-NEXT:    v_accvgpr_read_b32 v12, a125641; SDAG-NEXT:    v_accvgpr_read_b32 v13, a135642; SDAG-NEXT:    v_accvgpr_read_b32 v14, a145643; SDAG-NEXT:    v_accvgpr_read_b32 v15, a155644; SDAG-NEXT:    s_setpc_b64 s[30:31]5645;5646; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6:5647; GISEL:       ; %bb.0:5648; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5649; GISEL-NEXT:    scratch_load_dword a15, off, s325650; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:45651; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:85652; GISEL-NEXT:    v_accvgpr_write_b32 a0, v165653; GISEL-NEXT:    v_accvgpr_write_b32 a1, v175654; GISEL-NEXT:    v_accvgpr_write_b32 a2, v185655; GISEL-NEXT:    v_accvgpr_write_b32 a3, v195656; GISEL-NEXT:    v_accvgpr_write_b32 a4, v205657; GISEL-NEXT:    v_accvgpr_write_b32 a5, v215658; GISEL-NEXT:    v_accvgpr_write_b32 a6, v225659; GISEL-NEXT:    v_accvgpr_write_b32 a7, v235660; GISEL-NEXT:    v_accvgpr_write_b32 a8, v245661; GISEL-NEXT:    v_accvgpr_write_b32 a9, v255662; GISEL-NEXT:    v_accvgpr_write_b32 a10, v265663; GISEL-NEXT:    v_accvgpr_write_b32 a11, v275664; GISEL-NEXT:    v_accvgpr_write_b32 a12, v285665; GISEL-NEXT:    v_accvgpr_write_b32 a13, v295666; GISEL-NEXT:    v_accvgpr_write_b32 a14, v305667; GISEL-NEXT:    s_waitcnt vmcnt(0)5668; GISEL-NEXT:    s_nop 05669; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] blgp:25670; GISEL-NEXT:    s_nop 155671; GISEL-NEXT:    s_nop 35672; GISEL-NEXT:    v_accvgpr_read_b32 v0, a05673; GISEL-NEXT:    v_accvgpr_read_b32 v1, a15674; GISEL-NEXT:    v_accvgpr_read_b32 v2, a25675; GISEL-NEXT:    v_accvgpr_read_b32 v3, a35676; GISEL-NEXT:    v_accvgpr_read_b32 v4, a45677; GISEL-NEXT:    v_accvgpr_read_b32 v5, a55678; GISEL-NEXT:    v_accvgpr_read_b32 v6, a65679; GISEL-NEXT:    v_accvgpr_read_b32 v7, a75680; GISEL-NEXT:    v_accvgpr_read_b32 v8, a85681; GISEL-NEXT:    v_accvgpr_read_b32 v9, a95682; GISEL-NEXT:    v_accvgpr_read_b32 v10, a105683; GISEL-NEXT:    v_accvgpr_read_b32 v11, a115684; GISEL-NEXT:    v_accvgpr_read_b32 v12, a125685; GISEL-NEXT:    v_accvgpr_read_b32 v13, a135686; GISEL-NEXT:    v_accvgpr_read_b32 v14, a145687; GISEL-NEXT:    v_accvgpr_read_b32 v15, a155688; GISEL-NEXT:    s_setpc_b64 s[30:31]5689  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,5690                                                                                      i32 0, ; cbsz5691                                                                                      i32 2, ; blgp5692                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)5693  ret <16 x float> %result5694}5695 5696define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5697; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8:5698; SDAG:       ; %bb.0:5699; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5700; SDAG-NEXT:    scratch_load_dword a15, off, s325701; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:85702; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:45703; SDAG-NEXT:    v_accvgpr_write_b32 a0, v165704; SDAG-NEXT:    v_accvgpr_write_b32 a1, v175705; SDAG-NEXT:    v_accvgpr_write_b32 a2, v185706; SDAG-NEXT:    v_accvgpr_write_b32 a3, v195707; SDAG-NEXT:    v_accvgpr_write_b32 a4, v205708; SDAG-NEXT:    v_accvgpr_write_b32 a5, v215709; SDAG-NEXT:    v_accvgpr_write_b32 a6, v225710; SDAG-NEXT:    v_accvgpr_write_b32 a7, v235711; SDAG-NEXT:    v_accvgpr_write_b32 a8, v245712; SDAG-NEXT:    v_accvgpr_write_b32 a9, v255713; SDAG-NEXT:    v_accvgpr_write_b32 a10, v265714; SDAG-NEXT:    v_accvgpr_write_b32 a11, v275715; SDAG-NEXT:    v_accvgpr_write_b32 a12, v285716; SDAG-NEXT:    v_accvgpr_write_b32 a13, v295717; SDAG-NEXT:    v_accvgpr_write_b32 a14, v305718; SDAG-NEXT:    s_waitcnt vmcnt(0)5719; SDAG-NEXT:    s_nop 05720; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:25721; SDAG-NEXT:    s_nop 155722; SDAG-NEXT:    s_nop 35723; SDAG-NEXT:    v_accvgpr_read_b32 v0, a05724; SDAG-NEXT:    v_accvgpr_read_b32 v1, a15725; SDAG-NEXT:    v_accvgpr_read_b32 v2, a25726; SDAG-NEXT:    v_accvgpr_read_b32 v3, a35727; SDAG-NEXT:    v_accvgpr_read_b32 v4, a45728; SDAG-NEXT:    v_accvgpr_read_b32 v5, a55729; SDAG-NEXT:    v_accvgpr_read_b32 v6, a65730; SDAG-NEXT:    v_accvgpr_read_b32 v7, a75731; SDAG-NEXT:    v_accvgpr_read_b32 v8, a85732; SDAG-NEXT:    v_accvgpr_read_b32 v9, a95733; SDAG-NEXT:    v_accvgpr_read_b32 v10, a105734; SDAG-NEXT:    v_accvgpr_read_b32 v11, a115735; SDAG-NEXT:    v_accvgpr_read_b32 v12, a125736; SDAG-NEXT:    v_accvgpr_read_b32 v13, a135737; SDAG-NEXT:    v_accvgpr_read_b32 v14, a145738; SDAG-NEXT:    v_accvgpr_read_b32 v15, a155739; SDAG-NEXT:    s_setpc_b64 s[30:31]5740;5741; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8:5742; GISEL:       ; %bb.0:5743; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5744; GISEL-NEXT:    scratch_load_dword a15, off, s325745; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:45746; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:85747; GISEL-NEXT:    v_accvgpr_write_b32 a0, v165748; GISEL-NEXT:    v_accvgpr_write_b32 a1, v175749; GISEL-NEXT:    v_accvgpr_write_b32 a2, v185750; GISEL-NEXT:    v_accvgpr_write_b32 a3, v195751; GISEL-NEXT:    v_accvgpr_write_b32 a4, v205752; GISEL-NEXT:    v_accvgpr_write_b32 a5, v215753; GISEL-NEXT:    v_accvgpr_write_b32 a6, v225754; GISEL-NEXT:    v_accvgpr_write_b32 a7, v235755; GISEL-NEXT:    v_accvgpr_write_b32 a8, v245756; GISEL-NEXT:    v_accvgpr_write_b32 a9, v255757; GISEL-NEXT:    v_accvgpr_write_b32 a10, v265758; GISEL-NEXT:    v_accvgpr_write_b32 a11, v275759; GISEL-NEXT:    v_accvgpr_write_b32 a12, v285760; GISEL-NEXT:    v_accvgpr_write_b32 a13, v295761; GISEL-NEXT:    v_accvgpr_write_b32 a14, v305762; GISEL-NEXT:    s_waitcnt vmcnt(0)5763; GISEL-NEXT:    s_nop 05764; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:25765; GISEL-NEXT:    s_nop 155766; GISEL-NEXT:    s_nop 35767; GISEL-NEXT:    v_accvgpr_read_b32 v0, a05768; GISEL-NEXT:    v_accvgpr_read_b32 v1, a15769; GISEL-NEXT:    v_accvgpr_read_b32 v2, a25770; GISEL-NEXT:    v_accvgpr_read_b32 v3, a35771; GISEL-NEXT:    v_accvgpr_read_b32 v4, a45772; GISEL-NEXT:    v_accvgpr_read_b32 v5, a55773; GISEL-NEXT:    v_accvgpr_read_b32 v6, a65774; GISEL-NEXT:    v_accvgpr_read_b32 v7, a75775; GISEL-NEXT:    v_accvgpr_read_b32 v8, a85776; GISEL-NEXT:    v_accvgpr_read_b32 v9, a95777; GISEL-NEXT:    v_accvgpr_read_b32 v10, a105778; GISEL-NEXT:    v_accvgpr_read_b32 v11, a115779; GISEL-NEXT:    v_accvgpr_read_b32 v12, a125780; GISEL-NEXT:    v_accvgpr_read_b32 v13, a135781; GISEL-NEXT:    v_accvgpr_read_b32 v14, a145782; GISEL-NEXT:    v_accvgpr_read_b32 v15, a155783; GISEL-NEXT:    s_setpc_b64 s[30:31]5784  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,5785                                                                                      i32 2, ; cbsz5786                                                                                      i32 0, ; blgp5787                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)5788  ret <16 x float> %result5789}5790 5791define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5792; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6:5793; SDAG:       ; %bb.0:5794; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5795; SDAG-NEXT:    scratch_load_dword a15, off, s325796; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:85797; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:45798; SDAG-NEXT:    v_accvgpr_write_b32 a0, v165799; SDAG-NEXT:    v_accvgpr_write_b32 a1, v175800; SDAG-NEXT:    v_accvgpr_write_b32 a2, v185801; SDAG-NEXT:    v_accvgpr_write_b32 a3, v195802; SDAG-NEXT:    v_accvgpr_write_b32 a4, v205803; SDAG-NEXT:    v_accvgpr_write_b32 a5, v215804; SDAG-NEXT:    v_accvgpr_write_b32 a6, v225805; SDAG-NEXT:    v_accvgpr_write_b32 a7, v235806; SDAG-NEXT:    v_accvgpr_write_b32 a8, v245807; SDAG-NEXT:    v_accvgpr_write_b32 a9, v255808; SDAG-NEXT:    v_accvgpr_write_b32 a10, v265809; SDAG-NEXT:    v_accvgpr_write_b32 a11, v275810; SDAG-NEXT:    v_accvgpr_write_b32 a12, v285811; SDAG-NEXT:    v_accvgpr_write_b32 a13, v295812; SDAG-NEXT:    v_accvgpr_write_b32 a14, v305813; SDAG-NEXT:    s_waitcnt vmcnt(0)5814; SDAG-NEXT:    s_nop 05815; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:2 blgp:25816; SDAG-NEXT:    s_nop 115817; SDAG-NEXT:    v_accvgpr_read_b32 v0, a05818; SDAG-NEXT:    v_accvgpr_read_b32 v1, a15819; SDAG-NEXT:    v_accvgpr_read_b32 v2, a25820; SDAG-NEXT:    v_accvgpr_read_b32 v3, a35821; SDAG-NEXT:    v_accvgpr_read_b32 v4, a45822; SDAG-NEXT:    v_accvgpr_read_b32 v5, a55823; SDAG-NEXT:    v_accvgpr_read_b32 v6, a65824; SDAG-NEXT:    v_accvgpr_read_b32 v7, a75825; SDAG-NEXT:    v_accvgpr_read_b32 v8, a85826; SDAG-NEXT:    v_accvgpr_read_b32 v9, a95827; SDAG-NEXT:    v_accvgpr_read_b32 v10, a105828; SDAG-NEXT:    v_accvgpr_read_b32 v11, a115829; SDAG-NEXT:    v_accvgpr_read_b32 v12, a125830; SDAG-NEXT:    v_accvgpr_read_b32 v13, a135831; SDAG-NEXT:    v_accvgpr_read_b32 v14, a145832; SDAG-NEXT:    v_accvgpr_read_b32 v15, a155833; SDAG-NEXT:    s_setpc_b64 s[30:31]5834;5835; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6:5836; GISEL:       ; %bb.0:5837; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5838; GISEL-NEXT:    scratch_load_dword a15, off, s325839; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:45840; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:85841; GISEL-NEXT:    v_accvgpr_write_b32 a0, v165842; GISEL-NEXT:    v_accvgpr_write_b32 a1, v175843; GISEL-NEXT:    v_accvgpr_write_b32 a2, v185844; GISEL-NEXT:    v_accvgpr_write_b32 a3, v195845; GISEL-NEXT:    v_accvgpr_write_b32 a4, v205846; GISEL-NEXT:    v_accvgpr_write_b32 a5, v215847; GISEL-NEXT:    v_accvgpr_write_b32 a6, v225848; GISEL-NEXT:    v_accvgpr_write_b32 a7, v235849; GISEL-NEXT:    v_accvgpr_write_b32 a8, v245850; GISEL-NEXT:    v_accvgpr_write_b32 a9, v255851; GISEL-NEXT:    v_accvgpr_write_b32 a10, v265852; GISEL-NEXT:    v_accvgpr_write_b32 a11, v275853; GISEL-NEXT:    v_accvgpr_write_b32 a12, v285854; GISEL-NEXT:    v_accvgpr_write_b32 a13, v295855; GISEL-NEXT:    v_accvgpr_write_b32 a14, v305856; GISEL-NEXT:    s_waitcnt vmcnt(0)5857; GISEL-NEXT:    s_nop 05858; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:2 blgp:25859; GISEL-NEXT:    s_nop 115860; GISEL-NEXT:    v_accvgpr_read_b32 v0, a05861; GISEL-NEXT:    v_accvgpr_read_b32 v1, a15862; GISEL-NEXT:    v_accvgpr_read_b32 v2, a25863; GISEL-NEXT:    v_accvgpr_read_b32 v3, a35864; GISEL-NEXT:    v_accvgpr_read_b32 v4, a45865; GISEL-NEXT:    v_accvgpr_read_b32 v5, a55866; GISEL-NEXT:    v_accvgpr_read_b32 v6, a65867; GISEL-NEXT:    v_accvgpr_read_b32 v7, a75868; GISEL-NEXT:    v_accvgpr_read_b32 v8, a85869; GISEL-NEXT:    v_accvgpr_read_b32 v9, a95870; GISEL-NEXT:    v_accvgpr_read_b32 v10, a105871; GISEL-NEXT:    v_accvgpr_read_b32 v11, a115872; GISEL-NEXT:    v_accvgpr_read_b32 v12, a125873; GISEL-NEXT:    v_accvgpr_read_b32 v13, a135874; GISEL-NEXT:    v_accvgpr_read_b32 v14, a145875; GISEL-NEXT:    v_accvgpr_read_b32 v15, a155876; GISEL-NEXT:    s_setpc_b64 s[30:31]5877  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,5878                                                                                      i32 2, ; cbsz5879                                                                                      i32 2, ; blgp5880                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)5881  ret <16 x float> %result5882}5883 5884define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {5885; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale:5886; GCN:       ; %bb.0:5887; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5888; GCN-NEXT:    scratch_load_dword a15, off, s325889; GCN-NEXT:    v_accvgpr_write_b32 a0, v165890; GCN-NEXT:    v_accvgpr_write_b32 a1, v175891; GCN-NEXT:    v_accvgpr_write_b32 a2, v185892; GCN-NEXT:    v_accvgpr_write_b32 a3, v195893; GCN-NEXT:    v_accvgpr_write_b32 a4, v205894; GCN-NEXT:    v_accvgpr_write_b32 a5, v215895; GCN-NEXT:    v_accvgpr_write_b32 a6, v225896; GCN-NEXT:    v_accvgpr_write_b32 a7, v235897; GCN-NEXT:    v_accvgpr_write_b32 a8, v245898; GCN-NEXT:    v_accvgpr_write_b32 a9, v255899; GCN-NEXT:    v_accvgpr_write_b32 a10, v265900; GCN-NEXT:    v_accvgpr_write_b32 a11, v275901; GCN-NEXT:    v_accvgpr_write_b32 a12, v285902; GCN-NEXT:    v_accvgpr_write_b32 a13, v295903; GCN-NEXT:    v_accvgpr_write_b32 a14, v305904; GCN-NEXT:    s_waitcnt vmcnt(0)5905; GCN-NEXT:    s_nop 05906; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:2 blgp:25907; GCN-NEXT:    s_nop 115908; GCN-NEXT:    v_accvgpr_read_b32 v0, a05909; GCN-NEXT:    v_accvgpr_read_b32 v1, a15910; GCN-NEXT:    v_accvgpr_read_b32 v2, a25911; GCN-NEXT:    v_accvgpr_read_b32 v3, a35912; GCN-NEXT:    v_accvgpr_read_b32 v4, a45913; GCN-NEXT:    v_accvgpr_read_b32 v5, a55914; GCN-NEXT:    v_accvgpr_read_b32 v6, a65915; GCN-NEXT:    v_accvgpr_read_b32 v7, a75916; GCN-NEXT:    v_accvgpr_read_b32 v8, a85917; GCN-NEXT:    v_accvgpr_read_b32 v9, a95918; GCN-NEXT:    v_accvgpr_read_b32 v10, a105919; GCN-NEXT:    v_accvgpr_read_b32 v11, a115920; GCN-NEXT:    v_accvgpr_read_b32 v12, a125921; GCN-NEXT:    v_accvgpr_read_b32 v13, a135922; GCN-NEXT:    v_accvgpr_read_b32 v14, a145923; GCN-NEXT:    v_accvgpr_read_b32 v15, a155924; GCN-NEXT:    s_setpc_b64 s[30:31]5925  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,5926                                                                                      i32 2, ; cbsz5927                                                                                      i32 2, ; blgp5928                                                                                      i32 0, i32 0, i32 0, i32 0)5929  ret <16 x float> %result5930}5931 5932define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {5933; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4:5934; SDAG:       ; %bb.0:5935; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5936; SDAG-NEXT:    scratch_load_dword a15, off, s325937; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:85938; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:45939; SDAG-NEXT:    v_accvgpr_write_b32 a0, v165940; SDAG-NEXT:    v_accvgpr_write_b32 a1, v175941; SDAG-NEXT:    v_accvgpr_write_b32 a2, v185942; SDAG-NEXT:    v_accvgpr_write_b32 a3, v195943; SDAG-NEXT:    v_accvgpr_write_b32 a4, v205944; SDAG-NEXT:    v_accvgpr_write_b32 a5, v215945; SDAG-NEXT:    v_accvgpr_write_b32 a6, v225946; SDAG-NEXT:    v_accvgpr_write_b32 a7, v235947; SDAG-NEXT:    v_accvgpr_write_b32 a8, v245948; SDAG-NEXT:    v_accvgpr_write_b32 a9, v255949; SDAG-NEXT:    v_accvgpr_write_b32 a10, v265950; SDAG-NEXT:    v_accvgpr_write_b32 a11, v275951; SDAG-NEXT:    v_accvgpr_write_b32 a12, v285952; SDAG-NEXT:    v_accvgpr_write_b32 a13, v295953; SDAG-NEXT:    v_accvgpr_write_b32 a14, v305954; SDAG-NEXT:    s_waitcnt vmcnt(0)5955; SDAG-NEXT:    s_nop 05956; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] blgp:45957; SDAG-NEXT:    s_nop 155958; SDAG-NEXT:    s_nop 35959; SDAG-NEXT:    v_accvgpr_read_b32 v0, a05960; SDAG-NEXT:    v_accvgpr_read_b32 v1, a15961; SDAG-NEXT:    v_accvgpr_read_b32 v2, a25962; SDAG-NEXT:    v_accvgpr_read_b32 v3, a35963; SDAG-NEXT:    v_accvgpr_read_b32 v4, a45964; SDAG-NEXT:    v_accvgpr_read_b32 v5, a55965; SDAG-NEXT:    v_accvgpr_read_b32 v6, a65966; SDAG-NEXT:    v_accvgpr_read_b32 v7, a75967; SDAG-NEXT:    v_accvgpr_read_b32 v8, a85968; SDAG-NEXT:    v_accvgpr_read_b32 v9, a95969; SDAG-NEXT:    v_accvgpr_read_b32 v10, a105970; SDAG-NEXT:    v_accvgpr_read_b32 v11, a115971; SDAG-NEXT:    v_accvgpr_read_b32 v12, a125972; SDAG-NEXT:    v_accvgpr_read_b32 v13, a135973; SDAG-NEXT:    v_accvgpr_read_b32 v14, a145974; SDAG-NEXT:    v_accvgpr_read_b32 v15, a155975; SDAG-NEXT:    s_setpc_b64 s[30:31]5976;5977; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4:5978; GISEL:       ; %bb.0:5979; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)5980; GISEL-NEXT:    scratch_load_dword a15, off, s325981; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:45982; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:85983; GISEL-NEXT:    v_accvgpr_write_b32 a0, v165984; GISEL-NEXT:    v_accvgpr_write_b32 a1, v175985; GISEL-NEXT:    v_accvgpr_write_b32 a2, v185986; GISEL-NEXT:    v_accvgpr_write_b32 a3, v195987; GISEL-NEXT:    v_accvgpr_write_b32 a4, v205988; GISEL-NEXT:    v_accvgpr_write_b32 a5, v215989; GISEL-NEXT:    v_accvgpr_write_b32 a6, v225990; GISEL-NEXT:    v_accvgpr_write_b32 a7, v235991; GISEL-NEXT:    v_accvgpr_write_b32 a8, v245992; GISEL-NEXT:    v_accvgpr_write_b32 a9, v255993; GISEL-NEXT:    v_accvgpr_write_b32 a10, v265994; GISEL-NEXT:    v_accvgpr_write_b32 a11, v275995; GISEL-NEXT:    v_accvgpr_write_b32 a12, v285996; GISEL-NEXT:    v_accvgpr_write_b32 a13, v295997; GISEL-NEXT:    v_accvgpr_write_b32 a14, v305998; GISEL-NEXT:    s_waitcnt vmcnt(0)5999; GISEL-NEXT:    s_nop 06000; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] blgp:46001; GISEL-NEXT:    s_nop 156002; GISEL-NEXT:    s_nop 36003; GISEL-NEXT:    v_accvgpr_read_b32 v0, a06004; GISEL-NEXT:    v_accvgpr_read_b32 v1, a16005; GISEL-NEXT:    v_accvgpr_read_b32 v2, a26006; GISEL-NEXT:    v_accvgpr_read_b32 v3, a36007; GISEL-NEXT:    v_accvgpr_read_b32 v4, a46008; GISEL-NEXT:    v_accvgpr_read_b32 v5, a56009; GISEL-NEXT:    v_accvgpr_read_b32 v6, a66010; GISEL-NEXT:    v_accvgpr_read_b32 v7, a76011; GISEL-NEXT:    v_accvgpr_read_b32 v8, a86012; GISEL-NEXT:    v_accvgpr_read_b32 v9, a96013; GISEL-NEXT:    v_accvgpr_read_b32 v10, a106014; GISEL-NEXT:    v_accvgpr_read_b32 v11, a116015; GISEL-NEXT:    v_accvgpr_read_b32 v12, a126016; GISEL-NEXT:    v_accvgpr_read_b32 v13, a136017; GISEL-NEXT:    v_accvgpr_read_b32 v14, a146018; GISEL-NEXT:    v_accvgpr_read_b32 v15, a156019; GISEL-NEXT:    s_setpc_b64 s[30:31]6020  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,6021                                                                                      i32 0, ; cbsz6022                                                                                      i32 4, ; blgp6023                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)6024  ret <16 x float> %result6025}6026 6027define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {6028; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8:6029; SDAG:       ; %bb.0:6030; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6031; SDAG-NEXT:    scratch_load_dword a15, off, s326032; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:86033; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:46034; SDAG-NEXT:    v_accvgpr_write_b32 a0, v166035; SDAG-NEXT:    v_accvgpr_write_b32 a1, v176036; SDAG-NEXT:    v_accvgpr_write_b32 a2, v186037; SDAG-NEXT:    v_accvgpr_write_b32 a3, v196038; SDAG-NEXT:    v_accvgpr_write_b32 a4, v206039; SDAG-NEXT:    v_accvgpr_write_b32 a5, v216040; SDAG-NEXT:    v_accvgpr_write_b32 a6, v226041; SDAG-NEXT:    v_accvgpr_write_b32 a7, v236042; SDAG-NEXT:    v_accvgpr_write_b32 a8, v246043; SDAG-NEXT:    v_accvgpr_write_b32 a9, v256044; SDAG-NEXT:    v_accvgpr_write_b32 a10, v266045; SDAG-NEXT:    v_accvgpr_write_b32 a11, v276046; SDAG-NEXT:    v_accvgpr_write_b32 a12, v286047; SDAG-NEXT:    v_accvgpr_write_b32 a13, v296048; SDAG-NEXT:    v_accvgpr_write_b32 a14, v306049; SDAG-NEXT:    s_waitcnt vmcnt(0)6050; SDAG-NEXT:    s_nop 06051; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:46052; SDAG-NEXT:    s_nop 156053; SDAG-NEXT:    s_nop 36054; SDAG-NEXT:    v_accvgpr_read_b32 v0, a06055; SDAG-NEXT:    v_accvgpr_read_b32 v1, a16056; SDAG-NEXT:    v_accvgpr_read_b32 v2, a26057; SDAG-NEXT:    v_accvgpr_read_b32 v3, a36058; SDAG-NEXT:    v_accvgpr_read_b32 v4, a46059; SDAG-NEXT:    v_accvgpr_read_b32 v5, a56060; SDAG-NEXT:    v_accvgpr_read_b32 v6, a66061; SDAG-NEXT:    v_accvgpr_read_b32 v7, a76062; SDAG-NEXT:    v_accvgpr_read_b32 v8, a86063; SDAG-NEXT:    v_accvgpr_read_b32 v9, a96064; SDAG-NEXT:    v_accvgpr_read_b32 v10, a106065; SDAG-NEXT:    v_accvgpr_read_b32 v11, a116066; SDAG-NEXT:    v_accvgpr_read_b32 v12, a126067; SDAG-NEXT:    v_accvgpr_read_b32 v13, a136068; SDAG-NEXT:    v_accvgpr_read_b32 v14, a146069; SDAG-NEXT:    v_accvgpr_read_b32 v15, a156070; SDAG-NEXT:    s_setpc_b64 s[30:31]6071;6072; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8:6073; GISEL:       ; %bb.0:6074; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6075; GISEL-NEXT:    scratch_load_dword a15, off, s326076; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:46077; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:86078; GISEL-NEXT:    v_accvgpr_write_b32 a0, v166079; GISEL-NEXT:    v_accvgpr_write_b32 a1, v176080; GISEL-NEXT:    v_accvgpr_write_b32 a2, v186081; GISEL-NEXT:    v_accvgpr_write_b32 a3, v196082; GISEL-NEXT:    v_accvgpr_write_b32 a4, v206083; GISEL-NEXT:    v_accvgpr_write_b32 a5, v216084; GISEL-NEXT:    v_accvgpr_write_b32 a6, v226085; GISEL-NEXT:    v_accvgpr_write_b32 a7, v236086; GISEL-NEXT:    v_accvgpr_write_b32 a8, v246087; GISEL-NEXT:    v_accvgpr_write_b32 a9, v256088; GISEL-NEXT:    v_accvgpr_write_b32 a10, v266089; GISEL-NEXT:    v_accvgpr_write_b32 a11, v276090; GISEL-NEXT:    v_accvgpr_write_b32 a12, v286091; GISEL-NEXT:    v_accvgpr_write_b32 a13, v296092; GISEL-NEXT:    v_accvgpr_write_b32 a14, v306093; GISEL-NEXT:    s_waitcnt vmcnt(0)6094; GISEL-NEXT:    s_nop 06095; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:46096; GISEL-NEXT:    s_nop 156097; GISEL-NEXT:    s_nop 36098; GISEL-NEXT:    v_accvgpr_read_b32 v0, a06099; GISEL-NEXT:    v_accvgpr_read_b32 v1, a16100; GISEL-NEXT:    v_accvgpr_read_b32 v2, a26101; GISEL-NEXT:    v_accvgpr_read_b32 v3, a36102; GISEL-NEXT:    v_accvgpr_read_b32 v4, a46103; GISEL-NEXT:    v_accvgpr_read_b32 v5, a56104; GISEL-NEXT:    v_accvgpr_read_b32 v6, a66105; GISEL-NEXT:    v_accvgpr_read_b32 v7, a76106; GISEL-NEXT:    v_accvgpr_read_b32 v8, a86107; GISEL-NEXT:    v_accvgpr_read_b32 v9, a96108; GISEL-NEXT:    v_accvgpr_read_b32 v10, a106109; GISEL-NEXT:    v_accvgpr_read_b32 v11, a116110; GISEL-NEXT:    v_accvgpr_read_b32 v12, a126111; GISEL-NEXT:    v_accvgpr_read_b32 v13, a136112; GISEL-NEXT:    v_accvgpr_read_b32 v14, a146113; GISEL-NEXT:    v_accvgpr_read_b32 v15, a156114; GISEL-NEXT:    s_setpc_b64 s[30:31]6115  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,6116                                                                                      i32 4, ; cbsz6117                                                                                      i32 0, ; blgp6118                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)6119  ret <16 x float> %result6120}6121 6122define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v6i32_fp4(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {6123; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v6i32_fp4:6124; GCN:       ; %bb.0:6125; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6126; GCN-NEXT:    scratch_load_dword v31, off, s326127; GCN-NEXT:    v_accvgpr_write_b32 a0, v146128; GCN-NEXT:    v_accvgpr_write_b32 a1, v156129; GCN-NEXT:    v_accvgpr_write_b32 a2, v166130; GCN-NEXT:    v_accvgpr_write_b32 a3, v176131; GCN-NEXT:    v_accvgpr_write_b32 a4, v186132; GCN-NEXT:    v_accvgpr_write_b32 a5, v196133; GCN-NEXT:    v_accvgpr_write_b32 a6, v206134; GCN-NEXT:    v_accvgpr_write_b32 a7, v216135; GCN-NEXT:    v_accvgpr_write_b32 a8, v226136; GCN-NEXT:    v_accvgpr_write_b32 a9, v236137; GCN-NEXT:    v_accvgpr_write_b32 a10, v246138; GCN-NEXT:    v_accvgpr_write_b32 a11, v256139; GCN-NEXT:    v_accvgpr_write_b32 a12, v266140; GCN-NEXT:    v_accvgpr_write_b32 a13, v276141; GCN-NEXT:    v_accvgpr_write_b32 a14, v286142; GCN-NEXT:    v_accvgpr_write_b32 a15, v296143; GCN-NEXT:    s_waitcnt vmcnt(0)6144; GCN-NEXT:    s_nop 06145; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] blgp:46146; GCN-NEXT:    s_nop 156147; GCN-NEXT:    s_nop 36148; GCN-NEXT:    v_accvgpr_read_b32 v0, a06149; GCN-NEXT:    v_accvgpr_read_b32 v1, a16150; GCN-NEXT:    v_accvgpr_read_b32 v2, a26151; GCN-NEXT:    v_accvgpr_read_b32 v3, a36152; GCN-NEXT:    v_accvgpr_read_b32 v4, a46153; GCN-NEXT:    v_accvgpr_read_b32 v5, a56154; GCN-NEXT:    v_accvgpr_read_b32 v6, a66155; GCN-NEXT:    v_accvgpr_read_b32 v7, a76156; GCN-NEXT:    v_accvgpr_read_b32 v8, a86157; GCN-NEXT:    v_accvgpr_read_b32 v9, a96158; GCN-NEXT:    v_accvgpr_read_b32 v10, a106159; GCN-NEXT:    v_accvgpr_read_b32 v11, a116160; GCN-NEXT:    v_accvgpr_read_b32 v12, a126161; GCN-NEXT:    v_accvgpr_read_b32 v13, a136162; GCN-NEXT:    v_accvgpr_read_b32 v14, a146163; GCN-NEXT:    v_accvgpr_read_b32 v15, a156164; GCN-NEXT:    s_setpc_b64 s[30:31]6165  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2,6166                                                                                      i32 0, ; cbsz6167                                                                                      i32 4, ; blgp6168                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)6169  ret <16 x float> %result6170}6171 6172define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v6i32_fp4__v8i32_fp8(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {6173; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v6i32_fp4__v8i32_fp8:6174; GCN:       ; %bb.0:6175; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6176; GCN-NEXT:    scratch_load_dword v31, off, s326177; GCN-NEXT:    v_accvgpr_write_b32 a0, v146178; GCN-NEXT:    v_accvgpr_write_b32 a1, v156179; GCN-NEXT:    v_accvgpr_write_b32 a2, v166180; GCN-NEXT:    v_accvgpr_write_b32 a3, v176181; GCN-NEXT:    v_accvgpr_write_b32 a4, v186182; GCN-NEXT:    v_accvgpr_write_b32 a5, v196183; GCN-NEXT:    v_accvgpr_write_b32 a6, v206184; GCN-NEXT:    v_accvgpr_write_b32 a7, v216185; GCN-NEXT:    v_accvgpr_write_b32 a8, v226186; GCN-NEXT:    v_accvgpr_write_b32 a9, v236187; GCN-NEXT:    v_accvgpr_write_b32 a10, v246188; GCN-NEXT:    v_accvgpr_write_b32 a11, v256189; GCN-NEXT:    v_accvgpr_write_b32 a12, v266190; GCN-NEXT:    v_accvgpr_write_b32 a13, v276191; GCN-NEXT:    v_accvgpr_write_b32 a14, v286192; GCN-NEXT:    v_accvgpr_write_b32 a15, v296193; GCN-NEXT:    s_waitcnt vmcnt(0)6194; GCN-NEXT:    s_nop 06195; GCN-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:46196; GCN-NEXT:    s_nop 156197; GCN-NEXT:    s_nop 36198; GCN-NEXT:    v_accvgpr_read_b32 v0, a06199; GCN-NEXT:    v_accvgpr_read_b32 v1, a16200; GCN-NEXT:    v_accvgpr_read_b32 v2, a26201; GCN-NEXT:    v_accvgpr_read_b32 v3, a36202; GCN-NEXT:    v_accvgpr_read_b32 v4, a46203; GCN-NEXT:    v_accvgpr_read_b32 v5, a56204; GCN-NEXT:    v_accvgpr_read_b32 v6, a66205; GCN-NEXT:    v_accvgpr_read_b32 v7, a76206; GCN-NEXT:    v_accvgpr_read_b32 v8, a86207; GCN-NEXT:    v_accvgpr_read_b32 v9, a96208; GCN-NEXT:    v_accvgpr_read_b32 v10, a106209; GCN-NEXT:    v_accvgpr_read_b32 v11, a116210; GCN-NEXT:    v_accvgpr_read_b32 v12, a126211; GCN-NEXT:    v_accvgpr_read_b32 v13, a136212; GCN-NEXT:    v_accvgpr_read_b32 v14, a146213; GCN-NEXT:    v_accvgpr_read_b32 v15, a156214; GCN-NEXT:    s_setpc_b64 s[30:31]6215  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,6216                                                                                      i32 4, ; cbsz6217                                                                                      i32 0, ; blgp6218                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)6219  ret <16 x float> %result6220}6221 6222define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) {6223; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4:6224; SDAG:       ; %bb.0:6225; SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6226; SDAG-NEXT:    scratch_load_dword a15, off, s326227; SDAG-NEXT:    scratch_load_dword v31, off, s32 offset:86228; SDAG-NEXT:    scratch_load_dword v32, off, s32 offset:46229; SDAG-NEXT:    v_accvgpr_write_b32 a0, v166230; SDAG-NEXT:    v_accvgpr_write_b32 a1, v176231; SDAG-NEXT:    v_accvgpr_write_b32 a2, v186232; SDAG-NEXT:    v_accvgpr_write_b32 a3, v196233; SDAG-NEXT:    v_accvgpr_write_b32 a4, v206234; SDAG-NEXT:    v_accvgpr_write_b32 a5, v216235; SDAG-NEXT:    v_accvgpr_write_b32 a6, v226236; SDAG-NEXT:    v_accvgpr_write_b32 a7, v236237; SDAG-NEXT:    v_accvgpr_write_b32 a8, v246238; SDAG-NEXT:    v_accvgpr_write_b32 a9, v256239; SDAG-NEXT:    v_accvgpr_write_b32 a10, v266240; SDAG-NEXT:    v_accvgpr_write_b32 a11, v276241; SDAG-NEXT:    v_accvgpr_write_b32 a12, v286242; SDAG-NEXT:    v_accvgpr_write_b32 a13, v296243; SDAG-NEXT:    v_accvgpr_write_b32 a14, v306244; SDAG-NEXT:    s_waitcnt vmcnt(0)6245; SDAG-NEXT:    s_nop 06246; SDAG-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:4 blgp:46247; SDAG-NEXT:    s_nop 116248; SDAG-NEXT:    v_accvgpr_read_b32 v0, a06249; SDAG-NEXT:    v_accvgpr_read_b32 v1, a16250; SDAG-NEXT:    v_accvgpr_read_b32 v2, a26251; SDAG-NEXT:    v_accvgpr_read_b32 v3, a36252; SDAG-NEXT:    v_accvgpr_read_b32 v4, a46253; SDAG-NEXT:    v_accvgpr_read_b32 v5, a56254; SDAG-NEXT:    v_accvgpr_read_b32 v6, a66255; SDAG-NEXT:    v_accvgpr_read_b32 v7, a76256; SDAG-NEXT:    v_accvgpr_read_b32 v8, a86257; SDAG-NEXT:    v_accvgpr_read_b32 v9, a96258; SDAG-NEXT:    v_accvgpr_read_b32 v10, a106259; SDAG-NEXT:    v_accvgpr_read_b32 v11, a116260; SDAG-NEXT:    v_accvgpr_read_b32 v12, a126261; SDAG-NEXT:    v_accvgpr_read_b32 v13, a136262; SDAG-NEXT:    v_accvgpr_read_b32 v14, a146263; SDAG-NEXT:    v_accvgpr_read_b32 v15, a156264; SDAG-NEXT:    s_setpc_b64 s[30:31]6265;6266; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4:6267; GISEL:       ; %bb.0:6268; GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6269; GISEL-NEXT:    scratch_load_dword a15, off, s326270; GISEL-NEXT:    scratch_load_dword v31, off, s32 offset:46271; GISEL-NEXT:    scratch_load_dword v32, off, s32 offset:86272; GISEL-NEXT:    v_accvgpr_write_b32 a0, v166273; GISEL-NEXT:    v_accvgpr_write_b32 a1, v176274; GISEL-NEXT:    v_accvgpr_write_b32 a2, v186275; GISEL-NEXT:    v_accvgpr_write_b32 a3, v196276; GISEL-NEXT:    v_accvgpr_write_b32 a4, v206277; GISEL-NEXT:    v_accvgpr_write_b32 a5, v216278; GISEL-NEXT:    v_accvgpr_write_b32 a6, v226279; GISEL-NEXT:    v_accvgpr_write_b32 a7, v236280; GISEL-NEXT:    v_accvgpr_write_b32 a8, v246281; GISEL-NEXT:    v_accvgpr_write_b32 a9, v256282; GISEL-NEXT:    v_accvgpr_write_b32 a10, v266283; GISEL-NEXT:    v_accvgpr_write_b32 a11, v276284; GISEL-NEXT:    v_accvgpr_write_b32 a12, v286285; GISEL-NEXT:    v_accvgpr_write_b32 a13, v296286; GISEL-NEXT:    v_accvgpr_write_b32 a14, v306287; GISEL-NEXT:    s_waitcnt vmcnt(0)6288; GISEL-NEXT:    s_nop 06289; GISEL-NEXT:    v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:4 blgp:46290; GISEL-NEXT:    s_nop 116291; GISEL-NEXT:    v_accvgpr_read_b32 v0, a06292; GISEL-NEXT:    v_accvgpr_read_b32 v1, a16293; GISEL-NEXT:    v_accvgpr_read_b32 v2, a26294; GISEL-NEXT:    v_accvgpr_read_b32 v3, a36295; GISEL-NEXT:    v_accvgpr_read_b32 v4, a46296; GISEL-NEXT:    v_accvgpr_read_b32 v5, a56297; GISEL-NEXT:    v_accvgpr_read_b32 v6, a66298; GISEL-NEXT:    v_accvgpr_read_b32 v7, a76299; GISEL-NEXT:    v_accvgpr_read_b32 v8, a86300; GISEL-NEXT:    v_accvgpr_read_b32 v9, a96301; GISEL-NEXT:    v_accvgpr_read_b32 v10, a106302; GISEL-NEXT:    v_accvgpr_read_b32 v11, a116303; GISEL-NEXT:    v_accvgpr_read_b32 v12, a126304; GISEL-NEXT:    v_accvgpr_read_b32 v13, a136305; GISEL-NEXT:    v_accvgpr_read_b32 v14, a146306; GISEL-NEXT:    v_accvgpr_read_b32 v15, a156307; GISEL-NEXT:    s_setpc_b64 s[30:31]6308  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,6309                                                                                      i32 4, ; cbsz6310                                                                                      i32 4, ; blgp6311                                                                                      i32 0, i32 %scale0, i32 0, i32 %scale1)6312  ret <16 x float> %result6313}6314 6315define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) {6316; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale:6317; GCN:       ; %bb.0:6318; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)6319; GCN-NEXT:    scratch_load_dword a15, off, s326320; GCN-NEXT:    v_accvgpr_write_b32 a0, v166321; GCN-NEXT:    v_accvgpr_write_b32 a1, v176322; GCN-NEXT:    v_accvgpr_write_b32 a2, v186323; GCN-NEXT:    v_accvgpr_write_b32 a3, v196324; GCN-NEXT:    v_accvgpr_write_b32 a4, v206325; GCN-NEXT:    v_accvgpr_write_b32 a5, v216326; GCN-NEXT:    v_accvgpr_write_b32 a6, v226327; GCN-NEXT:    v_accvgpr_write_b32 a7, v236328; GCN-NEXT:    v_accvgpr_write_b32 a8, v246329; GCN-NEXT:    v_accvgpr_write_b32 a9, v256330; GCN-NEXT:    v_accvgpr_write_b32 a10, v266331; GCN-NEXT:    v_accvgpr_write_b32 a11, v276332; GCN-NEXT:    v_accvgpr_write_b32 a12, v286333; GCN-NEXT:    v_accvgpr_write_b32 a13, v296334; GCN-NEXT:    v_accvgpr_write_b32 a14, v306335; GCN-NEXT:    s_waitcnt vmcnt(0)6336; GCN-NEXT:    s_nop 06337; GCN-NEXT:    v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:4 blgp:46338; GCN-NEXT:    s_nop 116339; GCN-NEXT:    v_accvgpr_read_b32 v0, a06340; GCN-NEXT:    v_accvgpr_read_b32 v1, a16341; GCN-NEXT:    v_accvgpr_read_b32 v2, a26342; GCN-NEXT:    v_accvgpr_read_b32 v3, a36343; GCN-NEXT:    v_accvgpr_read_b32 v4, a46344; GCN-NEXT:    v_accvgpr_read_b32 v5, a56345; GCN-NEXT:    v_accvgpr_read_b32 v6, a66346; GCN-NEXT:    v_accvgpr_read_b32 v7, a76347; GCN-NEXT:    v_accvgpr_read_b32 v8, a86348; GCN-NEXT:    v_accvgpr_read_b32 v9, a96349; GCN-NEXT:    v_accvgpr_read_b32 v10, a106350; GCN-NEXT:    v_accvgpr_read_b32 v11, a116351; GCN-NEXT:    v_accvgpr_read_b32 v12, a126352; GCN-NEXT:    v_accvgpr_read_b32 v13, a136353; GCN-NEXT:    v_accvgpr_read_b32 v14, a146354; GCN-NEXT:    v_accvgpr_read_b32 v15, a156355; GCN-NEXT:    s_setpc_b64 s[30:31]6356  %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2,6357                                                                                      i32 4, ; cbsz6358                                                                                      i32 4, ; blgp6359                                                                                      i32 0, i32 0, i32 0, i32 0)6360  ret <16 x float> %result6361}6362 6363declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26364declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32>, <6 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26365declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32>, <4 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26366declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32>, <6 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26367declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26368declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32>, <4 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26369declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26370declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32>, <4 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26371declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32>, <6 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #26372 6373attributes #0 = { "amdgpu-flat-work-group-size"="512,512" "amdgpu-agpr-alloc"="0,0" }6374attributes #1 = { "amdgpu-flat-work-group-size"="128,128" }6375attributes #2 = { convergent nocallback nofree nosync nounwind willreturn memory(none) }6376