// File: /workspace/github_c_makefile_star2_O2/halcy[P]quasi_crystals_bot/Vector/Matrix.c
// Function: mat4x3affinemul
mat4x3_t mat4x3affinemul(mat4x3_t a,mat4x3_t b)
{
	return mat4x3(a.m[0]*b.m[0]+a.m[3]*b.m[1]+a.m[6]*b.m[2],
	              a.m[0]*b.m[3]+a.m[3]*b.m[4]+a.m[6]*b.m[5],
	              a.m[0]*b.m[6]+a.m[3]*b.m[7]+a.m[6]*b.m[8],
	              a.m[0]*b.m[9]+a.m[3]*b.m[10]+a.m[6]*b.m[11]+a.m[9],

	              a.m[1]*b.m[0]+a.m[4]*b.m[1]+a.m[7]*b.m[2],
	              a.m[1]*b.m[3]+a.m[4]*b.m[4]+a.m[7]*b.m[5],
	              a.m[1]*b.m[6]+a.m[4]*b.m[7]+a.m[7]*b.m[8],
	              a.m[1]*b.m[9]+a.m[4]*b.m[10]+a.m[7]*b.m[11]+a.m[10],

	              a.m[2]*b.m[0]+a.m[5]*b.m[1]+a.m[8]*b.m[2],
	              a.m[2]*b.m[3]+a.m[5]*b.m[4]+a.m[8]*b.m[5],
	              a.m[2]*b.m[6]+a.m[5]*b.m[7]+a.m[8]*b.m[8],
	              a.m[2]*b.m[9]+a.m[5]*b.m[10]+a.m[8]*b.m[11]+a.m[11]);
}

// Assembly:
movss 0x5c(%rsp), %xmm6
movss 0xc(%rsp), %xmm0
movss 0x8(%rsp), %xmm1
movss 0x10(%rsp), %xmm2
movsd 0x38(%rsp), %xmm8
movsd 0x14(%rsp), %xmm10
movss 0x60(%rsp), %xmm3
movups 0x40(%rsp), %xmm4
movss 0x44(%rsp), %xmm13
movss 0x4c(%rsp), %xmm11
movss 0x58(%rsp), %xmm12
movq %rdi, %rax
movaps %xmm6, %xmm5
movaps %xmm0, %xmm7
movaps %xmm8, %xmm9
movaps %xmm10, %xmm14
mulss %xmm6, %xmm7
mulss %xmm1, %xmm5
mulss %xmm2, %xmm6
shufps $0xc5, %xmm8, %xmm9     # xmm9 = xmm9[1,1],xmm8[0,3]
shufps $0xc5, %xmm10, %xmm14   # xmm14 = xmm14[1,1],xmm10[0,3]
shufps $0xd4, %xmm8, %xmm8     # xmm8 = xmm8[0,1,1,3]
insertps $0x30, %xmm13, %xmm8    # xmm8 = xmm8[0,1,2],xmm13[0]
insertps $0x10, %xmm2, %xmm14    # xmm14 = xmm14[0],xmm2[0],xmm14[2,3]
insertps $0x10, %xmm11, %xmm4    # xmm4 = xmm4[0],xmm11[0],xmm4[2,3]
shufps $0x0, %xmm12, %xmm11    # xmm11 = xmm11[0,0],xmm12[0,0]
shufps $0x24, %xmm14, %xmm14   # xmm14 = xmm14[0,1,2,0]
shufps $0xe0, %xmm8, %xmm8     # xmm8 = xmm8[0,0,2,3]
shufps $0x40, %xmm4, %xmm4     # xmm4 = xmm4[0,0,0,1]
shufps $0x0, %xmm7, %xmm5      # xmm5 = xmm5[0,0],xmm7[0,0]
movaps %xmm10, %xmm7
unpcklps %xmm10, %xmm10          # xmm10 = xmm10[0,0,1,1]
insertps $0x30, %xmm6, %xmm5     # xmm5 = xmm5[0,1,2],xmm6[0]
movss 0x48(%rsp), %xmm6
insertps $0x20, %xmm2, %xmm7     # xmm7 = xmm7[0,1],xmm2[0],xmm7[3]
insertps $0x30, %xmm6, %xmm9     # xmm9 = xmm9[0,1,2],xmm6[0]
shufps $0x24, %xmm7, %xmm7     # xmm7 = xmm7[0,1,2,0]
insertps $0x10, %xmm13, %xmm6    # xmm6 = xmm6[0],xmm13[0],xmm6[2,3]
movss 0x54(%rsp), %xmm13
shufps $0xe0, %xmm9, %xmm9     # xmm9 = xmm9[0,0,2,3]
shufps $0x4, %xmm13, %xmm6     # xmm6 = xmm6[0,1],xmm13[0,0]
insertps $0x10, 0x64(%rsp), %xmm13 # xmm13 = xmm13[0],mem[0],xmm13[2,3]
mulps %xmm9, %xmm7
movups 0x1c(%rsp), %xmm9
mulps %xmm14, %xmm6
shufps $0x54, %xmm13, %xmm13   # xmm13 = xmm13[0,1,1,1]
movaps %xmm9, %xmm15
movaps %xmm9, %xmm14
insertps $0x1c, %xmm9, %xmm0     # xmm0 = xmm0[0],xmm9[0],zero,zero
mulps %xmm9, %xmm13
mulss %xmm3, %xmm15
shufps $0x80, %xmm3, %xmm3     # xmm3 = xmm3[0,0,0,2]
insertps $0x20, %xmm1, %xmm0     # xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
mulps %xmm10, %xmm3
movaps %xmm9, %xmm10
shufps $0x24, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,0]
shufps $0xff, %xmm9, %xmm10    # xmm10 = xmm10[3,3],xmm9[3,3]
mulss %xmm12, %xmm10
movaps 0x8(%rsp), %xmm12
movlhps %xmm12, %xmm14          # xmm14 = xmm14[0],xmm12[0]
insertps $0x10, 0x2c(%rsp), %xmm10 # xmm10 = xmm10[0],mem[0],xmm10[2,3]
shufps $0x84, %xmm14, %xmm12   # xmm12 = xmm12[0,1],xmm14[0,2]
movups 0x44(%rsp), %xmm14
movhps 0x30(%rsp), %xmm10      # xmm10 = xmm10[0,1],mem[0,1]
insertps $0x30, %xmm15, %xmm3    # xmm3 = xmm3[0,1,2],xmm15[0]
movaps %xmm9, %xmm15
shufps $0x9e, %xmm9, %xmm9     # xmm9 = xmm9[2,3,1,2]
mulps %xmm8, %xmm12
addps %xmm13, %xmm10
mulps %xmm11, %xmm9
addps %xmm5, %xmm3
movss 0x50(%rsp), %xmm5
shufps $0x79, %xmm15, %xmm15   # xmm15 = xmm15[1,2,3,1]
shufps $0x4, %xmm5, %xmm14     # xmm14 = xmm14[0,1],xmm5[0,0]
mulss %xmm5, %xmm2
mulps %xmm4, %xmm15
mulps %xmm14, %xmm0
addps %xmm7, %xmm12
addps %xmm6, %xmm9
blendps $0xe, %xmm3, %xmm2      # xmm2 = xmm2[0],xmm3[1,2,3]
addps %xmm2, %xmm10
addps %xmm12, %xmm15
addps %xmm0, %xmm9
movups %xmm15, (%rdi)
movups %xmm9, 0x10(%rdi)
movups %xmm10, 0x20(%rdi)
retq