gitee.com/quant1x/gox@v1.7.6/num/asm/_avx2/arithmetic.s (about)

     1  Add_F64_V(double*, double*, unsigned long):                      # @Add_F64_V(double*, double*, unsigned long)
     2          testq   %rdx, %rdx
     3          je      .LBB0_7
     4          cmpq    $16, %rdx
     5          jae     .LBB0_3
     6          xorl    %eax, %eax
     7          jmp     .LBB0_6
     8  .LBB0_3:
     9          movq    %rdx, %rax
    10          andq    $-16, %rax
    11          xorl    %ecx, %ecx
    12  .LBB0_4:                                # =>This Inner Loop Header: Depth=1
    13          vmovupd (%rdi,%rcx,8), %ymm0
    14          vmovupd 32(%rdi,%rcx,8), %ymm1
    15          vmovupd 64(%rdi,%rcx,8), %ymm2
    16          vmovupd 96(%rdi,%rcx,8), %ymm3
    17          vaddpd  (%rsi,%rcx,8), %ymm0, %ymm0
    18          vaddpd  32(%rsi,%rcx,8), %ymm1, %ymm1
    19          vaddpd  64(%rsi,%rcx,8), %ymm2, %ymm2
    20          vaddpd  96(%rsi,%rcx,8), %ymm3, %ymm3
    21          vmovupd %ymm0, (%rdi,%rcx,8)
    22          vmovupd %ymm1, 32(%rdi,%rcx,8)
    23          vmovupd %ymm2, 64(%rdi,%rcx,8)
    24          vmovupd %ymm3, 96(%rdi,%rcx,8)
    25          addq    $16, %rcx
    26          cmpq    %rcx, %rax
    27          jne     .LBB0_4
    28          cmpq    %rdx, %rax
    29          je      .LBB0_7
    30  .LBB0_6:                                # =>This Inner Loop Header: Depth=1
    31          vmovsd  (%rdi,%rax,8), %xmm0            # xmm0 = mem[0],zero
    32          vaddsd  (%rsi,%rax,8), %xmm0, %xmm0
    33          vmovsd  %xmm0, (%rdi,%rax,8)
    34          addq    $1, %rax
    35          cmpq    %rax, %rdx
    36          jne     .LBB0_6
    37  .LBB0_7:
    38          vzeroupper
    39          retq
    40  Add_F32_V(float*, float*, unsigned long):                      # @Add_F32_V(float*, float*, unsigned long)
    41          testq   %rdx, %rdx
    42          je      .LBB1_7
    43          cmpq    $32, %rdx
    44          jae     .LBB1_3
    45          xorl    %eax, %eax
    46          jmp     .LBB1_6
    47  .LBB1_3:
    48          movq    %rdx, %rax
    49          andq    $-32, %rax
    50          xorl    %ecx, %ecx
    51  .LBB1_4:                                # =>This Inner Loop Header: Depth=1
    52          vmovups (%rdi,%rcx,4), %ymm0
    53          vmovups 32(%rdi,%rcx,4), %ymm1
    54          vmovups 64(%rdi,%rcx,4), %ymm2
    55          vmovups 96(%rdi,%rcx,4), %ymm3
    56          vaddps  (%rsi,%rcx,4), %ymm0, %ymm0
    57          vaddps  32(%rsi,%rcx,4), %ymm1, %ymm1
    58          vaddps  64(%rsi,%rcx,4), %ymm2, %ymm2
    59          vaddps  96(%rsi,%rcx,4), %ymm3, %ymm3
    60          vmovups %ymm0, (%rdi,%rcx,4)
    61          vmovups %ymm1, 32(%rdi,%rcx,4)
    62          vmovups %ymm2, 64(%rdi,%rcx,4)
    63          vmovups %ymm3, 96(%rdi,%rcx,4)
    64          addq    $32, %rcx
    65          cmpq    %rcx, %rax
    66          jne     .LBB1_4
    67          cmpq    %rdx, %rax
    68          je      .LBB1_7
    69  .LBB1_6:                                # =>This Inner Loop Header: Depth=1
    70          vmovss  (%rdi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
    71          vaddss  (%rsi,%rax,4), %xmm0, %xmm0
    72          vmovss  %xmm0, (%rdi,%rax,4)
    73          addq    $1, %rax
    74          cmpq    %rax, %rdx
    75          jne     .LBB1_6
    76  .LBB1_7:
    77          vzeroupper
    78          retq
    79  AddNumber_F64_V(double*, double, unsigned long):                # @AddNumber_F64_V(double*, double, unsigned long)
    80          testq   %rsi, %rsi
    81          je      .LBB2_11
    82          cmpq    $16, %rsi
    83          jae     .LBB2_3
    84          xorl    %eax, %eax
    85          jmp     .LBB2_10
    86  .LBB2_3:
    87          movq    %rsi, %rax
    88          andq    $-16, %rax
    89          vbroadcastsd    %xmm0, %ymm1
    90          leaq    -16(%rax), %rcx
    91          movq    %rcx, %r8
    92          shrq    $4, %r8
    93          addq    $1, %r8
    94          testq   %rcx, %rcx
    95          je      .LBB2_4
    96          movq    %r8, %rdx
    97          andq    $-2, %rdx
    98          xorl    %ecx, %ecx
    99  .LBB2_6:                                # =>This Inner Loop Header: Depth=1
   100          vaddpd  (%rdi,%rcx,8), %ymm1, %ymm2
   101          vaddpd  32(%rdi,%rcx,8), %ymm1, %ymm3
   102          vaddpd  64(%rdi,%rcx,8), %ymm1, %ymm4
   103          vaddpd  96(%rdi,%rcx,8), %ymm1, %ymm5
   104          vmovupd %ymm2, (%rdi,%rcx,8)
   105          vmovupd %ymm3, 32(%rdi,%rcx,8)
   106          vmovupd %ymm4, 64(%rdi,%rcx,8)
   107          vmovupd %ymm5, 96(%rdi,%rcx,8)
   108          vaddpd  128(%rdi,%rcx,8), %ymm1, %ymm2
   109          vaddpd  160(%rdi,%rcx,8), %ymm1, %ymm3
   110          vaddpd  192(%rdi,%rcx,8), %ymm1, %ymm4
   111          vaddpd  224(%rdi,%rcx,8), %ymm1, %ymm5
   112          vmovupd %ymm2, 128(%rdi,%rcx,8)
   113          vmovupd %ymm3, 160(%rdi,%rcx,8)
   114          vmovupd %ymm4, 192(%rdi,%rcx,8)
   115          vmovupd %ymm5, 224(%rdi,%rcx,8)
   116          addq    $32, %rcx
   117          addq    $-2, %rdx
   118          jne     .LBB2_6
   119          testb   $1, %r8b
   120          je      .LBB2_9
   121  .LBB2_8:
   122          vaddpd  (%rdi,%rcx,8), %ymm1, %ymm2
   123          vaddpd  32(%rdi,%rcx,8), %ymm1, %ymm3
   124          vaddpd  64(%rdi,%rcx,8), %ymm1, %ymm4
   125          vaddpd  96(%rdi,%rcx,8), %ymm1, %ymm1
   126          vmovupd %ymm2, (%rdi,%rcx,8)
   127          vmovupd %ymm3, 32(%rdi,%rcx,8)
   128          vmovupd %ymm4, 64(%rdi,%rcx,8)
   129          vmovupd %ymm1, 96(%rdi,%rcx,8)
   130  .LBB2_9:
   131          cmpq    %rsi, %rax
   132          je      .LBB2_11
   133  .LBB2_10:                               # =>This Inner Loop Header: Depth=1
   134          vaddsd  (%rdi,%rax,8), %xmm0, %xmm1
   135          vmovsd  %xmm1, (%rdi,%rax,8)
   136          addq    $1, %rax
   137          cmpq    %rax, %rsi
   138          jne     .LBB2_10
   139  .LBB2_11:
   140          vzeroupper
   141          retq
   142  .LBB2_4:
   143          xorl    %ecx, %ecx
   144          testb   $1, %r8b
   145          jne     .LBB2_8
   146          jmp     .LBB2_9
   147  AddNumber_F32_V(float*, float, unsigned long):                # @AddNumber_F32_V(float*, float, unsigned long)
   148          testq   %rsi, %rsi
   149          je      .LBB3_11
   150          cmpq    $32, %rsi
   151          jae     .LBB3_3
   152          xorl    %eax, %eax
   153          jmp     .LBB3_10
   154  .LBB3_3:
   155          movq    %rsi, %rax
   156          andq    $-32, %rax
   157          vbroadcastss    %xmm0, %ymm1
   158          leaq    -32(%rax), %rcx
   159          movq    %rcx, %r8
   160          shrq    $5, %r8
   161          addq    $1, %r8
   162          testq   %rcx, %rcx
   163          je      .LBB3_4
   164          movq    %r8, %rdx
   165          andq    $-2, %rdx
   166          xorl    %ecx, %ecx
   167  .LBB3_6:                                # =>This Inner Loop Header: Depth=1
   168          vaddps  (%rdi,%rcx,4), %ymm1, %ymm2
   169          vaddps  32(%rdi,%rcx,4), %ymm1, %ymm3
   170          vaddps  64(%rdi,%rcx,4), %ymm1, %ymm4
   171          vaddps  96(%rdi,%rcx,4), %ymm1, %ymm5
   172          vmovups %ymm2, (%rdi,%rcx,4)
   173          vmovups %ymm3, 32(%rdi,%rcx,4)
   174          vmovups %ymm4, 64(%rdi,%rcx,4)
   175          vmovups %ymm5, 96(%rdi,%rcx,4)
   176          vaddps  128(%rdi,%rcx,4), %ymm1, %ymm2
   177          vaddps  160(%rdi,%rcx,4), %ymm1, %ymm3
   178          vaddps  192(%rdi,%rcx,4), %ymm1, %ymm4
   179          vaddps  224(%rdi,%rcx,4), %ymm1, %ymm5
   180          vmovups %ymm2, 128(%rdi,%rcx,4)
   181          vmovups %ymm3, 160(%rdi,%rcx,4)
   182          vmovups %ymm4, 192(%rdi,%rcx,4)
   183          vmovups %ymm5, 224(%rdi,%rcx,4)
   184          addq    $64, %rcx
   185          addq    $-2, %rdx
   186          jne     .LBB3_6
   187          testb   $1, %r8b
   188          je      .LBB3_9
   189  .LBB3_8:
   190          vaddps  (%rdi,%rcx,4), %ymm1, %ymm2
   191          vaddps  32(%rdi,%rcx,4), %ymm1, %ymm3
   192          vaddps  64(%rdi,%rcx,4), %ymm1, %ymm4
   193          vaddps  96(%rdi,%rcx,4), %ymm1, %ymm1
   194          vmovups %ymm2, (%rdi,%rcx,4)
   195          vmovups %ymm3, 32(%rdi,%rcx,4)
   196          vmovups %ymm4, 64(%rdi,%rcx,4)
   197          vmovups %ymm1, 96(%rdi,%rcx,4)
   198  .LBB3_9:
   199          cmpq    %rsi, %rax
   200          je      .LBB3_11
   201  .LBB3_10:                               # =>This Inner Loop Header: Depth=1
   202          vaddss  (%rdi,%rax,4), %xmm0, %xmm1
   203          vmovss  %xmm1, (%rdi,%rax,4)
   204          addq    $1, %rax
   205          cmpq    %rax, %rsi
   206          jne     .LBB3_10
   207  .LBB3_11:
   208          vzeroupper
   209          retq
   210  .LBB3_4:
   211          xorl    %ecx, %ecx
   212          testb   $1, %r8b
   213          jne     .LBB3_8
   214          jmp     .LBB3_9
   215  Sub_F64_V(double*, double*, unsigned long):                      # @Sub_F64_V(double*, double*, unsigned long)
   216          testq   %rdx, %rdx
   217          je      .LBB4_7
   218          cmpq    $16, %rdx
   219          jae     .LBB4_3
   220          xorl    %eax, %eax
   221          jmp     .LBB4_6
   222  .LBB4_3:
   223          movq    %rdx, %rax
   224          andq    $-16, %rax
   225          xorl    %ecx, %ecx
   226  .LBB4_4:                                # =>This Inner Loop Header: Depth=1
   227          vmovupd (%rdi,%rcx,8), %ymm0
   228          vmovupd 32(%rdi,%rcx,8), %ymm1
   229          vmovupd 64(%rdi,%rcx,8), %ymm2
   230          vmovupd 96(%rdi,%rcx,8), %ymm3
   231          vsubpd  (%rsi,%rcx,8), %ymm0, %ymm0
   232          vsubpd  32(%rsi,%rcx,8), %ymm1, %ymm1
   233          vsubpd  64(%rsi,%rcx,8), %ymm2, %ymm2
   234          vsubpd  96(%rsi,%rcx,8), %ymm3, %ymm3
   235          vmovupd %ymm0, (%rdi,%rcx,8)
   236          vmovupd %ymm1, 32(%rdi,%rcx,8)
   237          vmovupd %ymm2, 64(%rdi,%rcx,8)
   238          vmovupd %ymm3, 96(%rdi,%rcx,8)
   239          addq    $16, %rcx
   240          cmpq    %rcx, %rax
   241          jne     .LBB4_4
   242          cmpq    %rdx, %rax
   243          je      .LBB4_7
   244  .LBB4_6:                                # =>This Inner Loop Header: Depth=1
   245          vmovsd  (%rdi,%rax,8), %xmm0            # xmm0 = mem[0],zero
   246          vsubsd  (%rsi,%rax,8), %xmm0, %xmm0
   247          vmovsd  %xmm0, (%rdi,%rax,8)
   248          addq    $1, %rax
   249          cmpq    %rax, %rdx
   250          jne     .LBB4_6
   251  .LBB4_7:
   252          vzeroupper
   253          retq
   254  Sub_F32_V(float*, float*, unsigned long):                      # @Sub_F32_V(float*, float*, unsigned long)
   255          testq   %rdx, %rdx
   256          je      .LBB5_7
   257          cmpq    $32, %rdx
   258          jae     .LBB5_3
   259          xorl    %eax, %eax
   260          jmp     .LBB5_6
   261  .LBB5_3:
   262          movq    %rdx, %rax
   263          andq    $-32, %rax
   264          xorl    %ecx, %ecx
   265  .LBB5_4:                                # =>This Inner Loop Header: Depth=1
   266          vmovups (%rdi,%rcx,4), %ymm0
   267          vmovups 32(%rdi,%rcx,4), %ymm1
   268          vmovups 64(%rdi,%rcx,4), %ymm2
   269          vmovups 96(%rdi,%rcx,4), %ymm3
   270          vsubps  (%rsi,%rcx,4), %ymm0, %ymm0
   271          vsubps  32(%rsi,%rcx,4), %ymm1, %ymm1
   272          vsubps  64(%rsi,%rcx,4), %ymm2, %ymm2
   273          vsubps  96(%rsi,%rcx,4), %ymm3, %ymm3
   274          vmovups %ymm0, (%rdi,%rcx,4)
   275          vmovups %ymm1, 32(%rdi,%rcx,4)
   276          vmovups %ymm2, 64(%rdi,%rcx,4)
   277          vmovups %ymm3, 96(%rdi,%rcx,4)
   278          addq    $32, %rcx
   279          cmpq    %rcx, %rax
   280          jne     .LBB5_4
   281          cmpq    %rdx, %rax
   282          je      .LBB5_7
   283  .LBB5_6:                                # =>This Inner Loop Header: Depth=1
   284          vmovss  (%rdi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   285          vsubss  (%rsi,%rax,4), %xmm0, %xmm0
   286          vmovss  %xmm0, (%rdi,%rax,4)
   287          addq    $1, %rax
   288          cmpq    %rax, %rdx
   289          jne     .LBB5_6
   290  .LBB5_7:
   291          vzeroupper
   292          retq
   293  SubNumber_F64_V(double*, double, unsigned long):                # @SubNumber_F64_V(double*, double, unsigned long)
   294          testq   %rsi, %rsi
   295          je      .LBB6_11
   296          cmpq    $16, %rsi
   297          jae     .LBB6_3
   298          xorl    %eax, %eax
   299          jmp     .LBB6_10
   300  .LBB6_3:
   301          movq    %rsi, %rax
   302          andq    $-16, %rax
   303          vbroadcastsd    %xmm0, %ymm1
   304          leaq    -16(%rax), %rcx
   305          movq    %rcx, %r8
   306          shrq    $4, %r8
   307          addq    $1, %r8
   308          testq   %rcx, %rcx
   309          je      .LBB6_4
   310          movq    %r8, %rdx
   311          andq    $-2, %rdx
   312          xorl    %ecx, %ecx
   313  .LBB6_6:                                # =>This Inner Loop Header: Depth=1
   314          vmovupd (%rdi,%rcx,8), %ymm2
   315          vmovupd 32(%rdi,%rcx,8), %ymm3
   316          vmovupd 64(%rdi,%rcx,8), %ymm4
   317          vmovupd 96(%rdi,%rcx,8), %ymm5
   318          vsubpd  %ymm1, %ymm2, %ymm2
   319          vsubpd  %ymm1, %ymm3, %ymm3
   320          vsubpd  %ymm1, %ymm4, %ymm4
   321          vsubpd  %ymm1, %ymm5, %ymm5
   322          vmovupd %ymm2, (%rdi,%rcx,8)
   323          vmovupd %ymm3, 32(%rdi,%rcx,8)
   324          vmovupd %ymm4, 64(%rdi,%rcx,8)
   325          vmovupd %ymm5, 96(%rdi,%rcx,8)
   326          vmovupd 128(%rdi,%rcx,8), %ymm2
   327          vmovupd 160(%rdi,%rcx,8), %ymm3
   328          vmovupd 192(%rdi,%rcx,8), %ymm4
   329          vmovupd 224(%rdi,%rcx,8), %ymm5
   330          vsubpd  %ymm1, %ymm2, %ymm2
   331          vsubpd  %ymm1, %ymm3, %ymm3
   332          vsubpd  %ymm1, %ymm4, %ymm4
   333          vsubpd  %ymm1, %ymm5, %ymm5
   334          vmovupd %ymm2, 128(%rdi,%rcx,8)
   335          vmovupd %ymm3, 160(%rdi,%rcx,8)
   336          vmovupd %ymm4, 192(%rdi,%rcx,8)
   337          vmovupd %ymm5, 224(%rdi,%rcx,8)
   338          addq    $32, %rcx
   339          addq    $-2, %rdx
   340          jne     .LBB6_6
   341          testb   $1, %r8b
   342          je      .LBB6_9
   343  .LBB6_8:
   344          vmovupd (%rdi,%rcx,8), %ymm2
   345          vmovupd 32(%rdi,%rcx,8), %ymm3
   346          vmovupd 64(%rdi,%rcx,8), %ymm4
   347          vmovupd 96(%rdi,%rcx,8), %ymm5
   348          vsubpd  %ymm1, %ymm2, %ymm2
   349          vsubpd  %ymm1, %ymm3, %ymm3
   350          vsubpd  %ymm1, %ymm4, %ymm4
   351          vsubpd  %ymm1, %ymm5, %ymm1
   352          vmovupd %ymm2, (%rdi,%rcx,8)
   353          vmovupd %ymm3, 32(%rdi,%rcx,8)
   354          vmovupd %ymm4, 64(%rdi,%rcx,8)
   355          vmovupd %ymm1, 96(%rdi,%rcx,8)
   356  .LBB6_9:
   357          cmpq    %rsi, %rax
   358          je      .LBB6_11
   359  .LBB6_10:                               # =>This Inner Loop Header: Depth=1
   360          vmovsd  (%rdi,%rax,8), %xmm1            # xmm1 = mem[0],zero
   361          vsubsd  %xmm0, %xmm1, %xmm1
   362          vmovsd  %xmm1, (%rdi,%rax,8)
   363          addq    $1, %rax
   364          cmpq    %rax, %rsi
   365          jne     .LBB6_10
   366  .LBB6_11:
   367          vzeroupper
   368          retq
   369  .LBB6_4:
   370          xorl    %ecx, %ecx
   371          testb   $1, %r8b
   372          jne     .LBB6_8
   373          jmp     .LBB6_9
   374  SubNumber_F32_V(float*, float, unsigned long):                # @SubNumber_F32_V(float*, float, unsigned long)
   375          testq   %rsi, %rsi
   376          je      .LBB7_11
   377          cmpq    $32, %rsi
   378          jae     .LBB7_3
   379          xorl    %eax, %eax
   380          jmp     .LBB7_10
   381  .LBB7_3:
   382          movq    %rsi, %rax
   383          andq    $-32, %rax
   384          vbroadcastss    %xmm0, %ymm1
   385          leaq    -32(%rax), %rcx
   386          movq    %rcx, %r8
   387          shrq    $5, %r8
   388          addq    $1, %r8
   389          testq   %rcx, %rcx
   390          je      .LBB7_4
   391          movq    %r8, %rdx
   392          andq    $-2, %rdx
   393          xorl    %ecx, %ecx
   394  .LBB7_6:                                # =>This Inner Loop Header: Depth=1
   395          vmovups (%rdi,%rcx,4), %ymm2
   396          vmovups 32(%rdi,%rcx,4), %ymm3
   397          vmovups 64(%rdi,%rcx,4), %ymm4
   398          vmovups 96(%rdi,%rcx,4), %ymm5
   399          vsubps  %ymm1, %ymm2, %ymm2
   400          vsubps  %ymm1, %ymm3, %ymm3
   401          vsubps  %ymm1, %ymm4, %ymm4
   402          vsubps  %ymm1, %ymm5, %ymm5
   403          vmovups %ymm2, (%rdi,%rcx,4)
   404          vmovups %ymm3, 32(%rdi,%rcx,4)
   405          vmovups %ymm4, 64(%rdi,%rcx,4)
   406          vmovups %ymm5, 96(%rdi,%rcx,4)
   407          vmovups 128(%rdi,%rcx,4), %ymm2
   408          vmovups 160(%rdi,%rcx,4), %ymm3
   409          vmovups 192(%rdi,%rcx,4), %ymm4
   410          vmovups 224(%rdi,%rcx,4), %ymm5
   411          vsubps  %ymm1, %ymm2, %ymm2
   412          vsubps  %ymm1, %ymm3, %ymm3
   413          vsubps  %ymm1, %ymm4, %ymm4
   414          vsubps  %ymm1, %ymm5, %ymm5
   415          vmovups %ymm2, 128(%rdi,%rcx,4)
   416          vmovups %ymm3, 160(%rdi,%rcx,4)
   417          vmovups %ymm4, 192(%rdi,%rcx,4)
   418          vmovups %ymm5, 224(%rdi,%rcx,4)
   419          addq    $64, %rcx
   420          addq    $-2, %rdx
   421          jne     .LBB7_6
   422          testb   $1, %r8b
   423          je      .LBB7_9
   424  .LBB7_8:
   425          vmovups (%rdi,%rcx,4), %ymm2
   426          vmovups 32(%rdi,%rcx,4), %ymm3
   427          vmovups 64(%rdi,%rcx,4), %ymm4
   428          vmovups 96(%rdi,%rcx,4), %ymm5
   429          vsubps  %ymm1, %ymm2, %ymm2
   430          vsubps  %ymm1, %ymm3, %ymm3
   431          vsubps  %ymm1, %ymm4, %ymm4
   432          vsubps  %ymm1, %ymm5, %ymm1
   433          vmovups %ymm2, (%rdi,%rcx,4)
   434          vmovups %ymm3, 32(%rdi,%rcx,4)
   435          vmovups %ymm4, 64(%rdi,%rcx,4)
   436          vmovups %ymm1, 96(%rdi,%rcx,4)
   437  .LBB7_9:
   438          cmpq    %rsi, %rax
   439          je      .LBB7_11
   440  .LBB7_10:                               # =>This Inner Loop Header: Depth=1
   441          vmovss  (%rdi,%rax,4), %xmm1            # xmm1 = mem[0],zero,zero,zero
   442          vsubss  %xmm0, %xmm1, %xmm1
   443          vmovss  %xmm1, (%rdi,%rax,4)
   444          addq    $1, %rax
   445          cmpq    %rax, %rsi
   446          jne     .LBB7_10
   447  .LBB7_11:
   448          vzeroupper
   449          retq
   450  .LBB7_4:
   451          xorl    %ecx, %ecx
   452          testb   $1, %r8b
   453          jne     .LBB7_8
   454          jmp     .LBB7_9
   455  Mul_F64_V(double*, double*, unsigned long):                      # @Mul_F64_V(double*, double*, unsigned long)
   456          testq   %rdx, %rdx
   457          je      .LBB8_7
   458          cmpq    $16, %rdx
   459          jae     .LBB8_3
   460          xorl    %eax, %eax
   461          jmp     .LBB8_6
   462  .LBB8_3:
   463          movq    %rdx, %rax
   464          andq    $-16, %rax
   465          xorl    %ecx, %ecx
   466  .LBB8_4:                                # =>This Inner Loop Header: Depth=1
   467          vmovupd (%rdi,%rcx,8), %ymm0
   468          vmovupd 32(%rdi,%rcx,8), %ymm1
   469          vmovupd 64(%rdi,%rcx,8), %ymm2
   470          vmovupd 96(%rdi,%rcx,8), %ymm3
   471          vmulpd  (%rsi,%rcx,8), %ymm0, %ymm0
   472          vmulpd  32(%rsi,%rcx,8), %ymm1, %ymm1
   473          vmulpd  64(%rsi,%rcx,8), %ymm2, %ymm2
   474          vmulpd  96(%rsi,%rcx,8), %ymm3, %ymm3
   475          vmovupd %ymm0, (%rdi,%rcx,8)
   476          vmovupd %ymm1, 32(%rdi,%rcx,8)
   477          vmovupd %ymm2, 64(%rdi,%rcx,8)
   478          vmovupd %ymm3, 96(%rdi,%rcx,8)
   479          addq    $16, %rcx
   480          cmpq    %rcx, %rax
   481          jne     .LBB8_4
   482          cmpq    %rdx, %rax
   483          je      .LBB8_7
   484  .LBB8_6:                                # =>This Inner Loop Header: Depth=1
   485          vmovsd  (%rdi,%rax,8), %xmm0            # xmm0 = mem[0],zero
   486          vmulsd  (%rsi,%rax,8), %xmm0, %xmm0
   487          vmovsd  %xmm0, (%rdi,%rax,8)
   488          addq    $1, %rax
   489          cmpq    %rax, %rdx
   490          jne     .LBB8_6
   491  .LBB8_7:
   492          vzeroupper
   493          retq
   494  Mul_F32_V(float*, float*, unsigned long):                      # @Mul_F32_V(float*, float*, unsigned long)
   495          testq   %rdx, %rdx
   496          je      .LBB9_7
   497          cmpq    $32, %rdx
   498          jae     .LBB9_3
   499          xorl    %eax, %eax
   500          jmp     .LBB9_6
   501  .LBB9_3:
   502          movq    %rdx, %rax
   503          andq    $-32, %rax
   504          xorl    %ecx, %ecx
   505  .LBB9_4:                                # =>This Inner Loop Header: Depth=1
   506          vmovups (%rdi,%rcx,4), %ymm0
   507          vmovups 32(%rdi,%rcx,4), %ymm1
   508          vmovups 64(%rdi,%rcx,4), %ymm2
   509          vmovups 96(%rdi,%rcx,4), %ymm3
   510          vmulps  (%rsi,%rcx,4), %ymm0, %ymm0
   511          vmulps  32(%rsi,%rcx,4), %ymm1, %ymm1
   512          vmulps  64(%rsi,%rcx,4), %ymm2, %ymm2
   513          vmulps  96(%rsi,%rcx,4), %ymm3, %ymm3
   514          vmovups %ymm0, (%rdi,%rcx,4)
   515          vmovups %ymm1, 32(%rdi,%rcx,4)
   516          vmovups %ymm2, 64(%rdi,%rcx,4)
   517          vmovups %ymm3, 96(%rdi,%rcx,4)
   518          addq    $32, %rcx
   519          cmpq    %rcx, %rax
   520          jne     .LBB9_4
   521          cmpq    %rdx, %rax
   522          je      .LBB9_7
   523  .LBB9_6:                                # =>This Inner Loop Header: Depth=1
   524          vmovss  (%rdi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   525          vmulss  (%rsi,%rax,4), %xmm0, %xmm0
   526          vmovss  %xmm0, (%rdi,%rax,4)
   527          addq    $1, %rax
   528          cmpq    %rax, %rdx
   529          jne     .LBB9_6
   530  .LBB9_7:
   531          vzeroupper
   532          retq
   533  MulNumber_F64_V(double*, double, unsigned long):                # @MulNumber_F64_V(double*, double, unsigned long)
   534          testq   %rsi, %rsi
   535          je      .LBB10_11
   536          cmpq    $16, %rsi
   537          jae     .LBB10_3
   538          xorl    %eax, %eax
   539          jmp     .LBB10_10
   540  .LBB10_3:
   541          movq    %rsi, %rax
   542          andq    $-16, %rax
   543          vbroadcastsd    %xmm0, %ymm1
   544          leaq    -16(%rax), %rcx
   545          movq    %rcx, %r8
   546          shrq    $4, %r8
   547          addq    $1, %r8
   548          testq   %rcx, %rcx
   549          je      .LBB10_4
   550          movq    %r8, %rdx
   551          andq    $-2, %rdx
   552          xorl    %ecx, %ecx
   553  .LBB10_6:                               # =>This Inner Loop Header: Depth=1
   554          vmulpd  (%rdi,%rcx,8), %ymm1, %ymm2
   555          vmulpd  32(%rdi,%rcx,8), %ymm1, %ymm3
   556          vmulpd  64(%rdi,%rcx,8), %ymm1, %ymm4
   557          vmulpd  96(%rdi,%rcx,8), %ymm1, %ymm5
   558          vmovupd %ymm2, (%rdi,%rcx,8)
   559          vmovupd %ymm3, 32(%rdi,%rcx,8)
   560          vmovupd %ymm4, 64(%rdi,%rcx,8)
   561          vmovupd %ymm5, 96(%rdi,%rcx,8)
   562          vmulpd  128(%rdi,%rcx,8), %ymm1, %ymm2
   563          vmulpd  160(%rdi,%rcx,8), %ymm1, %ymm3
   564          vmulpd  192(%rdi,%rcx,8), %ymm1, %ymm4
   565          vmulpd  224(%rdi,%rcx,8), %ymm1, %ymm5
   566          vmovupd %ymm2, 128(%rdi,%rcx,8)
   567          vmovupd %ymm3, 160(%rdi,%rcx,8)
   568          vmovupd %ymm4, 192(%rdi,%rcx,8)
   569          vmovupd %ymm5, 224(%rdi,%rcx,8)
   570          addq    $32, %rcx
   571          addq    $-2, %rdx
   572          jne     .LBB10_6
   573          testb   $1, %r8b
   574          je      .LBB10_9
   575  .LBB10_8:
   576          vmulpd  (%rdi,%rcx,8), %ymm1, %ymm2
   577          vmulpd  32(%rdi,%rcx,8), %ymm1, %ymm3
   578          vmulpd  64(%rdi,%rcx,8), %ymm1, %ymm4
   579          vmulpd  96(%rdi,%rcx,8), %ymm1, %ymm1
   580          vmovupd %ymm2, (%rdi,%rcx,8)
   581          vmovupd %ymm3, 32(%rdi,%rcx,8)
   582          vmovupd %ymm4, 64(%rdi,%rcx,8)
   583          vmovupd %ymm1, 96(%rdi,%rcx,8)
   584  .LBB10_9:
   585          cmpq    %rsi, %rax
   586          je      .LBB10_11
   587  .LBB10_10:                              # =>This Inner Loop Header: Depth=1
   588          vmulsd  (%rdi,%rax,8), %xmm0, %xmm1
   589          vmovsd  %xmm1, (%rdi,%rax,8)
   590          addq    $1, %rax
   591          cmpq    %rax, %rsi
   592          jne     .LBB10_10
   593  .LBB10_11:
   594          vzeroupper
   595          retq
   596  .LBB10_4:
   597          xorl    %ecx, %ecx
   598          testb   $1, %r8b
   599          jne     .LBB10_8
   600          jmp     .LBB10_9
   601  MulNumber_F32_V(float*, float, unsigned long):                # @MulNumber_F32_V(float*, float, unsigned long)
   602          testq   %rsi, %rsi
   603          je      .LBB11_11
   604          cmpq    $32, %rsi
   605          jae     .LBB11_3
   606          xorl    %eax, %eax
   607          jmp     .LBB11_10
   608  .LBB11_3:
   609          movq    %rsi, %rax
   610          andq    $-32, %rax
   611          vbroadcastss    %xmm0, %ymm1
   612          leaq    -32(%rax), %rcx
   613          movq    %rcx, %r8
   614          shrq    $5, %r8
   615          addq    $1, %r8
   616          testq   %rcx, %rcx
   617          je      .LBB11_4
   618          movq    %r8, %rdx
   619          andq    $-2, %rdx
   620          xorl    %ecx, %ecx
   621  .LBB11_6:                               # =>This Inner Loop Header: Depth=1
   622          vmulps  (%rdi,%rcx,4), %ymm1, %ymm2
   623          vmulps  32(%rdi,%rcx,4), %ymm1, %ymm3
   624          vmulps  64(%rdi,%rcx,4), %ymm1, %ymm4
   625          vmulps  96(%rdi,%rcx,4), %ymm1, %ymm5
   626          vmovups %ymm2, (%rdi,%rcx,4)
   627          vmovups %ymm3, 32(%rdi,%rcx,4)
   628          vmovups %ymm4, 64(%rdi,%rcx,4)
   629          vmovups %ymm5, 96(%rdi,%rcx,4)
   630          vmulps  128(%rdi,%rcx,4), %ymm1, %ymm2
   631          vmulps  160(%rdi,%rcx,4), %ymm1, %ymm3
   632          vmulps  192(%rdi,%rcx,4), %ymm1, %ymm4
   633          vmulps  224(%rdi,%rcx,4), %ymm1, %ymm5
   634          vmovups %ymm2, 128(%rdi,%rcx,4)
   635          vmovups %ymm3, 160(%rdi,%rcx,4)
   636          vmovups %ymm4, 192(%rdi,%rcx,4)
   637          vmovups %ymm5, 224(%rdi,%rcx,4)
   638          addq    $64, %rcx
   639          addq    $-2, %rdx
   640          jne     .LBB11_6
   641          testb   $1, %r8b
   642          je      .LBB11_9
   643  .LBB11_8:
   644          vmulps  (%rdi,%rcx,4), %ymm1, %ymm2
   645          vmulps  32(%rdi,%rcx,4), %ymm1, %ymm3
   646          vmulps  64(%rdi,%rcx,4), %ymm1, %ymm4
   647          vmulps  96(%rdi,%rcx,4), %ymm1, %ymm1
   648          vmovups %ymm2, (%rdi,%rcx,4)
   649          vmovups %ymm3, 32(%rdi,%rcx,4)
   650          vmovups %ymm4, 64(%rdi,%rcx,4)
   651          vmovups %ymm1, 96(%rdi,%rcx,4)
   652  .LBB11_9:
   653          cmpq    %rsi, %rax
   654          je      .LBB11_11
   655  .LBB11_10:                              # =>This Inner Loop Header: Depth=1
   656          vmulss  (%rdi,%rax,4), %xmm0, %xmm1
   657          vmovss  %xmm1, (%rdi,%rax,4)
   658          addq    $1, %rax
   659          cmpq    %rax, %rsi
   660          jne     .LBB11_10
   661  .LBB11_11:
   662          vzeroupper
   663          retq
   664  .LBB11_4:
   665          xorl    %ecx, %ecx
   666          testb   $1, %r8b
   667          jne     .LBB11_8
   668          jmp     .LBB11_9
   669  Div_F64_V(double*, double*, unsigned long):                      # @Div_F64_V(double*, double*, unsigned long)
   670          testq   %rdx, %rdx
   671          je      .LBB12_11
   672          cmpq    $4, %rdx
   673          jae     .LBB12_3
   674          xorl    %eax, %eax
   675          jmp     .LBB12_10
   676  .LBB12_3:
   677          movq    %rdx, %rax
   678          andq    $-4, %rax
   679          leaq    -4(%rax), %rcx
   680          movq    %rcx, %r8
   681          shrq    $2, %r8
   682          addq    $1, %r8
   683          testq   %rcx, %rcx
   684          je      .LBB12_4
   685          movq    %r8, %r9
   686          andq    $-2, %r9
   687          xorl    %ecx, %ecx
   688  .LBB12_6:                               # =>This Inner Loop Header: Depth=1
   689          vmovupd (%rdi,%rcx,8), %ymm0
   690          vdivpd  (%rsi,%rcx,8), %ymm0, %ymm0
   691          vmovupd 32(%rdi,%rcx,8), %ymm1
   692          vmovupd %ymm0, (%rdi,%rcx,8)
   693          vdivpd  32(%rsi,%rcx,8), %ymm1, %ymm0
   694          vmovupd %ymm0, 32(%rdi,%rcx,8)
   695          addq    $8, %rcx
   696          addq    $-2, %r9
   697          jne     .LBB12_6
   698          testb   $1, %r8b
   699          je      .LBB12_9
   700  .LBB12_8:
   701          vmovupd (%rdi,%rcx,8), %ymm0
   702          vdivpd  (%rsi,%rcx,8), %ymm0, %ymm0
   703          vmovupd %ymm0, (%rdi,%rcx,8)
   704  .LBB12_9:
   705          cmpq    %rdx, %rax
   706          je      .LBB12_11
   707  .LBB12_10:                              # =>This Inner Loop Header: Depth=1
   708          vmovsd  (%rdi,%rax,8), %xmm0            # xmm0 = mem[0],zero
   709          vdivsd  (%rsi,%rax,8), %xmm0, %xmm0
   710          vmovsd  %xmm0, (%rdi,%rax,8)
   711          addq    $1, %rax
   712          cmpq    %rax, %rdx
   713          jne     .LBB12_10
   714  .LBB12_11:
   715          vzeroupper
   716          retq
   717  .LBB12_4:
   718          xorl    %ecx, %ecx
   719          testb   $1, %r8b
   720          jne     .LBB12_8
   721          jmp     .LBB12_9
   722  Div_F32_V(float*, float*, unsigned long):                      # @Div_F32_V(float*, float*, unsigned long)
   723          testq   %rdx, %rdx
   724          je      .LBB13_7
   725          cmpq    $32, %rdx
   726          jae     .LBB13_3
   727          xorl    %eax, %eax
   728          jmp     .LBB13_6
   729  .LBB13_3:
   730          movq    %rdx, %rax
   731          andq    $-32, %rax
   732          xorl    %ecx, %ecx
   733  .LBB13_4:                               # =>This Inner Loop Header: Depth=1
   734          vmovups (%rsi,%rcx,4), %ymm0
   735          vmovups 32(%rsi,%rcx,4), %ymm1
   736          vmovups 64(%rsi,%rcx,4), %ymm2
   737          vrcpps  %ymm0, %ymm3
   738          vmovups 96(%rsi,%rcx,4), %ymm4
   739          vmovups (%rdi,%rcx,4), %ymm5
   740          vmovups 32(%rdi,%rcx,4), %ymm6
   741          vmovups 64(%rdi,%rcx,4), %ymm7
   742          vmovups 96(%rdi,%rcx,4), %ymm8
   743          vmulps  %ymm3, %ymm5, %ymm9
   744          vfmsub213ps     %ymm5, %ymm9, %ymm0     # ymm0 = (ymm9 * ymm0) - ymm5
   745          vfnmadd213ps    %ymm9, %ymm3, %ymm0     # ymm0 = -(ymm3 * ymm0) + ymm9
   746          vrcpps  %ymm1, %ymm3
   747          vmulps  %ymm3, %ymm6, %ymm5
   748          vfmsub213ps     %ymm6, %ymm5, %ymm1     # ymm1 = (ymm5 * ymm1) - ymm6
   749          vrcpps  %ymm2, %ymm6
   750          vfnmadd213ps    %ymm5, %ymm3, %ymm1     # ymm1 = -(ymm3 * ymm1) + ymm5
   751          vmulps  %ymm6, %ymm7, %ymm3
   752          vfmsub213ps     %ymm7, %ymm3, %ymm2     # ymm2 = (ymm3 * ymm2) - ymm7
   753          vfnmadd213ps    %ymm3, %ymm6, %ymm2     # ymm2 = -(ymm6 * ymm2) + ymm3
   754          vrcpps  %ymm4, %ymm3
   755          vmulps  %ymm3, %ymm8, %ymm5
   756          vfmsub213ps     %ymm8, %ymm5, %ymm4     # ymm4 = (ymm5 * ymm4) - ymm8
   757          vfnmadd213ps    %ymm5, %ymm3, %ymm4     # ymm4 = -(ymm3 * ymm4) + ymm5
   758          vmovups %ymm0, (%rdi,%rcx,4)
   759          vmovups %ymm1, 32(%rdi,%rcx,4)
   760          vmovups %ymm2, 64(%rdi,%rcx,4)
   761          vmovups %ymm4, 96(%rdi,%rcx,4)
   762          addq    $32, %rcx
   763          cmpq    %rcx, %rax
   764          jne     .LBB13_4
   765          cmpq    %rdx, %rax
   766          je      .LBB13_7
   767  .LBB13_6:                               # =>This Inner Loop Header: Depth=1
   768          vmovss  (%rdi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   769          vdivss  (%rsi,%rax,4), %xmm0, %xmm0
   770          vmovss  %xmm0, (%rdi,%rax,4)
   771          addq    $1, %rax
   772          cmpq    %rax, %rdx
   773          jne     .LBB13_6
   774  .LBB13_7:
   775          vzeroupper
   776          retq
   777  .LCPI14_0:
   778          .quad   0x3ff0000000000000              # double 1
   779  DivNumber_F64_V(double*, double, unsigned long):                # @DivNumber_F64_V(double*, double, unsigned long)
   780          testq   %rsi, %rsi
   781          je      .LBB14_12
   782          cmpq    $4, %rsi
   783          jae     .LBB14_3
   784          xorl    %eax, %eax
   785          jmp     .LBB14_10
   786  .LBB14_3:
   787          movq    %rsi, %rax
   788          andq    $-4, %rax
   789          vbroadcastsd    %xmm0, %ymm1
   790          leaq    -4(%rax), %rcx
   791          movq    %rcx, %r8
   792          shrq    $2, %r8
   793          addq    $1, %r8
   794          testq   %rcx, %rcx
   795          je      .LBB14_4
   796          movq    %r8, %rcx
   797          andq    $-2, %rcx
   798          vbroadcastsd    .LCPI14_0(%rip), %ymm2  # ymm2 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
   799          vdivpd  %ymm1, %ymm2, %ymm2
   800          xorl    %edx, %edx
   801  .LBB14_6:                               # =>This Inner Loop Header: Depth=1
   802          vmulpd  (%rdi,%rdx,8), %ymm2, %ymm3
   803          vmovupd %ymm3, (%rdi,%rdx,8)
   804          vmulpd  32(%rdi,%rdx,8), %ymm2, %ymm3
   805          vmovupd %ymm3, 32(%rdi,%rdx,8)
   806          addq    $8, %rdx
   807          addq    $-2, %rcx
   808          jne     .LBB14_6
   809          testb   $1, %r8b
   810          je      .LBB14_9
   811  .LBB14_8:
   812          vmovupd (%rdi,%rdx,8), %ymm2
   813          vdivpd  %ymm1, %ymm2, %ymm1
   814          vmovupd %ymm1, (%rdi,%rdx,8)
   815  .LBB14_9:
   816          cmpq    %rsi, %rax
   817          je      .LBB14_12
   818  .LBB14_10:
   819          vmovsd  .LCPI14_0(%rip), %xmm1          # xmm1 = mem[0],zero
   820          vdivsd  %xmm0, %xmm1, %xmm0
   821  .LBB14_11:                              # =>This Inner Loop Header: Depth=1
   822          vmulsd  (%rdi,%rax,8), %xmm0, %xmm1
   823          vmovsd  %xmm1, (%rdi,%rax,8)
   824          addq    $1, %rax
   825          cmpq    %rax, %rsi
   826          jne     .LBB14_11
   827  .LBB14_12:
   828          vzeroupper
   829          retq
   830  .LBB14_4:
   831          xorl    %edx, %edx
   832          testb   $1, %r8b
   833          jne     .LBB14_8
   834          jmp     .LBB14_9
   835  .LCPI15_0:
   836          .long   0x3f800000                      # float 1
   837  DivNumber_F32_V(float*, float, unsigned long):                # @DivNumber_F32_V(float*, float, unsigned long)
   838          testq   %rsi, %rsi
   839          je      .LBB15_8
   840          cmpq    $32, %rsi
   841          jae     .LBB15_3
   842          xorl    %eax, %eax
   843          jmp     .LBB15_6
   844  .LBB15_3:
   845          movq    %rsi, %rax
   846          andq    $-32, %rax
   847          vmovss  .LCPI15_0(%rip), %xmm1          # xmm1 = mem[0],zero,zero,zero
   848          vdivss  %xmm0, %xmm1, %xmm1
   849          vbroadcastss    %xmm1, %ymm1
   850          xorl    %ecx, %ecx
   851  .LBB15_4:                               # =>This Inner Loop Header: Depth=1
   852          vmulps  (%rdi,%rcx,4), %ymm1, %ymm2
   853          vmulps  32(%rdi,%rcx,4), %ymm1, %ymm3
   854          vmulps  64(%rdi,%rcx,4), %ymm1, %ymm4
   855          vmulps  96(%rdi,%rcx,4), %ymm1, %ymm5
   856          vmovups %ymm2, (%rdi,%rcx,4)
   857          vmovups %ymm3, 32(%rdi,%rcx,4)
   858          vmovups %ymm4, 64(%rdi,%rcx,4)
   859          vmovups %ymm5, 96(%rdi,%rcx,4)
   860          addq    $32, %rcx
   861          cmpq    %rcx, %rax
   862          jne     .LBB15_4
   863          cmpq    %rsi, %rax
   864          je      .LBB15_8
   865  .LBB15_6:
   866          vmovss  .LCPI15_0(%rip), %xmm1          # xmm1 = mem[0],zero,zero,zero
   867          vdivss  %xmm0, %xmm1, %xmm0
   868  .LBB15_7:                               # =>This Inner Loop Header: Depth=1
   869          vmulss  (%rdi,%rax,4), %xmm0, %xmm1
   870          vmovss  %xmm1, (%rdi,%rax,4)
   871          addq    $1, %rax
   872          cmpq    %rax, %rsi
   873          jne     .LBB15_7
   874  .LBB15_8:
   875          vzeroupper
   876          retq
   877  .LCPI16_0:
   878          .quad   0x7fffffffffffffff              # double NaN
   879  .LCPI16_1:
   880          .quad   0x7fffffffffffffff              # double NaN
   881          .quad   0x7fffffffffffffff              # double NaN
   882  Abs_F64_V(double*, unsigned long):                        # @Abs_F64_V(double*, unsigned long)
   883          testq   %rsi, %rsi
   884          je      .LBB16_8
   885          cmpq    $16, %rsi
   886          jae     .LBB16_3
   887          xorl    %eax, %eax
   888          jmp     .LBB16_6
   889  .LBB16_3:
   890          movq    %rsi, %rax
   891          andq    $-16, %rax
   892          xorl    %ecx, %ecx
   893          vbroadcastsd    .LCPI16_0(%rip), %ymm0  # ymm0 = [NaN,NaN,NaN,NaN]
   894  .LBB16_4:                               # =>This Inner Loop Header: Depth=1
   895          vandps  (%rdi,%rcx,8), %ymm0, %ymm1
   896          vandps  32(%rdi,%rcx,8), %ymm0, %ymm2
   897          vandps  64(%rdi,%rcx,8), %ymm0, %ymm3
   898          vandps  96(%rdi,%rcx,8), %ymm0, %ymm4
   899          vmovups %ymm1, (%rdi,%rcx,8)
   900          vmovups %ymm2, 32(%rdi,%rcx,8)
   901          vmovups %ymm3, 64(%rdi,%rcx,8)
   902          vmovups %ymm4, 96(%rdi,%rcx,8)
   903          addq    $16, %rcx
   904          cmpq    %rcx, %rax
   905          jne     .LBB16_4
   906          cmpq    %rsi, %rax
   907          je      .LBB16_8
   908  .LBB16_6:
   909          vmovaps .LCPI16_1(%rip), %xmm0          # xmm0 = [NaN,NaN]
   910  .LBB16_7:                               # =>This Inner Loop Header: Depth=1
   911          vmovsd  (%rdi,%rax,8), %xmm1            # xmm1 = mem[0],zero
   912          vandps  %xmm0, %xmm1, %xmm1
   913          vmovlps %xmm1, (%rdi,%rax,8)
   914          addq    $1, %rax
   915          cmpq    %rax, %rsi
   916          jne     .LBB16_7
   917  .LBB16_8:
   918          vzeroupper
   919          retq
   920  .LCPI17_0:
   921          .long   0x7fffffff                      # float NaN
   922  Abs_F32_V(float*, unsigned long):                        # @Abs_F32_V(float*, unsigned long)
   923          testq   %rsi, %rsi
   924          je      .LBB17_8
   925          cmpq    $32, %rsi
   926          jae     .LBB17_3
   927          xorl    %eax, %eax
   928          jmp     .LBB17_6
   929  .LBB17_3:
   930          movq    %rsi, %rax
   931          andq    $-32, %rax
   932          xorl    %ecx, %ecx
   933          vbroadcastss    .LCPI17_0(%rip), %ymm0  # ymm0 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN]
   934  .LBB17_4:                               # =>This Inner Loop Header: Depth=1
   935          vandps  (%rdi,%rcx,4), %ymm0, %ymm1
   936          vandps  32(%rdi,%rcx,4), %ymm0, %ymm2
   937          vandps  64(%rdi,%rcx,4), %ymm0, %ymm3
   938          vandps  96(%rdi,%rcx,4), %ymm0, %ymm4
   939          vmovups %ymm1, (%rdi,%rcx,4)
   940          vmovups %ymm2, 32(%rdi,%rcx,4)
   941          vmovups %ymm3, 64(%rdi,%rcx,4)
   942          vmovups %ymm4, 96(%rdi,%rcx,4)
   943          addq    $32, %rcx
   944          cmpq    %rcx, %rax
   945          jne     .LBB17_4
   946          cmpq    %rsi, %rax
   947          je      .LBB17_8
   948  .LBB17_6:
   949          vbroadcastss    .LCPI17_0(%rip), %xmm0  # xmm0 = [NaN,NaN,NaN,NaN]
   950  .LBB17_7:                               # =>This Inner Loop Header: Depth=1
   951          vmovss  (%rdi,%rax,4), %xmm1            # xmm1 = mem[0],zero,zero,zero
   952          vandps  %xmm0, %xmm1, %xmm1
   953          vmovss  %xmm1, (%rdi,%rax,4)
   954          addq    $1, %rax
   955          cmpq    %rax, %rsi
   956          jne     .LBB17_7
   957  .LBB17_8:
   958          vzeroupper
   959          retq
   960  .LCPI18_0:
   961          .quad   0x8000000000000000              # double -0
   962  .LCPI18_1:
   963          .quad   0x8000000000000000              # double -0
   964          .quad   0x8000000000000000              # double -0
   965  Neg_F64_V(double*, unsigned long):                        # @Neg_F64_V(double*, unsigned long)
   966          testq   %rsi, %rsi
   967          je      .LBB18_12
   968          cmpq    $16, %rsi
   969          jae     .LBB18_3
   970          xorl    %eax, %eax
   971          jmp     .LBB18_10
   972  .LBB18_3:
   973          movq    %rsi, %rax
   974          andq    $-16, %rax
   975          leaq    -16(%rax), %rcx
   976          movq    %rcx, %r8
   977          shrq    $4, %r8
   978          addq    $1, %r8
   979          testq   %rcx, %rcx
   980          je      .LBB18_4
   981          movq    %r8, %rdx
   982          andq    $-2, %rdx
   983          xorl    %ecx, %ecx
   984          vbroadcastsd    .LCPI18_0(%rip), %ymm0  # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
   985  .LBB18_6:                               # =>This Inner Loop Header: Depth=1
   986          vxorps  (%rdi,%rcx,8), %ymm0, %ymm1
   987          vxorps  32(%rdi,%rcx,8), %ymm0, %ymm2
   988          vxorps  64(%rdi,%rcx,8), %ymm0, %ymm3
   989          vxorps  96(%rdi,%rcx,8), %ymm0, %ymm4
   990          vmovups %ymm1, (%rdi,%rcx,8)
   991          vmovups %ymm2, 32(%rdi,%rcx,8)
   992          vmovups %ymm3, 64(%rdi,%rcx,8)
   993          vmovups %ymm4, 96(%rdi,%rcx,8)
   994          vxorps  128(%rdi,%rcx,8), %ymm0, %ymm1
   995          vxorps  160(%rdi,%rcx,8), %ymm0, %ymm2
   996          vxorps  192(%rdi,%rcx,8), %ymm0, %ymm3
   997          vxorps  224(%rdi,%rcx,8), %ymm0, %ymm4
   998          vmovups %ymm1, 128(%rdi,%rcx,8)
   999          vmovups %ymm2, 160(%rdi,%rcx,8)
  1000          vmovups %ymm3, 192(%rdi,%rcx,8)
  1001          vmovups %ymm4, 224(%rdi,%rcx,8)
  1002          addq    $32, %rcx
  1003          addq    $-2, %rdx
  1004          jne     .LBB18_6
  1005          testb   $1, %r8b
  1006          je      .LBB18_9
  1007  .LBB18_8:
  1008          vbroadcastsd    .LCPI18_0(%rip), %ymm0  # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
  1009          vxorps  (%rdi,%rcx,8), %ymm0, %ymm1
  1010          vxorps  32(%rdi,%rcx,8), %ymm0, %ymm2
  1011          vxorps  64(%rdi,%rcx,8), %ymm0, %ymm3
  1012          vxorps  96(%rdi,%rcx,8), %ymm0, %ymm0
  1013          vmovups %ymm1, (%rdi,%rcx,8)
  1014          vmovups %ymm2, 32(%rdi,%rcx,8)
  1015          vmovups %ymm3, 64(%rdi,%rcx,8)
  1016          vmovups %ymm0, 96(%rdi,%rcx,8)
  1017  .LBB18_9:
  1018          cmpq    %rsi, %rax
  1019          je      .LBB18_12
  1020  .LBB18_10:
  1021          vmovaps .LCPI18_1(%rip), %xmm0          # xmm0 = [-0.0E+0,-0.0E+0]
  1022  .LBB18_11:                              # =>This Inner Loop Header: Depth=1
  1023          vmovsd  (%rdi,%rax,8), %xmm1            # xmm1 = mem[0],zero
  1024          vxorps  %xmm0, %xmm1, %xmm1
  1025          vmovlps %xmm1, (%rdi,%rax,8)
  1026          addq    $1, %rax
  1027          cmpq    %rax, %rsi
  1028          jne     .LBB18_11
  1029  .LBB18_12:
  1030          vzeroupper
  1031          retq
  1032  .LBB18_4:
  1033          xorl    %ecx, %ecx
  1034          testb   $1, %r8b
  1035          jne     .LBB18_8
  1036          jmp     .LBB18_9
  1037  .LCPI19_0:
  1038          .long   0x80000000                      # float -0
  1039  Neg_F32_V(float*, unsigned long):                        # @Neg_F32_V(float*, unsigned long)
  1040          testq   %rsi, %rsi
  1041          je      .LBB19_12
  1042          cmpq    $32, %rsi
  1043          jae     .LBB19_3
  1044          xorl    %eax, %eax
  1045          jmp     .LBB19_10
  1046  .LBB19_3:
  1047          movq    %rsi, %rax
  1048          andq    $-32, %rax
  1049          leaq    -32(%rax), %rcx
  1050          movq    %rcx, %r8
  1051          shrq    $5, %r8
  1052          addq    $1, %r8
  1053          testq   %rcx, %rcx
  1054          je      .LBB19_4
  1055          movq    %r8, %rdx
  1056          andq    $-2, %rdx
  1057          xorl    %ecx, %ecx
  1058          vbroadcastss    .LCPI19_0(%rip), %ymm0  # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
  1059  .LBB19_6:                               # =>This Inner Loop Header: Depth=1
  1060          vxorps  (%rdi,%rcx,4), %ymm0, %ymm1
  1061          vxorps  32(%rdi,%rcx,4), %ymm0, %ymm2
  1062          vxorps  64(%rdi,%rcx,4), %ymm0, %ymm3
  1063          vxorps  96(%rdi,%rcx,4), %ymm0, %ymm4
  1064          vmovups %ymm1, (%rdi,%rcx,4)
  1065          vmovups %ymm2, 32(%rdi,%rcx,4)
  1066          vmovups %ymm3, 64(%rdi,%rcx,4)
  1067          vmovups %ymm4, 96(%rdi,%rcx,4)
  1068          vxorps  128(%rdi,%rcx,4), %ymm0, %ymm1
  1069          vxorps  160(%rdi,%rcx,4), %ymm0, %ymm2
  1070          vxorps  192(%rdi,%rcx,4), %ymm0, %ymm3
  1071          vxorps  224(%rdi,%rcx,4), %ymm0, %ymm4
  1072          vmovups %ymm1, 128(%rdi,%rcx,4)
  1073          vmovups %ymm2, 160(%rdi,%rcx,4)
  1074          vmovups %ymm3, 192(%rdi,%rcx,4)
  1075          vmovups %ymm4, 224(%rdi,%rcx,4)
  1076          addq    $64, %rcx
  1077          addq    $-2, %rdx
  1078          jne     .LBB19_6
  1079          testb   $1, %r8b
  1080          je      .LBB19_9
  1081  .LBB19_8:
  1082          vbroadcastss    .LCPI19_0(%rip), %ymm0  # ymm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
  1083          vxorps  (%rdi,%rcx,4), %ymm0, %ymm1
  1084          vxorps  32(%rdi,%rcx,4), %ymm0, %ymm2
  1085          vxorps  64(%rdi,%rcx,4), %ymm0, %ymm3
  1086          vxorps  96(%rdi,%rcx,4), %ymm0, %ymm0
  1087          vmovups %ymm1, (%rdi,%rcx,4)
  1088          vmovups %ymm2, 32(%rdi,%rcx,4)
  1089          vmovups %ymm3, 64(%rdi,%rcx,4)
  1090          vmovups %ymm0, 96(%rdi,%rcx,4)
  1091  .LBB19_9:
  1092          cmpq    %rsi, %rax
  1093          je      .LBB19_12
  1094  .LBB19_10:
  1095          vbroadcastss    .LCPI19_0(%rip), %xmm0  # xmm0 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
  1096  .LBB19_11:                              # =>This Inner Loop Header: Depth=1
  1097          vmovss  (%rdi,%rax,4), %xmm1            # xmm1 = mem[0],zero,zero,zero
  1098          vxorps  %xmm0, %xmm1, %xmm1
  1099          vmovss  %xmm1, (%rdi,%rax,4)
  1100          addq    $1, %rax
  1101          cmpq    %rax, %rsi
  1102          jne     .LBB19_11
  1103  .LBB19_12:
  1104          vzeroupper
  1105          retq
  1106  .LBB19_4:
  1107          xorl    %ecx, %ecx
  1108          testb   $1, %r8b
  1109          jne     .LBB19_8
  1110          jmp     .LBB19_9
  1111  .LCPI20_0:
  1112          .quad   0x3ff0000000000000              # double 1
  1113  Inv_F64_V(double*, unsigned long):                        # @Inv_F64_V(double*, unsigned long)
  1114          testq   %rsi, %rsi
  1115          je      .LBB20_12
  1116          cmpq    $4, %rsi
  1117          jae     .LBB20_3
  1118          xorl    %eax, %eax
  1119          jmp     .LBB20_10
  1120  .LBB20_3:
  1121          movq    %rsi, %rax
  1122          andq    $-4, %rax
  1123          leaq    -4(%rax), %rcx
  1124          movq    %rcx, %r8
  1125          shrq    $2, %r8
  1126          addq    $1, %r8
  1127          testq   %rcx, %rcx
  1128          je      .LBB20_4
  1129          movq    %r8, %rcx
  1130          andq    $-2, %rcx
  1131          xorl    %edx, %edx
  1132          vbroadcastsd    .LCPI20_0(%rip), %ymm0  # ymm0 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
  1133  .LBB20_6:                               # =>This Inner Loop Header: Depth=1
  1134          vdivpd  (%rdi,%rdx,8), %ymm0, %ymm1
  1135          vmovupd %ymm1, (%rdi,%rdx,8)
  1136          vdivpd  32(%rdi,%rdx,8), %ymm0, %ymm1
  1137          vmovupd %ymm1, 32(%rdi,%rdx,8)
  1138          addq    $8, %rdx
  1139          addq    $-2, %rcx
  1140          jne     .LBB20_6
  1141          testb   $1, %r8b
  1142          je      .LBB20_9
  1143  .LBB20_8:
  1144          vbroadcastsd    .LCPI20_0(%rip), %ymm0  # ymm0 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0]
  1145          vdivpd  (%rdi,%rdx,8), %ymm0, %ymm0
  1146          vmovupd %ymm0, (%rdi,%rdx,8)
  1147  .LBB20_9:
  1148          cmpq    %rsi, %rax
  1149          je      .LBB20_12
  1150  .LBB20_10:
  1151          vmovsd  .LCPI20_0(%rip), %xmm0          # xmm0 = mem[0],zero
  1152  .LBB20_11:                              # =>This Inner Loop Header: Depth=1
  1153          vdivsd  (%rdi,%rax,8), %xmm0, %xmm1
  1154          vmovsd  %xmm1, (%rdi,%rax,8)
  1155          addq    $1, %rax
  1156          cmpq    %rax, %rsi
  1157          jne     .LBB20_11
  1158  .LBB20_12:
  1159          vzeroupper
  1160          retq
  1161  .LBB20_4:
  1162          xorl    %edx, %edx
  1163          testb   $1, %r8b
  1164          jne     .LBB20_8
  1165          jmp     .LBB20_9
  1166  .LCPI21_0:
  1167          .long   0x3f800000                      # float 1
  1168  Inv_F32_V(float*, unsigned long):                        # @Inv_F32_V(float*, unsigned long)
  1169          testq   %rsi, %rsi
  1170          je      .LBB21_8
  1171          cmpq    $32, %rsi
  1172          jae     .LBB21_3
  1173          xorl    %eax, %eax
  1174          jmp     .LBB21_6
  1175  .LBB21_3:
  1176          movq    %rsi, %rax
  1177          andq    $-32, %rax
  1178          xorl    %ecx, %ecx
  1179          vbroadcastss    .LCPI21_0(%rip), %ymm0  # ymm0 = [1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0,1.0E+0]
  1180  .LBB21_4:                               # =>This Inner Loop Header: Depth=1
  1181          vmovups (%rdi,%rcx,4), %ymm1
  1182          vmovups 32(%rdi,%rcx,4), %ymm2
  1183          vmovups 64(%rdi,%rcx,4), %ymm3
  1184          vrcpps  %ymm1, %ymm4
  1185          vfmsub213ps     %ymm0, %ymm4, %ymm1     # ymm1 = (ymm4 * ymm1) - ymm0
  1186          vrcpps  %ymm2, %ymm5
  1187          vfnmadd132ps    %ymm4, %ymm4, %ymm1     # ymm1 = -(ymm1 * ymm4) + ymm4
  1188          vmovups 96(%rdi,%rcx,4), %ymm4
  1189          vfmsub213ps     %ymm0, %ymm5, %ymm2     # ymm2 = (ymm5 * ymm2) - ymm0
  1190          vfnmadd132ps    %ymm5, %ymm5, %ymm2     # ymm2 = -(ymm2 * ymm5) + ymm5
  1191          vrcpps  %ymm3, %ymm5
  1192          vfmsub213ps     %ymm0, %ymm5, %ymm3     # ymm3 = (ymm5 * ymm3) - ymm0
  1193          vfnmadd132ps    %ymm5, %ymm5, %ymm3     # ymm3 = -(ymm3 * ymm5) + ymm5
  1194          vrcpps  %ymm4, %ymm5
  1195          vfmsub213ps     %ymm0, %ymm5, %ymm4     # ymm4 = (ymm5 * ymm4) - ymm0
  1196          vfnmadd132ps    %ymm5, %ymm5, %ymm4     # ymm4 = -(ymm4 * ymm5) + ymm5
  1197          vmovups %ymm1, (%rdi,%rcx,4)
  1198          vmovups %ymm2, 32(%rdi,%rcx,4)
  1199          vmovups %ymm3, 64(%rdi,%rcx,4)
  1200          vmovups %ymm4, 96(%rdi,%rcx,4)
  1201          addq    $32, %rcx
  1202          cmpq    %rcx, %rax
  1203          jne     .LBB21_4
  1204          cmpq    %rsi, %rax
  1205          je      .LBB21_8
  1206  .LBB21_6:
  1207          vmovss  .LCPI21_0(%rip), %xmm0          # xmm0 = mem[0],zero,zero,zero
  1208  .LBB21_7:                               # =>This Inner Loop Header: Depth=1
  1209          vdivss  (%rdi,%rax,4), %xmm0, %xmm1
  1210          vmovss  %xmm1, (%rdi,%rax,4)
  1211          addq    $1, %rax
  1212          cmpq    %rax, %rsi
  1213          jne     .LBB21_7
  1214  .LBB21_8:
  1215          vzeroupper
  1216          retq