	// 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

	// Load col of A, switching col!
	vmovaps			zmm13,	[rax + 256]

	// Fill 3 cols of B
	vbroadcastss	zmm14,	dword ptr [rcx + 12]
	vbroadcastss	zmm15,	dword ptr [rcx + 16]
	vbroadcastss	zmm12,	dword ptr [rcx + 20]

	// N.B. Stepping cols in inner loop
	vfmadd231ps		zmm0,	zmm13, zmm14
	vfmadd231ps		zmm4,	zmm13, zmm15
	vfmadd231ps		zmm8,	zmm13, zmm12

	vmovaps			zmm13,	[rax + 320]

	vfmadd231ps		zmm1,	zmm13, zmm14
	vfmadd231ps		zmm5,	zmm13, zmm15
	vfmadd231ps		zmm9,	zmm13, zmm12

	vmovaps			zmm13,	[rax + 384]

	vfmadd231ps		zmm2,	zmm13, zmm14
	vfmadd231ps		zmm6,	zmm13, zmm15
	vfmadd231ps		zmm10,	 zmm13, zmm12

	vmovaps			zmm13,	[rax + 448]

	vfmadd231ps		zmm3,	zmm13, zmm14
	vfmadd231ps		zmm7,	zmm13, zmm15
	vfmadd231ps		zmm11,	zmm13, zmm12

    add             rcx,    24
    add             rax,    512
