xref: /minix3/external/bsd/llvm/dist/llvm/test/CodeGen/X86/avx512vl-logic.ll (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl -mattr=+avx512vl | FileCheck %s
2*0a6a1f1dSLionel Sambuc
3*0a6a1f1dSLionel Sambuc; 256-bit
4*0a6a1f1dSLionel Sambuc
5*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpandd256
6*0a6a1f1dSLionel Sambuc; CHECK: vpandd %ymm
7*0a6a1f1dSLionel Sambuc; CHECK: ret
8*0a6a1f1dSLionel Sambucdefine <8 x i32> @vpandd256(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnone ssp {
9*0a6a1f1dSLionel Sambucentry:
10*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
11*0a6a1f1dSLionel Sambuc  %a2 = add <8 x i32> %a, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
12*0a6a1f1dSLionel Sambuc  %x = and <8 x i32> %a2, %b
13*0a6a1f1dSLionel Sambuc  ret <8 x i32> %x
14*0a6a1f1dSLionel Sambuc}
15*0a6a1f1dSLionel Sambuc
16*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpord256
17*0a6a1f1dSLionel Sambuc; CHECK: vpord %ymm
18*0a6a1f1dSLionel Sambuc; CHECK: ret
19*0a6a1f1dSLionel Sambucdefine <8 x i32> @vpord256(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnone ssp {
20*0a6a1f1dSLionel Sambucentry:
21*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
22*0a6a1f1dSLionel Sambuc  %a2 = add <8 x i32> %a, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
23*0a6a1f1dSLionel Sambuc  %x = or <8 x i32> %a2, %b
24*0a6a1f1dSLionel Sambuc  ret <8 x i32> %x
25*0a6a1f1dSLionel Sambuc}
26*0a6a1f1dSLionel Sambuc
27*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpxord256
28*0a6a1f1dSLionel Sambuc; CHECK: vpxord %ymm
29*0a6a1f1dSLionel Sambuc; CHECK: ret
30*0a6a1f1dSLionel Sambucdefine <8 x i32> @vpxord256(<8 x i32> %a, <8 x i32> %b) nounwind uwtable readnone ssp {
31*0a6a1f1dSLionel Sambucentry:
32*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
33*0a6a1f1dSLionel Sambuc  %a2 = add <8 x i32> %a, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
34*0a6a1f1dSLionel Sambuc  %x = xor <8 x i32> %a2, %b
35*0a6a1f1dSLionel Sambuc  ret <8 x i32> %x
36*0a6a1f1dSLionel Sambuc}
37*0a6a1f1dSLionel Sambuc
38*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpandq256
39*0a6a1f1dSLionel Sambuc; CHECK: vpandq %ymm
40*0a6a1f1dSLionel Sambuc; CHECK: ret
41*0a6a1f1dSLionel Sambucdefine <4 x i64> @vpandq256(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnone ssp {
42*0a6a1f1dSLionel Sambucentry:
43*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
44*0a6a1f1dSLionel Sambuc  %a2 = add <4 x i64> %a, <i64 1, i64 1, i64 1, i64 1>
45*0a6a1f1dSLionel Sambuc  %x = and <4 x i64> %a2, %b
46*0a6a1f1dSLionel Sambuc  ret <4 x i64> %x
47*0a6a1f1dSLionel Sambuc}
48*0a6a1f1dSLionel Sambuc
49*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vporq256
50*0a6a1f1dSLionel Sambuc; CHECK: vporq %ymm
51*0a6a1f1dSLionel Sambuc; CHECK: ret
52*0a6a1f1dSLionel Sambucdefine <4 x i64> @vporq256(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnone ssp {
53*0a6a1f1dSLionel Sambucentry:
54*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
55*0a6a1f1dSLionel Sambuc  %a2 = add <4 x i64> %a, <i64 1, i64 1, i64 1, i64 1>
56*0a6a1f1dSLionel Sambuc  %x = or <4 x i64> %a2, %b
57*0a6a1f1dSLionel Sambuc  ret <4 x i64> %x
58*0a6a1f1dSLionel Sambuc}
59*0a6a1f1dSLionel Sambuc
60*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpxorq256
61*0a6a1f1dSLionel Sambuc; CHECK: vpxorq %ymm
62*0a6a1f1dSLionel Sambuc; CHECK: ret
63*0a6a1f1dSLionel Sambucdefine <4 x i64> @vpxorq256(<4 x i64> %a, <4 x i64> %b) nounwind uwtable readnone ssp {
64*0a6a1f1dSLionel Sambucentry:
65*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
66*0a6a1f1dSLionel Sambuc  %a2 = add <4 x i64> %a, <i64 1, i64 1, i64 1, i64 1>
67*0a6a1f1dSLionel Sambuc  %x = xor <4 x i64> %a2, %b
68*0a6a1f1dSLionel Sambuc  ret <4 x i64> %x
69*0a6a1f1dSLionel Sambuc}
70*0a6a1f1dSLionel Sambuc
71*0a6a1f1dSLionel Sambuc; 128-bit
72*0a6a1f1dSLionel Sambuc
73*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpandd128
74*0a6a1f1dSLionel Sambuc; CHECK: vpandd %xmm
75*0a6a1f1dSLionel Sambuc; CHECK: ret
76*0a6a1f1dSLionel Sambucdefine <4 x i32> @vpandd128(<4 x i32> %a, <4 x i32> %b) nounwind uwtable readnone ssp {
77*0a6a1f1dSLionel Sambucentry:
78*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
79*0a6a1f1dSLionel Sambuc  %a2 = add <4 x i32> %a, <i32 1, i32 1, i32 1, i32 1>
80*0a6a1f1dSLionel Sambuc  %x = and <4 x i32> %a2, %b
81*0a6a1f1dSLionel Sambuc  ret <4 x i32> %x
82*0a6a1f1dSLionel Sambuc}
83*0a6a1f1dSLionel Sambuc
84*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpord128
85*0a6a1f1dSLionel Sambuc; CHECK: vpord %xmm
86*0a6a1f1dSLionel Sambuc; CHECK: ret
87*0a6a1f1dSLionel Sambucdefine <4 x i32> @vpord128(<4 x i32> %a, <4 x i32> %b) nounwind uwtable readnone ssp {
88*0a6a1f1dSLionel Sambucentry:
89*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
90*0a6a1f1dSLionel Sambuc  %a2 = add <4 x i32> %a, <i32 1, i32 1, i32 1, i32 1>
91*0a6a1f1dSLionel Sambuc  %x = or <4 x i32> %a2, %b
92*0a6a1f1dSLionel Sambuc  ret <4 x i32> %x
93*0a6a1f1dSLionel Sambuc}
94*0a6a1f1dSLionel Sambuc
95*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpxord128
96*0a6a1f1dSLionel Sambuc; CHECK: vpxord %xmm
97*0a6a1f1dSLionel Sambuc; CHECK: ret
98*0a6a1f1dSLionel Sambucdefine <4 x i32> @vpxord128(<4 x i32> %a, <4 x i32> %b) nounwind uwtable readnone ssp {
99*0a6a1f1dSLionel Sambucentry:
100*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
101*0a6a1f1dSLionel Sambuc  %a2 = add <4 x i32> %a, <i32 1, i32 1, i32 1, i32 1>
102*0a6a1f1dSLionel Sambuc  %x = xor <4 x i32> %a2, %b
103*0a6a1f1dSLionel Sambuc  ret <4 x i32> %x
104*0a6a1f1dSLionel Sambuc}
105*0a6a1f1dSLionel Sambuc
106*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpandq128
107*0a6a1f1dSLionel Sambuc; CHECK: vpandq %xmm
108*0a6a1f1dSLionel Sambuc; CHECK: ret
109*0a6a1f1dSLionel Sambucdefine <2 x i64> @vpandq128(<2 x i64> %a, <2 x i64> %b) nounwind uwtable readnone ssp {
110*0a6a1f1dSLionel Sambucentry:
111*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
112*0a6a1f1dSLionel Sambuc  %a2 = add <2 x i64> %a, <i64 1, i64 1>
113*0a6a1f1dSLionel Sambuc  %x = and <2 x i64> %a2, %b
114*0a6a1f1dSLionel Sambuc  ret <2 x i64> %x
115*0a6a1f1dSLionel Sambuc}
116*0a6a1f1dSLionel Sambuc
117*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vporq128
118*0a6a1f1dSLionel Sambuc; CHECK: vporq %xmm
119*0a6a1f1dSLionel Sambuc; CHECK: ret
120*0a6a1f1dSLionel Sambucdefine <2 x i64> @vporq128(<2 x i64> %a, <2 x i64> %b) nounwind uwtable readnone ssp {
121*0a6a1f1dSLionel Sambucentry:
122*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
123*0a6a1f1dSLionel Sambuc  %a2 = add <2 x i64> %a, <i64 1, i64 1>
124*0a6a1f1dSLionel Sambuc  %x = or <2 x i64> %a2, %b
125*0a6a1f1dSLionel Sambuc  ret <2 x i64> %x
126*0a6a1f1dSLionel Sambuc}
127*0a6a1f1dSLionel Sambuc
128*0a6a1f1dSLionel Sambuc; CHECK-LABEL: vpxorq128
129*0a6a1f1dSLionel Sambuc; CHECK: vpxorq %xmm
130*0a6a1f1dSLionel Sambuc; CHECK: ret
131*0a6a1f1dSLionel Sambucdefine <2 x i64> @vpxorq128(<2 x i64> %a, <2 x i64> %b) nounwind uwtable readnone ssp {
132*0a6a1f1dSLionel Sambucentry:
133*0a6a1f1dSLionel Sambuc  ; Force the execution domain with an add.
134*0a6a1f1dSLionel Sambuc  %a2 = add <2 x i64> %a, <i64 1, i64 1>
135*0a6a1f1dSLionel Sambuc  %x = xor <2 x i64> %a2, %b
136*0a6a1f1dSLionel Sambuc  ret <2 x i64> %x
137*0a6a1f1dSLionel Sambuc}
138