summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/vector-bitreverse.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/vector-bitreverse.ll')
-rw-r--r--llvm/test/CodeGen/X86/vector-bitreverse.ll552
1 files changed, 276 insertions, 276 deletions
diff --git a/llvm/test/CodeGen/X86/vector-bitreverse.ll b/llvm/test/CodeGen/X86/vector-bitreverse.ll
index 25e1f68679d..5a443991c53 100644
--- a/llvm/test/CodeGen/X86/vector-bitreverse.ll
+++ b/llvm/test/CodeGen/X86/vector-bitreverse.ll
@@ -3081,99 +3081,99 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind {
; AVX512F-LABEL: test_bitreverse_v16i32:
; AVX512F: # BB#0:
; AVX512F-NEXT: vpslld $29, %zmm0, %zmm1
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm1, %zmm2
+; AVX512F-NEXT: vpslld $31, %zmm0, %zmm1
; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $31, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm1, %zmm2, %zmm1
-; AVX512F-NEXT: vpslld $27, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $25, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $23, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $21, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $19, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $17, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $15, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $13, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $11, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $9, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $7, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $5, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $3, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpslld $1, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $1, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $3, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $5, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $7, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $9, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $11, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $13, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $15, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $17, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $19, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $21, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $23, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $25, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $27, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrld $29, %zmm0, %zmm2
-; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2
-; AVX512F-NEXT: vpord %zmm2, %zmm1, %zmm1
+; AVX512F-NEXT: vpslld $27, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $25, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $23, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $21, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $19, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $17, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $15, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $13, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $11, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $9, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $7, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $5, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $3, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpslld $1, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $1, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $3, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $5, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $7, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $9, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $11, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $13, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $15, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $17, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $19, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $21, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $23, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $25, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $27, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrld $29, %zmm0, %zmm3
+; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm3, %zmm3
+; AVX512F-NEXT: vpord %zmm3, %zmm2, %zmm2
; AVX512F-NEXT: vpsrld $31, %zmm0, %zmm0
; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm0, %zmm0
+; AVX512F-NEXT: vpord %zmm0, %zmm2, %zmm0
; AVX512F-NEXT: vpord %zmm0, %zmm1, %zmm0
; AVX512F-NEXT: retq
;
@@ -3516,195 +3516,195 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind {
; AVX512F-LABEL: test_bitreverse_v8i64:
; AVX512F: # BB#0:
; AVX512F-NEXT: vpsllq $61, %zmm0, %zmm1
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm1, %zmm2
+; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm1
; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $63, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm1, %zmm2, %zmm1
-; AVX512F-NEXT: vpsllq $59, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $57, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $55, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $53, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $51, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $49, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $47, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $45, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $43, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $41, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $39, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $37, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $35, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $33, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $31, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $29, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $27, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $25, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $23, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $21, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $19, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $17, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $15, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $13, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $11, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $9, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $7, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $5, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $3, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsllq $1, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $1, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $3, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $5, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $7, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $9, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $11, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $13, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $15, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $17, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $19, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $21, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $23, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $25, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $27, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $29, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $31, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $33, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $35, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $37, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $39, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $41, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $43, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $45, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $47, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $49, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $51, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $53, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $55, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $57, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $59, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
-; AVX512F-NEXT: vpsrlq $61, %zmm0, %zmm2
-; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2
-; AVX512F-NEXT: vporq %zmm2, %zmm1, %zmm1
+; AVX512F-NEXT: vpsllq $59, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $57, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $55, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $53, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $51, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $49, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $47, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $45, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $43, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $41, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $39, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $37, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $35, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $33, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $31, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $29, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $27, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $25, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $23, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $21, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $19, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $17, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $15, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $13, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $11, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $9, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $7, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $5, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $3, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsllq $1, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $1, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $3, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $5, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $7, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $9, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $11, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $13, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $15, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $17, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $19, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $21, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $23, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $25, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $27, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $29, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $31, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $33, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $35, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $37, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $39, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $41, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $43, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $45, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $47, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $49, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $51, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $53, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $55, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $57, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $59, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
+; AVX512F-NEXT: vpsrlq $61, %zmm0, %zmm3
+; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm3, %zmm3
+; AVX512F-NEXT: vporq %zmm3, %zmm2, %zmm2
; AVX512F-NEXT: vpsrlq $63, %zmm0, %zmm0
; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm0, %zmm0
+; AVX512F-NEXT: vporq %zmm0, %zmm2, %zmm0
; AVX512F-NEXT: vporq %zmm0, %zmm1, %zmm0
; AVX512F-NEXT: retq
;
OpenPOWER on IntegriCloud