summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/avx512bw-intrinsics.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/avx512bw-intrinsics.ll')
-rw-r--r--test/CodeGen/X86/avx512bw-intrinsics.ll656
1 files changed, 4 insertions, 652 deletions
diff --git a/test/CodeGen/X86/avx512bw-intrinsics.ll b/test/CodeGen/X86/avx512bw-intrinsics.ll
index ca01033bf78ba..5472f057ef27f 100644
--- a/test/CodeGen/X86/avx512bw-intrinsics.ll
+++ b/test/CodeGen/X86/avx512bw-intrinsics.ll
@@ -2,654 +2,6 @@
; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -mattr=+avx512bw | FileCheck %s --check-prefix=ALL --check-prefix=AVX512BW
; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -mcpu=knl -mattr=+avx512bw | FileCheck %s --check-prefix=ALL --check-prefix=AVX512F-32
-define i64 @test_cmp_b_512(<64 x i8> %a0, <64 x i8> %a1) {
-; AVX512BW-LABEL: test_cmp_b_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: vpcmpeqb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: vpcmpltb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpleb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpunordb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpneqb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpnltb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpnleb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rdx
-; AVX512BW-NEXT: addq %rcx, %rdx
-; AVX512BW-NEXT: vpcmpordb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rdx, %rax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_cmp_b_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: subl $68, %esp
-; AVX512F-32-NEXT: .Lcfi0:
-; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
-; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpltb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpleb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpunordb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpneqb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnltb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnleb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpordb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, (%esp)
-; AVX512F-32-NEXT: addl (%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: addl $68, %esp
-; AVX512F-32-NEXT: retl
- %res0 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 -1)
- %res1 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 1, i64 -1)
- %ret1 = add i64 %res0, %res1
- %res2 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 2, i64 -1)
- %ret2 = add i64 %ret1, %res2
- %res3 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 3, i64 -1)
- %ret3 = add i64 %ret2, %res3
- %res4 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 4, i64 -1)
- %ret4 = add i64 %ret3, %res4
- %res5 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 5, i64 -1)
- %ret5 = add i64 %ret4, %res5
- %res6 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 6, i64 -1)
- %ret6 = add i64 %ret5, %res6
- %res7 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 7, i64 -1)
- %ret7 = add i64 %ret6, %res7
- ret i64 %ret7
-}
-
-define i64 @test_mask_cmp_b_512(<64 x i8> %a0, <64 x i8> %a1, i64 %mask) {
-; AVX512BW-LABEL: test_mask_cmp_b_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: kmovq %rdi, %k1
-; AVX512BW-NEXT: vpcmpeqb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: vpcmpltb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpleb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpunordb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpneqb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpnltb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpnleb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rdx
-; AVX512BW-NEXT: addq %rcx, %rdx
-; AVX512BW-NEXT: vpcmpordb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rdx, %rax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_mask_cmp_b_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: subl $68, %esp
-; AVX512F-32-NEXT: .Lcfi1:
-; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
-; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
-; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
-; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
-; AVX512F-32-NEXT: vpcmpeqb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, (%esp)
-; AVX512F-32-NEXT: movl (%esp), %eax
-; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpltb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpleb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpunordb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpneqb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnltb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnleb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpordb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: addl $68, %esp
-; AVX512F-32-NEXT: retl
- %res0 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 %mask)
- %res1 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 1, i64 %mask)
- %ret1 = add i64 %res0, %res1
- %res2 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 2, i64 %mask)
- %ret2 = add i64 %ret1, %res2
- %res3 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 3, i64 %mask)
- %ret3 = add i64 %ret2, %res3
- %res4 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 4, i64 %mask)
- %ret4 = add i64 %ret3, %res4
- %res5 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 5, i64 %mask)
- %ret5 = add i64 %ret4, %res5
- %res6 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 6, i64 %mask)
- %ret6 = add i64 %ret5, %res6
- %res7 = call i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 7, i64 %mask)
- %ret7 = add i64 %ret6, %res7
- ret i64 %ret7
-}
-
-declare i64 @llvm.x86.avx512.mask.cmp.b.512(<64 x i8>, <64 x i8>, i32, i64) nounwind readnone
-
-define i64 @test_ucmp_b_512(<64 x i8> %a0, <64 x i8> %a1) {
-; AVX512BW-LABEL: test_ucmp_b_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: vpcmpequb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: vpcmpltub %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpleub %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpunordub %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpnequb %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpnltub %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rdx
-; AVX512BW-NEXT: addq %rcx, %rdx
-; AVX512BW-NEXT: vpcmpordub %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rdx, %rax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_ucmp_b_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: subl $68, %esp
-; AVX512F-32-NEXT: .Lcfi2:
-; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
-; AVX512F-32-NEXT: vpcmpequb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpltub %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpleub %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpunordub %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnequb %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnltub %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnleub %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpordub %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovq %k0, (%esp)
-; AVX512F-32-NEXT: addl (%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: addl $68, %esp
-; AVX512F-32-NEXT: retl
- %res0 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 -1)
- %res1 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 1, i64 -1)
- %ret1 = add i64 %res0, %res1
- %res2 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 2, i64 -1)
- %ret2 = add i64 %ret1, %res2
- %res3 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 3, i64 -1)
- %ret3 = add i64 %ret2, %res3
- %res4 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 4, i64 -1)
- %ret4 = add i64 %ret3, %res4
- %res5 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 5, i64 -1)
- %ret5 = add i64 %ret4, %res5
- %res6 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 6, i64 -1)
- %ret6 = add i64 %ret5, %res6
- %res7 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 7, i64 -1)
- %ret7 = add i64 %ret6, %res7
- ret i64 %ret7
-}
-
-define i64 @test_mask_x86_avx512_ucmp_b_512(<64 x i8> %a0, <64 x i8> %a1, i64 %mask) {
-; AVX512BW-LABEL: test_mask_x86_avx512_ucmp_b_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: kmovq %rdi, %k1
-; AVX512BW-NEXT: vpcmpequb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: vpcmpltub %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpleub %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpunordub %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpnequb %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rcx, %rax
-; AVX512BW-NEXT: vpcmpnltub %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rcx
-; AVX512BW-NEXT: addq %rax, %rcx
-; AVX512BW-NEXT: vpcmpnleub %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rdx
-; AVX512BW-NEXT: addq %rcx, %rdx
-; AVX512BW-NEXT: vpcmpordub %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovq %k0, %rax
-; AVX512BW-NEXT: addq %rdx, %rax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_mask_x86_avx512_ucmp_b_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: subl $68, %esp
-; AVX512F-32-NEXT: .Lcfi3:
-; AVX512F-32-NEXT: .cfi_def_cfa_offset 72
-; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
-; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
-; AVX512F-32-NEXT: kunpckdq %k0, %k1, %k1
-; AVX512F-32-NEXT: vpcmpequb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, (%esp)
-; AVX512F-32-NEXT: movl (%esp), %eax
-; AVX512F-32-NEXT: movl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpltub %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpleub %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpunordub %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnequb %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnltub %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpnleub %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: vpcmpordub %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovq %k0, {{[0-9]+}}(%esp)
-; AVX512F-32-NEXT: addl {{[0-9]+}}(%esp), %eax
-; AVX512F-32-NEXT: adcxl {{[0-9]+}}(%esp), %edx
-; AVX512F-32-NEXT: addl $68, %esp
-; AVX512F-32-NEXT: retl
- %res0 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 %mask)
- %res1 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 1, i64 %mask)
- %ret1 = add i64 %res0, %res1
- %res2 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 2, i64 %mask)
- %ret2 = add i64 %ret1, %res2
- %res3 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 3, i64 %mask)
- %ret3 = add i64 %ret2, %res3
- %res4 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 4, i64 %mask)
- %ret4 = add i64 %ret3, %res4
- %res5 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 5, i64 %mask)
- %ret5 = add i64 %ret4, %res5
- %res6 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 6, i64 %mask)
- %ret6 = add i64 %ret5, %res6
- %res7 = call i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> %a0, <64 x i8> %a1, i32 7, i64 %mask)
- %ret7 = add i64 %ret6, %res7
- ret i64 %ret7
-}
-
-declare i64 @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8>, <64 x i8>, i32, i64) nounwind readnone
-
-define i32 @test_cmp_w_512(<32 x i16> %a0, <32 x i16> %a1) {
-; AVX512BW-LABEL: test_cmp_w_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: vpcmpeqw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: vpcmpltw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmplew %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpunordw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpneqw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpnltw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpnlew %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %edx
-; AVX512BW-NEXT: addl %ecx, %edx
-; AVX512BW-NEXT: vpcmpordw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %edx, %eax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_cmp_w_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: vpcmpeqw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: vpcmpltw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmplew %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpunordw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpneqw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpnltw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpnlew %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %edx
-; AVX512F-32-NEXT: addl %ecx, %edx
-; AVX512F-32-NEXT: vpcmpordw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %edx, %eax
-; AVX512F-32-NEXT: retl
- %res0 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 0, i32 -1)
- %res1 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 1, i32 -1)
- %ret1 = add i32 %res0, %res1
- %res2 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 2, i32 -1)
- %ret2 = add i32 %ret1, %res2
- %res3 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 3, i32 -1)
- %ret3 = add i32 %ret2, %res3
- %res4 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 4, i32 -1)
- %ret4 = add i32 %ret3, %res4
- %res5 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 5, i32 -1)
- %ret5 = add i32 %ret4, %res5
- %res6 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 6, i32 -1)
- %ret6 = add i32 %ret5, %res6
- %res7 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 7, i32 -1)
- %ret7 = add i32 %ret6, %res7
- ret i32 %ret7
-}
-
-define i32 @test_mask_cmp_w_512(<32 x i16> %a0, <32 x i16> %a1, i32 %mask) {
-; AVX512BW-LABEL: test_mask_cmp_w_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: kmovd %edi, %k1
-; AVX512BW-NEXT: vpcmpeqw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: vpcmpltw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmplew %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpunordw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpneqw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpnltw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpnlew %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %edx
-; AVX512BW-NEXT: addl %ecx, %edx
-; AVX512BW-NEXT: vpcmpordw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %edx, %eax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_mask_cmp_w_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
-; AVX512F-32-NEXT: vpcmpeqw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: vpcmpltw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmplew %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpunordw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpneqw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpnltw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpnlew %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %edx
-; AVX512F-32-NEXT: addl %ecx, %edx
-; AVX512F-32-NEXT: vpcmpordw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %edx, %eax
-; AVX512F-32-NEXT: retl
- %res0 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 0, i32 %mask)
- %res1 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 1, i32 %mask)
- %ret1 = add i32 %res0, %res1
- %res2 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 2, i32 %mask)
- %ret2 = add i32 %ret1, %res2
- %res3 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 3, i32 %mask)
- %ret3 = add i32 %ret2, %res3
- %res4 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 4, i32 %mask)
- %ret4 = add i32 %ret3, %res4
- %res5 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 5, i32 %mask)
- %ret5 = add i32 %ret4, %res5
- %res6 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 6, i32 %mask)
- %ret6 = add i32 %ret5, %res6
- %res7 = call i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 7, i32 %mask)
- %ret7 = add i32 %ret6, %res7
- ret i32 %ret7
-}
-
-declare i32 @llvm.x86.avx512.mask.cmp.w.512(<32 x i16>, <32 x i16>, i32, i32) nounwind readnone
-
-define i32 @test_ucmp_w_512(<32 x i16> %a0, <32 x i16> %a1) {
-; AVX512BW-LABEL: test_ucmp_w_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: vpcmpequw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: vpcmpltuw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpleuw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpnequw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %edx
-; AVX512BW-NEXT: addl %ecx, %edx
-; AVX512BW-NEXT: vpcmporduw %zmm1, %zmm0, %k0
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %edx, %eax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_ucmp_w_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: vpcmpequw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: vpcmpltuw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpleuw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpnequw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %edx
-; AVX512F-32-NEXT: addl %ecx, %edx
-; AVX512F-32-NEXT: vpcmporduw %zmm1, %zmm0, %k0
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %edx, %eax
-; AVX512F-32-NEXT: retl
- %res0 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 0, i32 -1)
- %res1 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 1, i32 -1)
- %ret1 = add i32 %res0, %res1
- %res2 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 2, i32 -1)
- %ret2 = add i32 %ret1, %res2
- %res3 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 3, i32 -1)
- %ret3 = add i32 %ret2, %res3
- %res4 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 4, i32 -1)
- %ret4 = add i32 %ret3, %res4
- %res5 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 5, i32 -1)
- %ret5 = add i32 %ret4, %res5
- %res6 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 6, i32 -1)
- %ret6 = add i32 %ret5, %res6
- %res7 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 7, i32 -1)
- %ret7 = add i32 %ret6, %res7
- ret i32 %ret7
-}
-
-define i32 @test_mask_ucmp_w_512(<32 x i16> %a0, <32 x i16> %a1, i32 %mask) {
-; AVX512BW-LABEL: test_mask_ucmp_w_512:
-; AVX512BW: ## BB#0:
-; AVX512BW-NEXT: kmovd %edi, %k1
-; AVX512BW-NEXT: vpcmpequw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: vpcmpltuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpleuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpnequw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %ecx, %eax
-; AVX512BW-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %ecx
-; AVX512BW-NEXT: addl %eax, %ecx
-; AVX512BW-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %edx
-; AVX512BW-NEXT: addl %ecx, %edx
-; AVX512BW-NEXT: vpcmporduw %zmm1, %zmm0, %k0 {%k1}
-; AVX512BW-NEXT: kmovd %k0, %eax
-; AVX512BW-NEXT: addl %edx, %eax
-; AVX512BW-NEXT: retq
-;
-; AVX512F-32-LABEL: test_mask_ucmp_w_512:
-; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
-; AVX512F-32-NEXT: vpcmpequw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: vpcmpltuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpleuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpunorduw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpnequw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %ecx, %eax
-; AVX512F-32-NEXT: vpcmpnltuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %ecx
-; AVX512F-32-NEXT: addl %eax, %ecx
-; AVX512F-32-NEXT: vpcmpnleuw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %edx
-; AVX512F-32-NEXT: addl %ecx, %edx
-; AVX512F-32-NEXT: vpcmporduw %zmm1, %zmm0, %k0 {%k1}
-; AVX512F-32-NEXT: kmovd %k0, %eax
-; AVX512F-32-NEXT: addl %edx, %eax
-; AVX512F-32-NEXT: retl
- %res0 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 0, i32 %mask)
- %res1 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 1, i32 %mask)
- %ret1 = add i32 %res0, %res1
- %res2 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 2, i32 %mask)
- %ret2 = add i32 %ret1, %res2
- %res3 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 3, i32 %mask)
- %ret3 = add i32 %ret2, %res3
- %res4 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 4, i32 %mask)
- %ret4 = add i32 %ret3, %res4
- %res5 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 5, i32 %mask)
- %ret5 = add i32 %ret4, %res5
- %res6 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 6, i32 %mask)
- %ret6 = add i32 %ret5, %res6
- %res7 = call i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> %a0, <32 x i16> %a1, i32 7, i32 %mask)
- %ret7 = add i32 %ret6, %res7
- ret i32 %ret7
-}
-
-declare i32 @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16>, <32 x i16>, i32, i32) nounwind readnone
-
define <32 x i16> @test_mask_packs_epi32_rr_512(<16 x i32> %a, <16 x i32> %b) {
; AVX512BW-LABEL: test_mask_packs_epi32_rr_512:
; AVX512BW: ## BB#0:
@@ -2239,7 +1591,7 @@ define i64@test_int_x86_avx512_kunpck_qd(i64 %x0, i64 %x1) {
; AVX512F-32-LABEL: test_int_x86_avx512_kunpck_qd:
; AVX512F-32: # BB#0:
; AVX512F-32-NEXT: subl $12, %esp
-; AVX512F-32-NEXT: .Lcfi4:
+; AVX512F-32-NEXT: .Lcfi0:
; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
@@ -2265,7 +1617,7 @@ define i64@test_int_x86_avx512_cvtb2mask_512(<64 x i8> %x0) {
; AVX512F-32-LABEL: test_int_x86_avx512_cvtb2mask_512:
; AVX512F-32: # BB#0:
; AVX512F-32-NEXT: subl $12, %esp
-; AVX512F-32-NEXT: .Lcfi5:
+; AVX512F-32-NEXT: .Lcfi1:
; AVX512F-32-NEXT: .cfi_def_cfa_offset 16
; AVX512F-32-NEXT: vpmovb2m %zmm0, %k0
; AVX512F-32-NEXT: kmovq %k0, (%esp)
@@ -2449,7 +1801,7 @@ define i64@test_int_x86_avx512_ptestm_b_512(<64 x i8> %x0, <64 x i8> %x1, i64 %x
; AVX512F-32-LABEL: test_int_x86_avx512_ptestm_b_512:
; AVX512F-32: # BB#0:
; AVX512F-32-NEXT: subl $20, %esp
-; AVX512F-32-NEXT: .Lcfi6:
+; AVX512F-32-NEXT: .Lcfi2:
; AVX512F-32-NEXT: .cfi_def_cfa_offset 24
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
@@ -2514,7 +1866,7 @@ define i64@test_int_x86_avx512_ptestnm_b_512(<64 x i8> %x0, <64 x i8> %x1, i64 %
; AVX512F-32-LABEL: test_int_x86_avx512_ptestnm_b_512:
; AVX512F-32: # BB#0:
; AVX512F-32-NEXT: subl $20, %esp
-; AVX512F-32-NEXT: .Lcfi7:
+; AVX512F-32-NEXT: .Lcfi3:
; AVX512F-32-NEXT: .cfi_def_cfa_offset 24
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k0
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1