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

     1  Repeat_F64_V(double*, double, unsigned long):                   # @Repeat_F64_V(double*, double, unsigned long)
     2          testq   %rsi, %rsi
     3          je      .LBB0_12
     4          cmpq    $16, %rsi
     5          jae     .LBB0_3
     6          xorl    %eax, %eax
     7          jmp     .LBB0_11
     8  .LBB0_3:
     9          movq    %rsi, %rax
    10          andq    $-16, %rax
    11          vbroadcastsd    %xmm0, %ymm1
    12          leaq    -16(%rax), %rcx
    13          movq    %rcx, %rdx
    14          shrq    $4, %rdx
    15          addq    $1, %rdx
    16          movl    %edx, %r8d
    17          andl    $3, %r8d
    18          cmpq    $48, %rcx
    19          jae     .LBB0_5
    20          xorl    %ecx, %ecx
    21          jmp     .LBB0_7
    22  .LBB0_5:
    23          andq    $-4, %rdx
    24          xorl    %ecx, %ecx
    25  .LBB0_6:                                # =>This Inner Loop Header: Depth=1
    26          vmovups %ymm1, (%rdi,%rcx,8)
    27          vmovups %ymm1, 32(%rdi,%rcx,8)
    28          vmovups %ymm1, 64(%rdi,%rcx,8)
    29          vmovups %ymm1, 96(%rdi,%rcx,8)
    30          vmovups %ymm1, 128(%rdi,%rcx,8)
    31          vmovups %ymm1, 160(%rdi,%rcx,8)
    32          vmovups %ymm1, 192(%rdi,%rcx,8)
    33          vmovups %ymm1, 224(%rdi,%rcx,8)
    34          vmovups %ymm1, 256(%rdi,%rcx,8)
    35          vmovups %ymm1, 288(%rdi,%rcx,8)
    36          vmovups %ymm1, 320(%rdi,%rcx,8)
    37          vmovups %ymm1, 352(%rdi,%rcx,8)
    38          vmovups %ymm1, 384(%rdi,%rcx,8)
    39          vmovups %ymm1, 416(%rdi,%rcx,8)
    40          vmovups %ymm1, 448(%rdi,%rcx,8)
    41          vmovups %ymm1, 480(%rdi,%rcx,8)
    42          addq    $64, %rcx
    43          addq    $-4, %rdx
    44          jne     .LBB0_6
    45  .LBB0_7:
    46          testq   %r8, %r8
    47          je      .LBB0_10
    48          leaq    (%rdi,%rcx,8), %rcx
    49          addq    $96, %rcx
    50          shlq    $7, %r8
    51          xorl    %edx, %edx
    52  .LBB0_9:                                # =>This Inner Loop Header: Depth=1
    53          vmovups %ymm1, -96(%rcx,%rdx)
    54          vmovups %ymm1, -64(%rcx,%rdx)
    55          vmovups %ymm1, -32(%rcx,%rdx)
    56          vmovups %ymm1, (%rcx,%rdx)
    57          subq    $-128, %rdx
    58          cmpq    %rdx, %r8
    59          jne     .LBB0_9
    60  .LBB0_10:
    61          cmpq    %rsi, %rax
    62          je      .LBB0_12
    63  .LBB0_11:                               # =>This Inner Loop Header: Depth=1
    64          vmovsd  %xmm0, (%rdi,%rax,8)
    65          addq    $1, %rax
    66          cmpq    %rax, %rsi
    67          jne     .LBB0_11
    68  .LBB0_12:
    69          vzeroupper
    70          retq
    71  Repeat_F32_V(float*, float, unsigned long):                   # @Repeat_F32_V(float*, float, unsigned long)
    72          testq   %rsi, %rsi
    73          je      .LBB1_12
    74          cmpq    $32, %rsi
    75          jae     .LBB1_3
    76          xorl    %eax, %eax
    77          jmp     .LBB1_11
    78  .LBB1_3:
    79          movq    %rsi, %rax
    80          andq    $-32, %rax
    81          vbroadcastss    %xmm0, %ymm1
    82          leaq    -32(%rax), %rcx
    83          movq    %rcx, %rdx
    84          shrq    $5, %rdx
    85          addq    $1, %rdx
    86          movl    %edx, %r8d
    87          andl    $3, %r8d
    88          cmpq    $96, %rcx
    89          jae     .LBB1_5
    90          xorl    %ecx, %ecx
    91          jmp     .LBB1_7
    92  .LBB1_5:
    93          andq    $-4, %rdx
    94          xorl    %ecx, %ecx
    95  .LBB1_6:                                # =>This Inner Loop Header: Depth=1
    96          vmovups %ymm1, (%rdi,%rcx,4)
    97          vmovups %ymm1, 32(%rdi,%rcx,4)
    98          vmovups %ymm1, 64(%rdi,%rcx,4)
    99          vmovups %ymm1, 96(%rdi,%rcx,4)
   100          vmovups %ymm1, 128(%rdi,%rcx,4)
   101          vmovups %ymm1, 160(%rdi,%rcx,4)
   102          vmovups %ymm1, 192(%rdi,%rcx,4)
   103          vmovups %ymm1, 224(%rdi,%rcx,4)
   104          vmovups %ymm1, 256(%rdi,%rcx,4)
   105          vmovups %ymm1, 288(%rdi,%rcx,4)
   106          vmovups %ymm1, 320(%rdi,%rcx,4)
   107          vmovups %ymm1, 352(%rdi,%rcx,4)
   108          vmovups %ymm1, 384(%rdi,%rcx,4)
   109          vmovups %ymm1, 416(%rdi,%rcx,4)
   110          vmovups %ymm1, 448(%rdi,%rcx,4)
   111          vmovups %ymm1, 480(%rdi,%rcx,4)
   112          subq    $-128, %rcx
   113          addq    $-4, %rdx
   114          jne     .LBB1_6
   115  .LBB1_7:
   116          testq   %r8, %r8
   117          je      .LBB1_10
   118          leaq    (%rdi,%rcx,4), %rcx
   119          addq    $96, %rcx
   120          shlq    $7, %r8
   121          xorl    %edx, %edx
   122  .LBB1_9:                                # =>This Inner Loop Header: Depth=1
   123          vmovups %ymm1, -96(%rcx,%rdx)
   124          vmovups %ymm1, -64(%rcx,%rdx)
   125          vmovups %ymm1, -32(%rcx,%rdx)
   126          vmovups %ymm1, (%rcx,%rdx)
   127          subq    $-128, %rdx
   128          cmpq    %rdx, %r8
   129          jne     .LBB1_9
   130  .LBB1_10:
   131          cmpq    %rsi, %rax
   132          je      .LBB1_12
   133  .LBB1_11:                               # =>This Inner Loop Header: Depth=1
   134          vmovss  %xmm0, (%rdi,%rax,4)
   135          addq    $1, %rax
   136          cmpq    %rax, %rsi
   137          jne     .LBB1_11
   138  .LBB1_12:
   139          vzeroupper
   140          retq
   141  .LCPI2_0:
   142          .quad   0x0000000000000000              # double 0
   143          .quad   0x3ff0000000000000              # double 1
   144          .quad   0x4000000000000000              # double 2
   145          .quad   0x4008000000000000              # double 3
   146  .LCPI2_1:
   147          .quad   0x4010000000000000              # double 4
   148  .LCPI2_2:
   149          .quad   0x4020000000000000              # double 8
   150  .LCPI2_3:
   151          .quad   0x4028000000000000              # double 12
   152  .LCPI2_4:
   153          .quad   0x4030000000000000              # double 16
   154  .LCPI2_5:
   155          .quad   0x4034000000000000              # double 20
   156  .LCPI2_6:
   157          .quad   0x4038000000000000              # double 24
   158  .LCPI2_7:
   159          .quad   0x403c000000000000              # double 28
   160  .LCPI2_8:
   161          .quad   0x4040000000000000              # double 32
   162  .LCPI2_9:
   163          .quad   0x3ff0000000000000              # double 1
   164  Range_F64_V(double*, double, unsigned long):                    # @Range_F64_V(double*, double, unsigned long)
   165          testq   %rsi, %rsi
   166          je      .LBB2_13
   167          cmpq    $16, %rsi
   168          jae     .LBB2_3
   169          xorl    %eax, %eax
   170          jmp     .LBB2_11
   171  .LBB2_3:
   172          movq    %rsi, %rax
   173          andq    $-16, %rax
   174          vbroadcastsd    %xmm0, %ymm1
   175          vaddpd  .LCPI2_0(%rip), %ymm1, %ymm1
   176          leaq    -16(%rax), %rcx
   177          movq    %rcx, %r8
   178          shrq    $4, %r8
   179          addq    $1, %r8
   180          testq   %rcx, %rcx
   181          je      .LBB2_4
   182          movq    %r8, %rdx
   183          andq    $-2, %rdx
   184          xorl    %ecx, %ecx
   185          vbroadcastsd    .LCPI2_1(%rip), %ymm2   # ymm2 = [4.0E+0,4.0E+0,4.0E+0,4.0E+0]
   186          vbroadcastsd    .LCPI2_2(%rip), %ymm3   # ymm3 = [8.0E+0,8.0E+0,8.0E+0,8.0E+0]
   187          vbroadcastsd    .LCPI2_3(%rip), %ymm4   # ymm4 = [1.2E+1,1.2E+1,1.2E+1,1.2E+1]
   188          vbroadcastsd    .LCPI2_4(%rip), %ymm5   # ymm5 = [1.6E+1,1.6E+1,1.6E+1,1.6E+1]
   189          vbroadcastsd    .LCPI2_5(%rip), %ymm6   # ymm6 = [2.0E+1,2.0E+1,2.0E+1,2.0E+1]
   190          vbroadcastsd    .LCPI2_6(%rip), %ymm7   # ymm7 = [2.4E+1,2.4E+1,2.4E+1,2.4E+1]
   191          vbroadcastsd    .LCPI2_7(%rip), %ymm8   # ymm8 = [2.8E+1,2.8E+1,2.8E+1,2.8E+1]
   192          vbroadcastsd    .LCPI2_8(%rip), %ymm9   # ymm9 = [3.2E+1,3.2E+1,3.2E+1,3.2E+1]
   193  .LBB2_6:                                # =>This Inner Loop Header: Depth=1
   194          vaddpd  %ymm2, %ymm1, %ymm10
   195          vaddpd  %ymm3, %ymm1, %ymm11
   196          vaddpd  %ymm4, %ymm1, %ymm12
   197          vmovupd %ymm1, (%rdi,%rcx,8)
   198          vmovupd %ymm10, 32(%rdi,%rcx,8)
   199          vmovupd %ymm11, 64(%rdi,%rcx,8)
   200          vmovupd %ymm12, 96(%rdi,%rcx,8)
   201          vaddpd  %ymm5, %ymm1, %ymm10
   202          vaddpd  %ymm6, %ymm1, %ymm11
   203          vaddpd  %ymm7, %ymm1, %ymm12
   204          vaddpd  %ymm1, %ymm8, %ymm13
   205          vmovupd %ymm10, 128(%rdi,%rcx,8)
   206          vmovupd %ymm11, 160(%rdi,%rcx,8)
   207          vmovupd %ymm12, 192(%rdi,%rcx,8)
   208          vmovupd %ymm13, 224(%rdi,%rcx,8)
   209          addq    $32, %rcx
   210          vaddpd  %ymm1, %ymm9, %ymm1
   211          addq    $-2, %rdx
   212          jne     .LBB2_6
   213          testb   $1, %r8b
   214          je      .LBB2_9
   215  .LBB2_8:
   216          vbroadcastsd    .LCPI2_1(%rip), %ymm2   # ymm2 = [4.0E+0,4.0E+0,4.0E+0,4.0E+0]
   217          vaddpd  %ymm2, %ymm1, %ymm2
   218          vbroadcastsd    .LCPI2_2(%rip), %ymm3   # ymm3 = [8.0E+0,8.0E+0,8.0E+0,8.0E+0]
   219          vaddpd  %ymm3, %ymm1, %ymm3
   220          vbroadcastsd    .LCPI2_3(%rip), %ymm4   # ymm4 = [1.2E+1,1.2E+1,1.2E+1,1.2E+1]
   221          vaddpd  %ymm4, %ymm1, %ymm4
   222          vmovupd %ymm1, (%rdi,%rcx,8)
   223          vmovupd %ymm2, 32(%rdi,%rcx,8)
   224          vmovupd %ymm3, 64(%rdi,%rcx,8)
   225          vmovupd %ymm4, 96(%rdi,%rcx,8)
   226  .LBB2_9:
   227          cmpq    %rsi, %rax
   228          je      .LBB2_13
   229          vcvtsi2sd       %rax, %xmm14, %xmm1
   230          vaddsd  %xmm0, %xmm1, %xmm0
   231  .LBB2_11:
   232          vmovsd  .LCPI2_9(%rip), %xmm1           # xmm1 = mem[0],zero
   233  .LBB2_12:                               # =>This Inner Loop Header: Depth=1
   234          vmovsd  %xmm0, (%rdi,%rax,8)
   235          vaddsd  %xmm1, %xmm0, %xmm0
   236          addq    $1, %rax
   237          cmpq    %rax, %rsi
   238          jne     .LBB2_12
   239  .LBB2_13:
   240          vzeroupper
   241          retq
   242  .LBB2_4:
   243          xorl    %ecx, %ecx
   244          testb   $1, %r8b
   245          jne     .LBB2_8
   246          jmp     .LBB2_9
   247  .LCPI3_0:
   248          .long   0x00000000                      # float 0
   249          .long   0x3f800000                      # float 1
   250          .long   0x40000000                      # float 2
   251          .long   0x40400000                      # float 3
   252          .long   0x40800000                      # float 4
   253          .long   0x40a00000                      # float 5
   254          .long   0x40c00000                      # float 6
   255          .long   0x40e00000                      # float 7
   256  .LCPI3_1:
   257          .long   0x41000000                      # float 8
   258  .LCPI3_2:
   259          .long   0x41800000                      # float 16
   260  .LCPI3_3:
   261          .long   0x41c00000                      # float 24
   262  .LCPI3_4:
   263          .long   0x42000000                      # float 32
   264  .LCPI3_5:
   265          .long   0x42200000                      # float 40
   266  .LCPI3_6:
   267          .long   0x42400000                      # float 48
   268  .LCPI3_7:
   269          .long   0x42600000                      # float 56
   270  .LCPI3_8:
   271          .long   0x42800000                      # float 64
   272  .LCPI3_9:
   273          .long   0x3f800000                      # float 1
   274  Range_F32_V(float*, float, unsigned long):                    # @Range_F32_V(float*, float, unsigned long)
   275          testq   %rsi, %rsi
   276          je      .LBB3_13
   277          cmpq    $32, %rsi
   278          jae     .LBB3_3
   279          xorl    %eax, %eax
   280          jmp     .LBB3_11
   281  .LBB3_3:
   282          movq    %rsi, %rax
   283          andq    $-32, %rax
   284          vbroadcastss    %xmm0, %ymm1
   285          vaddps  .LCPI3_0(%rip), %ymm1, %ymm1
   286          leaq    -32(%rax), %rcx
   287          movq    %rcx, %r8
   288          shrq    $5, %r8
   289          addq    $1, %r8
   290          testq   %rcx, %rcx
   291          je      .LBB3_4
   292          movq    %r8, %rdx
   293          andq    $-2, %rdx
   294          xorl    %ecx, %ecx
   295          vbroadcastss    .LCPI3_1(%rip), %ymm2   # ymm2 = [8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0]
   296          vbroadcastss    .LCPI3_2(%rip), %ymm3   # ymm3 = [1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1]
   297          vbroadcastss    .LCPI3_3(%rip), %ymm4   # ymm4 = [2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1]
   298          vbroadcastss    .LCPI3_4(%rip), %ymm5   # ymm5 = [3.2E+1,3.2E+1,3.2E+1,3.2E+1,3.2E+1,3.2E+1,3.2E+1,3.2E+1]
   299          vbroadcastss    .LCPI3_5(%rip), %ymm6   # ymm6 = [4.0E+1,4.0E+1,4.0E+1,4.0E+1,4.0E+1,4.0E+1,4.0E+1,4.0E+1]
   300          vbroadcastss    .LCPI3_6(%rip), %ymm7   # ymm7 = [4.8E+1,4.8E+1,4.8E+1,4.8E+1,4.8E+1,4.8E+1,4.8E+1,4.8E+1]
   301          vbroadcastss    .LCPI3_7(%rip), %ymm8   # ymm8 = [5.6E+1,5.6E+1,5.6E+1,5.6E+1,5.6E+1,5.6E+1,5.6E+1,5.6E+1]
   302          vbroadcastss    .LCPI3_8(%rip), %ymm9   # ymm9 = [6.4E+1,6.4E+1,6.4E+1,6.4E+1,6.4E+1,6.4E+1,6.4E+1,6.4E+1]
   303  .LBB3_6:                                # =>This Inner Loop Header: Depth=1
   304          vaddps  %ymm2, %ymm1, %ymm10
   305          vaddps  %ymm3, %ymm1, %ymm11
   306          vaddps  %ymm4, %ymm1, %ymm12
   307          vmovups %ymm1, (%rdi,%rcx,4)
   308          vmovups %ymm10, 32(%rdi,%rcx,4)
   309          vmovups %ymm11, 64(%rdi,%rcx,4)
   310          vmovups %ymm12, 96(%rdi,%rcx,4)
   311          vaddps  %ymm5, %ymm1, %ymm10
   312          vaddps  %ymm6, %ymm1, %ymm11
   313          vaddps  %ymm7, %ymm1, %ymm12
   314          vaddps  %ymm1, %ymm8, %ymm13
   315          vmovups %ymm10, 128(%rdi,%rcx,4)
   316          vmovups %ymm11, 160(%rdi,%rcx,4)
   317          vmovups %ymm12, 192(%rdi,%rcx,4)
   318          vmovups %ymm13, 224(%rdi,%rcx,4)
   319          addq    $64, %rcx
   320          vaddps  %ymm1, %ymm9, %ymm1
   321          addq    $-2, %rdx
   322          jne     .LBB3_6
   323          testb   $1, %r8b
   324          je      .LBB3_9
   325  .LBB3_8:
   326          vbroadcastss    .LCPI3_1(%rip), %ymm2   # ymm2 = [8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0,8.0E+0]
   327          vaddps  %ymm2, %ymm1, %ymm2
   328          vbroadcastss    .LCPI3_2(%rip), %ymm3   # ymm3 = [1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1,1.6E+1]
   329          vaddps  %ymm3, %ymm1, %ymm3
   330          vbroadcastss    .LCPI3_3(%rip), %ymm4   # ymm4 = [2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1,2.4E+1]
   331          vaddps  %ymm4, %ymm1, %ymm4
   332          vmovups %ymm1, (%rdi,%rcx,4)
   333          vmovups %ymm2, 32(%rdi,%rcx,4)
   334          vmovups %ymm3, 64(%rdi,%rcx,4)
   335          vmovups %ymm4, 96(%rdi,%rcx,4)
   336  .LBB3_9:
   337          cmpq    %rsi, %rax
   338          je      .LBB3_13
   339          vcvtsi2ss       %rax, %xmm14, %xmm1
   340          vaddss  %xmm0, %xmm1, %xmm0
   341  .LBB3_11:
   342          vmovss  .LCPI3_9(%rip), %xmm1           # xmm1 = mem[0],zero,zero,zero
   343  .LBB3_12:                               # =>This Inner Loop Header: Depth=1
   344          vmovss  %xmm0, (%rdi,%rax,4)
   345          vaddss  %xmm1, %xmm0, %xmm0
   346          addq    $1, %rax
   347          cmpq    %rax, %rsi
   348          jne     .LBB3_12
   349  .LBB3_13:
   350          vzeroupper
   351          retq
   352  .LBB3_4:
   353          xorl    %ecx, %ecx
   354          testb   $1, %r8b
   355          jne     .LBB3_8
   356          jmp     .LBB3_9
   357  Gather_F64_V(double*, double*, unsigned long*, unsigned long):                # @Gather_F64_V(double*, double*, unsigned long*, unsigned long)
   358          testq   %rcx, %rcx
   359          je      .LBB4_7
   360          cmpq    $16, %rcx
   361          jae     .LBB4_3
   362          xorl    %r8d, %r8d
   363          jmp     .LBB4_6
   364  .LBB4_3:
   365          movq    %rcx, %r8
   366          andq    $-16, %r8
   367          xorl    %r9d, %r9d
   368  .LBB4_4:                                # =>This Inner Loop Header: Depth=1
   369          movq    (%rdx,%r9,8), %rax
   370          vmovsd  (%rsi,%rax,8), %xmm0            # xmm0 = mem[0],zero
   371          movq    8(%rdx,%r9,8), %rax
   372          vmovhps (%rsi,%rax,8), %xmm0, %xmm0     # xmm0 = xmm0[0,1],mem[0,1]
   373          movq    16(%rdx,%r9,8), %rax
   374          vmovsd  (%rsi,%rax,8), %xmm1            # xmm1 = mem[0],zero
   375          movq    24(%rdx,%r9,8), %rax
   376          vmovhps (%rsi,%rax,8), %xmm1, %xmm1     # xmm1 = xmm1[0,1],mem[0,1]
   377          movq    32(%rdx,%r9,8), %rax
   378          vmovsd  (%rsi,%rax,8), %xmm2            # xmm2 = mem[0],zero
   379          movq    40(%rdx,%r9,8), %rax
   380          vmovhps (%rsi,%rax,8), %xmm2, %xmm2     # xmm2 = xmm2[0,1],mem[0,1]
   381          movq    48(%rdx,%r9,8), %rax
   382          vmovsd  (%rsi,%rax,8), %xmm3            # xmm3 = mem[0],zero
   383          movq    56(%rdx,%r9,8), %rax
   384          vmovhps (%rsi,%rax,8), %xmm3, %xmm3     # xmm3 = xmm3[0,1],mem[0,1]
   385          movq    64(%rdx,%r9,8), %rax
   386          vmovsd  (%rsi,%rax,8), %xmm4            # xmm4 = mem[0],zero
   387          movq    72(%rdx,%r9,8), %rax
   388          vmovhps (%rsi,%rax,8), %xmm4, %xmm4     # xmm4 = xmm4[0,1],mem[0,1]
   389          movq    80(%rdx,%r9,8), %rax
   390          vmovsd  (%rsi,%rax,8), %xmm5            # xmm5 = mem[0],zero
   391          movq    88(%rdx,%r9,8), %rax
   392          vmovhps (%rsi,%rax,8), %xmm5, %xmm5     # xmm5 = xmm5[0,1],mem[0,1]
   393          movq    96(%rdx,%r9,8), %rax
   394          vmovsd  (%rsi,%rax,8), %xmm6            # xmm6 = mem[0],zero
   395          movq    104(%rdx,%r9,8), %rax
   396          vmovhps (%rsi,%rax,8), %xmm6, %xmm6     # xmm6 = xmm6[0,1],mem[0,1]
   397          movq    112(%rdx,%r9,8), %rax
   398          vmovsd  (%rsi,%rax,8), %xmm7            # xmm7 = mem[0],zero
   399          movq    120(%rdx,%r9,8), %rax
   400          vmovhps (%rsi,%rax,8), %xmm7, %xmm7     # xmm7 = xmm7[0,1],mem[0,1]
   401          vmovups %xmm1, 16(%rdi,%r9,8)
   402          vmovups %xmm0, (%rdi,%r9,8)
   403          vmovups %xmm3, 48(%rdi,%r9,8)
   404          vmovups %xmm2, 32(%rdi,%r9,8)
   405          vmovups %xmm5, 80(%rdi,%r9,8)
   406          vmovups %xmm4, 64(%rdi,%r9,8)
   407          vmovups %xmm7, 112(%rdi,%r9,8)
   408          vmovups %xmm6, 96(%rdi,%r9,8)
   409          addq    $16, %r9
   410          cmpq    %r9, %r8
   411          jne     .LBB4_4
   412          cmpq    %rcx, %r8
   413          je      .LBB4_7
   414  .LBB4_6:                                # =>This Inner Loop Header: Depth=1
   415          movq    (%rdx,%r8,8), %rax
   416          vmovsd  (%rsi,%rax,8), %xmm0            # xmm0 = mem[0],zero
   417          vmovsd  %xmm0, (%rdi,%r8,8)
   418          addq    $1, %r8
   419          cmpq    %r8, %rcx
   420          jne     .LBB4_6
   421  .LBB4_7:
   422          retq
   423  Gather_F32_V(float*, float*, unsigned long*, unsigned long):                # @Gather_F32_V(float*, float*, unsigned long*, unsigned long)
   424          testq   %rcx, %rcx
   425          je      .LBB5_7
   426          cmpq    $16, %rcx
   427          jae     .LBB5_3
   428          xorl    %r8d, %r8d
   429          jmp     .LBB5_6
   430  .LBB5_3:
   431          movq    %rcx, %r8
   432          andq    $-16, %r8
   433          xorl    %r9d, %r9d
   434  .LBB5_4:                                # =>This Inner Loop Header: Depth=1
   435          movq    (%rdx,%r9,8), %rax
   436          vmovss  (%rsi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   437          movq    8(%rdx,%r9,8), %rax
   438          vinsertps       $16, (%rsi,%rax,4), %xmm0, %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[2,3]
   439          movq    16(%rdx,%r9,8), %rax
   440          vinsertps       $32, (%rsi,%rax,4), %xmm0, %xmm0 # xmm0 = xmm0[0,1],mem[0],xmm0[3]
   441          movq    24(%rdx,%r9,8), %rax
   442          vinsertps       $48, (%rsi,%rax,4), %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],mem[0]
   443          movq    32(%rdx,%r9,8), %rax
   444          vmovss  (%rsi,%rax,4), %xmm1            # xmm1 = mem[0],zero,zero,zero
   445          movq    40(%rdx,%r9,8), %rax
   446          vinsertps       $16, (%rsi,%rax,4), %xmm1, %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[2,3]
   447          movq    48(%rdx,%r9,8), %rax
   448          vinsertps       $32, (%rsi,%rax,4), %xmm1, %xmm1 # xmm1 = xmm1[0,1],mem[0],xmm1[3]
   449          movq    56(%rdx,%r9,8), %rax
   450          vinsertps       $48, (%rsi,%rax,4), %xmm1, %xmm1 # xmm1 = xmm1[0,1,2],mem[0]
   451          movq    64(%rdx,%r9,8), %rax
   452          vmovss  (%rsi,%rax,4), %xmm2            # xmm2 = mem[0],zero,zero,zero
   453          movq    72(%rdx,%r9,8), %rax
   454          vinsertps       $16, (%rsi,%rax,4), %xmm2, %xmm2 # xmm2 = xmm2[0],mem[0],xmm2[2,3]
   455          movq    80(%rdx,%r9,8), %rax
   456          vinsertps       $32, (%rsi,%rax,4), %xmm2, %xmm2 # xmm2 = xmm2[0,1],mem[0],xmm2[3]
   457          movq    88(%rdx,%r9,8), %rax
   458          vinsertps       $48, (%rsi,%rax,4), %xmm2, %xmm2 # xmm2 = xmm2[0,1,2],mem[0]
   459          movq    96(%rdx,%r9,8), %rax
   460          vmovss  (%rsi,%rax,4), %xmm3            # xmm3 = mem[0],zero,zero,zero
   461          movq    104(%rdx,%r9,8), %rax
   462          vinsertps       $16, (%rsi,%rax,4), %xmm3, %xmm3 # xmm3 = xmm3[0],mem[0],xmm3[2,3]
   463          movq    112(%rdx,%r9,8), %rax
   464          vinsertps       $32, (%rsi,%rax,4), %xmm3, %xmm3 # xmm3 = xmm3[0,1],mem[0],xmm3[3]
   465          movq    120(%rdx,%r9,8), %rax
   466          vinsertps       $48, (%rsi,%rax,4), %xmm3, %xmm3 # xmm3 = xmm3[0,1,2],mem[0]
   467          vmovups %xmm0, (%rdi,%r9,4)
   468          vmovups %xmm1, 16(%rdi,%r9,4)
   469          vmovups %xmm2, 32(%rdi,%r9,4)
   470          vmovups %xmm3, 48(%rdi,%r9,4)
   471          addq    $16, %r9
   472          cmpq    %r9, %r8
   473          jne     .LBB5_4
   474          cmpq    %rcx, %r8
   475          je      .LBB5_7
   476  .LBB5_6:                                # =>This Inner Loop Header: Depth=1
   477          movq    (%rdx,%r8,8), %rax
   478          vmovss  (%rsi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   479          vmovss  %xmm0, (%rdi,%r8,4)
   480          addq    $1, %r8
   481          cmpq    %r8, %rcx
   482          jne     .LBB5_6
   483  .LBB5_7:
   484          retq
   485  Scatter_F64_V(double*, double*, unsigned long*, unsigned long):               # @Scatter_F64_V(double*, double*, unsigned long*, unsigned long)
   486          testq   %rcx, %rcx
   487          je      .LBB6_8
   488          leaq    -1(%rcx), %rax
   489          movl    %ecx, %r8d
   490          andl    $3, %r8d
   491          cmpq    $3, %rax
   492          jae     .LBB6_3
   493          xorl    %r9d, %r9d
   494          jmp     .LBB6_5
   495  .LBB6_3:
   496          andq    $-4, %rcx
   497          xorl    %r9d, %r9d
   498  .LBB6_4:                                # =>This Inner Loop Header: Depth=1
   499          vmovsd  (%rsi,%r9,8), %xmm0             # xmm0 = mem[0],zero
   500          movq    (%rdx,%r9,8), %rax
   501          vmovsd  %xmm0, (%rdi,%rax,8)
   502          vmovsd  8(%rsi,%r9,8), %xmm0            # xmm0 = mem[0],zero
   503          movq    8(%rdx,%r9,8), %rax
   504          vmovsd  %xmm0, (%rdi,%rax,8)
   505          vmovsd  16(%rsi,%r9,8), %xmm0           # xmm0 = mem[0],zero
   506          movq    16(%rdx,%r9,8), %rax
   507          vmovsd  %xmm0, (%rdi,%rax,8)
   508          vmovsd  24(%rsi,%r9,8), %xmm0           # xmm0 = mem[0],zero
   509          movq    24(%rdx,%r9,8), %rax
   510          vmovsd  %xmm0, (%rdi,%rax,8)
   511          addq    $4, %r9
   512          cmpq    %r9, %rcx
   513          jne     .LBB6_4
   514  .LBB6_5:
   515          testq   %r8, %r8
   516          je      .LBB6_8
   517          leaq    (%rdx,%r9,8), %rcx
   518          leaq    (%rsi,%r9,8), %rax
   519          xorl    %edx, %edx
   520  .LBB6_7:                                # =>This Inner Loop Header: Depth=1
   521          vmovsd  (%rax,%rdx,8), %xmm0            # xmm0 = mem[0],zero
   522          movq    (%rcx,%rdx,8), %rsi
   523          vmovsd  %xmm0, (%rdi,%rsi,8)
   524          addq    $1, %rdx
   525          cmpq    %rdx, %r8
   526          jne     .LBB6_7
   527  .LBB6_8:
   528          retq
   529  Scatter_F32_V(float*, float*, unsigned long*, unsigned long):               # @Scatter_F32_V(float*, float*, unsigned long*, unsigned long)
   530          testq   %rcx, %rcx
   531          je      .LBB7_8
   532          leaq    -1(%rcx), %rax
   533          movl    %ecx, %r8d
   534          andl    $3, %r8d
   535          cmpq    $3, %rax
   536          jae     .LBB7_3
   537          xorl    %r9d, %r9d
   538          jmp     .LBB7_5
   539  .LBB7_3:
   540          andq    $-4, %rcx
   541          xorl    %r9d, %r9d
   542  .LBB7_4:                                # =>This Inner Loop Header: Depth=1
   543          vmovss  (%rsi,%r9,4), %xmm0             # xmm0 = mem[0],zero,zero,zero
   544          movq    (%rdx,%r9,8), %rax
   545          vmovss  %xmm0, (%rdi,%rax,4)
   546          vmovss  4(%rsi,%r9,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   547          movq    8(%rdx,%r9,8), %rax
   548          vmovss  %xmm0, (%rdi,%rax,4)
   549          vmovss  8(%rsi,%r9,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   550          movq    16(%rdx,%r9,8), %rax
   551          vmovss  %xmm0, (%rdi,%rax,4)
   552          vmovss  12(%rsi,%r9,4), %xmm0           # xmm0 = mem[0],zero,zero,zero
   553          movq    24(%rdx,%r9,8), %rax
   554          vmovss  %xmm0, (%rdi,%rax,4)
   555          addq    $4, %r9
   556          cmpq    %r9, %rcx
   557          jne     .LBB7_4
   558  .LBB7_5:
   559          testq   %r8, %r8
   560          je      .LBB7_8
   561          leaq    (%rdx,%r9,8), %rcx
   562          leaq    (%rsi,%r9,4), %rax
   563          xorl    %edx, %edx
   564  .LBB7_7:                                # =>This Inner Loop Header: Depth=1
   565          vmovss  (%rax,%rdx,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   566          movq    (%rcx,%rdx,8), %rsi
   567          vmovss  %xmm0, (%rdi,%rsi,4)
   568          addq    $1, %rdx
   569          cmpq    %rdx, %r8
   570          jne     .LBB7_7
   571  .LBB7_8:
   572          retq
   573  .LCPI8_0:
   574          .long   1                               # 0x1
   575  .LCPI8_1:
   576          .quad   0x3ff0000000000000              # double 1
   577  FromBool_F64_V(double*, bool*, unsigned long):                # @FromBool_F64_V(double*, bool*, unsigned long)
   578          testq   %rdx, %rdx
   579          je      .LBB8_10
   580          cmpq    $16, %rdx
   581          jae     .LBB8_3
   582          xorl    %eax, %eax
   583          jmp     .LBB8_6
   584  .LBB8_3:
   585          movq    %rdx, %rax
   586          andq    $-16, %rax
   587          xorl    %ecx, %ecx
   588          vpxor   %xmm0, %xmm0, %xmm0
   589          vpcmpeqd        %xmm1, %xmm1, %xmm1
   590          vpbroadcastd    .LCPI8_0(%rip), %xmm2   # xmm2 = [1,1,1,1]
   591  .LBB8_4:                                # =>This Inner Loop Header: Depth=1
   592          vmovd   (%rsi,%rcx), %xmm3              # xmm3 = mem[0],zero,zero,zero
   593          vmovd   4(%rsi,%rcx), %xmm4             # xmm4 = mem[0],zero,zero,zero
   594          vmovd   8(%rsi,%rcx), %xmm5             # xmm5 = mem[0],zero,zero,zero
   595          vmovd   12(%rsi,%rcx), %xmm6            # xmm6 = mem[0],zero,zero,zero
   596          vpcmpeqb        %xmm0, %xmm3, %xmm3
   597          vpxor   %xmm1, %xmm3, %xmm3
   598          vpmovzxbd       %xmm3, %xmm3            # xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero,xmm3[2],zero,zero,zero,xmm3[3],zero,zero,zero
   599          vpand   %xmm2, %xmm3, %xmm3
   600          vcvtdq2pd       %xmm3, %ymm3
   601          vpcmpeqb        %xmm0, %xmm4, %xmm4
   602          vpxor   %xmm1, %xmm4, %xmm4
   603          vpmovzxbd       %xmm4, %xmm4            # xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero
   604          vpand   %xmm2, %xmm4, %xmm4
   605          vcvtdq2pd       %xmm4, %ymm4
   606          vpcmpeqb        %xmm0, %xmm5, %xmm5
   607          vpxor   %xmm1, %xmm5, %xmm5
   608          vpmovzxbd       %xmm5, %xmm5            # xmm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero
   609          vpand   %xmm2, %xmm5, %xmm5
   610          vcvtdq2pd       %xmm5, %ymm5
   611          vpcmpeqb        %xmm0, %xmm6, %xmm6
   612          vpxor   %xmm1, %xmm6, %xmm6
   613          vpmovzxbd       %xmm6, %xmm6            # xmm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero,xmm6[2],zero,zero,zero,xmm6[3],zero,zero,zero
   614          vpand   %xmm2, %xmm6, %xmm6
   615          vcvtdq2pd       %xmm6, %ymm6
   616          vmovups %ymm3, (%rdi,%rcx,8)
   617          vmovups %ymm4, 32(%rdi,%rcx,8)
   618          vmovups %ymm5, 64(%rdi,%rcx,8)
   619          vmovups %ymm6, 96(%rdi,%rcx,8)
   620          addq    $16, %rcx
   621          cmpq    %rcx, %rax
   622          jne     .LBB8_4
   623          cmpq    %rdx, %rax
   624          jne     .LBB8_6
   625  .LBB8_10:
   626          vzeroupper
   627          retq
   628  .LBB8_6:
   629          vmovq   .LCPI8_1(%rip), %xmm0           # xmm0 = mem[0],zero
   630          jmp     .LBB8_7
   631  .LBB8_9:                                #   in Loop: Header=BB8_7 Depth=1
   632          vmovq   %xmm1, (%rdi,%rax,8)
   633          addq    $1, %rax
   634          cmpq    %rax, %rdx
   635          je      .LBB8_10
   636  .LBB8_7:                                # =>This Inner Loop Header: Depth=1
   637          cmpb    $0, (%rsi,%rax)
   638          vmovdqa %xmm0, %xmm1
   639          jne     .LBB8_9
   640          vpxor   %xmm1, %xmm1, %xmm1
   641          jmp     .LBB8_9
   642  .LCPI9_0:
   643          .long   1                               # 0x1
   644  .LCPI9_1:
   645          .long   0x3f800000                      # float 1
   646  FromBool_F32_V(float*, bool*, unsigned long):                # @FromBool_F32_V(float*, bool*, unsigned long)
   647          testq   %rdx, %rdx
   648          je      .LBB9_10
   649          cmpq    $32, %rdx
   650          jae     .LBB9_3
   651          xorl    %eax, %eax
   652          jmp     .LBB9_6
   653  .LBB9_3:
   654          movq    %rdx, %rax
   655          andq    $-32, %rax
   656          xorl    %ecx, %ecx
   657          vpxor   %xmm0, %xmm0, %xmm0
   658          vpcmpeqd        %xmm1, %xmm1, %xmm1
   659          vpbroadcastd    .LCPI9_0(%rip), %ymm2   # ymm2 = [1,1,1,1,1,1,1,1]
   660  .LBB9_4:                                # =>This Inner Loop Header: Depth=1
   661          vmovq   (%rsi,%rcx), %xmm3              # xmm3 = mem[0],zero
   662          vmovq   8(%rsi,%rcx), %xmm4             # xmm4 = mem[0],zero
   663          vmovq   16(%rsi,%rcx), %xmm5            # xmm5 = mem[0],zero
   664          vmovq   24(%rsi,%rcx), %xmm6            # xmm6 = mem[0],zero
   665          vpcmpeqb        %xmm0, %xmm3, %xmm3
   666          vpxor   %xmm1, %xmm3, %xmm3
   667          vpmovzxbd       %xmm3, %ymm3            # ymm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero,xmm3[2],zero,zero,zero,xmm3[3],zero,zero,zero,xmm3[4],zero,zero,zero,xmm3[5],zero,zero,zero,xmm3[6],zero,zero,zero,xmm3[7],zero,zero,zero
   668          vpand   %ymm2, %ymm3, %ymm3
   669          vcvtdq2ps       %ymm3, %ymm3
   670          vpcmpeqb        %xmm0, %xmm4, %xmm4
   671          vpxor   %xmm1, %xmm4, %xmm4
   672          vpmovzxbd       %xmm4, %ymm4            # ymm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero,xmm4[2],zero,zero,zero,xmm4[3],zero,zero,zero,xmm4[4],zero,zero,zero,xmm4[5],zero,zero,zero,xmm4[6],zero,zero,zero,xmm4[7],zero,zero,zero
   673          vpand   %ymm2, %ymm4, %ymm4
   674          vcvtdq2ps       %ymm4, %ymm4
   675          vpcmpeqb        %xmm0, %xmm5, %xmm5
   676          vpxor   %xmm1, %xmm5, %xmm5
   677          vpmovzxbd       %xmm5, %ymm5            # ymm5 = xmm5[0],zero,zero,zero,xmm5[1],zero,zero,zero,xmm5[2],zero,zero,zero,xmm5[3],zero,zero,zero,xmm5[4],zero,zero,zero,xmm5[5],zero,zero,zero,xmm5[6],zero,zero,zero,xmm5[7],zero,zero,zero
   678          vpand   %ymm2, %ymm5, %ymm5
   679          vcvtdq2ps       %ymm5, %ymm5
   680          vpcmpeqb        %xmm0, %xmm6, %xmm6
   681          vpxor   %xmm1, %xmm6, %xmm6
   682          vpmovzxbd       %xmm6, %ymm6            # ymm6 = xmm6[0],zero,zero,zero,xmm6[1],zero,zero,zero,xmm6[2],zero,zero,zero,xmm6[3],zero,zero,zero,xmm6[4],zero,zero,zero,xmm6[5],zero,zero,zero,xmm6[6],zero,zero,zero,xmm6[7],zero,zero,zero
   683          vpand   %ymm2, %ymm6, %ymm6
   684          vcvtdq2ps       %ymm6, %ymm6
   685          vmovups %ymm3, (%rdi,%rcx,4)
   686          vmovups %ymm4, 32(%rdi,%rcx,4)
   687          vmovups %ymm5, 64(%rdi,%rcx,4)
   688          vmovups %ymm6, 96(%rdi,%rcx,4)
   689          addq    $32, %rcx
   690          cmpq    %rcx, %rax
   691          jne     .LBB9_4
   692          cmpq    %rdx, %rax
   693          jne     .LBB9_6
   694  .LBB9_10:
   695          vzeroupper
   696          retq
   697  .LBB9_6:
   698          vmovd   .LCPI9_1(%rip), %xmm0           # xmm0 = mem[0],zero,zero,zero
   699          jmp     .LBB9_7
   700  .LBB9_9:                                #   in Loop: Header=BB9_7 Depth=1
   701          vmovd   %xmm1, (%rdi,%rax,4)
   702          addq    $1, %rax
   703          cmpq    %rax, %rdx
   704          je      .LBB9_10
   705  .LBB9_7:                                # =>This Inner Loop Header: Depth=1
   706          cmpb    $0, (%rsi,%rax)
   707          vmovdqa %xmm0, %xmm1
   708          jne     .LBB9_9
   709          vpxor   %xmm1, %xmm1, %xmm1
   710          jmp     .LBB9_9
   711  FromFloat32_F64_V(double*, float*, unsigned long):             # @FromFloat32_F64_V(double*, float*, unsigned long)
   712          testq   %rdx, %rdx
   713          je      .LBB10_11
   714          cmpq    $16, %rdx
   715          jae     .LBB10_3
   716          xorl    %eax, %eax
   717          jmp     .LBB10_10
   718  .LBB10_3:
   719          movq    %rdx, %rax
   720          andq    $-16, %rax
   721          leaq    -16(%rax), %rcx
   722          movq    %rcx, %r8
   723          shrq    $4, %r8
   724          addq    $1, %r8
   725          testq   %rcx, %rcx
   726          je      .LBB10_4
   727          movq    %r8, %r9
   728          andq    $-2, %r9
   729          xorl    %ecx, %ecx
   730  .LBB10_6:                               # =>This Inner Loop Header: Depth=1
   731          vcvtps2pd       (%rsi,%rcx,4), %ymm0
   732          vcvtps2pd       16(%rsi,%rcx,4), %ymm1
   733          vcvtps2pd       32(%rsi,%rcx,4), %ymm2
   734          vcvtps2pd       48(%rsi,%rcx,4), %ymm3
   735          vmovups %ymm0, (%rdi,%rcx,8)
   736          vmovups %ymm1, 32(%rdi,%rcx,8)
   737          vmovups %ymm2, 64(%rdi,%rcx,8)
   738          vmovups %ymm3, 96(%rdi,%rcx,8)
   739          vcvtps2pd       64(%rsi,%rcx,4), %ymm0
   740          vcvtps2pd       80(%rsi,%rcx,4), %ymm1
   741          vcvtps2pd       96(%rsi,%rcx,4), %ymm2
   742          vcvtps2pd       112(%rsi,%rcx,4), %ymm3
   743          vmovups %ymm0, 128(%rdi,%rcx,8)
   744          vmovups %ymm1, 160(%rdi,%rcx,8)
   745          vmovups %ymm2, 192(%rdi,%rcx,8)
   746          vmovups %ymm3, 224(%rdi,%rcx,8)
   747          addq    $32, %rcx
   748          addq    $-2, %r9
   749          jne     .LBB10_6
   750          testb   $1, %r8b
   751          je      .LBB10_9
   752  .LBB10_8:
   753          vcvtps2pd       (%rsi,%rcx,4), %ymm0
   754          vcvtps2pd       16(%rsi,%rcx,4), %ymm1
   755          vcvtps2pd       32(%rsi,%rcx,4), %ymm2
   756          vcvtps2pd       48(%rsi,%rcx,4), %ymm3
   757          vmovups %ymm0, (%rdi,%rcx,8)
   758          vmovups %ymm1, 32(%rdi,%rcx,8)
   759          vmovups %ymm2, 64(%rdi,%rcx,8)
   760          vmovups %ymm3, 96(%rdi,%rcx,8)
   761  .LBB10_9:
   762          cmpq    %rdx, %rax
   763          je      .LBB10_11
   764  .LBB10_10:                              # =>This Inner Loop Header: Depth=1
   765          vmovss  (%rsi,%rax,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
   766          vcvtss2sd       %xmm0, %xmm0, %xmm0
   767          vmovsd  %xmm0, (%rdi,%rax,8)
   768          addq    $1, %rax
   769          cmpq    %rax, %rdx
   770          jne     .LBB10_10
   771  .LBB10_11:
   772          vzeroupper
   773          retq
   774  .LBB10_4:
   775          xorl    %ecx, %ecx
   776          testb   $1, %r8b
   777          jne     .LBB10_8
   778          jmp     .LBB10_9
   779  FromFloat64_F32_V(float*, double*, unsigned long):             # @FromFloat64_F32_V(float*, double*, unsigned long)
   780          testq   %rdx, %rdx
   781          je      .LBB11_11
   782          cmpq    $16, %rdx
   783          jae     .LBB11_3
   784          xorl    %eax, %eax
   785          jmp     .LBB11_10
   786  .LBB11_3:
   787          movq    %rdx, %rax
   788          andq    $-16, %rax
   789          leaq    -16(%rax), %rcx
   790          movq    %rcx, %r8
   791          shrq    $4, %r8
   792          addq    $1, %r8
   793          testq   %rcx, %rcx
   794          je      .LBB11_4
   795          movq    %r8, %r9
   796          andq    $-2, %r9
   797          xorl    %ecx, %ecx
   798  .LBB11_6:                               # =>This Inner Loop Header: Depth=1
   799          vcvtpd2psy      (%rsi,%rcx,8), %xmm0
   800          vcvtpd2psy      32(%rsi,%rcx,8), %xmm1
   801          vcvtpd2psy      64(%rsi,%rcx,8), %xmm2
   802          vcvtpd2psy      96(%rsi,%rcx,8), %xmm3
   803          vmovupd %xmm0, (%rdi,%rcx,4)
   804          vmovupd %xmm1, 16(%rdi,%rcx,4)
   805          vmovupd %xmm2, 32(%rdi,%rcx,4)
   806          vmovupd %xmm3, 48(%rdi,%rcx,4)
   807          vcvtpd2psy      128(%rsi,%rcx,8), %xmm0
   808          vcvtpd2psy      160(%rsi,%rcx,8), %xmm1
   809          vcvtpd2psy      192(%rsi,%rcx,8), %xmm2
   810          vcvtpd2psy      224(%rsi,%rcx,8), %xmm3
   811          vmovupd %xmm0, 64(%rdi,%rcx,4)
   812          vmovupd %xmm1, 80(%rdi,%rcx,4)
   813          vmovupd %xmm2, 96(%rdi,%rcx,4)
   814          vmovupd %xmm3, 112(%rdi,%rcx,4)
   815          addq    $32, %rcx
   816          addq    $-2, %r9
   817          jne     .LBB11_6
   818          testb   $1, %r8b
   819          je      .LBB11_9
   820  .LBB11_8:
   821          vcvtpd2psy      (%rsi,%rcx,8), %xmm0
   822          vcvtpd2psy      32(%rsi,%rcx,8), %xmm1
   823          vcvtpd2psy      64(%rsi,%rcx,8), %xmm2
   824          vcvtpd2psy      96(%rsi,%rcx,8), %xmm3
   825          vmovupd %xmm0, (%rdi,%rcx,4)
   826          vmovupd %xmm1, 16(%rdi,%rcx,4)
   827          vmovupd %xmm2, 32(%rdi,%rcx,4)
   828          vmovupd %xmm3, 48(%rdi,%rcx,4)
   829  .LBB11_9:
   830          cmpq    %rdx, %rax
   831          je      .LBB11_11
   832  .LBB11_10:                              # =>This Inner Loop Header: Depth=1
   833          vmovsd  (%rsi,%rax,8), %xmm0            # xmm0 = mem[0],zero
   834          vcvtsd2ss       %xmm0, %xmm0, %xmm0
   835          vmovss  %xmm0, (%rdi,%rax,4)
   836          addq    $1, %rax
   837          cmpq    %rax, %rdx
   838          jne     .LBB11_10
   839  .LBB11_11:
   840          retq
   841  .LBB11_4:
   842          xorl    %ecx, %ecx
   843          testb   $1, %r8b
   844          jne     .LBB11_8
   845          jmp     .LBB11_9
   846  FromInt64_F64_V(double*, long*, unsigned long):               # @FromInt64_F64_V(double*, long*, unsigned long)
   847          testq   %rdx, %rdx
   848          je      .LBB12_11
   849          cmpq    $16, %rdx
   850          jae     .LBB12_3
   851          xorl    %r10d, %r10d
   852          jmp     .LBB12_10
   853  .LBB12_3:
   854          movq    %rdx, %r10
   855          andq    $-16, %r10
   856          leaq    -16(%r10), %rcx
   857          movq    %rcx, %r8
   858          shrq    $4, %r8
   859          addq    $1, %r8
   860          testq   %rcx, %rcx
   861          je      .LBB12_4
   862          movq    %r8, %r9
   863          andq    $-2, %r9
   864          xorl    %ecx, %ecx
   865  .LBB12_6:                               # =>This Inner Loop Header: Depth=1
   866          vmovdqu (%rsi,%rcx,8), %xmm0
   867          vmovdqu 16(%rsi,%rcx,8), %xmm1
   868          vpextrq $1, %xmm0, %rax
   869          vcvtsi2sd       %rax, %xmm11, %xmm2
   870          vmovdqu 32(%rsi,%rcx,8), %xmm3
   871          vmovq   %xmm0, %rax
   872          vcvtsi2sd       %rax, %xmm11, %xmm0
   873          vpextrq $1, %xmm1, %rax
   874          vcvtsi2sd       %rax, %xmm11, %xmm4
   875          vmovdqu 48(%rsi,%rcx,8), %xmm5
   876          vmovq   %xmm1, %rax
   877          vcvtsi2sd       %rax, %xmm11, %xmm1
   878          vpextrq $1, %xmm5, %rax
   879          vcvtsi2sd       %rax, %xmm11, %xmm6
   880          vunpcklpd       %xmm2, %xmm0, %xmm8     # xmm8 = xmm0[0],xmm2[0]
   881          vmovq   %xmm5, %rax
   882          vcvtsi2sd       %rax, %xmm11, %xmm2
   883          vpextrq $1, %xmm3, %rax
   884          vcvtsi2sd       %rax, %xmm11, %xmm5
   885          vunpcklpd       %xmm4, %xmm1, %xmm10    # xmm10 = xmm1[0],xmm4[0]
   886          vmovq   %xmm3, %rax
   887          vcvtsi2sd       %rax, %xmm11, %xmm3
   888          vunpcklpd       %xmm6, %xmm2, %xmm9     # xmm9 = xmm2[0],xmm6[0]
   889          vmovdqu 80(%rsi,%rcx,8), %xmm4
   890          vpextrq $1, %xmm4, %rax
   891          vunpcklpd       %xmm5, %xmm3, %xmm3     # xmm3 = xmm3[0],xmm5[0]
   892          vcvtsi2sd       %rax, %xmm11, %xmm5
   893          vmovq   %xmm4, %rax
   894          vcvtsi2sd       %rax, %xmm11, %xmm4
   895          vunpcklpd       %xmm5, %xmm4, %xmm4     # xmm4 = xmm4[0],xmm5[0]
   896          vmovdqu 64(%rsi,%rcx,8), %xmm5
   897          vpextrq $1, %xmm5, %rax
   898          vcvtsi2sd       %rax, %xmm11, %xmm6
   899          vmovq   %xmm5, %rax
   900          vcvtsi2sd       %rax, %xmm11, %xmm5
   901          vmovdqu 112(%rsi,%rcx,8), %xmm7
   902          vpextrq $1, %xmm7, %rax
   903          vcvtsi2sd       %rax, %xmm11, %xmm0
   904          vmovq   %xmm7, %rax
   905          vcvtsi2sd       %rax, %xmm11, %xmm7
   906          vmovdqu 96(%rsi,%rcx,8), %xmm2
   907          vpextrq $1, %xmm2, %rax
   908          vcvtsi2sd       %rax, %xmm11, %xmm1
   909          vunpcklpd       %xmm6, %xmm5, %xmm5     # xmm5 = xmm5[0],xmm6[0]
   910          vmovq   %xmm2, %rax
   911          vcvtsi2sd       %rax, %xmm11, %xmm2
   912          vunpcklpd       %xmm0, %xmm7, %xmm0     # xmm0 = xmm7[0],xmm0[0]
   913          vunpcklpd       %xmm1, %xmm2, %xmm1     # xmm1 = xmm2[0],xmm1[0]
   914          vmovupd %xmm10, 16(%rdi,%rcx,8)
   915          vmovupd %xmm8, (%rdi,%rcx,8)
   916          vmovupd %xmm3, 32(%rdi,%rcx,8)
   917          vmovupd %xmm9, 48(%rdi,%rcx,8)
   918          vmovupd %xmm5, 64(%rdi,%rcx,8)
   919          vmovupd %xmm4, 80(%rdi,%rcx,8)
   920          vmovupd %xmm1, 96(%rdi,%rcx,8)
   921          vmovupd %xmm0, 112(%rdi,%rcx,8)
   922          vmovdqu 128(%rsi,%rcx,8), %xmm0
   923          vmovdqu 144(%rsi,%rcx,8), %xmm1
   924          vpextrq $1, %xmm0, %rax
   925          vcvtsi2sd       %rax, %xmm11, %xmm2
   926          vmovdqu 160(%rsi,%rcx,8), %xmm3
   927          vmovq   %xmm0, %rax
   928          vcvtsi2sd       %rax, %xmm11, %xmm0
   929          vpextrq $1, %xmm1, %rax
   930          vcvtsi2sd       %rax, %xmm11, %xmm4
   931          vmovdqu 176(%rsi,%rcx,8), %xmm5
   932          vmovq   %xmm1, %rax
   933          vcvtsi2sd       %rax, %xmm11, %xmm1
   934          vpextrq $1, %xmm5, %rax
   935          vcvtsi2sd       %rax, %xmm11, %xmm6
   936          vunpcklpd       %xmm2, %xmm0, %xmm8     # xmm8 = xmm0[0],xmm2[0]
   937          vmovq   %xmm5, %rax
   938          vcvtsi2sd       %rax, %xmm11, %xmm2
   939          vpextrq $1, %xmm3, %rax
   940          vcvtsi2sd       %rax, %xmm11, %xmm5
   941          vunpcklpd       %xmm4, %xmm1, %xmm10    # xmm10 = xmm1[0],xmm4[0]
   942          vmovq   %xmm3, %rax
   943          vcvtsi2sd       %rax, %xmm11, %xmm3
   944          vunpcklpd       %xmm6, %xmm2, %xmm9     # xmm9 = xmm2[0],xmm6[0]
   945          vmovdqu 208(%rsi,%rcx,8), %xmm4
   946          vpextrq $1, %xmm4, %rax
   947          vunpcklpd       %xmm5, %xmm3, %xmm3     # xmm3 = xmm3[0],xmm5[0]
   948          vcvtsi2sd       %rax, %xmm11, %xmm5
   949          vmovq   %xmm4, %rax
   950          vcvtsi2sd       %rax, %xmm11, %xmm4
   951          vunpcklpd       %xmm5, %xmm4, %xmm4     # xmm4 = xmm4[0],xmm5[0]
   952          vmovdqu 192(%rsi,%rcx,8), %xmm5
   953          vpextrq $1, %xmm5, %rax
   954          vcvtsi2sd       %rax, %xmm11, %xmm6
   955          vmovq   %xmm5, %rax
   956          vcvtsi2sd       %rax, %xmm11, %xmm5
   957          vmovdqu 240(%rsi,%rcx,8), %xmm7
   958          vpextrq $1, %xmm7, %rax
   959          vcvtsi2sd       %rax, %xmm11, %xmm0
   960          vmovq   %xmm7, %rax
   961          vcvtsi2sd       %rax, %xmm11, %xmm7
   962          vmovdqu 224(%rsi,%rcx,8), %xmm2
   963          vpextrq $1, %xmm2, %rax
   964          vcvtsi2sd       %rax, %xmm11, %xmm1
   965          vunpcklpd       %xmm6, %xmm5, %xmm5     # xmm5 = xmm5[0],xmm6[0]
   966          vmovq   %xmm2, %rax
   967          vcvtsi2sd       %rax, %xmm11, %xmm2
   968          vunpcklpd       %xmm0, %xmm7, %xmm0     # xmm0 = xmm7[0],xmm0[0]
   969          vunpcklpd       %xmm1, %xmm2, %xmm1     # xmm1 = xmm2[0],xmm1[0]
   970          vmovupd %xmm10, 144(%rdi,%rcx,8)
   971          vmovupd %xmm8, 128(%rdi,%rcx,8)
   972          vmovupd %xmm3, 160(%rdi,%rcx,8)
   973          vmovupd %xmm9, 176(%rdi,%rcx,8)
   974          vmovupd %xmm5, 192(%rdi,%rcx,8)
   975          vmovupd %xmm4, 208(%rdi,%rcx,8)
   976          vmovupd %xmm1, 224(%rdi,%rcx,8)
   977          vmovupd %xmm0, 240(%rdi,%rcx,8)
   978          addq    $32, %rcx
   979          addq    $-2, %r9
   980          jne     .LBB12_6
   981          testb   $1, %r8b
   982          je      .LBB12_9
   983  .LBB12_8:
   984          vmovdqu (%rsi,%rcx,8), %xmm0
   985          vmovdqu 16(%rsi,%rcx,8), %xmm1
   986          vmovdqu 32(%rsi,%rcx,8), %xmm3
   987          vmovdqu 48(%rsi,%rcx,8), %xmm2
   988          vpextrq $1, %xmm0, %rax
   989          vcvtsi2sd       %rax, %xmm11, %xmm4
   990          vmovq   %xmm0, %rax
   991          vcvtsi2sd       %rax, %xmm11, %xmm0
   992          vunpcklpd       %xmm4, %xmm0, %xmm8     # xmm8 = xmm0[0],xmm4[0]
   993          vpextrq $1, %xmm1, %rax
   994          vcvtsi2sd       %rax, %xmm11, %xmm4
   995          vmovq   %xmm1, %rax
   996          vcvtsi2sd       %rax, %xmm11, %xmm1
   997          vunpcklpd       %xmm4, %xmm1, %xmm1     # xmm1 = xmm1[0],xmm4[0]
   998          vpextrq $1, %xmm2, %rax
   999          vcvtsi2sd       %rax, %xmm11, %xmm4
  1000          vmovq   %xmm2, %rax
  1001          vcvtsi2sd       %rax, %xmm11, %xmm2
  1002          vunpcklpd       %xmm4, %xmm2, %xmm2     # xmm2 = xmm2[0],xmm4[0]
  1003          vpextrq $1, %xmm3, %rax
  1004          vcvtsi2sd       %rax, %xmm11, %xmm4
  1005          vmovq   %xmm3, %rax
  1006          vcvtsi2sd       %rax, %xmm11, %xmm3
  1007          vmovdqu 80(%rsi,%rcx,8), %xmm5
  1008          vpextrq $1, %xmm5, %rax
  1009          vcvtsi2sd       %rax, %xmm11, %xmm6
  1010          vmovq   %xmm5, %rax
  1011          vcvtsi2sd       %rax, %xmm11, %xmm5
  1012          vmovdqu 64(%rsi,%rcx,8), %xmm7
  1013          vpextrq $1, %xmm7, %rax
  1014          vcvtsi2sd       %rax, %xmm11, %xmm0
  1015          vunpcklpd       %xmm4, %xmm3, %xmm3     # xmm3 = xmm3[0],xmm4[0]
  1016          vmovq   %xmm7, %rax
  1017          vcvtsi2sd       %rax, %xmm11, %xmm4
  1018          vunpcklpd       %xmm6, %xmm5, %xmm5     # xmm5 = xmm5[0],xmm6[0]
  1019          vmovdqu 112(%rsi,%rcx,8), %xmm6
  1020          vpextrq $1, %xmm6, %rax
  1021          vunpcklpd       %xmm0, %xmm4, %xmm0     # xmm0 = xmm4[0],xmm0[0]
  1022          vcvtsi2sd       %rax, %xmm11, %xmm4
  1023          vmovq   %xmm6, %rax
  1024          vcvtsi2sd       %rax, %xmm11, %xmm6
  1025          vunpcklpd       %xmm4, %xmm6, %xmm4     # xmm4 = xmm6[0],xmm4[0]
  1026          vmovdqu 96(%rsi,%rcx,8), %xmm6
  1027          vpextrq $1, %xmm6, %rax
  1028          vcvtsi2sd       %rax, %xmm11, %xmm7
  1029          vmovq   %xmm6, %rax
  1030          vcvtsi2sd       %rax, %xmm11, %xmm6
  1031          vunpcklpd       %xmm7, %xmm6, %xmm6     # xmm6 = xmm6[0],xmm7[0]
  1032          vmovupd %xmm1, 16(%rdi,%rcx,8)
  1033          vmovupd %xmm8, (%rdi,%rcx,8)
  1034          vmovupd %xmm3, 32(%rdi,%rcx,8)
  1035          vmovupd %xmm2, 48(%rdi,%rcx,8)
  1036          vmovupd %xmm0, 64(%rdi,%rcx,8)
  1037          vmovupd %xmm5, 80(%rdi,%rcx,8)
  1038          vmovupd %xmm6, 96(%rdi,%rcx,8)
  1039          vmovupd %xmm4, 112(%rdi,%rcx,8)
  1040  .LBB12_9:
  1041          cmpq    %rdx, %r10
  1042          je      .LBB12_11
  1043  .LBB12_10:                              # =>This Inner Loop Header: Depth=1
  1044          vcvtsi2sdq      (%rsi,%r10,8), %xmm11, %xmm0
  1045          vmovsd  %xmm0, (%rdi,%r10,8)
  1046          addq    $1, %r10
  1047          cmpq    %r10, %rdx
  1048          jne     .LBB12_10
  1049  .LBB12_11:
  1050          retq
  1051  .LBB12_4:
  1052          xorl    %ecx, %ecx
  1053          testb   $1, %r8b
  1054          jne     .LBB12_8
  1055          jmp     .LBB12_9
  1056  FromInt64_F32_V(float*, long*, unsigned long):               # @FromInt64_F32_V(float*, long*, unsigned long)
  1057          testq   %rdx, %rdx
  1058          je      .LBB13_11
  1059          cmpq    $16, %rdx
  1060          jae     .LBB13_3
  1061          xorl    %r11d, %r11d
  1062          jmp     .LBB13_10
  1063  .LBB13_3:
  1064          movq    %rdx, %r11
  1065          andq    $-16, %r11
  1066          leaq    -16(%r11), %rcx
  1067          movq    %rcx, %r8
  1068          shrq    $4, %r8
  1069          addq    $1, %r8
  1070          testq   %rcx, %rcx
  1071          je      .LBB13_4
  1072          movq    %r8, %r9
  1073          andq    $-2, %r9
  1074          xorl    %ecx, %ecx
  1075  .LBB13_6:                               # =>This Inner Loop Header: Depth=1
  1076          vmovdqu (%rsi,%rcx,8), %xmm0
  1077          vpextrq $1, %xmm0, %r10
  1078          vmovdqu 16(%rsi,%rcx,8), %xmm1
  1079          vcvtsi2ss       %r10, %xmm8, %xmm2
  1080          vmovq   %xmm0, %rax
  1081          vcvtsi2ss       %rax, %xmm8, %xmm0
  1082          vmovq   %xmm1, %rax
  1083          vcvtsi2ss       %rax, %xmm8, %xmm3
  1084          vpextrq $1, %xmm1, %rax
  1085          vcvtsi2ss       %rax, %xmm8, %xmm1
  1086          vmovdqu 32(%rsi,%rcx,8), %xmm4
  1087          vpextrq $1, %xmm4, %rax
  1088          vmovdqu 48(%rsi,%rcx,8), %xmm5
  1089          vcvtsi2ss       %rax, %xmm8, %xmm6
  1090          vmovq   %xmm4, %rax
  1091          vcvtsi2ss       %rax, %xmm8, %xmm4
  1092          vmovq   %xmm5, %rax
  1093          vcvtsi2ss       %rax, %xmm8, %xmm7
  1094          vinsertps       $16, %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0],xmm0[2,3]
  1095          vinsertps       $32, %xmm3, %xmm0, %xmm0 # xmm0 = xmm0[0,1],xmm3[0],xmm0[3]
  1096          vpextrq $1, %xmm5, %rax
  1097          vinsertps       $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0]
  1098          vcvtsi2ss       %rax, %xmm8, %xmm1
  1099          vinsertps       $16, %xmm6, %xmm4, %xmm2 # xmm2 = xmm4[0],xmm6[0],xmm4[2,3]
  1100          vmovdqu 64(%rsi,%rcx,8), %xmm3
  1101          vpextrq $1, %xmm3, %rax
  1102          vcvtsi2ss       %rax, %xmm8, %xmm4
  1103          vmovq   %xmm3, %rax
  1104          vcvtsi2ss       %rax, %xmm8, %xmm3
  1105          vmovdqu 80(%rsi,%rcx,8), %xmm5
  1106          vmovq   %xmm5, %rax
  1107          vcvtsi2ss       %rax, %xmm8, %xmm6
  1108          vinsertps       $32, %xmm7, %xmm2, %xmm2 # xmm2 = xmm2[0,1],xmm7[0],xmm2[3]
  1109          vinsertps       $48, %xmm1, %xmm2, %xmm1 # xmm1 = xmm2[0,1,2],xmm1[0]
  1110          vpextrq $1, %xmm5, %rax
  1111          vinsertps       $16, %xmm4, %xmm3, %xmm2 # xmm2 = xmm3[0],xmm4[0],xmm3[2,3]
  1112          vcvtsi2ss       %rax, %xmm8, %xmm3
  1113          vinsertps       $32, %xmm6, %xmm2, %xmm2 # xmm2 = xmm2[0,1],xmm6[0],xmm2[3]
  1114          vmovdqu 96(%rsi,%rcx,8), %xmm4
  1115          vpextrq $1, %xmm4, %rax
  1116          vcvtsi2ss       %rax, %xmm8, %xmm5
  1117          vmovq   %xmm4, %rax
  1118          vcvtsi2ss       %rax, %xmm8, %xmm4
  1119          vmovdqu 112(%rsi,%rcx,8), %xmm6
  1120          vmovq   %xmm6, %rax
  1121          vcvtsi2ss       %rax, %xmm8, %xmm7
  1122          vinsertps       $48, %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[0,1,2],xmm3[0]
  1123          vinsertps       $16, %xmm5, %xmm4, %xmm3 # xmm3 = xmm4[0],xmm5[0],xmm4[2,3]
  1124          vpextrq $1, %xmm6, %rax
  1125          vinsertps       $32, %xmm7, %xmm3, %xmm3 # xmm3 = xmm3[0,1],xmm7[0],xmm3[3]
  1126          vcvtsi2ss       %rax, %xmm8, %xmm4
  1127          vinsertps       $48, %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0,1,2],xmm4[0]
  1128          vmovups %xmm0, (%rdi,%rcx,4)
  1129          vmovups %xmm1, 16(%rdi,%rcx,4)
  1130          vmovups %xmm2, 32(%rdi,%rcx,4)
  1131          vmovups %xmm3, 48(%rdi,%rcx,4)
  1132          vmovdqu 128(%rsi,%rcx,8), %xmm0
  1133          vpextrq $1, %xmm0, %rax
  1134          vmovdqu 144(%rsi,%rcx,8), %xmm1
  1135          vcvtsi2ss       %rax, %xmm8, %xmm2
  1136          vmovq   %xmm0, %rax
  1137          vcvtsi2ss       %rax, %xmm8, %xmm0
  1138          vmovq   %xmm1, %rax
  1139          vcvtsi2ss       %rax, %xmm8, %xmm3
  1140          vpextrq $1, %xmm1, %rax
  1141          vcvtsi2ss       %rax, %xmm8, %xmm1
  1142          vmovdqu 160(%rsi,%rcx,8), %xmm4
  1143          vpextrq $1, %xmm4, %rax
  1144          vcvtsi2ss       %rax, %xmm8, %xmm5
  1145          vmovq   %xmm4, %rax
  1146          vcvtsi2ss       %rax, %xmm8, %xmm4
  1147          vinsertps       $16, %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0],xmm0[2,3]
  1148          vmovdqu 176(%rsi,%rcx,8), %xmm2
  1149          vpextrq $1, %xmm2, %r10
  1150          vmovq   %xmm2, %rax
  1151          vcvtsi2ss       %rax, %xmm8, %xmm2
  1152          vinsertps       $32, %xmm3, %xmm0, %xmm0 # xmm0 = xmm0[0,1],xmm3[0],xmm0[3]
  1153          vcvtsi2ss       %r10, %xmm8, %xmm3
  1154          vinsertps       $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0]
  1155          vmovdqu 192(%rsi,%rcx,8), %xmm1
  1156          vpextrq $1, %xmm1, %rax
  1157          vinsertps       $16, %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0],xmm4[2,3]
  1158          vcvtsi2ss       %rax, %xmm8, %xmm5
  1159          vmovq   %xmm1, %rax
  1160          vcvtsi2ss       %rax, %xmm8, %xmm1
  1161          vinsertps       $32, %xmm2, %xmm4, %xmm2 # xmm2 = xmm4[0,1],xmm2[0],xmm4[3]
  1162          vmovdqu 208(%rsi,%rcx,8), %xmm4
  1163          vpextrq $1, %xmm4, %r10
  1164          vmovq   %xmm4, %rax
  1165          vcvtsi2ss       %rax, %xmm8, %xmm4
  1166          vinsertps       $48, %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[0,1,2],xmm3[0]
  1167          vcvtsi2ss       %r10, %xmm8, %xmm3
  1168          vinsertps       $16, %xmm5, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm5[0],xmm1[2,3]
  1169          vmovdqu 224(%rsi,%rcx,8), %xmm5
  1170          vpextrq $1, %xmm5, %rax
  1171          vinsertps       $32, %xmm4, %xmm1, %xmm1 # xmm1 = xmm1[0,1],xmm4[0],xmm1[3]
  1172          vcvtsi2ss       %rax, %xmm8, %xmm4
  1173          vmovq   %xmm5, %rax
  1174          vcvtsi2ss       %rax, %xmm8, %xmm5
  1175          vinsertps       $48, %xmm3, %xmm1, %xmm1 # xmm1 = xmm1[0,1,2],xmm3[0]
  1176          vmovdqu 240(%rsi,%rcx,8), %xmm3
  1177          vpextrq $1, %xmm3, %r10
  1178          vmovq   %xmm3, %rax
  1179          vcvtsi2ss       %rax, %xmm8, %xmm3
  1180          vinsertps       $16, %xmm4, %xmm5, %xmm4 # xmm4 = xmm5[0],xmm4[0],xmm5[2,3]
  1181          vcvtsi2ss       %r10, %xmm8, %xmm5
  1182          vinsertps       $32, %xmm3, %xmm4, %xmm3 # xmm3 = xmm4[0,1],xmm3[0],xmm4[3]
  1183          vinsertps       $48, %xmm5, %xmm3, %xmm3 # xmm3 = xmm3[0,1,2],xmm5[0]
  1184          vmovups %xmm0, 64(%rdi,%rcx,4)
  1185          vmovups %xmm2, 80(%rdi,%rcx,4)
  1186          vmovups %xmm1, 96(%rdi,%rcx,4)
  1187          vmovups %xmm3, 112(%rdi,%rcx,4)
  1188          addq    $32, %rcx
  1189          addq    $-2, %r9
  1190          jne     .LBB13_6
  1191          testb   $1, %r8b
  1192          je      .LBB13_9
  1193  .LBB13_8:
  1194          vmovdqu (%rsi,%rcx,8), %xmm0
  1195          vpextrq $1, %xmm0, %rax
  1196          vmovdqu 16(%rsi,%rcx,8), %xmm1
  1197          vcvtsi2ss       %rax, %xmm8, %xmm2
  1198          vmovq   %xmm0, %rax
  1199          vcvtsi2ss       %rax, %xmm8, %xmm0
  1200          vmovq   %xmm1, %rax
  1201          vcvtsi2ss       %rax, %xmm8, %xmm3
  1202          vpextrq $1, %xmm1, %rax
  1203          vcvtsi2ss       %rax, %xmm8, %xmm1
  1204          vmovdqu 32(%rsi,%rcx,8), %xmm4
  1205          vmovdqu 48(%rsi,%rcx,8), %xmm5
  1206          vpextrq $1, %xmm4, %rax
  1207          vinsertps       $16, %xmm2, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm2[0],xmm0[2,3]
  1208          vcvtsi2ss       %rax, %xmm8, %xmm2
  1209          vmovq   %xmm4, %rax
  1210          vcvtsi2ss       %rax, %xmm8, %xmm4
  1211          vmovq   %xmm5, %rax
  1212          vcvtsi2ss       %rax, %xmm8, %xmm6
  1213          vinsertps       $32, %xmm3, %xmm0, %xmm0 # xmm0 = xmm0[0,1],xmm3[0],xmm0[3]
  1214          vinsertps       $48, %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2],xmm1[0]
  1215          vpextrq $1, %xmm5, %rax
  1216          vinsertps       $16, %xmm2, %xmm4, %xmm1 # xmm1 = xmm4[0],xmm2[0],xmm4[2,3]
  1217          vcvtsi2ss       %rax, %xmm8, %xmm2
  1218          vinsertps       $32, %xmm6, %xmm1, %xmm1 # xmm1 = xmm1[0,1],xmm6[0],xmm1[3]
  1219          vmovdqu 64(%rsi,%rcx,8), %xmm3
  1220          vpextrq $1, %xmm3, %rax
  1221          vcvtsi2ss       %rax, %xmm8, %xmm4
  1222          vmovq   %xmm3, %rax
  1223          vcvtsi2ss       %rax, %xmm8, %xmm3
  1224          vmovdqu 80(%rsi,%rcx,8), %xmm5
  1225          vmovq   %xmm5, %rax
  1226          vcvtsi2ss       %rax, %xmm8, %xmm6
  1227          vinsertps       $48, %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0,1,2],xmm2[0]
  1228          vinsertps       $16, %xmm4, %xmm3, %xmm2 # xmm2 = xmm3[0],xmm4[0],xmm3[2,3]
  1229          vpextrq $1, %xmm5, %rax
  1230          vinsertps       $32, %xmm6, %xmm2, %xmm2 # xmm2 = xmm2[0,1],xmm6[0],xmm2[3]
  1231          vcvtsi2ss       %rax, %xmm8, %xmm3
  1232          vinsertps       $48, %xmm3, %xmm2, %xmm2 # xmm2 = xmm2[0,1,2],xmm3[0]
  1233          vmovdqu 96(%rsi,%rcx,8), %xmm3
  1234          vpextrq $1, %xmm3, %rax
  1235          vcvtsi2ss       %rax, %xmm8, %xmm4
  1236          vmovq   %xmm3, %rax
  1237          vcvtsi2ss       %rax, %xmm8, %xmm3
  1238          vmovdqu 112(%rsi,%rcx,8), %xmm5
  1239          vmovq   %xmm5, %rax
  1240          vcvtsi2ss       %rax, %xmm8, %xmm6
  1241          vinsertps       $16, %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0],xmm4[0],xmm3[2,3]
  1242          vinsertps       $32, %xmm6, %xmm3, %xmm3 # xmm3 = xmm3[0,1],xmm6[0],xmm3[3]
  1243          vpextrq $1, %xmm5, %rax
  1244          vcvtsi2ss       %rax, %xmm8, %xmm4
  1245          vinsertps       $48, %xmm4, %xmm3, %xmm3 # xmm3 = xmm3[0,1,2],xmm4[0]
  1246          vmovups %xmm0, (%rdi,%rcx,4)
  1247          vmovups %xmm1, 16(%rdi,%rcx,4)
  1248          vmovups %xmm2, 32(%rdi,%rcx,4)
  1249          vmovups %xmm3, 48(%rdi,%rcx,4)
  1250  .LBB13_9:
  1251          cmpq    %rdx, %r11
  1252          je      .LBB13_11
  1253  .LBB13_10:                              # =>This Inner Loop Header: Depth=1
  1254          vcvtsi2ssq      (%rsi,%r11,8), %xmm8, %xmm0
  1255          vmovss  %xmm0, (%rdi,%r11,4)
  1256          addq    $1, %r11
  1257          cmpq    %r11, %rdx
  1258          jne     .LBB13_10
  1259  .LBB13_11:
  1260          retq
  1261  .LBB13_4:
  1262          xorl    %ecx, %ecx
  1263          testb   $1, %r8b
  1264          jne     .LBB13_8
  1265          jmp     .LBB13_9
  1266  FromInt32_F64_V(double*, int*, unsigned long):               # @FromInt32_F64_V(double*, int*, unsigned long)
  1267          testq   %rdx, %rdx
  1268          je      .LBB14_11
  1269          cmpq    $16, %rdx
  1270          jae     .LBB14_3
  1271          xorl    %eax, %eax
  1272          jmp     .LBB14_10
  1273  .LBB14_3:
  1274          movq    %rdx, %rax
  1275          andq    $-16, %rax
  1276          leaq    -16(%rax), %rcx
  1277          movq    %rcx, %r8
  1278          shrq    $4, %r8
  1279          addq    $1, %r8
  1280          testq   %rcx, %rcx
  1281          je      .LBB14_4
  1282          movq    %r8, %r9
  1283          andq    $-2, %r9
  1284          xorl    %ecx, %ecx
  1285  .LBB14_6:                               # =>This Inner Loop Header: Depth=1
  1286          vcvtdq2pd       (%rsi,%rcx,4), %ymm0
  1287          vcvtdq2pd       16(%rsi,%rcx,4), %ymm1
  1288          vcvtdq2pd       32(%rsi,%rcx,4), %ymm2
  1289          vcvtdq2pd       48(%rsi,%rcx,4), %ymm3
  1290          vmovups %ymm0, (%rdi,%rcx,8)
  1291          vmovups %ymm1, 32(%rdi,%rcx,8)
  1292          vmovups %ymm2, 64(%rdi,%rcx,8)
  1293          vmovups %ymm3, 96(%rdi,%rcx,8)
  1294          vcvtdq2pd       64(%rsi,%rcx,4), %ymm0
  1295          vcvtdq2pd       80(%rsi,%rcx,4), %ymm1
  1296          vcvtdq2pd       96(%rsi,%rcx,4), %ymm2
  1297          vcvtdq2pd       112(%rsi,%rcx,4), %ymm3
  1298          vmovupd %ymm0, 128(%rdi,%rcx,8)
  1299          vmovups %ymm1, 160(%rdi,%rcx,8)
  1300          vmovups %ymm2, 192(%rdi,%rcx,8)
  1301          vmovups %ymm3, 224(%rdi,%rcx,8)
  1302          addq    $32, %rcx
  1303          addq    $-2, %r9
  1304          jne     .LBB14_6
  1305          testb   $1, %r8b
  1306          je      .LBB14_9
  1307  .LBB14_8:
  1308          vcvtdq2pd       (%rsi,%rcx,4), %ymm0
  1309          vcvtdq2pd       16(%rsi,%rcx,4), %ymm1
  1310          vcvtdq2pd       32(%rsi,%rcx,4), %ymm2
  1311          vcvtdq2pd       48(%rsi,%rcx,4), %ymm3
  1312          vmovupd %ymm0, (%rdi,%rcx,8)
  1313          vmovups %ymm1, 32(%rdi,%rcx,8)
  1314          vmovups %ymm2, 64(%rdi,%rcx,8)
  1315          vmovups %ymm3, 96(%rdi,%rcx,8)
  1316  .LBB14_9:
  1317          cmpq    %rdx, %rax
  1318          je      .LBB14_11
  1319  .LBB14_10:                              # =>This Inner Loop Header: Depth=1
  1320          vcvtsi2sdl      (%rsi,%rax,4), %xmm4, %xmm0
  1321          vmovsd  %xmm0, (%rdi,%rax,8)
  1322          addq    $1, %rax
  1323          cmpq    %rax, %rdx
  1324          jne     .LBB14_10
  1325  .LBB14_11:
  1326          vzeroupper
  1327          retq
  1328  .LBB14_4:
  1329          xorl    %ecx, %ecx
  1330          testb   $1, %r8b
  1331          jne     .LBB14_8
  1332          jmp     .LBB14_9
  1333  FromInt32_F32_V(float*, int*, unsigned long):               # @FromInt32_F32_V(float*, int*, unsigned long)
  1334          testq   %rdx, %rdx
  1335          je      .LBB15_11
  1336          cmpq    $32, %rdx
  1337          jae     .LBB15_3
  1338          xorl    %eax, %eax
  1339          jmp     .LBB15_10
  1340  .LBB15_3:
  1341          movq    %rdx, %rax
  1342          andq    $-32, %rax
  1343          leaq    -32(%rax), %rcx
  1344          movq    %rcx, %r8
  1345          shrq    $5, %r8
  1346          addq    $1, %r8
  1347          testq   %rcx, %rcx
  1348          je      .LBB15_4
  1349          movq    %r8, %r9
  1350          andq    $-2, %r9
  1351          xorl    %ecx, %ecx
  1352  .LBB15_6:                               # =>This Inner Loop Header: Depth=1
  1353          vcvtdq2ps       (%rsi,%rcx,4), %ymm0
  1354          vcvtdq2ps       32(%rsi,%rcx,4), %ymm1
  1355          vcvtdq2ps       64(%rsi,%rcx,4), %ymm2
  1356          vcvtdq2ps       96(%rsi,%rcx,4), %ymm3
  1357          vmovups %ymm0, (%rdi,%rcx,4)
  1358          vmovups %ymm1, 32(%rdi,%rcx,4)
  1359          vmovups %ymm2, 64(%rdi,%rcx,4)
  1360          vmovups %ymm3, 96(%rdi,%rcx,4)
  1361          vcvtdq2ps       128(%rsi,%rcx,4), %ymm0
  1362          vcvtdq2ps       160(%rsi,%rcx,4), %ymm1
  1363          vcvtdq2ps       192(%rsi,%rcx,4), %ymm2
  1364          vcvtdq2ps       224(%rsi,%rcx,4), %ymm3
  1365          vmovups %ymm0, 128(%rdi,%rcx,4)
  1366          vmovups %ymm1, 160(%rdi,%rcx,4)
  1367          vmovups %ymm2, 192(%rdi,%rcx,4)
  1368          vmovups %ymm3, 224(%rdi,%rcx,4)
  1369          addq    $64, %rcx
  1370          addq    $-2, %r9
  1371          jne     .LBB15_6
  1372          testb   $1, %r8b
  1373          je      .LBB15_9
  1374  .LBB15_8:
  1375          vcvtdq2ps       (%rsi,%rcx,4), %ymm0
  1376          vcvtdq2ps       32(%rsi,%rcx,4), %ymm1
  1377          vcvtdq2ps       64(%rsi,%rcx,4), %ymm2
  1378          vcvtdq2ps       96(%rsi,%rcx,4), %ymm3
  1379          vmovups %ymm0, (%rdi,%rcx,4)
  1380          vmovups %ymm1, 32(%rdi,%rcx,4)
  1381          vmovups %ymm2, 64(%rdi,%rcx,4)
  1382          vmovups %ymm3, 96(%rdi,%rcx,4)
  1383  .LBB15_9:
  1384          cmpq    %rdx, %rax
  1385          je      .LBB15_11
  1386  .LBB15_10:                              # =>This Inner Loop Header: Depth=1
  1387          vcvtsi2ssl      (%rsi,%rax,4), %xmm4, %xmm0
  1388          vmovss  %xmm0, (%rdi,%rax,4)
  1389          addq    $1, %rax
  1390          cmpq    %rax, %rdx
  1391          jne     .LBB15_10
  1392  .LBB15_11:
  1393          vzeroupper
  1394          retq
  1395  .LBB15_4:
  1396          xorl    %ecx, %ecx
  1397          testb   $1, %r8b
  1398          jne     .LBB15_8
  1399          jmp     .LBB15_9
  1400  .LCPI16_0:
  1401          .byte   1                               # 0x1
  1402          .byte   1                               # 0x1
  1403          .byte   1                               # 0x1
  1404          .byte   1                               # 0x1
  1405          .zero   1
  1406          .zero   1
  1407          .zero   1
  1408          .zero   1
  1409          .zero   1
  1410          .zero   1
  1411          .zero   1
  1412          .zero   1
  1413          .zero   1
  1414          .zero   1
  1415          .zero   1
  1416          .zero   1
  1417  ToBool_F64_V(bool*, double*, unsigned long):                  # @ToBool_F64_V(bool*, double*, unsigned long)
  1418          testq   %rdx, %rdx
  1419          je      .LBB16_8
  1420          cmpq    $16, %rdx
  1421          jae     .LBB16_3
  1422          xorl    %eax, %eax
  1423          jmp     .LBB16_6
  1424  .LBB16_3:
  1425          movq    %rdx, %rax
  1426          andq    $-16, %rax
  1427          xorl    %ecx, %ecx
  1428          vxorpd  %xmm0, %xmm0, %xmm0
  1429          vmovdqa .LCPI16_0(%rip), %xmm1          # xmm1 = <1,1,1,1,u,u,u,u,u,u,u,u,u,u,u,u>
  1430  .LBB16_4:                               # =>This Inner Loop Header: Depth=1
  1431          vcmpneqpd       (%rsi,%rcx,8), %ymm0, %ymm2
  1432          vextractf128    $1, %ymm2, %xmm3
  1433          vpackssdw       %xmm3, %xmm2, %xmm2
  1434          vpackssdw       %xmm2, %xmm2, %xmm2
  1435          vpacksswb       %xmm2, %xmm2, %xmm2
  1436          vcmpneqpd       32(%rsi,%rcx,8), %ymm0, %ymm3
  1437          vpand   %xmm1, %xmm2, %xmm2
  1438          vextractf128    $1, %ymm3, %xmm4
  1439          vpackssdw       %xmm4, %xmm3, %xmm3
  1440          vpackssdw       %xmm3, %xmm3, %xmm3
  1441          vpacksswb       %xmm3, %xmm3, %xmm3
  1442          vpand   %xmm1, %xmm3, %xmm3
  1443          vcmpneqpd       64(%rsi,%rcx,8), %ymm0, %ymm4
  1444          vpunpckldq      %xmm3, %xmm2, %xmm2     # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
  1445          vextractf128    $1, %ymm4, %xmm3
  1446          vpackssdw       %xmm3, %xmm4, %xmm3
  1447          vpackssdw       %xmm3, %xmm3, %xmm3
  1448          vpacksswb       %xmm3, %xmm3, %xmm3
  1449          vpand   %xmm1, %xmm3, %xmm3
  1450          vcmpneqpd       96(%rsi,%rcx,8), %ymm0, %ymm4
  1451          vextractf128    $1, %ymm4, %xmm5
  1452          vpackssdw       %xmm5, %xmm4, %xmm4
  1453          vpackssdw       %xmm4, %xmm4, %xmm4
  1454          vpacksswb       %xmm4, %xmm4, %xmm4
  1455          vpand   %xmm1, %xmm4, %xmm4
  1456          vpbroadcastd    %xmm4, %xmm4
  1457          vpbroadcastd    %xmm3, %xmm3
  1458          vpunpckldq      %xmm4, %xmm3, %xmm3     # xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
  1459          vpblendd        $12, %xmm3, %xmm2, %xmm2        # xmm2 = xmm2[0,1],xmm3[2,3]
  1460          vmovdqu %xmm2, (%rdi,%rcx)
  1461          addq    $16, %rcx
  1462          cmpq    %rcx, %rax
  1463          jne     .LBB16_4
  1464          cmpq    %rdx, %rax
  1465          je      .LBB16_8
  1466  .LBB16_6:
  1467          vxorpd  %xmm0, %xmm0, %xmm0
  1468  .LBB16_7:                               # =>This Inner Loop Header: Depth=1
  1469          vucomisd        (%rsi,%rax,8), %xmm0
  1470          setne   (%rdi,%rax)
  1471          addq    $1, %rax
  1472          cmpq    %rax, %rdx
  1473          jne     .LBB16_7
  1474  .LBB16_8:
  1475          vzeroupper
  1476          retq
  1477  .LCPI17_0:
  1478          .byte   1                               # 0x1
  1479          .byte   1                               # 0x1
  1480          .byte   1                               # 0x1
  1481          .byte   1                               # 0x1
  1482          .byte   1                               # 0x1
  1483          .byte   1                               # 0x1
  1484          .byte   1                               # 0x1
  1485          .byte   1                               # 0x1
  1486          .zero   1
  1487          .zero   1
  1488          .zero   1
  1489          .zero   1
  1490          .zero   1
  1491          .zero   1
  1492          .zero   1
  1493          .zero   1
  1494  ToBool_F32_V(bool*, float*, unsigned long):                  # @ToBool_F32_V(bool*, float*, unsigned long)
  1495          testq   %rdx, %rdx
  1496          je      .LBB17_8
  1497          cmpq    $32, %rdx
  1498          jae     .LBB17_3
  1499          xorl    %eax, %eax
  1500          jmp     .LBB17_6
  1501  .LBB17_3:
  1502          movq    %rdx, %rax
  1503          andq    $-32, %rax
  1504          xorl    %ecx, %ecx
  1505          vxorps  %xmm0, %xmm0, %xmm0
  1506          vmovdqa .LCPI17_0(%rip), %xmm1          # xmm1 = <1,1,1,1,1,1,1,1,u,u,u,u,u,u,u,u>
  1507  .LBB17_4:                               # =>This Inner Loop Header: Depth=1
  1508          vcmpneqps       (%rsi,%rcx,4), %ymm0, %ymm2
  1509          vextractf128    $1, %ymm2, %xmm3
  1510          vpackssdw       %xmm3, %xmm2, %xmm2
  1511          vpacksswb       %xmm2, %xmm2, %xmm2
  1512          vcmpneqps       32(%rsi,%rcx,4), %ymm0, %ymm3
  1513          vpand   %xmm1, %xmm2, %xmm2
  1514          vextractf128    $1, %ymm3, %xmm4
  1515          vpackssdw       %xmm4, %xmm3, %xmm3
  1516          vpacksswb       %xmm3, %xmm3, %xmm3
  1517          vpand   %xmm1, %xmm3, %xmm3
  1518          vcmpneqps       64(%rsi,%rcx,4), %ymm0, %ymm4
  1519          vextractf128    $1, %ymm4, %xmm5
  1520          vpackssdw       %xmm5, %xmm4, %xmm4
  1521          vpacksswb       %xmm4, %xmm4, %xmm4
  1522          vcmpneqps       96(%rsi,%rcx,4), %ymm0, %ymm5
  1523          vpand   %xmm1, %xmm4, %xmm4
  1524          vextractf128    $1, %ymm5, %xmm6
  1525          vpackssdw       %xmm6, %xmm5, %xmm5
  1526          vpacksswb       %xmm5, %xmm5, %xmm5
  1527          vpand   %xmm1, %xmm5, %xmm5
  1528          vinserti128     $1, %xmm5, %ymm4, %ymm4
  1529          vinserti128     $1, %xmm3, %ymm2, %ymm2
  1530          vpunpcklqdq     %ymm4, %ymm2, %ymm2     # ymm2 = ymm2[0],ymm4[0],ymm2[2],ymm4[2]
  1531          vpermq  $216, %ymm2, %ymm2              # ymm2 = ymm2[0,2,1,3]
  1532          vmovdqu %ymm2, (%rdi,%rcx)
  1533          addq    $32, %rcx
  1534          cmpq    %rcx, %rax
  1535          jne     .LBB17_4
  1536          cmpq    %rdx, %rax
  1537          je      .LBB17_8
  1538  .LBB17_6:
  1539          vxorps  %xmm0, %xmm0, %xmm0
  1540  .LBB17_7:                               # =>This Inner Loop Header: Depth=1
  1541          vucomiss        (%rsi,%rax,4), %xmm0
  1542          setne   (%rdi,%rax)
  1543          addq    $1, %rax
  1544          cmpq    %rax, %rdx
  1545          jne     .LBB17_7
  1546  .LBB17_8:
  1547          vzeroupper
  1548          retq
  1549  ToInt64_F64_V(long*, double*, unsigned long):                 # @ToInt64_F64_V(long*, double*, unsigned long)
  1550          testq   %rdx, %rdx
  1551          je      .LBB18_8
  1552          leaq    -1(%rdx), %rcx
  1553          movl    %edx, %r8d
  1554          andl    $3, %r8d
  1555          cmpq    $3, %rcx
  1556          jae     .LBB18_3
  1557          xorl    %ecx, %ecx
  1558          jmp     .LBB18_5
  1559  .LBB18_3:
  1560          andq    $-4, %rdx
  1561          xorl    %ecx, %ecx
  1562  .LBB18_4:                               # =>This Inner Loop Header: Depth=1
  1563          vcvttsd2si      (%rsi,%rcx,8), %rax
  1564          movq    %rax, (%rdi,%rcx,8)
  1565          vcvttsd2si      8(%rsi,%rcx,8), %rax
  1566          movq    %rax, 8(%rdi,%rcx,8)
  1567          vcvttsd2si      16(%rsi,%rcx,8), %rax
  1568          movq    %rax, 16(%rdi,%rcx,8)
  1569          vcvttsd2si      24(%rsi,%rcx,8), %rax
  1570          movq    %rax, 24(%rdi,%rcx,8)
  1571          addq    $4, %rcx
  1572          cmpq    %rcx, %rdx
  1573          jne     .LBB18_4
  1574  .LBB18_5:
  1575          testq   %r8, %r8
  1576          je      .LBB18_8
  1577          leaq    (%rdi,%rcx,8), %rdx
  1578          leaq    (%rsi,%rcx,8), %rcx
  1579          xorl    %esi, %esi
  1580  .LBB18_7:                               # =>This Inner Loop Header: Depth=1
  1581          vcvttsd2si      (%rcx,%rsi,8), %rax
  1582          movq    %rax, (%rdx,%rsi,8)
  1583          addq    $1, %rsi
  1584          cmpq    %rsi, %r8
  1585          jne     .LBB18_7
  1586  .LBB18_8:
  1587          retq
  1588  ToInt64_F32_V(long*, float*, unsigned long):                 # @ToInt64_F32_V(long*, float*, unsigned long)
  1589          testq   %rdx, %rdx
  1590          je      .LBB19_8
  1591          leaq    -1(%rdx), %rcx
  1592          movl    %edx, %r8d
  1593          andl    $3, %r8d
  1594          cmpq    $3, %rcx
  1595          jae     .LBB19_3
  1596          xorl    %ecx, %ecx
  1597          jmp     .LBB19_5
  1598  .LBB19_3:
  1599          andq    $-4, %rdx
  1600          xorl    %ecx, %ecx
  1601  .LBB19_4:                               # =>This Inner Loop Header: Depth=1
  1602          vcvttss2si      (%rsi,%rcx,4), %rax
  1603          movq    %rax, (%rdi,%rcx,8)
  1604          vcvttss2si      4(%rsi,%rcx,4), %rax
  1605          movq    %rax, 8(%rdi,%rcx,8)
  1606          vcvttss2si      8(%rsi,%rcx,4), %rax
  1607          movq    %rax, 16(%rdi,%rcx,8)
  1608          vcvttss2si      12(%rsi,%rcx,4), %rax
  1609          movq    %rax, 24(%rdi,%rcx,8)
  1610          addq    $4, %rcx
  1611          cmpq    %rcx, %rdx
  1612          jne     .LBB19_4
  1613  .LBB19_5:
  1614          testq   %r8, %r8
  1615          je      .LBB19_8
  1616          leaq    (%rdi,%rcx,8), %rdx
  1617          leaq    (%rsi,%rcx,4), %rcx
  1618          xorl    %esi, %esi
  1619  .LBB19_7:                               # =>This Inner Loop Header: Depth=1
  1620          vcvttss2si      (%rcx,%rsi,4), %rax
  1621          movq    %rax, (%rdx,%rsi,8)
  1622          addq    $1, %rsi
  1623          cmpq    %rsi, %r8
  1624          jne     .LBB19_7
  1625  .LBB19_8:
  1626          retq
  1627  ToInt32_F64_V(int*, double*, unsigned long):                 # @ToInt32_F64_V(int*, double*, unsigned long)
  1628          testq   %rdx, %rdx
  1629          je      .LBB20_11
  1630          cmpq    $16, %rdx
  1631          jae     .LBB20_3
  1632          xorl    %eax, %eax
  1633          jmp     .LBB20_10
  1634  .LBB20_3:
  1635          movq    %rdx, %rax
  1636          andq    $-16, %rax
  1637          leaq    -16(%rax), %rcx
  1638          movq    %rcx, %r8
  1639          shrq    $4, %r8
  1640          addq    $1, %r8
  1641          testq   %rcx, %rcx
  1642          je      .LBB20_4
  1643          movq    %r8, %r9
  1644          andq    $-2, %r9
  1645          xorl    %ecx, %ecx
  1646  .LBB20_6:                               # =>This Inner Loop Header: Depth=1
  1647          vcvttpd2dqy     (%rsi,%rcx,8), %xmm0
  1648          vcvttpd2dqy     32(%rsi,%rcx,8), %xmm1
  1649          vcvttpd2dqy     64(%rsi,%rcx,8), %xmm2
  1650          vcvttpd2dqy     96(%rsi,%rcx,8), %xmm3
  1651          vmovupd %xmm0, (%rdi,%rcx,4)
  1652          vmovupd %xmm1, 16(%rdi,%rcx,4)
  1653          vmovupd %xmm2, 32(%rdi,%rcx,4)
  1654          vmovupd %xmm3, 48(%rdi,%rcx,4)
  1655          vcvttpd2dqy     128(%rsi,%rcx,8), %xmm0
  1656          vcvttpd2dqy     160(%rsi,%rcx,8), %xmm1
  1657          vcvttpd2dqy     192(%rsi,%rcx,8), %xmm2
  1658          vcvttpd2dqy     224(%rsi,%rcx,8), %xmm3
  1659          vmovupd %xmm0, 64(%rdi,%rcx,4)
  1660          vmovupd %xmm1, 80(%rdi,%rcx,4)
  1661          vmovupd %xmm2, 96(%rdi,%rcx,4)
  1662          vmovupd %xmm3, 112(%rdi,%rcx,4)
  1663          addq    $32, %rcx
  1664          addq    $-2, %r9
  1665          jne     .LBB20_6
  1666          testb   $1, %r8b
  1667          je      .LBB20_9
  1668  .LBB20_8:
  1669          vcvttpd2dqy     (%rsi,%rcx,8), %xmm0
  1670          vcvttpd2dqy     32(%rsi,%rcx,8), %xmm1
  1671          vcvttpd2dqy     64(%rsi,%rcx,8), %xmm2
  1672          vcvttpd2dqy     96(%rsi,%rcx,8), %xmm3
  1673          vmovupd %xmm0, (%rdi,%rcx,4)
  1674          vmovupd %xmm1, 16(%rdi,%rcx,4)
  1675          vmovupd %xmm2, 32(%rdi,%rcx,4)
  1676          vmovupd %xmm3, 48(%rdi,%rcx,4)
  1677  .LBB20_9:
  1678          cmpq    %rdx, %rax
  1679          je      .LBB20_11
  1680  .LBB20_10:                              # =>This Inner Loop Header: Depth=1
  1681          vcvttsd2si      (%rsi,%rax,8), %ecx
  1682          movl    %ecx, (%rdi,%rax,4)
  1683          addq    $1, %rax
  1684          cmpq    %rax, %rdx
  1685          jne     .LBB20_10
  1686  .LBB20_11:
  1687          retq
  1688  .LBB20_4:
  1689          xorl    %ecx, %ecx
  1690          testb   $1, %r8b
  1691          jne     .LBB20_8
  1692          jmp     .LBB20_9
  1693  ToInt32_F32_V(int*, float*, unsigned long):                 # @ToInt32_F32_V(int*, float*, unsigned long)
  1694          testq   %rdx, %rdx
  1695          je      .LBB21_11
  1696          cmpq    $32, %rdx
  1697          jae     .LBB21_3
  1698          xorl    %eax, %eax
  1699          jmp     .LBB21_10
  1700  .LBB21_3:
  1701          movq    %rdx, %rax
  1702          andq    $-32, %rax
  1703          leaq    -32(%rax), %rcx
  1704          movq    %rcx, %r8
  1705          shrq    $5, %r8
  1706          addq    $1, %r8
  1707          testq   %rcx, %rcx
  1708          je      .LBB21_4
  1709          movq    %r8, %r9
  1710          andq    $-2, %r9
  1711          xorl    %ecx, %ecx
  1712  .LBB21_6:                               # =>This Inner Loop Header: Depth=1
  1713          vcvttps2dq      (%rsi,%rcx,4), %ymm0
  1714          vcvttps2dq      32(%rsi,%rcx,4), %ymm1
  1715          vcvttps2dq      64(%rsi,%rcx,4), %ymm2
  1716          vcvttps2dq      96(%rsi,%rcx,4), %ymm3
  1717          vmovups %ymm0, (%rdi,%rcx,4)
  1718          vmovups %ymm1, 32(%rdi,%rcx,4)
  1719          vmovups %ymm2, 64(%rdi,%rcx,4)
  1720          vmovups %ymm3, 96(%rdi,%rcx,4)
  1721          vcvttps2dq      128(%rsi,%rcx,4), %ymm0
  1722          vcvttps2dq      160(%rsi,%rcx,4), %ymm1
  1723          vcvttps2dq      192(%rsi,%rcx,4), %ymm2
  1724          vcvttps2dq      224(%rsi,%rcx,4), %ymm3
  1725          vmovups %ymm0, 128(%rdi,%rcx,4)
  1726          vmovups %ymm1, 160(%rdi,%rcx,4)
  1727          vmovups %ymm2, 192(%rdi,%rcx,4)
  1728          vmovups %ymm3, 224(%rdi,%rcx,4)
  1729          addq    $64, %rcx
  1730          addq    $-2, %r9
  1731          jne     .LBB21_6
  1732          testb   $1, %r8b
  1733          je      .LBB21_9
  1734  .LBB21_8:
  1735          vcvttps2dq      (%rsi,%rcx,4), %ymm0
  1736          vcvttps2dq      32(%rsi,%rcx,4), %ymm1
  1737          vcvttps2dq      64(%rsi,%rcx,4), %ymm2
  1738          vcvttps2dq      96(%rsi,%rcx,4), %ymm3
  1739          vmovups %ymm0, (%rdi,%rcx,4)
  1740          vmovups %ymm1, 32(%rdi,%rcx,4)
  1741          vmovups %ymm2, 64(%rdi,%rcx,4)
  1742          vmovups %ymm3, 96(%rdi,%rcx,4)
  1743  .LBB21_9:
  1744          cmpq    %rdx, %rax
  1745          je      .LBB21_11
  1746  .LBB21_10:                              # =>This Inner Loop Header: Depth=1
  1747          vcvttss2si      (%rsi,%rax,4), %ecx
  1748          movl    %ecx, (%rdi,%rax,4)
  1749          addq    $1, %rax
  1750          cmpq    %rax, %rdx
  1751          jne     .LBB21_10
  1752  .LBB21_11:
  1753          vzeroupper
  1754          retq
  1755  .LBB21_4:
  1756          xorl    %ecx, %ecx
  1757          testb   $1, %r8b
  1758          jne     .LBB21_8
  1759          jmp     .LBB21_9