Files
tinygrad/extra/gemm/gemm_mxfp4.py
qazalandGitHub a8c1e89500 fp4 asm gemm 6+ pflops (#17315)
* fp4 gemm

* better kernargs structure

* move to .s files

* work

* work

* p2

* style

* use .py

* move to dsl

* cleanup

* add MFMA_SCALE_X2_ENCODING

* cleanup mfma

* fma docs

* gemm_mxfp4

* more cleanup

* move

* move to cdna_asm_gemm

* change

* rm

* change

* mx
2026-07-31 14:25:23 +09:00

4125 lines
249 KiB
Python

# ruff: noqa: E501,F403,F405
from tinygrad.runtime.autogen.amd.cdna.ins import *
class Kernel:
def __init__(self): self.instructions, self.labels, self.pos = [], {}, 0
def label(self, name): self.labels[name] = self.pos
def emit(self, inst, target=None):
self.instructions.append(inst)
inst._target, inst._pos = target, self.pos
self.pos += inst.size()
def finalize(self):
for inst in self.instructions:
if inst._target is not None: inst.simm16 = (self.labels[inst._target] - inst._pos - inst.size()) // 4
return self.instructions
def v_mfma_fp4(dst, a, b, opsel, opsel_hi, scale_a, scale_b):
# select fp4 for both inputs, 0xD3AC is the load scale encoding and write to acc vgprs
return v_mfma_scale_f32_16x16x128_f8f6f4(dst, a, b, dst, 0, 0, opsel, opsel_hi, 4, 1, 1, 0, 4, 0xD3AC, scale_a.offset, scale_b.offset)
def build_kernel(M: int, N: int, K: int, tile_m: int, tile_n: int):
k = Kernel()
scale_k = K // 32
if (tile_m, tile_n) == (128, 512):
k.emit(s_and_b32(s[1], s[1], LIT, 65535))
k.emit(s_mov_b32(s[47], s[2]))
k.emit(s_mov_b32(s[48], s[3]))
k.emit(s_mov_b32(s[64], s[4]))
k.emit(s_load_dwordx2(s[4:5], s[0:1], s[0], 0, 0, 0, 0, 1))
k.emit(s_mov_b32(s[8], 0))
k.emit(s_mov_b32(s[9], 0))
k.emit(s_load_dwordx2(s[12:13], s[0:1], s[0], 8, 0, 0, 0, 1))
k.emit(s_load_dwordx2(s[16:17], s[0:1], s[0], 16, 0, 0, 0, 1))
k.emit(s_mov_b32(s[41], 1.0))
k.emit(s_mov_b32(s[42], 0))
k.emit(s_mov_b32(s[36], N))
k.emit(s_mov_b32(s[37], K))
k.emit(s_mov_b32(s[38], K))
k.emit(s_mov_b32(s[43], M))
k.emit(s_mov_b32(s[44], N))
k.emit(s_mov_b32(s[45], K))
k.emit(s_load_dwordx2(s[20:21], s[0:1], s[0], 24, 0, 0, 0, 1))
k.emit(s_load_dwordx2(s[24:25], s[0:1], s[0], 32, 0, 0, 0, 1))
k.emit(s_mov_b32(s[39], scale_k))
k.emit(s_mov_b32(s[40], scale_k))
k.emit(s_mov_b32(s[65], 0))
k.emit(v_lshrrev_b32_e32(v[1], 10))
k.emit(v_lshrrev_b32_e32(v[2], 10, v[1]))
k.emit(v_and_b32_e32(v[2], LIT, v[2], 1023))
k.emit(v_and_b32_e32(v[1], LIT, v[1], 1023))
k.emit(v_and_b32_e32(v[0], LIT, v[0], 1023))
k.emit(v_lshrrev_b32_e32(v[3], 6))
k.emit(v_and_b32_e32(v[0], 63))
k.emit(v_readfirstlane_b32_e32(v[46], v[3]))
k.emit(s_waitcnt(49279))
for i in range(2):
k.emit(s_mov_b32(s[6 + i * 8], -16))
k.emit(s_mov_b32(s[10 + i * 12], -16))
k.emit(s_mov_b32(s[18 + i * 8], -16))
for i in range(2):
k.emit(s_mov_b32(s[7 + i * 8], LIT, 131072))
k.emit(s_mov_b32(s[11 + i * 12], LIT, 131072))
k.emit(s_mov_b32(s[19 + i * 8], LIT, 131072))
for i in range(2):
k.emit(s_and_b32(s[5 + i * 8], s[5 + i * 8], LIT, 65535))
k.emit(s_and_b32(s[9 + i * 12], s[9 + i * 12], LIT, 65535))
k.emit(s_and_b32(s[17 + i * 8], s[17 + i * 8], LIT, 65535))
for i in range(2):
k.emit(s_or_b32(s[5 + i * 8], s[5 + i * 8], LIT, 262144))
k.emit(s_or_b32(s[9 + i * 12], s[9 + i * 12], LIT, 262144))
k.emit(s_or_b32(s[17 + i * 8], s[17 + i * 8], LIT, 262144))
k.emit(s_cmp_gt_i32(s[65], 0))
k.emit(s_cbranch_scc0(9), target='L0_0194')
k.emit(s_lshr_b32(s[66], s[45], s[65]))
k.emit(s_add_u32(s[66], s[66], LIT, 255))
k.emit(s_lshr_b32(s[66], s[66], 8))
k.emit(s_lshl_b32(s[66], s[66], 8))
k.emit(s_mul_i32(s[63], s[66], s[64]))
k.emit(s_sub_i32(s[62], s[45], s[63]))
k.emit(s_cmp_lt_i32(s[62], s[66]))
k.emit(s_cselect_b32(s[45], s[62], s[66]))
k.label('L0_0194')
k.emit(s_lshr_b32(s[37], s[37], 1))
k.emit(s_mul_i32(s[62], s[48], LIT, 128))
k.emit(s_mul_hi_u32(s[63], s[37], s[62]))
k.emit(s_add_u32(s[13], s[13], s[63]))
k.emit(s_mul_i32(s[63], s[37], s[62]))
k.emit(s_add_u32(s[12], s[12], s[63]))
k.emit(s_addc_u32(s[13], s[13], 0))
k.emit(s_sub_i32(s[63], s[43], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 128))
k.emit(s_cselect_b32(s[62], s[63], LIT, 128))
k.emit(s_mul_i32(s[63], s[37], s[62]))
k.emit(s_mov_b32(s[14], s[63]))
k.emit(s_mov_b32(s[15], LIT, 131072))
k.emit(s_cmp_gt_i32(s[65], 0))
k.emit(s_cbranch_scc0(5), target='L0_01F4')
k.emit(s_mul_i32(s[63], s[66], s[64]))
k.emit(s_lshr_b32(s[62], s[63], 1))
k.emit(s_add_u32(s[12], s[12], s[62]))
k.emit(s_addc_u32(s[13], s[13], 0))
k.emit(s_sub_u32(s[14], s[14], s[62]))
k.label('L0_01F4')
k.emit(v_lshrrev_b32_e32(v[4], 3))
k.emit(v_lshrrev_b32_e32(v[5], 2, v[4]))
k.emit(v_lshlrev_b32_e32(v[5], 4, v[5]))
k.emit(v_and_b32_e32(v[4], 3, v[4]))
k.emit(v_lshrrev_b32_e32(v[6], 1, v[4]))
k.emit(v_lshlrev_b32_e32(v[6], 2, v[6]))
k.emit(v_add_u32_e32(v[5], v[5], v[6]))
k.emit(v_and_b32_e32(v[4], 1, v[4]))
k.emit(v_add_u32_e32(v[5], v[5], v[4]))
k.emit(v_mul_lo_u32(v[212], s[37], v[5]))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_lshlrev_b32_e32(v[4], 4, v[4]))
k.emit(v_add_u32_e32(v[212], v[4], v[212]))
k.emit(s_lshr_b32(s[62], s[46], 1))
k.emit(s_mul_i32(s[62], s[62], 8))
k.emit(s_and_b32(s[63], s[46], 1))
k.emit(s_mul_i32(s[63], s[63], 2))
k.emit(s_add_u32(s[62], s[62], s[63]))
k.emit(s_mul_i32(s[62], s[37], s[62]))
k.emit(v_add_u32_e32(v[212], s[62], v[212]))
k.emit(s_mul_i32(s[62], s[37], 32))
k.emit(v_add_u32_e32(v[213], s[62], v[212]))
k.emit(v_add_u32_e32(v[214], s[62], v[213]))
k.emit(v_add_u32_e32(v[215], s[62], v[214]))
k.emit(s_mul_i32(s[67], LIT, s[46], 1056))
k.emit(s_add_u32(s[67], LIT, s[67], 2048))
k.emit(v_and_b32_e32(v[4], 15))
k.emit(v_lshrrev_b32_e32(v[5], 3, v[4]))
k.emit(v_mul_i32_i24_e32(v[5], 2, v[5]))
k.emit(v_and_b32_e32(v[4], 3))
k.emit(v_lshrrev_b32_e32(v[6], 1, v[4]))
k.emit(v_add_u32_e32(v[4], v[5], v[6]))
k.emit(v_mul_i32_i24_e32(v[216], LIT, v[4], 1056))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_lshrrev_b32_e32(v[5], 2, v[4]))
k.emit(v_mul_i32_i24_e32(v[5], LIT, v[5], 256))
k.emit(v_add_u32_e32(v[216], v[5], v[216]))
k.emit(v_and_b32_e32(v[4], 1))
k.emit(v_mul_i32_i24_e32(v[6], LIT, v[4], 128))
k.emit(v_add_u32_e32(v[216], v[6], v[216]))
k.emit(v_lshrrev_b32_e32(v[4], 4))
k.emit(v_mul_i32_i24_e32(v[4], 16, v[4]))
k.emit(v_add_u32_e32(v[216], v[4], v[216]))
k.emit(s_mov_b32(s[62], LIT, 2048))
k.emit(v_add_u32_e64(v[216], v[216], s[62]))
k.emit(v_add_u32_e32(v[217], LIT, v[216], 16896))
k.emit(s_mul_i32(s[62], s[48], LIT, 128))
k.emit(s_mul_hi_u32(s[63], s[39], s[62]))
k.emit(s_add_u32(s[21], s[21], s[63]))
k.emit(s_mul_i32(s[63], s[39], s[62]))
k.emit(s_add_u32(s[20], s[20], s[63]))
k.emit(s_addc_u32(s[21], s[21], 0))
k.emit(s_add_u32(s[63], s[43], 31))
k.emit(s_lshr_b32(s[63], s[63], 5))
k.emit(s_lshl_b32(s[63], s[63], 5))
k.emit(s_sub_i32(s[63], s[63], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 128))
k.emit(s_cselect_b32(s[62], s[63], LIT, 128))
k.emit(s_mul_i32(s[63], s[39], s[62]))
k.emit(s_mov_b32(s[22], s[63]))
k.emit(s_mov_b32(s[23], LIT, 131072))
k.emit(s_cmp_gt_i32(s[65], 0))
k.emit(s_cbranch_scc0(4), target='L0_0334')
k.emit(s_mul_i32(s[63], s[66], s[64]))
k.emit(s_add_u32(s[20], s[20], s[63]))
k.emit(s_addc_u32(s[21], s[21], 0))
k.emit(s_sub_u32(s[22], s[22], s[63]))
k.label('L0_0334')
k.emit(v_lshlrev_b32_e32(v[218], 2))
k.emit(s_mul_i32(s[63], s[46], 32))
k.emit(s_mul_i32(s[63], s[63], s[39]))
k.emit(v_add_u32_e32(v[218], s[63], v[218]))
k.emit(s_mul_i32(s[68], s[46], LIT, 256))
k.emit(s_add_i32(s[68], s[68], 0))
k.emit(v_lshlrev_b32_e32(v[219], 2))
k.emit(v_add_u32_e32(v[219], 0, v[219]))
k.emit(s_lshr_b32(s[38], s[38], 1))
k.emit(s_mul_i32(s[62], s[47], LIT, 512))
k.emit(s_mul_hi_u32(s[63], s[38], s[62]))
k.emit(s_add_u32(s[17], s[17], s[63]))
k.emit(s_mul_i32(s[63], s[38], s[62]))
k.emit(s_add_u32(s[16], s[16], s[63]))
k.emit(s_addc_u32(s[17], s[17], 0))
k.emit(s_sub_i32(s[63], s[44], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 512))
k.emit(s_cselect_b32(s[62], s[63], LIT, 512))
k.emit(s_mul_i32(s[63], s[38], s[62]))
k.emit(s_mov_b32(s[18], s[63]))
k.emit(s_mov_b32(s[19], LIT, 131072))
k.emit(s_cmp_gt_i32(s[65], 0))
k.emit(s_cbranch_scc0(6), target='L0_03BC')
k.emit(s_mul_i32(s[63], s[66], s[64]))
k.emit(s_lshr_b32(s[62], s[63], 1))
k.emit(s_mul_i32(s[62], s[62], 16))
k.emit(s_add_u32(s[16], s[16], s[62]))
k.emit(s_addc_u32(s[17], s[17], 0))
k.emit(s_sub_u32(s[18], s[18], s[62]))
k.label('L0_03BC')
k.emit(v_lshlrev_b32_e32(v[220], 4))
k.emit(s_mul_i32(s[63], s[46], LIT, 128))
k.emit(s_mul_i32(s[62], s[63], s[38]))
k.emit(v_add_u32_e32(v[220], s[62], v[220]))
k.emit(s_mul_i32(s[62], 16, s[38]))
k.emit(v_add_u32_e32(v[221], s[62], v[220]))
k.emit(v_add_u32_e32(v[222], s[62], v[221]))
k.emit(v_add_u32_e32(v[223], s[62], v[222]))
for i in range(4):
k.emit(v_add_u32_e32(v[224 + i * 1], LIT, v[220 + i * 1], 1024))
k.emit(s_mul_i32(s[62], 64, s[38]))
for i in range(8):
k.emit(v_add_u32_e32(v[228 + i * 1], s[62], v[220 + i * 1]))
k.emit(s_mul_i32(s[62], s[47], LIT, 512))
k.emit(s_mul_hi_u32(s[63], s[40], s[62]))
k.emit(s_add_u32(s[25], s[25], s[63]))
k.emit(s_mul_i32(s[63], s[40], s[62]))
k.emit(s_add_u32(s[24], s[24], s[63]))
k.emit(s_addc_u32(s[25], s[25], 0))
k.emit(s_sub_i32(s[63], s[44], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 512))
k.emit(s_cselect_b32(s[62], s[63], LIT, 512))
k.emit(s_mul_i32(s[63], s[40], s[62]))
k.emit(s_mov_b32(s[26], s[63]))
k.emit(s_mov_b32(s[27], LIT, 131072))
k.emit(s_cmp_gt_i32(s[65], 0))
k.emit(s_cbranch_scc0(4), target='L0_047C')
k.emit(s_mul_i32(s[63], s[66], s[64]))
k.emit(s_add_u32(s[24], s[24], s[63]))
k.emit(s_addc_u32(s[25], s[25], 0))
k.emit(s_sub_u32(s[26], s[26], s[63]))
k.label('L0_047C')
k.emit(v_lshlrev_b32_e32(v[236], 2))
k.emit(s_mul_i32(s[63], s[46], LIT, 128))
k.emit(s_mul_i32(s[63], s[63], s[40]))
k.emit(v_add_u32_e32(v[236], s[63], v[236]))
k.emit(s_mul_i32(s[62], 32, s[40]))
k.emit(v_add_u32_e32(v[237], s[62], v[236]))
k.emit(v_add_u32_e32(v[238], s[62], v[237]))
k.emit(v_add_u32_e32(v[239], s[62], v[238]))
k.emit(s_mov_b32(s[69], LIT, 128))
k.emit(s_mov_b32(s[70], LIT, 2048))
k.emit(s_mov_b32(s[71], LIT, 256))
k.emit(s_mov_b32(s[72], LIT, 256))
k.emit(s_mov_b32(s[60], 0))
k.emit(s_mov_b32(s[61], s[45]))
k.emit(s_add_u32(NULL, 0, s[67]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[0 + i * 1], 0))
k.emit(s_add_u32(NULL, LIT, s[67], 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[213], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[8 + i * 1], 0))
k.emit(s_add_u32(NULL, 0, s[68]))
k.emit(buffer_load_dword(v[0], v[218], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
for j0 in range(8):
k.emit(v_accvgpr_write(v[16 + j0 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[67], 8448 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[214 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[32 + i * 1], 0))
k.emit(s_add_u32(s[62], LIT, s[60], 256))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(s_cselect_b32(s[71], s[71], 0))
for i in range(2):
k.emit(s_add_u32(s[12 + i * 8], s[12 + i * 8], s[69 + i * 2]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[69 + i * 2]))
for i in range(2):
for j1 in range(8):
k.emit(buffer_load_dwordx4(v[72 + j1 * 4 + i * 32:75 + j1 * 4 + i * 32], v[220 + j1 * 1 + i * 8], s[16:19], 0, 0, 1))
k.emit(v_accvgpr_write(v[40 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[41 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[42 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[43 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[44 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[45 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[46 + j1 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[47 + j1 * 8 + i * 80], 0))
for j2 in range(2):
k.emit(buffer_load_dword(v[204 + j2 * 1 + i * 2], v[236 + j2 * 1 + i * 2], s[24:27], 0, 0, 1))
k.emit(v_accvgpr_write(v[104 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[105 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[106 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[107 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[108 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[109 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[110 + j2 * 8 + i * 80], 0))
k.emit(v_accvgpr_write(v[111 + j2 * 8 + i * 80], 0))
k.emit(s_add_u32(s[63], LIT, s[60], 256))
k.emit(s_cmp_lt_u32(s[63], s[61]))
k.emit(s_cselect_b32(s[70], s[70], 0))
k.emit(s_cselect_b32(s[72], s[72], 0))
for i in range(2):
k.emit(s_add_u32(s[16 + i * 8], s[16 + i * 8], s[70 + i * 2]))
k.emit(s_addc_u32(s[17 + i * 8], 0, s[17 + i * 8]))
k.emit(s_sub_u32(s[18 + i * 8], s[18 + i * 8], s[70 + i * 2]))
for i in range(2):
k.emit(s_add_u32(NULL, LIT, s[67], 16896 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[212 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for j3 in range(8):
k.emit(v_accvgpr_write(v[200 + j3 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[68], 1024))
k.emit(buffer_load_dword(v[0], v[218], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
for j4 in range(8):
k.emit(v_accvgpr_write(v[216 + j4 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[67], 25344 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[214 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(24):
k.emit(v_accvgpr_write(v[232 + i * 1], 0))
k.emit(s_waitcnt(20347))
k.emit(s_barrier())
k.emit(ds_read_b128(v[8:11], v[216]))
k.emit(ds_read_b128(v[24:27], v[216], v[0], v[0], 0, 64))
for i in range(2):
k.emit(ds_read_b128(v[12 + i * 20:15 + i * 20], v[216], v[0], v[0], 0, 0 + i * 192, 2 + i * 14))
k.emit(ds_read_b128(v[28 + i * -8:31 + i * -8], v[216], v[0], v[0], 0, 64 + i * 64, 2 + i * 16))
k.emit(ds_read_b128(v[16 + i * 20:19 + i * 20], v[216], v[0], v[0], 0, 128 + i * 64, 16 + i * 2))
k.emit(ds_read_b32(v[200], v[219]))
k.emit(ds_read_b32(v[201], v[219], v[0], v[0], 0, 0, 1))
for i in range(5):
k.emit(s_nop())
k.emit(s_lshl_b32(s[36], s[36], 1))
k.emit(s_mul_i32(s[62], s[48], LIT, 128))
k.emit(s_mul_hi_u32(s[63], s[36], s[62]))
k.emit(s_add_u32(s[5], s[5], s[63]))
k.emit(s_mul_i32(s[63], s[36], s[62]))
k.emit(s_add_u32(s[4], s[4], s[63]))
k.emit(s_addc_u32(s[5], s[5], 0))
k.emit(s_mul_i32(s[63], s[47], LIT, 512))
k.emit(s_lshl_b32(s[63], s[63], 1))
k.emit(s_add_u32(s[4], s[4], s[63]))
k.emit(s_addc_u32(s[5], s[5], 0))
k.emit(s_sub_i32(s[62], s[43], s[62]))
k.emit(s_cmp_lt_u32(s[62], LIT, 128))
k.emit(s_cselect_b32(s[62], s[62], LIT, 128))
k.emit(s_mul_i32(s[62], s[36], s[62]))
k.emit(s_sub_i32(s[62], s[62], s[63]))
k.emit(s_mov_b32(s[6], s[62]))
k.emit(s_mov_b32(s[7], LIT, 131072))
k.emit(s_cmp_gt_i32(s[65], 0))
k.emit(s_cbranch_scc0(11), target='L0_0F54')
k.emit(v_mul_i32_i24_e64(v[4], v[0], 4))
k.emit(s_mul_i32(s[62], s[46], LIT, 256))
k.emit(v_add_u32_e32(v[240], s[62], v[4]))
k.emit(v_add_u32_e32(v[241], LIT, v[240], 128))
k.emit(s_mul_i32(s[62], s[36], 64))
k.emit(v_add_u32_e32(v[242], s[62], v[240]))
k.emit(v_add_u32_e32(v[243], s[62], v[241]))
k.emit(s_branch(22), target='L0_0FAC')
k.label('L0_0F54')
k.emit(v_and_b32_e64(v[4], v[0], 15))
k.emit(v_mul_lo_u32(v[240], s[36], v[4]))
k.emit(v_lshrrev_b32_e32(v[4], 5))
k.emit(v_mul_i32_i24_e64(v[4], v[4], 16))
k.emit(v_lshrrev_b32_e32(v[5], 4))
k.emit(v_and_b32_e64(v[5], v[5], 1))
k.emit(v_mul_i32_i24_e64(v[5], v[5], 32))
k.emit(v_add_u32_e32(v[4], v[4], v[5]))
k.emit(v_add_u32_e32(v[240], v[4], v[240]))
k.emit(s_mul_i32(s[62], s[46], LIT, 256))
k.emit(v_add_u32_e32(v[240], s[62], v[240]))
k.emit(v_add_u32_e32(v[241], LIT, v[240], 128))
k.emit(s_mul_i32(s[62], s[36], 64))
k.emit(v_add_u32_e32(v[242], s[62], v[240]))
k.emit(v_add_u32_e32(v[243], s[62], v[241]))
k.label('L0_0FAC')
k.emit(s_cmp_lt_i32(s[46], 2))
k.emit(s_cbranch_scc0(1283), target='L0_23C0')
k.label('L0_0FB4')
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[0:3], v[72:75], v[8:11], 0, 0, v[204], v[200]))
k.emit(s_barrier())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[72 + i * 8:75 + i * 8], v[12:15], 2, 0, v[204 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[136 + i * 8:139 + i * 8], v[220 + i * 2], s[16:19], 0, 0, 1))
for j5 in range(2):
k.emit(v_mfma_fp4(v[16 + j5 * -8 + i * 32:19 + j5 * -8 + i * 32], v[76 + j5 * -4 + i * 8:79 + j5 * -4 + i * 8], v[8 + j5 * 8:11 + j5 * 8], 1 + j5 * -1, 0, v[204 + i * 1], v[200 + j5 * 1]))
k.emit(ds_read_b128(v[40 + j5 * 16 + i * 8:43 + j5 * 16 + i * 8], v[216], v[0], v[0], 0, 0 + j5 * 64 + i * 128, 33 + i * 16))
k.emit(v_mfma_fp4(v[20 + j5 * -8 + i * 32:23 + j5 * -8 + i * 32], v[76 + j5 * -4 + i * 8:79 + j5 * -4 + i * 8], v[12 + j5 * 8:15 + j5 * 8], 3 + j5 * -1, 0, v[204 + i * 1], v[200 + j5 * 1]))
k.emit(buffer_load_dwordx4(v[140 + i * 8:143 + i * 8], v[221 + i * 2], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[76 + i * 8:79 + i * 8], v[16:19], 1, 0, v[204 + i * 1], v[201]))
k.emit(ds_read_b128(v[44 + i * 8:47 + i * 8], v[216], v[0], v[0], 0, 0 + i * 128, 35 + i * 16))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[76 + i * 8:79 + i * 8], v[20:23], 3, 0, v[204 + i * 1], v[201]))
k.emit(v_mfma_fp4(v[32 + i * -32:35 + i * -32], v[80 + i * 8:83 + i * 8], v[8 + i * 16:11 + i * 16], 0, 0 + i * 3, v[205 + i * -1], v[200]))
k.emit(ds_read_b128(v[60 + i * 8:63 + i * 8], v[216], v[0], v[0], 0, 64 + i * 128, 35 + i * 16))
k.emit(v_mfma_fp4(v[4:7], v[88:91], v[28:31], 2, 3, v[204], v[200]))
k.emit(buffer_load_dwordx4(v[152:155], v[224], s[16:19], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[16 + i * -8:19 + i * -8], v[92 + i * -4:95 + i * -4], v[24 + i * 8:27 + i * 8], 1 + i * -1, 3, v[204], v[200 + i * 1]))
k.emit(ds_read_b32(v[202 + i * 1], v[219], v[0], v[0], 0, 0, 2 + i * 1))
k.emit(v_mfma_fp4(v[20 + i * -8:23 + i * -8], v[92 + i * -4:95 + i * -4], v[28 + i * 8:31 + i * 8], 3 + i * -1, 3, v[204], v[200 + i * 1]))
for i in range(2):
k.emit(buffer_load_dwordx4(v[156 + i * 4:159 + i * 4], v[225 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[24 + i * 24:27 + i * 24], v[92 + i * 8:95 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[204 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[28 + i * 24:31 + i * 24], v[92 + i * 8:95 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[204 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[96:99], v[24 + i * 8:27 + i * 8], 0, 3, v[205], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[36 + i * 8:39 + i * 8], v[96:99], v[28 + i * 8:31 + i * 8], 2, 3, v[205], v[200 + i * 1]))
k.emit(buffer_load_dwordx4(v[164:167], v[227], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[56:59], v[100:103], v[32:35], 1, 3, v[205], v[201]))
k.emit(v_mfma_fp4(v[60:63], v[100:103], v[36:39], 3, 3, v[205], v[201]))
k.emit(s_waitcnt(3965))
k.emit(v_mfma_fp4(v[64:67], v[104:107], v[8:11], 0, 0, v[206], v[200]))
k.emit(s_add_u32(s[62], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[68:71], v[104:107], v[12:15], 2, 0, v[206], v[200]))
k.emit(buffer_load_dword(v[208], v[236], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[80:83], v[108:111], v[8:11], 1, 0, v[206], v[200]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[84:87], v[108:111], v[12:15], 3, 0, v[206], v[200]))
k.emit(v_mfma_fp4(v[72:75], v[104:107], v[16:19], 0, 0, v[206], v[201]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(v_mfma_fp4(v[76:79], v[104:107], v[20:23], 2, 0, v[206], v[201]))
k.emit(buffer_load_dword(v[209], v[237], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[88:91], v[108:111], v[16:19], 1, 0, v[206], v[201]))
k.emit(s_cselect_b32(s[71], s[71], 0))
k.emit(v_mfma_fp4(v[92:95], v[108:111], v[20:23], 3, 0, v[206], v[201]))
k.emit(v_mfma_fp4(v[96:99], v[112:115], v[8:11], 0, 0, v[207], v[200]))
k.emit(s_add_u32(s[12], s[12], s[69]))
k.emit(v_mfma_fp4(v[100:103], v[112:115], v[12:15], 2, 0, v[207], v[200]))
k.emit(buffer_load_dwordx4(v[168:171], v[228], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[112:115], v[116:119], v[8:11], 1, 0, v[207], v[200]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[116:119], v[116:119], v[12:15], 3, 0, v[207], v[200]))
k.emit(v_mfma_fp4(v[104:107], v[112:115], v[16:19], 0, 0, v[207], v[201]))
k.emit(s_sub_u32(s[14], s[14], s[69]))
k.emit(v_mfma_fp4(v[108:111], v[112:115], v[20:23], 2, 0, v[207], v[201]))
k.emit(buffer_load_dwordx4(v[172:175], v[229], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[120:123], v[116:119], v[16:19], 1, 0, v[207], v[201]))
k.emit(s_add_u32(s[20], s[20], s[71]))
k.emit(v_mfma_fp4(v[124:127], v[116:119], v[20:23], 3, 0, v[207], v[201]))
k.emit(v_mfma_fp4(v[64:67], v[120:123], v[24:27], 0, 3, v[206], v[200]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[68:71], v[120:123], v[28:31], 2, 3, v[206], v[200]))
k.emit(buffer_load_dwordx4(v[176:179], v[230], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[80:83], v[124:127], v[24:27], 1, 3, v[206], v[200]))
k.emit(s_sub_u32(s[22], s[22], s[71]))
k.emit(v_mfma_fp4(v[84:87], v[124:127], v[28:31], 3, 3, v[206], v[200]))
k.emit(v_mfma_fp4(v[72:75], v[120:123], v[32:35], 0, 3, v[206], v[201]))
for i in range(2):
k.emit(v_mfma_fp4(v[76 + i * 24:79 + i * 24], v[120 + i * 8:123 + i * 8], v[36 + i * -8:39 + i * -8], 2, 3, v[206 + i * 1], v[201 + i * -1]))
k.emit(buffer_load_dwordx4(v[180 + i * 4:183 + i * 4], v[231 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[88 + i * 24:91 + i * 24], v[124 + i * 8:127 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[206 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[92 + i * 24:95 + i * 24], v[124 + i * 8:127 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[206 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[128:131], v[24 + i * 8:27 + i * 8], 0, 3, v[207], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[108:111], v[128:131], v[36:39], 2, 3, v[207], v[201]))
k.emit(buffer_load_dwordx4(v[188:191], v[233], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[120:123], v[132:135], v[32:35], 1, 3, v[207], v[201]))
k.emit(v_mfma_fp4(v[124:127], v[132:135], v[36:39], 3, 3, v[207], v[201]))
k.emit(s_waitcnt(16498))
k.emit(v_mfma_fp4(v[128:131], v[72:75], v[40:43], 0, 0, v[204], v[202]))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[132:135], v[72:75], v[44:47], 2, 0, v[204], v[202]))
k.emit(buffer_load_dwordx4(v[192:195], v[234], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[144:147], v[76:79], v[40:43], 1, 0, v[204], v[202]))
k.emit(ds_read_b128(v[8:11], v[217]))
k.emit(v_mfma_fp4(v[148:151], v[76:79], v[44:47], 3, 0, v[204], v[202]))
k.emit(v_mfma_fp4(v[136:139], v[72:75], v[48:51], 0, 0, v[204], v[203]))
k.emit(ds_read_b128(v[24:27], v[217], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[140:143], v[72:75], v[52:55], 2, 0, v[204], v[203]))
k.emit(buffer_load_dwordx4(v[196:199], v[235], s[16:19], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[152 + i * 24:155 + i * 24], v[76 + i * 8:79 + i * 8], v[48 + i * -8:51 + i * -8], 1, 0, v[204 + i * 1], v[203 + i * -1]))
k.emit(ds_read_b128(v[12 + i * 4:15 + i * 4], v[217], v[0], v[0], 0, 0 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[156 + i * 24:159 + i * 24], v[76 + i * 8:79 + i * 8], v[52 + i * -8:55 + i * -8], 3, 0, v[204 + i * 1], v[203 + i * -1]))
k.emit(v_mfma_fp4(v[160 + i * 8:163 + i * 8], v[80:83], v[40 + i * 8:43 + i * 8], 0, 0, v[205], v[202 + i * 1]))
k.emit(ds_read_b128(v[28 + i * 4:31 + i * 4], v[217], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[164 + i * 8:167 + i * 8], v[80:83], v[44 + i * 8:47 + i * 8], 2, 0, v[205], v[202 + i * 1]))
k.emit(buffer_load_dword(v[210 + i * 1], v[238 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[184:187], v[84:87], v[48:51], 1, 0, v[205], v[203]))
k.emit(ds_read_b128(v[20:23], v[217], v[0], v[0], 0, 128, 18))
k.emit(v_mfma_fp4(v[188:191], v[84:87], v[52:55], 3, 0, v[205], v[203]))
k.emit(s_add_u32(NULL, 0, s[67]))
k.emit(v_mfma_fp4(v[128:131], v[88:91], v[56:59], 0, 3, v[204], v[202]))
k.emit(ds_read_b128(v[36:39], v[217], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[132:135], v[88:91], v[60:63], 2, 3, v[204], v[202]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[144:147], v[92:95], v[56:59], 1, 3, v[204], v[202]))
k.emit(ds_read_b32(v[200], v[219], v[0], v[0], 0, 0, 4))
k.emit(v_mfma_fp4(v[148:151], v[92:95], v[60:63], 3, 3, v[204], v[202]))
k.emit(s_add_u32(NULL, LIT, s[67], 4224))
k.emit(v_mfma_fp4(v[136:139], v[88:91], v[64:67], 0, 3, v[204], v[203]))
k.emit(ds_read_b32(v[201], v[219], v[0], v[0], 0, 0, 5))
k.emit(v_mfma_fp4(v[140:143], v[88:91], v[68:71], 2, 3, v[204], v[203]))
k.emit(buffer_load_dwordx4(v[0:3], v[213], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[152:155], v[92:95], v[64:67], 1, 3, v[204], v[203]))
k.emit(v_mfma_fp4(v[156:159], v[92:95], v[68:71], 3, 3, v[204], v[203]))
k.emit(s_add_u32(NULL, 0, s[68]))
k.emit(v_mfma_fp4(v[160:163], v[96:99], v[56:59], 0, 3, v[205], v[202]))
k.emit(v_mfma_fp4(v[164:167], v[96:99], v[60:63], 2, 3, v[205], v[202]))
k.emit(buffer_load_dword(v[0], v[218], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[176 + i * 8:179 + i * 8], v[100:103], v[56 + i * 8:59 + i * 8], 1, 3, v[205], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[180 + i * 8:183 + i * 8], v[100:103], v[60 + i * 8:63 + i * 8], 3, 3, v[205], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[168 + i * 24:171 + i * 24], v[96 + i * 8:99 + i * 8], v[64 + i * -24:67 + i * -24], 0, 3 + i * -3, v[205 + i * 1], v[203 + i * -1]))
k.emit(v_mfma_fp4(v[172 + i * 24:175 + i * 24], v[96 + i * 8:99 + i * 8], v[68 + i * -24:71 + i * -24], 2, 3 + i * -3, v[205 + i * 1], v[203 + i * -1]))
k.emit(s_add_u32(NULL, LIT, s[67], 8448))
k.emit(v_mfma_fp4(v[208:211], v[108:111], v[40:43], 1, 0, v[206], v[202]))
k.emit(buffer_load_dwordx4(v[0:3], v[214], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[212:215], v[108:111], v[44:47], 3, 0, v[206], v[202]))
k.emit(v_mfma_fp4(v[200:203], v[104:107], v[48:51], 0, 0, v[206], v[203]))
k.emit(v_mfma_fp4(v[204:207], v[104:107], v[52:55], 2, 0, v[206], v[203]))
k.emit(s_add_u32(NULL, LIT, s[67], 12672))
k.emit(v_mfma_fp4(v[216:219], v[108:111], v[48:51], 1, 0, v[206], v[203]))
k.emit(buffer_load_dwordx4(v[0:3], v[215], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[220:223], v[108:111], v[52:55], 3, 0, v[206], v[203]))
k.emit(v_mfma_fp4(v[224:227], v[112:115], v[40:43], 0, 0, v[207], v[202]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[228:231], v[112:115], v[44:47], 2, 0, v[207], v[202]))
k.emit(v_mfma_fp4(v[240:243], v[116:119], v[40:43], 1, 0, v[207], v[202]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
for i in range(2):
k.emit(v_mfma_fp4(v[244 + i * -8:247 + i * -8], v[116 + i * -4:119 + i * -4], v[44 + i * 8:47 + i * 8], 3 + i * -1, 0, v[207], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[232 + i * 16:235 + i * 16], v[112 + i * 4:115 + i * 4], v[48:51], 0 + i * 1, 0, v[207], v[203]))
k.emit(s_cselect_b32(s[70 + i * 2], s[70 + i * 2], 0))
for i in range(2):
k.emit(v_mfma_fp4(v[252 + i * -48:255 + i * -48], v[116 + i * 4:119 + i * 4], v[52 + i * 16:55 + i * 16], 3 + i * -1, 0 + i * 3, v[207 + i * -1], v[203]))
k.emit(v_mfma_fp4(v[192 + i * 24:195 + i * 24], v[120 + i * 4:123 + i * 4], v[56 + i * 8:59 + i * 8], 0 + i * 1, 3, v[206], v[202 + i * 1]))
k.emit(s_add_u32(s[16 + i * 8], s[16 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[196 + i * 24:199 + i * 24], v[120 + i * 4:123 + i * 4], v[60 + i * 8:63 + i * 8], 2 + i * 1, 3, v[206], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[208 + i * 16:211 + i * 16], v[124 + i * 4:127 + i * 4], v[56:59], 1 + i * -1, 3, v[206 + i * 1], v[202]))
k.emit(s_addc_u32(s[17 + i * 8], 0, s[17 + i * 8]))
k.emit(v_mfma_fp4(v[212 + i * 16:215 + i * 16], v[124 + i * 4:127 + i * 4], v[60:63], 3 + i * -1, 3, v[206 + i * 1], v[202]))
k.emit(v_mfma_fp4(v[200 + i * 40:203 + i * 40], v[120 + i * 12:123 + i * 12], v[64 + i * -8:67 + i * -8], 0 + i * 1, 3, v[206 + i * 1], v[203 + i * -1]))
k.emit(s_sub_u32(s[18 + i * 8], s[18 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[244:247], v[132:135], v[60:63], 3, 3, v[207], v[202]))
k.emit(v_mfma_fp4(v[232:235], v[128:131], v[64:67], 0, 3, v[207], v[203]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[236:239], v[128:131], v[68:71], 2, 3, v[207], v[203]))
k.emit(v_mfma_fp4(v[248:251], v[132:135], v[64:67], 1, 3, v[207], v[203]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
k.emit(v_mfma_fp4(v[252:255], v[132:135], v[68:71], 3, 3, v[207], v[203]))
k.emit(s_cbranch_scc0(1926), target='L0_37CC')
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[0:3], v[136:139], v[8:11], 0, 0, v[208], v[200]))
k.emit(s_barrier())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[136 + i * 8:139 + i * 8], v[12:15], 2, 0, v[208 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[72 + i * 8:75 + i * 8], v[220 + i * 2], s[16:19], 0, 0, 1))
for j6 in range(2):
k.emit(v_mfma_fp4(v[16 + j6 * -8 + i * 32:19 + j6 * -8 + i * 32], v[140 + j6 * -4 + i * 8:143 + j6 * -4 + i * 8], v[8 + j6 * 8:11 + j6 * 8], 1 + j6 * -1, 0, v[208 + i * 1], v[200 + j6 * 1]))
k.emit(ds_read_b128(v[40 + j6 * 16 + i * 8:43 + j6 * 16 + i * 8], v[217], v[0], v[0], 0, 0 + j6 * 64 + i * 128, 33 + i * 16))
k.emit(v_mfma_fp4(v[20 + j6 * -8 + i * 32:23 + j6 * -8 + i * 32], v[140 + j6 * -4 + i * 8:143 + j6 * -4 + i * 8], v[12 + j6 * 8:15 + j6 * 8], 3 + j6 * -1, 0, v[208 + i * 1], v[200 + j6 * 1]))
k.emit(buffer_load_dwordx4(v[76 + i * 8:79 + i * 8], v[221 + i * 2], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[140 + i * 8:143 + i * 8], v[16:19], 1, 0, v[208 + i * 1], v[201]))
k.emit(ds_read_b128(v[44 + i * 8:47 + i * 8], v[217], v[0], v[0], 0, 0 + i * 128, 35 + i * 16))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[140 + i * 8:143 + i * 8], v[20:23], 3, 0, v[208 + i * 1], v[201]))
k.emit(v_mfma_fp4(v[32 + i * -32:35 + i * -32], v[144 + i * 8:147 + i * 8], v[8 + i * 16:11 + i * 16], 0, 0 + i * 3, v[209 + i * -1], v[200]))
k.emit(ds_read_b128(v[60 + i * 8:63 + i * 8], v[217], v[0], v[0], 0, 64 + i * 128, 35 + i * 16))
k.emit(v_mfma_fp4(v[4:7], v[152:155], v[28:31], 2, 3, v[208], v[200]))
k.emit(buffer_load_dwordx4(v[88:91], v[224], s[16:19], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[16 + i * -8:19 + i * -8], v[156 + i * -4:159 + i * -4], v[24 + i * 8:27 + i * 8], 1 + i * -1, 3, v[208], v[200 + i * 1]))
k.emit(ds_read_b32(v[202 + i * 1], v[219], v[0], v[0], 0, 0, 6 + i * 1))
k.emit(v_mfma_fp4(v[20 + i * -8:23 + i * -8], v[156 + i * -4:159 + i * -4], v[28 + i * 8:31 + i * 8], 3 + i * -1, 3, v[208], v[200 + i * 1]))
for i in range(2):
k.emit(buffer_load_dwordx4(v[92 + i * 4:95 + i * 4], v[225 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[24 + i * 24:27 + i * 24], v[156 + i * 8:159 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[208 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[28 + i * 24:31 + i * 24], v[156 + i * 8:159 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[208 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[160:163], v[24 + i * 8:27 + i * 8], 0, 3, v[209], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[36 + i * 8:39 + i * 8], v[160:163], v[28 + i * 8:31 + i * 8], 2, 3, v[209], v[200 + i * 1]))
k.emit(buffer_load_dwordx4(v[100:103], v[227], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[56:59], v[164:167], v[32:35], 1, 3, v[209], v[201]))
k.emit(v_mfma_fp4(v[60:63], v[164:167], v[36:39], 3, 3, v[209], v[201]))
k.emit(s_waitcnt(3965))
k.emit(v_mfma_fp4(v[64:67], v[168:171], v[8:11], 0, 0, v[210], v[200]))
k.emit(s_add_u32(s[62], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[68:71], v[168:171], v[12:15], 2, 0, v[210], v[200]))
k.emit(buffer_load_dword(v[204], v[236], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[80:83], v[172:175], v[8:11], 1, 0, v[210], v[200]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[84:87], v[172:175], v[12:15], 3, 0, v[210], v[200]))
k.emit(v_mfma_fp4(v[72:75], v[168:171], v[16:19], 0, 0, v[210], v[201]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(v_mfma_fp4(v[76:79], v[168:171], v[20:23], 2, 0, v[210], v[201]))
k.emit(buffer_load_dword(v[205], v[237], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[88:91], v[172:175], v[16:19], 1, 0, v[210], v[201]))
k.emit(s_cselect_b32(s[71], s[71], 0))
k.emit(v_mfma_fp4(v[92:95], v[172:175], v[20:23], 3, 0, v[210], v[201]))
k.emit(v_mfma_fp4(v[96:99], v[176:179], v[8:11], 0, 0, v[211], v[200]))
k.emit(s_add_u32(s[12], s[12], s[69]))
k.emit(v_mfma_fp4(v[100:103], v[176:179], v[12:15], 2, 0, v[211], v[200]))
k.emit(buffer_load_dwordx4(v[104:107], v[228], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[112:115], v[180:183], v[8:11], 1, 0, v[211], v[200]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[116:119], v[180:183], v[12:15], 3, 0, v[211], v[200]))
k.emit(v_mfma_fp4(v[104:107], v[176:179], v[16:19], 0, 0, v[211], v[201]))
k.emit(s_sub_u32(s[14], s[14], s[69]))
k.emit(v_mfma_fp4(v[108:111], v[176:179], v[20:23], 2, 0, v[211], v[201]))
k.emit(buffer_load_dwordx4(v[108:111], v[229], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[120:123], v[180:183], v[16:19], 1, 0, v[211], v[201]))
k.emit(s_add_u32(s[20], s[20], s[71]))
k.emit(v_mfma_fp4(v[124:127], v[180:183], v[20:23], 3, 0, v[211], v[201]))
k.emit(v_mfma_fp4(v[64:67], v[184:187], v[24:27], 0, 3, v[210], v[200]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[68:71], v[184:187], v[28:31], 2, 3, v[210], v[200]))
k.emit(buffer_load_dwordx4(v[112:115], v[230], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[80:83], v[188:191], v[24:27], 1, 3, v[210], v[200]))
k.emit(s_sub_u32(s[22], s[22], s[71]))
k.emit(v_mfma_fp4(v[84:87], v[188:191], v[28:31], 3, 3, v[210], v[200]))
k.emit(v_mfma_fp4(v[72:75], v[184:187], v[32:35], 0, 3, v[210], v[201]))
for i in range(2):
k.emit(v_mfma_fp4(v[76 + i * 24:79 + i * 24], v[184 + i * 8:187 + i * 8], v[36 + i * -8:39 + i * -8], 2, 3, v[210 + i * 1], v[201 + i * -1]))
k.emit(buffer_load_dwordx4(v[116 + i * 4:119 + i * 4], v[231 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[88 + i * 24:91 + i * 24], v[188 + i * 8:191 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[210 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[92 + i * 24:95 + i * 24], v[188 + i * 8:191 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[210 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[192:195], v[24 + i * 8:27 + i * 8], 0, 3, v[211], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[108:111], v[192:195], v[36:39], 2, 3, v[211], v[201]))
k.emit(buffer_load_dwordx4(v[124:127], v[233], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[120:123], v[196:199], v[32:35], 1, 3, v[211], v[201]))
k.emit(v_mfma_fp4(v[124:127], v[196:199], v[36:39], 3, 3, v[211], v[201]))
k.emit(s_waitcnt(16498))
k.emit(v_mfma_fp4(v[128:131], v[136:139], v[40:43], 0, 0, v[208], v[202]))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[132:135], v[136:139], v[44:47], 2, 0, v[208], v[202]))
k.emit(buffer_load_dwordx4(v[128:131], v[234], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[144:147], v[140:143], v[40:43], 1, 0, v[208], v[202]))
k.emit(ds_read_b128(v[8:11], v[216]))
k.emit(v_mfma_fp4(v[148:151], v[140:143], v[44:47], 3, 0, v[208], v[202]))
k.emit(v_mfma_fp4(v[136:139], v[136:139], v[48:51], 0, 0, v[208], v[203]))
k.emit(ds_read_b128(v[24:27], v[216], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[140:143], v[136:139], v[52:55], 2, 0, v[208], v[203]))
k.emit(buffer_load_dwordx4(v[132:135], v[235], s[16:19], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[152 + i * 24:155 + i * 24], v[140 + i * 8:143 + i * 8], v[48 + i * -8:51 + i * -8], 1, 0, v[208 + i * 1], v[203 + i * -1]))
k.emit(ds_read_b128(v[12 + i * 4:15 + i * 4], v[216], v[0], v[0], 0, 0 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[156 + i * 24:159 + i * 24], v[140 + i * 8:143 + i * 8], v[52 + i * -8:55 + i * -8], 3, 0, v[208 + i * 1], v[203 + i * -1]))
k.emit(v_mfma_fp4(v[160 + i * 8:163 + i * 8], v[144:147], v[40 + i * 8:43 + i * 8], 0, 0, v[209], v[202 + i * 1]))
k.emit(ds_read_b128(v[28 + i * 4:31 + i * 4], v[216], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[164 + i * 8:167 + i * 8], v[144:147], v[44 + i * 8:47 + i * 8], 2, 0, v[209], v[202 + i * 1]))
k.emit(buffer_load_dword(v[206 + i * 1], v[238 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[184:187], v[148:151], v[48:51], 1, 0, v[209], v[203]))
k.emit(ds_read_b128(v[20:23], v[216], v[0], v[0], 0, 128, 18))
k.emit(v_mfma_fp4(v[188:191], v[148:151], v[52:55], 3, 0, v[209], v[203]))
k.emit(s_add_u32(NULL, LIT, s[67], 16896))
k.emit(v_mfma_fp4(v[128:131], v[152:155], v[56:59], 0, 3, v[208], v[202]))
k.emit(ds_read_b128(v[36:39], v[216], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[132:135], v[152:155], v[60:63], 2, 3, v[208], v[202]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[144:147], v[156:159], v[56:59], 1, 3, v[208], v[202]))
k.emit(ds_read_b32(v[200], v[219]))
k.emit(v_mfma_fp4(v[148:151], v[156:159], v[60:63], 3, 3, v[208], v[202]))
k.emit(s_add_u32(NULL, LIT, s[67], 21120))
k.emit(v_mfma_fp4(v[136:139], v[152:155], v[64:67], 0, 3, v[208], v[203]))
k.emit(ds_read_b32(v[201], v[219], v[0], v[0], 0, 0, 1))
k.emit(v_mfma_fp4(v[140:143], v[152:155], v[68:71], 2, 3, v[208], v[203]))
k.emit(buffer_load_dwordx4(v[0:3], v[213], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[152:155], v[156:159], v[64:67], 1, 3, v[208], v[203]))
k.emit(v_mfma_fp4(v[156:159], v[156:159], v[68:71], 3, 3, v[208], v[203]))
k.emit(s_add_u32(NULL, LIT, s[68], 1024))
k.emit(v_mfma_fp4(v[160:163], v[160:163], v[56:59], 0, 3, v[209], v[202]))
k.emit(v_mfma_fp4(v[164:167], v[160:163], v[60:63], 2, 3, v[209], v[202]))
k.emit(buffer_load_dword(v[0], v[218], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[176 + i * 8:179 + i * 8], v[164:167], v[56 + i * 8:59 + i * 8], 1, 3, v[209], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[180 + i * 8:183 + i * 8], v[164:167], v[60 + i * 8:63 + i * 8], 3, 3, v[209], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[168 + i * 24:171 + i * 24], v[160 + i * 8:163 + i * 8], v[64 + i * -24:67 + i * -24], 0, 3 + i * -3, v[209 + i * 1], v[203 + i * -1]))
k.emit(v_mfma_fp4(v[172 + i * 24:175 + i * 24], v[160 + i * 8:163 + i * 8], v[68 + i * -24:71 + i * -24], 2, 3 + i * -3, v[209 + i * 1], v[203 + i * -1]))
k.emit(s_add_u32(NULL, LIT, s[67], 25344))
k.emit(v_mfma_fp4(v[208:211], v[172:175], v[40:43], 1, 0, v[210], v[202]))
k.emit(buffer_load_dwordx4(v[0:3], v[214], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[212:215], v[172:175], v[44:47], 3, 0, v[210], v[202]))
k.emit(v_mfma_fp4(v[200:203], v[168:171], v[48:51], 0, 0, v[210], v[203]))
k.emit(v_mfma_fp4(v[204:207], v[168:171], v[52:55], 2, 0, v[210], v[203]))
k.emit(s_add_u32(NULL, LIT, s[67], 29568))
k.emit(v_mfma_fp4(v[216:219], v[172:175], v[48:51], 1, 0, v[210], v[203]))
k.emit(buffer_load_dwordx4(v[0:3], v[215], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[220:223], v[172:175], v[52:55], 3, 0, v[210], v[203]))
k.emit(v_mfma_fp4(v[224:227], v[176:179], v[40:43], 0, 0, v[211], v[202]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[228:231], v[176:179], v[44:47], 2, 0, v[211], v[202]))
k.emit(v_mfma_fp4(v[240:243], v[180:183], v[40:43], 1, 0, v[211], v[202]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
for i in range(2):
k.emit(v_mfma_fp4(v[244 + i * -8:247 + i * -8], v[180 + i * -4:183 + i * -4], v[44 + i * 8:47 + i * 8], 3 + i * -1, 0, v[211], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[232 + i * 16:235 + i * 16], v[176 + i * 4:179 + i * 4], v[48:51], 0 + i * 1, 0, v[211], v[203]))
k.emit(s_cselect_b32(s[70 + i * 2], s[70 + i * 2], 0))
for i in range(2):
k.emit(v_mfma_fp4(v[252 + i * -48:255 + i * -48], v[180 + i * 4:183 + i * 4], v[52 + i * 16:55 + i * 16], 3 + i * -1, 0 + i * 3, v[211 + i * -1], v[203]))
k.emit(v_mfma_fp4(v[192 + i * 24:195 + i * 24], v[184 + i * 4:187 + i * 4], v[56 + i * 8:59 + i * 8], 0 + i * 1, 3, v[210], v[202 + i * 1]))
k.emit(s_add_u32(s[16 + i * 8], s[16 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[196 + i * 24:199 + i * 24], v[184 + i * 4:187 + i * 4], v[60 + i * 8:63 + i * 8], 2 + i * 1, 3, v[210], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[208 + i * 16:211 + i * 16], v[188 + i * 4:191 + i * 4], v[56:59], 1 + i * -1, 3, v[210 + i * 1], v[202]))
k.emit(s_addc_u32(s[17 + i * 8], 0, s[17 + i * 8]))
k.emit(v_mfma_fp4(v[212 + i * 16:215 + i * 16], v[188 + i * 4:191 + i * 4], v[60:63], 3 + i * -1, 3, v[210 + i * 1], v[202]))
k.emit(v_mfma_fp4(v[200 + i * 40:203 + i * 40], v[184 + i * 12:187 + i * 12], v[64 + i * -8:67 + i * -8], 0 + i * 1, 3, v[210 + i * 1], v[203 + i * -1]))
k.emit(s_sub_u32(s[18 + i * 8], s[18 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[244:247], v[196:199], v[60:63], 3, 3, v[211], v[202]))
k.emit(v_mfma_fp4(v[232:235], v[192:195], v[64:67], 0, 3, v[211], v[203]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[236:239], v[192:195], v[68:71], 2, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[248:251], v[196:199], v[64:67], 1, 3, v[211], v[203]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
k.emit(v_mfma_fp4(v[252:255], v[196:199], v[68:71], 3, 3, v[211], v[203]))
k.emit(s_cbranch_scc0(1284), target='L0_37CC')
k.emit(s_branch(64253), target='L0_0FB4')
k.label('L0_23C0')
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[0:3], v[72:75], v[8:11], 0, 0, v[204], v[200]))
k.emit(s_barrier())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[72 + i * 8:75 + i * 8], v[12:15], 2, 0, v[204 + i * 1], v[200]))
k.emit(ds_read_b128(v[40 + i * 8:43 + i * 8], v[216], v[0], v[0], 0, 0 + i * 128, 33 + i * 16))
k.emit(v_mfma_fp4(v[16 + i * 32:19 + i * 32], v[76 + i * 8:79 + i * 8], v[8:11], 1, 0, v[204 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[136 + i * 8:139 + i * 8], v[220 + i * 2], s[16:19], 0, 0, 1))
for j7 in range(2):
k.emit(v_mfma_fp4(v[20 + j7 * -8 + i * 32:23 + j7 * -8 + i * 32], v[76 + j7 * -4 + i * 8:79 + j7 * -4 + i * 8], v[12 + j7 * 8:15 + j7 * 8], 3 + j7 * -1, 0, v[204 + i * 1], v[200 + j7 * 1]))
k.emit(ds_read_b128(v[56 + j7 * -12 + i * 8:59 + j7 * -12 + i * 8], v[216], v[0], v[0], 0, 64 + j7 * -64 + i * 128, 33 + j7 * 2 + i * 16))
k.emit(v_mfma_fp4(v[8 + j7 * 16 + i * 32:11 + j7 * 16 + i * 32], v[72 + j7 * 4 + i * 8:75 + j7 * 4 + i * 8], v[16:19], 0 + j7 * 1, 0, v[204 + i * 1], v[201]))
k.emit(buffer_load_dwordx4(v[140 + i * 8:143 + i * 8], v[221 + i * 2], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[76 + i * 8:79 + i * 8], v[20:23], 3, 0, v[204 + i * 1], v[201]))
k.emit(ds_read_b128(v[60 + i * 8:63 + i * 8], v[216], v[0], v[0], 0, 64 + i * 128, 35 + i * 16))
k.emit(v_mfma_fp4(v[32 + i * -32:35 + i * -32], v[80 + i * 8:83 + i * 8], v[8 + i * 16:11 + i * 16], 0, 0 + i * 3, v[205 + i * -1], v[200]))
k.emit(v_mfma_fp4(v[4:7], v[88:91], v[28:31], 2, 3, v[204], v[200]))
k.emit(ds_read_b32(v[202], v[219], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[16:19], v[92:95], v[24:27], 1, 3, v[204], v[200]))
k.emit(buffer_load_dwordx4(v[152:155], v[224], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[20:23], v[92:95], v[28:31], 3, 3, v[204], v[200]))
k.emit(ds_read_b32(v[203], v[219], v[0], v[0], 0, 0, 3))
k.emit(v_mfma_fp4(v[8:11], v[88:91], v[32:35], 0, 3, v[204], v[201]))
for i in range(2):
k.emit(v_mfma_fp4(v[12 + i * 24:15 + i * 24], v[88 + i * 8:91 + i * 8], v[36 + i * -8:39 + i * -8], 2, 3, v[204 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[24 + i * 24:27 + i * 24], v[92 + i * 8:95 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[204 + i * 1], v[201 + i * -1]))
k.emit(buffer_load_dwordx4(v[156 + i * 4:159 + i * 4], v[225 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[28 + i * 24:31 + i * 24], v[92 + i * 8:95 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[204 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[96:99], v[24 + i * 8:27 + i * 8], 0, 3, v[205], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[44:47], v[96:99], v[36:39], 2, 3, v[205], v[201]))
k.emit(v_mfma_fp4(v[56:59], v[100:103], v[32:35], 1, 3, v[205], v[201]))
k.emit(buffer_load_dwordx4(v[164:167], v[227], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[60:63], v[100:103], v[36:39], 3, 3, v[205], v[201]))
k.emit(s_waitcnt(3965))
k.emit(v_mfma_fp4(v[64:67], v[104:107], v[8:11], 0, 0, v[206], v[200]))
k.emit(s_add_u32(s[62], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[68:71], v[104:107], v[12:15], 2, 0, v[206], v[200]))
k.emit(v_mfma_fp4(v[80:83], v[108:111], v[8:11], 1, 0, v[206], v[200]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[84:87], v[108:111], v[12:15], 3, 0, v[206], v[200]))
k.emit(buffer_load_dword(v[208], v[236], s[24:27], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[72 + i * 16:75 + i * 16], v[104 + i * 4:107 + i * 4], v[16:19], 0 + i * 1, 0, v[206], v[201]))
k.emit(s_cselect_b32(s[69 + i * 2], s[69 + i * 2], 0))
k.emit(v_mfma_fp4(v[76 + i * 16:79 + i * 16], v[104 + i * 4:107 + i * 4], v[20:23], 2 + i * 1, 0, v[206], v[201]))
k.emit(buffer_load_dword(v[209], v[237], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[96:99], v[112:115], v[8:11], 0, 0, v[207], v[200]))
k.emit(s_add_u32(s[12], s[12], s[69]))
k.emit(v_mfma_fp4(v[100:103], v[112:115], v[12:15], 2, 0, v[207], v[200]))
k.emit(v_mfma_fp4(v[112:115], v[116:119], v[8:11], 1, 0, v[207], v[200]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[116:119], v[116:119], v[12:15], 3, 0, v[207], v[200]))
k.emit(buffer_load_dwordx4(v[168:171], v[228], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[104:107], v[112:115], v[16:19], 0, 0, v[207], v[201]))
k.emit(s_sub_u32(s[14], s[14], s[69]))
k.emit(v_mfma_fp4(v[108:111], v[112:115], v[20:23], 2, 0, v[207], v[201]))
k.emit(v_mfma_fp4(v[120:123], v[116:119], v[16:19], 1, 0, v[207], v[201]))
k.emit(s_add_u32(s[20], s[20], s[71]))
k.emit(v_mfma_fp4(v[124:127], v[116:119], v[20:23], 3, 0, v[207], v[201]))
k.emit(buffer_load_dwordx4(v[172:175], v[229], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[64:67], v[120:123], v[24:27], 0, 3, v[206], v[200]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[68:71], v[120:123], v[28:31], 2, 3, v[206], v[200]))
k.emit(v_mfma_fp4(v[80:83], v[124:127], v[24:27], 1, 3, v[206], v[200]))
k.emit(s_sub_u32(s[22], s[22], s[71]))
k.emit(v_mfma_fp4(v[84:87], v[124:127], v[28:31], 3, 3, v[206], v[200]))
k.emit(buffer_load_dwordx4(v[176:179], v[230], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[72:75], v[120:123], v[32:35], 0, 3, v[206], v[201]))
for i in range(2):
k.emit(v_mfma_fp4(v[76 + i * 24:79 + i * 24], v[120 + i * 8:123 + i * 8], v[36 + i * -8:39 + i * -8], 2, 3, v[206 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[88 + i * 24:91 + i * 24], v[124 + i * 8:127 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[206 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[92 + i * 24:95 + i * 24], v[124 + i * 8:127 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[206 + i * 1], v[201 + i * -1]))
k.emit(buffer_load_dwordx4(v[180 + i * 4:183 + i * 4], v[231 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[128:131], v[24 + i * 8:27 + i * 8], 0, 3, v[207], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[108:111], v[128:131], v[36:39], 2, 3, v[207], v[201]))
k.emit(v_mfma_fp4(v[120:123], v[132:135], v[32:35], 1, 3, v[207], v[201]))
k.emit(v_mfma_fp4(v[124:127], v[132:135], v[36:39], 3, 3, v[207], v[201]))
k.emit(buffer_load_dwordx4(v[188:191], v[233], s[16:19], 0, 0, 1))
k.emit(s_waitcnt(16498))
k.emit(v_mfma_fp4(v[128:131], v[72:75], v[40:43], 0, 0, v[204], v[202]))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[132:135], v[72:75], v[44:47], 2, 0, v[204], v[202]))
k.emit(ds_read_b128(v[8:11], v[217]))
k.emit(v_mfma_fp4(v[144:147], v[76:79], v[40:43], 1, 0, v[204], v[202]))
k.emit(buffer_load_dwordx4(v[192:195], v[234], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[76:79], v[44:47], 3, 0, v[204], v[202]))
k.emit(ds_read_b128(v[24:27], v[217], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[136:139], v[72:75], v[48:51], 0, 0, v[204], v[203]))
k.emit(v_mfma_fp4(v[140:143], v[72:75], v[52:55], 2, 0, v[204], v[203]))
k.emit(ds_read_b128(v[12:15], v[217], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[152:155], v[76:79], v[48:51], 1, 0, v[204], v[203]))
k.emit(buffer_load_dwordx4(v[196:199], v[235], s[16:19], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[156 + i * 24:159 + i * 24], v[76 + i * 8:79 + i * 8], v[52 + i * -8:55 + i * -8], 3, 0, v[204 + i * 1], v[203 + i * -1]))
k.emit(ds_read_b128(v[28 + i * 4:31 + i * 4], v[217], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[160 + i * 8:163 + i * 8], v[80:83], v[40 + i * 8:43 + i * 8], 0, 0, v[205], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[164 + i * 8:167 + i * 8], v[80:83], v[44 + i * 8:47 + i * 8], 2, 0, v[205], v[202 + i * 1]))
k.emit(ds_read_b128(v[16 + i * 4:19 + i * 4], v[217], v[0], v[0], 0, 128, 16 + i * 2))
k.emit(v_mfma_fp4(v[176 + i * 8:179 + i * 8], v[84:87], v[40 + i * 8:43 + i * 8], 1, 0, v[205], v[202 + i * 1]))
k.emit(buffer_load_dword(v[210 + i * 1], v[238 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[188:191], v[84:87], v[52:55], 3, 0, v[205], v[203]))
k.emit(ds_read_b128(v[36:39], v[217], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[128:131], v[88:91], v[56:59], 0, 3, v[204], v[202]))
k.emit(s_add_u32(NULL, 0, s[67]))
k.emit(v_mfma_fp4(v[132:135], v[88:91], v[60:63], 2, 3, v[204], v[202]))
k.emit(ds_read_b32(v[200], v[219], v[0], v[0], 0, 0, 4))
k.emit(v_mfma_fp4(v[144:147], v[92:95], v[56:59], 1, 3, v[204], v[202]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[92:95], v[60:63], 3, 3, v[204], v[202]))
k.emit(ds_read_b32(v[201], v[219], v[0], v[0], 0, 0, 5))
k.emit(v_mfma_fp4(v[136:139], v[88:91], v[64:67], 0, 3, v[204], v[203]))
k.emit(s_add_u32(NULL, LIT, s[67], 4224))
k.emit(v_mfma_fp4(v[140:143], v[88:91], v[68:71], 2, 3, v[204], v[203]))
k.emit(v_mfma_fp4(v[152:155], v[92:95], v[64:67], 1, 3, v[204], v[203]))
k.emit(buffer_load_dwordx4(v[0:3], v[213], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[156:159], v[92:95], v[68:71], 3, 3, v[204], v[203]))
k.emit(v_mfma_fp4(v[160:163], v[96:99], v[56:59], 0, 3, v[205], v[202]))
k.emit(s_add_u32(NULL, 0, s[68]))
k.emit(v_mfma_fp4(v[164:167], v[96:99], v[60:63], 2, 3, v[205], v[202]))
k.emit(v_mfma_fp4(v[176:179], v[100:103], v[56:59], 1, 3, v[205], v[202]))
k.emit(buffer_load_dword(v[0], v[218], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[180 + i * 4:183 + i * 4], v[100:103], v[60 + i * 4:63 + i * 4], 3 + i * -2, 3, v[205], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[168 + i * 20:171 + i * 20], v[96 + i * 4:99 + i * 4], v[64 + i * 4:67 + i * 4], 0 + i * 3, 3, v[205], v[203]))
k.emit(v_mfma_fp4(v[172 + i * 20:175 + i * 20], v[96 + i * 8:99 + i * 8], v[68 + i * -28:71 + i * -28], 2 + i * -2, 3 + i * -3, v[205 + i * 1], v[203 + i * -1]))
for i in range(2):
k.emit(s_add_u32(NULL, LIT, s[67], 8448 + i * 4224))
k.emit(v_mfma_fp4(v[196 + i * 8:199 + i * 8], v[104:107], v[44 + i * 8:47 + i * 8], 2, 0, v[206], v[202 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[214 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[208 + i * 8:211 + i * 8], v[108:111], v[40 + i * 8:43 + i * 8], 1, 0, v[206], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[212 + i * 8:215 + i * 8], v[108:111], v[44 + i * 8:47 + i * 8], 3, 0, v[206], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[200 + i * 24:203 + i * 24], v[104 + i * 8:107 + i * 8], v[48 + i * -8:51 + i * -8], 0, 0, v[206 + i * 1], v[203 + i * -1]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[228:231], v[112:115], v[44:47], 2, 0, v[207], v[202]))
k.emit(v_mfma_fp4(v[240:243], v[116:119], v[40:43], 1, 0, v[207], v[202]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
for i in range(2):
k.emit(v_mfma_fp4(v[244 + i * -8:247 + i * -8], v[116 + i * -4:119 + i * -4], v[44 + i * 8:47 + i * 8], 3 + i * -1, 0, v[207], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[232 + i * 16:235 + i * 16], v[112 + i * 4:115 + i * 4], v[48:51], 0 + i * 1, 0, v[207], v[203]))
k.emit(s_cselect_b32(s[70 + i * 2], s[70 + i * 2], 0))
for i in range(2):
k.emit(v_mfma_fp4(v[252 + i * -48:255 + i * -48], v[116 + i * 4:119 + i * 4], v[52 + i * 16:55 + i * 16], 3 + i * -1, 0 + i * 3, v[207 + i * -1], v[203]))
k.emit(v_mfma_fp4(v[192 + i * 24:195 + i * 24], v[120 + i * 4:123 + i * 4], v[56 + i * 8:59 + i * 8], 0 + i * 1, 3, v[206], v[202 + i * 1]))
k.emit(s_add_u32(s[16 + i * 8], s[16 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[196 + i * 24:199 + i * 24], v[120 + i * 4:123 + i * 4], v[60 + i * 8:63 + i * 8], 2 + i * 1, 3, v[206], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[208 + i * 16:211 + i * 16], v[124 + i * 4:127 + i * 4], v[56:59], 1 + i * -1, 3, v[206 + i * 1], v[202]))
k.emit(s_addc_u32(s[17 + i * 8], 0, s[17 + i * 8]))
k.emit(v_mfma_fp4(v[212 + i * 16:215 + i * 16], v[124 + i * 4:127 + i * 4], v[60:63], 3 + i * -1, 3, v[206 + i * 1], v[202]))
k.emit(v_mfma_fp4(v[200 + i * 40:203 + i * 40], v[120 + i * 12:123 + i * 12], v[64 + i * -8:67 + i * -8], 0 + i * 1, 3, v[206 + i * 1], v[203 + i * -1]))
k.emit(s_sub_u32(s[18 + i * 8], s[18 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[244:247], v[132:135], v[60:63], 3, 3, v[207], v[202]))
k.emit(v_mfma_fp4(v[232:235], v[128:131], v[64:67], 0, 3, v[207], v[203]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[236:239], v[128:131], v[68:71], 2, 3, v[207], v[203]))
k.emit(v_mfma_fp4(v[248:251], v[132:135], v[64:67], 1, 3, v[207], v[203]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
k.emit(v_mfma_fp4(v[252:255], v[132:135], v[68:71], 3, 3, v[207], v[203]))
k.emit(s_cbranch_scc0(643), target='L0_37CC')
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[0:3], v[136:139], v[8:11], 0, 0, v[208], v[200]))
k.emit(s_barrier())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[136 + i * 8:139 + i * 8], v[12:15], 2, 0, v[208 + i * 1], v[200]))
k.emit(ds_read_b128(v[40 + i * 8:43 + i * 8], v[217], v[0], v[0], 0, 0 + i * 128, 33 + i * 16))
k.emit(v_mfma_fp4(v[16 + i * 32:19 + i * 32], v[140 + i * 8:143 + i * 8], v[8:11], 1, 0, v[208 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[72 + i * 8:75 + i * 8], v[220 + i * 2], s[16:19], 0, 0, 1))
for j8 in range(2):
k.emit(v_mfma_fp4(v[20 + j8 * -8 + i * 32:23 + j8 * -8 + i * 32], v[140 + j8 * -4 + i * 8:143 + j8 * -4 + i * 8], v[12 + j8 * 8:15 + j8 * 8], 3 + j8 * -1, 0, v[208 + i * 1], v[200 + j8 * 1]))
k.emit(ds_read_b128(v[56 + j8 * -12 + i * 8:59 + j8 * -12 + i * 8], v[217], v[0], v[0], 0, 64 + j8 * -64 + i * 128, 33 + j8 * 2 + i * 16))
k.emit(v_mfma_fp4(v[8 + j8 * 16 + i * 32:11 + j8 * 16 + i * 32], v[136 + j8 * 4 + i * 8:139 + j8 * 4 + i * 8], v[16:19], 0 + j8 * 1, 0, v[208 + i * 1], v[201]))
k.emit(buffer_load_dwordx4(v[76 + i * 8:79 + i * 8], v[221 + i * 2], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[140 + i * 8:143 + i * 8], v[20:23], 3, 0, v[208 + i * 1], v[201]))
k.emit(ds_read_b128(v[60 + i * 8:63 + i * 8], v[217], v[0], v[0], 0, 64 + i * 128, 35 + i * 16))
k.emit(v_mfma_fp4(v[32 + i * -32:35 + i * -32], v[144 + i * 8:147 + i * 8], v[8 + i * 16:11 + i * 16], 0, 0 + i * 3, v[209 + i * -1], v[200]))
k.emit(v_mfma_fp4(v[4:7], v[152:155], v[28:31], 2, 3, v[208], v[200]))
k.emit(ds_read_b32(v[202], v[219], v[0], v[0], 0, 0, 6))
k.emit(v_mfma_fp4(v[16:19], v[156:159], v[24:27], 1, 3, v[208], v[200]))
k.emit(buffer_load_dwordx4(v[88:91], v[224], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[20:23], v[156:159], v[28:31], 3, 3, v[208], v[200]))
k.emit(ds_read_b32(v[203], v[219], v[0], v[0], 0, 0, 7))
k.emit(v_mfma_fp4(v[8:11], v[152:155], v[32:35], 0, 3, v[208], v[201]))
for i in range(2):
k.emit(v_mfma_fp4(v[12 + i * 24:15 + i * 24], v[152 + i * 8:155 + i * 8], v[36 + i * -8:39 + i * -8], 2, 3, v[208 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[24 + i * 24:27 + i * 24], v[156 + i * 8:159 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[208 + i * 1], v[201 + i * -1]))
k.emit(buffer_load_dwordx4(v[92 + i * 4:95 + i * 4], v[225 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[28 + i * 24:31 + i * 24], v[156 + i * 8:159 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[208 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[160:163], v[24 + i * 8:27 + i * 8], 0, 3, v[209], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[44:47], v[160:163], v[36:39], 2, 3, v[209], v[201]))
k.emit(v_mfma_fp4(v[56:59], v[164:167], v[32:35], 1, 3, v[209], v[201]))
k.emit(buffer_load_dwordx4(v[100:103], v[227], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[60:63], v[164:167], v[36:39], 3, 3, v[209], v[201]))
k.emit(s_waitcnt(3965))
k.emit(v_mfma_fp4(v[64:67], v[168:171], v[8:11], 0, 0, v[210], v[200]))
k.emit(s_add_u32(s[62], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[68:71], v[168:171], v[12:15], 2, 0, v[210], v[200]))
k.emit(v_mfma_fp4(v[80:83], v[172:175], v[8:11], 1, 0, v[210], v[200]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[84:87], v[172:175], v[12:15], 3, 0, v[210], v[200]))
k.emit(buffer_load_dword(v[204], v[236], s[24:27], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[72 + i * 16:75 + i * 16], v[168 + i * 4:171 + i * 4], v[16:19], 0 + i * 1, 0, v[210], v[201]))
k.emit(s_cselect_b32(s[69 + i * 2], s[69 + i * 2], 0))
k.emit(v_mfma_fp4(v[76 + i * 16:79 + i * 16], v[168 + i * 4:171 + i * 4], v[20:23], 2 + i * 1, 0, v[210], v[201]))
k.emit(buffer_load_dword(v[205], v[237], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[96:99], v[176:179], v[8:11], 0, 0, v[211], v[200]))
k.emit(s_add_u32(s[12], s[12], s[69]))
k.emit(v_mfma_fp4(v[100:103], v[176:179], v[12:15], 2, 0, v[211], v[200]))
k.emit(v_mfma_fp4(v[112:115], v[180:183], v[8:11], 1, 0, v[211], v[200]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[116:119], v[180:183], v[12:15], 3, 0, v[211], v[200]))
k.emit(buffer_load_dwordx4(v[104:107], v[228], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[104:107], v[176:179], v[16:19], 0, 0, v[211], v[201]))
k.emit(s_sub_u32(s[14], s[14], s[69]))
k.emit(v_mfma_fp4(v[108:111], v[176:179], v[20:23], 2, 0, v[211], v[201]))
k.emit(v_mfma_fp4(v[120:123], v[180:183], v[16:19], 1, 0, v[211], v[201]))
k.emit(s_add_u32(s[20], s[20], s[71]))
k.emit(v_mfma_fp4(v[124:127], v[180:183], v[20:23], 3, 0, v[211], v[201]))
k.emit(buffer_load_dwordx4(v[108:111], v[229], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[64:67], v[184:187], v[24:27], 0, 3, v[210], v[200]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[68:71], v[184:187], v[28:31], 2, 3, v[210], v[200]))
k.emit(v_mfma_fp4(v[80:83], v[188:191], v[24:27], 1, 3, v[210], v[200]))
k.emit(s_sub_u32(s[22], s[22], s[71]))
k.emit(v_mfma_fp4(v[84:87], v[188:191], v[28:31], 3, 3, v[210], v[200]))
k.emit(buffer_load_dwordx4(v[112:115], v[230], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[72:75], v[184:187], v[32:35], 0, 3, v[210], v[201]))
for i in range(2):
k.emit(v_mfma_fp4(v[76 + i * 24:79 + i * 24], v[184 + i * 8:187 + i * 8], v[36 + i * -8:39 + i * -8], 2, 3, v[210 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[88 + i * 24:91 + i * 24], v[188 + i * 8:191 + i * 8], v[32 + i * -8:35 + i * -8], 1, 3, v[210 + i * 1], v[201 + i * -1]))
k.emit(v_mfma_fp4(v[92 + i * 24:95 + i * 24], v[188 + i * 8:191 + i * 8], v[36 + i * -8:39 + i * -8], 3, 3, v[210 + i * 1], v[201 + i * -1]))
k.emit(buffer_load_dwordx4(v[116 + i * 4:119 + i * 4], v[231 + i * 1], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[192:195], v[24 + i * 8:27 + i * 8], 0, 3, v[211], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[108:111], v[192:195], v[36:39], 2, 3, v[211], v[201]))
k.emit(v_mfma_fp4(v[120:123], v[196:199], v[32:35], 1, 3, v[211], v[201]))
k.emit(v_mfma_fp4(v[124:127], v[196:199], v[36:39], 3, 3, v[211], v[201]))
k.emit(buffer_load_dwordx4(v[124:127], v[233], s[16:19], 0, 0, 1))
k.emit(s_waitcnt(16498))
k.emit(v_mfma_fp4(v[128:131], v[136:139], v[40:43], 0, 0, v[208], v[202]))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[132:135], v[136:139], v[44:47], 2, 0, v[208], v[202]))
k.emit(ds_read_b128(v[8:11], v[216]))
k.emit(v_mfma_fp4(v[144:147], v[140:143], v[40:43], 1, 0, v[208], v[202]))
k.emit(buffer_load_dwordx4(v[128:131], v[234], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[140:143], v[44:47], 3, 0, v[208], v[202]))
k.emit(ds_read_b128(v[24:27], v[216], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[136:139], v[136:139], v[48:51], 0, 0, v[208], v[203]))
k.emit(v_mfma_fp4(v[140:143], v[136:139], v[52:55], 2, 0, v[208], v[203]))
k.emit(ds_read_b128(v[12:15], v[216], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[152:155], v[140:143], v[48:51], 1, 0, v[208], v[203]))
k.emit(buffer_load_dwordx4(v[132:135], v[235], s[16:19], 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[156 + i * 24:159 + i * 24], v[140 + i * 8:143 + i * 8], v[52 + i * -8:55 + i * -8], 3, 0, v[208 + i * 1], v[203 + i * -1]))
k.emit(ds_read_b128(v[28 + i * 4:31 + i * 4], v[216], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[160 + i * 8:163 + i * 8], v[144:147], v[40 + i * 8:43 + i * 8], 0, 0, v[209], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[164 + i * 8:167 + i * 8], v[144:147], v[44 + i * 8:47 + i * 8], 2, 0, v[209], v[202 + i * 1]))
k.emit(ds_read_b128(v[16 + i * 4:19 + i * 4], v[216], v[0], v[0], 0, 128, 16 + i * 2))
k.emit(v_mfma_fp4(v[176 + i * 8:179 + i * 8], v[148:151], v[40 + i * 8:43 + i * 8], 1, 0, v[209], v[202 + i * 1]))
k.emit(buffer_load_dword(v[206 + i * 1], v[238 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[188:191], v[148:151], v[52:55], 3, 0, v[209], v[203]))
k.emit(ds_read_b128(v[36:39], v[216], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[128:131], v[152:155], v[56:59], 0, 3, v[208], v[202]))
k.emit(s_add_u32(NULL, LIT, s[67], 16896))
k.emit(v_mfma_fp4(v[132:135], v[152:155], v[60:63], 2, 3, v[208], v[202]))
k.emit(ds_read_b32(v[200], v[219]))
k.emit(v_mfma_fp4(v[144:147], v[156:159], v[56:59], 1, 3, v[208], v[202]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[156:159], v[60:63], 3, 3, v[208], v[202]))
k.emit(ds_read_b32(v[201], v[219], v[0], v[0], 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[152:155], v[64:67], 0, 3, v[208], v[203]))
k.emit(s_add_u32(NULL, LIT, s[67], 21120))
k.emit(v_mfma_fp4(v[140:143], v[152:155], v[68:71], 2, 3, v[208], v[203]))
k.emit(v_mfma_fp4(v[152:155], v[156:159], v[64:67], 1, 3, v[208], v[203]))
k.emit(buffer_load_dwordx4(v[0:3], v[213], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[156:159], v[156:159], v[68:71], 3, 3, v[208], v[203]))
k.emit(v_mfma_fp4(v[160:163], v[160:163], v[56:59], 0, 3, v[209], v[202]))
k.emit(s_add_u32(NULL, LIT, s[68], 1024))
k.emit(v_mfma_fp4(v[164:167], v[160:163], v[60:63], 2, 3, v[209], v[202]))
k.emit(v_mfma_fp4(v[176:179], v[164:167], v[56:59], 1, 3, v[209], v[202]))
k.emit(buffer_load_dword(v[0], v[218], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[180 + i * 4:183 + i * 4], v[164:167], v[60 + i * 4:63 + i * 4], 3 + i * -2, 3, v[209], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[168 + i * 20:171 + i * 20], v[160 + i * 4:163 + i * 4], v[64 + i * 4:67 + i * 4], 0 + i * 3, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[172 + i * 20:175 + i * 20], v[160 + i * 8:163 + i * 8], v[68 + i * -28:71 + i * -28], 2 + i * -2, 3 + i * -3, v[209 + i * 1], v[203 + i * -1]))
for i in range(2):
k.emit(s_add_u32(NULL, LIT, s[67], 25344 + i * 4224))
k.emit(v_mfma_fp4(v[196 + i * 8:199 + i * 8], v[168:171], v[44 + i * 8:47 + i * 8], 2, 0, v[210], v[202 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[214 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[208 + i * 8:211 + i * 8], v[172:175], v[40 + i * 8:43 + i * 8], 1, 0, v[210], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[212 + i * 8:215 + i * 8], v[172:175], v[44 + i * 8:47 + i * 8], 3, 0, v[210], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[200 + i * 24:203 + i * 24], v[168 + i * 8:171 + i * 8], v[48 + i * -8:51 + i * -8], 0, 0, v[210 + i * 1], v[203 + i * -1]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(v_mfma_fp4(v[228:231], v[176:179], v[44:47], 2, 0, v[211], v[202]))
k.emit(v_mfma_fp4(v[240:243], v[180:183], v[40:43], 1, 0, v[211], v[202]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
for i in range(2):
k.emit(v_mfma_fp4(v[244 + i * -8:247 + i * -8], v[180 + i * -4:183 + i * -4], v[44 + i * 8:47 + i * 8], 3 + i * -1, 0, v[211], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[232 + i * 16:235 + i * 16], v[176 + i * 4:179 + i * 4], v[48:51], 0 + i * 1, 0, v[211], v[203]))
k.emit(s_cselect_b32(s[70 + i * 2], s[70 + i * 2], 0))
for i in range(2):
k.emit(v_mfma_fp4(v[252 + i * -48:255 + i * -48], v[180 + i * 4:183 + i * 4], v[52 + i * 16:55 + i * 16], 3 + i * -1, 0 + i * 3, v[211 + i * -1], v[203]))
k.emit(v_mfma_fp4(v[192 + i * 24:195 + i * 24], v[184 + i * 4:187 + i * 4], v[56 + i * 8:59 + i * 8], 0 + i * 1, 3, v[210], v[202 + i * 1]))
k.emit(s_add_u32(s[16 + i * 8], s[16 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[196 + i * 24:199 + i * 24], v[184 + i * 4:187 + i * 4], v[60 + i * 8:63 + i * 8], 2 + i * 1, 3, v[210], v[202 + i * 1]))
k.emit(v_mfma_fp4(v[208 + i * 16:211 + i * 16], v[188 + i * 4:191 + i * 4], v[56:59], 1 + i * -1, 3, v[210 + i * 1], v[202]))
k.emit(s_addc_u32(s[17 + i * 8], 0, s[17 + i * 8]))
k.emit(v_mfma_fp4(v[212 + i * 16:215 + i * 16], v[188 + i * 4:191 + i * 4], v[60:63], 3 + i * -1, 3, v[210 + i * 1], v[202]))
k.emit(v_mfma_fp4(v[200 + i * 40:203 + i * 40], v[184 + i * 12:187 + i * 12], v[64 + i * -8:67 + i * -8], 0 + i * 1, 3, v[210 + i * 1], v[203 + i * -1]))
k.emit(s_sub_u32(s[18 + i * 8], s[18 + i * 8], s[70 + i * 2]))
k.emit(v_mfma_fp4(v[244:247], v[196:199], v[60:63], 3, 3, v[211], v[202]))
k.emit(v_mfma_fp4(v[232:235], v[192:195], v[64:67], 0, 3, v[211], v[203]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[236:239], v[192:195], v[68:71], 2, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[248:251], v[196:199], v[64:67], 1, 3, v[211], v[203]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
k.emit(v_mfma_fp4(v[252:255], v[196:199], v[68:71], 3, 3, v[211], v[203]))
k.emit(s_cbranch_scc0(1), target='L0_37CC')
k.emit(s_branch(64253), target='L0_23C0')
k.label('L0_37CC')
k.emit(s_waitcnt())
k.emit(s_barrier())
k.emit(s_cmp_eq_u32(s[65], 0))
k.emit(s_cbranch_scc1(2149), target='L0_5970')
k.emit(v_lshrrev_b32_e32(v[4], 4))
k.emit(v_mul_i32_i24_e64(v[4], v[4], 8))
k.emit(v_and_b32_e64(v[5], v[0], 15))
k.emit(v_lshlrev_b32_e32(v[5], 8, v[5]))
k.emit(v_add_i32(v[4], v[4], v[5]))
k.emit(s_mul_i32(s[62], s[46], LIT, 16384))
k.emit(s_add_i32(s[62], s[62], 0))
k.emit(v_add_i32(v[4], v[4], s[62]))
for i in range(2):
for j9 in range(4):
k.emit(v_accvgpr_read(v[8 + j9 * 1 + i * 4], v[0 + j9 * 1 + i * 16]))
k.emit(v_mul_f32_e32(v[8 + j9 * 1 + i * 4], s[41], v[8 + j9 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(ds_write_b64(v[0], v[4], v[16:17]))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 32))
for i in range(2):
for j10 in range(4):
k.emit(v_accvgpr_read(v[8 + j10 * 1 + i * 4], v[32 + j10 * 1 + i * 16]))
k.emit(v_mul_f32_e32(v[8 + j10 * 1 + i * 4], s[41], v[8 + j10 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 64))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 96))
for i in range(3):
for j11 in range(2):
k.emit(v_accvgpr_read(v[8], v[4 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[8], s[41], v[8]))
k.emit(v_accvgpr_read(v[9], v[5 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[9], s[41], v[9]))
k.emit(v_accvgpr_read(v[10], v[6 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[10], s[41], v[10]))
k.emit(v_accvgpr_read(v[11], v[7 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[11], s[41], v[11]))
k.emit(v_accvgpr_read(v[12], v[20 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[12], s[41], v[12]))
k.emit(v_accvgpr_read(v[13], v[21 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[13], s[41], v[13]))
k.emit(v_accvgpr_read(v[14], v[22 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[14], s[41], v[14]))
k.emit(v_accvgpr_read(v[15], v[23 + j11 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[15], s[41], v[15]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 0 + j11 * 64, 16 + i * 16))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 32 + j11 * 64, 16 + i * 16))
for i in range(2):
for j12 in range(2):
k.emit(v_accvgpr_read(v[8 + j12 * 4], v[64 + j12 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j12 * 4], s[41], v[8 + j12 * 4]))
k.emit(v_accvgpr_read(v[9 + j12 * 4], v[65 + j12 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j12 * 4], s[41], v[9 + j12 * 4]))
k.emit(v_accvgpr_read(v[10 + j12 * 4], v[66 + j12 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j12 * 4], s[41], v[10 + j12 * 4]))
k.emit(v_accvgpr_read(v[11 + j12 * 4], v[67 + j12 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j12 * 4], s[41], v[11 + j12 * 4]))
for j13 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j13 * 1], v[8 + j13 * 2], v[9 + j13 * 2]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 128 + i * 64))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 160 + i * 64))
for i in range(3):
for j14 in range(2):
k.emit(v_accvgpr_read(v[8], v[68 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[8], s[41], v[8]))
k.emit(v_accvgpr_read(v[9], v[69 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[9], s[41], v[9]))
k.emit(v_accvgpr_read(v[10], v[70 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[10], s[41], v[10]))
k.emit(v_accvgpr_read(v[11], v[71 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[11], s[41], v[11]))
k.emit(v_accvgpr_read(v[12], v[84 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[12], s[41], v[12]))
k.emit(v_accvgpr_read(v[13], v[85 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[13], s[41], v[13]))
k.emit(v_accvgpr_read(v[14], v[86 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[14], s[41], v[14]))
k.emit(v_accvgpr_read(v[15], v[87 + j14 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[15], s[41], v[15]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 128 + j14 * 64, 16 + i * 16))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 160 + j14 * 64, 16 + i * 16))
k.emit(s_waitcnt(49279))
k.emit(v_mul_i32_i24_e64(v[4], v[0], 4))
k.emit(v_add_i32(v[4], v[4], s[62]))
k.emit(s_mul_i32(s[63], s[36], 0))
k.emit(v_add_u32_e32(v[244], s[63], v[240]))
k.emit(ds_read_b32(v[16], v[4]))
for i in range(15):
k.emit(ds_read_b32(v[17], v[4], v[0], v[0], 0, 0, 1 + i * 4))
k.emit(ds_read_b32(v[18], v[4], v[0], v[0], 0, 0, 2 + i * 4))
k.emit(ds_read_b32(v[19], v[4], v[0], v[0], 0, 0, 3 + i * 4))
for j15 in range(4):
k.emit(s_waitcnt(50047 + j15 * -256))
k.emit(buffer_atomic_pk_add_bf16(v[16 + j15 * 1], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_u32_e64(v[244], v[244], s[36]))
k.emit(s_mul_i32(s[63], s[36], 4 + i * 4))
k.emit(v_add_u32_e32(v[244], s[63], v[240]))
k.emit(ds_read_b32(v[16], v[4], v[0], v[0], 0, 0, 4 + i * 4))
k.emit(ds_read_b32(v[17], v[4], v[0], v[0], 0, 0, 61))
k.emit(ds_read_b32(v[18], v[4], v[0], v[0], 0, 0, 62))
k.emit(ds_read_b32(v[19], v[4], v[0], v[0], 0, 0, 63))
for i in range(4):
k.emit(s_waitcnt(50047 + i * -256))
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_u32_e64(v[244], v[244], s[36]))
k.emit(v_lshrrev_b32_e32(v[4], 4))
k.emit(v_mul_i32_i24_e64(v[4], v[4], 8))
k.emit(v_and_b32_e64(v[5], v[0], 15))
k.emit(v_lshlrev_b32_e32(v[5], 8, v[5]))
k.emit(v_add_i32(v[4], v[4], v[5]))
k.emit(s_mul_i32(s[62], s[46], LIT, 16384))
k.emit(s_add_i32(s[62], s[62], 0))
k.emit(v_add_i32(v[4], v[4], s[62]))
for i in range(2):
for j16 in range(4):
k.emit(v_accvgpr_read(v[8 + j16 * 1 + i * 4], v[128 + j16 * 1 + i * 16]))
k.emit(v_mul_f32_e32(v[8 + j16 * 1 + i * 4], s[41], v[8 + j16 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(ds_write_b64(v[0], v[4], v[16:17]))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 32))
for i in range(2):
for j17 in range(4):
k.emit(v_accvgpr_read(v[8 + j17 * 1 + i * 4], v[160 + j17 * 1 + i * 16]))
k.emit(v_mul_f32_e32(v[8 + j17 * 1 + i * 4], s[41], v[8 + j17 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 64))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 96))
for i in range(3):
for j18 in range(2):
k.emit(v_accvgpr_read(v[8], v[132 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[8], s[41], v[8]))
k.emit(v_accvgpr_read(v[9], v[133 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[9], s[41], v[9]))
k.emit(v_accvgpr_read(v[10], v[134 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[10], s[41], v[10]))
k.emit(v_accvgpr_read(v[11], v[135 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[11], s[41], v[11]))
k.emit(v_accvgpr_read(v[12], v[148 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[12], s[41], v[12]))
k.emit(v_accvgpr_read(v[13], v[149 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[13], s[41], v[13]))
k.emit(v_accvgpr_read(v[14], v[150 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[14], s[41], v[14]))
k.emit(v_accvgpr_read(v[15], v[151 + j18 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[15], s[41], v[15]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 0 + j18 * 64, 16 + i * 16))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 32 + j18 * 64, 16 + i * 16))
for i in range(2):
for j19 in range(2):
k.emit(v_accvgpr_read(v[8 + j19 * 4], v[192 + j19 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j19 * 4], s[41], v[8 + j19 * 4]))
k.emit(v_accvgpr_read(v[9 + j19 * 4], v[193 + j19 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j19 * 4], s[41], v[9 + j19 * 4]))
k.emit(v_accvgpr_read(v[10 + j19 * 4], v[194 + j19 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j19 * 4], s[41], v[10 + j19 * 4]))
k.emit(v_accvgpr_read(v[11 + j19 * 4], v[195 + j19 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j19 * 4], s[41], v[11 + j19 * 4]))
for j20 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j20 * 1], v[8 + j20 * 2], v[9 + j20 * 2]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 128 + i * 64))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 160 + i * 64))
for i in range(3):
for j21 in range(2):
k.emit(v_accvgpr_read(v[8], v[196 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[8], s[41], v[8]))
k.emit(v_accvgpr_read(v[9], v[197 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[9], s[41], v[9]))
k.emit(v_accvgpr_read(v[10], v[198 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[10], s[41], v[10]))
k.emit(v_accvgpr_read(v[11], v[199 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[11], s[41], v[11]))
k.emit(v_accvgpr_read(v[12], v[212 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[12], s[41], v[12]))
k.emit(v_accvgpr_read(v[13], v[213 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[13], s[41], v[13]))
k.emit(v_accvgpr_read(v[14], v[214 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[14], s[41], v[14]))
k.emit(v_accvgpr_read(v[15], v[215 + j21 * 32 + i * 4]))
k.emit(v_mul_f32_e32(v[15], s[41], v[15]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(ds_write_b64(v[0], v[4], v[16:17], v[0], 0, 128 + j21 * 64, 16 + i * 16))
k.emit(ds_write_b64(v[0], v[4], v[18:19], v[0], 0, 160 + j21 * 64, 16 + i * 16))
k.emit(s_waitcnt(49279))
k.emit(v_mul_i32_i24_e64(v[4], v[0], 4))
k.emit(v_add_i32(v[4], v[4], s[62]))
k.emit(s_mul_i32(s[63], s[36], 0))
k.emit(v_add_u32_e32(v[244], s[63], v[242]))
k.emit(ds_read_b32(v[16], v[4]))
for i in range(15):
k.emit(ds_read_b32(v[17], v[4], v[0], v[0], 0, 0, 1 + i * 4))
k.emit(ds_read_b32(v[18], v[4], v[0], v[0], 0, 0, 2 + i * 4))
k.emit(ds_read_b32(v[19], v[4], v[0], v[0], 0, 0, 3 + i * 4))
for j22 in range(4):
k.emit(s_waitcnt(50047 + j22 * -256))
k.emit(buffer_atomic_pk_add_bf16(v[16 + j22 * 1], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_u32_e64(v[244], v[244], s[36]))
k.emit(s_mul_i32(s[63], s[36], 4 + i * 4))
k.emit(v_add_u32_e32(v[244], s[63], v[242]))
k.emit(ds_read_b32(v[16], v[4], v[0], v[0], 0, 0, 4 + i * 4))
k.emit(ds_read_b32(v[17], v[4], v[0], v[0], 0, 0, 61))
k.emit(ds_read_b32(v[18], v[4], v[0], v[0], 0, 0, 62))
k.emit(ds_read_b32(v[19], v[4], v[0], v[0], 0, 0, 63))
for i in range(4):
k.emit(s_waitcnt(50047 + i * -256))
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_u32_e64(v[244], v[244], s[36]))
k.emit(s_branch(1344), target='L0_6E70')
k.label('L0_5970')
k.emit(s_mul_i32(s[62], s[36], 0))
k.emit(v_add_u32_e32(v[244], s[62], v[240]))
for i in range(2):
for j23 in range(2):
k.emit(v_accvgpr_read(v[8 + j23 * 4], v[0 + j23 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j23 * 4], s[41], v[8 + j23 * 4]))
k.emit(v_accvgpr_read(v[9 + j23 * 4], v[1 + j23 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j23 * 4], s[41], v[9 + j23 * 4]))
k.emit(v_accvgpr_read(v[10 + j23 * 4], v[2 + j23 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j23 * 4], s[41], v[10 + j23 * 4]))
k.emit(v_accvgpr_read(v[11 + j23 * 4], v[3 + j23 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j23 * 4], s[41], v[11 + j23 * 4]))
for j24 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j24 * 1], v[8 + j24 * 2], v[9 + j24 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 16))
k.emit(v_add_u32_e32(v[244], s[62], v[240]))
for i in range(2):
for j25 in range(2):
k.emit(v_accvgpr_read(v[8 + j25 * 4], v[4 + j25 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j25 * 4], s[41], v[8 + j25 * 4]))
k.emit(v_accvgpr_read(v[9 + j25 * 4], v[5 + j25 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j25 * 4], s[41], v[9 + j25 * 4]))
k.emit(v_accvgpr_read(v[10 + j25 * 4], v[6 + j25 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j25 * 4], s[41], v[10 + j25 * 4]))
k.emit(v_accvgpr_read(v[11 + j25 * 4], v[7 + j25 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j25 * 4], s[41], v[11 + j25 * 4]))
for j26 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j26 * 1], v[8 + j26 * 2], v[9 + j26 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 32))
k.emit(v_add_u32_e32(v[244], s[62], v[240]))
for i in range(2):
for j27 in range(2):
k.emit(v_accvgpr_read(v[8 + j27 * 4], v[8 + j27 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j27 * 4], s[41], v[8 + j27 * 4]))
k.emit(v_accvgpr_read(v[9 + j27 * 4], v[9 + j27 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j27 * 4], s[41], v[9 + j27 * 4]))
k.emit(v_accvgpr_read(v[10 + j27 * 4], v[10 + j27 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j27 * 4], s[41], v[10 + j27 * 4]))
k.emit(v_accvgpr_read(v[11 + j27 * 4], v[11 + j27 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j27 * 4], s[41], v[11 + j27 * 4]))
for j28 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j28 * 1], v[8 + j28 * 2], v[9 + j28 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 48))
k.emit(v_add_u32_e32(v[244], s[62], v[240]))
for i in range(2):
for j29 in range(2):
k.emit(v_accvgpr_read(v[8 + j29 * 4], v[12 + j29 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j29 * 4], s[41], v[8 + j29 * 4]))
k.emit(v_accvgpr_read(v[9 + j29 * 4], v[13 + j29 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j29 * 4], s[41], v[9 + j29 * 4]))
k.emit(v_accvgpr_read(v[10 + j29 * 4], v[14 + j29 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j29 * 4], s[41], v[10 + j29 * 4]))
k.emit(v_accvgpr_read(v[11 + j29 * 4], v[15 + j29 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j29 * 4], s[41], v[11 + j29 * 4]))
for j30 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j30 * 1], v[8 + j30 * 2], v[9 + j30 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 0))
k.emit(v_add_u32_e32(v[244], s[62], v[241]))
for i in range(2):
for j31 in range(2):
k.emit(v_accvgpr_read(v[8 + j31 * 4], v[64 + j31 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j31 * 4], s[41], v[8 + j31 * 4]))
k.emit(v_accvgpr_read(v[9 + j31 * 4], v[65 + j31 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j31 * 4], s[41], v[9 + j31 * 4]))
k.emit(v_accvgpr_read(v[10 + j31 * 4], v[66 + j31 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j31 * 4], s[41], v[10 + j31 * 4]))
k.emit(v_accvgpr_read(v[11 + j31 * 4], v[67 + j31 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j31 * 4], s[41], v[11 + j31 * 4]))
for j32 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j32 * 1], v[8 + j32 * 2], v[9 + j32 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 16))
k.emit(v_add_u32_e32(v[244], s[62], v[241]))
for i in range(2):
for j33 in range(2):
k.emit(v_accvgpr_read(v[8 + j33 * 4], v[68 + j33 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j33 * 4], s[41], v[8 + j33 * 4]))
k.emit(v_accvgpr_read(v[9 + j33 * 4], v[69 + j33 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j33 * 4], s[41], v[9 + j33 * 4]))
k.emit(v_accvgpr_read(v[10 + j33 * 4], v[70 + j33 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j33 * 4], s[41], v[10 + j33 * 4]))
k.emit(v_accvgpr_read(v[11 + j33 * 4], v[71 + j33 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j33 * 4], s[41], v[11 + j33 * 4]))
for j34 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j34 * 1], v[8 + j34 * 2], v[9 + j34 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 32))
k.emit(v_add_u32_e32(v[244], s[62], v[241]))
for i in range(2):
for j35 in range(2):
k.emit(v_accvgpr_read(v[8 + j35 * 4], v[72 + j35 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j35 * 4], s[41], v[8 + j35 * 4]))
k.emit(v_accvgpr_read(v[9 + j35 * 4], v[73 + j35 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j35 * 4], s[41], v[9 + j35 * 4]))
k.emit(v_accvgpr_read(v[10 + j35 * 4], v[74 + j35 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j35 * 4], s[41], v[10 + j35 * 4]))
k.emit(v_accvgpr_read(v[11 + j35 * 4], v[75 + j35 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j35 * 4], s[41], v[11 + j35 * 4]))
for j36 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j36 * 1], v[8 + j36 * 2], v[9 + j36 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 48))
k.emit(v_add_u32_e32(v[244], s[62], v[241]))
for i in range(2):
for j37 in range(2):
k.emit(v_accvgpr_read(v[8 + j37 * 4], v[76 + j37 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j37 * 4], s[41], v[8 + j37 * 4]))
k.emit(v_accvgpr_read(v[9 + j37 * 4], v[77 + j37 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j37 * 4], s[41], v[9 + j37 * 4]))
k.emit(v_accvgpr_read(v[10 + j37 * 4], v[78 + j37 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j37 * 4], s[41], v[10 + j37 * 4]))
k.emit(v_accvgpr_read(v[11 + j37 * 4], v[79 + j37 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j37 * 4], s[41], v[11 + j37 * 4]))
for j38 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j38 * 1], v[8 + j38 * 2], v[9 + j38 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 0))
k.emit(v_add_u32_e32(v[244], s[62], v[242]))
for i in range(2):
for j39 in range(2):
k.emit(v_accvgpr_read(v[8 + j39 * 4], v[128 + j39 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j39 * 4], s[41], v[8 + j39 * 4]))
k.emit(v_accvgpr_read(v[9 + j39 * 4], v[129 + j39 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j39 * 4], s[41], v[9 + j39 * 4]))
k.emit(v_accvgpr_read(v[10 + j39 * 4], v[130 + j39 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j39 * 4], s[41], v[10 + j39 * 4]))
k.emit(v_accvgpr_read(v[11 + j39 * 4], v[131 + j39 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j39 * 4], s[41], v[11 + j39 * 4]))
for j40 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j40 * 1], v[8 + j40 * 2], v[9 + j40 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 16))
k.emit(v_add_u32_e32(v[244], s[62], v[242]))
for i in range(2):
for j41 in range(2):
k.emit(v_accvgpr_read(v[8 + j41 * 4], v[132 + j41 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j41 * 4], s[41], v[8 + j41 * 4]))
k.emit(v_accvgpr_read(v[9 + j41 * 4], v[133 + j41 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j41 * 4], s[41], v[9 + j41 * 4]))
k.emit(v_accvgpr_read(v[10 + j41 * 4], v[134 + j41 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j41 * 4], s[41], v[10 + j41 * 4]))
k.emit(v_accvgpr_read(v[11 + j41 * 4], v[135 + j41 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j41 * 4], s[41], v[11 + j41 * 4]))
for j42 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j42 * 1], v[8 + j42 * 2], v[9 + j42 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 32))
for i in range(2):
k.emit(v_add_u32_e32(v[244], s[62], v[242 + i * 1]))
for j43 in range(2):
k.emit(v_accvgpr_read(v[8], v[136 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[8], s[41], v[8]))
k.emit(v_accvgpr_read(v[9], v[137 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[9], s[41], v[9]))
k.emit(v_accvgpr_read(v[10], v[138 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[10], s[41], v[10]))
k.emit(v_accvgpr_read(v[11], v[139 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[11], s[41], v[11]))
k.emit(v_accvgpr_read(v[12], v[152 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[12], s[41], v[12]))
k.emit(v_accvgpr_read(v[13], v[153 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[13], s[41], v[13]))
k.emit(v_accvgpr_read(v[14], v[154 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[14], s[41], v[14]))
k.emit(v_accvgpr_read(v[15], v[155 + j43 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[15], s[41], v[15]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 48 + i * -32))
k.emit(v_add_u32_e32(v[244], s[62], v[242 + i * 1]))
for j44 in range(2):
k.emit(v_accvgpr_read(v[8], v[140 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[8], s[41], v[8]))
k.emit(v_accvgpr_read(v[9], v[141 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[9], s[41], v[9]))
k.emit(v_accvgpr_read(v[10], v[142 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[10], s[41], v[10]))
k.emit(v_accvgpr_read(v[11], v[143 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[11], s[41], v[11]))
k.emit(v_accvgpr_read(v[12], v[156 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[12], s[41], v[12]))
k.emit(v_accvgpr_read(v[13], v[157 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[13], s[41], v[13]))
k.emit(v_accvgpr_read(v[14], v[158 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[14], s[41], v[14]))
k.emit(v_accvgpr_read(v[15], v[159 + j44 * 32 + i * 56]))
k.emit(v_mul_f32_e32(v[15], s[41], v[15]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 0 + i * 32))
k.emit(v_add_u32_e32(v[244], s[62], v[243]))
for i in range(2):
for j45 in range(2):
k.emit(v_accvgpr_read(v[8 + j45 * 4], v[200 + j45 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j45 * 4], s[41], v[8 + j45 * 4]))
k.emit(v_accvgpr_read(v[9 + j45 * 4], v[201 + j45 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j45 * 4], s[41], v[9 + j45 * 4]))
k.emit(v_accvgpr_read(v[10 + j45 * 4], v[202 + j45 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j45 * 4], s[41], v[10 + j45 * 4]))
k.emit(v_accvgpr_read(v[11 + j45 * 4], v[203 + j45 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j45 * 4], s[41], v[11 + j45 * 4]))
for j46 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j46 * 1], v[8 + j46 * 2], v[9 + j46 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.emit(s_mul_i32(s[62], s[36], 48))
k.emit(v_add_u32_e32(v[244], s[62], v[243]))
for i in range(2):
for j47 in range(2):
k.emit(v_accvgpr_read(v[8 + j47 * 4], v[204 + j47 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j47 * 4], s[41], v[8 + j47 * 4]))
k.emit(v_accvgpr_read(v[9 + j47 * 4], v[205 + j47 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[9 + j47 * 4], s[41], v[9 + j47 * 4]))
k.emit(v_accvgpr_read(v[10 + j47 * 4], v[206 + j47 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[10 + j47 * 4], s[41], v[10 + j47 * 4]))
k.emit(v_accvgpr_read(v[11 + j47 * 4], v[207 + j47 * 16 + i * 32]))
k.emit(v_mul_f32_e32(v[11 + j47 * 4], s[41], v[11 + j47 * 4]))
for j48 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j48 * 1], v[8 + j48 * 2], v[9 + j48 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[244], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[244], v[244], 64))
k.label('L0_6E70')
k.emit(s_waitcnt())
k.emit(s_endpgm())
elif (tile_m, tile_n) == (192, 256):
k.emit(s_and_b32(s[1], s[1], LIT, 65535))
k.emit(s_load_dwordx2(s[4:5], s[0:1], s[0], 0, 0, 0, 0, 1))
k.emit(s_mov_b32(s[8], 0))
k.emit(s_mov_b32(s[9], 0))
k.emit(s_load_dwordx2(s[12:13], s[0:1], s[0], 8, 0, 0, 0, 1))
k.emit(s_load_dwordx2(s[16:17], s[0:1], s[0], 16, 0, 0, 0, 1))
k.emit(s_mov_b32(s[41], 1.0))
k.emit(s_mov_b32(s[42], 0))
k.emit(s_mov_b32(s[36], N))
k.emit(s_mov_b32(s[37], K))
k.emit(s_mov_b32(s[38], K))
k.emit(s_mov_b32(s[43], M))
k.emit(s_mov_b32(s[44], N))
k.emit(s_mov_b32(s[45], K))
k.emit(s_load_dwordx2(s[20:21], s[0:1], s[0], 24, 0, 0, 0, 1))
k.emit(s_load_dwordx2(s[24:25], s[0:1], s[0], 32, 0, 0, 0, 1))
k.emit(s_mov_b32(s[39], scale_k))
k.emit(s_mov_b32(s[40], scale_k))
k.emit(v_lshrrev_b32_e32(v[1], 10))
k.emit(v_lshrrev_b32_e32(v[2], 10, v[1]))
k.emit(v_and_b32_e32(v[2], LIT, v[2], 1023))
k.emit(v_and_b32_e32(v[1], LIT, v[1], 1023))
k.emit(v_and_b32_e32(v[0], LIT, v[0], 1023))
k.emit(v_lshrrev_b32_e32(v[3], 6))
k.emit(v_and_b32_e32(v[0], 63))
k.emit(v_readfirstlane_b32_e32(v[46], v[3]))
k.emit(s_waitcnt(49279))
k.emit(s_mul_i32(s[63], LIT, 8, 192))
k.emit(v_cvt_f32_u32_e32(v[4], s[63]))
k.emit(s_sub_i32(s[62], 0, s[63]))
k.emit(v_rcp_iflag_f32_e32(v[4], v[4]))
k.emit(s_nop())
k.emit(v_mul_f32_e32(v[4], LIT, v[4], 1333788670))
k.emit(v_cvt_u32_f32_e32(v[4], v[4]))
k.emit(v_mul_lo_u32(v[5], s[62], v[4]))
k.emit(v_mul_hi_u32(v[5], v[4], v[5]))
k.emit(v_add_u32_e32(v[4], v[4], v[5]))
k.emit(v_mul_hi_u32(v[4], s[43], v[4]))
k.emit(v_mul_lo_u32(v[5], v[4], s[63]))
k.emit(v_sub_u32_e32(v[7], s[43], v[5]))
k.emit(v_add_u32_e32(v[6], 1, v[4]))
k.emit(v_cmp_le_u32_e32(s[63], v[7]))
k.emit(v_subrev_u32_e32(v[5], s[63], v[7]))
k.emit(s_nop())
k.emit(v_cndmask_b32_e32(v[4], v[4], v[6]))
k.emit(v_cndmask_b32_e32(v[7], v[7], v[5]))
k.emit(v_add_u32_e32(v[5], 1, v[4]))
k.emit(v_cmp_le_u32_e32(s[63], v[7]))
k.emit(s_nop(1))
k.emit(v_cndmask_b32_e32(v[7], v[4], v[5]))
k.emit(s_nop(3))
k.emit(v_readfirstlane_b32_e32(v[62], v[7]))
k.emit(s_nop(3))
k.emit(s_lshl_b32(s[62], s[62], 3))
k.emit(s_cmp_lt_i32(s[3], s[62]))
k.emit(s_cbranch_scc0(33), target='L1_01C0')
k.emit(s_add_u32(s[49], s[44], LIT, 255))
k.emit(s_lshr_b32(s[48], s[49], 8))
k.emit(s_mul_i32(s[49], s[48], s[3]))
k.emit(s_add_i32(s[49], s[49], s[2]))
k.emit(s_lshr_b32(s[63], s[44], 13))
k.emit(s_lshl_b32(s[47], s[63], 5))
k.emit(s_mul_i32(s[62], s[62], s[47]))
k.emit(s_cmp_lt_i32(s[49], s[62]))
k.emit(s_cbranch_scc0(13), target='L1_0198')
k.emit(s_and_b32(s[62], s[49], LIT, 255))
k.emit(s_and_b32(s[47], s[62], 31))
k.emit(s_lshr_b32(s[48], s[62], 5))
k.emit(s_lshr_b32(s[49], s[49], 8))
k.label('L1_0178')
k.emit(s_cmp_lt_i32(s[49], s[63]))
k.emit(s_cbranch_scc1(3), target='L1_018C')
k.emit(s_sub_i32(s[49], s[49], s[63]))
k.emit(s_add_i32(s[48], s[48], 8))
k.emit(s_branch(65531), target='L1_0178')
k.label('L1_018C')
k.emit(s_mul_i32(s[49], s[49], 32))
k.emit(s_add_i32(s[47], s[47], s[49]))
k.emit(s_branch(12), target='L1_01C8')
k.label('L1_0198')
k.emit(s_sub_i32(s[49], s[49], s[62]))
k.emit(s_sub_i32(s[63], s[48], s[47]))
k.emit(s_mov_b32(s[48], 0))
k.label('L1_01A4')
k.emit(s_cmp_lt_i32(s[49], s[63]))
k.emit(s_cbranch_scc1(3), target='L1_01B8')
k.emit(s_sub_i32(s[49], s[49], s[63]))
k.emit(s_add_i32(s[48], s[48], 1))
k.emit(s_branch(65531), target='L1_01A4')
k.label('L1_01B8')
k.emit(s_add_i32(s[47], s[47], s[49]))
k.emit(s_branch(2), target='L1_01C8')
k.label('L1_01C0')
k.emit(s_mov_b32(s[47], s[2]))
k.emit(s_mov_b32(s[48], s[3]))
k.label('L1_01C8')
k.emit(s_lshr_b32(s[37], s[37], 1))
k.emit(s_mul_i32(s[62], s[48], LIT, 192))
k.emit(s_mul_hi_u32(s[63], s[37], s[62]))
k.emit(s_add_u32(s[13], s[13], s[63]))
k.emit(s_mul_i32(s[63], s[37], s[62]))
k.emit(s_add_u32(s[12], s[12], s[63]))
k.emit(s_addc_u32(s[13], s[13], 0))
k.emit(s_sub_i32(s[63], s[43], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 192))
k.emit(s_cselect_b32(s[62], s[63], LIT, 192))
k.emit(s_mul_i32(s[14], s[37], s[62]))
k.emit(s_mov_b32(s[15], LIT, 131072))
k.emit(v_lshrrev_b32_e32(v[4], 3))
k.emit(v_lshrrev_b32_e32(v[5], 2, v[4]))
k.emit(v_lshlrev_b32_e32(v[5], 4, v[5]))
k.emit(v_and_b32_e32(v[4], 3, v[4]))
k.emit(v_lshrrev_b32_e32(v[6], 1, v[4]))
k.emit(v_lshlrev_b32_e32(v[6], 2, v[6]))
k.emit(v_add_u32_e32(v[5], v[5], v[6]))
k.emit(v_and_b32_e32(v[4], 1, v[4]))
k.emit(v_add_u32_e32(v[5], v[5], v[4]))
k.emit(v_mul_lo_u32(v[178], s[37], v[5]))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_lshlrev_b32_e32(v[4], 4, v[4]))
k.emit(v_add_u32_e32(v[178], v[4], v[178]))
k.emit(s_lshr_b32(s[62], s[46], 1))
k.emit(s_mul_i32(s[62], s[62], 8))
k.emit(s_and_b32(s[63], s[46], 1))
k.emit(s_mul_i32(s[63], s[63], 2))
k.emit(s_add_u32(s[62], s[62], s[63]))
k.emit(s_mul_i32(s[62], s[37], s[62]))
k.emit(v_add_u32_e32(v[178], s[62], v[178]))
k.emit(s_mul_i32(s[62], s[37], 32))
for i in range(5):
k.emit(v_add_u32_e32(v[179 + i * 1], s[62], v[178 + i * 1]))
k.emit(s_mul_i32(s[64], LIT, s[46], 1056))
k.emit(s_add_u32(s[64], LIT, s[64], 4096))
k.emit(v_and_b32_e32(v[4], 15))
k.emit(v_lshrrev_b32_e32(v[5], 3, v[4]))
k.emit(v_mul_i32_i24_e32(v[5], 2, v[5]))
k.emit(v_and_b32_e32(v[4], 3))
k.emit(v_lshrrev_b32_e32(v[6], 1, v[4]))
k.emit(v_add_u32_e32(v[4], v[5], v[6]))
k.emit(v_mul_i32_i24_e32(v[184], LIT, v[4], 1056))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_lshrrev_b32_e32(v[5], 2, v[4]))
k.emit(v_mul_i32_i24_e32(v[5], LIT, v[5], 256))
k.emit(v_add_u32_e32(v[184], v[5], v[184]))
k.emit(v_and_b32_e32(v[4], 1))
k.emit(v_mul_i32_i24_e32(v[6], LIT, v[4], 128))
k.emit(v_add_u32_e32(v[184], v[6], v[184]))
k.emit(v_lshrrev_b32_e32(v[4], 4))
k.emit(v_mul_i32_i24_e32(v[4], 16, v[4]))
k.emit(v_add_u32_e32(v[184], v[4], v[184]))
k.emit(v_add_u32_e32(v[184], LIT, v[184], 4096))
k.emit(v_add_u32_e32(v[185], LIT, v[184], 25344))
k.emit(s_mul_i32(s[62], s[48], LIT, 192))
k.emit(s_mul_hi_u32(s[63], s[39], s[62]))
k.emit(s_add_u32(s[21], s[21], s[63]))
k.emit(s_mul_i32(s[63], s[39], s[62]))
k.emit(s_add_u32(s[20], s[20], s[63]))
k.emit(s_addc_u32(s[21], s[21], 0))
k.emit(s_add_u32(s[63], s[43], 31))
k.emit(s_lshr_b32(s[63], s[63], 5))
k.emit(s_lshl_b32(s[63], s[63], 5))
k.emit(s_sub_i32(s[63], s[63], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 192))
k.emit(s_cselect_b32(s[62], s[63], LIT, 192))
k.emit(s_mul_i32(s[22], s[39], s[62]))
k.emit(s_mov_b32(s[23], LIT, 131072))
k.emit(v_lshlrev_b32_e32(v[186], 2))
k.emit(s_mul_i32(s[63], s[46], 32))
k.emit(s_mul_i32(s[63], s[63], s[39]))
k.emit(v_add_u32_e32(v[186], s[63], v[186]))
k.emit(s_mul_i32(s[63], LIT, s[39], 128))
k.emit(v_add_u32_e32(v[187], s[63], v[186]))
k.emit(s_mul_i32(s[65], s[46], LIT, 256))
k.emit(s_add_i32(s[65], s[65], 0))
k.emit(v_lshlrev_b32_e32(v[188], 2))
k.emit(v_add_u32_e32(v[188], 0, v[188]))
k.emit(s_lshr_b32(s[38], s[38], 1))
k.emit(s_mul_i32(s[62], s[47], LIT, 256))
k.emit(s_mul_hi_u32(s[63], s[38], s[62]))
k.emit(s_add_u32(s[17], s[17], s[63]))
k.emit(s_mul_i32(s[63], s[38], s[62]))
k.emit(s_add_u32(s[16], s[16], s[63]))
k.emit(s_addc_u32(s[17], s[17], 0))
k.emit(s_sub_i32(s[63], s[44], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 256))
k.emit(s_cselect_b32(s[62], s[63], LIT, 256))
k.emit(s_mul_i32(s[18], s[38], s[62]))
k.emit(s_mov_b32(s[19], LIT, 131072))
k.emit(v_lshlrev_b32_e32(v[189], 4))
k.emit(s_mul_i32(s[63], s[46], 64))
k.emit(s_mul_i32(s[62], s[63], s[38]))
k.emit(v_add_u32_e32(v[189], s[62], v[189]))
k.emit(s_mul_i32(s[62], 16, s[38]))
k.emit(v_add_u32_e32(v[190], s[62], v[189]))
k.emit(v_add_u32_e32(v[191], s[62], v[190]))
k.emit(v_add_u32_e32(v[192], s[62], v[191]))
k.emit(s_mul_i32(s[62], s[47], LIT, 256))
k.emit(s_mul_hi_u32(s[63], s[40], s[62]))
k.emit(s_add_u32(s[25], s[25], s[63]))
k.emit(s_mul_i32(s[63], s[40], s[62]))
k.emit(s_add_u32(s[24], s[24], s[63]))
k.emit(s_addc_u32(s[25], s[25], 0))
k.emit(s_sub_i32(s[63], s[44], s[62]))
k.emit(s_cmp_lt_u32(s[63], LIT, 256))
k.emit(s_cselect_b32(s[62], s[63], LIT, 256))
k.emit(s_mul_i32(s[26], s[40], s[62]))
k.emit(s_mov_b32(s[27], LIT, 131072))
k.emit(v_lshlrev_b32_e32(v[193], 2))
k.emit(s_mul_i32(s[63], s[46], 64))
k.emit(s_mul_i32(s[63], s[63], s[40]))
k.emit(v_add_u32_e32(v[193], s[63], v[193]))
k.emit(s_mul_i32(s[62], 32, s[40]))
k.emit(v_add_u32_e32(v[194], s[62], v[193]))
k.emit(s_mov_b32(s[66], LIT, 128))
k.emit(s_mov_b32(s[67], LIT, 2048))
k.emit(s_mov_b32(s[68], LIT, 256))
k.emit(s_mov_b32(s[69], LIT, 256))
k.emit(s_mov_b32(s[60], 0))
k.emit(s_mov_b32(s[61], s[45]))
k.emit(s_add_u32(NULL, 0, s[65]))
k.emit(buffer_load_dword(v[0], v[186], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[0 + i * 1], 0))
k.emit(s_add_u32(NULL, LIT, s[65], 1024))
k.emit(buffer_load_dword(v[0], v[187], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[8 + i * 1], 0))
k.emit(s_add_u32(NULL, 0, s[64]))
for i in range(5):
k.emit(buffer_load_dwordx4(v[0:3], v[178 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for j49 in range(8):
k.emit(v_accvgpr_write(v[16 + j49 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[64], 4224 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[183], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[56 + i * 1], 0))
k.emit(s_add_u32(s[62], LIT, s[60], 256))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(s_cselect_b32(s[66], s[66], 0))
k.emit(s_cselect_b32(s[68], s[68], 0))
for i in range(2):
k.emit(s_add_u32(s[12 + i * 8], s[12 + i * 8], s[66 + i * 2]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[66 + i * 2]))
for i in range(2):
for j50 in range(2):
k.emit(buffer_load_dwordx4(v[104 + j50 * 8 + i * 16:107 + j50 * 8 + i * 16], v[189 + i * 2], s[16:19], 0, 0 + j50 * 1024, 1))
k.emit(v_accvgpr_write(v[64 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[65 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[66 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[67 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[68 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[69 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[70 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[71 + j50 * 16 + i * 40], 0))
k.emit(buffer_load_dwordx4(v[108 + j50 * 8 + i * 16:111 + j50 * 8 + i * 16], v[190 + i * 2], s[16:19], 0, 0 + j50 * 1024, 1))
k.emit(v_accvgpr_write(v[72 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[73 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[74 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[75 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[76 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[77 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[78 + j50 * 16 + i * 40], 0))
k.emit(v_accvgpr_write(v[79 + j50 * 16 + i * 40], 0))
k.emit(buffer_load_dword(v[174 + i * 1], v[193 + i * 1], s[24:27], 0, 0, 1))
for j51 in range(8):
k.emit(v_accvgpr_write(v[96 + j51 * 1 + i * 40], 0))
k.emit(s_add_u32(s[63], LIT, s[60], 256))
k.emit(s_cmp_lt_u32(s[63], s[61]))
k.emit(s_cselect_b32(s[67], s[67], 0))
k.emit(s_cselect_b32(s[69], s[69], 0))
for i in range(2):
k.emit(s_add_u32(s[16 + i * 8], s[16 + i * 8], s[67 + i * 2]))
k.emit(s_addc_u32(s[17 + i * 8], 0, s[17 + i * 8]))
k.emit(s_sub_u32(s[18 + i * 8], s[18 + i * 8], s[67 + i * 2]))
for i in range(2):
k.emit(s_add_u32(NULL, LIT, s[65], 2048 + i * 1024))
k.emit(buffer_load_dword(v[0], v[186 + i * 1], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for j52 in range(8):
k.emit(v_accvgpr_write(v[144 + j52 * 1 + i * 8], 0))
for i in range(4):
k.emit(s_add_u32(NULL, LIT, s[64], 25344 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[178 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for j53 in range(8):
k.emit(v_accvgpr_write(v[160 + j53 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[64], 42240))
k.emit(buffer_load_dwordx4(v[0:3], v[182], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(s_add_u32(NULL, LIT, s[64], 46464))
k.emit(buffer_load_dwordx4(v[0:3], v[183], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(s_add_u32(s[62], LIT, s[60], 512))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(s_cselect_b32(s[66], s[66], 0))
k.emit(s_cselect_b32(s[68], s[68], 0))
for i in range(2):
k.emit(s_add_u32(s[12 + i * 8], s[12 + i * 8], s[66 + i * 2]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[66 + i * 2]))
k.emit(buffer_load_dwordx4(v[136:139], v[189], s[16:19], 0, 0, 1))
k.emit(buffer_load_dwordx4(v[140:143], v[190], s[16:19], 0, 0, 1))
k.emit(buffer_load_dwordx4(v[144:147], v[189], s[16:19], 0, 1024, 1))
k.emit(buffer_load_dwordx4(v[148:151], v[190], s[16:19], 0, 1024, 1))
k.emit(buffer_load_dword(v[176], v[193], s[24:27], 0, 0, 1))
k.emit(s_waitcnt(20347))
k.emit(s_barrier())
k.emit(ds_read_b128(v[8:11], v[184]))
k.emit(ds_read_b128(v[16:19], v[184], v[0], v[0], 0, 64))
k.emit(ds_read_b128(v[12:15], v[184], v[0], v[0], 0, 0, 2))
k.emit(ds_read_b128(v[20:23], v[184], v[0], v[0], 0, 64, 2))
k.emit(ds_read_b32(v[168], v[188]))
k.emit(ds_read_b128(v[24:27], v[184], v[0], v[0], 0, 128, 16))
k.emit(ds_read_b128(v[32:35], v[184], v[0], v[0], 0, 192, 16))
k.emit(ds_read_b128(v[28:31], v[184], v[0], v[0], 0, 128, 18))
k.emit(ds_read_b128(v[36:39], v[184], v[0], v[0], 0, 192, 18))
k.emit(ds_read_b32(v[169], v[188], v[0], v[0], 0, 0, 1))
for i in range(5):
k.emit(s_nop())
k.emit(s_lshl_b32(s[36], s[36], 1))
k.emit(s_and_b32(s[5], s[5], LIT, 65535))
k.emit(s_or_b32(s[5], s[5], LIT, 262144))
k.emit(s_mul_i32(s[62], s[48], LIT, 192))
k.emit(s_mul_hi_u32(s[63], s[36], s[62]))
k.emit(s_add_u32(s[5], s[5], s[63]))
k.emit(s_mul_i32(s[63], s[36], s[62]))
k.emit(s_add_u32(s[4], s[4], s[63]))
k.emit(s_addc_u32(s[5], s[5], 0))
k.emit(s_mul_i32(s[63], s[47], LIT, 256))
k.emit(s_lshl_b32(s[63], s[63], 1))
k.emit(s_add_u32(s[4], s[4], s[63]))
k.emit(s_addc_u32(s[5], s[5], 0))
k.emit(s_sub_i32(s[62], s[43], s[62]))
k.emit(s_cmp_lt_u32(s[62], LIT, 192))
k.emit(s_cselect_b32(s[62], s[62], LIT, 192))
k.emit(s_mul_i32(s[62], s[36], s[62]))
k.emit(s_sub_i32(s[62], s[62], s[63]))
k.emit(s_mov_b32(s[6], s[62]))
k.emit(s_mov_b32(s[7], LIT, 131072))
k.emit(v_lshrrev_b32_e32(v[4], 3))
k.emit(v_mul_lo_u32(v[195], v[4], s[36]))
k.emit(s_mul_i32(s[62], s[46], 64))
k.emit(s_lshl_b32(s[62], s[62], 1))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_mul_i32_i24_e32(v[4], 16, v[4]))
k.emit(v_add_u32_e32(v[4], s[62], v[4]))
k.emit(v_add_u32_e32(v[195], v[195], v[4]))
k.emit(s_mul_i32(s[62], s[36], 8))
for i in range(23):
k.emit(v_add_u32_e32(v[196 + i * 1], s[62], v[195 + i * 1]))
k.emit(s_cmp_lt_i32(s[46], 2))
k.emit(s_cbranch_scc0(1063), target='L1_1E2C')
k.label('L1_0D90')
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
for i in range(2):
k.emit(s_waitcnt(50559))
for j54 in range(2):
k.emit(v_mfma_fp4(v[0 + i * 32:3 + i * 32], v[104 + j54 * 8:107 + j54 * 8], v[8 + j54 * 8 + i * 16:11 + j54 * 8 + i * 16], 0, 0 + j54 * 3, v[174], v[168 + i * 1]))
k.emit(ds_read_b128(v[40 + j54 * 4 + i * 16:43 + j54 * 4 + i * 16], v[184], v[0], v[0], 0, 0 + i * 128, 33 + j54 * 2 + i * 16))
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[104 + j54 * 8:107 + j54 * 8], v[12 + j54 * 8 + i * 16:15 + j54 * 8 + i * 16], 2, 0 + j54 * 3, v[174], v[168 + i * 1]))
k.emit(buffer_load_dwordx4(v[152 + j54 * 4 + i * 8:155 + j54 * 4 + i * 8], v[191 + j54 * 1], s[16:19], 0, 0 + i * 1024, 1))
k.emit(v_mfma_fp4(v[8 + i * 32:11 + i * 32], v[108 + j54 * 8:111 + j54 * 8], v[8 + j54 * 8 + i * 16:11 + j54 * 8 + i * 16], 1, 0 + j54 * 3, v[174], v[168 + i * 1]))
k.emit(ds_read_b128(v[48 + j54 * 4 + i * 16:51 + j54 * 4 + i * 16], v[184], v[0], v[0], 0, 64 + i * 128, 33 + j54 * 2 + i * 16))
k.emit(v_mfma_fp4(v[12 + i * 32:15 + i * 32], v[108 + j54 * 8:111 + j54 * 8], v[12 + j54 * 8 + i * 16:15 + j54 * 8 + i * 16], 3, 0 + j54 * 3, v[174], v[168 + i * 1]))
k.emit(ds_read_b32(v[170 + i * 1], v[188], v[0], v[0], 0, 0, 2 + i * 1))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[64:67], v[104:107], v[40:43], 0, 0, v[174], v[170]))
k.emit(ds_read_b128(v[72:75], v[184], v[0], v[0], 0, 0, 66))
k.emit(v_mfma_fp4(v[68:71], v[104:107], v[44:47], 2, 0, v[174], v[170]))
k.emit(buffer_load_dword(v[177], v[194], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[72:75], v[108:111], v[40:43], 1, 0, v[174], v[170]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(ds_read_b128(v[80:83], v[184], v[0], v[0], 0, 64, 66))
k.emit(v_mfma_fp4(v[76:79], v[108:111], v[44:47], 3, 0, v[174], v[170]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
k.emit(v_mfma_fp4(v[64:67], v[112:115], v[48:51], 0, 3, v[174], v[170]))
k.emit(s_cselect_b32(s[67], s[67], 0))
k.emit(ds_read_b128(v[76:79], v[184], v[0], v[0], 0, 0, 68))
k.emit(v_mfma_fp4(v[68:71], v[112:115], v[52:55], 2, 3, v[174], v[170]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(v_mfma_fp4(v[72:75], v[116:119], v[48:51], 1, 3, v[174], v[170]))
k.emit(s_add_u32(s[16], s[16], s[67]))
k.emit(ds_read_b128(v[84:87], v[184], v[0], v[0], 0, 64, 68))
k.emit(v_mfma_fp4(v[76:79], v[116:119], v[52:55], 3, 3, v[174], v[170]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(s_sub_u32(s[18], s[18], s[67]))
k.emit(ds_read_b32(v[172], v[188], v[0], v[0], 0, 0, 4))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[96:99], v[104:107], v[56:59], 0, 0, v[174], v[171]))
k.emit(s_add_u32(s[24], s[24], s[69]))
k.emit(ds_read_b128(v[88:91], v[184], v[0], v[0], 0, 128, 82))
k.emit(v_mfma_fp4(v[100:103], v[104:107], v[60:63], 2, 0, v[174], v[171]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(v_mfma_fp4(v[104:107], v[108:111], v[56:59], 1, 0, v[174], v[171]))
k.emit(s_sub_u32(s[26], s[26], s[69]))
for i in range(2):
k.emit(ds_read_b128(v[96 + i * -4:99 + i * -4], v[184], v[0], v[0], 0, 192 + i * -64, 82 + i * 2))
k.emit(v_mfma_fp4(v[108 + i * -8:111 + i * -8], v[108 + i * 4:111 + i * 4], v[60 + i * 8:63 + i * 8], 3 + i * -1, 0 + i * 3, v[174], v[171]))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[112 + i * 4:115 + i * 4], v[64:67], 0 + i * 1, 3, v[174], v[171]))
k.emit(ds_read_b128(v[100:103], v[184], v[0], v[0], 0, 192, 84))
k.emit(v_mfma_fp4(v[108:111], v[116:119], v[68:71], 3, 3, v[174], v[171]))
k.emit(ds_read_b32(v[173], v[188], v[0], v[0], 0, 0, 5))
k.emit(s_barrier())
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[128:131], v[104:107], v[72:75], 0, 0, v[174], v[172]))
k.emit(v_mfma_fp4(v[132:135], v[104:107], v[76:79], 2, 0, v[174], v[172]))
k.emit(s_add_u32(NULL, 0, s[65]))
k.emit(buffer_load_dword(v[0], v[186], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[108:111], v[72:75], 1, 0, v[174], v[172]))
k.emit(v_mfma_fp4(v[140:143], v[108:111], v[76:79], 3, 0, v[174], v[172]))
k.emit(v_mfma_fp4(v[128:131], v[112:115], v[80:83], 0, 3, v[174], v[172]))
k.emit(v_mfma_fp4(v[132:135], v[112:115], v[84:87], 2, 3, v[174], v[172]))
k.emit(s_add_u32(NULL, LIT, s[65], 1024))
k.emit(buffer_load_dword(v[0], v[187], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[116:119], v[80:83], 1, 3, v[174], v[172]))
k.emit(v_mfma_fp4(v[140:143], v[116:119], v[84:87], 3, 3, v[174], v[172]))
k.emit(s_waitcnt(49279))
k.emit(v_mfma_fp4(v[160:163], v[104:107], v[88:91], 0, 0, v[174], v[173]))
k.emit(v_mfma_fp4(v[164:167], v[104:107], v[92:95], 2, 0, v[174], v[173]))
k.emit(s_add_u32(NULL, 0, s[64]))
k.emit(buffer_load_dwordx4(v[0:3], v[178], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[168:171], v[108:111], v[88:91], 1, 0, v[174], v[173]))
k.emit(v_mfma_fp4(v[172:175], v[108:111], v[92:95], 3, 0, v[174], v[173]))
k.emit(v_mfma_fp4(v[160:163], v[112:115], v[96:99], 0, 3, v[174], v[173]))
k.emit(v_mfma_fp4(v[164:167], v[112:115], v[100:103], 2, 3, v[174], v[173]))
k.emit(s_add_u32(NULL, LIT, s[64], 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[179], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[168:171], v[116:119], v[96:99], 1, 3, v[174], v[173]))
k.emit(v_mfma_fp4(v[172:175], v[116:119], v[100:103], 3, 3, v[174], v[173]))
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[16:19], v[120:123], v[8:11], 0, 0, v[175], v[168]))
k.emit(v_mfma_fp4(v[20:23], v[120:123], v[12:15], 2, 0, v[175], v[168]))
k.emit(s_add_u32(NULL, LIT, s[64], 8448))
k.emit(buffer_load_dwordx4(v[0:3], v[180], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[24:27], v[124:127], v[8:11], 1, 0, v[175], v[168]))
k.emit(v_mfma_fp4(v[28:31], v[124:127], v[12:15], 3, 0, v[175], v[168]))
for i in range(2):
k.emit(v_mfma_fp4(v[16 + i * 32:19 + i * 32], v[128 + i * -8:131 + i * -8], v[16 + i * 8:19 + i * 8], 0, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[20 + i * 32:23 + i * 32], v[128 + i * -8:131 + i * -8], v[20 + i * 8:23 + i * 8], 2, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[64], 12672 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[181 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[132 + i * -8:135 + i * -8], v[16 + i * 8:19 + i * 8], 1, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[132 + i * -8:135 + i * -8], v[20 + i * 8:23 + i * 8], 3, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[48:51], v[128:131], v[32:35], 0, 3, v[175], v[169]))
k.emit(v_mfma_fp4(v[52:55], v[128:131], v[36:39], 2, 3, v[175], v[169]))
k.emit(s_add_u32(NULL, LIT, s[64], 21120))
k.emit(buffer_load_dwordx4(v[0:3], v[183], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[56:59], v[132:135], v[32:35], 1, 3, v[175], v[169]))
k.emit(s_add_u32(s[62], LIT, s[60], 768))
k.emit(v_mfma_fp4(v[60:63], v[132:135], v[36:39], 3, 3, v[175], v[169]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[80:83], v[120:123], v[40:43], 0, 0, v[175], v[170]))
k.emit(s_cselect_b32(s[66], s[66], 0))
k.emit(v_mfma_fp4(v[84:87], v[120:123], v[44:47], 2, 0, v[175], v[170]))
k.emit(s_cselect_b32(s[68], s[68], 0))
k.emit(buffer_load_dwordx4(v[104:107], v[189], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[88:91], v[124:127], v[40:43], 1, 0, v[175], v[170]))
k.emit(s_add_u32(s[12], s[12], s[66]))
k.emit(v_mfma_fp4(v[92:95], v[124:127], v[44:47], 3, 0, v[175], v[170]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[80:83], v[128:131], v[48:51], 0, 3, v[175], v[170]))
k.emit(s_sub_u32(s[14], s[14], s[66]))
k.emit(v_mfma_fp4(v[84:87], v[128:131], v[52:55], 2, 3, v[175], v[170]))
k.emit(s_add_u32(s[20], s[20], s[68]))
k.emit(buffer_load_dwordx4(v[108:111], v[190], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[88:91], v[132:135], v[48:51], 1, 3, v[175], v[170]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[92:95], v[132:135], v[52:55], 3, 3, v[175], v[170]))
k.emit(s_sub_u32(s[22], s[22], s[68]))
k.emit(v_mfma_fp4(v[112:115], v[120:123], v[56:59], 0, 0, v[175], v[171]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[116:119], v[120:123], v[60:63], 2, 0, v[175], v[171]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
k.emit(buffer_load_dwordx4(v[112:115], v[189], s[16:19], 0, 1024, 1))
k.emit(v_mfma_fp4(v[120:123], v[124:127], v[56:59], 1, 0, v[175], v[171]))
k.emit(v_mfma_fp4(v[124:127], v[124:127], v[60:63], 3, 0, v[175], v[171]))
k.emit(v_mfma_fp4(v[112:115], v[128:131], v[64:67], 0, 3, v[175], v[171]))
k.emit(v_mfma_fp4(v[116:119], v[128:131], v[68:71], 2, 3, v[175], v[171]))
k.emit(buffer_load_dwordx4(v[116:119], v[190], s[16:19], 0, 1024, 1))
k.emit(v_mfma_fp4(v[120:123], v[132:135], v[64:67], 1, 3, v[175], v[171]))
k.emit(v_mfma_fp4(v[124:127], v[132:135], v[68:71], 3, 3, v[175], v[171]))
k.emit(v_mfma_fp4(v[144:147], v[120:123], v[72:75], 0, 0, v[175], v[172]))
k.emit(ds_read_b128(v[8:11], v[185]))
k.emit(v_mfma_fp4(v[148:151], v[120:123], v[76:79], 2, 0, v[175], v[172]))
k.emit(buffer_load_dword(v[174], v[193], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[152:155], v[124:127], v[72:75], 1, 0, v[175], v[172]))
k.emit(ds_read_b128(v[16:19], v[185], v[0], v[0], 0, 64))
for i in range(2):
k.emit(v_mfma_fp4(v[156 + i * -8:159 + i * -8], v[124 + i * 4:127 + i * 4], v[76 + i * 8:79 + i * 8], 3 + i * -1, 0 + i * 3, v[175], v[172]))
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[128 + i * 4:131 + i * 4], v[80:83], 0 + i * 1, 3, v[175], v[172]))
k.emit(ds_read_b128(v[12 + i * 8:15 + i * 8], v[185], v[0], v[0], 0, 0 + i * 64, 2))
k.emit(v_mfma_fp4(v[156:159], v[132:135], v[84:87], 3, 3, v[175], v[172]))
k.emit(ds_read_b32(v[168], v[188], v[0], v[0], 0, 0, 8))
for i in range(2):
for j55 in range(2):
k.emit(v_mfma_fp4(v[176 + j55 * 8:179 + j55 * 8], v[120 + j55 * 4 + i * 8:123 + j55 * 4 + i * 8], v[88 + i * 8:91 + i * 8], 0 + j55 * 1, 0 + i * 3, v[175], v[173]))
k.emit(ds_read_b128(v[24 + j55 * 8 + i * 4:27 + j55 * 8 + i * 4], v[185], v[0], v[0], 0, 128 + j55 * 64, 16 + i * 2))
k.emit(v_mfma_fp4(v[180 + j55 * 8:183 + j55 * 8], v[120 + j55 * 4 + i * 8:123 + j55 * 4 + i * 8], v[92 + i * 8:95 + i * 8], 2 + j55 * 1, 0 + i * 3, v[175], v[173]))
k.emit(ds_read_b32(v[169], v[188], v[0], v[0], 0, 0, 9))
k.emit(s_cbranch_scc0(1596), target='L1_2EC8')
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
for i in range(2):
k.emit(s_waitcnt(50559))
for j56 in range(2):
k.emit(v_mfma_fp4(v[0 + i * 32:3 + i * 32], v[136 + j56 * 8:139 + j56 * 8], v[8 + j56 * 8 + i * 16:11 + j56 * 8 + i * 16], 0, 0 + j56 * 3, v[176], v[168 + i * 1]))
k.emit(ds_read_b128(v[40 + j56 * 4 + i * 16:43 + j56 * 4 + i * 16], v[185], v[0], v[0], 0, 0 + i * 128, 33 + j56 * 2 + i * 16))
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[136 + j56 * 8:139 + j56 * 8], v[12 + j56 * 8 + i * 16:15 + j56 * 8 + i * 16], 2, 0 + j56 * 3, v[176], v[168 + i * 1]))
k.emit(buffer_load_dwordx4(v[120 + j56 * 4 + i * 8:123 + j56 * 4 + i * 8], v[191 + j56 * 1], s[16:19], 0, 0 + i * 1024, 1))
k.emit(v_mfma_fp4(v[8 + i * 32:11 + i * 32], v[140 + j56 * 8:143 + j56 * 8], v[8 + j56 * 8 + i * 16:11 + j56 * 8 + i * 16], 1, 0 + j56 * 3, v[176], v[168 + i * 1]))
k.emit(ds_read_b128(v[48 + j56 * 4 + i * 16:51 + j56 * 4 + i * 16], v[185], v[0], v[0], 0, 64 + i * 128, 33 + j56 * 2 + i * 16))
k.emit(v_mfma_fp4(v[12 + i * 32:15 + i * 32], v[140 + j56 * 8:143 + j56 * 8], v[12 + j56 * 8 + i * 16:15 + j56 * 8 + i * 16], 3, 0 + j56 * 3, v[176], v[168 + i * 1]))
k.emit(ds_read_b32(v[170 + i * 1], v[188], v[0], v[0], 0, 0, 10 + i * 1))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[64:67], v[136:139], v[40:43], 0, 0, v[176], v[170]))
k.emit(ds_read_b128(v[72:75], v[185], v[0], v[0], 0, 0, 66))
k.emit(v_mfma_fp4(v[68:71], v[136:139], v[44:47], 2, 0, v[176], v[170]))
k.emit(buffer_load_dword(v[175], v[194], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[72:75], v[140:143], v[40:43], 1, 0, v[176], v[170]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(ds_read_b128(v[80:83], v[185], v[0], v[0], 0, 64, 66))
k.emit(v_mfma_fp4(v[76:79], v[140:143], v[44:47], 3, 0, v[176], v[170]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
k.emit(v_mfma_fp4(v[64:67], v[144:147], v[48:51], 0, 3, v[176], v[170]))
k.emit(s_cselect_b32(s[67], s[67], 0))
k.emit(ds_read_b128(v[76:79], v[185], v[0], v[0], 0, 0, 68))
k.emit(v_mfma_fp4(v[68:71], v[144:147], v[52:55], 2, 3, v[176], v[170]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(v_mfma_fp4(v[72:75], v[148:151], v[48:51], 1, 3, v[176], v[170]))
k.emit(s_add_u32(s[16], s[16], s[67]))
k.emit(ds_read_b128(v[84:87], v[185], v[0], v[0], 0, 64, 68))
k.emit(v_mfma_fp4(v[76:79], v[148:151], v[52:55], 3, 3, v[176], v[170]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(s_sub_u32(s[18], s[18], s[67]))
k.emit(ds_read_b32(v[172], v[188], v[0], v[0], 0, 0, 12))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[96:99], v[136:139], v[56:59], 0, 0, v[176], v[171]))
k.emit(s_add_u32(s[24], s[24], s[69]))
k.emit(ds_read_b128(v[88:91], v[185], v[0], v[0], 0, 128, 82))
k.emit(v_mfma_fp4(v[100:103], v[136:139], v[60:63], 2, 0, v[176], v[171]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(v_mfma_fp4(v[104:107], v[140:143], v[56:59], 1, 0, v[176], v[171]))
k.emit(s_sub_u32(s[26], s[26], s[69]))
for i in range(2):
k.emit(ds_read_b128(v[96 + i * -4:99 + i * -4], v[185], v[0], v[0], 0, 192 + i * -64, 82 + i * 2))
k.emit(v_mfma_fp4(v[108 + i * -8:111 + i * -8], v[140 + i * 4:143 + i * 4], v[60 + i * 8:63 + i * 8], 3 + i * -1, 0 + i * 3, v[176], v[171]))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[144 + i * 4:147 + i * 4], v[64:67], 0 + i * 1, 3, v[176], v[171]))
k.emit(ds_read_b128(v[100:103], v[185], v[0], v[0], 0, 192, 84))
k.emit(v_mfma_fp4(v[108:111], v[148:151], v[68:71], 3, 3, v[176], v[171]))
k.emit(ds_read_b32(v[173], v[188], v[0], v[0], 0, 0, 13))
k.emit(s_barrier())
k.emit(s_waitcnt(50559))
for i in range(2):
k.emit(v_mfma_fp4(v[128:131], v[136 + i * 8:139 + i * 8], v[72 + i * 8:75 + i * 8], 0, 0 + i * 3, v[176], v[172]))
k.emit(v_mfma_fp4(v[132:135], v[136 + i * 8:139 + i * 8], v[76 + i * 8:79 + i * 8], 2, 0 + i * 3, v[176], v[172]))
k.emit(s_add_u32(NULL, LIT, s[65], 2048 + i * 1024))
k.emit(buffer_load_dword(v[0], v[186 + i * 1], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[140 + i * 8:143 + i * 8], v[72 + i * 8:75 + i * 8], 1, 0 + i * 3, v[176], v[172]))
k.emit(v_mfma_fp4(v[140:143], v[140 + i * 8:143 + i * 8], v[76 + i * 8:79 + i * 8], 3, 0 + i * 3, v[176], v[172]))
k.emit(s_waitcnt(49279))
for i in range(2):
k.emit(v_mfma_fp4(v[160:163], v[136 + i * 8:139 + i * 8], v[88 + i * 8:91 + i * 8], 0, 0 + i * 3, v[176], v[173]))
k.emit(v_mfma_fp4(v[164:167], v[136 + i * 8:139 + i * 8], v[92 + i * 8:95 + i * 8], 2, 0 + i * 3, v[176], v[173]))
k.emit(s_add_u32(NULL, LIT, s[64], 25344 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[178 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[168:171], v[140 + i * 8:143 + i * 8], v[88 + i * 8:91 + i * 8], 1, 0 + i * 3, v[176], v[173]))
k.emit(v_mfma_fp4(v[172:175], v[140 + i * 8:143 + i * 8], v[92 + i * 8:95 + i * 8], 3, 0 + i * 3, v[176], v[173]))
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[16:19], v[152:155], v[8:11], 0, 0, v[177], v[168]))
k.emit(v_mfma_fp4(v[20:23], v[152:155], v[12:15], 2, 0, v[177], v[168]))
k.emit(s_add_u32(NULL, LIT, s[64], 33792))
k.emit(buffer_load_dwordx4(v[0:3], v[180], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[24:27], v[156:159], v[8:11], 1, 0, v[177], v[168]))
k.emit(v_mfma_fp4(v[28:31], v[156:159], v[12:15], 3, 0, v[177], v[168]))
for i in range(2):
k.emit(v_mfma_fp4(v[16 + i * 32:19 + i * 32], v[160 + i * -8:163 + i * -8], v[16 + i * 8:19 + i * 8], 0, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[20 + i * 32:23 + i * 32], v[160 + i * -8:163 + i * -8], v[20 + i * 8:23 + i * 8], 2, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[64], 38016 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[181 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[164 + i * -8:167 + i * -8], v[16 + i * 8:19 + i * 8], 1, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[164 + i * -8:167 + i * -8], v[20 + i * 8:23 + i * 8], 3, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[48:51], v[160:163], v[32:35], 0, 3, v[177], v[169]))
k.emit(v_mfma_fp4(v[52:55], v[160:163], v[36:39], 2, 3, v[177], v[169]))
k.emit(s_add_u32(NULL, LIT, s[64], 46464))
k.emit(buffer_load_dwordx4(v[0:3], v[183], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[56:59], v[164:167], v[32:35], 1, 3, v[177], v[169]))
k.emit(s_add_u32(s[62], LIT, s[60], 768))
k.emit(v_mfma_fp4(v[60:63], v[164:167], v[36:39], 3, 3, v[177], v[169]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[80:83], v[152:155], v[40:43], 0, 0, v[177], v[170]))
k.emit(s_cselect_b32(s[66], s[66], 0))
k.emit(v_mfma_fp4(v[84:87], v[152:155], v[44:47], 2, 0, v[177], v[170]))
k.emit(s_cselect_b32(s[68], s[68], 0))
k.emit(buffer_load_dwordx4(v[136:139], v[189], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[88:91], v[156:159], v[40:43], 1, 0, v[177], v[170]))
k.emit(s_add_u32(s[12], s[12], s[66]))
k.emit(v_mfma_fp4(v[92:95], v[156:159], v[44:47], 3, 0, v[177], v[170]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[80:83], v[160:163], v[48:51], 0, 3, v[177], v[170]))
k.emit(s_sub_u32(s[14], s[14], s[66]))
k.emit(v_mfma_fp4(v[84:87], v[160:163], v[52:55], 2, 3, v[177], v[170]))
k.emit(s_add_u32(s[20], s[20], s[68]))
k.emit(buffer_load_dwordx4(v[140:143], v[190], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[88:91], v[164:167], v[48:51], 1, 3, v[177], v[170]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[92:95], v[164:167], v[52:55], 3, 3, v[177], v[170]))
k.emit(s_sub_u32(s[22], s[22], s[68]))
k.emit(v_mfma_fp4(v[112:115], v[152:155], v[56:59], 0, 0, v[177], v[171]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[116:119], v[152:155], v[60:63], 2, 0, v[177], v[171]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
k.emit(buffer_load_dwordx4(v[144:147], v[189], s[16:19], 0, 1024, 1))
k.emit(v_mfma_fp4(v[120:123], v[156:159], v[56:59], 1, 0, v[177], v[171]))
k.emit(v_mfma_fp4(v[124:127], v[156:159], v[60:63], 3, 0, v[177], v[171]))
k.emit(v_mfma_fp4(v[112:115], v[160:163], v[64:67], 0, 3, v[177], v[171]))
k.emit(v_mfma_fp4(v[116:119], v[160:163], v[68:71], 2, 3, v[177], v[171]))
k.emit(buffer_load_dwordx4(v[148:151], v[190], s[16:19], 0, 1024, 1))
k.emit(v_mfma_fp4(v[120:123], v[164:167], v[64:67], 1, 3, v[177], v[171]))
k.emit(v_mfma_fp4(v[124:127], v[164:167], v[68:71], 3, 3, v[177], v[171]))
k.emit(v_mfma_fp4(v[144:147], v[152:155], v[72:75], 0, 0, v[177], v[172]))
k.emit(ds_read_b128(v[8:11], v[184]))
k.emit(v_mfma_fp4(v[148:151], v[152:155], v[76:79], 2, 0, v[177], v[172]))
k.emit(buffer_load_dword(v[176], v[193], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[152:155], v[156:159], v[72:75], 1, 0, v[177], v[172]))
k.emit(ds_read_b128(v[16:19], v[184], v[0], v[0], 0, 64))
for i in range(2):
k.emit(v_mfma_fp4(v[156 + i * -8:159 + i * -8], v[156 + i * 4:159 + i * 4], v[76 + i * 8:79 + i * 8], 3 + i * -1, 0 + i * 3, v[177], v[172]))
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[160 + i * 4:163 + i * 4], v[80:83], 0 + i * 1, 3, v[177], v[172]))
k.emit(ds_read_b128(v[12 + i * 8:15 + i * 8], v[184], v[0], v[0], 0, 0 + i * 64, 2))
k.emit(v_mfma_fp4(v[156:159], v[164:167], v[84:87], 3, 3, v[177], v[172]))
k.emit(ds_read_b32(v[168], v[188]))
for i in range(2):
for j57 in range(2):
k.emit(v_mfma_fp4(v[176 + j57 * 8:179 + j57 * 8], v[152 + j57 * 4 + i * 8:155 + j57 * 4 + i * 8], v[88 + i * 8:91 + i * 8], 0 + j57 * 1, 0 + i * 3, v[177], v[173]))
k.emit(ds_read_b128(v[24 + j57 * 8 + i * 4:27 + j57 * 8 + i * 4], v[184], v[0], v[0], 0, 128 + j57 * 64, 16 + i * 2))
k.emit(v_mfma_fp4(v[180 + j57 * 8:183 + j57 * 8], v[152 + j57 * 4 + i * 8:155 + j57 * 4 + i * 8], v[92 + i * 8:95 + i * 8], 2 + j57 * 1, 0 + i * 3, v[177], v[173]))
k.emit(ds_read_b32(v[169], v[188], v[0], v[0], 0, 0, 1))
k.emit(s_cbranch_scc0(1064), target='L1_2EC8')
k.emit(s_branch(64473), target='L1_0D90')
k.label('L1_1E2C')
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
for i in range(2):
k.emit(s_waitcnt(50559))
for j58 in range(2):
k.emit(v_mfma_fp4(v[0 + i * 32:3 + i * 32], v[104 + j58 * 8:107 + j58 * 8], v[8 + j58 * 8 + i * 16:11 + j58 * 8 + i * 16], 0, 0 + j58 * 3, v[174], v[168 + i * 1]))
k.emit(buffer_load_dwordx4(v[152 + j58 * 4 + i * 8:155 + j58 * 4 + i * 8], v[191 + j58 * 1], s[16:19], 0, 0 + i * 1024, 1))
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[104 + j58 * 8:107 + j58 * 8], v[12 + j58 * 8 + i * 16:15 + j58 * 8 + i * 16], 2, 0 + j58 * 3, v[174], v[168 + i * 1]))
k.emit(ds_read_b128(v[40 + j58 * 4 + i * 16:43 + j58 * 4 + i * 16], v[184], v[0], v[0], 0, 0 + i * 128, 33 + j58 * 2 + i * 16))
k.emit(v_mfma_fp4(v[8 + i * 32:11 + i * 32], v[108 + j58 * 8:111 + j58 * 8], v[8 + j58 * 8 + i * 16:11 + j58 * 8 + i * 16], 1, 0 + j58 * 3, v[174], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[12 + i * 32:15 + i * 32], v[108 + j58 * 8:111 + j58 * 8], v[12 + j58 * 8 + i * 16:15 + j58 * 8 + i * 16], 3, 0 + j58 * 3, v[174], v[168 + i * 1]))
k.emit(ds_read_b128(v[48 + j58 * 4 + i * 16:51 + j58 * 4 + i * 16], v[184], v[0], v[0], 0, 64 + i * 128, 33 + j58 * 2 + i * 16))
k.emit(ds_read_b32(v[170 + i * 1], v[188], v[0], v[0], 0, 0, 2 + i * 1))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[64:67], v[104:107], v[40:43], 0, 0, v[174], v[170]))
k.emit(buffer_load_dword(v[177], v[194], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[68:71], v[104:107], v[44:47], 2, 0, v[174], v[170]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(ds_read_b128(v[72:75], v[184], v[0], v[0], 0, 0, 66))
k.emit(v_mfma_fp4(v[72:75], v[108:111], v[40:43], 1, 0, v[174], v[170]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
k.emit(v_mfma_fp4(v[76:79], v[108:111], v[44:47], 3, 0, v[174], v[170]))
k.emit(s_cselect_b32(s[67], s[67], 0))
k.emit(ds_read_b128(v[80:83], v[184], v[0], v[0], 0, 64, 66))
k.emit(v_mfma_fp4(v[64:67], v[112:115], v[48:51], 0, 3, v[174], v[170]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(v_mfma_fp4(v[68:71], v[112:115], v[52:55], 2, 3, v[174], v[170]))
k.emit(s_add_u32(s[16], s[16], s[67]))
k.emit(ds_read_b128(v[76:79], v[184], v[0], v[0], 0, 0, 68))
k.emit(v_mfma_fp4(v[72:75], v[116:119], v[48:51], 1, 3, v[174], v[170]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(v_mfma_fp4(v[76:79], v[116:119], v[52:55], 3, 3, v[174], v[170]))
k.emit(s_sub_u32(s[18], s[18], s[67]))
k.emit(ds_read_b128(v[84:87], v[184], v[0], v[0], 0, 64, 68))
k.emit(ds_read_b32(v[172], v[188], v[0], v[0], 0, 0, 4))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[96:99], v[104:107], v[56:59], 0, 0, v[174], v[171]))
k.emit(s_add_u32(s[24], s[24], s[69]))
k.emit(v_mfma_fp4(v[100:103], v[104:107], v[60:63], 2, 0, v[174], v[171]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(ds_read_b128(v[88:91], v[184], v[0], v[0], 0, 128, 82))
k.emit(v_mfma_fp4(v[104:107], v[108:111], v[56:59], 1, 0, v[174], v[171]))
k.emit(s_sub_u32(s[26], s[26], s[69]))
for i in range(2):
k.emit(v_mfma_fp4(v[108 + i * -8:111 + i * -8], v[108 + i * 4:111 + i * 4], v[60 + i * 8:63 + i * 8], 3 + i * -1, 0 + i * 3, v[174], v[171]))
k.emit(ds_read_b128(v[96 + i * -4:99 + i * -4], v[184], v[0], v[0], 0, 192 + i * -64, 82 + i * 2))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[112 + i * 4:115 + i * 4], v[64:67], 0 + i * 1, 3, v[174], v[171]))
k.emit(v_mfma_fp4(v[108:111], v[116:119], v[68:71], 3, 3, v[174], v[171]))
k.emit(ds_read_b128(v[100:103], v[184], v[0], v[0], 0, 192, 84))
k.emit(ds_read_b32(v[173], v[188], v[0], v[0], 0, 0, 5))
k.emit(s_barrier())
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[128:131], v[104:107], v[72:75], 0, 0, v[174], v[172]))
k.emit(s_add_u32(NULL, 0, s[65]))
k.emit(buffer_load_dword(v[0], v[186], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[132:135], v[104:107], v[76:79], 2, 0, v[174], v[172]))
k.emit(v_mfma_fp4(v[136:139], v[108:111], v[72:75], 1, 0, v[174], v[172]))
k.emit(v_mfma_fp4(v[140:143], v[108:111], v[76:79], 3, 0, v[174], v[172]))
k.emit(v_mfma_fp4(v[128:131], v[112:115], v[80:83], 0, 3, v[174], v[172]))
k.emit(s_add_u32(NULL, LIT, s[65], 1024))
k.emit(buffer_load_dword(v[0], v[187], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[132:135], v[112:115], v[84:87], 2, 3, v[174], v[172]))
k.emit(v_mfma_fp4(v[136:139], v[116:119], v[80:83], 1, 3, v[174], v[172]))
k.emit(v_mfma_fp4(v[140:143], v[116:119], v[84:87], 3, 3, v[174], v[172]))
k.emit(s_waitcnt(49279))
k.emit(v_mfma_fp4(v[160:163], v[104:107], v[88:91], 0, 0, v[174], v[173]))
k.emit(s_add_u32(NULL, 0, s[64]))
k.emit(buffer_load_dwordx4(v[0:3], v[178], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[164:167], v[104:107], v[92:95], 2, 0, v[174], v[173]))
k.emit(v_mfma_fp4(v[168:171], v[108:111], v[88:91], 1, 0, v[174], v[173]))
k.emit(v_mfma_fp4(v[172:175], v[108:111], v[92:95], 3, 0, v[174], v[173]))
k.emit(v_mfma_fp4(v[160:163], v[112:115], v[96:99], 0, 3, v[174], v[173]))
k.emit(s_add_u32(NULL, LIT, s[64], 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[179], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[164:167], v[112:115], v[100:103], 2, 3, v[174], v[173]))
k.emit(v_mfma_fp4(v[168:171], v[116:119], v[96:99], 1, 3, v[174], v[173]))
k.emit(v_mfma_fp4(v[172:175], v[116:119], v[100:103], 3, 3, v[174], v[173]))
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[16:19], v[120:123], v[8:11], 0, 0, v[175], v[168]))
k.emit(s_add_u32(NULL, LIT, s[64], 8448))
k.emit(buffer_load_dwordx4(v[0:3], v[180], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[20:23], v[120:123], v[12:15], 2, 0, v[175], v[168]))
k.emit(v_mfma_fp4(v[24:27], v[124:127], v[8:11], 1, 0, v[175], v[168]))
for i in range(2):
k.emit(v_mfma_fp4(v[28:31], v[124 + i * 8:127 + i * 8], v[12 + i * 8:15 + i * 8], 3, 0 + i * 3, v[175], v[168]))
k.emit(v_mfma_fp4(v[16 + i * 32:19 + i * 32], v[128 + i * -8:131 + i * -8], v[16 + i * 8:19 + i * 8], 0, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[64], 12672 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[181 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[20 + i * 32:23 + i * 32], v[128 + i * -8:131 + i * -8], v[20 + i * 8:23 + i * 8], 2, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[132 + i * -8:135 + i * -8], v[16 + i * 8:19 + i * 8], 1, 3 + i * -3, v[175], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[60:63], v[124:127], v[28:31], 3, 0, v[175], v[169]))
k.emit(v_mfma_fp4(v[48:51], v[128:131], v[32:35], 0, 3, v[175], v[169]))
k.emit(s_add_u32(NULL, LIT, s[64], 21120))
k.emit(buffer_load_dwordx4(v[0:3], v[183], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[52:55], v[128:131], v[36:39], 2, 3, v[175], v[169]))
k.emit(s_add_u32(s[62], LIT, s[60], 768))
k.emit(v_mfma_fp4(v[56:59], v[132:135], v[32:35], 1, 3, v[175], v[169]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[60:63], v[132:135], v[36:39], 3, 3, v[175], v[169]))
k.emit(s_cselect_b32(s[66], s[66], 0))
k.emit(v_mfma_fp4(v[80:83], v[120:123], v[40:43], 0, 0, v[175], v[170]))
k.emit(s_cselect_b32(s[68], s[68], 0))
k.emit(buffer_load_dwordx4(v[104:107], v[189], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[84:87], v[120:123], v[44:47], 2, 0, v[175], v[170]))
k.emit(s_add_u32(s[12], s[12], s[66]))
k.emit(v_mfma_fp4(v[88:91], v[124:127], v[40:43], 1, 0, v[175], v[170]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[92:95], v[124:127], v[44:47], 3, 0, v[175], v[170]))
k.emit(s_sub_u32(s[14], s[14], s[66]))
k.emit(v_mfma_fp4(v[80:83], v[128:131], v[48:51], 0, 3, v[175], v[170]))
k.emit(s_add_u32(s[20], s[20], s[68]))
k.emit(buffer_load_dwordx4(v[108:111], v[190], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[84:87], v[128:131], v[52:55], 2, 3, v[175], v[170]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[88:91], v[132:135], v[48:51], 1, 3, v[175], v[170]))
k.emit(s_sub_u32(s[22], s[22], s[68]))
k.emit(v_mfma_fp4(v[92:95], v[132:135], v[52:55], 3, 3, v[175], v[170]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[112:115], v[120:123], v[56:59], 0, 0, v[175], v[171]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
for i in range(2):
k.emit(buffer_load_dwordx4(v[112 + i * 4:115 + i * 4], v[189 + i * 1], s[16:19], 0, 1024, 1))
k.emit(v_mfma_fp4(v[116:119], v[120 + i * 8:123 + i * 8], v[60 + i * 8:63 + i * 8], 2, 0 + i * 3, v[175], v[171]))
k.emit(v_mfma_fp4(v[120:123], v[124 + i * 8:127 + i * 8], v[56 + i * 8:59 + i * 8], 1, 0 + i * 3, v[175], v[171]))
k.emit(v_mfma_fp4(v[124:127], v[124 + i * 8:127 + i * 8], v[60 + i * 8:63 + i * 8], 3, 0 + i * 3, v[175], v[171]))
k.emit(v_mfma_fp4(v[112 + i * 32:115 + i * 32], v[128 + i * -8:131 + i * -8], v[64 + i * 8:67 + i * 8], 0, 3 + i * -3, v[175], v[171 + i * 1]))
k.emit(buffer_load_dword(v[174], v[193], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[120:123], v[76:79], 2, 0, v[175], v[172]))
k.emit(ds_read_b128(v[8:11], v[185]))
k.emit(v_mfma_fp4(v[152:155], v[124:127], v[72:75], 1, 0, v[175], v[172]))
k.emit(v_mfma_fp4(v[156:159], v[124:127], v[76:79], 3, 0, v[175], v[172]))
k.emit(ds_read_b128(v[16:19], v[185], v[0], v[0], 0, 64))
for i in range(2):
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[128 + i * 4:131 + i * 4], v[80:83], 0 + i * 1, 3, v[175], v[172]))
k.emit(v_mfma_fp4(v[148 + i * 8:151 + i * 8], v[128 + i * 4:131 + i * 4], v[84:87], 2 + i * 1, 3, v[175], v[172]))
k.emit(ds_read_b128(v[12 + i * 8:15 + i * 8], v[185], v[0], v[0], 0, 0 + i * 64, 2))
k.emit(ds_read_b32(v[168], v[188], v[0], v[0], 0, 0, 8))
for i in range(2):
for j59 in range(2):
k.emit(v_mfma_fp4(v[176 + j59 * 8:179 + j59 * 8], v[120 + j59 * 4 + i * 8:123 + j59 * 4 + i * 8], v[88 + i * 8:91 + i * 8], 0 + j59 * 1, 0 + i * 3, v[175], v[173]))
k.emit(v_mfma_fp4(v[180 + j59 * 8:183 + j59 * 8], v[120 + j59 * 4 + i * 8:123 + j59 * 4 + i * 8], v[92 + i * 8:95 + i * 8], 2 + j59 * 1, 0 + i * 3, v[175], v[173]))
k.emit(ds_read_b128(v[24 + j59 * 8 + i * 4:27 + j59 * 8 + i * 4], v[185], v[0], v[0], 0, 128 + j59 * 64, 16 + i * 2))
k.emit(ds_read_b32(v[169], v[188], v[0], v[0], 0, 0, 9))
k.emit(s_cbranch_scc0(533), target='L1_2EC8')
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
for i in range(2):
k.emit(s_waitcnt(50559))
for j60 in range(2):
k.emit(v_mfma_fp4(v[0 + i * 32:3 + i * 32], v[136 + j60 * 8:139 + j60 * 8], v[8 + j60 * 8 + i * 16:11 + j60 * 8 + i * 16], 0, 0 + j60 * 3, v[176], v[168 + i * 1]))
k.emit(buffer_load_dwordx4(v[120 + j60 * 4 + i * 8:123 + j60 * 4 + i * 8], v[191 + j60 * 1], s[16:19], 0, 0 + i * 1024, 1))
k.emit(v_mfma_fp4(v[4 + i * 32:7 + i * 32], v[136 + j60 * 8:139 + j60 * 8], v[12 + j60 * 8 + i * 16:15 + j60 * 8 + i * 16], 2, 0 + j60 * 3, v[176], v[168 + i * 1]))
k.emit(ds_read_b128(v[40 + j60 * 4 + i * 16:43 + j60 * 4 + i * 16], v[185], v[0], v[0], 0, 0 + i * 128, 33 + j60 * 2 + i * 16))
k.emit(v_mfma_fp4(v[8 + i * 32:11 + i * 32], v[140 + j60 * 8:143 + j60 * 8], v[8 + j60 * 8 + i * 16:11 + j60 * 8 + i * 16], 1, 0 + j60 * 3, v[176], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[12 + i * 32:15 + i * 32], v[140 + j60 * 8:143 + j60 * 8], v[12 + j60 * 8 + i * 16:15 + j60 * 8 + i * 16], 3, 0 + j60 * 3, v[176], v[168 + i * 1]))
k.emit(ds_read_b128(v[48 + j60 * 4 + i * 16:51 + j60 * 4 + i * 16], v[185], v[0], v[0], 0, 64 + i * 128, 33 + j60 * 2 + i * 16))
k.emit(ds_read_b32(v[170 + i * 1], v[188], v[0], v[0], 0, 0, 10 + i * 1))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[64:67], v[136:139], v[40:43], 0, 0, v[176], v[170]))
k.emit(buffer_load_dword(v[175], v[194], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[68:71], v[136:139], v[44:47], 2, 0, v[176], v[170]))
k.emit(s_add_u32(s[63], LIT, s[60], 512))
k.emit(ds_read_b128(v[72:75], v[185], v[0], v[0], 0, 0, 66))
k.emit(v_mfma_fp4(v[72:75], v[140:143], v[40:43], 1, 0, v[176], v[170]))
k.emit(s_cmp_lt_u32(s[63], s[61]))
k.emit(v_mfma_fp4(v[76:79], v[140:143], v[44:47], 3, 0, v[176], v[170]))
k.emit(s_cselect_b32(s[67], s[67], 0))
k.emit(ds_read_b128(v[80:83], v[185], v[0], v[0], 0, 64, 66))
k.emit(v_mfma_fp4(v[64:67], v[144:147], v[48:51], 0, 3, v[176], v[170]))
k.emit(s_cselect_b32(s[69], s[69], 0))
k.emit(v_mfma_fp4(v[68:71], v[144:147], v[52:55], 2, 3, v[176], v[170]))
k.emit(s_add_u32(s[16], s[16], s[67]))
k.emit(ds_read_b128(v[76:79], v[185], v[0], v[0], 0, 0, 68))
k.emit(v_mfma_fp4(v[72:75], v[148:151], v[48:51], 1, 3, v[176], v[170]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(v_mfma_fp4(v[76:79], v[148:151], v[52:55], 3, 3, v[176], v[170]))
k.emit(s_sub_u32(s[18], s[18], s[67]))
k.emit(ds_read_b128(v[84:87], v[185], v[0], v[0], 0, 64, 68))
k.emit(ds_read_b32(v[172], v[188], v[0], v[0], 0, 0, 12))
k.emit(s_waitcnt(50559))
k.emit(v_mfma_fp4(v[96:99], v[136:139], v[56:59], 0, 0, v[176], v[171]))
k.emit(s_add_u32(s[24], s[24], s[69]))
k.emit(v_mfma_fp4(v[100:103], v[136:139], v[60:63], 2, 0, v[176], v[171]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(ds_read_b128(v[88:91], v[185], v[0], v[0], 0, 128, 82))
k.emit(v_mfma_fp4(v[104:107], v[140:143], v[56:59], 1, 0, v[176], v[171]))
k.emit(s_sub_u32(s[26], s[26], s[69]))
for i in range(2):
k.emit(v_mfma_fp4(v[108 + i * -8:111 + i * -8], v[140 + i * 4:143 + i * 4], v[60 + i * 8:63 + i * 8], 3 + i * -1, 0 + i * 3, v[176], v[171]))
k.emit(ds_read_b128(v[96 + i * -4:99 + i * -4], v[185], v[0], v[0], 0, 192 + i * -64, 82 + i * 2))
k.emit(v_mfma_fp4(v[96 + i * 8:99 + i * 8], v[144 + i * 4:147 + i * 4], v[64:67], 0 + i * 1, 3, v[176], v[171]))
k.emit(v_mfma_fp4(v[108:111], v[148:151], v[68:71], 3, 3, v[176], v[171]))
k.emit(ds_read_b128(v[100:103], v[185], v[0], v[0], 0, 192, 84))
k.emit(ds_read_b32(v[173], v[188], v[0], v[0], 0, 0, 13))
k.emit(s_barrier())
k.emit(s_waitcnt(50559))
for i in range(2):
k.emit(v_mfma_fp4(v[128:131], v[136 + i * 8:139 + i * 8], v[72 + i * 8:75 + i * 8], 0, 0 + i * 3, v[176], v[172]))
k.emit(s_add_u32(NULL, LIT, s[65], 2048 + i * 1024))
k.emit(buffer_load_dword(v[0], v[186 + i * 1], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[132:135], v[136 + i * 8:139 + i * 8], v[76 + i * 8:79 + i * 8], 2, 0 + i * 3, v[176], v[172]))
k.emit(v_mfma_fp4(v[136:139], v[140 + i * 8:143 + i * 8], v[72 + i * 8:75 + i * 8], 1, 0 + i * 3, v[176], v[172]))
k.emit(v_mfma_fp4(v[140:143], v[140 + i * 8:143 + i * 8], v[76 + i * 8:79 + i * 8], 3, 0 + i * 3, v[176], v[172]))
k.emit(s_waitcnt(49279))
for i in range(2):
k.emit(v_mfma_fp4(v[160:163], v[136 + i * 8:139 + i * 8], v[88 + i * 8:91 + i * 8], 0, 0 + i * 3, v[176], v[173]))
k.emit(s_add_u32(NULL, LIT, s[64], 25344 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[178 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[164:167], v[136 + i * 8:139 + i * 8], v[92 + i * 8:95 + i * 8], 2, 0 + i * 3, v[176], v[173]))
k.emit(v_mfma_fp4(v[168:171], v[140 + i * 8:143 + i * 8], v[88 + i * 8:91 + i * 8], 1, 0 + i * 3, v[176], v[173]))
k.emit(v_mfma_fp4(v[172:175], v[140 + i * 8:143 + i * 8], v[92 + i * 8:95 + i * 8], 3, 0 + i * 3, v[176], v[173]))
k.emit(s_waitcnt(20338))
k.emit(s_barrier())
k.emit(v_mfma_fp4(v[16:19], v[152:155], v[8:11], 0, 0, v[177], v[168]))
k.emit(s_add_u32(NULL, LIT, s[64], 33792))
k.emit(buffer_load_dwordx4(v[0:3], v[180], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[20:23], v[152:155], v[12:15], 2, 0, v[177], v[168]))
k.emit(v_mfma_fp4(v[24:27], v[156:159], v[8:11], 1, 0, v[177], v[168]))
for i in range(2):
k.emit(v_mfma_fp4(v[28:31], v[156 + i * 8:159 + i * 8], v[12 + i * 8:15 + i * 8], 3, 0 + i * 3, v[177], v[168]))
k.emit(v_mfma_fp4(v[16 + i * 32:19 + i * 32], v[160 + i * -8:163 + i * -8], v[16 + i * 8:19 + i * 8], 0, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[64], 38016 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[181 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[20 + i * 32:23 + i * 32], v[160 + i * -8:163 + i * -8], v[20 + i * 8:23 + i * 8], 2, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[164 + i * -8:167 + i * -8], v[16 + i * 8:19 + i * 8], 1, 3 + i * -3, v[177], v[168 + i * 1]))
k.emit(v_mfma_fp4(v[60:63], v[156:159], v[28:31], 3, 0, v[177], v[169]))
k.emit(v_mfma_fp4(v[48:51], v[160:163], v[32:35], 0, 3, v[177], v[169]))
k.emit(s_add_u32(NULL, LIT, s[64], 46464))
k.emit(buffer_load_dwordx4(v[0:3], v[183], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[52:55], v[160:163], v[36:39], 2, 3, v[177], v[169]))
k.emit(s_add_u32(s[62], LIT, s[60], 768))
k.emit(v_mfma_fp4(v[56:59], v[164:167], v[32:35], 1, 3, v[177], v[169]))
k.emit(s_cmp_lt_u32(s[62], s[61]))
k.emit(v_mfma_fp4(v[60:63], v[164:167], v[36:39], 3, 3, v[177], v[169]))
k.emit(s_cselect_b32(s[66], s[66], 0))
k.emit(v_mfma_fp4(v[80:83], v[152:155], v[40:43], 0, 0, v[177], v[170]))
k.emit(s_cselect_b32(s[68], s[68], 0))
k.emit(buffer_load_dwordx4(v[136:139], v[189], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[84:87], v[152:155], v[44:47], 2, 0, v[177], v[170]))
k.emit(s_add_u32(s[12], s[12], s[66]))
k.emit(v_mfma_fp4(v[88:91], v[156:159], v[40:43], 1, 0, v[177], v[170]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[92:95], v[156:159], v[44:47], 3, 0, v[177], v[170]))
k.emit(s_sub_u32(s[14], s[14], s[66]))
k.emit(v_mfma_fp4(v[80:83], v[160:163], v[48:51], 0, 3, v[177], v[170]))
k.emit(s_add_u32(s[20], s[20], s[68]))
k.emit(buffer_load_dwordx4(v[140:143], v[190], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[84:87], v[160:163], v[52:55], 2, 3, v[177], v[170]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[88:91], v[164:167], v[48:51], 1, 3, v[177], v[170]))
k.emit(s_sub_u32(s[22], s[22], s[68]))
k.emit(v_mfma_fp4(v[92:95], v[164:167], v[52:55], 3, 3, v[177], v[170]))
k.emit(s_addk_i32(s[60], 256))
k.emit(v_mfma_fp4(v[112:115], v[152:155], v[56:59], 0, 0, v[177], v[171]))
k.emit(s_cmp_lt_i32(s[60], s[61]))
for i in range(2):
k.emit(buffer_load_dwordx4(v[144 + i * 4:147 + i * 4], v[189 + i * 1], s[16:19], 0, 1024, 1))
k.emit(v_mfma_fp4(v[116:119], v[152 + i * 8:155 + i * 8], v[60 + i * 8:63 + i * 8], 2, 0 + i * 3, v[177], v[171]))
k.emit(v_mfma_fp4(v[120:123], v[156 + i * 8:159 + i * 8], v[56 + i * 8:59 + i * 8], 1, 0 + i * 3, v[177], v[171]))
k.emit(v_mfma_fp4(v[124:127], v[156 + i * 8:159 + i * 8], v[60 + i * 8:63 + i * 8], 3, 0 + i * 3, v[177], v[171]))
k.emit(v_mfma_fp4(v[112 + i * 32:115 + i * 32], v[160 + i * -8:163 + i * -8], v[64 + i * 8:67 + i * 8], 0, 3 + i * -3, v[177], v[171 + i * 1]))
k.emit(buffer_load_dword(v[176], v[193], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[152:155], v[76:79], 2, 0, v[177], v[172]))
k.emit(ds_read_b128(v[8:11], v[184]))
k.emit(v_mfma_fp4(v[152:155], v[156:159], v[72:75], 1, 0, v[177], v[172]))
k.emit(v_mfma_fp4(v[156:159], v[156:159], v[76:79], 3, 0, v[177], v[172]))
k.emit(ds_read_b128(v[16:19], v[184], v[0], v[0], 0, 64))
for i in range(2):
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[160 + i * 4:163 + i * 4], v[80:83], 0 + i * 1, 3, v[177], v[172]))
k.emit(v_mfma_fp4(v[148 + i * 8:151 + i * 8], v[160 + i * 4:163 + i * 4], v[84:87], 2 + i * 1, 3, v[177], v[172]))
k.emit(ds_read_b128(v[12 + i * 8:15 + i * 8], v[184], v[0], v[0], 0, 0 + i * 64, 2))
k.emit(ds_read_b32(v[168], v[188]))
for i in range(2):
for j61 in range(2):
k.emit(v_mfma_fp4(v[176 + j61 * 8:179 + j61 * 8], v[152 + j61 * 4 + i * 8:155 + j61 * 4 + i * 8], v[88 + i * 8:91 + i * 8], 0 + j61 * 1, 0 + i * 3, v[177], v[173]))
k.emit(v_mfma_fp4(v[180 + j61 * 8:183 + j61 * 8], v[152 + j61 * 4 + i * 8:155 + j61 * 4 + i * 8], v[92 + i * 8:95 + i * 8], 2 + j61 * 1, 0 + i * 3, v[177], v[173]))
k.emit(ds_read_b128(v[24 + j61 * 8 + i * 4:27 + j61 * 8 + i * 4], v[184], v[0], v[0], 0, 128 + j61 * 64, 16 + i * 2))
k.emit(ds_read_b32(v[169], v[188], v[0], v[0], 0, 0, 1))
k.emit(s_cbranch_scc0(1), target='L1_2EC8')
k.emit(s_branch(64473), target='L1_1E2C')
k.label('L1_2EC8')
k.emit(s_waitcnt())
k.emit(s_barrier())
k.emit(v_lshrrev_b32_e32(v[4], 5))
k.emit(v_mul_i32_i24_e32(v[4], 16, v[4]))
k.emit(v_lshrrev_b32_e32(v[5], 4))
k.emit(v_and_b32_e32(v[5], 1, v[5]))
k.emit(v_mul_i32_i24_e32(v[5], 32, v[5]))
k.emit(v_add_u32_e32(v[4], v[4], v[5]))
k.emit(v_and_b32_e32(v[5], 15))
k.emit(v_mul_i32_i24_e32(v[5], LIT, v[5], 128))
k.emit(v_add_u32_e32(v[4], v[4], v[5]))
k.emit(s_mul_i32(s[62], s[46], LIT, 24576))
k.emit(s_add_i32(s[62], s[62], 0))
k.emit(v_add_i32(v[4], v[4], s[62]))
for i in range(2):
for j62 in range(4):
k.emit(v_accvgpr_read(v[8 + j62 * 1 + i * 4], v[0 + j62 * 1 + i * 8]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(ds_write_b128(v[0], v[4], v[16:19]))
for i in range(2):
for j63 in range(4):
k.emit(v_accvgpr_read(v[8 + j63 * 1 + i * 4], v[16 + j63 * 1 + i * 8]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(ds_write_b128(v[0], v[4], v[16:19], v[0], 0, 64))
for i in range(5):
for j64 in range(2):
k.emit(v_accvgpr_read(v[8], v[4 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[9], v[5 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[10], v[6 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[11], v[7 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[12], v[12 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[13], v[13 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[14], v[14 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[15], v[15 + j64 * 28 + i * 32]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(ds_write_b128(v[0], v[4], v[16:19], v[0], 0, 0, 8 + j64 * 8 + i * 16))
k.emit(v_accvgpr_read(v[8], v[20 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[9], v[21 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[10], v[22 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[11], v[23 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[12], v[28 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[13], v[29 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[14], v[30 + j64 * 28 + i * 32]))
k.emit(v_accvgpr_read(v[15], v[31 + j64 * 28 + i * 32]))
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(ds_write_b128(v[0], v[4], v[16:19], v[0], 0, 64, 8 + j64 * 8 + i * 16))
for i in range(2):
for j65 in range(2):
k.emit(v_accvgpr_read(v[8 + j65 * 4], v[164 + j65 * 8 + i * 16]))
k.emit(v_accvgpr_read(v[9 + j65 * 4], v[165 + j65 * 8 + i * 16]))
k.emit(v_accvgpr_read(v[10 + j65 * 4], v[166 + j65 * 8 + i * 16]))
k.emit(v_accvgpr_read(v[11 + j65 * 4], v[167 + j65 * 8 + i * 16]))
for j66 in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + j66 * 1], v[8 + j66 * 2], v[9 + j66 * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(ds_write_b128(v[0], v[4], v[16:19], v[0], 0, 0 + i * 64, 88))
k.emit(s_waitcnt(49279))
k.emit(v_mul_i32_i24_e64(v[4], v[0], 16))
k.emit(v_add_i32(v[4], v[4], s[62]))
k.emit(ds_read_b128(v[16:19], v[4]))
for i in range(23):
k.emit(s_waitcnt(49279))
k.emit(buffer_store_dwordx4(v[16:19], v[195 + i * 1], s[4:7], 0, 0, 1))
k.emit(ds_read_b128(v[16:19], v[4], v[0], v[0], 0, 0, 4 + i * 4))
k.emit(s_waitcnt(49279))
k.emit(buffer_store_dwordx4(v[16:19], v[218], s[4:7], 0, 0, 1))
k.emit(s_waitcnt())
k.emit(s_endpgm())
elif (tile_m, tile_n) == (256, 256):
k.emit(s_and_b32(s[1], s[1], LIT, 65535))
k.emit(s_mov_b32(s[56], s[4]))
k.emit(s_load_dwordx2(s[4:5], s[0:1], s[0], 0, 0, 0, 0, 1))
k.emit(s_mov_b32(s[8], 0))
k.emit(s_mov_b32(s[9], 0))
k.emit(s_load_dwordx2(s[12:13], s[0:1], s[0], 8, 0, 0, 0, 1))
k.emit(s_load_dwordx2(s[16:17], s[0:1], s[0], 16, 0, 0, 0, 1))
k.emit(s_mov_b32(s[38], 1.0))
k.emit(s_mov_b32(s[39], 0))
k.emit(s_mov_b32(s[40], N))
k.emit(s_mov_b32(s[41], K))
k.emit(s_mov_b32(s[42], K))
k.emit(s_mov_b32(s[43], M))
k.emit(s_mov_b32(s[44], N))
k.emit(s_mov_b32(s[45], K))
k.emit(s_load_dwordx2(s[20:21], s[0:1], s[0], 24, 0, 0, 0, 1))
k.emit(s_load_dwordx2(s[24:25], s[0:1], s[0], 32, 0, 0, 0, 1))
k.emit(s_mov_b32(s[36], scale_k))
k.emit(s_mov_b32(s[37], scale_k))
k.emit(s_mov_b32(s[57], 0))
k.emit(v_lshrrev_b32_e32(v[1], 10))
k.emit(v_lshrrev_b32_e32(v[2], 10, v[1]))
k.emit(v_and_b32_e32(v[2], LIT, v[2], 1023))
k.emit(v_and_b32_e32(v[1], LIT, v[1], 1023))
k.emit(v_and_b32_e32(v[0], LIT, v[0], 1023))
k.emit(v_lshrrev_b32_e32(v[3], 6))
k.emit(v_and_b32_e32(v[0], 63))
k.emit(s_mov_b32(s[46], s[2]))
k.emit(s_mov_b32(s[47], s[3]))
k.emit(v_readfirstlane_b32_e32(v[49], v[3]))
k.emit(s_waitcnt(49279))
k.emit(s_add_u32(s[55], s[44], LIT, 255))
k.emit(s_lshr_b32(s[54], s[55], 8))
k.emit(s_mul_i32(s[48], s[54], s[47]))
k.emit(s_add_i32(s[48], s[48], s[46]))
k.emit(s_add_u32(s[55], s[43], LIT, 255))
k.emit(s_lshr_b32(s[52], s[55], 8))
k.emit(s_lshl_b32(s[52], s[52], 5))
k.emit(s_mov_b32(s[46], 0))
k.label('L2_00E8')
k.emit(s_cmp_lt_i32(s[48], s[52]))
k.emit(s_cbranch_scc1(3), target='L2_00FC')
k.emit(s_sub_i32(s[48], s[48], s[52]))
k.emit(s_add_i32(s[46], s[46], 32))
k.emit(s_branch(65531), target='L2_00E8')
k.label('L2_00FC')
k.emit(s_sub_i32(s[54], s[54], s[46]))
k.emit(s_cmp_lt_i32(s[54], 32))
k.emit(s_cbranch_scc1(3), target='L2_0114')
k.emit(s_lshr_b32(s[47], s[48], 5))
k.emit(s_and_b32(s[52], s[48], 31))
k.emit(s_branch(32), target='L2_0194')
k.label('L2_0114')
k.emit(v_cvt_f32_u32_e32(v[4], s[54]))
k.emit(s_sub_i32(s[47], 0, s[54]))
k.emit(v_rcp_iflag_f32_e32(v[4], v[4]))
k.emit(s_nop())
k.emit(v_mul_f32_e32(v[4], LIT, v[4], 1333788670))
k.emit(v_cvt_u32_f32_e32(v[4], v[4]))
k.emit(v_mul_lo_u32(v[5], s[47], v[4]))
k.emit(v_mul_hi_u32(v[5], v[4], v[5]))
k.emit(v_add_u32_e32(v[4], v[4], v[5]))
k.emit(v_mul_hi_u32(v[4], s[48], v[4]))
k.emit(v_mul_lo_u32(v[5], v[4], s[54]))
k.emit(v_sub_u32_e32(v[7], s[48], v[5]))
k.emit(v_add_u32_e32(v[6], 1, v[4]))
k.emit(v_cmp_le_u32_e32(s[54], v[7]))
k.emit(v_subrev_u32_e32(v[5], s[54], v[7]))
k.emit(s_nop())
k.emit(v_cndmask_b32_e32(v[4], v[4], v[6]))
k.emit(v_cndmask_b32_e32(v[7], v[7], v[5]))
k.emit(v_add_u32_e32(v[5], 1, v[4]))
k.emit(v_cmp_le_u32_e32(s[54], v[7]))
k.emit(s_nop(1))
k.emit(v_cndmask_b32_e32(v[7], v[4], v[5]))
k.emit(s_nop(3))
k.emit(v_readfirstlane_b32_e32(v[47], v[7]))
k.emit(s_nop(3))
k.emit(s_mul_i32(s[52], s[54], s[47]))
k.emit(s_sub_i32(s[52], s[48], s[52]))
k.label('L2_0194')
k.emit(s_add_i32(s[46], s[52], s[46]))
k.emit(s_mov_b32(s[6], -16))
k.emit(s_mov_b32(s[10], -16))
k.emit(s_mov_b32(s[18], -16))
k.emit(s_mov_b32(s[14], -16))
k.emit(s_mov_b32(s[7], LIT, 131072))
k.emit(s_mov_b32(s[11], LIT, 131072))
k.emit(s_mov_b32(s[19], LIT, 131072))
k.emit(s_mov_b32(s[15], LIT, 131072))
k.emit(s_and_b32(s[5], s[5], LIT, 65535))
k.emit(s_and_b32(s[9], s[9], LIT, 65535))
k.emit(s_and_b32(s[17], s[17], LIT, 65535))
k.emit(s_and_b32(s[13], s[13], LIT, 65535))
k.emit(s_or_b32(s[5], s[5], LIT, 262144))
k.emit(s_or_b32(s[9], s[9], LIT, 262144))
k.emit(s_or_b32(s[17], s[17], LIT, 262144))
k.emit(s_or_b32(s[13], s[13], LIT, 262144))
k.emit(s_cmp_gt_u32(s[57], 0))
k.emit(s_cbranch_scc0(9), target='L2_0234')
k.emit(s_lshr_b32(s[58], s[45], s[57]))
k.emit(s_add_u32(s[58], s[58], LIT, 255))
k.emit(s_lshr_b32(s[58], s[58], 8))
k.emit(s_lshl_b32(s[58], s[58], 8))
k.emit(s_mul_i32(s[53], s[58], s[56]))
k.emit(s_sub_i32(s[52], s[45], s[53]))
k.emit(s_cmp_lt_i32(s[52], s[58]))
k.emit(s_cselect_b32(s[45], s[52], s[58]))
k.label('L2_0234')
k.emit(s_lshr_b32(s[41], s[41], 1))
k.emit(s_mul_i32(s[52], s[41], s[43]))
k.emit(s_mov_b32(s[14], s[52]))
k.emit(s_cmp_gt_u32(s[57], 0))
k.emit(s_cbranch_scc0(5), target='L2_025C')
k.emit(s_mul_i32(s[53], s[58], s[56]))
k.emit(s_lshr_b32(s[52], s[53], 1))
k.emit(s_add_u32(s[12], s[12], s[52]))
k.emit(s_addc_u32(s[13], s[13], 0))
k.emit(s_sub_u32(s[14], s[14], s[52]))
k.label('L2_025C')
k.emit(s_lshr_b32(s[42], s[42], 1))
k.emit(s_mul_i32(s[52], s[42], s[44]))
k.emit(s_mov_b32(s[18], s[52]))
k.emit(s_add_u32(s[52], s[43], 31))
k.emit(s_lshr_b32(s[52], s[52], 5))
k.emit(s_lshl_b32(s[52], s[52], 5))
k.emit(s_mul_i32(s[53], s[52], s[36]))
k.emit(s_mov_b32(s[22], s[53]))
k.emit(s_mul_i32(s[53], s[44], s[37]))
k.emit(s_mov_b32(s[26], s[53]))
k.emit(s_mov_b32(s[23], LIT, 131072))
k.emit(s_mov_b32(s[27], LIT, 131072))
k.emit(s_and_b32(s[21], s[21], LIT, 65535))
k.emit(s_and_b32(s[25], s[25], LIT, 65535))
k.emit(s_or_b32(s[21], s[21], LIT, 262144))
k.emit(s_or_b32(s[25], s[25], LIT, 262144))
k.emit(v_lshrrev_b32_e32(v[4], 3))
k.emit(v_lshrrev_b32_e32(v[5], 2, v[4]))
k.emit(v_lshlrev_b32_e32(v[5], 4, v[5]))
k.emit(v_and_b32_e32(v[4], 3, v[4]))
k.emit(v_lshrrev_b32_e32(v[6], 1, v[4]))
k.emit(v_lshlrev_b32_e32(v[6], 2, v[6]))
k.emit(v_add_u32_e32(v[5], v[5], v[6]))
k.emit(v_and_b32_e32(v[4], 1, v[4]))
k.emit(v_add_u32_e32(v[5], v[5], v[4]))
k.emit(v_mul_lo_u32(v[212], s[41], v[5]))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_lshlrev_b32_e32(v[4], 4, v[4]))
k.emit(v_add_u32_e32(v[212], v[212], v[4]))
k.emit(s_lshr_b32(s[52], s[49], 1))
k.emit(s_mul_i32(s[52], s[52], 8))
k.emit(s_and_b32(s[53], s[49], 1))
k.emit(s_mul_i32(s[53], s[53], 2))
k.emit(s_add_u32(s[52], s[52], s[53]))
k.emit(s_mul_i32(s[53], s[47], LIT, 256))
k.emit(s_add_u32(s[52], s[52], s[53]))
k.emit(s_mul_i32(s[52], s[41], s[52]))
k.emit(v_add_u32_e32(v[212], s[52], v[212]))
k.emit(s_mul_i32(s[52], s[41], 32))
for i in range(7):
k.emit(v_add_u32_e32(v[213 + i * 1], s[52], v[212 + i * 1]))
k.emit(s_mul_i32(s[59], LIT, s[49], 1056))
k.emit(s_add_u32(s[59], LIT, s[59], 4096))
k.emit(v_and_b32_e32(v[4], 15))
k.emit(v_lshrrev_b32_e32(v[5], 3, v[4]))
k.emit(v_mul_i32_i24_e32(v[5], 2, v[5]))
k.emit(v_and_b32_e32(v[4], 3))
k.emit(v_lshrrev_b32_e32(v[6], 1, v[4]))
k.emit(v_add_u32_e32(v[4], v[5], v[6]))
k.emit(v_mul_i32_i24_e32(v[220], LIT, v[4], 1056))
k.emit(v_and_b32_e32(v[4], 7))
k.emit(v_lshrrev_b32_e32(v[5], 2, v[4]))
k.emit(v_mul_i32_i24_e32(v[5], LIT, v[5], 256))
k.emit(v_add_u32_e32(v[220], v[5], v[220]))
k.emit(v_and_b32_e32(v[4], 1))
k.emit(v_mul_i32_i24_e32(v[6], LIT, v[4], 128))
k.emit(v_add_u32_e32(v[220], v[6], v[220]))
k.emit(v_lshrrev_b32_e32(v[4], 4))
k.emit(v_mul_i32_i24_e32(v[4], 16, v[4]))
k.emit(v_add_u32_e32(v[220], v[4], v[220]))
k.emit(s_mov_b32(s[52], LIT, 4096))
k.emit(v_add_u32_e64(v[220], v[220], s[52]))
k.emit(v_add_u32_e32(v[221], LIT, v[220], 33792))
k.emit(s_cmp_gt_u32(s[57], 0))
k.emit(s_cbranch_scc0(4), target='L2_03C4')
k.emit(s_mul_i32(s[53], s[58], s[56]))
k.emit(s_add_u32(s[20], s[20], s[53]))
k.emit(s_addc_u32(s[21], s[21], 0))
k.emit(s_sub_u32(s[22], s[22], s[53]))
k.label('L2_03C4')
k.emit(v_lshlrev_b32_e32(v[222], 2))
k.emit(s_mul_i32(s[52], s[47], LIT, 256))
k.emit(s_mul_i32(s[53], s[49], 32))
k.emit(s_add_i32(s[52], s[53], s[52]))
k.emit(s_mul_i32(s[53], s[52], s[36]))
k.emit(v_add_u32_e32(v[222], s[53], v[222]))
k.emit(s_mul_i32(s[53], LIT, s[36], 128))
k.emit(v_add_u32_e32(v[223], s[53], v[222]))
k.emit(s_mul_i32(s[60], s[49], LIT, 256))
k.emit(s_add_i32(s[60], s[60], 0))
k.emit(v_lshlrev_b32_e32(v[224], 2))
k.emit(v_add_u32_e32(v[224], 0, v[224]))
k.emit(s_cmp_gt_u32(s[57], 0))
k.emit(s_cbranch_scc0(6), target='L2_0420')
k.emit(s_mul_i32(s[53], s[58], s[56]))
k.emit(s_lshr_b32(s[52], s[53], 1))
k.emit(s_mul_i32(s[52], s[52], 16))
k.emit(s_add_u32(s[16], s[16], s[52]))
k.emit(s_addc_u32(s[17], s[17], 0))
k.emit(s_sub_u32(s[18], s[18], s[52]))
k.label('L2_0420')
k.emit(v_lshlrev_b32_e32(v[225], 4))
k.emit(s_mul_i32(s[52], s[46], LIT, 256))
k.emit(s_mul_i32(s[53], s[49], 64))
k.emit(s_add_u32(s[52], s[52], s[53]))
k.emit(s_mul_i32(s[52], s[52], s[42]))
k.emit(v_add_u32_e32(v[225], s[52], v[225]))
k.emit(s_mul_i32(s[52], 16, s[42]))
k.emit(v_add_u32_e32(v[226], s[52], v[225]))
k.emit(v_add_u32_e32(v[227], s[52], v[226]))
k.emit(v_add_u32_e32(v[228], s[52], v[227]))
for i in range(4):
k.emit(v_add_u32_e32(v[229 + i * 1], LIT, v[225 + i * 1], 1024))
k.emit(s_cmp_gt_u32(s[57], 0))
k.emit(s_cbranch_scc0(4), target='L2_0484')
k.emit(s_mul_i32(s[53], s[58], s[56]))
k.emit(s_add_u32(s[24], s[24], s[53]))
k.emit(s_addc_u32(s[25], s[25], 0))
k.emit(s_sub_u32(s[26], s[26], s[53]))
k.label('L2_0484')
k.emit(v_lshlrev_b32_e32(v[233], 2))
k.emit(s_mul_i32(s[52], s[46], LIT, 256))
k.emit(s_mul_i32(s[53], s[49], 64))
k.emit(s_add_i32(s[52], s[53], s[52]))
k.emit(s_mul_i32(s[53], s[52], s[37]))
k.emit(v_add_u32_e32(v[233], s[53], v[233]))
k.emit(s_mul_i32(s[52], 32, s[37]))
k.emit(v_add_u32_e32(v[234], s[52], v[233]))
k.emit(s_mov_b32(s[61], LIT, 128))
k.emit(s_mov_b32(s[62], LIT, 2048))
k.emit(s_mov_b32(s[63], LIT, 256))
k.emit(s_mov_b32(s[64], LIT, 256))
k.emit(s_add_u32(NULL, 0, s[59]))
for i in range(3):
k.emit(buffer_load_dwordx4(v[0:3], v[212 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for j67 in range(8):
k.emit(v_accvgpr_write(v[0 + j67 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[59], 4224 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[215], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[24 + i * 1], 0))
k.emit(s_add_u32(NULL, 0, s[60]))
k.emit(buffer_load_dword(v[0], v[222], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(4):
for j68 in range(8):
k.emit(v_accvgpr_write(v[32 + j68 * 1 + i * 8], 0))
k.emit(s_add_u32(NULL, LIT, s[59], 16896 + i * 4224))
k.emit(buffer_load_dwordx4(v[0:3], v[216 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[64 + i * 1], 0))
k.emit(s_add_u32(NULL, LIT, s[60], 1024))
k.emit(buffer_load_dword(v[0], v[223], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[72 + i * 1], 0))
for i in range(2):
k.emit(s_add_u32(s[12 + i * 8], s[61 + i * 2], s[12 + i * 8]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[61 + i * 2]))
for i in range(8):
for j69 in range(8):
k.emit(v_accvgpr_write(v[80 + j69 * 1 + i * 8], 0))
k.emit(buffer_load_dwordx4(v[136 + i * 4:139 + i * 4], v[225 + i * 1], s[16:19], 0, 0, 1))
for i in range(8):
k.emit(v_accvgpr_write(v[144 + i * 1], 0))
k.emit(s_add_u32(s[16], s[62], s[16]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(s_sub_u32(s[18], s[18], s[62]))
for i in range(2):
k.emit(buffer_load_dword(v[208 + i * 1], v[233 + i * 1], s[24:27], 0, 0, 1))
for j70 in range(8):
k.emit(v_accvgpr_write(v[152 + j70 * 1 + i * 8], 0))
k.emit(s_add_u32(s[24], s[64], s[24]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(s_sub_u32(s[26], s[26], s[64]))
for i in range(2):
for j71 in range(4):
k.emit(s_add_u32(NULL, LIT, s[59], 33792 + j71 * 4224 + i * 16896))
k.emit(buffer_load_dwordx4(v[0:3], v[212 + j71 * 1 + i * 4], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_accvgpr_write(v[168 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[169 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[170 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[171 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[172 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[173 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[174 + j71 * 8 + i * 40], 0))
k.emit(v_accvgpr_write(v[175 + j71 * 8 + i * 40], 0))
k.emit(s_add_u32(NULL, LIT, s[60], 2048 + i * 1024))
k.emit(buffer_load_dword(v[0], v[222 + i * 1], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
for j72 in range(8):
k.emit(v_accvgpr_write(v[200 + j72 * 1 + i * 40], 0))
for i in range(2):
k.emit(s_add_u32(s[12 + i * 8], s[61 + i * 2], s[12 + i * 8]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[61 + i * 2]))
for i in range(8):
k.emit(v_accvgpr_write(v[248 + i * 1], 0))
k.emit(s_waitcnt(20345))
k.emit(s_barrier())
k.emit(ds_read_b128(v[8:11], v[220]))
k.emit(ds_read_b128(v[40:43], v[220], v[0], v[0], 0, 64))
for i in range(2):
k.emit(ds_read_b128(v[12 + i * 44:15 + i * 44], v[220], v[0], v[0], 0, 0 + i * 64, 2 + i * 31))
k.emit(ds_read_b128(v[44 + i * -16:47 + i * -16], v[220], v[0], v[0], 0, 64 + i * -64, 2 + i * 33))
k.emit(ds_read_b128(v[16 + i * 44:19 + i * 44], v[220], v[0], v[0], 0, 128 + i * -64, 16 + i * 19))
k.emit(ds_read_b128(v[48 + i * -16:51 + i * -16], v[220], v[0], v[0], 0, 192 + i * -64, 16 + i * 33))
k.emit(ds_read_b128(v[20 + i * 44:23 + i * 44], v[220], v[0], v[0], 0, 128 + i * 64, 18 + i * 31))
k.emit(ds_read_b128(v[52 + i * -16:55 + i * -16], v[220], v[0], v[0], 0, 192 + i * -64, 18 + i * 33))
k.emit(ds_read_b128(v[24 + i * 44:27 + i * 44], v[220], v[0], v[0], 0, 0 + i * 192, 33 + i * 18))
k.emit(ds_read_b32(v[200], v[224]))
k.emit(ds_read_b32(v[201], v[224], v[0], v[0], 0, 0, 1))
k.emit(ds_read_b32(v[202], v[224], v[0], v[0], 0, 0, 2))
k.emit(ds_read_b32(v[203], v[224], v[0], v[0], 0, 0, 3))
k.emit(s_lshl_b32(s[40], s[40], 1))
k.emit(s_mul_i32(s[52], s[47], LIT, 256))
k.emit(s_mul_hi_u32(s[53], s[52], s[40]))
k.emit(s_add_u32(s[5], s[5], s[53]))
k.emit(s_mul_i32(s[53], s[52], s[40]))
k.emit(s_add_u32(s[4], s[4], s[53]))
k.emit(s_addc_u32(s[5], 0, s[5]))
k.emit(s_sub_i32(s[52], s[43], s[52]))
k.emit(s_mul_i32(s[52], s[52], s[40]))
k.emit(s_mov_b32(s[6], s[52]))
k.emit(v_and_b32_e64(v[235], v[0], 15))
k.emit(v_mul_lo_u32(v[235], v[235], s[40]))
k.emit(v_lshrrev_b32_e32(v[4], 5))
k.emit(v_mul_i32_i24_e32(v[4], 16, v[4]))
k.emit(v_add_u32_e32(v[235], v[4], v[235]))
k.emit(v_lshrrev_b32_e32(v[4], 4))
k.emit(v_and_b32_e32(v[4], 1, v[4]))
k.emit(v_mul_i32_i24_e32(v[4], 32, v[4]))
k.emit(v_add_u32_e32(v[235], v[4], v[235]))
k.emit(s_mul_i32(s[52], s[46], LIT, 256))
k.emit(s_mul_i32(s[53], s[49], 64))
k.emit(s_add_i32(s[52], s[52], s[53]))
k.emit(s_lshl_b32(s[52], s[52], 1))
k.emit(v_add_u32_e32(v[235], s[52], v[235]))
k.emit(s_mul_i32(s[53], s[40], 16))
for i in range(15):
k.emit(v_add_u32_e64(v[236 + i * 1], v[235 + i * 1], s[53]))
k.emit(s_mov_b32(s[50], 0))
k.emit(s_mov_b32(s[51], s[45]))
for i in range(2):
k.emit(s_cmp_lt_u32(LIT, s[51], 512 + i * -256))
k.emit(s_cselect_b32(s[61 + i * 1], s[61 + i * 1], 0))
k.emit(s_cselect_b32(s[63 + i * 1], s[63 + i * 1], 0))
k.emit(s_cmp_lt_i32(s[49], 2))
k.emit(s_cbranch_scc0(1367), target='L2_25B8')
k.label('L2_105C')
k.emit(s_waitcnt(122))
k.emit(v_mfma_fp4(v[0:3], v[136:139], v[8:11], 0, 0, v[208], v[200]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(s_nop())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 64:7 + i * 64], v[136 + i * 8:139 + i * 8], v[12:15], 2, 0, v[208 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[168 + i * 16:171 + i * 16], v[225 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[32 + i * 64:35 + i * 64], v[140 + i * 8:143 + i * 8], v[8:11], 1, 0, v[208 + i * 1], v[200]))
k.emit(ds_read_b128(v[72 + i * 8:75 + i * 8], v[220], v[0], v[0], 0, 0 + i * 128, 66 + i * 16))
k.emit(v_mfma_fp4(v[36 + i * 64:39 + i * 64], v[140 + i * 8:143 + i * 8], v[12:15], 3, 0, v[208 + i * 1], v[200]))
k.emit(v_mfma_fp4(v[8 + i * 64:11 + i * 64], v[136 + i * 8:139 + i * 8], v[16:19], 0, 0, v[208 + i * 1], v[201]))
for j73 in range(2):
k.emit(v_mfma_fp4(v[12 + j73 * 8 + i * 64:15 + j73 * 8 + i * 64], v[136 + i * 8:139 + i * 8], v[20 + j73 * 8:23 + j73 * 8], 2, 0, v[208 + i * 1], v[201 + j73 * 1]))
k.emit(buffer_load_dwordx4(v[172 + j73 * 4 + i * 16:175 + j73 * 4 + i * 16], v[226 + j73 * 1 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[40 + j73 * 8 + i * 64:43 + j73 * 8 + i * 64], v[140 + i * 8:143 + i * 8], v[16 + j73 * 8:19 + j73 * 8], 1, 0, v[208 + i * 1], v[201 + j73 * 1]))
k.emit(ds_read_b128(v[104 + j73 * -28 + i * 8:107 + j73 * -28 + i * 8], v[220], v[0], v[0], 0, 64 + j73 * -64 + i * 128, 66 + j73 * 2 + i * 16))
k.emit(v_mfma_fp4(v[44 + j73 * 8 + i * 64:47 + j73 * 8 + i * 64], v[140 + i * 8:143 + i * 8], v[20 + j73 * 8:23 + j73 * 8], 3, 0, v[208 + i * 1], v[201 + j73 * 1]))
k.emit(v_mfma_fp4(v[16 + j73 * 8 + i * 64:19 + j73 * 8 + i * 64], v[136 + i * 8:139 + i * 8], v[24 + j73 * 8:27 + j73 * 8], 0, 0, v[208 + i * 1], v[202 + j73 * 1]))
k.emit(v_mfma_fp4(v[28 + i * 64:31 + i * 64], v[136 + i * 8:139 + i * 8], v[36:39], 2, 0, v[208 + i * 1], v[203]))
k.emit(buffer_load_dwordx4(v[180 + i * 16:183 + i * 16], v[228 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[56 + i * 64:59 + i * 64], v[140 + i * 8:143 + i * 8], v[32:35], 1, 0, v[208 + i * 1], v[203]))
k.emit(ds_read_b128(v[108 + i * 8:111 + i * 8], v[220], v[0], v[0], 0, 64 + i * 128, 68 + i * 16))
k.emit(v_mfma_fp4(v[60 + i * 64:63 + i * 64], v[140 + i * 8:143 + i * 8], v[36:39], 3, 0, v[208 + i * 1], v[203]))
k.emit(v_mfma_fp4(v[64 + i * -64:67 + i * -64], v[144 + i * 8:147 + i * 8], v[8 + i * 32:11 + i * 32], 0, 0 + i * 3, v[209 + i * -1], v[200]))
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 8:7 + i * 8], v[152:155], v[44 + i * 8:47 + i * 8], 2, 3, v[208], v[200 + i * 1]))
k.emit(buffer_load_dword(v[210 + i * 1], v[233 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[156:159], v[40 + i * 8:43 + i * 8], 1, 3, v[208], v[200 + i * 1]))
k.emit(ds_read_b128(v[88 + i * 32:91 + i * 32], v[220], v[0], v[0], 0, 0 + i * 64, 99))
k.emit(v_mfma_fp4(v[36 + i * 8:39 + i * 8], v[156:159], v[44 + i * 8:47 + i * 8], 3, 3, v[208], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[8 + i * 8:11 + i * 8], v[152:155], v[48 + i * 8:51 + i * 8], 0, 3, v[208], v[201 + i * 1]))
k.emit(s_add_u32(s[53], LIT, s[50], 512))
k.emit(v_mfma_fp4(v[20:23], v[152:155], v[60:63], 2, 3, v[208], v[202]))
k.emit(ds_read_b128(v[92:95], v[220], v[0], v[0], 0, 0, 101))
k.emit(v_mfma_fp4(v[48:51], v[156:159], v[56:59], 1, 3, v[208], v[202]))
k.emit(s_cmp_lt_u32(s[53], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[52 + i * -24:55 + i * -24], v[156 + i * -4:159 + i * -4], v[60 + i * 8:63 + i * 8], 3 + i * -1, 3, v[208], v[202 + i * 1]))
k.emit(ds_read_b128(v[124 + i * -28:127 + i * -28], v[220], v[0], v[0], 0, 64 + i * 64, 101 + i * 14))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[152 + i * 4:155 + i * 4], v[64:67], 0 + i * 1, 3, v[208], v[203]))
k.emit(s_cselect_b32(s[62 + i * 2], s[62 + i * 2], 0))
k.emit(v_mfma_fp4(v[60:63], v[156:159], v[68:71], 3, 3, v[208], v[203]))
k.emit(ds_read_b128(v[128:131], v[220], v[0], v[0], 0, 192, 115))
k.emit(v_mfma_fp4(v[64:67], v[160:163], v[40:43], 0, 3, v[209], v[200]))
k.emit(s_add_u32(s[16], s[62], s[16]))
k.emit(v_mfma_fp4(v[68:71], v[160:163], v[44:47], 2, 3, v[209], v[200]))
k.emit(ds_read_b128(v[100:103], v[220], v[0], v[0], 0, 128, 117))
k.emit(v_mfma_fp4(v[96:99], v[164:167], v[40:43], 1, 3, v[209], v[200]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(v_mfma_fp4(v[100:103], v[164:167], v[44:47], 3, 3, v[209], v[200]))
k.emit(ds_read_b128(v[132:135], v[220], v[0], v[0], 0, 192, 117))
k.emit(v_mfma_fp4(v[72:75], v[160:163], v[48:51], 0, 3, v[209], v[201]))
k.emit(s_sub_u32(s[18], s[18], s[62]))
k.emit(v_mfma_fp4(v[76:79], v[160:163], v[52:55], 2, 3, v[209], v[201]))
k.emit(ds_read_b32(v[204], v[224], v[0], v[0], 0, 0, 4))
k.emit(v_mfma_fp4(v[104:107], v[164:167], v[48:51], 1, 3, v[209], v[201]))
k.emit(s_add_u32(s[24], s[64], s[24]))
k.emit(v_mfma_fp4(v[108:111], v[164:167], v[52:55], 3, 3, v[209], v[201]))
k.emit(ds_read_b32(v[205], v[224], v[0], v[0], 0, 0, 5))
k.emit(v_mfma_fp4(v[80:83], v[160:163], v[56:59], 0, 3, v[209], v[202]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(v_mfma_fp4(v[84:87], v[160:163], v[60:63], 2, 3, v[209], v[202]))
k.emit(ds_read_b32(v[206], v[224], v[0], v[0], 0, 0, 6))
k.emit(v_mfma_fp4(v[112:115], v[164:167], v[56:59], 1, 3, v[209], v[202]))
k.emit(s_sub_u32(s[26], s[26], s[64]))
k.emit(v_mfma_fp4(v[116:119], v[164:167], v[60:63], 3, 3, v[209], v[202]))
k.emit(ds_read_b32(v[207], v[224], v[0], v[0], 0, 0, 7))
k.emit(v_mfma_fp4(v[88:91], v[160:163], v[64:67], 0, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[92:95], v[160:163], v[68:71], 2, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[120:123], v[164:167], v[64:67], 1, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[124:127], v[164:167], v[68:71], 3, 3, v[209], v[203]))
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[128:131], v[136:139], v[72:75], 0, 0, v[208], v[204]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(v_mfma_fp4(v[132:135], v[136:139], v[76:79], 2, 0, v[208], v[204]))
k.emit(s_add_u32(NULL, 0, s[59]))
k.emit(v_mfma_fp4(v[160:163], v[140:143], v[72:75], 1, 0, v[208], v[204]))
k.emit(ds_read_b128(v[8:11], v[221]))
k.emit(v_mfma_fp4(v[164:167], v[140:143], v[76:79], 3, 0, v[208], v[204]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[136:139], v[80:83], 0, 0, v[208], v[205]))
k.emit(ds_read_b128(v[40:43], v[221], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[140:143], v[136:139], v[84:87], 2, 0, v[208], v[205]))
k.emit(s_add_u32(NULL, LIT, s[59], 4224))
for i in range(2):
k.emit(v_mfma_fp4(v[168 + i * 8:171 + i * 8], v[140:143], v[80 + i * 8:83 + i * 8], 1, 0, v[208], v[205 + i * 1]))
k.emit(ds_read_b128(v[12 + i * 4:15 + i * 4], v[221], v[0], v[0], 0, 0 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[172 + i * 8:175 + i * 8], v[140:143], v[84 + i * 8:87 + i * 8], 3, 0, v[208], v[205 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[213 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[136:139], v[88 + i * 8:91 + i * 8], 0, 0, v[208], v[206 + i * 1]))
k.emit(ds_read_b128(v[44 + i * 4:47 + i * 4], v[221], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[148 + i * 8:151 + i * 8], v[136:139], v[92 + i * 8:95 + i * 8], 2, 0, v[208], v[206 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 8448 + i * 4224))
k.emit(v_mfma_fp4(v[184:187], v[140:143], v[96:99], 1, 0, v[208], v[207]))
k.emit(ds_read_b128(v[20:23], v[221], v[0], v[0], 0, 128, 18))
k.emit(v_mfma_fp4(v[188:191], v[140:143], v[100:103], 3, 0, v[208], v[207]))
k.emit(buffer_load_dwordx4(v[0:3], v[215], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[192:195], v[144:147], v[72:75], 0, 0, v[209], v[204]))
k.emit(ds_read_b128(v[52:55], v[221], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[196:199], v[144:147], v[76:79], 2, 0, v[209], v[204]))
k.emit(s_add_u32(NULL, 0, s[60]))
k.emit(v_mfma_fp4(v[224:227], v[148:151], v[72:75], 1, 0, v[209], v[204]))
k.emit(ds_read_b128(v[24:27], v[221], v[0], v[0], 0, 0, 33))
k.emit(v_mfma_fp4(v[228:231], v[148:151], v[76:79], 3, 0, v[209], v[204]))
k.emit(buffer_load_dword(v[0], v[222], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[200:203], v[144:147], v[80:83], 0, 0, v[209], v[205]))
k.emit(ds_read_b128(v[56:59], v[221], v[0], v[0], 0, 64, 33))
k.emit(v_mfma_fp4(v[204:207], v[144:147], v[84:87], 2, 0, v[209], v[205]))
k.emit(s_add_u32(NULL, LIT, s[59], 16896))
k.emit(v_mfma_fp4(v[232:235], v[148:151], v[80:83], 1, 0, v[209], v[205]))
k.emit(ds_read_b128(v[28:31], v[221], v[0], v[0], 0, 0, 35))
for i in range(2):
k.emit(v_mfma_fp4(v[236 + i * 8:239 + i * 8], v[148:151], v[84 + i * 8:87 + i * 8], 3, 0, v[209], v[205 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[216 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[208 + i * 8:211 + i * 8], v[144:147], v[88 + i * 8:91 + i * 8], 0, 0, v[209], v[206 + i * 1]))
k.emit(ds_read_b128(v[60 + i * 4:63 + i * 4], v[221], v[0], v[0], 0, 64 + i * 128, 35 + i * 14))
k.emit(v_mfma_fp4(v[212 + i * 8:215 + i * 8], v[144:147], v[92 + i * 8:95 + i * 8], 2, 0, v[209], v[206 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 21120 + i * 4224))
k.emit(v_mfma_fp4(v[240 + i * 8:243 + i * 8], v[148:151], v[88 + i * 8:91 + i * 8], 1, 0, v[209], v[206 + i * 1]))
k.emit(ds_read_b128(v[32 + i * 4:35 + i * 4], v[221], v[0], v[0], 0, 128, 49 + i * 2))
k.emit(v_mfma_fp4(v[252:255], v[148:151], v[100:103], 3, 0, v[209], v[207]))
k.emit(buffer_load_dwordx4(v[0:3], v[218], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[128:131], v[152:155], v[104:107], 0, 3, v[208], v[204]))
k.emit(ds_read_b128(v[68:71], v[221], v[0], v[0], 0, 192, 51))
k.emit(v_mfma_fp4(v[132:135], v[152:155], v[108:111], 2, 3, v[208], v[204]))
k.emit(s_add_u32(NULL, LIT, s[59], 29568))
k.emit(v_mfma_fp4(v[160:163], v[156:159], v[104:107], 1, 3, v[208], v[204]))
k.emit(ds_read_b32(v[200], v[224], v[0], v[0], 0, 0, 8))
k.emit(v_mfma_fp4(v[164:167], v[156:159], v[108:111], 3, 3, v[208], v[204]))
k.emit(buffer_load_dwordx4(v[0:3], v[219], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[152:155], v[112:115], 0, 3, v[208], v[205]))
k.emit(ds_read_b32(v[201], v[224], v[0], v[0], 0, 0, 9))
k.emit(v_mfma_fp4(v[140:143], v[152:155], v[116:119], 2, 3, v[208], v[205]))
k.emit(s_add_u32(NULL, LIT, s[60], 1024))
k.emit(v_mfma_fp4(v[168:171], v[156:159], v[112:115], 1, 3, v[208], v[205]))
k.emit(ds_read_b32(v[202], v[224], v[0], v[0], 0, 0, 10))
k.emit(v_mfma_fp4(v[172:175], v[156:159], v[116:119], 3, 3, v[208], v[205]))
k.emit(buffer_load_dword(v[0], v[223], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[144:147], v[152:155], v[120:123], 0, 3, v[208], v[206]))
k.emit(ds_read_b32(v[203], v[224], v[0], v[0], 0, 0, 11))
k.emit(v_mfma_fp4(v[148:151], v[152:155], v[124:127], 2, 3, v[208], v[206]))
k.emit(s_add_u32(s[52], LIT, s[50], 768))
k.emit(v_mfma_fp4(v[176:179], v[156:159], v[120:123], 1, 3, v[208], v[206]))
k.emit(v_mfma_fp4(v[180:183], v[156:159], v[124:127], 3, 3, v[208], v[206]))
k.emit(s_cmp_lt_u32(s[52], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[152 + i * 32:155 + i * 32], v[152 + i * 4:155 + i * 4], v[128:131], 0 + i * 1, 3, v[208], v[207]))
k.emit(v_mfma_fp4(v[156 + i * 32:159 + i * 32], v[152 + i * 4:155 + i * 4], v[132:135], 2 + i * 1, 3, v[208], v[207]))
k.emit(s_cselect_b32(s[61 + i * 2], s[61 + i * 2], 0))
for i in range(2):
k.emit(v_mfma_fp4(v[192 + i * 40:195 + i * 40], v[160 + i * 4:163 + i * 4], v[104 + i * 8:107 + i * 8], 0 + i * 1, 3, v[209], v[204 + i * 1]))
k.emit(v_mfma_fp4(v[196 + i * 40:199 + i * 40], v[160 + i * 4:163 + i * 4], v[108 + i * 8:111 + i * 8], 2 + i * 1, 3, v[209], v[204 + i * 1]))
k.emit(s_add_u32(s[12 + i * 8], s[61 + i * 2], s[12 + i * 8]))
k.emit(v_mfma_fp4(v[224 + i * -16:227 + i * -16], v[164 + i * -4:167 + i * -4], v[104 + i * 16:107 + i * 16], 1 + i * -1, 3, v[209], v[204 + i * 2]))
k.emit(v_mfma_fp4(v[228 + i * -16:231 + i * -16], v[164 + i * -4:167 + i * -4], v[108 + i * 16:111 + i * 16], 3 + i * -1, 3, v[209], v[204 + i * 2]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(v_mfma_fp4(v[200 + i * 40:203 + i * 40], v[160 + i * 4:163 + i * 4], v[112 + i * 8:115 + i * 8], 0 + i * 1, 3, v[209], v[205 + i * 1]))
k.emit(v_mfma_fp4(v[204 + i * 40:207 + i * 40], v[160 + i * 4:163 + i * 4], v[116 + i * 8:119 + i * 8], 2 + i * 1, 3, v[209], v[205 + i * 1]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[61 + i * 2]))
k.emit(v_mfma_fp4(v[216:219], v[160:163], v[128:131], 0, 3, v[209], v[207]))
k.emit(s_addk_i32(s[50], 256))
k.emit(v_mfma_fp4(v[220:223], v[160:163], v[132:135], 2, 3, v[209], v[207]))
k.emit(s_cmp_lt_i32(s[50], s[51]))
k.emit(v_mfma_fp4(v[248:251], v[164:167], v[128:131], 1, 3, v[209], v[207]))
k.emit(v_mfma_fp4(v[252:255], v[164:167], v[132:135], 3, 3, v[209], v[207]))
k.emit(s_cbranch_scc0(2051), target='L2_3B10')
k.emit(s_waitcnt(122))
k.emit(v_mfma_fp4(v[0:3], v[168:171], v[8:11], 0, 0, v[210], v[200]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(s_nop())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 64:7 + i * 64], v[168 + i * 8:171 + i * 8], v[12:15], 2, 0, v[210 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[136 + i * 16:139 + i * 16], v[225 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[32 + i * 64:35 + i * 64], v[172 + i * 8:175 + i * 8], v[8:11], 1, 0, v[210 + i * 1], v[200]))
k.emit(ds_read_b128(v[72 + i * 8:75 + i * 8], v[221], v[0], v[0], 0, 0 + i * 128, 66 + i * 16))
k.emit(v_mfma_fp4(v[36 + i * 64:39 + i * 64], v[172 + i * 8:175 + i * 8], v[12:15], 3, 0, v[210 + i * 1], v[200]))
k.emit(v_mfma_fp4(v[8 + i * 64:11 + i * 64], v[168 + i * 8:171 + i * 8], v[16:19], 0, 0, v[210 + i * 1], v[201]))
for j74 in range(2):
k.emit(v_mfma_fp4(v[12 + j74 * 8 + i * 64:15 + j74 * 8 + i * 64], v[168 + i * 8:171 + i * 8], v[20 + j74 * 8:23 + j74 * 8], 2, 0, v[210 + i * 1], v[201 + j74 * 1]))
k.emit(buffer_load_dwordx4(v[140 + j74 * 4 + i * 16:143 + j74 * 4 + i * 16], v[226 + j74 * 1 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[40 + j74 * 8 + i * 64:43 + j74 * 8 + i * 64], v[172 + i * 8:175 + i * 8], v[16 + j74 * 8:19 + j74 * 8], 1, 0, v[210 + i * 1], v[201 + j74 * 1]))
k.emit(ds_read_b128(v[104 + j74 * -28 + i * 8:107 + j74 * -28 + i * 8], v[221], v[0], v[0], 0, 64 + j74 * -64 + i * 128, 66 + j74 * 2 + i * 16))
k.emit(v_mfma_fp4(v[44 + j74 * 8 + i * 64:47 + j74 * 8 + i * 64], v[172 + i * 8:175 + i * 8], v[20 + j74 * 8:23 + j74 * 8], 3, 0, v[210 + i * 1], v[201 + j74 * 1]))
k.emit(v_mfma_fp4(v[16 + j74 * 8 + i * 64:19 + j74 * 8 + i * 64], v[168 + i * 8:171 + i * 8], v[24 + j74 * 8:27 + j74 * 8], 0, 0, v[210 + i * 1], v[202 + j74 * 1]))
k.emit(v_mfma_fp4(v[28 + i * 64:31 + i * 64], v[168 + i * 8:171 + i * 8], v[36:39], 2, 0, v[210 + i * 1], v[203]))
k.emit(buffer_load_dwordx4(v[148 + i * 16:151 + i * 16], v[228 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[56 + i * 64:59 + i * 64], v[172 + i * 8:175 + i * 8], v[32:35], 1, 0, v[210 + i * 1], v[203]))
k.emit(ds_read_b128(v[108 + i * 8:111 + i * 8], v[221], v[0], v[0], 0, 64 + i * 128, 68 + i * 16))
k.emit(v_mfma_fp4(v[60 + i * 64:63 + i * 64], v[172 + i * 8:175 + i * 8], v[36:39], 3, 0, v[210 + i * 1], v[203]))
k.emit(v_mfma_fp4(v[64 + i * -64:67 + i * -64], v[176 + i * 8:179 + i * 8], v[8 + i * 32:11 + i * 32], 0, 0 + i * 3, v[211 + i * -1], v[200]))
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 8:7 + i * 8], v[184:187], v[44 + i * 8:47 + i * 8], 2, 3, v[210], v[200 + i * 1]))
k.emit(buffer_load_dword(v[208 + i * 1], v[233 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[188:191], v[40 + i * 8:43 + i * 8], 1, 3, v[210], v[200 + i * 1]))
k.emit(ds_read_b128(v[88 + i * 32:91 + i * 32], v[221], v[0], v[0], 0, 0 + i * 64, 99))
k.emit(v_mfma_fp4(v[36 + i * 8:39 + i * 8], v[188:191], v[44 + i * 8:47 + i * 8], 3, 3, v[210], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[8 + i * 8:11 + i * 8], v[184:187], v[48 + i * 8:51 + i * 8], 0, 3, v[210], v[201 + i * 1]))
k.emit(s_add_u32(s[53], LIT, s[50], 512))
k.emit(v_mfma_fp4(v[20:23], v[184:187], v[60:63], 2, 3, v[210], v[202]))
k.emit(ds_read_b128(v[92:95], v[221], v[0], v[0], 0, 0, 101))
k.emit(v_mfma_fp4(v[48:51], v[188:191], v[56:59], 1, 3, v[210], v[202]))
k.emit(s_cmp_lt_u32(s[53], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[52 + i * -24:55 + i * -24], v[188 + i * -4:191 + i * -4], v[60 + i * 8:63 + i * 8], 3 + i * -1, 3, v[210], v[202 + i * 1]))
k.emit(ds_read_b128(v[124 + i * -28:127 + i * -28], v[221], v[0], v[0], 0, 64 + i * 64, 101 + i * 14))
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[184 + i * 4:187 + i * 4], v[64:67], 0 + i * 1, 3, v[210], v[203]))
k.emit(s_cselect_b32(s[62 + i * 2], s[62 + i * 2], 0))
k.emit(v_mfma_fp4(v[60:63], v[188:191], v[68:71], 3, 3, v[210], v[203]))
k.emit(ds_read_b128(v[128:131], v[221], v[0], v[0], 0, 192, 115))
k.emit(v_mfma_fp4(v[64:67], v[192:195], v[40:43], 0, 3, v[211], v[200]))
k.emit(s_add_u32(s[16], s[62], s[16]))
k.emit(v_mfma_fp4(v[68:71], v[192:195], v[44:47], 2, 3, v[211], v[200]))
k.emit(ds_read_b128(v[100:103], v[221], v[0], v[0], 0, 128, 117))
k.emit(v_mfma_fp4(v[96:99], v[196:199], v[40:43], 1, 3, v[211], v[200]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(v_mfma_fp4(v[100:103], v[196:199], v[44:47], 3, 3, v[211], v[200]))
k.emit(ds_read_b128(v[132:135], v[221], v[0], v[0], 0, 192, 117))
k.emit(v_mfma_fp4(v[72:75], v[192:195], v[48:51], 0, 3, v[211], v[201]))
k.emit(s_sub_u32(s[18], s[18], s[62]))
k.emit(v_mfma_fp4(v[76:79], v[192:195], v[52:55], 2, 3, v[211], v[201]))
k.emit(ds_read_b32(v[204], v[224], v[0], v[0], 0, 0, 12))
k.emit(v_mfma_fp4(v[104:107], v[196:199], v[48:51], 1, 3, v[211], v[201]))
k.emit(s_add_u32(s[24], s[64], s[24]))
k.emit(v_mfma_fp4(v[108:111], v[196:199], v[52:55], 3, 3, v[211], v[201]))
k.emit(ds_read_b32(v[205], v[224], v[0], v[0], 0, 0, 13))
k.emit(v_mfma_fp4(v[80:83], v[192:195], v[56:59], 0, 3, v[211], v[202]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(v_mfma_fp4(v[84:87], v[192:195], v[60:63], 2, 3, v[211], v[202]))
k.emit(ds_read_b32(v[206], v[224], v[0], v[0], 0, 0, 14))
k.emit(v_mfma_fp4(v[112:115], v[196:199], v[56:59], 1, 3, v[211], v[202]))
k.emit(s_sub_u32(s[26], s[26], s[64]))
k.emit(v_mfma_fp4(v[116:119], v[196:199], v[60:63], 3, 3, v[211], v[202]))
k.emit(ds_read_b32(v[207], v[224], v[0], v[0], 0, 0, 15))
k.emit(v_mfma_fp4(v[88:91], v[192:195], v[64:67], 0, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[92:95], v[192:195], v[68:71], 2, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[120:123], v[196:199], v[64:67], 1, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[124:127], v[196:199], v[68:71], 3, 3, v[211], v[203]))
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[128:131], v[168:171], v[72:75], 0, 0, v[210], v[204]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(v_mfma_fp4(v[132:135], v[168:171], v[76:79], 2, 0, v[210], v[204]))
k.emit(s_add_u32(NULL, LIT, s[59], 33792))
k.emit(v_mfma_fp4(v[160:163], v[172:175], v[72:75], 1, 0, v[210], v[204]))
k.emit(ds_read_b128(v[8:11], v[220]))
k.emit(v_mfma_fp4(v[164:167], v[172:175], v[76:79], 3, 0, v[210], v[204]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[168:171], v[80:83], 0, 0, v[210], v[205]))
k.emit(ds_read_b128(v[40:43], v[220], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[140:143], v[168:171], v[84:87], 2, 0, v[210], v[205]))
k.emit(s_add_u32(NULL, LIT, s[59], 38016))
k.emit(v_mfma_fp4(v[168:171], v[172:175], v[80:83], 1, 0, v[210], v[205]))
k.emit(ds_read_b128(v[12:15], v[220], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[172:175], v[172:175], v[84:87], 3, 0, v[210], v[205]))
k.emit(buffer_load_dwordx4(v[0:3], v[213], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
for i in range(2):
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[168:171], v[88 + i * 8:91 + i * 8], 0, 0, v[210], v[206 + i * 1]))
k.emit(ds_read_b128(v[44 + i * 4:47 + i * 4], v[220], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[148 + i * 8:151 + i * 8], v[168:171], v[92 + i * 8:95 + i * 8], 2, 0, v[210], v[206 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 42240 + i * 4224))
k.emit(v_mfma_fp4(v[176 + i * 8:179 + i * 8], v[172:175], v[88 + i * 8:91 + i * 8], 1, 0, v[210], v[206 + i * 1]))
k.emit(ds_read_b128(v[16 + i * 4:19 + i * 4], v[220], v[0], v[0], 0, 128, 16 + i * 2))
k.emit(v_mfma_fp4(v[180 + i * 8:183 + i * 8], v[172:175], v[92 + i * 8:95 + i * 8], 3, 0, v[210], v[206 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[214 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[192:195], v[176:179], v[72:75], 0, 0, v[211], v[204]))
k.emit(ds_read_b128(v[52:55], v[220], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[196:199], v[176:179], v[76:79], 2, 0, v[211], v[204]))
k.emit(s_add_u32(NULL, LIT, s[60], 2048))
k.emit(v_mfma_fp4(v[224:227], v[180:183], v[72:75], 1, 0, v[211], v[204]))
k.emit(ds_read_b128(v[24:27], v[220], v[0], v[0], 0, 0, 33))
k.emit(v_mfma_fp4(v[228:231], v[180:183], v[76:79], 3, 0, v[211], v[204]))
k.emit(buffer_load_dword(v[0], v[222], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[200:203], v[176:179], v[80:83], 0, 0, v[211], v[205]))
k.emit(ds_read_b128(v[56:59], v[220], v[0], v[0], 0, 64, 33))
k.emit(v_mfma_fp4(v[204:207], v[176:179], v[84:87], 2, 0, v[211], v[205]))
k.emit(s_add_u32(NULL, LIT, s[59], 50688))
k.emit(v_mfma_fp4(v[232:235], v[180:183], v[80:83], 1, 0, v[211], v[205]))
k.emit(ds_read_b128(v[28:31], v[220], v[0], v[0], 0, 0, 35))
for i in range(2):
k.emit(v_mfma_fp4(v[236 + i * 8:239 + i * 8], v[180:183], v[84 + i * 8:87 + i * 8], 3, 0, v[211], v[205 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[216 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[208 + i * 8:211 + i * 8], v[176:179], v[88 + i * 8:91 + i * 8], 0, 0, v[211], v[206 + i * 1]))
k.emit(ds_read_b128(v[60 + i * 4:63 + i * 4], v[220], v[0], v[0], 0, 64 + i * 128, 35 + i * 14))
k.emit(v_mfma_fp4(v[212 + i * 8:215 + i * 8], v[176:179], v[92 + i * 8:95 + i * 8], 2, 0, v[211], v[206 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 54912 + i * 4224))
k.emit(v_mfma_fp4(v[240 + i * 8:243 + i * 8], v[180:183], v[88 + i * 8:91 + i * 8], 1, 0, v[211], v[206 + i * 1]))
k.emit(ds_read_b128(v[32 + i * 4:35 + i * 4], v[220], v[0], v[0], 0, 128, 49 + i * 2))
k.emit(v_mfma_fp4(v[252:255], v[180:183], v[100:103], 3, 0, v[211], v[207]))
k.emit(buffer_load_dwordx4(v[0:3], v[218], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[128:131], v[184:187], v[104:107], 0, 3, v[210], v[204]))
k.emit(ds_read_b128(v[68:71], v[220], v[0], v[0], 0, 192, 51))
k.emit(v_mfma_fp4(v[132:135], v[184:187], v[108:111], 2, 3, v[210], v[204]))
k.emit(s_add_u32(NULL, LIT, s[59], 63360))
k.emit(v_mfma_fp4(v[160:163], v[188:191], v[104:107], 1, 3, v[210], v[204]))
k.emit(ds_read_b32(v[200], v[224]))
k.emit(v_mfma_fp4(v[164:167], v[188:191], v[108:111], 3, 3, v[210], v[204]))
k.emit(buffer_load_dwordx4(v[0:3], v[219], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[184:187], v[112:115], 0, 3, v[210], v[205]))
k.emit(ds_read_b32(v[201], v[224], v[0], v[0], 0, 0, 1))
k.emit(v_mfma_fp4(v[140:143], v[184:187], v[116:119], 2, 3, v[210], v[205]))
k.emit(s_add_u32(NULL, LIT, s[60], 3072))
k.emit(v_mfma_fp4(v[168:171], v[188:191], v[112:115], 1, 3, v[210], v[205]))
k.emit(ds_read_b32(v[202], v[224], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[172:175], v[188:191], v[116:119], 3, 3, v[210], v[205]))
k.emit(buffer_load_dword(v[0], v[223], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[144:147], v[184:187], v[120:123], 0, 3, v[210], v[206]))
k.emit(ds_read_b32(v[203], v[224], v[0], v[0], 0, 0, 3))
k.emit(v_mfma_fp4(v[148:151], v[184:187], v[124:127], 2, 3, v[210], v[206]))
k.emit(s_add_u32(s[52], LIT, s[50], 768))
k.emit(v_mfma_fp4(v[176:179], v[188:191], v[120:123], 1, 3, v[210], v[206]))
k.emit(v_mfma_fp4(v[180:183], v[188:191], v[124:127], 3, 3, v[210], v[206]))
k.emit(s_cmp_lt_u32(s[52], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[152 + i * 32:155 + i * 32], v[184 + i * 4:187 + i * 4], v[128:131], 0 + i * 1, 3, v[210], v[207]))
k.emit(v_mfma_fp4(v[156 + i * 32:159 + i * 32], v[184 + i * 4:187 + i * 4], v[132:135], 2 + i * 1, 3, v[210], v[207]))
k.emit(s_cselect_b32(s[61 + i * 2], s[61 + i * 2], 0))
for i in range(2):
k.emit(v_mfma_fp4(v[192 + i * 40:195 + i * 40], v[192 + i * 4:195 + i * 4], v[104 + i * 8:107 + i * 8], 0 + i * 1, 3, v[211], v[204 + i * 1]))
k.emit(v_mfma_fp4(v[196 + i * 40:199 + i * 40], v[192 + i * 4:195 + i * 4], v[108 + i * 8:111 + i * 8], 2 + i * 1, 3, v[211], v[204 + i * 1]))
k.emit(s_add_u32(s[12 + i * 8], s[61 + i * 2], s[12 + i * 8]))
k.emit(v_mfma_fp4(v[224 + i * -16:227 + i * -16], v[196 + i * -4:199 + i * -4], v[104 + i * 16:107 + i * 16], 1 + i * -1, 3, v[211], v[204 + i * 2]))
k.emit(v_mfma_fp4(v[228 + i * -16:231 + i * -16], v[196 + i * -4:199 + i * -4], v[108 + i * 16:111 + i * 16], 3 + i * -1, 3, v[211], v[204 + i * 2]))
k.emit(s_addc_u32(s[13 + i * 8], 0, s[13 + i * 8]))
k.emit(v_mfma_fp4(v[200 + i * 40:203 + i * 40], v[192 + i * 4:195 + i * 4], v[112 + i * 8:115 + i * 8], 0 + i * 1, 3, v[211], v[205 + i * 1]))
k.emit(v_mfma_fp4(v[204 + i * 40:207 + i * 40], v[192 + i * 4:195 + i * 4], v[116 + i * 8:119 + i * 8], 2 + i * 1, 3, v[211], v[205 + i * 1]))
k.emit(s_sub_u32(s[14 + i * 8], s[14 + i * 8], s[61 + i * 2]))
k.emit(v_mfma_fp4(v[216:219], v[192:195], v[128:131], 0, 3, v[211], v[207]))
k.emit(s_addk_i32(s[50], 256))
k.emit(v_mfma_fp4(v[220:223], v[192:195], v[132:135], 2, 3, v[211], v[207]))
k.emit(s_cmp_lt_i32(s[50], s[51]))
k.emit(v_mfma_fp4(v[248:251], v[196:199], v[128:131], 1, 3, v[211], v[207]))
k.emit(v_mfma_fp4(v[252:255], v[196:199], v[132:135], 3, 3, v[211], v[207]))
k.emit(s_cbranch_scc0(1367), target='L2_3B10')
k.emit(s_branch(64169), target='L2_105C')
k.label('L2_25B8')
k.emit(s_nop())
k.label('L2_25BC')
k.emit(s_waitcnt(122))
k.emit(v_mfma_fp4(v[0:3], v[136:139], v[8:11], 0, 0, v[208], v[200]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(s_nop())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 64:7 + i * 64], v[136 + i * 8:139 + i * 8], v[12:15], 2, 0, v[208 + i * 1], v[200]))
k.emit(ds_read_b128(v[72 + i * 8:75 + i * 8], v[220], v[0], v[0], 0, 0 + i * 128, 66 + i * 16))
k.emit(v_mfma_fp4(v[32 + i * 64:35 + i * 64], v[140 + i * 8:143 + i * 8], v[8:11], 1, 0, v[208 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[168 + i * 16:171 + i * 16], v[225 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[36 + i * 64:39 + i * 64], v[140 + i * 8:143 + i * 8], v[12:15], 3, 0, v[208 + i * 1], v[200]))
k.emit(v_mfma_fp4(v[8 + i * 64:11 + i * 64], v[136 + i * 8:139 + i * 8], v[16:19], 0, 0, v[208 + i * 1], v[201]))
for j75 in range(2):
k.emit(v_mfma_fp4(v[12 + j75 * 8 + i * 64:15 + j75 * 8 + i * 64], v[136 + i * 8:139 + i * 8], v[20 + j75 * 8:23 + j75 * 8], 2, 0, v[208 + i * 1], v[201 + j75 * 1]))
k.emit(ds_read_b128(v[104 + j75 * -28 + i * 8:107 + j75 * -28 + i * 8], v[220], v[0], v[0], 0, 64 + j75 * -64 + i * 128, 66 + j75 * 2 + i * 16))
k.emit(v_mfma_fp4(v[40 + j75 * 8 + i * 64:43 + j75 * 8 + i * 64], v[140 + i * 8:143 + i * 8], v[16 + j75 * 8:19 + j75 * 8], 1, 0, v[208 + i * 1], v[201 + j75 * 1]))
k.emit(buffer_load_dwordx4(v[172 + j75 * 4 + i * 16:175 + j75 * 4 + i * 16], v[226 + j75 * 1 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[44 + j75 * 8 + i * 64:47 + j75 * 8 + i * 64], v[140 + i * 8:143 + i * 8], v[20 + j75 * 8:23 + j75 * 8], 3, 0, v[208 + i * 1], v[201 + j75 * 1]))
k.emit(v_mfma_fp4(v[16 + j75 * 8 + i * 64:19 + j75 * 8 + i * 64], v[136 + i * 8:139 + i * 8], v[24 + j75 * 8:27 + j75 * 8], 0, 0, v[208 + i * 1], v[202 + j75 * 1]))
k.emit(v_mfma_fp4(v[28 + i * 64:31 + i * 64], v[136 + i * 8:139 + i * 8], v[36:39], 2, 0, v[208 + i * 1], v[203]))
k.emit(ds_read_b128(v[108 + i * 8:111 + i * 8], v[220], v[0], v[0], 0, 64 + i * 128, 68 + i * 16))
k.emit(v_mfma_fp4(v[56 + i * 64:59 + i * 64], v[140 + i * 8:143 + i * 8], v[32:35], 1, 0, v[208 + i * 1], v[203]))
k.emit(buffer_load_dwordx4(v[180 + i * 16:183 + i * 16], v[228 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[60 + i * 64:63 + i * 64], v[140 + i * 8:143 + i * 8], v[36:39], 3, 0, v[208 + i * 1], v[203]))
k.emit(v_mfma_fp4(v[64 + i * -64:67 + i * -64], v[144 + i * 8:147 + i * 8], v[8 + i * 32:11 + i * 32], 0, 0 + i * 3, v[209 + i * -1], v[200]))
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 8:7 + i * 8], v[152:155], v[44 + i * 8:47 + i * 8], 2, 3, v[208], v[200 + i * 1]))
k.emit(ds_read_b128(v[88 + i * 32:91 + i * 32], v[220], v[0], v[0], 0, 0 + i * 64, 99))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[156:159], v[40 + i * 8:43 + i * 8], 1, 3, v[208], v[200 + i * 1]))
k.emit(buffer_load_dword(v[210 + i * 1], v[233 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[36 + i * 8:39 + i * 8], v[156:159], v[44 + i * 8:47 + i * 8], 3, 3, v[208], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[8 + i * 8:11 + i * 8], v[152:155], v[48 + i * 8:51 + i * 8], 0, 3, v[208], v[201 + i * 1]))
k.emit(ds_read_b128(v[92:95], v[220], v[0], v[0], 0, 0, 101))
k.emit(v_mfma_fp4(v[20:23], v[152:155], v[60:63], 2, 3, v[208], v[202]))
k.emit(s_add_u32(s[53], LIT, s[50], 512))
k.emit(v_mfma_fp4(v[48:51], v[156:159], v[56:59], 1, 3, v[208], v[202]))
k.emit(ds_read_b128(v[124:127], v[220], v[0], v[0], 0, 64, 101))
k.emit(v_mfma_fp4(v[52:55], v[156:159], v[60:63], 3, 3, v[208], v[202]))
k.emit(s_cmp_lt_u32(s[53], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[152 + i * 4:155 + i * 4], v[64:67], 0 + i * 1, 3, v[208], v[203]))
k.emit(ds_read_b128(v[96 + i * 32:99 + i * 32], v[220], v[0], v[0], 0, 128 + i * 64, 115))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[152 + i * 4:155 + i * 4], v[68:71], 2 + i * 1, 3, v[208], v[203]))
k.emit(s_cselect_b32(s[62 + i * 2], s[62 + i * 2], 0))
k.emit(v_mfma_fp4(v[64:67], v[160:163], v[40:43], 0, 3, v[209], v[200]))
k.emit(ds_read_b128(v[100:103], v[220], v[0], v[0], 0, 128, 117))
k.emit(v_mfma_fp4(v[68:71], v[160:163], v[44:47], 2, 3, v[209], v[200]))
k.emit(s_add_u32(s[16], s[62], s[16]))
k.emit(v_mfma_fp4(v[96:99], v[164:167], v[40:43], 1, 3, v[209], v[200]))
k.emit(ds_read_b128(v[132:135], v[220], v[0], v[0], 0, 192, 117))
k.emit(v_mfma_fp4(v[100:103], v[164:167], v[44:47], 3, 3, v[209], v[200]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(v_mfma_fp4(v[72:75], v[160:163], v[48:51], 0, 3, v[209], v[201]))
k.emit(ds_read_b32(v[204], v[224], v[0], v[0], 0, 0, 4))
k.emit(v_mfma_fp4(v[76:79], v[160:163], v[52:55], 2, 3, v[209], v[201]))
k.emit(s_sub_u32(s[18], s[18], s[62]))
k.emit(v_mfma_fp4(v[104:107], v[164:167], v[48:51], 1, 3, v[209], v[201]))
k.emit(ds_read_b32(v[205], v[224], v[0], v[0], 0, 0, 5))
k.emit(v_mfma_fp4(v[108:111], v[164:167], v[52:55], 3, 3, v[209], v[201]))
k.emit(s_add_u32(s[24], s[64], s[24]))
k.emit(v_mfma_fp4(v[80:83], v[160:163], v[56:59], 0, 3, v[209], v[202]))
k.emit(ds_read_b32(v[206], v[224], v[0], v[0], 0, 0, 6))
k.emit(v_mfma_fp4(v[84:87], v[160:163], v[60:63], 2, 3, v[209], v[202]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(v_mfma_fp4(v[112:115], v[164:167], v[56:59], 1, 3, v[209], v[202]))
k.emit(ds_read_b32(v[207], v[224], v[0], v[0], 0, 0, 7))
k.emit(v_mfma_fp4(v[116:119], v[164:167], v[60:63], 3, 3, v[209], v[202]))
k.emit(s_sub_u32(s[26], s[26], s[64]))
k.emit(v_mfma_fp4(v[88:91], v[160:163], v[64:67], 0, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[92:95], v[160:163], v[68:71], 2, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[120:123], v[164:167], v[64:67], 1, 3, v[209], v[203]))
k.emit(v_mfma_fp4(v[124:127], v[164:167], v[68:71], 3, 3, v[209], v[203]))
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[128:131], v[136:139], v[72:75], 0, 0, v[208], v[204]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(v_mfma_fp4(v[132:135], v[136:139], v[76:79], 2, 0, v[208], v[204]))
k.emit(ds_read_b128(v[8:11], v[221]))
k.emit(v_mfma_fp4(v[160:163], v[140:143], v[72:75], 1, 0, v[208], v[204]))
k.emit(s_add_u32(NULL, 0, s[59]))
k.emit(v_mfma_fp4(v[164:167], v[140:143], v[76:79], 3, 0, v[208], v[204]))
k.emit(ds_read_b128(v[40:43], v[221], v[0], v[0], 0, 64))
k.emit(v_mfma_fp4(v[136:139], v[136:139], v[80:83], 0, 0, v[208], v[205]))
k.emit(buffer_load_dwordx4(v[0:3], v[212], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[140:143], v[136:139], v[84:87], 2, 0, v[208], v[205]))
k.emit(ds_read_b128(v[12:15], v[221], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[168:171], v[140:143], v[80:83], 1, 0, v[208], v[205]))
k.emit(s_add_u32(NULL, LIT, s[59], 4224))
for i in range(2):
k.emit(v_mfma_fp4(v[172 + i * 8:175 + i * 8], v[140:143], v[84 + i * 8:87 + i * 8], 3, 0, v[208], v[205 + i * 1]))
k.emit(ds_read_b128(v[44 + i * 4:47 + i * 4], v[221], v[0], v[0], 0, 64 + i * 128, 2 + i * 14))
k.emit(v_mfma_fp4(v[144 + i * 8:147 + i * 8], v[136:139], v[88 + i * 8:91 + i * 8], 0, 0, v[208], v[206 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[213 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[148 + i * 8:151 + i * 8], v[136:139], v[92 + i * 8:95 + i * 8], 2, 0, v[208], v[206 + i * 1]))
k.emit(ds_read_b128(v[16 + i * 4:19 + i * 4], v[221], v[0], v[0], 0, 128, 16 + i * 2))
k.emit(v_mfma_fp4(v[176 + i * 8:179 + i * 8], v[140:143], v[88 + i * 8:91 + i * 8], 1, 0, v[208], v[206 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 8448 + i * 4224))
k.emit(v_mfma_fp4(v[188:191], v[140:143], v[100:103], 3, 0, v[208], v[207]))
k.emit(ds_read_b128(v[52:55], v[221], v[0], v[0], 0, 192, 18))
k.emit(v_mfma_fp4(v[192:195], v[144:147], v[72:75], 0, 0, v[209], v[204]))
k.emit(buffer_load_dwordx4(v[0:3], v[215], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[196:199], v[144:147], v[76:79], 2, 0, v[209], v[204]))
k.emit(ds_read_b128(v[24:27], v[221], v[0], v[0], 0, 0, 33))
k.emit(v_mfma_fp4(v[224:227], v[148:151], v[72:75], 1, 0, v[209], v[204]))
k.emit(s_add_u32(NULL, 0, s[60]))
k.emit(v_mfma_fp4(v[228:231], v[148:151], v[76:79], 3, 0, v[209], v[204]))
k.emit(ds_read_b128(v[56:59], v[221], v[0], v[0], 0, 64, 33))
k.emit(v_mfma_fp4(v[200:203], v[144:147], v[80:83], 0, 0, v[209], v[205]))
k.emit(buffer_load_dword(v[0], v[222], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[204:207], v[144:147], v[84:87], 2, 0, v[209], v[205]))
k.emit(ds_read_b128(v[28:31], v[221], v[0], v[0], 0, 0, 35))
for i in range(2):
k.emit(v_mfma_fp4(v[232 + i * 8:235 + i * 8], v[148:151], v[80 + i * 8:83 + i * 8], 1, 0, v[209], v[205 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 16896 + i * 4224))
k.emit(v_mfma_fp4(v[236 + i * 8:239 + i * 8], v[148:151], v[84 + i * 8:87 + i * 8], 3, 0, v[209], v[205 + i * 1]))
k.emit(ds_read_b128(v[60 + i * 4:63 + i * 4], v[221], v[0], v[0], 0, 64 + i * 128, 35 + i * 14))
k.emit(v_mfma_fp4(v[208 + i * 8:211 + i * 8], v[144:147], v[88 + i * 8:91 + i * 8], 0, 0, v[209], v[206 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[216 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[212 + i * 8:215 + i * 8], v[144:147], v[92 + i * 8:95 + i * 8], 2, 0, v[209], v[206 + i * 1]))
k.emit(ds_read_b128(v[32 + i * 4:35 + i * 4], v[221], v[0], v[0], 0, 128, 49 + i * 2))
k.emit(v_mfma_fp4(v[248:251], v[148:151], v[96:99], 1, 0, v[209], v[207]))
k.emit(s_add_u32(NULL, LIT, s[59], 25344))
k.emit(v_mfma_fp4(v[252:255], v[148:151], v[100:103], 3, 0, v[209], v[207]))
k.emit(ds_read_b128(v[68:71], v[221], v[0], v[0], 0, 192, 51))
for i in range(2):
k.emit(v_mfma_fp4(v[128 + i * 8:131 + i * 8], v[152:155], v[104 + i * 8:107 + i * 8], 0, 3, v[208], v[204 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[218 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[132 + i * 8:135 + i * 8], v[152:155], v[108 + i * 8:111 + i * 8], 2, 3, v[208], v[204 + i * 1]))
k.emit(ds_read_b32(v[200 + i * 2], v[224], v[0], v[0], 0, 0, 8 + i * 2))
k.emit(v_mfma_fp4(v[160 + i * 8:163 + i * 8], v[156:159], v[104 + i * 8:107 + i * 8], 1, 3, v[208], v[204 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59 + i * 1], 29568 + i * -28544))
k.emit(v_mfma_fp4(v[164 + i * 8:167 + i * 8], v[156:159], v[108 + i * 8:111 + i * 8], 3, 3, v[208], v[204 + i * 1]))
k.emit(ds_read_b32(v[201 + i * 2], v[224], v[0], v[0], 0, 0, 9 + i * 2))
k.emit(v_mfma_fp4(v[144:147], v[152:155], v[120:123], 0, 3, v[208], v[206]))
k.emit(buffer_load_dword(v[0], v[223], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[152:155], v[124:127], 2, 3, v[208], v[206]))
k.emit(v_mfma_fp4(v[176:179], v[156:159], v[120:123], 1, 3, v[208], v[206]))
k.emit(s_add_u32(s[52], LIT, s[50], 768))
k.emit(v_mfma_fp4(v[180:183], v[156:159], v[124:127], 3, 3, v[208], v[206]))
k.emit(v_mfma_fp4(v[152:155], v[152:155], v[128:131], 0, 3, v[208], v[207]))
k.emit(s_cmp_lt_u32(s[52], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[156 + i * 32:159 + i * 32], v[152 + i * 4:155 + i * 4], v[132:135], 2 + i * 1, 3, v[208], v[207]))
k.emit(v_mfma_fp4(v[184 + i * 8:187 + i * 8], v[156 + i * 4:159 + i * 4], v[128 + i * -24:131 + i * -24], 1 + i * -1, 3, v[208 + i * 1], v[207 + i * -3]))
k.emit(s_cselect_b32(s[61 + i * 2], s[61 + i * 2], 0))
k.emit(v_mfma_fp4(v[196:199], v[160:163], v[108:111], 2, 3, v[209], v[204]))
k.emit(v_mfma_fp4(v[224:227], v[164:167], v[104:107], 1, 3, v[209], v[204]))
k.emit(s_add_u32(s[12], s[61], s[12]))
k.emit(v_mfma_fp4(v[228:231], v[164:167], v[108:111], 3, 3, v[209], v[204]))
k.emit(v_mfma_fp4(v[200:203], v[160:163], v[112:115], 0, 3, v[209], v[205]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[204:207], v[160:163], v[116:119], 2, 3, v[209], v[205]))
k.emit(v_mfma_fp4(v[232:235], v[164:167], v[112:115], 1, 3, v[209], v[205]))
k.emit(s_sub_u32(s[14], s[14], s[61]))
k.emit(v_mfma_fp4(v[236:239], v[164:167], v[116:119], 3, 3, v[209], v[205]))
k.emit(v_mfma_fp4(v[208:211], v[160:163], v[120:123], 0, 3, v[209], v[206]))
k.emit(s_add_u32(s[20], s[63], s[20]))
k.emit(v_mfma_fp4(v[212:215], v[160:163], v[124:127], 2, 3, v[209], v[206]))
k.emit(v_mfma_fp4(v[240:243], v[164:167], v[120:123], 1, 3, v[209], v[206]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[244:247], v[164:167], v[124:127], 3, 3, v[209], v[206]))
k.emit(v_mfma_fp4(v[216:219], v[160:163], v[128:131], 0, 3, v[209], v[207]))
k.emit(s_addk_i32(s[50], 256))
k.emit(v_mfma_fp4(v[220:223], v[160:163], v[132:135], 2, 3, v[209], v[207]))
k.emit(s_cmp_lt_i32(s[50], s[51]))
k.emit(v_mfma_fp4(v[248:251], v[164:167], v[128:131], 1, 3, v[209], v[207]))
k.emit(v_mfma_fp4(v[252:255], v[164:167], v[132:135], 3, 3, v[209], v[207]))
k.emit(s_cbranch_scc0(684), target='L2_3B10')
k.emit(s_waitcnt(122))
k.emit(v_mfma_fp4(v[0:3], v[168:171], v[8:11], 0, 0, v[210], v[200]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(s_nop())
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 64:7 + i * 64], v[168 + i * 8:171 + i * 8], v[12:15], 2, 0, v[210 + i * 1], v[200]))
k.emit(ds_read_b128(v[72 + i * 8:75 + i * 8], v[221], v[0], v[0], 0, 0 + i * 128, 66 + i * 16))
k.emit(v_mfma_fp4(v[32 + i * 64:35 + i * 64], v[172 + i * 8:175 + i * 8], v[8:11], 1, 0, v[210 + i * 1], v[200]))
k.emit(buffer_load_dwordx4(v[136 + i * 16:139 + i * 16], v[225 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[36 + i * 64:39 + i * 64], v[172 + i * 8:175 + i * 8], v[12:15], 3, 0, v[210 + i * 1], v[200]))
k.emit(v_mfma_fp4(v[8 + i * 64:11 + i * 64], v[168 + i * 8:171 + i * 8], v[16:19], 0, 0, v[210 + i * 1], v[201]))
for j76 in range(2):
k.emit(v_mfma_fp4(v[12 + j76 * 8 + i * 64:15 + j76 * 8 + i * 64], v[168 + i * 8:171 + i * 8], v[20 + j76 * 8:23 + j76 * 8], 2, 0, v[210 + i * 1], v[201 + j76 * 1]))
k.emit(ds_read_b128(v[104 + j76 * -28 + i * 8:107 + j76 * -28 + i * 8], v[221], v[0], v[0], 0, 64 + j76 * -64 + i * 128, 66 + j76 * 2 + i * 16))
k.emit(v_mfma_fp4(v[40 + j76 * 8 + i * 64:43 + j76 * 8 + i * 64], v[172 + i * 8:175 + i * 8], v[16 + j76 * 8:19 + j76 * 8], 1, 0, v[210 + i * 1], v[201 + j76 * 1]))
k.emit(buffer_load_dwordx4(v[140 + j76 * 4 + i * 16:143 + j76 * 4 + i * 16], v[226 + j76 * 1 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[44 + j76 * 8 + i * 64:47 + j76 * 8 + i * 64], v[172 + i * 8:175 + i * 8], v[20 + j76 * 8:23 + j76 * 8], 3, 0, v[210 + i * 1], v[201 + j76 * 1]))
k.emit(v_mfma_fp4(v[16 + j76 * 8 + i * 64:19 + j76 * 8 + i * 64], v[168 + i * 8:171 + i * 8], v[24 + j76 * 8:27 + j76 * 8], 0, 0, v[210 + i * 1], v[202 + j76 * 1]))
k.emit(v_mfma_fp4(v[28 + i * 64:31 + i * 64], v[168 + i * 8:171 + i * 8], v[36:39], 2, 0, v[210 + i * 1], v[203]))
k.emit(ds_read_b128(v[108 + i * 8:111 + i * 8], v[221], v[0], v[0], 0, 64 + i * 128, 68 + i * 16))
k.emit(v_mfma_fp4(v[56 + i * 64:59 + i * 64], v[172 + i * 8:175 + i * 8], v[32:35], 1, 0, v[210 + i * 1], v[203]))
k.emit(buffer_load_dwordx4(v[148 + i * 16:151 + i * 16], v[228 + i * 4], s[16:19], 0, 0, 1))
k.emit(v_mfma_fp4(v[60 + i * 64:63 + i * 64], v[172 + i * 8:175 + i * 8], v[36:39], 3, 0, v[210 + i * 1], v[203]))
k.emit(v_mfma_fp4(v[64 + i * -64:67 + i * -64], v[176 + i * 8:179 + i * 8], v[8 + i * 32:11 + i * 32], 0, 0 + i * 3, v[211 + i * -1], v[200]))
for i in range(2):
k.emit(v_mfma_fp4(v[4 + i * 8:7 + i * 8], v[184:187], v[44 + i * 8:47 + i * 8], 2, 3, v[210], v[200 + i * 1]))
k.emit(ds_read_b128(v[88 + i * 32:91 + i * 32], v[221], v[0], v[0], 0, 0 + i * 64, 99))
k.emit(v_mfma_fp4(v[32 + i * 8:35 + i * 8], v[188:191], v[40 + i * 8:43 + i * 8], 1, 3, v[210], v[200 + i * 1]))
k.emit(buffer_load_dword(v[208 + i * 1], v[233 + i * 1], s[24:27], 0, 0, 1))
k.emit(v_mfma_fp4(v[36 + i * 8:39 + i * 8], v[188:191], v[44 + i * 8:47 + i * 8], 3, 3, v[210], v[200 + i * 1]))
k.emit(v_mfma_fp4(v[8 + i * 8:11 + i * 8], v[184:187], v[48 + i * 8:51 + i * 8], 0, 3, v[210], v[201 + i * 1]))
k.emit(ds_read_b128(v[92:95], v[221], v[0], v[0], 0, 0, 101))
k.emit(v_mfma_fp4(v[20:23], v[184:187], v[60:63], 2, 3, v[210], v[202]))
k.emit(s_add_u32(s[53], LIT, s[50], 512))
k.emit(v_mfma_fp4(v[48:51], v[188:191], v[56:59], 1, 3, v[210], v[202]))
k.emit(ds_read_b128(v[124:127], v[221], v[0], v[0], 0, 64, 101))
k.emit(v_mfma_fp4(v[52:55], v[188:191], v[60:63], 3, 3, v[210], v[202]))
k.emit(s_cmp_lt_u32(s[53], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[24 + i * 32:27 + i * 32], v[184 + i * 4:187 + i * 4], v[64:67], 0 + i * 1, 3, v[210], v[203]))
k.emit(ds_read_b128(v[96 + i * 32:99 + i * 32], v[221], v[0], v[0], 0, 128 + i * 64, 115))
k.emit(v_mfma_fp4(v[28 + i * 32:31 + i * 32], v[184 + i * 4:187 + i * 4], v[68:71], 2 + i * 1, 3, v[210], v[203]))
k.emit(s_cselect_b32(s[62 + i * 2], s[62 + i * 2], 0))
k.emit(v_mfma_fp4(v[64:67], v[192:195], v[40:43], 0, 3, v[211], v[200]))
k.emit(ds_read_b128(v[100:103], v[221], v[0], v[0], 0, 128, 117))
k.emit(v_mfma_fp4(v[68:71], v[192:195], v[44:47], 2, 3, v[211], v[200]))
k.emit(s_add_u32(s[16], s[62], s[16]))
k.emit(v_mfma_fp4(v[96:99], v[196:199], v[40:43], 1, 3, v[211], v[200]))
k.emit(ds_read_b128(v[132:135], v[221], v[0], v[0], 0, 192, 117))
k.emit(v_mfma_fp4(v[100:103], v[196:199], v[44:47], 3, 3, v[211], v[200]))
k.emit(s_addc_u32(s[17], 0, s[17]))
k.emit(v_mfma_fp4(v[72:75], v[192:195], v[48:51], 0, 3, v[211], v[201]))
k.emit(ds_read_b32(v[204], v[224], v[0], v[0], 0, 0, 12))
k.emit(v_mfma_fp4(v[76:79], v[192:195], v[52:55], 2, 3, v[211], v[201]))
k.emit(s_sub_u32(s[18], s[18], s[62]))
k.emit(v_mfma_fp4(v[104:107], v[196:199], v[48:51], 1, 3, v[211], v[201]))
k.emit(ds_read_b32(v[205], v[224], v[0], v[0], 0, 0, 13))
k.emit(v_mfma_fp4(v[108:111], v[196:199], v[52:55], 3, 3, v[211], v[201]))
k.emit(s_add_u32(s[24], s[64], s[24]))
k.emit(v_mfma_fp4(v[80:83], v[192:195], v[56:59], 0, 3, v[211], v[202]))
k.emit(ds_read_b32(v[206], v[224], v[0], v[0], 0, 0, 14))
k.emit(v_mfma_fp4(v[84:87], v[192:195], v[60:63], 2, 3, v[211], v[202]))
k.emit(s_addc_u32(s[25], 0, s[25]))
k.emit(v_mfma_fp4(v[112:115], v[196:199], v[56:59], 1, 3, v[211], v[202]))
k.emit(ds_read_b32(v[207], v[224], v[0], v[0], 0, 0, 15))
k.emit(v_mfma_fp4(v[116:119], v[196:199], v[60:63], 3, 3, v[211], v[202]))
k.emit(s_sub_u32(s[26], s[26], s[64]))
k.emit(v_mfma_fp4(v[88:91], v[192:195], v[64:67], 0, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[92:95], v[192:195], v[68:71], 2, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[120:123], v[196:199], v[64:67], 1, 3, v[211], v[203]))
k.emit(v_mfma_fp4(v[124:127], v[196:199], v[68:71], 3, 3, v[211], v[203]))
k.emit(s_waitcnt(127))
k.emit(v_mfma_fp4(v[128:131], v[168:171], v[72:75], 0, 0, v[210], v[204]))
k.emit(s_barrier())
k.emit(s_nop())
k.emit(v_mfma_fp4(v[132:135], v[168:171], v[76:79], 2, 0, v[210], v[204]))
k.emit(ds_read_b128(v[8:11], v[220]))
k.emit(v_mfma_fp4(v[160:163], v[172:175], v[72:75], 1, 0, v[210], v[204]))
k.emit(s_add_u32(NULL, LIT, s[59], 33792))
k.emit(v_mfma_fp4(v[164:167], v[172:175], v[76:79], 3, 0, v[210], v[204]))
k.emit(ds_read_b128(v[40:43], v[220], v[0], v[0], 0, 64))
for i in range(2):
k.emit(v_mfma_fp4(v[136 + i * 16:139 + i * 16], v[168:171], v[80 + i * 16:83 + i * 16], 0, 0, v[210], v[205 + i * 2]))
k.emit(buffer_load_dwordx4(v[0:3], v[212 + i * 2], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[140 + i * 16:143 + i * 16], v[168:171], v[84 + i * 16:87 + i * 16], 2, 0, v[210], v[205 + i * 2]))
k.emit(ds_read_b128(v[12 + i * 8:15 + i * 8], v[220], v[0], v[0], 0, 0 + i * 128, 2 + i * 16))
k.emit(v_mfma_fp4(v[168 + i * 16:171 + i * 16], v[172:175], v[80 + i * 16:83 + i * 16], 1, 0, v[210], v[205 + i * 2]))
k.emit(s_add_u32(NULL, LIT, s[59], 38016 + i * 8448))
k.emit(v_mfma_fp4(v[172 + i * 16:175 + i * 16], v[172:175], v[84 + i * 16:87 + i * 16], 3, 0, v[210], v[205 + i * 2]))
k.emit(ds_read_b128(v[44 + i * 8:47 + i * 8], v[220], v[0], v[0], 0, 64 + i * 128, 2 + i * 16))
k.emit(v_mfma_fp4(v[144 + i * 48:147 + i * 48], v[168 + i * 8:171 + i * 8], v[88 + i * -16:91 + i * -16], 0, 0, v[210 + i * 1], v[206 + i * -2]))
k.emit(buffer_load_dwordx4(v[0:3], v[213 + i * 2], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[148 + i * 48:151 + i * 48], v[168 + i * 8:171 + i * 8], v[92 + i * -16:95 + i * -16], 2, 0, v[210 + i * 1], v[206 + i * -2]))
k.emit(ds_read_b128(v[16 + i * 8:19 + i * 8], v[220], v[0], v[0], 0, 128 + i * -128, 16 + i * 17))
k.emit(v_mfma_fp4(v[176 + i * 48:179 + i * 48], v[172 + i * 8:175 + i * 8], v[88 + i * -16:91 + i * -16], 1, 0, v[210 + i * 1], v[206 + i * -2]))
k.emit(s_add_u32(NULL, LIT, s[59 + i * 1], 42240 + i * -40192))
k.emit(v_mfma_fp4(v[180 + i * 48:183 + i * 48], v[172 + i * 8:175 + i * 8], v[92 + i * -16:95 + i * -16], 3, 0, v[210 + i * 1], v[206 + i * -2]))
k.emit(ds_read_b128(v[48 + i * 8:51 + i * 8], v[220], v[0], v[0], 0, 192 + i * -128, 16 + i * 17))
k.emit(v_mfma_fp4(v[200:203], v[176:179], v[80:83], 0, 0, v[211], v[205]))
k.emit(buffer_load_dword(v[0], v[222], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[204:207], v[176:179], v[84:87], 2, 0, v[211], v[205]))
k.emit(ds_read_b128(v[28:31], v[220], v[0], v[0], 0, 0, 35))
for i in range(2):
k.emit(v_mfma_fp4(v[232 + i * 8:235 + i * 8], v[180:183], v[80 + i * 8:83 + i * 8], 1, 0, v[211], v[205 + i * 1]))
k.emit(s_add_u32(NULL, LIT, s[59], 50688 + i * 4224))
k.emit(v_mfma_fp4(v[236 + i * 8:239 + i * 8], v[180:183], v[84 + i * 8:87 + i * 8], 3, 0, v[211], v[205 + i * 1]))
k.emit(ds_read_b128(v[60 + i * 4:63 + i * 4], v[220], v[0], v[0], 0, 64 + i * 128, 35 + i * 14))
k.emit(v_mfma_fp4(v[208 + i * 8:211 + i * 8], v[176:179], v[88 + i * 8:91 + i * 8], 0, 0, v[211], v[206 + i * 1]))
k.emit(buffer_load_dwordx4(v[0:3], v[216 + i * 1], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[212 + i * 8:215 + i * 8], v[176:179], v[92 + i * 8:95 + i * 8], 2, 0, v[211], v[206 + i * 1]))
k.emit(ds_read_b128(v[32 + i * 4:35 + i * 4], v[220], v[0], v[0], 0, 128, 49 + i * 2))
k.emit(v_mfma_fp4(v[248:251], v[180:183], v[96:99], 1, 0, v[211], v[207]))
k.emit(s_add_u32(NULL, LIT, s[59], 59136))
k.emit(v_mfma_fp4(v[252:255], v[180:183], v[100:103], 3, 0, v[211], v[207]))
k.emit(ds_read_b128(v[68:71], v[220], v[0], v[0], 0, 192, 51))
k.emit(v_mfma_fp4(v[128:131], v[184:187], v[104:107], 0, 3, v[210], v[204]))
k.emit(buffer_load_dwordx4(v[0:3], v[218], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[132:135], v[184:187], v[108:111], 2, 3, v[210], v[204]))
k.emit(ds_read_b32(v[200], v[224]))
k.emit(v_mfma_fp4(v[160:163], v[188:191], v[104:107], 1, 3, v[210], v[204]))
k.emit(s_add_u32(NULL, LIT, s[59], 63360))
k.emit(v_mfma_fp4(v[164:167], v[188:191], v[108:111], 3, 3, v[210], v[204]))
k.emit(ds_read_b32(v[201], v[224], v[0], v[0], 0, 0, 1))
k.emit(v_mfma_fp4(v[136:139], v[184:187], v[112:115], 0, 3, v[210], v[205]))
k.emit(buffer_load_dwordx4(v[0:3], v[219], s[12:15], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[140:143], v[184:187], v[116:119], 2, 3, v[210], v[205]))
k.emit(ds_read_b32(v[202], v[224], v[0], v[0], 0, 0, 2))
k.emit(v_mfma_fp4(v[168:171], v[188:191], v[112:115], 1, 3, v[210], v[205]))
k.emit(s_add_u32(NULL, LIT, s[60], 3072))
k.emit(v_mfma_fp4(v[172:175], v[188:191], v[116:119], 3, 3, v[210], v[205]))
k.emit(ds_read_b32(v[203], v[224], v[0], v[0], 0, 0, 3))
k.emit(v_mfma_fp4(v[144:147], v[184:187], v[120:123], 0, 3, v[210], v[206]))
k.emit(buffer_load_dword(v[0], v[223], s[20:23], 0, 0, 1, 0, 0, 0, 0, 1))
k.emit(v_mfma_fp4(v[148:151], v[184:187], v[124:127], 2, 3, v[210], v[206]))
k.emit(v_mfma_fp4(v[176:179], v[188:191], v[120:123], 1, 3, v[210], v[206]))
k.emit(s_add_u32(s[52], LIT, s[50], 768))
k.emit(v_mfma_fp4(v[180:183], v[188:191], v[124:127], 3, 3, v[210], v[206]))
k.emit(v_mfma_fp4(v[152:155], v[184:187], v[128:131], 0, 3, v[210], v[207]))
k.emit(s_cmp_lt_u32(s[52], s[51]))
for i in range(2):
k.emit(v_mfma_fp4(v[156 + i * 32:159 + i * 32], v[184 + i * 4:187 + i * 4], v[132:135], 2 + i * 1, 3, v[210], v[207]))
k.emit(v_mfma_fp4(v[184 + i * 8:187 + i * 8], v[188 + i * 4:191 + i * 4], v[128 + i * -24:131 + i * -24], 1 + i * -1, 3, v[210 + i * 1], v[207 + i * -3]))
k.emit(s_cselect_b32(s[61 + i * 2], s[61 + i * 2], 0))
k.emit(v_mfma_fp4(v[196:199], v[192:195], v[108:111], 2, 3, v[211], v[204]))
k.emit(v_mfma_fp4(v[224:227], v[196:199], v[104:107], 1, 3, v[211], v[204]))
k.emit(s_add_u32(s[12], s[61], s[12]))
k.emit(v_mfma_fp4(v[228:231], v[196:199], v[108:111], 3, 3, v[211], v[204]))
k.emit(v_mfma_fp4(v[200:203], v[192:195], v[112:115], 0, 3, v[211], v[205]))
k.emit(s_addc_u32(s[13], 0, s[13]))
k.emit(v_mfma_fp4(v[204:207], v[192:195], v[116:119], 2, 3, v[211], v[205]))
k.emit(v_mfma_fp4(v[232:235], v[196:199], v[112:115], 1, 3, v[211], v[205]))
k.emit(s_sub_u32(s[14], s[14], s[61]))
k.emit(v_mfma_fp4(v[236:239], v[196:199], v[116:119], 3, 3, v[211], v[205]))
k.emit(v_mfma_fp4(v[208:211], v[192:195], v[120:123], 0, 3, v[211], v[206]))
k.emit(s_add_u32(s[20], s[63], s[20]))
k.emit(v_mfma_fp4(v[212:215], v[192:195], v[124:127], 2, 3, v[211], v[206]))
k.emit(v_mfma_fp4(v[240:243], v[196:199], v[120:123], 1, 3, v[211], v[206]))
k.emit(s_addc_u32(s[21], 0, s[21]))
k.emit(v_mfma_fp4(v[244:247], v[196:199], v[124:127], 3, 3, v[211], v[206]))
k.emit(v_mfma_fp4(v[216:219], v[192:195], v[128:131], 0, 3, v[211], v[207]))
k.emit(s_addk_i32(s[50], 256))
k.emit(v_mfma_fp4(v[220:223], v[192:195], v[132:135], 2, 3, v[211], v[207]))
k.emit(s_cmp_lt_i32(s[50], s[51]))
k.emit(v_mfma_fp4(v[248:251], v[196:199], v[128:131], 1, 3, v[211], v[207]))
k.emit(v_mfma_fp4(v[252:255], v[196:199], v[132:135], 3, 3, v[211], v[207]))
k.emit(s_cbranch_scc0(1), target='L2_3B10')
k.emit(s_branch(64171), target='L2_25BC')
k.label('L2_3B10')
k.emit(s_waitcnt(112))
k.emit(s_barrier())
k.emit(s_cmp_eq_u32(s[57], 0))
k.emit(s_cbranch_scc1(1505), target='L2_52A4')
for i in range(2):
for j77 in range(4):
k.emit(v_accvgpr_read(v[8 + j77 * 1 + i * 4], v[0 + j77 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j77 * 1 + i * 4], s[38], v[8 + j77 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[235], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[235], v[235], 64))
for i in range(2):
for j78 in range(4):
k.emit(v_accvgpr_read(v[8 + j78 * 1 + i * 4], v[64 + j78 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j78 * 1 + i * 4], s[38], v[8 + j78 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[235], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[235], v[235], 64))
for i in range(2):
for j79 in range(4):
k.emit(v_accvgpr_read(v[8 + j79 * 1 + i * 4], v[4 + j79 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j79 * 1 + i * 4], s[38], v[8 + j79 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[236], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[236], v[236], 64))
for i in range(2):
for j80 in range(4):
k.emit(v_accvgpr_read(v[8 + j80 * 1 + i * 4], v[68 + j80 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j80 * 1 + i * 4], s[38], v[8 + j80 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[236], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[236], v[236], 64))
for i in range(2):
for j81 in range(4):
k.emit(v_accvgpr_read(v[8 + j81 * 1 + i * 4], v[8 + j81 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j81 * 1 + i * 4], s[38], v[8 + j81 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[237], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[237], v[237], 64))
for i in range(2):
for j82 in range(4):
k.emit(v_accvgpr_read(v[8 + j82 * 1 + i * 4], v[72 + j82 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j82 * 1 + i * 4], s[38], v[8 + j82 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[237], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[237], v[237], 64))
for i in range(2):
for j83 in range(4):
k.emit(v_accvgpr_read(v[8 + j83 * 1 + i * 4], v[12 + j83 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j83 * 1 + i * 4], s[38], v[8 + j83 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[238], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[238], v[238], 64))
for i in range(2):
for j84 in range(4):
k.emit(v_accvgpr_read(v[8 + j84 * 1 + i * 4], v[76 + j84 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j84 * 1 + i * 4], s[38], v[8 + j84 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[238], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[238], v[238], 64))
for i in range(2):
for j85 in range(4):
k.emit(v_accvgpr_read(v[8 + j85 * 1 + i * 4], v[16 + j85 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j85 * 1 + i * 4], s[38], v[8 + j85 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[239], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[239], v[239], 64))
for i in range(2):
for j86 in range(4):
k.emit(v_accvgpr_read(v[8 + j86 * 1 + i * 4], v[80 + j86 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j86 * 1 + i * 4], s[38], v[8 + j86 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[239], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[239], v[239], 64))
for i in range(2):
for j87 in range(4):
k.emit(v_accvgpr_read(v[8 + j87 * 1 + i * 4], v[20 + j87 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j87 * 1 + i * 4], s[38], v[8 + j87 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[240], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[240], v[240], 64))
for i in range(2):
for j88 in range(4):
k.emit(v_accvgpr_read(v[8 + j88 * 1 + i * 4], v[84 + j88 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j88 * 1 + i * 4], s[38], v[8 + j88 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[240], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[240], v[240], 64))
for i in range(2):
for j89 in range(4):
k.emit(v_accvgpr_read(v[8 + j89 * 1 + i * 4], v[24 + j89 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j89 * 1 + i * 4], s[38], v[8 + j89 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[241], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[241], v[241], 64))
for i in range(2):
for j90 in range(4):
k.emit(v_accvgpr_read(v[8 + j90 * 1 + i * 4], v[88 + j90 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j90 * 1 + i * 4], s[38], v[8 + j90 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[241], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[241], v[241], 64))
for i in range(2):
for j91 in range(4):
k.emit(v_accvgpr_read(v[8 + j91 * 1 + i * 4], v[28 + j91 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j91 * 1 + i * 4], s[38], v[8 + j91 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[242], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[242], v[242], 64))
for i in range(2):
for j92 in range(4):
k.emit(v_accvgpr_read(v[8 + j92 * 1 + i * 4], v[92 + j92 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j92 * 1 + i * 4], s[38], v[8 + j92 * 1 + i * 4]))
for i in range(8):
for j93 in range(2):
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_atomic_pk_add_bf16(v[16], v[242 + j93 * 1 + i * 1], s[4:7], 0, 0, 1))
k.emit(buffer_atomic_pk_add_bf16(v[17], v[242 + j93 * 1 + i * 1], s[4:7], 0, 4, 1))
k.emit(buffer_atomic_pk_add_bf16(v[18], v[242 + j93 * 1 + i * 1], s[4:7], 0, 8, 1))
k.emit(buffer_atomic_pk_add_bf16(v[19], v[242 + j93 * 1 + i * 1], s[4:7], 0, 12, 1))
k.emit(v_add_i32(v[242 + j93 * 1 + i * 1], v[242 + j93 * 1 + i * 1], 64))
k.emit(v_accvgpr_read(v[8], v[128 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[8], s[38], v[8]))
k.emit(v_accvgpr_read(v[9], v[129 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[9], s[38], v[9]))
k.emit(v_accvgpr_read(v[10], v[130 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[10], s[38], v[10]))
k.emit(v_accvgpr_read(v[11], v[131 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[11], s[38], v[11]))
k.emit(v_accvgpr_read(v[12], v[160 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[12], s[38], v[12]))
k.emit(v_accvgpr_read(v[13], v[161 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[13], s[38], v[13]))
k.emit(v_accvgpr_read(v[14], v[162 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[14], s[38], v[14]))
k.emit(v_accvgpr_read(v[15], v[163 + j93 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[15], s[38], v[15]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
for i in range(4):
k.emit(buffer_atomic_pk_add_bf16(v[16 + i * 1], v[250], s[4:7], 0, 0 + i * 4, 1))
k.emit(v_add_i32(v[250], v[250], 64))
k.emit(s_branch(1312), target='L2_6724')
k.label('L2_52A4')
for i in range(2):
for j94 in range(4):
k.emit(v_accvgpr_read(v[8 + j94 * 1 + i * 4], v[0 + j94 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j94 * 1 + i * 4], s[38], v[8 + j94 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[235], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[235], v[235], 64))
for i in range(2):
for j95 in range(4):
k.emit(v_accvgpr_read(v[8 + j95 * 1 + i * 4], v[64 + j95 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j95 * 1 + i * 4], s[38], v[8 + j95 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[235], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[235], v[235], 64))
for i in range(2):
for j96 in range(4):
k.emit(v_accvgpr_read(v[8 + j96 * 1 + i * 4], v[4 + j96 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j96 * 1 + i * 4], s[38], v[8 + j96 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[236], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[236], v[236], 64))
for i in range(2):
for j97 in range(4):
k.emit(v_accvgpr_read(v[8 + j97 * 1 + i * 4], v[68 + j97 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j97 * 1 + i * 4], s[38], v[8 + j97 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[236], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[236], v[236], 64))
for i in range(2):
for j98 in range(4):
k.emit(v_accvgpr_read(v[8 + j98 * 1 + i * 4], v[8 + j98 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j98 * 1 + i * 4], s[38], v[8 + j98 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[237], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[237], v[237], 64))
for i in range(2):
for j99 in range(4):
k.emit(v_accvgpr_read(v[8 + j99 * 1 + i * 4], v[72 + j99 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j99 * 1 + i * 4], s[38], v[8 + j99 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[237], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[237], v[237], 64))
for i in range(2):
for j100 in range(4):
k.emit(v_accvgpr_read(v[8 + j100 * 1 + i * 4], v[12 + j100 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j100 * 1 + i * 4], s[38], v[8 + j100 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[238], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[238], v[238], 64))
for i in range(2):
for j101 in range(4):
k.emit(v_accvgpr_read(v[8 + j101 * 1 + i * 4], v[76 + j101 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j101 * 1 + i * 4], s[38], v[8 + j101 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[238], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[238], v[238], 64))
for i in range(2):
for j102 in range(4):
k.emit(v_accvgpr_read(v[8 + j102 * 1 + i * 4], v[16 + j102 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j102 * 1 + i * 4], s[38], v[8 + j102 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[239], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[239], v[239], 64))
for i in range(2):
for j103 in range(4):
k.emit(v_accvgpr_read(v[8 + j103 * 1 + i * 4], v[80 + j103 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j103 * 1 + i * 4], s[38], v[8 + j103 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[239], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[239], v[239], 64))
for i in range(2):
for j104 in range(4):
k.emit(v_accvgpr_read(v[8 + j104 * 1 + i * 4], v[20 + j104 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j104 * 1 + i * 4], s[38], v[8 + j104 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[240], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[240], v[240], 64))
for i in range(2):
for j105 in range(4):
k.emit(v_accvgpr_read(v[8 + j105 * 1 + i * 4], v[84 + j105 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j105 * 1 + i * 4], s[38], v[8 + j105 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[240], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[240], v[240], 64))
for i in range(2):
for j106 in range(4):
k.emit(v_accvgpr_read(v[8 + j106 * 1 + i * 4], v[24 + j106 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j106 * 1 + i * 4], s[38], v[8 + j106 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[241], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[241], v[241], 64))
for i in range(2):
for j107 in range(4):
k.emit(v_accvgpr_read(v[8 + j107 * 1 + i * 4], v[88 + j107 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j107 * 1 + i * 4], s[38], v[8 + j107 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[241], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[241], v[241], 64))
for i in range(2):
for j108 in range(4):
k.emit(v_accvgpr_read(v[8 + j108 * 1 + i * 4], v[28 + j108 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j108 * 1 + i * 4], s[38], v[8 + j108 * 1 + i * 4]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[242], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[242], v[242], 64))
for i in range(2):
for j109 in range(4):
k.emit(v_accvgpr_read(v[8 + j109 * 1 + i * 4], v[92 + j109 * 1 + i * 32]))
k.emit(v_mul_f32_e32(v[8 + j109 * 1 + i * 4], s[38], v[8 + j109 * 1 + i * 4]))
for i in range(8):
for j110 in range(2):
k.emit(v_cvt_pk_bf16_f32(v[16], v[8], v[9]))
k.emit(v_cvt_pk_bf16_f32(v[17], v[10], v[11]))
k.emit(v_cvt_pk_bf16_f32(v[18], v[12], v[13]))
k.emit(v_cvt_pk_bf16_f32(v[19], v[14], v[15]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[242 + j110 * 1 + i * 1], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[242 + j110 * 1 + i * 1], v[242 + j110 * 1 + i * 1], 64))
k.emit(v_accvgpr_read(v[8], v[128 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[8], s[38], v[8]))
k.emit(v_accvgpr_read(v[9], v[129 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[9], s[38], v[9]))
k.emit(v_accvgpr_read(v[10], v[130 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[10], s[38], v[10]))
k.emit(v_accvgpr_read(v[11], v[131 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[11], s[38], v[11]))
k.emit(v_accvgpr_read(v[12], v[160 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[12], s[38], v[12]))
k.emit(v_accvgpr_read(v[13], v[161 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[13], s[38], v[13]))
k.emit(v_accvgpr_read(v[14], v[162 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[14], s[38], v[14]))
k.emit(v_accvgpr_read(v[15], v[163 + j110 * 64 + i * 4]))
k.emit(v_mul_f32_e32(v[15], s[38], v[15]))
for i in range(4):
k.emit(v_cvt_pk_bf16_f32(v[16 + i * 1], v[8 + i * 2], v[9 + i * 2]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[16], v[18]))
k.emit(s_nop(1))
k.emit(v_permlane16_swap_b32_e32(v[17], v[19]))
k.emit(s_nop(1))
k.emit(buffer_store_dwordx4(v[16:19], v[250], s[4:7], 0, 0, 1))
k.emit(v_add_i32(v[250], v[250], 64))
k.label('L2_6724')
k.emit(s_waitcnt())
k.emit(s_endpgm())
else:
raise AssertionError(f'unsupported tile {(tile_m, tile_n)}')
return k.finalize()