mul_cpp(float4 const*, float4 const&): movss (%rsi), %xmm3 movss 4(%rsi), %xmm6 movss 8(%rsi), %xmm5 movss 12(%rsi), %xmm4 leaq 16(%rdi), %rcx leaq 32(%rdi), %rdx movss 12(%rcx), %xmm1 movss 8(%rcx), %xmm2 movss 4(%rcx), %xmm7 leaq 48(%rdi), %rax mulss %xmm6, %xmm1 mulss %xmm6, %xmm2 mulss %xmm6, %xmm7 movss 12(%rdi), %xmm0 mulss 16(%rdi), %xmm6 mulss %xmm3, %xmm0 addss %xmm1, %xmm0 movss 12(%rdx), %xmm1 mulss %xmm5, %xmm1 addss %xmm1, %xmm0 movss 12(%rax), %xmm1 mulss %xmm4, %xmm1 addss %xmm1, %xmm0 movss 8(%rdi), %xmm1 mulss %xmm3, %xmm1 addss %xmm2, %xmm1 movss 8(%rdx), %xmm2 mulss %xmm5, %xmm2 addss %xmm2, %xmm1 movss 8(%rax), %xmm2 mulss %xmm4, %xmm2 addss %xmm2, %xmm1 movss 4(%rdi), %xmm2 mulss %xmm3, %xmm2 mulss (%rdi), %xmm3 addss %xmm7, %xmm2 addss %xmm6, %xmm3 movss 4(%rdx), %xmm7 mulss %xmm5, %xmm7 mulss 32(%rdi), %xmm5 addss %xmm7, %xmm2 addss %xmm5, %xmm3 movss 4(%rax), %xmm7 movss %xmm0, -12(%rsp) mulss %xmm4, %xmm7 movss %xmm1, -16(%rsp) addss %xmm7, %xmm2 mulss 48(%rdi), %xmm4 movss %xmm2, -20(%rsp) addss %xmm4, %xmm3 movq -16(%rsp), %xmm1 movss %xmm3, -24(%rsp) movq -24(%rsp), %xmm0 ret mul_inst_like(float4 const*, float4 const&): subq $368, %rsp movss (%rsi), %xmm1 movss 4(%rsi), %xmm0 movss 12(%rdi), %xmm2 movss 8(%rdi), %xmm3 mulss %xmm1, %xmm2 mulss %xmm1, %xmm3 movss %xmm2, 212(%rsp) movss %xmm3, 208(%rsp) movss 4(%rdi), %xmm4 mulss %xmm1, %xmm4 mulss (%rdi), %xmm1 movss %xmm4, 204(%rsp) movss %xmm1, 200(%rsp) movq 200(%rsp), %rax movq %rax, 344(%rsp) movq 208(%rsp), %rax movq %rax, 352(%rsp) leaq 16(%rdi), %rax movss 12(%rax), %xmm1 movss 8(%rax), %xmm2 movss 4(%rax), %xmm3 mulss %xmm0, %xmm1 mulss %xmm0, %xmm2 movss %xmm1, 164(%rsp) movss %xmm2, 160(%rsp) mulss %xmm0, %xmm3 movss 352(%rsp), %xmm1 movss %xmm3, 156(%rsp) mulss 16(%rdi), %xmm0 movss 348(%rsp), %xmm2 movss %xmm0, 152(%rsp) movss 344(%rsp), %xmm3 movq 152(%rsp), %rax movss 356(%rsp), %xmm0 movq %rax, 328(%rsp) movq 160(%rsp), %rax mulss 332(%rsp), %xmm2 movq %rax, 336(%rsp) mulss 328(%rsp), %xmm3 mulss 340(%rsp), %xmm0 mulss 336(%rsp), %xmm1 movss %xmm3, 104(%rsp) movss %xmm2, 108(%rsp) movss %xmm1, 112(%rsp) movss %xmm0, 116(%rsp) movss 8(%rsi), %xmm1 movss 12(%rsi), %xmm0 movq 104(%rsp), %rax movq %rax, 312(%rsp) movq 112(%rsp), %rax movq %rax, 320(%rsp) leaq 32(%rdi), %rax movss 12(%rax), %xmm2 movss 8(%rax), %xmm3 movss 4(%rax), %xmm4 mulss %xmm1, %xmm2 mulss %xmm1, %xmm3 movss %xmm2, 68(%rsp) movss %xmm3, 64(%rsp) mulss %xmm1, %xmm4 mulss 32(%rdi), %xmm1 movss %xmm4, 60(%rsp) movss %xmm1, 56(%rsp) movq 56(%rsp), %rax movq %rax, 296(%rsp) movq 64(%rsp), %rax movq %rax, 304(%rsp) leaq 48(%rdi), %rax movss 12(%rax), %xmm1 movss 8(%rax), %xmm2 movss 4(%rax), %xmm3 mulss %xmm0, %xmm1 mulss %xmm0, %xmm2 movss %xmm1, 20(%rsp) movss %xmm2, 16(%rsp) mulss %xmm0, %xmm3 movss 304(%rsp), %xmm1 movss %xmm3, 12(%rsp) mulss 48(%rdi), %xmm0 movss 300(%rsp), %xmm2 movss %xmm0, 8(%rsp) movss 296(%rsp), %xmm3 movq 8(%rsp), %rax movss 308(%rsp), %xmm0 movq %rax, 280(%rsp) movq 16(%rsp), %rax mulss 284(%rsp), %xmm2 movq %rax, 288(%rsp) mulss 280(%rsp), %xmm3 mulss 292(%rsp), %xmm0 mulss 288(%rsp), %xmm1 movss %xmm3, -40(%rsp) movss %xmm2, -36(%rsp) movss %xmm1, -32(%rsp) movss %xmm0, -28(%rsp) movq -40(%rsp), %rax movss 324(%rsp), %xmm0 movq %rax, 264(%rsp) movss 320(%rsp), %xmm1 movq -32(%rsp), %rax movss 316(%rsp), %xmm2 movq %rax, 272(%rsp) mulss 268(%rsp), %xmm2 mulss 276(%rsp), %xmm0 mulss 272(%rsp), %xmm1 movss %xmm0, -76(%rsp) movss 312(%rsp), %xmm3 movss %xmm2, -84(%rsp) mulss 264(%rsp), %xmm3 movss %xmm1, -80(%rsp) movss %xmm3, -88(%rsp) movq -80(%rsp), %xmm1 movq -88(%rsp), %xmm0 addq $368, %rsp ret main: xorl %eax, %eax ret mul_intrinsic(float4 const*, float4 const&): movaps (%rsi), %xmm0 movaps %xmm0, %xmm1 movaps %xmm0, %xmm2 shufps $0, %xmm0, %xmm1 shufps $85, %xmm0, %xmm2 movaps %xmm1, -72(%rsp) mulps 16(%rdi), %xmm2 movaps -72(%rsp), %xmm3 movaps %xmm0, %xmm1 mulps (%rdi), %xmm3 shufps $170, %xmm0, %xmm1 addps %xmm3, %xmm2 mulps 32(%rdi), %xmm1 movaps %xmm2, -72(%rsp) shufps $255, %xmm0, %xmm0 mulps 48(%rdi), %xmm0 addps %xmm0, %xmm1 addps %xmm2, %xmm1 movaps %xmm1, -72(%rsp) movaps %xmm1, -24(%rsp) movq -72(%rsp), %rax movq -16(%rsp), %xmm1 movd %rax, %xmm0 ret