// Tile size: 4x3 // Accumulators: 0-11 // Col regs: zmm12 // Row regs: zmm13-15 // Load col of A vmovaps zmm12, [rax] // Fill 3 cols of B vbroadcastss zmm13, dword ptr [rcx + 0] vbroadcastss zmm14, dword ptr [rcx + 4] vbroadcastss zmm15, dword ptr [rcx + 8] // N.B. Stepping cols in inner loop vfmadd231ps zmm0, zmm12, zmm13 vfmadd231ps zmm4, zmm12, zmm14 vfmadd231ps zmm8, zmm12, zmm15 vmovaps zmm12, [rax+64] vfmadd231ps zmm1, zmm12, zmm13 vfmadd231ps zmm5, zmm12, zmm14 vfmadd231ps zmm9, zmm12, zmm15 vmovaps zmm12, [rax+128] vfmadd231ps zmm2, zmm12, zmm13 vfmadd231ps zmm6, zmm12, zmm14 vfmadd231ps zmm10, zmm12, zmm15 vmovaps zmm12, [rax+192] vfmadd231ps zmm3, zmm12, zmm13 vfmadd231ps zmm7, zmm12, zmm14 vfmadd231ps zmm11, zmm12, zmm15 add rcx, 12 add rax, 256