1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: opt < %s -passes=instcombine -mtriple=x86_64-unknown-unknown -S | llc -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl | FileCheck %s
4 ;; This is just a simple test to make sure there are no regressions
5 ;; cause by splitting/recombining ternlog intrinsics.
7 declare <4 x i64> @use_merge_4xi64(<4 x i64>, <4 x i64>)
9 declare <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32>, <4 x i32>, <4 x i32>, i32 immarg)
10 declare <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64>, <4 x i64>, <4 x i64>, i32 immarg)
11 declare <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64>, <8 x i64>, <8 x i64>, i32 immarg)
12 declare <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64>, <2 x i64>, <2 x i64>, i32 immarg)
13 declare <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32>, <16 x i32>, <16 x i32>, i32 immarg)
14 declare <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32>, <8 x i32>, <8 x i32>, i32 immarg)
16 define <16 x i32> @vpternlog_d_v512_imm0(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
17 ; CHECK-LABEL: vpternlog_d_v512_imm0:
19 ; CHECK-NEXT: vxorps %xmm0, %xmm0, %xmm0
21 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 0)
25 define <2 x i64> @vpternlog_q_v128_imm1(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
26 ; CHECK-LABEL: vpternlog_q_v128_imm1:
28 ; CHECK-NEXT: vpternlogq $1, %xmm2, %xmm1, %xmm0
30 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 1)
34 define <8 x i32> @vpternlog_d_v256_imm2(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
35 ; CHECK-LABEL: vpternlog_d_v256_imm2:
37 ; CHECK-NEXT: vpternlogd $2, %ymm2, %ymm1, %ymm0
39 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 2)
43 define <8 x i64> @vpternlog_q_v512_imm3(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
44 ; CHECK-LABEL: vpternlog_q_v512_imm3:
46 ; CHECK-NEXT: vpternlogq $3, %zmm2, %zmm1, %zmm0
48 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 3)
52 define <4 x i32> @vpternlog_d_v128_imm4(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
53 ; CHECK-LABEL: vpternlog_d_v128_imm4:
55 ; CHECK-NEXT: vpternlogd $4, %xmm2, %xmm1, %xmm0
57 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 4)
61 define <4 x i64> @vpternlog_q_v256_imm5(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
62 ; CHECK-LABEL: vpternlog_q_v256_imm5:
64 ; CHECK-NEXT: vpternlogq $5, %ymm2, %ymm1, %ymm0
66 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 5)
70 define <16 x i32> @vpternlog_d_v512_imm6(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
71 ; CHECK-LABEL: vpternlog_d_v512_imm6:
73 ; CHECK-NEXT: vpternlogd $6, %zmm2, %zmm1, %zmm0
75 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 6)
79 define <2 x i64> @vpternlog_q_v128_imm7(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
80 ; CHECK-LABEL: vpternlog_q_v128_imm7:
82 ; CHECK-NEXT: vpternlogq $7, %xmm2, %xmm1, %xmm0
84 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 7)
88 define <8 x i32> @vpternlog_d_v256_imm8(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
89 ; CHECK-LABEL: vpternlog_d_v256_imm8:
91 ; CHECK-NEXT: vpternlogd $8, %ymm2, %ymm1, %ymm0
93 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 8)
97 define <8 x i64> @vpternlog_q_v512_imm9(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
98 ; CHECK-LABEL: vpternlog_q_v512_imm9:
100 ; CHECK-NEXT: vpternlogq $9, %zmm2, %zmm1, %zmm0
102 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 9)
106 define <4 x i32> @vpternlog_d_v128_imm10(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
107 ; CHECK-LABEL: vpternlog_d_v128_imm10:
109 ; CHECK-NEXT: vpternlogd $10, %xmm2, %xmm1, %xmm0
111 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 10)
115 define <4 x i64> @vpternlog_q_v256_imm11(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
116 ; CHECK-LABEL: vpternlog_q_v256_imm11:
118 ; CHECK-NEXT: vpternlogq $11, %ymm2, %ymm1, %ymm0
120 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 11)
124 define <16 x i32> @vpternlog_d_v512_imm12(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
125 ; CHECK-LABEL: vpternlog_d_v512_imm12:
127 ; CHECK-NEXT: vpternlogd $12, %zmm2, %zmm1, %zmm0
129 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 12)
133 define <2 x i64> @vpternlog_q_v128_imm13(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
134 ; CHECK-LABEL: vpternlog_q_v128_imm13:
136 ; CHECK-NEXT: vpternlogq $13, %xmm2, %xmm1, %xmm0
138 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 13)
142 define <8 x i32> @vpternlog_d_v256_imm14(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
143 ; CHECK-LABEL: vpternlog_d_v256_imm14:
145 ; CHECK-NEXT: vpternlogd $14, %ymm2, %ymm1, %ymm0
147 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 14)
151 define <8 x i64> @vpternlog_q_v512_imm15(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
152 ; CHECK-LABEL: vpternlog_q_v512_imm15:
154 ; CHECK-NEXT: vpternlogq $51, %zmm0, %zmm0, %zmm0
156 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 15)
160 define <4 x i32> @vpternlog_d_v128_imm16(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
161 ; CHECK-LABEL: vpternlog_d_v128_imm16:
163 ; CHECK-NEXT: vpternlogd $16, %xmm2, %xmm1, %xmm0
165 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 16)
169 define <4 x i64> @vpternlog_q_v256_imm17(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
170 ; CHECK-LABEL: vpternlog_q_v256_imm17:
172 ; CHECK-NEXT: vpternlogq $17, %ymm2, %ymm1, %ymm0
174 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 17)
178 define <16 x i32> @vpternlog_d_v512_imm18(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
179 ; CHECK-LABEL: vpternlog_d_v512_imm18:
181 ; CHECK-NEXT: vpternlogd $18, %zmm2, %zmm1, %zmm0
183 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 18)
187 define <2 x i64> @vpternlog_q_v128_imm19(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
188 ; CHECK-LABEL: vpternlog_q_v128_imm19:
190 ; CHECK-NEXT: vpternlogq $19, %xmm2, %xmm1, %xmm0
192 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 19)
196 define <8 x i32> @vpternlog_d_v256_imm20(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
197 ; CHECK-LABEL: vpternlog_d_v256_imm20:
199 ; CHECK-NEXT: vpternlogd $20, %ymm2, %ymm1, %ymm0
201 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 20)
205 define <8 x i64> @vpternlog_q_v512_imm21(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
206 ; CHECK-LABEL: vpternlog_q_v512_imm21:
208 ; CHECK-NEXT: vpternlogq $21, %zmm2, %zmm1, %zmm0
210 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 21)
214 ;; This is one_bit_set pattern
215 define <4 x i32> @vpternlog_d_v128_imm22(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
216 ; CHECK-LABEL: vpternlog_d_v128_imm22:
218 ; CHECK-NEXT: vpternlogd $22, %xmm2, %xmm1, %xmm0
220 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 22)
224 define <4 x i64> @vpternlog_q_v256_imm23(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
225 ; CHECK-LABEL: vpternlog_q_v256_imm23:
227 ; CHECK-NEXT: vpternlogq $23, %ymm2, %ymm1, %ymm0
229 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 23)
233 define <16 x i32> @vpternlog_d_v512_imm24(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
234 ; CHECK-LABEL: vpternlog_d_v512_imm24:
236 ; CHECK-NEXT: vpternlogd $24, %zmm2, %zmm1, %zmm0
238 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 24)
242 define <2 x i64> @vpternlog_q_v128_imm25(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
243 ; CHECK-LABEL: vpternlog_q_v128_imm25:
245 ; CHECK-NEXT: vpternlogq $25, %xmm2, %xmm1, %xmm0
247 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 25)
251 define <8 x i32> @vpternlog_d_v256_imm26(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
252 ; CHECK-LABEL: vpternlog_d_v256_imm26:
254 ; CHECK-NEXT: vpternlogd $26, %ymm2, %ymm1, %ymm0
256 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 26)
260 define <8 x i64> @vpternlog_q_v512_imm27(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
261 ; CHECK-LABEL: vpternlog_q_v512_imm27:
263 ; CHECK-NEXT: vpternlogq $27, %zmm2, %zmm1, %zmm0
265 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 27)
269 define <4 x i32> @vpternlog_d_v128_imm28(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
270 ; CHECK-LABEL: vpternlog_d_v128_imm28:
272 ; CHECK-NEXT: vpternlogd $28, %xmm2, %xmm1, %xmm0
274 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 28)
278 define <4 x i64> @vpternlog_q_v256_imm29(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
279 ; CHECK-LABEL: vpternlog_q_v256_imm29:
281 ; CHECK-NEXT: vpternlogq $29, %ymm2, %ymm1, %ymm0
283 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 29)
287 define <16 x i32> @vpternlog_d_v512_imm30(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
288 ; CHECK-LABEL: vpternlog_d_v512_imm30:
290 ; CHECK-NEXT: vpternlogd $30, %zmm2, %zmm1, %zmm0
292 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 30)
296 define <2 x i64> @vpternlog_q_v128_imm31(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
297 ; CHECK-LABEL: vpternlog_q_v128_imm31:
299 ; CHECK-NEXT: vpternlogq $31, %xmm2, %xmm1, %xmm0
301 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 31)
305 define <8 x i32> @vpternlog_d_v256_imm32(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
306 ; CHECK-LABEL: vpternlog_d_v256_imm32:
308 ; CHECK-NEXT: vpternlogd $32, %ymm2, %ymm1, %ymm0
310 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 32)
314 define <8 x i64> @vpternlog_q_v512_imm33(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
315 ; CHECK-LABEL: vpternlog_q_v512_imm33:
317 ; CHECK-NEXT: vpternlogq $33, %zmm2, %zmm1, %zmm0
319 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 33)
323 define <4 x i32> @vpternlog_d_v128_imm34(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
324 ; CHECK-LABEL: vpternlog_d_v128_imm34:
326 ; CHECK-NEXT: vpternlogd $34, %xmm2, %xmm1, %xmm0
328 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 34)
332 define <4 x i64> @vpternlog_q_v256_imm35(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
333 ; CHECK-LABEL: vpternlog_q_v256_imm35:
335 ; CHECK-NEXT: vpternlogq $35, %ymm2, %ymm1, %ymm0
337 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 35)
341 define <16 x i32> @vpternlog_d_v512_imm36(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
342 ; CHECK-LABEL: vpternlog_d_v512_imm36:
344 ; CHECK-NEXT: vpternlogd $36, %zmm2, %zmm1, %zmm0
346 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 36)
350 define <2 x i64> @vpternlog_q_v128_imm37(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
351 ; CHECK-LABEL: vpternlog_q_v128_imm37:
353 ; CHECK-NEXT: vpternlogq $37, %xmm2, %xmm1, %xmm0
355 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 37)
359 define <8 x i32> @vpternlog_d_v256_imm38(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
360 ; CHECK-LABEL: vpternlog_d_v256_imm38:
362 ; CHECK-NEXT: vpternlogd $38, %ymm2, %ymm1, %ymm0
364 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 38)
368 define <8 x i64> @vpternlog_q_v512_imm39(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
369 ; CHECK-LABEL: vpternlog_q_v512_imm39:
371 ; CHECK-NEXT: vpternlogq $39, %zmm2, %zmm1, %zmm0
373 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 39)
377 define <4 x i32> @vpternlog_d_v128_imm40(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
378 ; CHECK-LABEL: vpternlog_d_v128_imm40:
380 ; CHECK-NEXT: vpternlogd $40, %xmm2, %xmm1, %xmm0
382 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 40)
386 define <4 x i64> @vpternlog_q_v256_imm41(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
387 ; CHECK-LABEL: vpternlog_q_v256_imm41:
389 ; CHECK-NEXT: vpternlogq $41, %ymm2, %ymm1, %ymm0
391 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 41)
395 define <16 x i32> @vpternlog_d_v512_imm42(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
396 ; CHECK-LABEL: vpternlog_d_v512_imm42:
398 ; CHECK-NEXT: vpternlogd $42, %zmm2, %zmm1, %zmm0
400 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 42)
404 define <2 x i64> @vpternlog_q_v128_imm43(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
405 ; CHECK-LABEL: vpternlog_q_v128_imm43:
407 ; CHECK-NEXT: vpternlogq $43, %xmm2, %xmm1, %xmm0
409 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 43)
413 define <8 x i32> @vpternlog_d_v256_imm44(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
414 ; CHECK-LABEL: vpternlog_d_v256_imm44:
416 ; CHECK-NEXT: vpternlogd $44, %ymm2, %ymm1, %ymm0
418 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 44)
422 define <8 x i64> @vpternlog_q_v512_imm45(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
423 ; CHECK-LABEL: vpternlog_q_v512_imm45:
425 ; CHECK-NEXT: vpternlogq $45, %zmm2, %zmm1, %zmm0
427 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 45)
431 define <4 x i32> @vpternlog_d_v128_imm46(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
432 ; CHECK-LABEL: vpternlog_d_v128_imm46:
434 ; CHECK-NEXT: vpternlogd $46, %xmm2, %xmm1, %xmm0
436 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 46)
440 define <4 x i64> @vpternlog_q_v256_imm47(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
441 ; CHECK-LABEL: vpternlog_q_v256_imm47:
443 ; CHECK-NEXT: vpternlogq $47, %ymm2, %ymm1, %ymm0
445 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 47)
449 define <16 x i32> @vpternlog_d_v512_imm48(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
450 ; CHECK-LABEL: vpternlog_d_v512_imm48:
452 ; CHECK-NEXT: vpternlogd $48, %zmm2, %zmm1, %zmm0
454 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 48)
458 define <2 x i64> @vpternlog_q_v128_imm49(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
459 ; CHECK-LABEL: vpternlog_q_v128_imm49:
461 ; CHECK-NEXT: vpternlogq $49, %xmm2, %xmm1, %xmm0
463 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 49)
467 define <8 x i32> @vpternlog_d_v256_imm50(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
468 ; CHECK-LABEL: vpternlog_d_v256_imm50:
470 ; CHECK-NEXT: vpternlogd $50, %ymm2, %ymm1, %ymm0
472 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 50)
476 define <8 x i64> @vpternlog_q_v512_imm51(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
477 ; CHECK-LABEL: vpternlog_q_v512_imm51:
479 ; CHECK-NEXT: vmovdqa64 %zmm1, %zmm0
480 ; CHECK-NEXT: vpternlogq $15, %zmm1, %zmm1, %zmm0
482 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 51)
486 define <4 x i32> @vpternlog_d_v128_imm52(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
487 ; CHECK-LABEL: vpternlog_d_v128_imm52:
489 ; CHECK-NEXT: vpternlogd $52, %xmm2, %xmm1, %xmm0
491 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 52)
495 define <4 x i64> @vpternlog_q_v256_imm53(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
496 ; CHECK-LABEL: vpternlog_q_v256_imm53:
498 ; CHECK-NEXT: vpternlogq $53, %ymm2, %ymm1, %ymm0
500 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 53)
504 define <16 x i32> @vpternlog_d_v512_imm54(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
505 ; CHECK-LABEL: vpternlog_d_v512_imm54:
507 ; CHECK-NEXT: vpternlogd $54, %zmm2, %zmm1, %zmm0
509 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 54)
513 define <2 x i64> @vpternlog_q_v128_imm55(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
514 ; CHECK-LABEL: vpternlog_q_v128_imm55:
516 ; CHECK-NEXT: vpternlogq $55, %xmm2, %xmm1, %xmm0
518 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 55)
522 define <8 x i32> @vpternlog_d_v256_imm56(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
523 ; CHECK-LABEL: vpternlog_d_v256_imm56:
525 ; CHECK-NEXT: vpternlogd $56, %ymm2, %ymm1, %ymm0
527 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 56)
531 define <8 x i64> @vpternlog_q_v512_imm57(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
532 ; CHECK-LABEL: vpternlog_q_v512_imm57:
534 ; CHECK-NEXT: vpternlogq $57, %zmm2, %zmm1, %zmm0
536 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 57)
540 define <4 x i32> @vpternlog_d_v128_imm58(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
541 ; CHECK-LABEL: vpternlog_d_v128_imm58:
543 ; CHECK-NEXT: vpternlogd $58, %xmm2, %xmm1, %xmm0
545 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 58)
549 define <4 x i64> @vpternlog_q_v256_imm59(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
550 ; CHECK-LABEL: vpternlog_q_v256_imm59:
552 ; CHECK-NEXT: vpternlogq $59, %ymm2, %ymm1, %ymm0
554 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 59)
558 define <16 x i32> @vpternlog_d_v512_imm60(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
559 ; CHECK-LABEL: vpternlog_d_v512_imm60:
561 ; CHECK-NEXT: vpxord %zmm1, %zmm0, %zmm0
563 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 60)
567 define <2 x i64> @vpternlog_q_v128_imm61(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
568 ; CHECK-LABEL: vpternlog_q_v128_imm61:
570 ; CHECK-NEXT: vpternlogq $61, %xmm2, %xmm1, %xmm0
572 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 61)
576 define <8 x i32> @vpternlog_d_v256_imm62(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
577 ; CHECK-LABEL: vpternlog_d_v256_imm62:
579 ; CHECK-NEXT: vpternlogd $62, %ymm2, %ymm1, %ymm0
581 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 62)
585 define <8 x i64> @vpternlog_q_v512_imm63(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
586 ; CHECK-LABEL: vpternlog_q_v512_imm63:
588 ; CHECK-NEXT: vpternlogq $63, %zmm2, %zmm1, %zmm0
590 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 63)
594 define <4 x i32> @vpternlog_d_v128_imm64(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
595 ; CHECK-LABEL: vpternlog_d_v128_imm64:
597 ; CHECK-NEXT: vpternlogd $64, %xmm2, %xmm1, %xmm0
599 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 64)
603 define <4 x i64> @vpternlog_q_v256_imm65(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
604 ; CHECK-LABEL: vpternlog_q_v256_imm65:
606 ; CHECK-NEXT: vpternlogq $65, %ymm2, %ymm1, %ymm0
608 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 65)
612 define <16 x i32> @vpternlog_d_v512_imm66(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
613 ; CHECK-LABEL: vpternlog_d_v512_imm66:
615 ; CHECK-NEXT: vpternlogd $66, %zmm2, %zmm1, %zmm0
617 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 66)
621 define <2 x i64> @vpternlog_q_v128_imm67(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
622 ; CHECK-LABEL: vpternlog_q_v128_imm67:
624 ; CHECK-NEXT: vpternlogq $67, %xmm2, %xmm1, %xmm0
626 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 67)
630 define <8 x i32> @vpternlog_d_v256_imm68(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
631 ; CHECK-LABEL: vpternlog_d_v256_imm68:
633 ; CHECK-NEXT: vpternlogd $68, %ymm2, %ymm1, %ymm0
635 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 68)
639 define <8 x i64> @vpternlog_q_v512_imm69(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
640 ; CHECK-LABEL: vpternlog_q_v512_imm69:
642 ; CHECK-NEXT: vpternlogq $69, %zmm2, %zmm1, %zmm0
644 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 69)
648 define <4 x i32> @vpternlog_d_v128_imm70(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
649 ; CHECK-LABEL: vpternlog_d_v128_imm70:
651 ; CHECK-NEXT: vpternlogd $70, %xmm2, %xmm1, %xmm0
653 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 70)
657 define <4 x i64> @vpternlog_q_v256_imm71(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
658 ; CHECK-LABEL: vpternlog_q_v256_imm71:
660 ; CHECK-NEXT: vpternlogq $71, %ymm2, %ymm1, %ymm0
662 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 71)
666 define <16 x i32> @vpternlog_d_v512_imm72(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
667 ; CHECK-LABEL: vpternlog_d_v512_imm72:
669 ; CHECK-NEXT: vpternlogd $72, %zmm2, %zmm1, %zmm0
671 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 72)
675 define <2 x i64> @vpternlog_q_v128_imm73(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
676 ; CHECK-LABEL: vpternlog_q_v128_imm73:
678 ; CHECK-NEXT: vpternlogq $73, %xmm2, %xmm1, %xmm0
680 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 73)
684 define <8 x i32> @vpternlog_d_v256_imm74(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
685 ; CHECK-LABEL: vpternlog_d_v256_imm74:
687 ; CHECK-NEXT: vpternlogd $74, %ymm2, %ymm1, %ymm0
689 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 74)
693 define <8 x i64> @vpternlog_q_v512_imm75(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
694 ; CHECK-LABEL: vpternlog_q_v512_imm75:
696 ; CHECK-NEXT: vpternlogq $75, %zmm2, %zmm1, %zmm0
698 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 75)
702 define <4 x i32> @vpternlog_d_v128_imm76(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
703 ; CHECK-LABEL: vpternlog_d_v128_imm76:
705 ; CHECK-NEXT: vpternlogd $76, %xmm2, %xmm1, %xmm0
707 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 76)
711 define <4 x i64> @vpternlog_q_v256_imm77(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
712 ; CHECK-LABEL: vpternlog_q_v256_imm77:
714 ; CHECK-NEXT: vpternlogq $77, %ymm2, %ymm1, %ymm0
716 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 77)
720 define <16 x i32> @vpternlog_d_v512_imm78(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
721 ; CHECK-LABEL: vpternlog_d_v512_imm78:
723 ; CHECK-NEXT: vpternlogd $78, %zmm2, %zmm1, %zmm0
725 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 78)
729 define <2 x i64> @vpternlog_q_v128_imm79(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
730 ; CHECK-LABEL: vpternlog_q_v128_imm79:
732 ; CHECK-NEXT: vpternlogq $79, %xmm2, %xmm1, %xmm0
734 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 79)
738 define <8 x i32> @vpternlog_d_v256_imm80(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
739 ; CHECK-LABEL: vpternlog_d_v256_imm80:
741 ; CHECK-NEXT: vpternlogd $80, %ymm2, %ymm1, %ymm0
743 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 80)
747 define <8 x i64> @vpternlog_q_v512_imm81(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
748 ; CHECK-LABEL: vpternlog_q_v512_imm81:
750 ; CHECK-NEXT: vpternlogq $81, %zmm2, %zmm1, %zmm0
752 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 81)
756 define <4 x i32> @vpternlog_d_v128_imm82(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
757 ; CHECK-LABEL: vpternlog_d_v128_imm82:
759 ; CHECK-NEXT: vpternlogd $82, %xmm2, %xmm1, %xmm0
761 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 82)
765 define <4 x i64> @vpternlog_q_v256_imm83(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
766 ; CHECK-LABEL: vpternlog_q_v256_imm83:
768 ; CHECK-NEXT: vpternlogq $83, %ymm2, %ymm1, %ymm0
770 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 83)
774 define <16 x i32> @vpternlog_d_v512_imm84(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
775 ; CHECK-LABEL: vpternlog_d_v512_imm84:
777 ; CHECK-NEXT: vpternlogd $84, %zmm2, %zmm1, %zmm0
779 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 84)
783 define <2 x i64> @vpternlog_q_v128_imm85(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
784 ; CHECK-LABEL: vpternlog_q_v128_imm85:
786 ; CHECK-NEXT: vmovdqa %xmm2, %xmm0
787 ; CHECK-NEXT: vpternlogq $15, %xmm2, %xmm2, %xmm0
789 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 85)
793 define <8 x i32> @vpternlog_d_v256_imm86(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
794 ; CHECK-LABEL: vpternlog_d_v256_imm86:
796 ; CHECK-NEXT: vpternlogd $86, %ymm2, %ymm1, %ymm0
798 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 86)
802 define <8 x i64> @vpternlog_q_v512_imm87(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
803 ; CHECK-LABEL: vpternlog_q_v512_imm87:
805 ; CHECK-NEXT: vpternlogq $87, %zmm2, %zmm1, %zmm0
807 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 87)
811 define <4 x i32> @vpternlog_d_v128_imm88(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
812 ; CHECK-LABEL: vpternlog_d_v128_imm88:
814 ; CHECK-NEXT: vpternlogd $88, %xmm2, %xmm1, %xmm0
816 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 88)
820 define <4 x i64> @vpternlog_q_v256_imm89(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
821 ; CHECK-LABEL: vpternlog_q_v256_imm89:
823 ; CHECK-NEXT: vpternlogq $89, %ymm2, %ymm1, %ymm0
825 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 89)
829 define <16 x i32> @vpternlog_d_v512_imm90(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
830 ; CHECK-LABEL: vpternlog_d_v512_imm90:
832 ; CHECK-NEXT: vpxord %zmm2, %zmm0, %zmm0
834 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 90)
838 define <2 x i64> @vpternlog_q_v128_imm91(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
839 ; CHECK-LABEL: vpternlog_q_v128_imm91:
841 ; CHECK-NEXT: vpternlogq $91, %xmm2, %xmm1, %xmm0
843 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 91)
847 define <8 x i32> @vpternlog_d_v256_imm92(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
848 ; CHECK-LABEL: vpternlog_d_v256_imm92:
850 ; CHECK-NEXT: vpternlogd $92, %ymm2, %ymm1, %ymm0
852 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 92)
856 define <8 x i64> @vpternlog_q_v512_imm93(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
857 ; CHECK-LABEL: vpternlog_q_v512_imm93:
859 ; CHECK-NEXT: vpternlogq $93, %zmm2, %zmm1, %zmm0
861 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 93)
865 define <4 x i32> @vpternlog_d_v128_imm94(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
866 ; CHECK-LABEL: vpternlog_d_v128_imm94:
868 ; CHECK-NEXT: vpternlogd $94, %xmm2, %xmm1, %xmm0
870 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 94)
874 define <4 x i64> @vpternlog_q_v256_imm95(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
875 ; CHECK-LABEL: vpternlog_q_v256_imm95:
877 ; CHECK-NEXT: vpternlogq $95, %ymm2, %ymm1, %ymm0
879 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 95)
883 define <16 x i32> @vpternlog_d_v512_imm96(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
884 ; CHECK-LABEL: vpternlog_d_v512_imm96:
886 ; CHECK-NEXT: vpternlogd $96, %zmm2, %zmm1, %zmm0
888 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 96)
892 define <2 x i64> @vpternlog_q_v128_imm97(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
893 ; CHECK-LABEL: vpternlog_q_v128_imm97:
895 ; CHECK-NEXT: vpternlogq $97, %xmm2, %xmm1, %xmm0
897 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 97)
901 define <8 x i32> @vpternlog_d_v256_imm98(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
902 ; CHECK-LABEL: vpternlog_d_v256_imm98:
904 ; CHECK-NEXT: vpternlogd $98, %ymm2, %ymm1, %ymm0
906 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 98)
910 define <8 x i64> @vpternlog_q_v512_imm99(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
911 ; CHECK-LABEL: vpternlog_q_v512_imm99:
913 ; CHECK-NEXT: vpternlogq $99, %zmm2, %zmm1, %zmm0
915 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 99)
919 define <4 x i32> @vpternlog_d_v128_imm100(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
920 ; CHECK-LABEL: vpternlog_d_v128_imm100:
922 ; CHECK-NEXT: vpternlogd $100, %xmm2, %xmm1, %xmm0
924 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 100)
928 define <4 x i64> @vpternlog_q_v256_imm101(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
929 ; CHECK-LABEL: vpternlog_q_v256_imm101:
931 ; CHECK-NEXT: vpternlogq $101, %ymm2, %ymm1, %ymm0
933 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 101)
937 define <16 x i32> @vpternlog_d_v512_imm102(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
938 ; CHECK-LABEL: vpternlog_d_v512_imm102:
940 ; CHECK-NEXT: vpxord %zmm2, %zmm1, %zmm0
942 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 102)
946 define <2 x i64> @vpternlog_q_v128_imm103(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
947 ; CHECK-LABEL: vpternlog_q_v128_imm103:
949 ; CHECK-NEXT: vpternlogq $103, %xmm2, %xmm1, %xmm0
951 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 103)
955 ; This is two_bits_set pattern
956 define <8 x i32> @vpternlog_d_v256_imm104(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
957 ; CHECK-LABEL: vpternlog_d_v256_imm104:
959 ; CHECK-NEXT: vpternlogd $104, %ymm2, %ymm1, %ymm0
961 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 104)
965 define <8 x i64> @vpternlog_q_v512_imm105(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
966 ; CHECK-LABEL: vpternlog_q_v512_imm105:
968 ; CHECK-NEXT: vpternlogq $105, %zmm2, %zmm1, %zmm0
970 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 105)
974 define <4 x i32> @vpternlog_d_v128_imm106(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
975 ; CHECK-LABEL: vpternlog_d_v128_imm106:
977 ; CHECK-NEXT: vpternlogd $106, %xmm2, %xmm1, %xmm0
979 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 106)
983 define <4 x i64> @vpternlog_q_v256_imm107(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
984 ; CHECK-LABEL: vpternlog_q_v256_imm107:
986 ; CHECK-NEXT: vpternlogq $107, %ymm2, %ymm1, %ymm0
988 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 107)
992 define <16 x i32> @vpternlog_d_v512_imm108(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
993 ; CHECK-LABEL: vpternlog_d_v512_imm108:
995 ; CHECK-NEXT: vpternlogd $108, %zmm2, %zmm1, %zmm0
997 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 108)
1001 define <2 x i64> @vpternlog_q_v128_imm109(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1002 ; CHECK-LABEL: vpternlog_q_v128_imm109:
1004 ; CHECK-NEXT: vpternlogq $109, %xmm2, %xmm1, %xmm0
1006 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 109)
1010 define <8 x i32> @vpternlog_d_v256_imm110(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1011 ; CHECK-LABEL: vpternlog_d_v256_imm110:
1013 ; CHECK-NEXT: vpternlogd $110, %ymm2, %ymm1, %ymm0
1015 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 110)
1019 define <8 x i64> @vpternlog_q_v512_imm111(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1020 ; CHECK-LABEL: vpternlog_q_v512_imm111:
1022 ; CHECK-NEXT: vpternlogq $111, %zmm2, %zmm1, %zmm0
1024 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 111)
1028 define <4 x i32> @vpternlog_d_v128_imm112(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1029 ; CHECK-LABEL: vpternlog_d_v128_imm112:
1031 ; CHECK-NEXT: vpternlogd $112, %xmm2, %xmm1, %xmm0
1033 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 112)
1037 define <4 x i64> @vpternlog_q_v256_imm113(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1038 ; CHECK-LABEL: vpternlog_q_v256_imm113:
1040 ; CHECK-NEXT: vpternlogq $113, %ymm2, %ymm1, %ymm0
1042 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 113)
1046 define <16 x i32> @vpternlog_d_v512_imm114(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1047 ; CHECK-LABEL: vpternlog_d_v512_imm114:
1049 ; CHECK-NEXT: vpternlogd $114, %zmm2, %zmm1, %zmm0
1051 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 114)
1055 define <2 x i64> @vpternlog_q_v128_imm115(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1056 ; CHECK-LABEL: vpternlog_q_v128_imm115:
1058 ; CHECK-NEXT: vpternlogq $115, %xmm2, %xmm1, %xmm0
1060 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 115)
1064 define <8 x i32> @vpternlog_d_v256_imm116(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1065 ; CHECK-LABEL: vpternlog_d_v256_imm116:
1067 ; CHECK-NEXT: vpternlogd $116, %ymm2, %ymm1, %ymm0
1069 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 116)
1073 define <8 x i64> @vpternlog_q_v512_imm117(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1074 ; CHECK-LABEL: vpternlog_q_v512_imm117:
1076 ; CHECK-NEXT: vpternlogq $117, %zmm2, %zmm1, %zmm0
1078 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 117)
1082 define <4 x i32> @vpternlog_d_v128_imm118(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1083 ; CHECK-LABEL: vpternlog_d_v128_imm118:
1085 ; CHECK-NEXT: vpternlogd $118, %xmm2, %xmm1, %xmm0
1087 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 118)
1091 define <4 x i64> @vpternlog_q_v256_imm119(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1092 ; CHECK-LABEL: vpternlog_q_v256_imm119:
1094 ; CHECK-NEXT: vpternlogq $119, %ymm2, %ymm1, %ymm0
1096 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 119)
1100 define <16 x i32> @vpternlog_d_v512_imm120(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1101 ; CHECK-LABEL: vpternlog_d_v512_imm120:
1103 ; CHECK-NEXT: vpternlogd $120, %zmm2, %zmm1, %zmm0
1105 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 120)
1109 define <2 x i64> @vpternlog_q_v128_imm121(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1110 ; CHECK-LABEL: vpternlog_q_v128_imm121:
1112 ; CHECK-NEXT: vpternlogq $121, %xmm2, %xmm1, %xmm0
1114 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 121)
1118 define <8 x i32> @vpternlog_d_v256_imm122(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1119 ; CHECK-LABEL: vpternlog_d_v256_imm122:
1121 ; CHECK-NEXT: vpternlogd $122, %ymm2, %ymm1, %ymm0
1123 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 122)
1127 define <8 x i64> @vpternlog_q_v512_imm123(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1128 ; CHECK-LABEL: vpternlog_q_v512_imm123:
1130 ; CHECK-NEXT: vpternlogq $123, %zmm2, %zmm1, %zmm0
1132 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 123)
1136 define <4 x i32> @vpternlog_d_v128_imm124(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1137 ; CHECK-LABEL: vpternlog_d_v128_imm124:
1139 ; CHECK-NEXT: vpternlogd $124, %xmm2, %xmm1, %xmm0
1141 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 124)
1145 define <4 x i64> @vpternlog_q_v256_imm125(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1146 ; CHECK-LABEL: vpternlog_q_v256_imm125:
1148 ; CHECK-NEXT: vpternlogq $125, %ymm2, %ymm1, %ymm0
1150 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 125)
1154 define <16 x i32> @vpternlog_d_v512_imm126(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1155 ; CHECK-LABEL: vpternlog_d_v512_imm126:
1157 ; CHECK-NEXT: vpternlogd $126, %zmm2, %zmm1, %zmm0
1159 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 126)
1163 define <2 x i64> @vpternlog_q_v128_imm127(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1164 ; CHECK-LABEL: vpternlog_q_v128_imm127:
1166 ; CHECK-NEXT: vpternlogq $127, %xmm2, %xmm1, %xmm0
1168 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 127)
1172 define <8 x i32> @vpternlog_d_v256_imm128(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1173 ; CHECK-LABEL: vpternlog_d_v256_imm128:
1175 ; CHECK-NEXT: vpternlogd $128, %ymm2, %ymm1, %ymm0
1177 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 128)
1181 define <8 x i64> @vpternlog_q_v512_imm129(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1182 ; CHECK-LABEL: vpternlog_q_v512_imm129:
1184 ; CHECK-NEXT: vpternlogq $129, %zmm2, %zmm1, %zmm0
1186 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 129)
1190 define <4 x i32> @vpternlog_d_v128_imm130(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1191 ; CHECK-LABEL: vpternlog_d_v128_imm130:
1193 ; CHECK-NEXT: vpternlogd $130, %xmm2, %xmm1, %xmm0
1195 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 130)
1199 define <4 x i64> @vpternlog_q_v256_imm131(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1200 ; CHECK-LABEL: vpternlog_q_v256_imm131:
1202 ; CHECK-NEXT: vpternlogq $131, %ymm2, %ymm1, %ymm0
1204 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 131)
1208 define <16 x i32> @vpternlog_d_v512_imm132(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1209 ; CHECK-LABEL: vpternlog_d_v512_imm132:
1211 ; CHECK-NEXT: vpternlogd $132, %zmm2, %zmm1, %zmm0
1213 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 132)
1217 define <2 x i64> @vpternlog_q_v128_imm133(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1218 ; CHECK-LABEL: vpternlog_q_v128_imm133:
1220 ; CHECK-NEXT: vpternlogq $133, %xmm2, %xmm1, %xmm0
1222 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 133)
1226 define <8 x i32> @vpternlog_d_v256_imm134(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1227 ; CHECK-LABEL: vpternlog_d_v256_imm134:
1229 ; CHECK-NEXT: vpternlogd $134, %ymm2, %ymm1, %ymm0
1231 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 134)
1235 define <8 x i64> @vpternlog_q_v512_imm135(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1236 ; CHECK-LABEL: vpternlog_q_v512_imm135:
1238 ; CHECK-NEXT: vpternlogq $135, %zmm2, %zmm1, %zmm0
1240 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 135)
1244 define <4 x i32> @vpternlog_d_v128_imm136(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1245 ; CHECK-LABEL: vpternlog_d_v128_imm136:
1247 ; CHECK-NEXT: vandps %xmm2, %xmm1, %xmm0
1249 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 136)
1253 define <4 x i64> @vpternlog_q_v256_imm137(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1254 ; CHECK-LABEL: vpternlog_q_v256_imm137:
1256 ; CHECK-NEXT: vpternlogq $137, %ymm2, %ymm1, %ymm0
1258 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 137)
1262 define <16 x i32> @vpternlog_d_v512_imm138(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1263 ; CHECK-LABEL: vpternlog_d_v512_imm138:
1265 ; CHECK-NEXT: vpternlogd $138, %zmm2, %zmm1, %zmm0
1267 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 138)
1271 define <2 x i64> @vpternlog_q_v128_imm139(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1272 ; CHECK-LABEL: vpternlog_q_v128_imm139:
1274 ; CHECK-NEXT: vpternlogq $139, %xmm2, %xmm1, %xmm0
1276 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 139)
1280 define <8 x i32> @vpternlog_d_v256_imm140(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1281 ; CHECK-LABEL: vpternlog_d_v256_imm140:
1283 ; CHECK-NEXT: vpternlogd $140, %ymm2, %ymm1, %ymm0
1285 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 140)
1289 define <8 x i64> @vpternlog_q_v512_imm141(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1290 ; CHECK-LABEL: vpternlog_q_v512_imm141:
1292 ; CHECK-NEXT: vpternlogq $141, %zmm2, %zmm1, %zmm0
1294 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 141)
1298 define <4 x i32> @vpternlog_d_v128_imm142(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1299 ; CHECK-LABEL: vpternlog_d_v128_imm142:
1301 ; CHECK-NEXT: vpternlogd $142, %xmm2, %xmm1, %xmm0
1303 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 142)
1307 define <4 x i64> @vpternlog_q_v256_imm143(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1308 ; CHECK-LABEL: vpternlog_q_v256_imm143:
1310 ; CHECK-NEXT: vpternlogq $143, %ymm2, %ymm1, %ymm0
1312 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 143)
1316 define <16 x i32> @vpternlog_d_v512_imm144(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1317 ; CHECK-LABEL: vpternlog_d_v512_imm144:
1319 ; CHECK-NEXT: vpternlogd $144, %zmm2, %zmm1, %zmm0
1321 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 144)
1325 define <2 x i64> @vpternlog_q_v128_imm145(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1326 ; CHECK-LABEL: vpternlog_q_v128_imm145:
1328 ; CHECK-NEXT: vpternlogq $145, %xmm2, %xmm1, %xmm0
1330 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 145)
1334 define <8 x i32> @vpternlog_d_v256_imm146(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1335 ; CHECK-LABEL: vpternlog_d_v256_imm146:
1337 ; CHECK-NEXT: vpternlogd $146, %ymm2, %ymm1, %ymm0
1339 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 146)
1343 define <8 x i64> @vpternlog_q_v512_imm147(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1344 ; CHECK-LABEL: vpternlog_q_v512_imm147:
1346 ; CHECK-NEXT: vpternlogq $147, %zmm2, %zmm1, %zmm0
1348 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 147)
1352 define <4 x i32> @vpternlog_d_v128_imm148(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1353 ; CHECK-LABEL: vpternlog_d_v128_imm148:
1355 ; CHECK-NEXT: vpternlogd $148, %xmm2, %xmm1, %xmm0
1357 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 148)
1361 define <4 x i64> @vpternlog_q_v256_imm149(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1362 ; CHECK-LABEL: vpternlog_q_v256_imm149:
1364 ; CHECK-NEXT: vpternlogq $149, %ymm2, %ymm1, %ymm0
1366 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 149)
1370 define <16 x i32> @vpternlog_d_v512_imm150(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1371 ; CHECK-LABEL: vpternlog_d_v512_imm150:
1373 ; CHECK-NEXT: vpternlogd $150, %zmm2, %zmm1, %zmm0
1375 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 150)
1379 define <2 x i64> @vpternlog_q_v128_imm151(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1380 ; CHECK-LABEL: vpternlog_q_v128_imm151:
1382 ; CHECK-NEXT: vpternlogq $151, %xmm2, %xmm1, %xmm0
1384 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 151)
1388 define <8 x i32> @vpternlog_d_v256_imm152(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1389 ; CHECK-LABEL: vpternlog_d_v256_imm152:
1391 ; CHECK-NEXT: vpternlogd $152, %ymm2, %ymm1, %ymm0
1393 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 152)
1397 define <8 x i64> @vpternlog_q_v512_imm153(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1398 ; CHECK-LABEL: vpternlog_q_v512_imm153:
1400 ; CHECK-NEXT: vpternlogq $153, %zmm2, %zmm1, %zmm0
1402 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 153)
1406 define <4 x i32> @vpternlog_d_v128_imm154(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1407 ; CHECK-LABEL: vpternlog_d_v128_imm154:
1409 ; CHECK-NEXT: vpternlogd $154, %xmm2, %xmm1, %xmm0
1411 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 154)
1415 define <4 x i64> @vpternlog_q_v256_imm155(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1416 ; CHECK-LABEL: vpternlog_q_v256_imm155:
1418 ; CHECK-NEXT: vpternlogq $155, %ymm2, %ymm1, %ymm0
1420 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 155)
1424 define <16 x i32> @vpternlog_d_v512_imm156(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1425 ; CHECK-LABEL: vpternlog_d_v512_imm156:
1427 ; CHECK-NEXT: vpternlogd $156, %zmm2, %zmm1, %zmm0
1429 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 156)
1433 define <2 x i64> @vpternlog_q_v128_imm157(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1434 ; CHECK-LABEL: vpternlog_q_v128_imm157:
1436 ; CHECK-NEXT: vpternlogq $157, %xmm2, %xmm1, %xmm0
1438 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 157)
1442 define <8 x i32> @vpternlog_d_v256_imm158(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1443 ; CHECK-LABEL: vpternlog_d_v256_imm158:
1445 ; CHECK-NEXT: vpternlogd $158, %ymm2, %ymm1, %ymm0
1447 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 158)
1451 define <8 x i64> @vpternlog_q_v512_imm159(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1452 ; CHECK-LABEL: vpternlog_q_v512_imm159:
1454 ; CHECK-NEXT: vpternlogq $159, %zmm2, %zmm1, %zmm0
1456 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 159)
1460 define <4 x i32> @vpternlog_d_v128_imm160(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1461 ; CHECK-LABEL: vpternlog_d_v128_imm160:
1463 ; CHECK-NEXT: vandps %xmm2, %xmm0, %xmm0
1465 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 160)
1469 define <4 x i64> @vpternlog_q_v256_imm161(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1470 ; CHECK-LABEL: vpternlog_q_v256_imm161:
1472 ; CHECK-NEXT: vpternlogq $161, %ymm2, %ymm1, %ymm0
1474 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 161)
1478 define <16 x i32> @vpternlog_d_v512_imm162(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1479 ; CHECK-LABEL: vpternlog_d_v512_imm162:
1481 ; CHECK-NEXT: vpternlogd $162, %zmm2, %zmm1, %zmm0
1483 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 162)
1487 define <2 x i64> @vpternlog_q_v128_imm163(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1488 ; CHECK-LABEL: vpternlog_q_v128_imm163:
1490 ; CHECK-NEXT: vpternlogq $163, %xmm2, %xmm1, %xmm0
1492 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 163)
1496 define <8 x i32> @vpternlog_d_v256_imm164(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1497 ; CHECK-LABEL: vpternlog_d_v256_imm164:
1499 ; CHECK-NEXT: vpternlogd $164, %ymm2, %ymm1, %ymm0
1501 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 164)
1505 define <8 x i64> @vpternlog_q_v512_imm165(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1506 ; CHECK-LABEL: vpternlog_q_v512_imm165:
1508 ; CHECK-NEXT: vpternlogq $165, %zmm2, %zmm1, %zmm0
1510 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 165)
1514 define <4 x i32> @vpternlog_d_v128_imm166(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1515 ; CHECK-LABEL: vpternlog_d_v128_imm166:
1517 ; CHECK-NEXT: vpternlogd $166, %xmm2, %xmm1, %xmm0
1519 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 166)
1523 define <4 x i64> @vpternlog_q_v256_imm167(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1524 ; CHECK-LABEL: vpternlog_q_v256_imm167:
1526 ; CHECK-NEXT: vpternlogq $167, %ymm2, %ymm1, %ymm0
1528 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 167)
1532 define <16 x i32> @vpternlog_d_v512_imm168(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1533 ; CHECK-LABEL: vpternlog_d_v512_imm168:
1535 ; CHECK-NEXT: vpternlogd $168, %zmm2, %zmm1, %zmm0
1537 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 168)
1541 define <2 x i64> @vpternlog_q_v128_imm169(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1542 ; CHECK-LABEL: vpternlog_q_v128_imm169:
1544 ; CHECK-NEXT: vpternlogq $169, %xmm2, %xmm1, %xmm0
1546 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 169)
1550 define <8 x i32> @vpternlog_d_v256_imm170(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1551 ; CHECK-LABEL: vpternlog_d_v256_imm170:
1553 ; CHECK-NEXT: vmovaps %ymm2, %ymm0
1555 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 170)
1559 define <8 x i64> @vpternlog_q_v512_imm171(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1560 ; CHECK-LABEL: vpternlog_q_v512_imm171:
1562 ; CHECK-NEXT: vpternlogq $171, %zmm2, %zmm1, %zmm0
1564 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 171)
1568 define <4 x i32> @vpternlog_d_v128_imm172(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1569 ; CHECK-LABEL: vpternlog_d_v128_imm172:
1571 ; CHECK-NEXT: vpternlogd $172, %xmm2, %xmm1, %xmm0
1573 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 172)
1577 define <4 x i64> @vpternlog_q_v256_imm173(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1578 ; CHECK-LABEL: vpternlog_q_v256_imm173:
1580 ; CHECK-NEXT: vpternlogq $173, %ymm2, %ymm1, %ymm0
1582 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 173)
1586 define <16 x i32> @vpternlog_d_v512_imm174(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1587 ; CHECK-LABEL: vpternlog_d_v512_imm174:
1589 ; CHECK-NEXT: vpternlogd $174, %zmm2, %zmm1, %zmm0
1591 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 174)
1595 define <2 x i64> @vpternlog_q_v128_imm175(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1596 ; CHECK-LABEL: vpternlog_q_v128_imm175:
1598 ; CHECK-NEXT: vpternlogq $175, %xmm2, %xmm1, %xmm0
1600 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 175)
1604 define <8 x i32> @vpternlog_d_v256_imm176(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1605 ; CHECK-LABEL: vpternlog_d_v256_imm176:
1607 ; CHECK-NEXT: vpternlogd $176, %ymm2, %ymm1, %ymm0
1609 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 176)
1613 define <8 x i64> @vpternlog_q_v512_imm177(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1614 ; CHECK-LABEL: vpternlog_q_v512_imm177:
1616 ; CHECK-NEXT: vpternlogq $177, %zmm2, %zmm1, %zmm0
1618 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 177)
1622 define <4 x i32> @vpternlog_d_v128_imm178(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1623 ; CHECK-LABEL: vpternlog_d_v128_imm178:
1625 ; CHECK-NEXT: vpternlogd $178, %xmm2, %xmm1, %xmm0
1627 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 178)
1631 define <4 x i64> @vpternlog_q_v256_imm179(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1632 ; CHECK-LABEL: vpternlog_q_v256_imm179:
1634 ; CHECK-NEXT: vpternlogq $179, %ymm2, %ymm1, %ymm0
1636 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 179)
1640 define <16 x i32> @vpternlog_d_v512_imm180(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1641 ; CHECK-LABEL: vpternlog_d_v512_imm180:
1643 ; CHECK-NEXT: vpternlogd $180, %zmm2, %zmm1, %zmm0
1645 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 180)
1649 define <2 x i64> @vpternlog_q_v128_imm181(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1650 ; CHECK-LABEL: vpternlog_q_v128_imm181:
1652 ; CHECK-NEXT: vpternlogq $181, %xmm2, %xmm1, %xmm0
1654 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 181)
1658 define <8 x i32> @vpternlog_d_v256_imm182(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1659 ; CHECK-LABEL: vpternlog_d_v256_imm182:
1661 ; CHECK-NEXT: vpternlogd $182, %ymm2, %ymm1, %ymm0
1663 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 182)
1667 define <8 x i64> @vpternlog_q_v512_imm183(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1668 ; CHECK-LABEL: vpternlog_q_v512_imm183:
1670 ; CHECK-NEXT: vpternlogq $183, %zmm2, %zmm1, %zmm0
1672 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 183)
1676 define <4 x i32> @vpternlog_d_v128_imm184(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1677 ; CHECK-LABEL: vpternlog_d_v128_imm184:
1679 ; CHECK-NEXT: vpternlogd $184, %xmm2, %xmm1, %xmm0
1681 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 184)
1685 define <4 x i64> @vpternlog_q_v256_imm185(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1686 ; CHECK-LABEL: vpternlog_q_v256_imm185:
1688 ; CHECK-NEXT: vpternlogq $185, %ymm2, %ymm1, %ymm0
1690 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 185)
1694 define <16 x i32> @vpternlog_d_v512_imm186(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1695 ; CHECK-LABEL: vpternlog_d_v512_imm186:
1697 ; CHECK-NEXT: vpternlogd $186, %zmm2, %zmm1, %zmm0
1699 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 186)
1703 define <2 x i64> @vpternlog_q_v128_imm187(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1704 ; CHECK-LABEL: vpternlog_q_v128_imm187:
1706 ; CHECK-NEXT: vpternlogq $187, %xmm2, %xmm1, %xmm0
1708 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 187)
1712 define <8 x i32> @vpternlog_d_v256_imm188(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1713 ; CHECK-LABEL: vpternlog_d_v256_imm188:
1715 ; CHECK-NEXT: vpternlogd $188, %ymm2, %ymm1, %ymm0
1717 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 188)
1721 define <8 x i64> @vpternlog_q_v512_imm189(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1722 ; CHECK-LABEL: vpternlog_q_v512_imm189:
1724 ; CHECK-NEXT: vpternlogq $189, %zmm2, %zmm1, %zmm0
1726 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 189)
1730 define <4 x i32> @vpternlog_d_v128_imm190(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1731 ; CHECK-LABEL: vpternlog_d_v128_imm190:
1733 ; CHECK-NEXT: vpternlogd $190, %xmm2, %xmm1, %xmm0
1735 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 190)
1739 define <4 x i64> @vpternlog_q_v256_imm191(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1740 ; CHECK-LABEL: vpternlog_q_v256_imm191:
1742 ; CHECK-NEXT: vpternlogq $191, %ymm2, %ymm1, %ymm0
1744 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 191)
1748 define <16 x i32> @vpternlog_d_v512_imm192(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1749 ; CHECK-LABEL: vpternlog_d_v512_imm192:
1751 ; CHECK-NEXT: vpandd %zmm1, %zmm0, %zmm0
1753 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 192)
1757 define <2 x i64> @vpternlog_q_v128_imm193(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1758 ; CHECK-LABEL: vpternlog_q_v128_imm193:
1760 ; CHECK-NEXT: vpternlogq $193, %xmm2, %xmm1, %xmm0
1762 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 193)
1766 define <8 x i32> @vpternlog_d_v256_imm194(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1767 ; CHECK-LABEL: vpternlog_d_v256_imm194:
1769 ; CHECK-NEXT: vpternlogd $194, %ymm2, %ymm1, %ymm0
1771 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 194)
1775 define <8 x i64> @vpternlog_q_v512_imm195(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1776 ; CHECK-LABEL: vpternlog_q_v512_imm195:
1778 ; CHECK-NEXT: vpternlogq $195, %zmm2, %zmm1, %zmm0
1780 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 195)
1784 define <4 x i32> @vpternlog_d_v128_imm196(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1785 ; CHECK-LABEL: vpternlog_d_v128_imm196:
1787 ; CHECK-NEXT: vpternlogd $196, %xmm2, %xmm1, %xmm0
1789 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 196)
1793 define <4 x i64> @vpternlog_q_v256_imm197(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1794 ; CHECK-LABEL: vpternlog_q_v256_imm197:
1796 ; CHECK-NEXT: vpternlogq $197, %ymm2, %ymm1, %ymm0
1798 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 197)
1802 define <16 x i32> @vpternlog_d_v512_imm198(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1803 ; CHECK-LABEL: vpternlog_d_v512_imm198:
1805 ; CHECK-NEXT: vpternlogd $198, %zmm2, %zmm1, %zmm0
1807 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 198)
1811 define <2 x i64> @vpternlog_q_v128_imm199(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1812 ; CHECK-LABEL: vpternlog_q_v128_imm199:
1814 ; CHECK-NEXT: vpternlogq $199, %xmm2, %xmm1, %xmm0
1816 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 199)
1820 define <8 x i32> @vpternlog_d_v256_imm200(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1821 ; CHECK-LABEL: vpternlog_d_v256_imm200:
1823 ; CHECK-NEXT: vpternlogd $200, %ymm2, %ymm1, %ymm0
1825 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 200)
1829 define <8 x i64> @vpternlog_q_v512_imm201(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1830 ; CHECK-LABEL: vpternlog_q_v512_imm201:
1832 ; CHECK-NEXT: vpternlogq $201, %zmm2, %zmm1, %zmm0
1834 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 201)
1838 define <4 x i32> @vpternlog_d_v128_imm202(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1839 ; CHECK-LABEL: vpternlog_d_v128_imm202:
1841 ; CHECK-NEXT: vpternlogd $202, %xmm2, %xmm1, %xmm0
1843 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 202)
1847 define <4 x i64> @vpternlog_q_v256_imm203(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1848 ; CHECK-LABEL: vpternlog_q_v256_imm203:
1850 ; CHECK-NEXT: vpternlogq $203, %ymm2, %ymm1, %ymm0
1852 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 203)
1856 define <16 x i32> @vpternlog_d_v512_imm204(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1857 ; CHECK-LABEL: vpternlog_d_v512_imm204:
1859 ; CHECK-NEXT: vmovaps %zmm1, %zmm0
1861 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 204)
1865 define <2 x i64> @vpternlog_q_v128_imm205(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1866 ; CHECK-LABEL: vpternlog_q_v128_imm205:
1868 ; CHECK-NEXT: vpternlogq $205, %xmm2, %xmm1, %xmm0
1870 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 205)
1874 define <8 x i32> @vpternlog_d_v256_imm206(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1875 ; CHECK-LABEL: vpternlog_d_v256_imm206:
1877 ; CHECK-NEXT: vpternlogd $206, %ymm2, %ymm1, %ymm0
1879 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 206)
1883 define <8 x i64> @vpternlog_q_v512_imm207(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1884 ; CHECK-LABEL: vpternlog_q_v512_imm207:
1886 ; CHECK-NEXT: vpternlogq $207, %zmm2, %zmm1, %zmm0
1888 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 207)
1892 define <4 x i32> @vpternlog_d_v128_imm208(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1893 ; CHECK-LABEL: vpternlog_d_v128_imm208:
1895 ; CHECK-NEXT: vpternlogd $208, %xmm2, %xmm1, %xmm0
1897 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 208)
1901 define <4 x i64> @vpternlog_q_v256_imm209(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1902 ; CHECK-LABEL: vpternlog_q_v256_imm209:
1904 ; CHECK-NEXT: vpternlogq $209, %ymm2, %ymm1, %ymm0
1906 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 209)
1910 define <16 x i32> @vpternlog_d_v512_imm210(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1911 ; CHECK-LABEL: vpternlog_d_v512_imm210:
1913 ; CHECK-NEXT: vpternlogd $210, %zmm2, %zmm1, %zmm0
1915 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 210)
1919 define <2 x i64> @vpternlog_q_v128_imm211(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1920 ; CHECK-LABEL: vpternlog_q_v128_imm211:
1922 ; CHECK-NEXT: vpternlogq $211, %xmm2, %xmm1, %xmm0
1924 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 211)
1928 define <8 x i32> @vpternlog_d_v256_imm212(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1929 ; CHECK-LABEL: vpternlog_d_v256_imm212:
1931 ; CHECK-NEXT: vpternlogd $212, %ymm2, %ymm1, %ymm0
1933 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 212)
1937 define <8 x i64> @vpternlog_q_v512_imm213(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1938 ; CHECK-LABEL: vpternlog_q_v512_imm213:
1940 ; CHECK-NEXT: vpternlogq $213, %zmm2, %zmm1, %zmm0
1942 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 213)
1946 define <4 x i32> @vpternlog_d_v128_imm214(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
1947 ; CHECK-LABEL: vpternlog_d_v128_imm214:
1949 ; CHECK-NEXT: vpternlogd $214, %xmm2, %xmm1, %xmm0
1951 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 214)
1955 define <4 x i64> @vpternlog_q_v256_imm215(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
1956 ; CHECK-LABEL: vpternlog_q_v256_imm215:
1958 ; CHECK-NEXT: vpternlogq $215, %ymm2, %ymm1, %ymm0
1960 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 215)
1964 define <16 x i32> @vpternlog_d_v512_imm216(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
1965 ; CHECK-LABEL: vpternlog_d_v512_imm216:
1967 ; CHECK-NEXT: vpternlogd $216, %zmm2, %zmm1, %zmm0
1969 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 216)
1973 define <2 x i64> @vpternlog_q_v128_imm217(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
1974 ; CHECK-LABEL: vpternlog_q_v128_imm217:
1976 ; CHECK-NEXT: vpternlogq $217, %xmm2, %xmm1, %xmm0
1978 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 217)
1982 define <8 x i32> @vpternlog_d_v256_imm218(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
1983 ; CHECK-LABEL: vpternlog_d_v256_imm218:
1985 ; CHECK-NEXT: vpternlogd $218, %ymm2, %ymm1, %ymm0
1987 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 218)
1991 define <8 x i64> @vpternlog_q_v512_imm219(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
1992 ; CHECK-LABEL: vpternlog_q_v512_imm219:
1994 ; CHECK-NEXT: vpternlogq $219, %zmm2, %zmm1, %zmm0
1996 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 219)
2000 define <4 x i32> @vpternlog_d_v128_imm220(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
2001 ; CHECK-LABEL: vpternlog_d_v128_imm220:
2003 ; CHECK-NEXT: vpternlogd $220, %xmm2, %xmm1, %xmm0
2005 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 220)
2009 define <4 x i64> @vpternlog_q_v256_imm221(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2010 ; CHECK-LABEL: vpternlog_q_v256_imm221:
2012 ; CHECK-NEXT: vpternlogq $221, %ymm2, %ymm1, %ymm0
2014 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 221)
2018 define <16 x i32> @vpternlog_d_v512_imm222(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
2019 ; CHECK-LABEL: vpternlog_d_v512_imm222:
2021 ; CHECK-NEXT: vpternlogd $222, %zmm2, %zmm1, %zmm0
2023 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 222)
2027 define <2 x i64> @vpternlog_q_v128_imm223(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
2028 ; CHECK-LABEL: vpternlog_q_v128_imm223:
2030 ; CHECK-NEXT: vpternlogq $223, %xmm2, %xmm1, %xmm0
2032 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 223)
2036 define <8 x i32> @vpternlog_d_v256_imm224(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
2037 ; CHECK-LABEL: vpternlog_d_v256_imm224:
2039 ; CHECK-NEXT: vpternlogd $224, %ymm2, %ymm1, %ymm0
2041 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 224)
2045 define <8 x i64> @vpternlog_q_v512_imm225(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
2046 ; CHECK-LABEL: vpternlog_q_v512_imm225:
2048 ; CHECK-NEXT: vpternlogq $225, %zmm2, %zmm1, %zmm0
2050 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 225)
2054 define <4 x i32> @vpternlog_d_v128_imm226(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
2055 ; CHECK-LABEL: vpternlog_d_v128_imm226:
2057 ; CHECK-NEXT: vpternlogd $226, %xmm2, %xmm1, %xmm0
2059 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 226)
2063 define <4 x i64> @vpternlog_q_v256_imm227(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2064 ; CHECK-LABEL: vpternlog_q_v256_imm227:
2066 ; CHECK-NEXT: vpternlogq $227, %ymm2, %ymm1, %ymm0
2068 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 227)
2072 define <16 x i32> @vpternlog_d_v512_imm228(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
2073 ; CHECK-LABEL: vpternlog_d_v512_imm228:
2075 ; CHECK-NEXT: vpternlogd $228, %zmm2, %zmm1, %zmm0
2077 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 228)
2081 define <2 x i64> @vpternlog_q_v128_imm229(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
2082 ; CHECK-LABEL: vpternlog_q_v128_imm229:
2084 ; CHECK-NEXT: vpternlogq $229, %xmm2, %xmm1, %xmm0
2086 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 229)
2090 define <8 x i32> @vpternlog_d_v256_imm230(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
2091 ; CHECK-LABEL: vpternlog_d_v256_imm230:
2093 ; CHECK-NEXT: vpternlogd $230, %ymm2, %ymm1, %ymm0
2095 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 230)
2099 define <8 x i64> @vpternlog_q_v512_imm231(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
2100 ; CHECK-LABEL: vpternlog_q_v512_imm231:
2102 ; CHECK-NEXT: vpternlogq $231, %zmm2, %zmm1, %zmm0
2104 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 231)
2108 define <4 x i32> @vpternlog_d_v128_imm232(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
2109 ; CHECK-LABEL: vpternlog_d_v128_imm232:
2111 ; CHECK-NEXT: vpternlogd $232, %xmm2, %xmm1, %xmm0
2113 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 232)
2117 define <4 x i64> @vpternlog_q_v256_imm233(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2118 ; CHECK-LABEL: vpternlog_q_v256_imm233:
2120 ; CHECK-NEXT: vpternlogq $233, %ymm2, %ymm1, %ymm0
2122 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 233)
2126 define <16 x i32> @vpternlog_d_v512_imm234(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
2127 ; CHECK-LABEL: vpternlog_d_v512_imm234:
2129 ; CHECK-NEXT: vpternlogd $234, %zmm2, %zmm1, %zmm0
2131 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 234)
2135 define <2 x i64> @vpternlog_q_v128_imm235(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
2136 ; CHECK-LABEL: vpternlog_q_v128_imm235:
2138 ; CHECK-NEXT: vpternlogq $235, %xmm2, %xmm1, %xmm0
2140 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 235)
2144 define <8 x i32> @vpternlog_d_v256_imm236(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
2145 ; CHECK-LABEL: vpternlog_d_v256_imm236:
2147 ; CHECK-NEXT: vpternlogd $236, %ymm2, %ymm1, %ymm0
2149 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 236)
2153 define <8 x i64> @vpternlog_q_v512_imm237(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
2154 ; CHECK-LABEL: vpternlog_q_v512_imm237:
2156 ; CHECK-NEXT: vpternlogq $237, %zmm2, %zmm1, %zmm0
2158 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 237)
2162 define <4 x i32> @vpternlog_d_v128_imm238(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
2163 ; CHECK-LABEL: vpternlog_d_v128_imm238:
2165 ; CHECK-NEXT: vorps %xmm2, %xmm1, %xmm0
2167 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 238)
2171 define <4 x i64> @vpternlog_q_v256_imm239(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2172 ; CHECK-LABEL: vpternlog_q_v256_imm239:
2174 ; CHECK-NEXT: vpternlogq $239, %ymm2, %ymm1, %ymm0
2176 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 239)
2180 define <16 x i32> @vpternlog_d_v512_imm240(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
2181 ; CHECK-LABEL: vpternlog_d_v512_imm240:
2184 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 240)
2188 define <2 x i64> @vpternlog_q_v128_imm241(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
2189 ; CHECK-LABEL: vpternlog_q_v128_imm241:
2191 ; CHECK-NEXT: vpternlogq $241, %xmm2, %xmm1, %xmm0
2193 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 241)
2197 define <8 x i32> @vpternlog_d_v256_imm242(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
2198 ; CHECK-LABEL: vpternlog_d_v256_imm242:
2200 ; CHECK-NEXT: vpternlogd $242, %ymm2, %ymm1, %ymm0
2202 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 242)
2206 define <8 x i64> @vpternlog_q_v512_imm243(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
2207 ; CHECK-LABEL: vpternlog_q_v512_imm243:
2209 ; CHECK-NEXT: vpternlogq $243, %zmm2, %zmm1, %zmm0
2211 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 243)
2215 define <4 x i32> @vpternlog_d_v128_imm244(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
2216 ; CHECK-LABEL: vpternlog_d_v128_imm244:
2218 ; CHECK-NEXT: vpternlogd $244, %xmm2, %xmm1, %xmm0
2220 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 244)
2224 define <4 x i64> @vpternlog_q_v256_imm245(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2225 ; CHECK-LABEL: vpternlog_q_v256_imm245:
2227 ; CHECK-NEXT: vpternlogq $245, %ymm2, %ymm1, %ymm0
2229 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 245)
2233 define <16 x i32> @vpternlog_d_v512_imm246(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
2234 ; CHECK-LABEL: vpternlog_d_v512_imm246:
2236 ; CHECK-NEXT: vpternlogd $246, %zmm2, %zmm1, %zmm0
2238 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 246)
2242 define <2 x i64> @vpternlog_q_v128_imm247(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
2243 ; CHECK-LABEL: vpternlog_q_v128_imm247:
2245 ; CHECK-NEXT: vpternlogq $247, %xmm2, %xmm1, %xmm0
2247 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 247)
2251 define <8 x i32> @vpternlog_d_v256_imm248(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
2252 ; CHECK-LABEL: vpternlog_d_v256_imm248:
2254 ; CHECK-NEXT: vpternlogd $248, %ymm2, %ymm1, %ymm0
2256 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 248)
2260 define <8 x i64> @vpternlog_q_v512_imm249(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
2261 ; CHECK-LABEL: vpternlog_q_v512_imm249:
2263 ; CHECK-NEXT: vpternlogq $249, %zmm2, %zmm1, %zmm0
2265 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 249)
2269 define <4 x i32> @vpternlog_d_v128_imm250(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2) nounwind {
2270 ; CHECK-LABEL: vpternlog_d_v128_imm250:
2272 ; CHECK-NEXT: vorps %xmm2, %xmm0, %xmm0
2274 %r = tail call <4 x i32> @llvm.x86.avx512.pternlog.d.128(<4 x i32> %v0, <4 x i32> %v1, <4 x i32> %v2, i32 250)
2278 define <4 x i64> @vpternlog_q_v256_imm251(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2279 ; CHECK-LABEL: vpternlog_q_v256_imm251:
2281 ; CHECK-NEXT: vpternlogq $251, %ymm2, %ymm1, %ymm0
2283 %r = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 251)
2287 define <16 x i32> @vpternlog_d_v512_imm252(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2) nounwind {
2288 ; CHECK-LABEL: vpternlog_d_v512_imm252:
2290 ; CHECK-NEXT: vpord %zmm1, %zmm0, %zmm0
2292 %r = tail call <16 x i32> @llvm.x86.avx512.pternlog.d.512(<16 x i32> %v0, <16 x i32> %v1, <16 x i32> %v2, i32 252)
2296 ; This is bitselect pattern
2297 define <2 x i64> @vpternlog_q_v128_imm253(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2) nounwind {
2298 ; CHECK-LABEL: vpternlog_q_v128_imm253:
2300 ; CHECK-NEXT: vpternlogq $253, %xmm2, %xmm1, %xmm0
2302 %r = tail call <2 x i64> @llvm.x86.avx512.pternlog.q.128(<2 x i64> %v0, <2 x i64> %v1, <2 x i64> %v2, i32 253)
2306 define <8 x i32> @vpternlog_d_v256_imm254(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2) nounwind {
2307 ; CHECK-LABEL: vpternlog_d_v256_imm254:
2309 ; CHECK-NEXT: vpternlogd $254, %ymm2, %ymm1, %ymm0
2311 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, i32 254)
2315 define <8 x i64> @vpternlog_q_v512_imm255(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2) nounwind {
2316 ; CHECK-LABEL: vpternlog_q_v512_imm255:
2318 ; CHECK-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0
2320 %r = tail call <8 x i64> @llvm.x86.avx512.pternlog.q.512(<8 x i64> %v0, <8 x i64> %v1, <8 x i64> %v2, i32 255)
2324 define <8 x i32> @vpternlog_vselect_8xi32(<8 x i32> %v0, <8 x i32> %v1, <8 x i32> %v2, <8 x i32> %v3) nounwind {
2325 ; CHECK-LABEL: vpternlog_vselect_8xi32:
2327 ; CHECK-NEXT: vpcmpeqd %ymm1, %ymm0, %ymm0
2328 ; CHECK-NEXT: vpternlogd $202, %ymm2, %ymm1, %ymm0
2330 %vcmp = icmp eq <8 x i32> %v0, %v1
2331 %vmask = sext <8 x i1> %vcmp to <8 x i32>
2332 %r = tail call <8 x i32> @llvm.x86.avx512.pternlog.d.256(<8 x i32> %vmask, <8 x i32> %v1, <8 x i32> %v2, i32 202)
2336 define <4 x i64> @vpternlog_carry_save_add_4xi64(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2) nounwind {
2337 ; CHECK-LABEL: vpternlog_carry_save_add_4xi64:
2339 ; CHECK-NEXT: vmovdqa %ymm0, %ymm3
2340 ; CHECK-NEXT: vpternlogq $150, %ymm2, %ymm1, %ymm3
2341 ; CHECK-NEXT: vpternlogq $232, %ymm2, %ymm0, %ymm1
2342 ; CHECK-NEXT: vmovdqa %ymm3, %ymm0
2343 ; CHECK-NEXT: jmp use_merge_4xi64@PLT # TAILCALL
2344 %l = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 150)
2345 %h = tail call <4 x i64> @llvm.x86.avx512.pternlog.q.256(<4 x i64> %v0, <4 x i64> %v1, <4 x i64> %v2, i32 232)
2346 %r = tail call <4 x i64> @use_merge_4xi64(<4 x i64> %l, <4 x i64> %h)