Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .section __TEXT,__literal4,4byte_literals
- .align 2
- LCPI0_0:
- .long 1431655765 ## 0x55555555
- LCPI0_1:
- .long 858993459 ## 0x33333333
- LCPI0_2:
- .long 252645135 ## 0xf0f0f0f
- LCPI0_3:
- .long 63 ## 0x3f
- .section __TEXT,__text,regular,pure_instructions
- .globl v8i32-new-avx2
- .align 4, 0x90
- v8i32-new-avx2: ## @A
- .cfi_startproc
- ## BB#0: ## %entry
- vpsrld $1, %ymm0, %ymm1
- vpbroadcastd LCPI0_0(%rip), %ymm2
- vpand %ymm2, %ymm1, %ymm1
- vpsubd %ymm1, %ymm0, %ymm0
- vpbroadcastd LCPI0_1(%rip), %ymm1
- vpand %ymm1, %ymm0, %ymm2
- vpsrld $2, %ymm0, %ymm0
- vpand %ymm1, %ymm0, %ymm0
- vpaddd %ymm0, %ymm2, %ymm0
- vpsrld $4, %ymm0, %ymm1
- vpaddd %ymm1, %ymm0, %ymm0
- vpbroadcastd LCPI0_2(%rip), %ymm1
- vpand %ymm1, %ymm0, %ymm0
- vpsrld $8, %ymm0, %ymm1
- vpaddd %ymm1, %ymm0, %ymm0
- vpsrld $16, %ymm0, %ymm1
- vpaddd %ymm1, %ymm0, %ymm0
- vpbroadcastd LCPI0_3(%rip), %ymm1
- vpand %ymm1, %ymm0, %ymm0
- retq
- .cfi_endproc
- .globl v8i32-old-avx2
- .align 4, 0x90
- v8i32-old-avx2: ## @A
- .cfi_startproc
- ## BB#0: ## %entry
- vextracti128 $1, %ymm0, %xmm1
- vpextrd $1, %xmm1, %eax
- popcntl %eax, %eax
- vmovd %xmm1, %ecx
- popcntl %ecx, %ecx
- vmovd %ecx, %xmm2
- vpinsrd $1, %eax, %xmm2, %xmm2
- vpextrd $2, %xmm1, %eax
- popcntl %eax, %eax
- vpinsrd $2, %eax, %xmm2, %xmm2
- vpextrd $3, %xmm1, %eax
- popcntl %eax, %eax
- vpinsrd $3, %eax, %xmm2, %xmm1
- vpextrd $1, %xmm0, %eax
- popcntl %eax, %eax
- vmovd %xmm0, %ecx
- popcntl %ecx, %ecx
- vmovd %ecx, %xmm2
- vpinsrd $1, %eax, %xmm2, %xmm2
- vpextrd $2, %xmm0, %eax
- popcntl %eax, %eax
- vpinsrd $2, %eax, %xmm2, %xmm2
- vpextrd $3, %xmm0, %eax
- popcntl %eax, %eax
- vpinsrd $3, %eax, %xmm2, %xmm0
- vinserti128 $1, %xmm1, %ymm0, %ymm0
- retq
- .cfi_endproc
- .align 4
- LCPI0_0:
- .space 16,85
- LCPI0_1:
- .space 16,51
- LCPI0_2:
- .space 16,15
- LCPI0_3:
- .long 63 ## 0x3f
- .long 63 ## 0x3f
- .long 63 ## 0x3f
- .long 63 ## 0x3f
- .section __TEXT,__text,regular,pure_instructions
- .globl v8i32-new-avx1
- .align 4, 0x90
- v8i32-new-avx1: ## @A
- .cfi_startproc
- ## BB#0: ## %entry
- vextractf128 $1, %ymm0, %xmm1
- vpsrld $1, %xmm1, %xmm2
- vmovdqa LCPI0_0(%rip), %xmm3 ## xmm3 = [1431655765,1431655765,1431655765,1431655765]
- vpand %xmm3, %xmm2, %xmm2
- vpsubd %xmm2, %xmm1, %xmm1
- vmovdqa LCPI0_1(%rip), %xmm2 ## xmm2 = [858993459,858993459,858993459,858993459]
- vpand %xmm2, %xmm1, %xmm4
- vpsrld $2, %xmm1, %xmm1
- vpand %xmm2, %xmm1, %xmm1
- vpaddd %xmm1, %xmm4, %xmm1
- vpsrld $4, %xmm1, %xmm4
- vpaddd %xmm4, %xmm1, %xmm1
- vmovdqa LCPI0_2(%rip), %xmm4 ## xmm4 = [252645135,252645135,252645135,252645135]
- vpand %xmm4, %xmm1, %xmm1
- vpsrld $8, %xmm1, %xmm5
- vpaddd %xmm5, %xmm1, %xmm1
- vpsrld $16, %xmm1, %xmm5
- vpaddd %xmm5, %xmm1, %xmm1
- vmovdqa LCPI0_3(%rip), %xmm5 ## xmm5 = [63,63,63,63]
- vpand %xmm5, %xmm1, %xmm1
- vpsrld $1, %xmm0, %xmm6
- vpand %xmm3, %xmm6, %xmm3
- vpsubd %xmm3, %xmm0, %xmm0
- vpand %xmm2, %xmm0, %xmm3
- vpsrld $2, %xmm0, %xmm0
- vpand %xmm2, %xmm0, %xmm0
- vpaddd %xmm0, %xmm3, %xmm0
- vpsrld $4, %xmm0, %xmm2
- vpaddd %xmm2, %xmm0, %xmm0
- vpand %xmm4, %xmm0, %xmm0
- vpsrld $8, %xmm0, %xmm2
- vpaddd %xmm2, %xmm0, %xmm0
- vpsrld $16, %xmm0, %xmm2
- vpaddd %xmm2, %xmm0, %xmm0
- vpand %xmm5, %xmm0, %xmm0
- vinsertf128 $1, %xmm1, %ymm0, %ymm0
- retq
- .cfi_endproc
- .globl v8i32-old-avx1
- .align 4, 0x90
- v8i32-old-avx1: ## @A
- .cfi_startproc
- ## BB#0: ## %entry
- vextractf128 $1, %ymm0, %xmm1
- vpextrd $1, %xmm1, %eax
- popcntl %eax, %eax
- vmovd %xmm1, %ecx
- popcntl %ecx, %ecx
- vmovd %ecx, %xmm2
- vpinsrd $1, %eax, %xmm2, %xmm2
- vpextrd $2, %xmm1, %eax
- popcntl %eax, %eax
- vpinsrd $2, %eax, %xmm2, %xmm2
- vpextrd $3, %xmm1, %eax
- popcntl %eax, %eax
- vpinsrd $3, %eax, %xmm2, %xmm1
- vpextrd $1, %xmm0, %eax
- popcntl %eax, %eax
- vmovd %xmm0, %ecx
- popcntl %ecx, %ecx
- vmovd %ecx, %xmm2
- vpinsrd $1, %eax, %xmm2, %xmm2
- vpextrd $2, %xmm0, %eax
- popcntl %eax, %eax
- vpinsrd $2, %eax, %xmm2, %xmm2
- vpextrd $3, %xmm0, %eax
- popcntl %eax, %eax
- vpinsrd $3, %eax, %xmm2, %xmm0
- vinsertf128 $1, %xmm1, %ymm0, %ymm0
- retq
- .cfi_endproc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement