1use crate::x86::assembler::*;
2use crate::x86::operands::*;
3use super::super::opcodes::*;
4use crate::core::emitter::*;
5use crate::core::operand::*;
6
7const NOREG: Operand = Operand::new();
9
10pub trait VpcompressbEmitter<A, B> {
31 fn vpcompressb(&mut self, op0: A, op1: B);
32}
33
34impl<'a> VpcompressbEmitter<Mem, Xmm> for Assembler<'a> {
35 fn vpcompressb(&mut self, op0: Mem, op1: Xmm) {
36 self.emit(VPCOMPRESSB128MR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
37 }
38}
39
40impl<'a> VpcompressbEmitter<Mem, Ymm> for Assembler<'a> {
41 fn vpcompressb(&mut self, op0: Mem, op1: Ymm) {
42 self.emit(VPCOMPRESSB256MR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
43 }
44}
45
46impl<'a> VpcompressbEmitter<Mem, Zmm> for Assembler<'a> {
47 fn vpcompressb(&mut self, op0: Mem, op1: Zmm) {
48 self.emit(VPCOMPRESSB512MR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
49 }
50}
51
52impl<'a> VpcompressbEmitter<Xmm, Xmm> for Assembler<'a> {
53 fn vpcompressb(&mut self, op0: Xmm, op1: Xmm) {
54 self.emit(VPCOMPRESSB128RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
55 }
56}
57
58impl<'a> VpcompressbEmitter<Ymm, Ymm> for Assembler<'a> {
59 fn vpcompressb(&mut self, op0: Ymm, op1: Ymm) {
60 self.emit(VPCOMPRESSB256RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
61 }
62}
63
64impl<'a> VpcompressbEmitter<Zmm, Zmm> for Assembler<'a> {
65 fn vpcompressb(&mut self, op0: Zmm, op1: Zmm) {
66 self.emit(VPCOMPRESSB512RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
67 }
68}
69
70pub trait VpcompressbMaskEmitter<A, B> {
91 fn vpcompressb_mask(&mut self, op0: A, op1: B);
92}
93
94impl<'a> VpcompressbMaskEmitter<Mem, Xmm> for Assembler<'a> {
95 fn vpcompressb_mask(&mut self, op0: Mem, op1: Xmm) {
96 self.emit(VPCOMPRESSB128MR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
97 }
98}
99
100impl<'a> VpcompressbMaskEmitter<Mem, Ymm> for Assembler<'a> {
101 fn vpcompressb_mask(&mut self, op0: Mem, op1: Ymm) {
102 self.emit(VPCOMPRESSB256MR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
103 }
104}
105
106impl<'a> VpcompressbMaskEmitter<Mem, Zmm> for Assembler<'a> {
107 fn vpcompressb_mask(&mut self, op0: Mem, op1: Zmm) {
108 self.emit(VPCOMPRESSB512MR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
109 }
110}
111
112impl<'a> VpcompressbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
113 fn vpcompressb_mask(&mut self, op0: Xmm, op1: Xmm) {
114 self.emit(VPCOMPRESSB128RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
115 }
116}
117
118impl<'a> VpcompressbMaskEmitter<Ymm, Ymm> for Assembler<'a> {
119 fn vpcompressb_mask(&mut self, op0: Ymm, op1: Ymm) {
120 self.emit(VPCOMPRESSB256RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
121 }
122}
123
124impl<'a> VpcompressbMaskEmitter<Zmm, Zmm> for Assembler<'a> {
125 fn vpcompressb_mask(&mut self, op0: Zmm, op1: Zmm) {
126 self.emit(VPCOMPRESSB512RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
127 }
128}
129
130pub trait VpcompressbMaskzEmitter<A, B> {
148 fn vpcompressb_maskz(&mut self, op0: A, op1: B);
149}
150
151impl<'a> VpcompressbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
152 fn vpcompressb_maskz(&mut self, op0: Xmm, op1: Xmm) {
153 self.emit(VPCOMPRESSB128RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
154 }
155}
156
157impl<'a> VpcompressbMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
158 fn vpcompressb_maskz(&mut self, op0: Ymm, op1: Ymm) {
159 self.emit(VPCOMPRESSB256RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
160 }
161}
162
163impl<'a> VpcompressbMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
164 fn vpcompressb_maskz(&mut self, op0: Zmm, op1: Zmm) {
165 self.emit(VPCOMPRESSB512RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
166 }
167}
168
169pub trait VpcompresswEmitter<A, B> {
190 fn vpcompressw(&mut self, op0: A, op1: B);
191}
192
193impl<'a> VpcompresswEmitter<Mem, Xmm> for Assembler<'a> {
194 fn vpcompressw(&mut self, op0: Mem, op1: Xmm) {
195 self.emit(VPCOMPRESSW128MR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
196 }
197}
198
199impl<'a> VpcompresswEmitter<Mem, Ymm> for Assembler<'a> {
200 fn vpcompressw(&mut self, op0: Mem, op1: Ymm) {
201 self.emit(VPCOMPRESSW256MR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
202 }
203}
204
205impl<'a> VpcompresswEmitter<Mem, Zmm> for Assembler<'a> {
206 fn vpcompressw(&mut self, op0: Mem, op1: Zmm) {
207 self.emit(VPCOMPRESSW512MR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
208 }
209}
210
211impl<'a> VpcompresswEmitter<Xmm, Xmm> for Assembler<'a> {
212 fn vpcompressw(&mut self, op0: Xmm, op1: Xmm) {
213 self.emit(VPCOMPRESSW128RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
214 }
215}
216
217impl<'a> VpcompresswEmitter<Ymm, Ymm> for Assembler<'a> {
218 fn vpcompressw(&mut self, op0: Ymm, op1: Ymm) {
219 self.emit(VPCOMPRESSW256RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
220 }
221}
222
223impl<'a> VpcompresswEmitter<Zmm, Zmm> for Assembler<'a> {
224 fn vpcompressw(&mut self, op0: Zmm, op1: Zmm) {
225 self.emit(VPCOMPRESSW512RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
226 }
227}
228
229pub trait VpcompresswMaskEmitter<A, B> {
250 fn vpcompressw_mask(&mut self, op0: A, op1: B);
251}
252
253impl<'a> VpcompresswMaskEmitter<Mem, Xmm> for Assembler<'a> {
254 fn vpcompressw_mask(&mut self, op0: Mem, op1: Xmm) {
255 self.emit(VPCOMPRESSW128MR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
256 }
257}
258
259impl<'a> VpcompresswMaskEmitter<Mem, Ymm> for Assembler<'a> {
260 fn vpcompressw_mask(&mut self, op0: Mem, op1: Ymm) {
261 self.emit(VPCOMPRESSW256MR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
262 }
263}
264
265impl<'a> VpcompresswMaskEmitter<Mem, Zmm> for Assembler<'a> {
266 fn vpcompressw_mask(&mut self, op0: Mem, op1: Zmm) {
267 self.emit(VPCOMPRESSW512MR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
268 }
269}
270
271impl<'a> VpcompresswMaskEmitter<Xmm, Xmm> for Assembler<'a> {
272 fn vpcompressw_mask(&mut self, op0: Xmm, op1: Xmm) {
273 self.emit(VPCOMPRESSW128RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
274 }
275}
276
277impl<'a> VpcompresswMaskEmitter<Ymm, Ymm> for Assembler<'a> {
278 fn vpcompressw_mask(&mut self, op0: Ymm, op1: Ymm) {
279 self.emit(VPCOMPRESSW256RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
280 }
281}
282
283impl<'a> VpcompresswMaskEmitter<Zmm, Zmm> for Assembler<'a> {
284 fn vpcompressw_mask(&mut self, op0: Zmm, op1: Zmm) {
285 self.emit(VPCOMPRESSW512RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
286 }
287}
288
289pub trait VpcompresswMaskzEmitter<A, B> {
307 fn vpcompressw_maskz(&mut self, op0: A, op1: B);
308}
309
310impl<'a> VpcompresswMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
311 fn vpcompressw_maskz(&mut self, op0: Xmm, op1: Xmm) {
312 self.emit(VPCOMPRESSW128RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
313 }
314}
315
316impl<'a> VpcompresswMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
317 fn vpcompressw_maskz(&mut self, op0: Ymm, op1: Ymm) {
318 self.emit(VPCOMPRESSW256RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
319 }
320}
321
322impl<'a> VpcompresswMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
323 fn vpcompressw_maskz(&mut self, op0: Zmm, op1: Zmm) {
324 self.emit(VPCOMPRESSW512RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
325 }
326}
327
328pub trait VpexpandbEmitter<A, B> {
349 fn vpexpandb(&mut self, op0: A, op1: B);
350}
351
352impl<'a> VpexpandbEmitter<Xmm, Mem> for Assembler<'a> {
353 fn vpexpandb(&mut self, op0: Xmm, op1: Mem) {
354 self.emit(VPEXPANDB128RM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
355 }
356}
357
358impl<'a> VpexpandbEmitter<Ymm, Mem> for Assembler<'a> {
359 fn vpexpandb(&mut self, op0: Ymm, op1: Mem) {
360 self.emit(VPEXPANDB256RM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
361 }
362}
363
364impl<'a> VpexpandbEmitter<Zmm, Mem> for Assembler<'a> {
365 fn vpexpandb(&mut self, op0: Zmm, op1: Mem) {
366 self.emit(VPEXPANDB512RM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
367 }
368}
369
370impl<'a> VpexpandbEmitter<Xmm, Xmm> for Assembler<'a> {
371 fn vpexpandb(&mut self, op0: Xmm, op1: Xmm) {
372 self.emit(VPEXPANDB128RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
373 }
374}
375
376impl<'a> VpexpandbEmitter<Ymm, Ymm> for Assembler<'a> {
377 fn vpexpandb(&mut self, op0: Ymm, op1: Ymm) {
378 self.emit(VPEXPANDB256RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
379 }
380}
381
382impl<'a> VpexpandbEmitter<Zmm, Zmm> for Assembler<'a> {
383 fn vpexpandb(&mut self, op0: Zmm, op1: Zmm) {
384 self.emit(VPEXPANDB512RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
385 }
386}
387
388pub trait VpexpandbMaskEmitter<A, B> {
409 fn vpexpandb_mask(&mut self, op0: A, op1: B);
410}
411
412impl<'a> VpexpandbMaskEmitter<Xmm, Mem> for Assembler<'a> {
413 fn vpexpandb_mask(&mut self, op0: Xmm, op1: Mem) {
414 self.emit(VPEXPANDB128RM_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
415 }
416}
417
418impl<'a> VpexpandbMaskEmitter<Ymm, Mem> for Assembler<'a> {
419 fn vpexpandb_mask(&mut self, op0: Ymm, op1: Mem) {
420 self.emit(VPEXPANDB256RM_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
421 }
422}
423
424impl<'a> VpexpandbMaskEmitter<Zmm, Mem> for Assembler<'a> {
425 fn vpexpandb_mask(&mut self, op0: Zmm, op1: Mem) {
426 self.emit(VPEXPANDB512RM_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
427 }
428}
429
430impl<'a> VpexpandbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
431 fn vpexpandb_mask(&mut self, op0: Xmm, op1: Xmm) {
432 self.emit(VPEXPANDB128RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
433 }
434}
435
436impl<'a> VpexpandbMaskEmitter<Ymm, Ymm> for Assembler<'a> {
437 fn vpexpandb_mask(&mut self, op0: Ymm, op1: Ymm) {
438 self.emit(VPEXPANDB256RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
439 }
440}
441
442impl<'a> VpexpandbMaskEmitter<Zmm, Zmm> for Assembler<'a> {
443 fn vpexpandb_mask(&mut self, op0: Zmm, op1: Zmm) {
444 self.emit(VPEXPANDB512RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
445 }
446}
447
448pub trait VpexpandbMaskzEmitter<A, B> {
469 fn vpexpandb_maskz(&mut self, op0: A, op1: B);
470}
471
472impl<'a> VpexpandbMaskzEmitter<Xmm, Mem> for Assembler<'a> {
473 fn vpexpandb_maskz(&mut self, op0: Xmm, op1: Mem) {
474 self.emit(VPEXPANDB128RM_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
475 }
476}
477
478impl<'a> VpexpandbMaskzEmitter<Ymm, Mem> for Assembler<'a> {
479 fn vpexpandb_maskz(&mut self, op0: Ymm, op1: Mem) {
480 self.emit(VPEXPANDB256RM_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
481 }
482}
483
484impl<'a> VpexpandbMaskzEmitter<Zmm, Mem> for Assembler<'a> {
485 fn vpexpandb_maskz(&mut self, op0: Zmm, op1: Mem) {
486 self.emit(VPEXPANDB512RM_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
487 }
488}
489
490impl<'a> VpexpandbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
491 fn vpexpandb_maskz(&mut self, op0: Xmm, op1: Xmm) {
492 self.emit(VPEXPANDB128RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
493 }
494}
495
496impl<'a> VpexpandbMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
497 fn vpexpandb_maskz(&mut self, op0: Ymm, op1: Ymm) {
498 self.emit(VPEXPANDB256RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
499 }
500}
501
502impl<'a> VpexpandbMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
503 fn vpexpandb_maskz(&mut self, op0: Zmm, op1: Zmm) {
504 self.emit(VPEXPANDB512RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
505 }
506}
507
508pub trait VpexpandwEmitter<A, B> {
529 fn vpexpandw(&mut self, op0: A, op1: B);
530}
531
532impl<'a> VpexpandwEmitter<Xmm, Mem> for Assembler<'a> {
533 fn vpexpandw(&mut self, op0: Xmm, op1: Mem) {
534 self.emit(VPEXPANDW128RM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
535 }
536}
537
538impl<'a> VpexpandwEmitter<Ymm, Mem> for Assembler<'a> {
539 fn vpexpandw(&mut self, op0: Ymm, op1: Mem) {
540 self.emit(VPEXPANDW256RM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
541 }
542}
543
544impl<'a> VpexpandwEmitter<Zmm, Mem> for Assembler<'a> {
545 fn vpexpandw(&mut self, op0: Zmm, op1: Mem) {
546 self.emit(VPEXPANDW512RM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
547 }
548}
549
550impl<'a> VpexpandwEmitter<Xmm, Xmm> for Assembler<'a> {
551 fn vpexpandw(&mut self, op0: Xmm, op1: Xmm) {
552 self.emit(VPEXPANDW128RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
553 }
554}
555
556impl<'a> VpexpandwEmitter<Ymm, Ymm> for Assembler<'a> {
557 fn vpexpandw(&mut self, op0: Ymm, op1: Ymm) {
558 self.emit(VPEXPANDW256RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
559 }
560}
561
562impl<'a> VpexpandwEmitter<Zmm, Zmm> for Assembler<'a> {
563 fn vpexpandw(&mut self, op0: Zmm, op1: Zmm) {
564 self.emit(VPEXPANDW512RR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
565 }
566}
567
568pub trait VpexpandwMaskEmitter<A, B> {
589 fn vpexpandw_mask(&mut self, op0: A, op1: B);
590}
591
592impl<'a> VpexpandwMaskEmitter<Xmm, Mem> for Assembler<'a> {
593 fn vpexpandw_mask(&mut self, op0: Xmm, op1: Mem) {
594 self.emit(VPEXPANDW128RM_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
595 }
596}
597
598impl<'a> VpexpandwMaskEmitter<Ymm, Mem> for Assembler<'a> {
599 fn vpexpandw_mask(&mut self, op0: Ymm, op1: Mem) {
600 self.emit(VPEXPANDW256RM_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
601 }
602}
603
604impl<'a> VpexpandwMaskEmitter<Zmm, Mem> for Assembler<'a> {
605 fn vpexpandw_mask(&mut self, op0: Zmm, op1: Mem) {
606 self.emit(VPEXPANDW512RM_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
607 }
608}
609
610impl<'a> VpexpandwMaskEmitter<Xmm, Xmm> for Assembler<'a> {
611 fn vpexpandw_mask(&mut self, op0: Xmm, op1: Xmm) {
612 self.emit(VPEXPANDW128RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
613 }
614}
615
616impl<'a> VpexpandwMaskEmitter<Ymm, Ymm> for Assembler<'a> {
617 fn vpexpandw_mask(&mut self, op0: Ymm, op1: Ymm) {
618 self.emit(VPEXPANDW256RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
619 }
620}
621
622impl<'a> VpexpandwMaskEmitter<Zmm, Zmm> for Assembler<'a> {
623 fn vpexpandw_mask(&mut self, op0: Zmm, op1: Zmm) {
624 self.emit(VPEXPANDW512RR_MASK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
625 }
626}
627
628pub trait VpexpandwMaskzEmitter<A, B> {
649 fn vpexpandw_maskz(&mut self, op0: A, op1: B);
650}
651
652impl<'a> VpexpandwMaskzEmitter<Xmm, Mem> for Assembler<'a> {
653 fn vpexpandw_maskz(&mut self, op0: Xmm, op1: Mem) {
654 self.emit(VPEXPANDW128RM_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
655 }
656}
657
658impl<'a> VpexpandwMaskzEmitter<Ymm, Mem> for Assembler<'a> {
659 fn vpexpandw_maskz(&mut self, op0: Ymm, op1: Mem) {
660 self.emit(VPEXPANDW256RM_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
661 }
662}
663
664impl<'a> VpexpandwMaskzEmitter<Zmm, Mem> for Assembler<'a> {
665 fn vpexpandw_maskz(&mut self, op0: Zmm, op1: Mem) {
666 self.emit(VPEXPANDW512RM_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
667 }
668}
669
670impl<'a> VpexpandwMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
671 fn vpexpandw_maskz(&mut self, op0: Xmm, op1: Xmm) {
672 self.emit(VPEXPANDW128RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
673 }
674}
675
676impl<'a> VpexpandwMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
677 fn vpexpandw_maskz(&mut self, op0: Ymm, op1: Ymm) {
678 self.emit(VPEXPANDW256RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
679 }
680}
681
682impl<'a> VpexpandwMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
683 fn vpexpandw_maskz(&mut self, op0: Zmm, op1: Zmm) {
684 self.emit(VPEXPANDW512RR_MASKZ, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
685 }
686}
687
688pub trait VpshlddEmitter<A, B, C, D> {
709 fn vpshldd(&mut self, op0: A, op1: B, op2: C, op3: D);
710}
711
712impl<'a> VpshlddEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
713 fn vpshldd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
714 self.emit(VPSHLDD128RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
715 }
716}
717
718impl<'a> VpshlddEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
719 fn vpshldd(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
720 self.emit(VPSHLDD128RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
721 }
722}
723
724impl<'a> VpshlddEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
725 fn vpshldd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
726 self.emit(VPSHLDD256RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
727 }
728}
729
730impl<'a> VpshlddEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
731 fn vpshldd(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
732 self.emit(VPSHLDD256RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
733 }
734}
735
736impl<'a> VpshlddEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
737 fn vpshldd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
738 self.emit(VPSHLDD512RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
739 }
740}
741
742impl<'a> VpshlddEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
743 fn vpshldd(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
744 self.emit(VPSHLDD512RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
745 }
746}
747
748pub trait VpshlddMaskEmitter<A, B, C, D> {
769 fn vpshldd_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
770}
771
772impl<'a> VpshlddMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
773 fn vpshldd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
774 self.emit(VPSHLDD128RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
775 }
776}
777
778impl<'a> VpshlddMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
779 fn vpshldd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
780 self.emit(VPSHLDD128RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
781 }
782}
783
784impl<'a> VpshlddMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
785 fn vpshldd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
786 self.emit(VPSHLDD256RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
787 }
788}
789
790impl<'a> VpshlddMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
791 fn vpshldd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
792 self.emit(VPSHLDD256RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
793 }
794}
795
796impl<'a> VpshlddMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
797 fn vpshldd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
798 self.emit(VPSHLDD512RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
799 }
800}
801
802impl<'a> VpshlddMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
803 fn vpshldd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
804 self.emit(VPSHLDD512RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
805 }
806}
807
808pub trait VpshlddMaskzEmitter<A, B, C, D> {
829 fn vpshldd_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
830}
831
832impl<'a> VpshlddMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
833 fn vpshldd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
834 self.emit(VPSHLDD128RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
835 }
836}
837
838impl<'a> VpshlddMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
839 fn vpshldd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
840 self.emit(VPSHLDD128RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
841 }
842}
843
844impl<'a> VpshlddMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
845 fn vpshldd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
846 self.emit(VPSHLDD256RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
847 }
848}
849
850impl<'a> VpshlddMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
851 fn vpshldd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
852 self.emit(VPSHLDD256RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
853 }
854}
855
856impl<'a> VpshlddMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
857 fn vpshldd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
858 self.emit(VPSHLDD512RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
859 }
860}
861
862impl<'a> VpshlddMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
863 fn vpshldd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
864 self.emit(VPSHLDD512RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
865 }
866}
867
868pub trait VpshldqEmitter<A, B, C, D> {
889 fn vpshldq(&mut self, op0: A, op1: B, op2: C, op3: D);
890}
891
892impl<'a> VpshldqEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
893 fn vpshldq(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
894 self.emit(VPSHLDQ128RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
895 }
896}
897
898impl<'a> VpshldqEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
899 fn vpshldq(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
900 self.emit(VPSHLDQ128RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
901 }
902}
903
904impl<'a> VpshldqEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
905 fn vpshldq(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
906 self.emit(VPSHLDQ256RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
907 }
908}
909
910impl<'a> VpshldqEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
911 fn vpshldq(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
912 self.emit(VPSHLDQ256RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
913 }
914}
915
916impl<'a> VpshldqEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
917 fn vpshldq(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
918 self.emit(VPSHLDQ512RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
919 }
920}
921
922impl<'a> VpshldqEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
923 fn vpshldq(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
924 self.emit(VPSHLDQ512RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
925 }
926}
927
928pub trait VpshldqMaskEmitter<A, B, C, D> {
949 fn vpshldq_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
950}
951
952impl<'a> VpshldqMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
953 fn vpshldq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
954 self.emit(VPSHLDQ128RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
955 }
956}
957
958impl<'a> VpshldqMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
959 fn vpshldq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
960 self.emit(VPSHLDQ128RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
961 }
962}
963
964impl<'a> VpshldqMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
965 fn vpshldq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
966 self.emit(VPSHLDQ256RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
967 }
968}
969
970impl<'a> VpshldqMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
971 fn vpshldq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
972 self.emit(VPSHLDQ256RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
973 }
974}
975
976impl<'a> VpshldqMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
977 fn vpshldq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
978 self.emit(VPSHLDQ512RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
979 }
980}
981
982impl<'a> VpshldqMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
983 fn vpshldq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
984 self.emit(VPSHLDQ512RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
985 }
986}
987
988pub trait VpshldqMaskzEmitter<A, B, C, D> {
1009 fn vpshldq_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
1010}
1011
1012impl<'a> VpshldqMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1013 fn vpshldq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1014 self.emit(VPSHLDQ128RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1015 }
1016}
1017
1018impl<'a> VpshldqMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1019 fn vpshldq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1020 self.emit(VPSHLDQ128RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1021 }
1022}
1023
1024impl<'a> VpshldqMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1025 fn vpshldq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1026 self.emit(VPSHLDQ256RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1027 }
1028}
1029
1030impl<'a> VpshldqMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1031 fn vpshldq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1032 self.emit(VPSHLDQ256RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1033 }
1034}
1035
1036impl<'a> VpshldqMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1037 fn vpshldq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1038 self.emit(VPSHLDQ512RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1039 }
1040}
1041
1042impl<'a> VpshldqMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1043 fn vpshldq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1044 self.emit(VPSHLDQ512RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1045 }
1046}
1047
1048pub trait VpshldvdEmitter<A, B, C> {
1069 fn vpshldvd(&mut self, op0: A, op1: B, op2: C);
1070}
1071
1072impl<'a> VpshldvdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1073 fn vpshldvd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1074 self.emit(VPSHLDVD128RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1075 }
1076}
1077
1078impl<'a> VpshldvdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1079 fn vpshldvd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1080 self.emit(VPSHLDVD128RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1081 }
1082}
1083
1084impl<'a> VpshldvdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1085 fn vpshldvd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1086 self.emit(VPSHLDVD256RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1087 }
1088}
1089
1090impl<'a> VpshldvdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1091 fn vpshldvd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1092 self.emit(VPSHLDVD256RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1093 }
1094}
1095
1096impl<'a> VpshldvdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1097 fn vpshldvd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1098 self.emit(VPSHLDVD512RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1099 }
1100}
1101
1102impl<'a> VpshldvdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1103 fn vpshldvd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1104 self.emit(VPSHLDVD512RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1105 }
1106}
1107
1108pub trait VpshldvdMaskEmitter<A, B, C> {
1129 fn vpshldvd_mask(&mut self, op0: A, op1: B, op2: C);
1130}
1131
1132impl<'a> VpshldvdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1133 fn vpshldvd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1134 self.emit(VPSHLDVD128RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1135 }
1136}
1137
1138impl<'a> VpshldvdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1139 fn vpshldvd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1140 self.emit(VPSHLDVD128RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1141 }
1142}
1143
1144impl<'a> VpshldvdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1145 fn vpshldvd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1146 self.emit(VPSHLDVD256RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1147 }
1148}
1149
1150impl<'a> VpshldvdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1151 fn vpshldvd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1152 self.emit(VPSHLDVD256RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1153 }
1154}
1155
1156impl<'a> VpshldvdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1157 fn vpshldvd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1158 self.emit(VPSHLDVD512RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1159 }
1160}
1161
1162impl<'a> VpshldvdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1163 fn vpshldvd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1164 self.emit(VPSHLDVD512RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1165 }
1166}
1167
1168pub trait VpshldvdMaskzEmitter<A, B, C> {
1189 fn vpshldvd_maskz(&mut self, op0: A, op1: B, op2: C);
1190}
1191
1192impl<'a> VpshldvdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1193 fn vpshldvd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1194 self.emit(VPSHLDVD128RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1195 }
1196}
1197
1198impl<'a> VpshldvdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1199 fn vpshldvd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1200 self.emit(VPSHLDVD128RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1201 }
1202}
1203
1204impl<'a> VpshldvdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1205 fn vpshldvd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1206 self.emit(VPSHLDVD256RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1207 }
1208}
1209
1210impl<'a> VpshldvdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1211 fn vpshldvd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1212 self.emit(VPSHLDVD256RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1213 }
1214}
1215
1216impl<'a> VpshldvdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1217 fn vpshldvd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1218 self.emit(VPSHLDVD512RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1219 }
1220}
1221
1222impl<'a> VpshldvdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1223 fn vpshldvd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1224 self.emit(VPSHLDVD512RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1225 }
1226}
1227
1228pub trait VpshldvqEmitter<A, B, C> {
1249 fn vpshldvq(&mut self, op0: A, op1: B, op2: C);
1250}
1251
1252impl<'a> VpshldvqEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1253 fn vpshldvq(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1254 self.emit(VPSHLDVQ128RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1255 }
1256}
1257
1258impl<'a> VpshldvqEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1259 fn vpshldvq(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1260 self.emit(VPSHLDVQ128RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1261 }
1262}
1263
1264impl<'a> VpshldvqEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1265 fn vpshldvq(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1266 self.emit(VPSHLDVQ256RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1267 }
1268}
1269
1270impl<'a> VpshldvqEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1271 fn vpshldvq(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1272 self.emit(VPSHLDVQ256RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1273 }
1274}
1275
1276impl<'a> VpshldvqEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1277 fn vpshldvq(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1278 self.emit(VPSHLDVQ512RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1279 }
1280}
1281
1282impl<'a> VpshldvqEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1283 fn vpshldvq(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1284 self.emit(VPSHLDVQ512RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1285 }
1286}
1287
1288pub trait VpshldvqMaskEmitter<A, B, C> {
1309 fn vpshldvq_mask(&mut self, op0: A, op1: B, op2: C);
1310}
1311
1312impl<'a> VpshldvqMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1313 fn vpshldvq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1314 self.emit(VPSHLDVQ128RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1315 }
1316}
1317
1318impl<'a> VpshldvqMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1319 fn vpshldvq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1320 self.emit(VPSHLDVQ128RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1321 }
1322}
1323
1324impl<'a> VpshldvqMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1325 fn vpshldvq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1326 self.emit(VPSHLDVQ256RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1327 }
1328}
1329
1330impl<'a> VpshldvqMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1331 fn vpshldvq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1332 self.emit(VPSHLDVQ256RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1333 }
1334}
1335
1336impl<'a> VpshldvqMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1337 fn vpshldvq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1338 self.emit(VPSHLDVQ512RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1339 }
1340}
1341
1342impl<'a> VpshldvqMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1343 fn vpshldvq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1344 self.emit(VPSHLDVQ512RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1345 }
1346}
1347
1348pub trait VpshldvqMaskzEmitter<A, B, C> {
1369 fn vpshldvq_maskz(&mut self, op0: A, op1: B, op2: C);
1370}
1371
1372impl<'a> VpshldvqMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1373 fn vpshldvq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1374 self.emit(VPSHLDVQ128RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1375 }
1376}
1377
1378impl<'a> VpshldvqMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1379 fn vpshldvq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1380 self.emit(VPSHLDVQ128RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1381 }
1382}
1383
1384impl<'a> VpshldvqMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1385 fn vpshldvq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1386 self.emit(VPSHLDVQ256RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1387 }
1388}
1389
1390impl<'a> VpshldvqMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1391 fn vpshldvq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1392 self.emit(VPSHLDVQ256RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1393 }
1394}
1395
1396impl<'a> VpshldvqMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1397 fn vpshldvq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1398 self.emit(VPSHLDVQ512RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1399 }
1400}
1401
1402impl<'a> VpshldvqMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1403 fn vpshldvq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1404 self.emit(VPSHLDVQ512RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1405 }
1406}
1407
1408pub trait VpshldvwEmitter<A, B, C> {
1429 fn vpshldvw(&mut self, op0: A, op1: B, op2: C);
1430}
1431
1432impl<'a> VpshldvwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1433 fn vpshldvw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1434 self.emit(VPSHLDVW128RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1435 }
1436}
1437
1438impl<'a> VpshldvwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1439 fn vpshldvw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1440 self.emit(VPSHLDVW128RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1441 }
1442}
1443
1444impl<'a> VpshldvwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1445 fn vpshldvw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1446 self.emit(VPSHLDVW256RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1447 }
1448}
1449
1450impl<'a> VpshldvwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1451 fn vpshldvw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1452 self.emit(VPSHLDVW256RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1453 }
1454}
1455
1456impl<'a> VpshldvwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1457 fn vpshldvw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1458 self.emit(VPSHLDVW512RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1459 }
1460}
1461
1462impl<'a> VpshldvwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1463 fn vpshldvw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1464 self.emit(VPSHLDVW512RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1465 }
1466}
1467
1468pub trait VpshldvwMaskEmitter<A, B, C> {
1489 fn vpshldvw_mask(&mut self, op0: A, op1: B, op2: C);
1490}
1491
1492impl<'a> VpshldvwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1493 fn vpshldvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1494 self.emit(VPSHLDVW128RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1495 }
1496}
1497
1498impl<'a> VpshldvwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1499 fn vpshldvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1500 self.emit(VPSHLDVW128RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1501 }
1502}
1503
1504impl<'a> VpshldvwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1505 fn vpshldvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1506 self.emit(VPSHLDVW256RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1507 }
1508}
1509
1510impl<'a> VpshldvwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1511 fn vpshldvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1512 self.emit(VPSHLDVW256RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1513 }
1514}
1515
1516impl<'a> VpshldvwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1517 fn vpshldvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1518 self.emit(VPSHLDVW512RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1519 }
1520}
1521
1522impl<'a> VpshldvwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1523 fn vpshldvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1524 self.emit(VPSHLDVW512RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1525 }
1526}
1527
1528pub trait VpshldvwMaskzEmitter<A, B, C> {
1549 fn vpshldvw_maskz(&mut self, op0: A, op1: B, op2: C);
1550}
1551
1552impl<'a> VpshldvwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1553 fn vpshldvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1554 self.emit(VPSHLDVW128RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1555 }
1556}
1557
1558impl<'a> VpshldvwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1559 fn vpshldvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1560 self.emit(VPSHLDVW128RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1561 }
1562}
1563
1564impl<'a> VpshldvwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1565 fn vpshldvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1566 self.emit(VPSHLDVW256RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1567 }
1568}
1569
1570impl<'a> VpshldvwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1571 fn vpshldvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1572 self.emit(VPSHLDVW256RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1573 }
1574}
1575
1576impl<'a> VpshldvwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1577 fn vpshldvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1578 self.emit(VPSHLDVW512RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1579 }
1580}
1581
1582impl<'a> VpshldvwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1583 fn vpshldvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1584 self.emit(VPSHLDVW512RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
1585 }
1586}
1587
1588pub trait VpshldwEmitter<A, B, C, D> {
1609 fn vpshldw(&mut self, op0: A, op1: B, op2: C, op3: D);
1610}
1611
1612impl<'a> VpshldwEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1613 fn vpshldw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1614 self.emit(VPSHLDW128RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1615 }
1616}
1617
1618impl<'a> VpshldwEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1619 fn vpshldw(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1620 self.emit(VPSHLDW128RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1621 }
1622}
1623
1624impl<'a> VpshldwEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1625 fn vpshldw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1626 self.emit(VPSHLDW256RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1627 }
1628}
1629
1630impl<'a> VpshldwEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1631 fn vpshldw(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1632 self.emit(VPSHLDW256RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1633 }
1634}
1635
1636impl<'a> VpshldwEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1637 fn vpshldw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1638 self.emit(VPSHLDW512RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1639 }
1640}
1641
1642impl<'a> VpshldwEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1643 fn vpshldw(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1644 self.emit(VPSHLDW512RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1645 }
1646}
1647
1648pub trait VpshldwMaskEmitter<A, B, C, D> {
1669 fn vpshldw_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
1670}
1671
1672impl<'a> VpshldwMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1673 fn vpshldw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1674 self.emit(VPSHLDW128RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1675 }
1676}
1677
1678impl<'a> VpshldwMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1679 fn vpshldw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1680 self.emit(VPSHLDW128RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1681 }
1682}
1683
1684impl<'a> VpshldwMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1685 fn vpshldw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1686 self.emit(VPSHLDW256RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1687 }
1688}
1689
1690impl<'a> VpshldwMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1691 fn vpshldw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1692 self.emit(VPSHLDW256RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1693 }
1694}
1695
1696impl<'a> VpshldwMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1697 fn vpshldw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1698 self.emit(VPSHLDW512RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1699 }
1700}
1701
1702impl<'a> VpshldwMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1703 fn vpshldw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1704 self.emit(VPSHLDW512RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1705 }
1706}
1707
1708pub trait VpshldwMaskzEmitter<A, B, C, D> {
1729 fn vpshldw_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
1730}
1731
1732impl<'a> VpshldwMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1733 fn vpshldw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1734 self.emit(VPSHLDW128RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1735 }
1736}
1737
1738impl<'a> VpshldwMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1739 fn vpshldw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1740 self.emit(VPSHLDW128RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1741 }
1742}
1743
1744impl<'a> VpshldwMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1745 fn vpshldw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1746 self.emit(VPSHLDW256RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1747 }
1748}
1749
1750impl<'a> VpshldwMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1751 fn vpshldw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1752 self.emit(VPSHLDW256RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1753 }
1754}
1755
1756impl<'a> VpshldwMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1757 fn vpshldw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1758 self.emit(VPSHLDW512RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1759 }
1760}
1761
1762impl<'a> VpshldwMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1763 fn vpshldw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1764 self.emit(VPSHLDW512RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1765 }
1766}
1767
1768pub trait VpshrddEmitter<A, B, C, D> {
1789 fn vpshrdd(&mut self, op0: A, op1: B, op2: C, op3: D);
1790}
1791
1792impl<'a> VpshrddEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1793 fn vpshrdd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1794 self.emit(VPSHRDD128RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1795 }
1796}
1797
1798impl<'a> VpshrddEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1799 fn vpshrdd(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1800 self.emit(VPSHRDD128RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1801 }
1802}
1803
1804impl<'a> VpshrddEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1805 fn vpshrdd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1806 self.emit(VPSHRDD256RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1807 }
1808}
1809
1810impl<'a> VpshrddEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1811 fn vpshrdd(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1812 self.emit(VPSHRDD256RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1813 }
1814}
1815
1816impl<'a> VpshrddEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1817 fn vpshrdd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1818 self.emit(VPSHRDD512RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1819 }
1820}
1821
1822impl<'a> VpshrddEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1823 fn vpshrdd(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1824 self.emit(VPSHRDD512RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1825 }
1826}
1827
1828pub trait VpshrddMaskEmitter<A, B, C, D> {
1849 fn vpshrdd_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
1850}
1851
1852impl<'a> VpshrddMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1853 fn vpshrdd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1854 self.emit(VPSHRDD128RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1855 }
1856}
1857
1858impl<'a> VpshrddMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1859 fn vpshrdd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1860 self.emit(VPSHRDD128RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1861 }
1862}
1863
1864impl<'a> VpshrddMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1865 fn vpshrdd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1866 self.emit(VPSHRDD256RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1867 }
1868}
1869
1870impl<'a> VpshrddMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1871 fn vpshrdd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1872 self.emit(VPSHRDD256RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1873 }
1874}
1875
1876impl<'a> VpshrddMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1877 fn vpshrdd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1878 self.emit(VPSHRDD512RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1879 }
1880}
1881
1882impl<'a> VpshrddMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1883 fn vpshrdd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1884 self.emit(VPSHRDD512RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1885 }
1886}
1887
1888pub trait VpshrddMaskzEmitter<A, B, C, D> {
1909 fn vpshrdd_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
1910}
1911
1912impl<'a> VpshrddMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1913 fn vpshrdd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1914 self.emit(VPSHRDD128RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1915 }
1916}
1917
1918impl<'a> VpshrddMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1919 fn vpshrdd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1920 self.emit(VPSHRDD128RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1921 }
1922}
1923
1924impl<'a> VpshrddMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1925 fn vpshrdd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1926 self.emit(VPSHRDD256RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1927 }
1928}
1929
1930impl<'a> VpshrddMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1931 fn vpshrdd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1932 self.emit(VPSHRDD256RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1933 }
1934}
1935
1936impl<'a> VpshrddMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1937 fn vpshrdd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1938 self.emit(VPSHRDD512RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1939 }
1940}
1941
1942impl<'a> VpshrddMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
1943 fn vpshrdd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
1944 self.emit(VPSHRDD512RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1945 }
1946}
1947
1948pub trait VpshrdqEmitter<A, B, C, D> {
1969 fn vpshrdq(&mut self, op0: A, op1: B, op2: C, op3: D);
1970}
1971
1972impl<'a> VpshrdqEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
1973 fn vpshrdq(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
1974 self.emit(VPSHRDQ128RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1975 }
1976}
1977
1978impl<'a> VpshrdqEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
1979 fn vpshrdq(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
1980 self.emit(VPSHRDQ128RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1981 }
1982}
1983
1984impl<'a> VpshrdqEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
1985 fn vpshrdq(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
1986 self.emit(VPSHRDQ256RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1987 }
1988}
1989
1990impl<'a> VpshrdqEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
1991 fn vpshrdq(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
1992 self.emit(VPSHRDQ256RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1993 }
1994}
1995
1996impl<'a> VpshrdqEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
1997 fn vpshrdq(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
1998 self.emit(VPSHRDQ512RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
1999 }
2000}
2001
2002impl<'a> VpshrdqEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
2003 fn vpshrdq(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
2004 self.emit(VPSHRDQ512RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2005 }
2006}
2007
2008pub trait VpshrdqMaskEmitter<A, B, C, D> {
2029 fn vpshrdq_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
2030}
2031
2032impl<'a> VpshrdqMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
2033 fn vpshrdq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
2034 self.emit(VPSHRDQ128RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2035 }
2036}
2037
2038impl<'a> VpshrdqMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
2039 fn vpshrdq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
2040 self.emit(VPSHRDQ128RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2041 }
2042}
2043
2044impl<'a> VpshrdqMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
2045 fn vpshrdq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
2046 self.emit(VPSHRDQ256RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2047 }
2048}
2049
2050impl<'a> VpshrdqMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
2051 fn vpshrdq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
2052 self.emit(VPSHRDQ256RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2053 }
2054}
2055
2056impl<'a> VpshrdqMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
2057 fn vpshrdq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
2058 self.emit(VPSHRDQ512RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2059 }
2060}
2061
2062impl<'a> VpshrdqMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
2063 fn vpshrdq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
2064 self.emit(VPSHRDQ512RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2065 }
2066}
2067
2068pub trait VpshrdqMaskzEmitter<A, B, C, D> {
2089 fn vpshrdq_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
2090}
2091
2092impl<'a> VpshrdqMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
2093 fn vpshrdq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
2094 self.emit(VPSHRDQ128RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2095 }
2096}
2097
2098impl<'a> VpshrdqMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
2099 fn vpshrdq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
2100 self.emit(VPSHRDQ128RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2101 }
2102}
2103
2104impl<'a> VpshrdqMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
2105 fn vpshrdq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
2106 self.emit(VPSHRDQ256RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2107 }
2108}
2109
2110impl<'a> VpshrdqMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
2111 fn vpshrdq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
2112 self.emit(VPSHRDQ256RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2113 }
2114}
2115
2116impl<'a> VpshrdqMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
2117 fn vpshrdq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
2118 self.emit(VPSHRDQ512RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2119 }
2120}
2121
2122impl<'a> VpshrdqMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
2123 fn vpshrdq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
2124 self.emit(VPSHRDQ512RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2125 }
2126}
2127
2128pub trait VpshrdvdEmitter<A, B, C> {
2149 fn vpshrdvd(&mut self, op0: A, op1: B, op2: C);
2150}
2151
2152impl<'a> VpshrdvdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2153 fn vpshrdvd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2154 self.emit(VPSHRDVD128RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2155 }
2156}
2157
2158impl<'a> VpshrdvdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2159 fn vpshrdvd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2160 self.emit(VPSHRDVD128RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2161 }
2162}
2163
2164impl<'a> VpshrdvdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2165 fn vpshrdvd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2166 self.emit(VPSHRDVD256RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2167 }
2168}
2169
2170impl<'a> VpshrdvdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2171 fn vpshrdvd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2172 self.emit(VPSHRDVD256RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2173 }
2174}
2175
2176impl<'a> VpshrdvdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2177 fn vpshrdvd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2178 self.emit(VPSHRDVD512RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2179 }
2180}
2181
2182impl<'a> VpshrdvdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2183 fn vpshrdvd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2184 self.emit(VPSHRDVD512RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2185 }
2186}
2187
2188pub trait VpshrdvdMaskEmitter<A, B, C> {
2209 fn vpshrdvd_mask(&mut self, op0: A, op1: B, op2: C);
2210}
2211
2212impl<'a> VpshrdvdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2213 fn vpshrdvd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2214 self.emit(VPSHRDVD128RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2215 }
2216}
2217
2218impl<'a> VpshrdvdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2219 fn vpshrdvd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2220 self.emit(VPSHRDVD128RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2221 }
2222}
2223
2224impl<'a> VpshrdvdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2225 fn vpshrdvd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2226 self.emit(VPSHRDVD256RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2227 }
2228}
2229
2230impl<'a> VpshrdvdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2231 fn vpshrdvd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2232 self.emit(VPSHRDVD256RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2233 }
2234}
2235
2236impl<'a> VpshrdvdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2237 fn vpshrdvd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2238 self.emit(VPSHRDVD512RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2239 }
2240}
2241
2242impl<'a> VpshrdvdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2243 fn vpshrdvd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2244 self.emit(VPSHRDVD512RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2245 }
2246}
2247
2248pub trait VpshrdvdMaskzEmitter<A, B, C> {
2269 fn vpshrdvd_maskz(&mut self, op0: A, op1: B, op2: C);
2270}
2271
2272impl<'a> VpshrdvdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2273 fn vpshrdvd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2274 self.emit(VPSHRDVD128RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2275 }
2276}
2277
2278impl<'a> VpshrdvdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2279 fn vpshrdvd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2280 self.emit(VPSHRDVD128RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2281 }
2282}
2283
2284impl<'a> VpshrdvdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2285 fn vpshrdvd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2286 self.emit(VPSHRDVD256RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2287 }
2288}
2289
2290impl<'a> VpshrdvdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2291 fn vpshrdvd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2292 self.emit(VPSHRDVD256RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2293 }
2294}
2295
2296impl<'a> VpshrdvdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2297 fn vpshrdvd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2298 self.emit(VPSHRDVD512RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2299 }
2300}
2301
2302impl<'a> VpshrdvdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2303 fn vpshrdvd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2304 self.emit(VPSHRDVD512RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2305 }
2306}
2307
2308pub trait VpshrdvqEmitter<A, B, C> {
2329 fn vpshrdvq(&mut self, op0: A, op1: B, op2: C);
2330}
2331
2332impl<'a> VpshrdvqEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2333 fn vpshrdvq(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2334 self.emit(VPSHRDVQ128RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2335 }
2336}
2337
2338impl<'a> VpshrdvqEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2339 fn vpshrdvq(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2340 self.emit(VPSHRDVQ128RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2341 }
2342}
2343
2344impl<'a> VpshrdvqEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2345 fn vpshrdvq(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2346 self.emit(VPSHRDVQ256RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2347 }
2348}
2349
2350impl<'a> VpshrdvqEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2351 fn vpshrdvq(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2352 self.emit(VPSHRDVQ256RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2353 }
2354}
2355
2356impl<'a> VpshrdvqEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2357 fn vpshrdvq(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2358 self.emit(VPSHRDVQ512RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2359 }
2360}
2361
2362impl<'a> VpshrdvqEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2363 fn vpshrdvq(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2364 self.emit(VPSHRDVQ512RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2365 }
2366}
2367
2368pub trait VpshrdvqMaskEmitter<A, B, C> {
2389 fn vpshrdvq_mask(&mut self, op0: A, op1: B, op2: C);
2390}
2391
2392impl<'a> VpshrdvqMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2393 fn vpshrdvq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2394 self.emit(VPSHRDVQ128RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2395 }
2396}
2397
2398impl<'a> VpshrdvqMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2399 fn vpshrdvq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2400 self.emit(VPSHRDVQ128RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2401 }
2402}
2403
2404impl<'a> VpshrdvqMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2405 fn vpshrdvq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2406 self.emit(VPSHRDVQ256RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2407 }
2408}
2409
2410impl<'a> VpshrdvqMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2411 fn vpshrdvq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2412 self.emit(VPSHRDVQ256RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2413 }
2414}
2415
2416impl<'a> VpshrdvqMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2417 fn vpshrdvq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2418 self.emit(VPSHRDVQ512RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2419 }
2420}
2421
2422impl<'a> VpshrdvqMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2423 fn vpshrdvq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2424 self.emit(VPSHRDVQ512RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2425 }
2426}
2427
2428pub trait VpshrdvqMaskzEmitter<A, B, C> {
2449 fn vpshrdvq_maskz(&mut self, op0: A, op1: B, op2: C);
2450}
2451
2452impl<'a> VpshrdvqMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2453 fn vpshrdvq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2454 self.emit(VPSHRDVQ128RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2455 }
2456}
2457
2458impl<'a> VpshrdvqMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2459 fn vpshrdvq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2460 self.emit(VPSHRDVQ128RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2461 }
2462}
2463
2464impl<'a> VpshrdvqMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2465 fn vpshrdvq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2466 self.emit(VPSHRDVQ256RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2467 }
2468}
2469
2470impl<'a> VpshrdvqMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2471 fn vpshrdvq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2472 self.emit(VPSHRDVQ256RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2473 }
2474}
2475
2476impl<'a> VpshrdvqMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2477 fn vpshrdvq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2478 self.emit(VPSHRDVQ512RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2479 }
2480}
2481
2482impl<'a> VpshrdvqMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2483 fn vpshrdvq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2484 self.emit(VPSHRDVQ512RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2485 }
2486}
2487
2488pub trait VpshrdvwEmitter<A, B, C> {
2509 fn vpshrdvw(&mut self, op0: A, op1: B, op2: C);
2510}
2511
2512impl<'a> VpshrdvwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2513 fn vpshrdvw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2514 self.emit(VPSHRDVW128RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2515 }
2516}
2517
2518impl<'a> VpshrdvwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2519 fn vpshrdvw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2520 self.emit(VPSHRDVW128RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2521 }
2522}
2523
2524impl<'a> VpshrdvwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2525 fn vpshrdvw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2526 self.emit(VPSHRDVW256RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2527 }
2528}
2529
2530impl<'a> VpshrdvwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2531 fn vpshrdvw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2532 self.emit(VPSHRDVW256RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2533 }
2534}
2535
2536impl<'a> VpshrdvwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2537 fn vpshrdvw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2538 self.emit(VPSHRDVW512RRR, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2539 }
2540}
2541
2542impl<'a> VpshrdvwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2543 fn vpshrdvw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2544 self.emit(VPSHRDVW512RRM, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2545 }
2546}
2547
2548pub trait VpshrdvwMaskEmitter<A, B, C> {
2569 fn vpshrdvw_mask(&mut self, op0: A, op1: B, op2: C);
2570}
2571
2572impl<'a> VpshrdvwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2573 fn vpshrdvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2574 self.emit(VPSHRDVW128RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2575 }
2576}
2577
2578impl<'a> VpshrdvwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2579 fn vpshrdvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2580 self.emit(VPSHRDVW128RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2581 }
2582}
2583
2584impl<'a> VpshrdvwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2585 fn vpshrdvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2586 self.emit(VPSHRDVW256RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2587 }
2588}
2589
2590impl<'a> VpshrdvwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2591 fn vpshrdvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2592 self.emit(VPSHRDVW256RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2593 }
2594}
2595
2596impl<'a> VpshrdvwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2597 fn vpshrdvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2598 self.emit(VPSHRDVW512RRR_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2599 }
2600}
2601
2602impl<'a> VpshrdvwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2603 fn vpshrdvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2604 self.emit(VPSHRDVW512RRM_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2605 }
2606}
2607
2608pub trait VpshrdvwMaskzEmitter<A, B, C> {
2629 fn vpshrdvw_maskz(&mut self, op0: A, op1: B, op2: C);
2630}
2631
2632impl<'a> VpshrdvwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2633 fn vpshrdvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2634 self.emit(VPSHRDVW128RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2635 }
2636}
2637
2638impl<'a> VpshrdvwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2639 fn vpshrdvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2640 self.emit(VPSHRDVW128RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2641 }
2642}
2643
2644impl<'a> VpshrdvwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2645 fn vpshrdvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2646 self.emit(VPSHRDVW256RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2647 }
2648}
2649
2650impl<'a> VpshrdvwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2651 fn vpshrdvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2652 self.emit(VPSHRDVW256RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2653 }
2654}
2655
2656impl<'a> VpshrdvwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2657 fn vpshrdvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2658 self.emit(VPSHRDVW512RRR_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2659 }
2660}
2661
2662impl<'a> VpshrdvwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2663 fn vpshrdvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2664 self.emit(VPSHRDVW512RRM_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), &NOREG);
2665 }
2666}
2667
2668pub trait VpshrdwEmitter<A, B, C, D> {
2689 fn vpshrdw(&mut self, op0: A, op1: B, op2: C, op3: D);
2690}
2691
2692impl<'a> VpshrdwEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
2693 fn vpshrdw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
2694 self.emit(VPSHRDW128RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2695 }
2696}
2697
2698impl<'a> VpshrdwEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
2699 fn vpshrdw(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
2700 self.emit(VPSHRDW128RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2701 }
2702}
2703
2704impl<'a> VpshrdwEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
2705 fn vpshrdw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
2706 self.emit(VPSHRDW256RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2707 }
2708}
2709
2710impl<'a> VpshrdwEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
2711 fn vpshrdw(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
2712 self.emit(VPSHRDW256RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2713 }
2714}
2715
2716impl<'a> VpshrdwEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
2717 fn vpshrdw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
2718 self.emit(VPSHRDW512RRRI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2719 }
2720}
2721
2722impl<'a> VpshrdwEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
2723 fn vpshrdw(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
2724 self.emit(VPSHRDW512RRMI, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2725 }
2726}
2727
2728pub trait VpshrdwMaskEmitter<A, B, C, D> {
2749 fn vpshrdw_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
2750}
2751
2752impl<'a> VpshrdwMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
2753 fn vpshrdw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
2754 self.emit(VPSHRDW128RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2755 }
2756}
2757
2758impl<'a> VpshrdwMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
2759 fn vpshrdw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
2760 self.emit(VPSHRDW128RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2761 }
2762}
2763
2764impl<'a> VpshrdwMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
2765 fn vpshrdw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
2766 self.emit(VPSHRDW256RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2767 }
2768}
2769
2770impl<'a> VpshrdwMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
2771 fn vpshrdw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
2772 self.emit(VPSHRDW256RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2773 }
2774}
2775
2776impl<'a> VpshrdwMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
2777 fn vpshrdw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
2778 self.emit(VPSHRDW512RRRI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2779 }
2780}
2781
2782impl<'a> VpshrdwMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
2783 fn vpshrdw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
2784 self.emit(VPSHRDW512RRMI_MASK, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2785 }
2786}
2787
2788pub trait VpshrdwMaskzEmitter<A, B, C, D> {
2809 fn vpshrdw_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
2810}
2811
2812impl<'a> VpshrdwMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
2813 fn vpshrdw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
2814 self.emit(VPSHRDW128RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2815 }
2816}
2817
2818impl<'a> VpshrdwMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
2819 fn vpshrdw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
2820 self.emit(VPSHRDW128RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2821 }
2822}
2823
2824impl<'a> VpshrdwMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
2825 fn vpshrdw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
2826 self.emit(VPSHRDW256RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2827 }
2828}
2829
2830impl<'a> VpshrdwMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
2831 fn vpshrdw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
2832 self.emit(VPSHRDW256RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2833 }
2834}
2835
2836impl<'a> VpshrdwMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
2837 fn vpshrdw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
2838 self.emit(VPSHRDW512RRRI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2839 }
2840}
2841
2842impl<'a> VpshrdwMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
2843 fn vpshrdw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
2844 self.emit(VPSHRDW512RRMI_MASKZ, op0.as_operand(), op1.as_operand(), op2.as_operand(), op3.as_operand());
2845 }
2846}
2847
2848
2849impl<'a> Assembler<'a> {
2850 #[inline]
2871 pub fn vpcompressb<A, B>(&mut self, op0: A, op1: B)
2872 where Assembler<'a>: VpcompressbEmitter<A, B> {
2873 <Self as VpcompressbEmitter<A, B>>::vpcompressb(self, op0, op1);
2874 }
2875 #[inline]
2896 pub fn vpcompressb_mask<A, B>(&mut self, op0: A, op1: B)
2897 where Assembler<'a>: VpcompressbMaskEmitter<A, B> {
2898 <Self as VpcompressbMaskEmitter<A, B>>::vpcompressb_mask(self, op0, op1);
2899 }
2900 #[inline]
2918 pub fn vpcompressb_maskz<A, B>(&mut self, op0: A, op1: B)
2919 where Assembler<'a>: VpcompressbMaskzEmitter<A, B> {
2920 <Self as VpcompressbMaskzEmitter<A, B>>::vpcompressb_maskz(self, op0, op1);
2921 }
2922 #[inline]
2943 pub fn vpcompressw<A, B>(&mut self, op0: A, op1: B)
2944 where Assembler<'a>: VpcompresswEmitter<A, B> {
2945 <Self as VpcompresswEmitter<A, B>>::vpcompressw(self, op0, op1);
2946 }
2947 #[inline]
2968 pub fn vpcompressw_mask<A, B>(&mut self, op0: A, op1: B)
2969 where Assembler<'a>: VpcompresswMaskEmitter<A, B> {
2970 <Self as VpcompresswMaskEmitter<A, B>>::vpcompressw_mask(self, op0, op1);
2971 }
2972 #[inline]
2990 pub fn vpcompressw_maskz<A, B>(&mut self, op0: A, op1: B)
2991 where Assembler<'a>: VpcompresswMaskzEmitter<A, B> {
2992 <Self as VpcompresswMaskzEmitter<A, B>>::vpcompressw_maskz(self, op0, op1);
2993 }
2994 #[inline]
3015 pub fn vpexpandb<A, B>(&mut self, op0: A, op1: B)
3016 where Assembler<'a>: VpexpandbEmitter<A, B> {
3017 <Self as VpexpandbEmitter<A, B>>::vpexpandb(self, op0, op1);
3018 }
3019 #[inline]
3040 pub fn vpexpandb_mask<A, B>(&mut self, op0: A, op1: B)
3041 where Assembler<'a>: VpexpandbMaskEmitter<A, B> {
3042 <Self as VpexpandbMaskEmitter<A, B>>::vpexpandb_mask(self, op0, op1);
3043 }
3044 #[inline]
3065 pub fn vpexpandb_maskz<A, B>(&mut self, op0: A, op1: B)
3066 where Assembler<'a>: VpexpandbMaskzEmitter<A, B> {
3067 <Self as VpexpandbMaskzEmitter<A, B>>::vpexpandb_maskz(self, op0, op1);
3068 }
3069 #[inline]
3090 pub fn vpexpandw<A, B>(&mut self, op0: A, op1: B)
3091 where Assembler<'a>: VpexpandwEmitter<A, B> {
3092 <Self as VpexpandwEmitter<A, B>>::vpexpandw(self, op0, op1);
3093 }
3094 #[inline]
3115 pub fn vpexpandw_mask<A, B>(&mut self, op0: A, op1: B)
3116 where Assembler<'a>: VpexpandwMaskEmitter<A, B> {
3117 <Self as VpexpandwMaskEmitter<A, B>>::vpexpandw_mask(self, op0, op1);
3118 }
3119 #[inline]
3140 pub fn vpexpandw_maskz<A, B>(&mut self, op0: A, op1: B)
3141 where Assembler<'a>: VpexpandwMaskzEmitter<A, B> {
3142 <Self as VpexpandwMaskzEmitter<A, B>>::vpexpandw_maskz(self, op0, op1);
3143 }
3144 #[inline]
3165 pub fn vpshldd<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3166 where Assembler<'a>: VpshlddEmitter<A, B, C, D> {
3167 <Self as VpshlddEmitter<A, B, C, D>>::vpshldd(self, op0, op1, op2, op3);
3168 }
3169 #[inline]
3190 pub fn vpshldd_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3191 where Assembler<'a>: VpshlddMaskEmitter<A, B, C, D> {
3192 <Self as VpshlddMaskEmitter<A, B, C, D>>::vpshldd_mask(self, op0, op1, op2, op3);
3193 }
3194 #[inline]
3215 pub fn vpshldd_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3216 where Assembler<'a>: VpshlddMaskzEmitter<A, B, C, D> {
3217 <Self as VpshlddMaskzEmitter<A, B, C, D>>::vpshldd_maskz(self, op0, op1, op2, op3);
3218 }
3219 #[inline]
3240 pub fn vpshldq<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3241 where Assembler<'a>: VpshldqEmitter<A, B, C, D> {
3242 <Self as VpshldqEmitter<A, B, C, D>>::vpshldq(self, op0, op1, op2, op3);
3243 }
3244 #[inline]
3265 pub fn vpshldq_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3266 where Assembler<'a>: VpshldqMaskEmitter<A, B, C, D> {
3267 <Self as VpshldqMaskEmitter<A, B, C, D>>::vpshldq_mask(self, op0, op1, op2, op3);
3268 }
3269 #[inline]
3290 pub fn vpshldq_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3291 where Assembler<'a>: VpshldqMaskzEmitter<A, B, C, D> {
3292 <Self as VpshldqMaskzEmitter<A, B, C, D>>::vpshldq_maskz(self, op0, op1, op2, op3);
3293 }
3294 #[inline]
3315 pub fn vpshldvd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3316 where Assembler<'a>: VpshldvdEmitter<A, B, C> {
3317 <Self as VpshldvdEmitter<A, B, C>>::vpshldvd(self, op0, op1, op2);
3318 }
3319 #[inline]
3340 pub fn vpshldvd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3341 where Assembler<'a>: VpshldvdMaskEmitter<A, B, C> {
3342 <Self as VpshldvdMaskEmitter<A, B, C>>::vpshldvd_mask(self, op0, op1, op2);
3343 }
3344 #[inline]
3365 pub fn vpshldvd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3366 where Assembler<'a>: VpshldvdMaskzEmitter<A, B, C> {
3367 <Self as VpshldvdMaskzEmitter<A, B, C>>::vpshldvd_maskz(self, op0, op1, op2);
3368 }
3369 #[inline]
3390 pub fn vpshldvq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3391 where Assembler<'a>: VpshldvqEmitter<A, B, C> {
3392 <Self as VpshldvqEmitter<A, B, C>>::vpshldvq(self, op0, op1, op2);
3393 }
3394 #[inline]
3415 pub fn vpshldvq_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3416 where Assembler<'a>: VpshldvqMaskEmitter<A, B, C> {
3417 <Self as VpshldvqMaskEmitter<A, B, C>>::vpshldvq_mask(self, op0, op1, op2);
3418 }
3419 #[inline]
3440 pub fn vpshldvq_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3441 where Assembler<'a>: VpshldvqMaskzEmitter<A, B, C> {
3442 <Self as VpshldvqMaskzEmitter<A, B, C>>::vpshldvq_maskz(self, op0, op1, op2);
3443 }
3444 #[inline]
3465 pub fn vpshldvw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3466 where Assembler<'a>: VpshldvwEmitter<A, B, C> {
3467 <Self as VpshldvwEmitter<A, B, C>>::vpshldvw(self, op0, op1, op2);
3468 }
3469 #[inline]
3490 pub fn vpshldvw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3491 where Assembler<'a>: VpshldvwMaskEmitter<A, B, C> {
3492 <Self as VpshldvwMaskEmitter<A, B, C>>::vpshldvw_mask(self, op0, op1, op2);
3493 }
3494 #[inline]
3515 pub fn vpshldvw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3516 where Assembler<'a>: VpshldvwMaskzEmitter<A, B, C> {
3517 <Self as VpshldvwMaskzEmitter<A, B, C>>::vpshldvw_maskz(self, op0, op1, op2);
3518 }
3519 #[inline]
3540 pub fn vpshldw<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3541 where Assembler<'a>: VpshldwEmitter<A, B, C, D> {
3542 <Self as VpshldwEmitter<A, B, C, D>>::vpshldw(self, op0, op1, op2, op3);
3543 }
3544 #[inline]
3565 pub fn vpshldw_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3566 where Assembler<'a>: VpshldwMaskEmitter<A, B, C, D> {
3567 <Self as VpshldwMaskEmitter<A, B, C, D>>::vpshldw_mask(self, op0, op1, op2, op3);
3568 }
3569 #[inline]
3590 pub fn vpshldw_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3591 where Assembler<'a>: VpshldwMaskzEmitter<A, B, C, D> {
3592 <Self as VpshldwMaskzEmitter<A, B, C, D>>::vpshldw_maskz(self, op0, op1, op2, op3);
3593 }
3594 #[inline]
3615 pub fn vpshrdd<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3616 where Assembler<'a>: VpshrddEmitter<A, B, C, D> {
3617 <Self as VpshrddEmitter<A, B, C, D>>::vpshrdd(self, op0, op1, op2, op3);
3618 }
3619 #[inline]
3640 pub fn vpshrdd_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3641 where Assembler<'a>: VpshrddMaskEmitter<A, B, C, D> {
3642 <Self as VpshrddMaskEmitter<A, B, C, D>>::vpshrdd_mask(self, op0, op1, op2, op3);
3643 }
3644 #[inline]
3665 pub fn vpshrdd_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3666 where Assembler<'a>: VpshrddMaskzEmitter<A, B, C, D> {
3667 <Self as VpshrddMaskzEmitter<A, B, C, D>>::vpshrdd_maskz(self, op0, op1, op2, op3);
3668 }
3669 #[inline]
3690 pub fn vpshrdq<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3691 where Assembler<'a>: VpshrdqEmitter<A, B, C, D> {
3692 <Self as VpshrdqEmitter<A, B, C, D>>::vpshrdq(self, op0, op1, op2, op3);
3693 }
3694 #[inline]
3715 pub fn vpshrdq_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3716 where Assembler<'a>: VpshrdqMaskEmitter<A, B, C, D> {
3717 <Self as VpshrdqMaskEmitter<A, B, C, D>>::vpshrdq_mask(self, op0, op1, op2, op3);
3718 }
3719 #[inline]
3740 pub fn vpshrdq_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3741 where Assembler<'a>: VpshrdqMaskzEmitter<A, B, C, D> {
3742 <Self as VpshrdqMaskzEmitter<A, B, C, D>>::vpshrdq_maskz(self, op0, op1, op2, op3);
3743 }
3744 #[inline]
3765 pub fn vpshrdvd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3766 where Assembler<'a>: VpshrdvdEmitter<A, B, C> {
3767 <Self as VpshrdvdEmitter<A, B, C>>::vpshrdvd(self, op0, op1, op2);
3768 }
3769 #[inline]
3790 pub fn vpshrdvd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3791 where Assembler<'a>: VpshrdvdMaskEmitter<A, B, C> {
3792 <Self as VpshrdvdMaskEmitter<A, B, C>>::vpshrdvd_mask(self, op0, op1, op2);
3793 }
3794 #[inline]
3815 pub fn vpshrdvd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3816 where Assembler<'a>: VpshrdvdMaskzEmitter<A, B, C> {
3817 <Self as VpshrdvdMaskzEmitter<A, B, C>>::vpshrdvd_maskz(self, op0, op1, op2);
3818 }
3819 #[inline]
3840 pub fn vpshrdvq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3841 where Assembler<'a>: VpshrdvqEmitter<A, B, C> {
3842 <Self as VpshrdvqEmitter<A, B, C>>::vpshrdvq(self, op0, op1, op2);
3843 }
3844 #[inline]
3865 pub fn vpshrdvq_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3866 where Assembler<'a>: VpshrdvqMaskEmitter<A, B, C> {
3867 <Self as VpshrdvqMaskEmitter<A, B, C>>::vpshrdvq_mask(self, op0, op1, op2);
3868 }
3869 #[inline]
3890 pub fn vpshrdvq_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3891 where Assembler<'a>: VpshrdvqMaskzEmitter<A, B, C> {
3892 <Self as VpshrdvqMaskzEmitter<A, B, C>>::vpshrdvq_maskz(self, op0, op1, op2);
3893 }
3894 #[inline]
3915 pub fn vpshrdvw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3916 where Assembler<'a>: VpshrdvwEmitter<A, B, C> {
3917 <Self as VpshrdvwEmitter<A, B, C>>::vpshrdvw(self, op0, op1, op2);
3918 }
3919 #[inline]
3940 pub fn vpshrdvw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3941 where Assembler<'a>: VpshrdvwMaskEmitter<A, B, C> {
3942 <Self as VpshrdvwMaskEmitter<A, B, C>>::vpshrdvw_mask(self, op0, op1, op2);
3943 }
3944 #[inline]
3965 pub fn vpshrdvw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
3966 where Assembler<'a>: VpshrdvwMaskzEmitter<A, B, C> {
3967 <Self as VpshrdvwMaskzEmitter<A, B, C>>::vpshrdvw_maskz(self, op0, op1, op2);
3968 }
3969 #[inline]
3990 pub fn vpshrdw<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
3991 where Assembler<'a>: VpshrdwEmitter<A, B, C, D> {
3992 <Self as VpshrdwEmitter<A, B, C, D>>::vpshrdw(self, op0, op1, op2, op3);
3993 }
3994 #[inline]
4015 pub fn vpshrdw_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
4016 where Assembler<'a>: VpshrdwMaskEmitter<A, B, C, D> {
4017 <Self as VpshrdwMaskEmitter<A, B, C, D>>::vpshrdw_mask(self, op0, op1, op2, op3);
4018 }
4019 #[inline]
4040 pub fn vpshrdw_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
4041 where Assembler<'a>: VpshrdwMaskzEmitter<A, B, C, D> {
4042 <Self as VpshrdwMaskzEmitter<A, B, C, D>>::vpshrdw_maskz(self, op0, op1, op2, op3);
4043 }
4044}