// File: /workspace/github_c_makefile_star2_O3/halcy[P]quasi_crystals_bot/Vector/Matrix.h
// Function: mat4x4affineinverse
static inline float mat4x4affinedet(mat4x4_t m)
{
	return mat4x4_11(m)*mat4x4_22(m)*mat4x4_33(m)
	      -mat4x4_11(m)*mat4x4_32(m)*mat4x4_23(m)
	      +mat4x4_21(m)*mat4x4_32(m)*mat4x4_13(m)
	      -mat4x4_21(m)*mat4x4_12(m)*mat4x4_33(m)
	      +mat4x4_31(m)*mat4x4_12(m)*mat4x4_23(m)
	      -mat4x4_31(m)*mat4x4_22(m)*mat4x4_13(m);
}

// Assembly:
movss 0x10(%rsp), %xmm10
movss 0x1c(%rsp), %xmm0
movsd 0x28(%rsp), %xmm6
movss 0x8(%rsp), %xmm4
movss 0x18(%rsp), %xmm5
movss 0x20(%rsp), %xmm8
movss 0xc(%rsp), %xmm15
movss 0x30(%rsp), %xmm3
xorl %ecx, %ecx
movq %rdi, %rax
movaps %xmm0, %xmm1
movaps %xmm10, %xmm2
movaps %xmm6, %xmm13
movaps %xmm5, %xmm11
movaps %xmm8, %xmm9
movaps %xmm6, %xmm14
movaps %xmm15, -0x28(%rsp)
movshdup %xmm6, %xmm7            # xmm7 = xmm6[1,1,3,3]
movaps %xmm10, %xmm12
movl %ecx, 0xc(%rdi)
movl %ecx, 0x1c(%rdi)
movl %ecx, 0x2c(%rdi)
mulss %xmm0, %xmm2
mulss %xmm4, %xmm1
insertps $0x10, %xmm4, %xmm0     # xmm0 = xmm0[0],xmm4[0],xmm0[2,3]
insertps $0x10, %xmm15, %xmm11   # xmm11 = xmm11[0],xmm15[0],xmm11[2,3]
mulss %xmm4, %xmm9
mulss %xmm8, %xmm15
shufps $0xe1, %xmm6, %xmm14    # xmm14 = xmm14[1,0],xmm6[2,3]
mulps %xmm0, %xmm13
movaps %xmm14, %xmm4
mulps %xmm11, %xmm4
movaps %xmm1, -0x18(%rsp)
mulss %xmm3, %xmm1
movsldup %xmm3, %xmm3            # xmm3 = xmm3[0,0,2,2]
movaps %xmm2, -0x38(%rsp)
movaps %xmm15, %xmm2
mulss %xmm6, %xmm15
mulss %xmm9, %xmm7
mulps %xmm3, %xmm11
mulps %xmm3, %xmm0
subss -0x38(%rsp), %xmm2
mulss %xmm13, %xmm12
addss %xmm1, %xmm15
movaps %xmm4, %xmm1
subps %xmm13, %xmm4
mulss %xmm10, %xmm1
addss %xmm7, %xmm12
movshdup %xmm11, %xmm7           # xmm7 = xmm11[1,1,3,3]
mulss %xmm5, %xmm7
addss %xmm15, %xmm1
addss %xmm7, %xmm12
movss 0x2b6a(%rip), %xmm7     # 0xe008
subss %xmm12, %xmm1
movaps %xmm6, %xmm12
movss %xmm8, %xmm6            # xmm6 = xmm8[0],xmm6[1,2,3]
insertps $0x10, %xmm10, %xmm12   # xmm12 = xmm12[0],xmm10[0],xmm12[2,3]
mulps %xmm12, %xmm6
divss %xmm1, %xmm7
movaps %xmm14, %xmm1
movss %xmm8, %xmm14           # xmm14 = xmm8[0],xmm14[1,2,3]
movaps -0x18(%rsp), %xmm8
insertps $0x10, %xmm10, %xmm1    # xmm1 = xmm1[0],xmm10[0],xmm1[2,3]
mulss %xmm5, %xmm10
mulss -0x28(%rsp), %xmm5
mulps %xmm1, %xmm14
subps %xmm11, %xmm6
subss %xmm9, %xmm10
subss %xmm5, %xmm8
movss 0x40(%rsp), %xmm5
subps %xmm14, %xmm0
movsldup %xmm7, %xmm3            # xmm3 = xmm7[0,0,2,2]
mulss %xmm7, %xmm2
mulss %xmm7, %xmm10
mulss %xmm8, %xmm7
mulps %xmm3, %xmm0
mulps %xmm3, %xmm6
mulps %xmm3, %xmm4
movsd 0x38(%rsp), %xmm3
movaps %xmm3, %xmm9
shufps $0xe1, %xmm3, %xmm9     # xmm9 = xmm9[1,0],xmm3[2,3]
movaps %xmm0, %xmm1
mulps %xmm6, %xmm9
blendps $0x2, %xmm6, %xmm1      # xmm1 = xmm1[0],xmm6[1],xmm1[2,3]
blendps $0x2, %xmm0, %xmm6      # xmm6 = xmm6[0],xmm0[1],xmm6[2,3]
mulps %xmm3, %xmm0
movlps %xmm1, (%rdi)
movlps %xmm6, 0x10(%rdi)
movlps %xmm4, 0x20(%rdi)
movss %xmm2, 0x8(%rdi)
mulss %xmm3, %xmm2
movshdup %xmm3, %xmm3            # xmm3 = xmm3[1,1,3,3]
movsldup %xmm5, %xmm6            # xmm6 = xmm5[0,0,2,2]
movss %xmm10, 0x18(%rdi)
movss %xmm7, 0x28(%rdi)
mulss %xmm5, %xmm7
mulss %xmm10, %xmm3
mulps %xmm4, %xmm6
addps %xmm9, %xmm0
addss %xmm2, %xmm3
addps %xmm0, %xmm6
movaps 0x2aa3(%rip), %xmm0     # 0xe020
addss %xmm3, %xmm7
xorps %xmm0, %xmm6
xorps %xmm0, %xmm7
movlps %xmm6, 0x30(%rdi)
movss %xmm7, 0x38(%rdi)
movl $0x3f800000, 0x3c(%rdi) # imm = 0x3F800000
retq