	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal4,4byte_literals
	.p2align	2                               ## -- Begin function invert_matrix_3d
LCPI0_0:
	.long	0x80000000                      ## float -0
LCPI0_2:
	.long	0x15f79688                      ## float 1.00000002E-25
LCPI0_3:
	.long	0x3f800000                      ## float 1
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4
LCPI0_1:
	.long	0x7fffffff                      ## float NaN
	.long	0x7fffffff                      ## float NaN
	.long	0x7fffffff                      ## float NaN
	.long	0x7fffffff                      ## float NaN
LCPI0_4:
	.long	0x80000000                      ## float -0
	.long	0x80000000                      ## float -0
	.long	0x80000000                      ## float -0
	.long	0x80000000                      ## float -0
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_invert_matrix_3d
	.p2align	4, 0x90
_invert_matrix_3d:                      ## @invert_matrix_3d
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movss	(%rsi), %xmm0                   ## xmm0 = mem[0],zero,zero,zero
	movsd	4(%rsi), %xmm10                 ## xmm10 = mem[0],zero
	movshdup	%xmm10, %xmm8                   ## xmm8 = xmm10[1,1,3,3]
	movaps	%xmm0, -80(%rbp)                ## 16-byte Spill
	mulss	%xmm10, %xmm0
	mulss	%xmm8, %xmm0
	xorps	%xmm6, %xmm6
	ucomiss	%xmm6, %xmm0
	movaps	%xmm0, %xmm1
	addss	%xmm6, %xmm1
	movaps	%xmm1, %xmm13
	jb	LBB0_2
## %bb.1:
	xorps	%xmm13, %xmm13
LBB0_2:
	xorps	%xmm5, %xmm5
	cmpnless	%xmm0, %xmm5
	andnps	%xmm1, %xmm5
	movss	12(%rsi), %xmm14                ## xmm14 = mem[0],zero,zero,zero
	movss	20(%rsi), %xmm11                ## xmm11 = mem[0],zero,zero,zero
	movss	24(%rsi), %xmm15                ## xmm15 = mem[0],zero,zero,zero
	movss	28(%rsi), %xmm12                ## xmm12 = mem[0],zero,zero,zero
	movaps	%xmm15, %xmm0
	mulss	%xmm12, %xmm0
	movss	16(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm14, %xmm4
	mulss	%xmm3, %xmm4
	mulss	%xmm11, %xmm4
	xorps	%xmm7, %xmm7
	cmpless	%xmm4, %xmm7
	movaps	%xmm7, %xmm2
	andnps	%xmm4, %xmm2
	movss	LCPI0_0(%rip), %xmm1            ## xmm1 = mem[0],zero,zero,zero
	andps	%xmm1, %xmm7
	orps	%xmm2, %xmm7
	addss	%xmm13, %xmm7
	maxss	%xmm1, %xmm4
	addss	%xmm5, %xmm4
	movss	32(%rsi), %xmm9                 ## xmm9 = mem[0],zero,zero,zero
	mulss	%xmm9, %xmm0
	xorps	%xmm2, %xmm2
	cmpless	%xmm0, %xmm2
	movaps	%xmm2, %xmm5
	andnps	%xmm0, %xmm5
	andps	%xmm1, %xmm2
	orps	%xmm5, %xmm2
	addss	%xmm7, %xmm2
	maxss	%xmm1, %xmm0
	addss	%xmm4, %xmm0
	xorps	%xmm1, %xmm15
	movaps	%xmm10, %xmm4
	mulss	%xmm15, %xmm4
	movaps	%xmm11, %xmm13
	movaps	%xmm4, -16(%rbp)                ## 16-byte Spill
	mulss	%xmm4, %xmm11
	movaps	%xmm10, -32(%rbp)               ## 16-byte Spill
	xorps	%xmm10, %xmm10
	cmpless	%xmm11, %xmm10
	movaps	%xmm10, %xmm4
	andnps	%xmm11, %xmm4
	andps	%xmm1, %xmm10
	orps	%xmm4, %xmm10
	addss	%xmm2, %xmm10
	maxss	%xmm1, %xmm11
	addss	%xmm0, %xmm11
	movaps	%xmm14, -48(%rbp)               ## 16-byte Spill
	movaps	%xmm14, %xmm7
	xorps	%xmm1, %xmm7
	movaps	%xmm12, -64(%rbp)               ## 16-byte Spill
	mulss	%xmm7, %xmm12
	movaps	%xmm8, %xmm14
	mulss	%xmm12, %xmm14
	xorps	%xmm2, %xmm2
	cmpless	%xmm14, %xmm2
	movaps	%xmm2, %xmm0
	andnps	%xmm14, %xmm0
	andps	%xmm1, %xmm2
	orps	%xmm0, %xmm2
	addss	%xmm10, %xmm2
	maxss	%xmm1, %xmm14
	addss	%xmm11, %xmm14
	movaps	-80(%rbp), %xmm4                ## 16-byte Reload
	movaps	%xmm4, %xmm0
	xorps	%xmm1, %xmm0
	mulss	%xmm3, %xmm0
	mulss	%xmm9, %xmm0
	cmpless	%xmm0, %xmm6
	movaps	%xmm6, %xmm5
	andnps	%xmm0, %xmm5
	andps	%xmm1, %xmm6
	orps	%xmm5, %xmm6
	addss	%xmm2, %xmm6
	maxss	%xmm1, %xmm0
	addss	%xmm14, %xmm0
	addss	%xmm6, %xmm0
	movaps	LCPI0_1(%rip), %xmm1            ## xmm1 = [NaN,NaN,NaN,NaN]
	andps	%xmm0, %xmm1
	movss	LCPI0_2(%rip), %xmm2            ## xmm2 = mem[0],zero,zero,zero
	ucomiss	%xmm1, %xmm2
	jbe	LBB0_4
## %bb.3:
	movq	_FALSE@GOTPCREL(%rip), %rax
	jmp	LBB0_5
LBB0_4:
	movaps	%xmm4, %xmm5
	movss	LCPI0_3(%rip), %xmm10           ## xmm10 = mem[0],zero,zero,zero
	divss	%xmm0, %xmm10
	movaps	%xmm9, %xmm0
	mulss	%xmm3, %xmm0
	movaps	-32(%rbp), %xmm14               ## 16-byte Reload
	movaps	%xmm14, %xmm6
	mulss	%xmm8, %xmm6
	subss	%xmm0, %xmm6
	movaps	%xmm13, %xmm11
	movaps	%xmm13, %xmm2
	mulss	%xmm3, %xmm2
	movaps	-64(%rbp), %xmm4                ## 16-byte Reload
	movaps	%xmm4, %xmm0
	mulss	%xmm8, %xmm0
	subss	%xmm2, %xmm0
	movaps	%xmm9, %xmm2
	mulss	%xmm15, %xmm2
	movaps	-48(%rbp), %xmm1                ## 16-byte Reload
	mulss	%xmm1, %xmm8
	addss	%xmm2, %xmm8
	mulss	%xmm13, %xmm7
	movaps	%xmm5, %xmm13
	mulss	%xmm9, %xmm5
	addss	%xmm7, %xmm5
	movaps	%xmm4, %xmm2
	insertps	$16, %xmm1, %xmm2               ## xmm2 = xmm2[0],xmm1[0],xmm2[2,3]
	movaps	LCPI0_4(%rip), %xmm1            ## xmm1 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
	insertps	$16, %xmm3, %xmm9               ## xmm9 = xmm9[0],xmm3[0],xmm9[2,3]
	mulps	%xmm2, %xmm9
	movaps	%xmm14, %xmm7
	xorps	%xmm1, %xmm7
	mulss	%xmm11, %xmm7
	insertps	$16, -16(%rbp), %xmm7           ## 16-byte Folded Reload
                                        ## xmm7 = xmm7[0],mem[0],xmm7[2,3]
	addps	%xmm9, %xmm7
	mulss	%xmm15, %xmm11
	mulss	%xmm15, %xmm4
	mulss	%xmm13, %xmm3
	addss	%xmm4, %xmm3
	xorps	%xmm1, %xmm0
	xorps	%xmm1, %xmm8
	xorps	%xmm1, %xmm5
	xorps	%xmm1, %xmm3
	insertps	$16, %xmm11, %xmm12             ## xmm12 = xmm12[0],xmm11[0],xmm12[2,3]
	movsldup	%xmm13, %xmm1                   ## xmm1 = xmm13[0,0,2,2]
	mulps	%xmm14, %xmm1
	addps	%xmm12, %xmm1
	shufps	$16, %xmm1, %xmm6               ## xmm6 = xmm6[0,0],xmm1[1,0]
	shufps	$200, %xmm1, %xmm6              ## xmm6 = xmm6[0,2],xmm1[0,3]
	insertps	$48, %xmm8, %xmm6               ## xmm6 = xmm6[0,1,2],xmm8[0]
	mulss	%xmm10, %xmm5
	shufps	$0, %xmm10, %xmm10              ## xmm10 = xmm10[0,0,0,0]
	mulps	%xmm10, %xmm6
	movups	%xmm6, (%rdi)
	movlhps	%xmm7, %xmm3                    ## xmm3 = xmm3[0],xmm7[0]
	shufps	$216, %xmm7, %xmm3              ## xmm3 = xmm3[0,2],xmm7[1,3]
	insertps	$48, %xmm0, %xmm3               ## xmm3 = xmm3[0,1,2],xmm0[0]
	mulps	%xmm10, %xmm3
	movups	%xmm3, 16(%rdi)
	movss	%xmm5, 32(%rdi)
	movq	_TRUE@GOTPCREL(%rip), %rax
LBB0_5:
	movl	(%rax), %eax
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_FALSE,4,2                      ## @FALSE
	.comm	_TRUE,4,2                       ## @TRUE
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_invert_matrix_3d               ; -- Begin function invert_matrix_3d
	.p2align	2
_invert_matrix_3d:                      ; @invert_matrix_3d
	.cfi_startproc
; %bb.0:
	ldp	s0, s1, [x1]
	fmul	s4, s0, s1
	ldp	s2, s3, [x1, #8]
	fmul	s4, s4, s2
	movi	d5, #0000000000000000
	fadd	s6, s4, s5
	fcmp	s4, #0.0
	fcsel	s7, s6, s5, lt
	fcsel	s6, s5, s6, lt
	ldp	s4, s5, [x1, #16]
	fmul	s16, s3, s4
	fmul	s16, s16, s5
	fcmp	s16, #0.0
	movi.2s	v20, #128, lsl #24
	fcsel	s17, s20, s16, ge
	fadd	s17, s7, s17
	fmaxnm	s7, s16, s20
	fadd	s16, s6, s7
	ldp	s18, s6, [x1, #24]
	fmul	s19, s18, s6
	ldr	s7, [x1, #32]
	fmul	s19, s19, s7
	fcmp	s19, #0.0
	fcsel	s21, s20, s19, ge
	fadd	s21, s17, s21
	fmaxnm	s17, s19, s20
	fadd	s19, s16, s17
	fneg	s16, s18
	fmul	s17, s1, s16
	fmul	s18, s5, s17
	fcmp	s18, #0.0
	fcsel	s22, s20, s18, ge
	fadd	s21, s22, s21
	fmaxnm	s18, s18, s20
	fadd	s22, s18, s19
	fneg	s19, s3
	fmul	s18, s6, s19
	fmul	s23, s2, s18
	fcmp	s23, #0.0
	fcsel	s24, s20, s23, ge
	fadd	s21, s24, s21
	fmaxnm	s23, s23, s20
	fadd	s22, s23, s22
	fneg	s23, s0
	fmul	s23, s4, s23
	fmul	s23, s23, s7
	fcmp	s23, #0.0
	fcsel	s24, s20, s23, ge
	fadd	s21, s24, s21
	fmaxnm	s20, s23, s20
	fadd	s20, s20, s22
	fadd	s20, s20, s21
	fabs	s21, s20
	mov	w8, #38536
	movk	w8, #5623, lsl #16
	fmov	s22, w8
	fcmp	s21, s22
	b.pl	LBB0_2
; %bb.1:
Lloh0:
	adrp	x8, _FALSE@GOTPAGE
Lloh1:
	ldr	x8, [x8, _FALSE@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	ret
LBB0_2:
	fmov	s21, #1.00000000
	fdiv	s20, s21, s20
	fneg	s21, s4
	fmul	s22, s7, s21
	fmadd	s22, s1, s2, s22
	fmul	s22, s22, s20
	fmul	s21, s5, s21
	fnmadd	s21, s6, s2, s21
	fmul	s21, s20, s21
	fneg	s23, s1
	fmul	s23, s5, s23
	fmadd	s23, s6, s7, s23
	fmul	s23, s23, s20
	fmul	s24, s7, s16
	fnmadd	s24, s3, s2, s24
	fmul	s24, s20, s24
	fmul	s25, s5, s16
	fmadd	s2, s0, s2, s25
	fmul	s2, s2, s20
	fmul	s5, s5, s19
	fnmadd	s5, s0, s7, s5
	fmul	s5, s20, s5
	fmadd	s3, s3, s4, s17
	fmul	s3, s3, s20
	fmul	s6, s6, s16
	fnmadd	s4, s0, s4, s6
	fmul	s4, s20, s4
	fmadd	s0, s0, s1, s18
	fmul	s0, s0, s20
	stp	s22, s2, [x0]
	stp	s0, s24, [x0, #8]
	stp	s4, s23, [x0, #16]
	stp	s3, s21, [x0, #24]
	str	s5, [x0, #32]
Lloh3:
	adrp	x8, _TRUE@GOTPAGE
Lloh4:
	ldr	x8, [x8, _TRUE@GOTPAGEOFF]
Lloh5:
	ldr	w0, [x8]
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.cfi_endproc
                                        ; -- End function
	.comm	_FALSE,4,2                      ; @FALSE
	.comm	_TRUE,4,2                       ; @TRUE
.subsections_via_symbols
