	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_mat_multiply                   ## -- Begin function mat_multiply
	.p2align	4, 0x90
_mat_multiply:                          ## @mat_multiply
	.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), %xmm8                   ## xmm8 = mem[0],zero,zero,zero
	movups	(%rdx), %xmm3
	movups	16(%rdx), %xmm0
	movups	32(%rdx), %xmm6
	movups	48(%rdx), %xmm7
	movaps	%xmm7, %xmm2
	movlhps	%xmm6, %xmm2                    ## xmm2 = xmm2[0],xmm6[0]
	movaps	%xmm3, %xmm1
	unpcklps	%xmm0, %xmm1                    ## xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
	shufps	$36, %xmm2, %xmm1               ## xmm1 = xmm1[0,1],xmm2[2,0]
	movaps	%xmm0, %xmm4
	insertps	$76, %xmm3, %xmm4               ## xmm4 = xmm3[1],xmm4[1],zero,zero
	movaps	%xmm6, %xmm2
	unpcklps	%xmm7, %xmm2                    ## xmm2 = xmm2[0],xmm7[0],xmm2[1],xmm7[1]
	blendps	$3, %xmm4, %xmm2                ## xmm2 = xmm4[0,1],xmm2[2,3]
	movaps	%xmm3, %xmm5
	unpckhps	%xmm0, %xmm5                    ## xmm5 = xmm5[2],xmm0[2],xmm5[3],xmm0[3]
	movaps	%xmm6, %xmm4
	insertps	$179, %xmm7, %xmm4              ## xmm4 = zero,zero,xmm4[2],xmm7[2]
	blendps	$3, %xmm5, %xmm4                ## xmm4 = xmm5[0,1],xmm4[2,3]
	movss	4(%rsi), %xmm5                  ## xmm5 = mem[0],zero,zero,zero
	unpckhps	%xmm7, %xmm6                    ## xmm6 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]
	movss	8(%rsi), %xmm7                  ## xmm7 = mem[0],zero,zero,zero
	shufps	$51, %xmm3, %xmm0               ## xmm0 = xmm0[3,0],xmm3[3,0]
	movss	16(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	shufps	$0, %xmm3, %xmm3                ## xmm3 = xmm3[0,0,0,0]
	shufps	$0, %xmm8, %xmm8                ## xmm8 = xmm8[0,0,0,0]
	shufps	$226, %xmm6, %xmm0              ## xmm0 = xmm0[2,0],xmm6[2,3]
	mulps	%xmm1, %xmm8
	xorps	%xmm9, %xmm9
	addps	%xmm9, %xmm8
	mulps	%xmm2, %xmm3
	addps	%xmm8, %xmm3
	movss	32(%rsi), %xmm6                 ## xmm6 = mem[0],zero,zero,zero
	shufps	$0, %xmm6, %xmm6                ## xmm6 = xmm6[0,0,0,0]
	mulps	%xmm4, %xmm6
	addps	%xmm3, %xmm6
	movss	48(%rsi), %xmm8                 ## xmm8 = mem[0],zero,zero,zero
	shufps	$0, %xmm8, %xmm8                ## xmm8 = xmm8[0,0,0,0]
	mulps	%xmm0, %xmm8
	addps	%xmm6, %xmm8
	movss	20(%rsi), %xmm6                 ## xmm6 = mem[0],zero,zero,zero
	shufps	$0, %xmm6, %xmm6                ## xmm6 = xmm6[0,0,0,0]
	shufps	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	mulps	%xmm1, %xmm5
	addps	%xmm9, %xmm5
	mulps	%xmm2, %xmm6
	addps	%xmm5, %xmm6
	movss	36(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	shufps	$0, %xmm3, %xmm3                ## xmm3 = xmm3[0,0,0,0]
	mulps	%xmm4, %xmm3
	addps	%xmm6, %xmm3
	movss	52(%rsi), %xmm5                 ## xmm5 = mem[0],zero,zero,zero
	shufps	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	mulps	%xmm0, %xmm5
	addps	%xmm3, %xmm5
	movss	24(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	shufps	$0, %xmm3, %xmm3                ## xmm3 = xmm3[0,0,0,0]
	shufps	$0, %xmm7, %xmm7                ## xmm7 = xmm7[0,0,0,0]
	mulps	%xmm1, %xmm7
	addps	%xmm9, %xmm7
	mulps	%xmm2, %xmm3
	addps	%xmm7, %xmm3
	movss	40(%rsi), %xmm6                 ## xmm6 = mem[0],zero,zero,zero
	shufps	$0, %xmm6, %xmm6                ## xmm6 = xmm6[0,0,0,0]
	mulps	%xmm4, %xmm6
	addps	%xmm3, %xmm6
	movss	56(%rsi), %xmm7                 ## xmm7 = mem[0],zero,zero,zero
	shufps	$0, %xmm7, %xmm7                ## xmm7 = xmm7[0,0,0,0]
	mulps	%xmm0, %xmm7
	addps	%xmm6, %xmm7
	movss	12(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	shufps	$0, %xmm3, %xmm3                ## xmm3 = xmm3[0,0,0,0]
	mulps	%xmm3, %xmm1
	addps	%xmm9, %xmm1
	movss	28(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	shufps	$0, %xmm3, %xmm3                ## xmm3 = xmm3[0,0,0,0]
	mulps	%xmm3, %xmm2
	movss	60(%rsi), %xmm3                 ## xmm3 = mem[0],zero,zero,zero
	shufps	$0, %xmm3, %xmm3                ## xmm3 = xmm3[0,0,0,0]
	addps	%xmm1, %xmm2
	movss	44(%rsi), %xmm1                 ## xmm1 = mem[0],zero,zero,zero
	shufps	$0, %xmm1, %xmm1                ## xmm1 = xmm1[0,0,0,0]
	mulps	%xmm1, %xmm4
	addps	%xmm2, %xmm4
	mulps	%xmm3, %xmm0
	addps	%xmm4, %xmm0
	movaps	%xmm0, %xmm1
	movlhps	%xmm7, %xmm1                    ## xmm1 = xmm1[0],xmm7[0]
	movaps	%xmm8, %xmm2
	unpcklps	%xmm5, %xmm2                    ## xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]
	shufps	$36, %xmm1, %xmm2               ## xmm2 = xmm2[0,1],xmm1[2,0]
	movaps	%xmm5, %xmm1
	insertps	$76, %xmm8, %xmm1               ## xmm1 = xmm8[1],xmm1[1],zero,zero
	movaps	%xmm7, %xmm3
	unpcklps	%xmm0, %xmm3                    ## xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]
	blendps	$3, %xmm1, %xmm3                ## xmm3 = xmm1[0,1],xmm3[2,3]
	movaps	%xmm8, %xmm1
	unpckhps	%xmm5, %xmm1                    ## xmm1 = xmm1[2],xmm5[2],xmm1[3],xmm5[3]
	movaps	%xmm7, %xmm4
	insertps	$179, %xmm0, %xmm4              ## xmm4 = zero,zero,xmm4[2],xmm0[2]
	blendps	$3, %xmm1, %xmm4                ## xmm4 = xmm1[0,1],xmm4[2,3]
	unpckhps	%xmm0, %xmm7                    ## xmm7 = xmm7[2],xmm0[2],xmm7[3],xmm0[3]
	shufps	$51, %xmm8, %xmm5               ## xmm5 = xmm5[3,0],xmm8[3,0]
	shufps	$226, %xmm7, %xmm5              ## xmm5 = xmm5[2,0],xmm7[2,3]
	movaps	%xmm5, -16(%rbp)
	movaps	%xmm4, -32(%rbp)
	movaps	%xmm3, -48(%rbp)
	movaps	%xmm2, -64(%rbp)
	movaps	-16(%rbp), %xmm0
	movups	%xmm0, 48(%rdi)
	movaps	-32(%rbp), %xmm0
	movups	%xmm0, 32(%rdi)
	movaps	-48(%rbp), %xmm0
	movups	%xmm0, 16(%rdi)
	movaps	-64(%rbp), %xmm0
	movups	%xmm0, (%rdi)
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_mat_multiply                   ; -- Begin function mat_multiply
	.p2align	2
_mat_multiply:                          ; @mat_multiply
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #64
	.cfi_def_cfa_offset 64
	ldp	s5, s0, [x1, #56]
	ldp	s7, s1, [x1, #40]
	ldp	s17, s2, [x1, #24]
	ldp	s4, s3, [x1, #8]
	ldp	s25, s6, [x1, #48]
	ldp	s26, s16, [x1, #32]
	ldp	s27, s18, [x1, #16]
	mov	x8, x1
	ld1r.4s	{ v19 }, [x8], #4
	ldr	s20, [x8]
	ld4.4s	{ v21, v22, v23, v24 }, [x2]
	movi.2d	v31, #0000000000000000
	movi.2d	v28, #0000000000000000
	fmla.4s	v28, v21, v19
	fmla.4s	v28, v22, v27[0]
	fmla.4s	v28, v23, v26[0]
	fmla.4s	v28, v24, v25[0]
	movi.2d	v29, #0000000000000000
	fmla.4s	v29, v21, v20[0]
	fmla.4s	v29, v22, v18[0]
	fmla.4s	v29, v23, v16[0]
	fmla.4s	v29, v24, v6[0]
	movi.2d	v30, #0000000000000000
	fmla.4s	v30, v21, v4[0]
	fmla.4s	v30, v22, v17[0]
	fmla.4s	v30, v23, v7[0]
	fmla.4s	v30, v24, v5[0]
	fmla.4s	v31, v21, v3[0]
	fmla.4s	v31, v22, v2[0]
	fmla.4s	v31, v23, v1[0]
	fmla.4s	v31, v24, v0[0]
	mov	x8, sp
	st4.4s	{ v28, v29, v30, v31 }, [x8]
	ldp	q0, q1, [sp]
	stp	q0, q1, [x0]
	ldp	q0, q1, [sp, #32]
	stp	q0, q1, [x0, #32]
	add	sp, sp, #64
	ret
	.cfi_endproc
                                        ; -- End function
.subsections_via_symbols
