Skip to content

Instantly share code, notes, and snippets.

@syoyo
Created October 30, 2008 16:37
Show Gist options
  • Save syoyo/21075 to your computer and use it in GitHub Desktop.
Save syoyo/21075 to your computer and use it in GitHub Desktop.
_isect:
pushq %rbp
movq %rsp, %rbp
andq $-32, %rsp
subq $40, %rsp
movq 96(%rbp), %rax
movq 104(%rbp), %r10
vmovapd (%rcx), %ymm0
movq 40(%rbp), %rcx
vmovapd (%r8), %ymm1
movq 112(%rbp), %r11
vmovapd (%r9), %ymm2
vmovapd (%rcx), %ymm3
movq 48(%rbp), %rcx
vmovapd LC0(%rip), %ymm14
vmovapd (%rcx), %ymm4
movq 56(%rbp), %rcx
vmovapd (%rcx), %ymm5
movq 64(%rbp), %rcx
vmovapd (%rcx), %ymm6
movq 72(%rbp), %rcx
vmulpd %ymm1, %ymm6, %ymm11
vmovapd (%rcx), %ymm7
movq 80(%rbp), %rcx
vmulpd %ymm2, %ymm7, %ymm10
vmovapd (%rcx), %ymm8
movq 16(%rbp), %rcx
vmulpd %ymm1, %ymm8, %ymm9
vsubpd %ymm10, %ymm9, %ymm10
vmulpd %ymm2, %ymm6, %ymm9
vmovapd %ymm10, -24(%rsp)
vmulpd %ymm0, %ymm8, %ymm10
vmulpd -24(%rsp), %ymm3, %ymm12
vsubpd %ymm10, %ymm9, %ymm10
vmulpd %ymm0, %ymm7, %ymm9
vmovapd %ymm10, -56(%rsp)
vsubpd %ymm11, %ymm9, %ymm11
vmovapd (%rdi), %ymm9
vmovapd (%rsi), %ymm10
vmulpd -56(%rsp), %ymm4, %ymm13
vmovapd %ymm11, -88(%rsp)
vmovapd (%rdx), %ymm11
vsubpd (%rcx), %ymm9, %ymm9
movq 24(%rbp), %rcx
movq 32(%rbp), %rdx
vaddpd %ymm13, %ymm12, %ymm12
vmulpd -88(%rsp), %ymm5, %ymm13
vsubpd (%rcx), %ymm10, %ymm10
vsubpd (%rdx), %ymm11, %ymm11
vaddpd %ymm13, %ymm12, %ymm12
vmulpd %ymm10, %ymm5, %ymm15
vmulpd %ymm9, %ymm5, %ymm5
vmovapd %ymm15, -120(%rsp)
vmulpd %ymm11, %ymm4, %ymm15
movq 120(%rbp), %rdx
vmulpd %ymm9, %ymm4, %ymm4
vmulpd -24(%rsp), %ymm9, %ymm9
vmovapd %ymm15, 8(%rsp)
vmovapd -120(%rsp), %ymm15
vsubpd 8(%rsp), %ymm15, %ymm15
vdivpd %ymm12, %ymm14, %ymm13
vmovapd %ymm15, -120(%rsp)
vmulpd %ymm11, %ymm3, %ymm15
vmulpd %ymm10, %ymm3, %ymm3
vmulpd -120(%rsp), %ymm0, %ymm0
vsubpd %ymm5, %ymm15, %ymm5
vmulpd -56(%rsp), %ymm10, %ymm10
vsubpd %ymm3, %ymm4, %ymm3
vmulpd -88(%rsp), %ymm11, %ymm11
vmulpd %ymm5, %ymm1, %ymm1
vmulpd %ymm3, %ymm2, %ymm2
vaddpd %ymm10, %ymm9, %ymm9
vmulpd -120(%rsp), %ymm6, %ymm6
vaddpd %ymm1, %ymm0, %ymm0
vmulpd %ymm5, %ymm7, %ymm5
vaddpd %ymm11, %ymm9, %ymm9
vmulpd %ymm3, %ymm8, %ymm3
vaddpd %ymm2, %ymm0, %ymm2
vmulpd %ymm12, %ymm12, %ymm12
vaddpd %ymm5, %ymm6, %ymm6
vmulpd %ymm13, %ymm9, %ymm9
vmulpd %ymm13, %ymm2, %ymm2
vcmppd $30, LC1(%rip), %ymm12, %ymm12
vaddpd %ymm3, %ymm6, %ymm6
vaddpd %ymm2, %ymm9, %ymm0
vmulpd %ymm13, %ymm6, %ymm13
vcmppd $17, %ymm14, %ymm0, %ymm14
vxorpd %xmm0, %xmm0, %xmm0
vandpd %ymm14, %ymm12, %ymm14
vcmppd $30, %ymm0, %ymm9, %ymm9
vcmppd $30, %ymm0, %ymm2, %ymm2
vcmppd $17, (%rdx), %ymm13, %ymm0
vandpd %ymm2, %ymm9, %ymm9
vandpd %ymm9, %ymm14, %ymm14
vandpd %ymm13, %ymm14, %ymm14
vandpd %ymm0, %ymm14, %ymm14
vmovapd (%rax), %ymm0
vblendvpd %ymm14, %ymm13, %ymm0, %ymm0
vmovapd %ymm0, (%rax)
vmovapd (%r10), %ymm0
vblendvpd %ymm14, %ymm13, %ymm0, %ymm0
vmovapd %ymm0, (%r10)
vmovapd (%r11), %ymm3
vblendvpd %ymm14, %ymm13, %ymm3, %ymm13
vmovapd %ymm13, (%r11)
movq 88(%rbp), %rax
vmovapd %ymm14, (%rax)
leave
ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment