.file "mandelbrot_task.ispc" .text .globl mandelbrot_ispc___unfunfunfunfuniuniuniun_3C_uni_3E_ .align 16, 0x90 .type mandelbrot_ispc___unfunfunfunfuniuniuniun_3C_uni_3E_,@function mandelbrot_ispc___unfunfunfunfuniuniuniun_3C_uni_3E_: # @mandelbrot_ispc___unfunfunfunfuniuniuniun_3C_uni_3E_ # BB#0: # %allocas pushq %rbp pushq %r15 pushq %r14 pushq %rbx subq $88, %rsp vmovups %ymm4, 32(%rsp) # 32-byte Folded Spill movq %rcx, %r14 movl %edx, %r15d movl %esi, %ebx movl %edi, %ebp vmovss %xmm1, 76(%rsp) # 4-byte Spill vmovss %xmm0, 28(%rsp) # 4-byte Spill vcvtsi2ssl %ebp, %xmm0, %xmm5 vsubss %xmm0, %xmm2, %xmm4 vcvtsi2ssl %ebx, %xmm0, %xmm2 vsubss %xmm1, %xmm3, %xmm3 movq $0, 80(%rsp) leaq 80(%rsp), %rdi vdivss %xmm2, %xmm3, %xmm1 vmovss %xmm1, 72(%rsp) # 4-byte Spill vdivss %xmm5, %xmm4, %xmm0 vmovss %xmm0, 68(%rsp) # 4-byte Spill movl $96, %esi movl $32, %edx vzeroupper callq ISPCAlloc vmovups 32(%rsp), %ymm0 # 32-byte Folded Reload movq %rax, %rdx movl %ebx, %r8d sarl $31, %r8d shrl $28, %r8d addl %ebx, %r8d vmovss 28(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, (%rdx) sarl $4, %r8d movl %ebp, %ecx sarl $31, %ecx shrl $28, %ecx addl %ebp, %ecx sarl $4, %ecx vmovmskps %ymm0, %eax cmpl $255, %eax vmovss 68(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, 4(%rdx) vmovss 76(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, 8(%rdx) vmovss 72(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, 12(%rdx) movl %ebp, 16(%rdx) movl %ebx, 20(%rdx) movl $16, 24(%rdx) movl $16, 28(%rdx) movl %r15d, 32(%rdx) movq %r14, 40(%rdx) jne .LBB0_2 # BB#1: # %all_on vpcmpeqd %xmm0, %xmm0, %xmm0 vinsertf128 $1, %xmm0, %ymm0, %ymm0 .LBB0_2: # %all_on vmovaps %ymm0, 64(%rdx) leaq 80(%rsp), %rdi movl $mandelbrot_scanline___unfunfunfunfuniuniuniuniuniun_3C_uni_3E_, %esi movl $1, %r9d vzeroupper callq ISPCLaunch movq 80(%rsp), %rdi testq %rdi, %rdi je .LBB0_4 # BB#3: # %call_sync callq ISPCSync movq $0, 80(%rsp) .LBB0_4: # %post_sync addq $88, %rsp popq %rbx popq %r14 popq %r15 popq %rbp ret .Ltmp0: .size mandelbrot_ispc___unfunfunfunfuniuniuniun_3C_uni_3E_, .Ltmp0-mandelbrot_ispc___unfunfunfunfuniuniuniun_3C_uni_3E_ .globl mandelbrot_ispc .align 16, 0x90 .type mandelbrot_ispc,@function mandelbrot_ispc: # @mandelbrot_ispc # BB#0: # %allocas pushq %rbp pushq %r15 pushq %r14 pushq %r12 pushq %rbx subq $32, %rsp movq %rcx, %r14 movl %edx, %r15d movl %esi, %ebx movl %edi, %ebp vmovss %xmm1, 20(%rsp) # 4-byte Spill vmovss %xmm0, 8(%rsp) # 4-byte Spill vcvtsi2ssl %ebp, %xmm0, %xmm5 vsubss %xmm0, %xmm2, %xmm4 vcvtsi2ssl %ebx, %xmm0, %xmm2 vsubss %xmm1, %xmm3, %xmm3 movq $0, 24(%rsp) leaq 24(%rsp), %r12 vdivss %xmm2, %xmm3, %xmm1 vmovss %xmm1, 16(%rsp) # 4-byte Spill vdivss %xmm5, %xmm4, %xmm0 vmovss %xmm0, 12(%rsp) # 4-byte Spill movq %r12, %rdi movl $96, %esi movl $32, %edx callq ISPCAlloc movl %ebx, %r8d sarl $31, %r8d vpcmpeqd %xmm0, %xmm0, %xmm0 vmovss 8(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, (%rax) shrl $28, %r8d addl %ebx, %r8d movl %ebp, %ecx sarl $31, %ecx shrl $28, %ecx addl %ebp, %ecx sarl $4, %ecx sarl $4, %r8d vinsertf128 $1, %xmm0, %ymm0, %ymm0 vmovss 12(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, 4(%rax) vmovss 20(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, 8(%rax) vmovss 16(%rsp), %xmm1 # 4-byte Reload vmovss %xmm1, 12(%rax) movl %ebp, 16(%rax) movl %ebx, 20(%rax) movl $16, 24(%rax) movl $16, 28(%rax) movl %r15d, 32(%rax) movq %r14, 40(%rax) vmovaps %ymm0, 64(%rax) movq %r12, %rdi movl $mandelbrot_scanline___unfunfunfunfuniuniuniuniuniun_3C_uni_3E_, %esi movq %rax, %rdx movl $1, %r9d vzeroupper callq ISPCLaunch movq 24(%rsp), %rdi testq %rdi, %rdi je .LBB1_2 # BB#1: # %call_sync callq ISPCSync movq $0, 24(%rsp) .LBB1_2: # %post_sync addq $32, %rsp popq %rbx popq %r12 popq %r14 popq %r15 popq %rbp ret .Ltmp1: .size mandelbrot_ispc, .Ltmp1-mandelbrot_ispc .section ".note.GNU-stack","",@progbits