// Tile size: 4x3 // Accumulators: 0-11 // Col regs: ymm12 // Row regs: ymm13-15 // Load col of A vmovaps ymm12, [rax] // Fill 3 cols of B vbroadcastss ymm13, dword ptr [rcx + 0] vbroadcastss ymm14, dword ptr [rcx + 4] vbroadcastss ymm15, dword ptr [rcx + 8] // N.B. Stepping cols in inner loop vfmadd231ps ymm0, ymm12, ymm13 vfmadd231ps ymm4, ymm12, ymm14 vfmadd231ps ymm8, ymm12, ymm15 vmovaps ymm12, [rax+32] vfmadd231ps ymm1, ymm12, ymm13 vfmadd231ps ymm5, ymm12, ymm14 vfmadd231ps ymm9, ymm12, ymm15 vmovaps ymm12, [rax+64] vfmadd231ps ymm2, ymm12, ymm13 vfmadd231ps ymm6, ymm12, ymm14 vfmadd231ps ymm10, ymm12, ymm15 vmovaps ymm12, [rax+96] vfmadd231ps ymm3, ymm12, ymm13 vfmadd231ps ymm7, ymm12, ymm14 vfmadd231ps ymm11, ymm12, ymm15 add rcx, 12 add rax, 128