a4ebaeb583415725a07d4602453abfb4bf38dbc5
[oota-llvm.git] / test / CodeGen / X86 / avx512bw-intrinsics.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -mattr=+avx512bw --show-mc-encoding| FileCheck %s
2
3 define i64 @test_pcmpeq_b(<64 x i8> %a, <64 x i8> %b) {
4 ; CHECK-LABEL: test_pcmpeq_b
5 ; CHECK: vpcmpeqb %zmm1, %zmm0, %k0 ##
6   %res = call i64 @llvm.x86.avx512.mask.pcmpeq.b.512(<64 x i8> %a, <64 x i8> %b, i64 -1)
7   ret i64 %res
8 }
9
10 define i64 @test_mask_pcmpeq_b(<64 x i8> %a, <64 x i8> %b, i64 %mask) {
11 ; CHECK-LABEL: test_mask_pcmpeq_b
12 ; CHECK: vpcmpeqb %zmm1, %zmm0, %k0 {%k1} ##
13   %res = call i64 @llvm.x86.avx512.mask.pcmpeq.b.512(<64 x i8> %a, <64 x i8> %b, i64 %mask)
14   ret i64 %res
15 }
16
17 declare i64 @llvm.x86.avx512.mask.pcmpeq.b.512(<64 x i8>, <64 x i8>, i64)
18
19 define i32 @test_pcmpeq_w(<32 x i16> %a, <32 x i16> %b) {
20 ; CHECK-LABEL: test_pcmpeq_w
21 ; CHECK: vpcmpeqw %zmm1, %zmm0, %k0 ##
22   %res = call i32 @llvm.x86.avx512.mask.pcmpeq.w.512(<32 x i16> %a, <32 x i16> %b, i32 -1)
23   ret i32 %res
24 }
25
26 define i32 @test_mask_pcmpeq_w(<32 x i16> %a, <32 x i16> %b, i32 %mask) {
27 ; CHECK-LABEL: test_mask_pcmpeq_w
28 ; CHECK: vpcmpeqw %zmm1, %zmm0, %k0 {%k1} ##
29   %res = call i32 @llvm.x86.avx512.mask.pcmpeq.w.512(<32 x i16> %a, <32 x i16> %b, i32 %mask)
30   ret i32 %res
31 }
32
33 declare i32 @llvm.x86.avx512.mask.pcmpeq.w.512(<32 x i16>, <32 x i16>, i32)