metabrush/brush-strokes/cbits/mul.S
2024-08-29 00:26:19 +02:00

31 lines
1,003 B
ArmAsm

.global in2_mul8
in2_mul8:
vshufpd $3, %xmm1, %xmm1, %xmm4
vshufpd $3, %xmm2, %xmm2, %xmm3
vxorpd %xmm1, %xmm4, %xmm5
vxorpd %xmm2, %xmm3, %xmm6
vtestpd %xmm5, %xmm6
je .LBB1_2
vxorpd %xmm5, %xmm5, %xmm5
vcmplepd %xmm5, %xmm3, %xmm3
vcmplepd %xmm5, %xmm4, %xmm4
vmovsd .LCPI1_1(%rip), %xmm5
vxorpd %xmm5, %xmm1, %xmm1
vshufps $78, %xmm1, %xmm1, %xmm6
vblendvpd %xmm3, %xmm6, %xmm1, %xmm1
vxorpd %xmm5, %xmm2, %xmm2
vshufps $78, %xmm2, %xmm2, %xmm3
vblendvpd %xmm4, %xmm3, %xmm2, %xmm2
vxorpd %xmm5, %xmm2, %xmm2
vmulpd %xmm2, %xmm1, %xmm1
jmp *(%rbp)
.LCPI1_1:
.quad -9223372036854775808
.LBB1_2:
vshufpd $1, %xmm1, %xmm1, %xmm4
vmovddup %xmm2, %xmm2
vmulpd %xmm4, %xmm2, %xmm2
vmulpd %xmm1, %xmm3, %xmm1
vmaxpd %xmm1, %xmm2, %xmm1
jmp *(%rbp)