Advertisement
Guest User

Untitled

a guest
Dec 4th, 2014
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .section    __TEXT,__literal4,4byte_literals
  2.     .align  2
  3. LCPI0_0:
  4.     .long   1431655765              ## 0x55555555
  5. LCPI0_1:
  6.     .long   858993459               ## 0x33333333
  7. LCPI0_2:
  8.     .long   252645135               ## 0xf0f0f0f
  9. LCPI0_3:
  10.     .long   63                      ## 0x3f
  11.     .section    __TEXT,__text,regular,pure_instructions
  12.     .globl  v8i32-new-avx2
  13.     .align  4, 0x90
  14. v8i32-new-avx2:                                     ## @A
  15.     .cfi_startproc
  16. ## BB#0:                                ## %entry
  17.     vpsrld  $1, %ymm0, %ymm1
  18.     vpbroadcastd    LCPI0_0(%rip), %ymm2
  19.     vpand   %ymm2, %ymm1, %ymm1
  20.     vpsubd  %ymm1, %ymm0, %ymm0
  21.     vpbroadcastd    LCPI0_1(%rip), %ymm1
  22.     vpand   %ymm1, %ymm0, %ymm2
  23.     vpsrld  $2, %ymm0, %ymm0
  24.     vpand   %ymm1, %ymm0, %ymm0
  25.     vpaddd  %ymm0, %ymm2, %ymm0
  26.     vpsrld  $4, %ymm0, %ymm1
  27.     vpaddd  %ymm1, %ymm0, %ymm0
  28.     vpbroadcastd    LCPI0_2(%rip), %ymm1
  29.     vpand   %ymm1, %ymm0, %ymm0
  30.     vpsrld  $8, %ymm0, %ymm1
  31.     vpaddd  %ymm1, %ymm0, %ymm0
  32.     vpsrld  $16, %ymm0, %ymm1
  33.     vpaddd  %ymm1, %ymm0, %ymm0
  34.     vpbroadcastd    LCPI0_3(%rip), %ymm1
  35.     vpand   %ymm1, %ymm0, %ymm0
  36.     retq
  37.     .cfi_endproc
  38.  
  39.     .globl  v8i32-old-avx2
  40.     .align  4, 0x90
  41. v8i32-old-avx2:                                     ## @A
  42.     .cfi_startproc
  43. ## BB#0:                                ## %entry
  44.     vextracti128    $1, %ymm0, %xmm1
  45.     vpextrd $1, %xmm1, %eax
  46.     popcntl %eax, %eax
  47.     vmovd   %xmm1, %ecx
  48.     popcntl %ecx, %ecx
  49.     vmovd   %ecx, %xmm2
  50.     vpinsrd $1, %eax, %xmm2, %xmm2
  51.     vpextrd $2, %xmm1, %eax
  52.     popcntl %eax, %eax
  53.     vpinsrd $2, %eax, %xmm2, %xmm2
  54.     vpextrd $3, %xmm1, %eax
  55.     popcntl %eax, %eax
  56.     vpinsrd $3, %eax, %xmm2, %xmm1
  57.     vpextrd $1, %xmm0, %eax
  58.     popcntl %eax, %eax
  59.     vmovd   %xmm0, %ecx
  60.     popcntl %ecx, %ecx
  61.     vmovd   %ecx, %xmm2
  62.     vpinsrd $1, %eax, %xmm2, %xmm2
  63.     vpextrd $2, %xmm0, %eax
  64.     popcntl %eax, %eax
  65.     vpinsrd $2, %eax, %xmm2, %xmm2
  66.     vpextrd $3, %xmm0, %eax
  67.     popcntl %eax, %eax
  68.     vpinsrd $3, %eax, %xmm2, %xmm0
  69.     vinserti128 $1, %xmm1, %ymm0, %ymm0
  70.     retq
  71.     .cfi_endproc
  72.  
  73.     .align  4
  74. LCPI0_0:
  75.     .space  16,85
  76. LCPI0_1:
  77.     .space  16,51
  78. LCPI0_2:
  79.     .space  16,15
  80. LCPI0_3:
  81.     .long   63                      ## 0x3f
  82.     .long   63                      ## 0x3f
  83.     .long   63                      ## 0x3f
  84.     .long   63                      ## 0x3f
  85.     .section    __TEXT,__text,regular,pure_instructions
  86.     .globl  v8i32-new-avx1
  87.     .align  4, 0x90
  88. v8i32-new-avx1:                                     ## @A
  89.     .cfi_startproc
  90. ## BB#0:                                ## %entry
  91.     vextractf128    $1, %ymm0, %xmm1
  92.     vpsrld  $1, %xmm1, %xmm2
  93.     vmovdqa LCPI0_0(%rip), %xmm3    ## xmm3 = [1431655765,1431655765,1431655765,1431655765]
  94.     vpand   %xmm3, %xmm2, %xmm2
  95.     vpsubd  %xmm2, %xmm1, %xmm1
  96.     vmovdqa LCPI0_1(%rip), %xmm2    ## xmm2 = [858993459,858993459,858993459,858993459]
  97.     vpand   %xmm2, %xmm1, %xmm4
  98.     vpsrld  $2, %xmm1, %xmm1
  99.     vpand   %xmm2, %xmm1, %xmm1
  100.     vpaddd  %xmm1, %xmm4, %xmm1
  101.     vpsrld  $4, %xmm1, %xmm4
  102.     vpaddd  %xmm4, %xmm1, %xmm1
  103.     vmovdqa LCPI0_2(%rip), %xmm4    ## xmm4 = [252645135,252645135,252645135,252645135]
  104.     vpand   %xmm4, %xmm1, %xmm1
  105.     vpsrld  $8, %xmm1, %xmm5
  106.     vpaddd  %xmm5, %xmm1, %xmm1
  107.     vpsrld  $16, %xmm1, %xmm5
  108.     vpaddd  %xmm5, %xmm1, %xmm1
  109.     vmovdqa LCPI0_3(%rip), %xmm5    ## xmm5 = [63,63,63,63]
  110.     vpand   %xmm5, %xmm1, %xmm1
  111.     vpsrld  $1, %xmm0, %xmm6
  112.     vpand   %xmm3, %xmm6, %xmm3
  113.     vpsubd  %xmm3, %xmm0, %xmm0
  114.     vpand   %xmm2, %xmm0, %xmm3
  115.     vpsrld  $2, %xmm0, %xmm0
  116.     vpand   %xmm2, %xmm0, %xmm0
  117.     vpaddd  %xmm0, %xmm3, %xmm0
  118.     vpsrld  $4, %xmm0, %xmm2
  119.     vpaddd  %xmm2, %xmm0, %xmm0
  120.     vpand   %xmm4, %xmm0, %xmm0
  121.     vpsrld  $8, %xmm0, %xmm2
  122.     vpaddd  %xmm2, %xmm0, %xmm0
  123.     vpsrld  $16, %xmm0, %xmm2
  124.     vpaddd  %xmm2, %xmm0, %xmm0
  125.     vpand   %xmm5, %xmm0, %xmm0
  126.     vinsertf128 $1, %xmm1, %ymm0, %ymm0
  127.     retq
  128.     .cfi_endproc
  129.  
  130.     .globl  v8i32-old-avx1
  131.     .align  4, 0x90
  132. v8i32-old-avx1:                                     ## @A
  133.     .cfi_startproc
  134. ## BB#0:                                ## %entry
  135.     vextractf128    $1, %ymm0, %xmm1
  136.     vpextrd $1, %xmm1, %eax
  137.     popcntl %eax, %eax
  138.     vmovd   %xmm1, %ecx
  139.     popcntl %ecx, %ecx
  140.     vmovd   %ecx, %xmm2
  141.     vpinsrd $1, %eax, %xmm2, %xmm2
  142.     vpextrd $2, %xmm1, %eax
  143.     popcntl %eax, %eax
  144.     vpinsrd $2, %eax, %xmm2, %xmm2
  145.     vpextrd $3, %xmm1, %eax
  146.     popcntl %eax, %eax
  147.     vpinsrd $3, %eax, %xmm2, %xmm1
  148.     vpextrd $1, %xmm0, %eax
  149.     popcntl %eax, %eax
  150.     vmovd   %xmm0, %ecx
  151.     popcntl %ecx, %ecx
  152.     vmovd   %ecx, %xmm2
  153.     vpinsrd $1, %eax, %xmm2, %xmm2
  154.     vpextrd $2, %xmm0, %eax
  155.     popcntl %eax, %eax
  156.     vpinsrd $2, %eax, %xmm2, %xmm2
  157.     vpextrd $3, %xmm0, %eax
  158.     popcntl %eax, %eax
  159.     vpinsrd $3, %eax, %xmm2, %xmm0
  160.     vinsertf128 $1, %xmm1, %ymm0, %ymm0
  161.     retq
  162.     .cfi_endproc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement