AVX-512: added calling conventions for i1 vectors.
[oota-llvm.git] / test / CodeGen / X86 / avx512-calling-conv.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s --check-prefix=KNL
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=skx | FileCheck %s --check-prefix=SKX
3
4 ; KNL-LABEL: test1
5 ; KNL: vxorps
6 define <16 x i1> @test1() {
7   ret <16 x i1> zeroinitializer
8 }
9
10 ; SKX-LABEL: test2
11 ; SKX: vpmovb2m
12 ; SKX: vpmovb2m
13 ; SKX: kandw
14 ; SKX: vpmovm2b
15 ; KNL-LABEL: test2
16 ; KNL: vpmovsxbd
17 ; KNL: vpmovsxbd
18 ; KNL: vpandd
19 ; KNL: vpmovdb
20 define <16 x i1> @test2(<16 x i1>%a, <16 x i1>%b) {
21   %c = and <16 x i1>%a, %b
22   ret <16 x i1> %c
23 }
24
25 ; SKX-LABEL: test3
26 ; SKX: vpmovw2m
27 ; SKX: vpmovw2m
28 ; SKX: kandb
29 ; SKX: vpmovm2w
30 define <8 x i1> @test3(<8 x i1>%a, <8 x i1>%b) {
31   %c = and <8 x i1>%a, %b
32   ret <8 x i1> %c
33 }
34
35 ; SKX-LABEL: test4
36 ; SKX: vpmovd2m
37 ; SKX: vpmovd2m
38 ; SKX: kandw
39 ; SKX: vpmovm2d
40 define <4 x i1> @test4(<4 x i1>%a, <4 x i1>%b) {
41   %c = and <4 x i1>%a, %b
42   ret <4 x i1> %c
43 }
44