1use super::super::opcodes::*;
2use crate::core::emitter::*;
3use crate::core::operand::*;
4use crate::x86::assembler::*;
5use crate::x86::operands::*;
6
7const NOREG: Operand = Operand::new();
9
10pub trait KadddEmitter<A, B, C> {
22 fn kaddd(&mut self, op0: A, op1: B, op2: C);
23}
24
25impl<'a> KadddEmitter<KReg, KReg, KReg> for Assembler<'a> {
26 fn kaddd(&mut self, op0: KReg, op1: KReg, op2: KReg) {
27 self.emit(
28 KADDDKKK,
29 op0.as_operand(),
30 op1.as_operand(),
31 op2.as_operand(),
32 &NOREG,
33 );
34 }
35}
36
37pub trait KaddqEmitter<A, B, C> {
49 fn kaddq(&mut self, op0: A, op1: B, op2: C);
50}
51
52impl<'a> KaddqEmitter<KReg, KReg, KReg> for Assembler<'a> {
53 fn kaddq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
54 self.emit(
55 KADDQKKK,
56 op0.as_operand(),
57 op1.as_operand(),
58 op2.as_operand(),
59 &NOREG,
60 );
61 }
62}
63
64pub trait KanddEmitter<A, B, C> {
76 fn kandd(&mut self, op0: A, op1: B, op2: C);
77}
78
79impl<'a> KanddEmitter<KReg, KReg, KReg> for Assembler<'a> {
80 fn kandd(&mut self, op0: KReg, op1: KReg, op2: KReg) {
81 self.emit(
82 KANDDKKK,
83 op0.as_operand(),
84 op1.as_operand(),
85 op2.as_operand(),
86 &NOREG,
87 );
88 }
89}
90
91pub trait KandndEmitter<A, B, C> {
103 fn kandnd(&mut self, op0: A, op1: B, op2: C);
104}
105
106impl<'a> KandndEmitter<KReg, KReg, KReg> for Assembler<'a> {
107 fn kandnd(&mut self, op0: KReg, op1: KReg, op2: KReg) {
108 self.emit(
109 KANDNDKKK,
110 op0.as_operand(),
111 op1.as_operand(),
112 op2.as_operand(),
113 &NOREG,
114 );
115 }
116}
117
118pub trait KandnqEmitter<A, B, C> {
130 fn kandnq(&mut self, op0: A, op1: B, op2: C);
131}
132
133impl<'a> KandnqEmitter<KReg, KReg, KReg> for Assembler<'a> {
134 fn kandnq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
135 self.emit(
136 KANDNQKKK,
137 op0.as_operand(),
138 op1.as_operand(),
139 op2.as_operand(),
140 &NOREG,
141 );
142 }
143}
144
145pub trait KandqEmitter<A, B, C> {
157 fn kandq(&mut self, op0: A, op1: B, op2: C);
158}
159
160impl<'a> KandqEmitter<KReg, KReg, KReg> for Assembler<'a> {
161 fn kandq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
162 self.emit(
163 KANDQKKK,
164 op0.as_operand(),
165 op1.as_operand(),
166 op2.as_operand(),
167 &NOREG,
168 );
169 }
170}
171
172pub trait KmovdEmitter<A, B> {
188 fn kmovd(&mut self, op0: A, op1: B);
189}
190
191impl<'a> KmovdEmitter<KReg, KReg> for Assembler<'a> {
192 fn kmovd(&mut self, op0: KReg, op1: KReg) {
193 self.emit(KMOVDKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
194 }
195}
196
197impl<'a> KmovdEmitter<KReg, Mem> for Assembler<'a> {
198 fn kmovd(&mut self, op0: KReg, op1: Mem) {
199 self.emit(KMOVDKM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
200 }
201}
202
203impl<'a> KmovdEmitter<Mem, KReg> for Assembler<'a> {
204 fn kmovd(&mut self, op0: Mem, op1: KReg) {
205 self.emit(KMOVDMK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
206 }
207}
208
209impl<'a> KmovdEmitter<KReg, Gpd> for Assembler<'a> {
210 fn kmovd(&mut self, op0: KReg, op1: Gpd) {
211 self.emit(KMOVDKR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
212 }
213}
214
215impl<'a> KmovdEmitter<Gpd, KReg> for Assembler<'a> {
216 fn kmovd(&mut self, op0: Gpd, op1: KReg) {
217 self.emit(KMOVDRK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
218 }
219}
220
221pub trait KmovqEmitter<A, B> {
237 fn kmovq(&mut self, op0: A, op1: B);
238}
239
240impl<'a> KmovqEmitter<KReg, KReg> for Assembler<'a> {
241 fn kmovq(&mut self, op0: KReg, op1: KReg) {
242 self.emit(KMOVQKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
243 }
244}
245
246impl<'a> KmovqEmitter<KReg, Mem> for Assembler<'a> {
247 fn kmovq(&mut self, op0: KReg, op1: Mem) {
248 self.emit(KMOVQKM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
249 }
250}
251
252impl<'a> KmovqEmitter<Mem, KReg> for Assembler<'a> {
253 fn kmovq(&mut self, op0: Mem, op1: KReg) {
254 self.emit(KMOVQMK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
255 }
256}
257
258impl<'a> KmovqEmitter<KReg, Gpd> for Assembler<'a> {
259 fn kmovq(&mut self, op0: KReg, op1: Gpd) {
260 self.emit(KMOVQKR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
261 }
262}
263
264impl<'a> KmovqEmitter<Gpd, KReg> for Assembler<'a> {
265 fn kmovq(&mut self, op0: Gpd, op1: KReg) {
266 self.emit(KMOVQRK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
267 }
268}
269
270pub trait KnotdEmitter<A, B> {
282 fn knotd(&mut self, op0: A, op1: B);
283}
284
285impl<'a> KnotdEmitter<KReg, KReg> for Assembler<'a> {
286 fn knotd(&mut self, op0: KReg, op1: KReg) {
287 self.emit(KNOTDKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
288 }
289}
290
291pub trait KnotqEmitter<A, B> {
303 fn knotq(&mut self, op0: A, op1: B);
304}
305
306impl<'a> KnotqEmitter<KReg, KReg> for Assembler<'a> {
307 fn knotq(&mut self, op0: KReg, op1: KReg) {
308 self.emit(KNOTQKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
309 }
310}
311
312pub trait KordEmitter<A, B, C> {
324 fn kord(&mut self, op0: A, op1: B, op2: C);
325}
326
327impl<'a> KordEmitter<KReg, KReg, KReg> for Assembler<'a> {
328 fn kord(&mut self, op0: KReg, op1: KReg, op2: KReg) {
329 self.emit(
330 KORDKKK,
331 op0.as_operand(),
332 op1.as_operand(),
333 op2.as_operand(),
334 &NOREG,
335 );
336 }
337}
338
339pub trait KorqEmitter<A, B, C> {
351 fn korq(&mut self, op0: A, op1: B, op2: C);
352}
353
354impl<'a> KorqEmitter<KReg, KReg, KReg> for Assembler<'a> {
355 fn korq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
356 self.emit(
357 KORQKKK,
358 op0.as_operand(),
359 op1.as_operand(),
360 op2.as_operand(),
361 &NOREG,
362 );
363 }
364}
365
366pub trait KortestdEmitter<A, B> {
378 fn kortestd(&mut self, op0: A, op1: B);
379}
380
381impl<'a> KortestdEmitter<KReg, KReg> for Assembler<'a> {
382 fn kortestd(&mut self, op0: KReg, op1: KReg) {
383 self.emit(
384 KORTESTDKK,
385 op0.as_operand(),
386 op1.as_operand(),
387 &NOREG,
388 &NOREG,
389 );
390 }
391}
392
393pub trait KortestqEmitter<A, B> {
405 fn kortestq(&mut self, op0: A, op1: B);
406}
407
408impl<'a> KortestqEmitter<KReg, KReg> for Assembler<'a> {
409 fn kortestq(&mut self, op0: KReg, op1: KReg) {
410 self.emit(
411 KORTESTQKK,
412 op0.as_operand(),
413 op1.as_operand(),
414 &NOREG,
415 &NOREG,
416 );
417 }
418}
419
420pub trait KshiftldEmitter<A, B, C> {
432 fn kshiftld(&mut self, op0: A, op1: B, op2: C);
433}
434
435impl<'a> KshiftldEmitter<KReg, KReg, Imm> for Assembler<'a> {
436 fn kshiftld(&mut self, op0: KReg, op1: KReg, op2: Imm) {
437 self.emit(
438 KSHIFTLDKKI,
439 op0.as_operand(),
440 op1.as_operand(),
441 op2.as_operand(),
442 &NOREG,
443 );
444 }
445}
446
447pub trait KshiftlqEmitter<A, B, C> {
459 fn kshiftlq(&mut self, op0: A, op1: B, op2: C);
460}
461
462impl<'a> KshiftlqEmitter<KReg, KReg, Imm> for Assembler<'a> {
463 fn kshiftlq(&mut self, op0: KReg, op1: KReg, op2: Imm) {
464 self.emit(
465 KSHIFTLQKKI,
466 op0.as_operand(),
467 op1.as_operand(),
468 op2.as_operand(),
469 &NOREG,
470 );
471 }
472}
473
474pub trait KshiftrdEmitter<A, B, C> {
486 fn kshiftrd(&mut self, op0: A, op1: B, op2: C);
487}
488
489impl<'a> KshiftrdEmitter<KReg, KReg, Imm> for Assembler<'a> {
490 fn kshiftrd(&mut self, op0: KReg, op1: KReg, op2: Imm) {
491 self.emit(
492 KSHIFTRDKKI,
493 op0.as_operand(),
494 op1.as_operand(),
495 op2.as_operand(),
496 &NOREG,
497 );
498 }
499}
500
501pub trait KshiftrqEmitter<A, B, C> {
513 fn kshiftrq(&mut self, op0: A, op1: B, op2: C);
514}
515
516impl<'a> KshiftrqEmitter<KReg, KReg, Imm> for Assembler<'a> {
517 fn kshiftrq(&mut self, op0: KReg, op1: KReg, op2: Imm) {
518 self.emit(
519 KSHIFTRQKKI,
520 op0.as_operand(),
521 op1.as_operand(),
522 op2.as_operand(),
523 &NOREG,
524 );
525 }
526}
527
528pub trait KtestdEmitter<A, B> {
540 fn ktestd(&mut self, op0: A, op1: B);
541}
542
543impl<'a> KtestdEmitter<KReg, KReg> for Assembler<'a> {
544 fn ktestd(&mut self, op0: KReg, op1: KReg) {
545 self.emit(KTESTDKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
546 }
547}
548
549pub trait KtestqEmitter<A, B> {
561 fn ktestq(&mut self, op0: A, op1: B);
562}
563
564impl<'a> KtestqEmitter<KReg, KReg> for Assembler<'a> {
565 fn ktestq(&mut self, op0: KReg, op1: KReg) {
566 self.emit(KTESTQKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
567 }
568}
569
570pub trait KunpckdqEmitter<A, B, C> {
582 fn kunpckdq(&mut self, op0: A, op1: B, op2: C);
583}
584
585impl<'a> KunpckdqEmitter<KReg, KReg, KReg> for Assembler<'a> {
586 fn kunpckdq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
587 self.emit(
588 KUNPCKDQKKK,
589 op0.as_operand(),
590 op1.as_operand(),
591 op2.as_operand(),
592 &NOREG,
593 );
594 }
595}
596
597pub trait KunpckwdEmitter<A, B, C> {
609 fn kunpckwd(&mut self, op0: A, op1: B, op2: C);
610}
611
612impl<'a> KunpckwdEmitter<KReg, KReg, KReg> for Assembler<'a> {
613 fn kunpckwd(&mut self, op0: KReg, op1: KReg, op2: KReg) {
614 self.emit(
615 KUNPCKWDKKK,
616 op0.as_operand(),
617 op1.as_operand(),
618 op2.as_operand(),
619 &NOREG,
620 );
621 }
622}
623
624pub trait KxnordEmitter<A, B, C> {
636 fn kxnord(&mut self, op0: A, op1: B, op2: C);
637}
638
639impl<'a> KxnordEmitter<KReg, KReg, KReg> for Assembler<'a> {
640 fn kxnord(&mut self, op0: KReg, op1: KReg, op2: KReg) {
641 self.emit(
642 KXNORDKKK,
643 op0.as_operand(),
644 op1.as_operand(),
645 op2.as_operand(),
646 &NOREG,
647 );
648 }
649}
650
651pub trait KxnorqEmitter<A, B, C> {
663 fn kxnorq(&mut self, op0: A, op1: B, op2: C);
664}
665
666impl<'a> KxnorqEmitter<KReg, KReg, KReg> for Assembler<'a> {
667 fn kxnorq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
668 self.emit(
669 KXNORQKKK,
670 op0.as_operand(),
671 op1.as_operand(),
672 op2.as_operand(),
673 &NOREG,
674 );
675 }
676}
677
678pub trait KxordEmitter<A, B, C> {
690 fn kxord(&mut self, op0: A, op1: B, op2: C);
691}
692
693impl<'a> KxordEmitter<KReg, KReg, KReg> for Assembler<'a> {
694 fn kxord(&mut self, op0: KReg, op1: KReg, op2: KReg) {
695 self.emit(
696 KXORDKKK,
697 op0.as_operand(),
698 op1.as_operand(),
699 op2.as_operand(),
700 &NOREG,
701 );
702 }
703}
704
705pub trait KxorqEmitter<A, B, C> {
717 fn kxorq(&mut self, op0: A, op1: B, op2: C);
718}
719
720impl<'a> KxorqEmitter<KReg, KReg, KReg> for Assembler<'a> {
721 fn kxorq(&mut self, op0: KReg, op1: KReg, op2: KReg) {
722 self.emit(
723 KXORQKKK,
724 op0.as_operand(),
725 op1.as_operand(),
726 op2.as_operand(),
727 &NOREG,
728 );
729 }
730}
731
732pub trait VdbpsadbwEmitter<A, B, C, D> {
749 fn vdbpsadbw(&mut self, op0: A, op1: B, op2: C, op3: D);
750}
751
752impl<'a> VdbpsadbwEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
753 fn vdbpsadbw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
754 self.emit(
755 VDBPSADBW128RRRI,
756 op0.as_operand(),
757 op1.as_operand(),
758 op2.as_operand(),
759 op3.as_operand(),
760 );
761 }
762}
763
764impl<'a> VdbpsadbwEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
765 fn vdbpsadbw(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
766 self.emit(
767 VDBPSADBW128RRMI,
768 op0.as_operand(),
769 op1.as_operand(),
770 op2.as_operand(),
771 op3.as_operand(),
772 );
773 }
774}
775
776impl<'a> VdbpsadbwEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
777 fn vdbpsadbw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
778 self.emit(
779 VDBPSADBW256RRRI,
780 op0.as_operand(),
781 op1.as_operand(),
782 op2.as_operand(),
783 op3.as_operand(),
784 );
785 }
786}
787
788impl<'a> VdbpsadbwEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
789 fn vdbpsadbw(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
790 self.emit(
791 VDBPSADBW256RRMI,
792 op0.as_operand(),
793 op1.as_operand(),
794 op2.as_operand(),
795 op3.as_operand(),
796 );
797 }
798}
799
800impl<'a> VdbpsadbwEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
801 fn vdbpsadbw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
802 self.emit(
803 VDBPSADBW512RRRI,
804 op0.as_operand(),
805 op1.as_operand(),
806 op2.as_operand(),
807 op3.as_operand(),
808 );
809 }
810}
811
812impl<'a> VdbpsadbwEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
813 fn vdbpsadbw(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
814 self.emit(
815 VDBPSADBW512RRMI,
816 op0.as_operand(),
817 op1.as_operand(),
818 op2.as_operand(),
819 op3.as_operand(),
820 );
821 }
822}
823
824pub trait VdbpsadbwMaskEmitter<A, B, C, D> {
841 fn vdbpsadbw_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
842}
843
844impl<'a> VdbpsadbwMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
845 fn vdbpsadbw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
846 self.emit(
847 VDBPSADBW128RRRI_MASK,
848 op0.as_operand(),
849 op1.as_operand(),
850 op2.as_operand(),
851 op3.as_operand(),
852 );
853 }
854}
855
856impl<'a> VdbpsadbwMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
857 fn vdbpsadbw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
858 self.emit(
859 VDBPSADBW128RRMI_MASK,
860 op0.as_operand(),
861 op1.as_operand(),
862 op2.as_operand(),
863 op3.as_operand(),
864 );
865 }
866}
867
868impl<'a> VdbpsadbwMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
869 fn vdbpsadbw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
870 self.emit(
871 VDBPSADBW256RRRI_MASK,
872 op0.as_operand(),
873 op1.as_operand(),
874 op2.as_operand(),
875 op3.as_operand(),
876 );
877 }
878}
879
880impl<'a> VdbpsadbwMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
881 fn vdbpsadbw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
882 self.emit(
883 VDBPSADBW256RRMI_MASK,
884 op0.as_operand(),
885 op1.as_operand(),
886 op2.as_operand(),
887 op3.as_operand(),
888 );
889 }
890}
891
892impl<'a> VdbpsadbwMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
893 fn vdbpsadbw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
894 self.emit(
895 VDBPSADBW512RRRI_MASK,
896 op0.as_operand(),
897 op1.as_operand(),
898 op2.as_operand(),
899 op3.as_operand(),
900 );
901 }
902}
903
904impl<'a> VdbpsadbwMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
905 fn vdbpsadbw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
906 self.emit(
907 VDBPSADBW512RRMI_MASK,
908 op0.as_operand(),
909 op1.as_operand(),
910 op2.as_operand(),
911 op3.as_operand(),
912 );
913 }
914}
915
916pub trait VdbpsadbwMaskzEmitter<A, B, C, D> {
933 fn vdbpsadbw_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
934}
935
936impl<'a> VdbpsadbwMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
937 fn vdbpsadbw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
938 self.emit(
939 VDBPSADBW128RRRI_MASKZ,
940 op0.as_operand(),
941 op1.as_operand(),
942 op2.as_operand(),
943 op3.as_operand(),
944 );
945 }
946}
947
948impl<'a> VdbpsadbwMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
949 fn vdbpsadbw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
950 self.emit(
951 VDBPSADBW128RRMI_MASKZ,
952 op0.as_operand(),
953 op1.as_operand(),
954 op2.as_operand(),
955 op3.as_operand(),
956 );
957 }
958}
959
960impl<'a> VdbpsadbwMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
961 fn vdbpsadbw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
962 self.emit(
963 VDBPSADBW256RRRI_MASKZ,
964 op0.as_operand(),
965 op1.as_operand(),
966 op2.as_operand(),
967 op3.as_operand(),
968 );
969 }
970}
971
972impl<'a> VdbpsadbwMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
973 fn vdbpsadbw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
974 self.emit(
975 VDBPSADBW256RRMI_MASKZ,
976 op0.as_operand(),
977 op1.as_operand(),
978 op2.as_operand(),
979 op3.as_operand(),
980 );
981 }
982}
983
984impl<'a> VdbpsadbwMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
985 fn vdbpsadbw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
986 self.emit(
987 VDBPSADBW512RRRI_MASKZ,
988 op0.as_operand(),
989 op1.as_operand(),
990 op2.as_operand(),
991 op3.as_operand(),
992 );
993 }
994}
995
996impl<'a> VdbpsadbwMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
997 fn vdbpsadbw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
998 self.emit(
999 VDBPSADBW512RRMI_MASKZ,
1000 op0.as_operand(),
1001 op1.as_operand(),
1002 op2.as_operand(),
1003 op3.as_operand(),
1004 );
1005 }
1006}
1007
1008pub trait Vmovdqu16Emitter<A, B> {
1028 fn vmovdqu16(&mut self, op0: A, op1: B);
1029}
1030
1031impl<'a> Vmovdqu16Emitter<Xmm, Xmm> for Assembler<'a> {
1032 fn vmovdqu16(&mut self, op0: Xmm, op1: Xmm) {
1033 self.emit(
1034 VMOVDQU16_128RR,
1035 op0.as_operand(),
1036 op1.as_operand(),
1037 &NOREG,
1038 &NOREG,
1039 );
1040 }
1041}
1042
1043impl<'a> Vmovdqu16Emitter<Xmm, Mem> for Assembler<'a> {
1044 fn vmovdqu16(&mut self, op0: Xmm, op1: Mem) {
1045 self.emit(
1046 VMOVDQU16_128RM,
1047 op0.as_operand(),
1048 op1.as_operand(),
1049 &NOREG,
1050 &NOREG,
1051 );
1052 }
1053}
1054
1055impl<'a> Vmovdqu16Emitter<Ymm, Ymm> for Assembler<'a> {
1056 fn vmovdqu16(&mut self, op0: Ymm, op1: Ymm) {
1057 self.emit(
1058 VMOVDQU16_256RR,
1059 op0.as_operand(),
1060 op1.as_operand(),
1061 &NOREG,
1062 &NOREG,
1063 );
1064 }
1065}
1066
1067impl<'a> Vmovdqu16Emitter<Ymm, Mem> for Assembler<'a> {
1068 fn vmovdqu16(&mut self, op0: Ymm, op1: Mem) {
1069 self.emit(
1070 VMOVDQU16_256RM,
1071 op0.as_operand(),
1072 op1.as_operand(),
1073 &NOREG,
1074 &NOREG,
1075 );
1076 }
1077}
1078
1079impl<'a> Vmovdqu16Emitter<Zmm, Zmm> for Assembler<'a> {
1080 fn vmovdqu16(&mut self, op0: Zmm, op1: Zmm) {
1081 self.emit(
1082 VMOVDQU16_512RR,
1083 op0.as_operand(),
1084 op1.as_operand(),
1085 &NOREG,
1086 &NOREG,
1087 );
1088 }
1089}
1090
1091impl<'a> Vmovdqu16Emitter<Zmm, Mem> for Assembler<'a> {
1092 fn vmovdqu16(&mut self, op0: Zmm, op1: Mem) {
1093 self.emit(
1094 VMOVDQU16_512RM,
1095 op0.as_operand(),
1096 op1.as_operand(),
1097 &NOREG,
1098 &NOREG,
1099 );
1100 }
1101}
1102
1103impl<'a> Vmovdqu16Emitter<Mem, Xmm> for Assembler<'a> {
1104 fn vmovdqu16(&mut self, op0: Mem, op1: Xmm) {
1105 self.emit(
1106 VMOVDQU16_128MR,
1107 op0.as_operand(),
1108 op1.as_operand(),
1109 &NOREG,
1110 &NOREG,
1111 );
1112 }
1113}
1114
1115impl<'a> Vmovdqu16Emitter<Mem, Ymm> for Assembler<'a> {
1116 fn vmovdqu16(&mut self, op0: Mem, op1: Ymm) {
1117 self.emit(
1118 VMOVDQU16_256MR,
1119 op0.as_operand(),
1120 op1.as_operand(),
1121 &NOREG,
1122 &NOREG,
1123 );
1124 }
1125}
1126
1127impl<'a> Vmovdqu16Emitter<Mem, Zmm> for Assembler<'a> {
1128 fn vmovdqu16(&mut self, op0: Mem, op1: Zmm) {
1129 self.emit(
1130 VMOVDQU16_512MR,
1131 op0.as_operand(),
1132 op1.as_operand(),
1133 &NOREG,
1134 &NOREG,
1135 );
1136 }
1137}
1138
1139pub trait Vmovdqu16MaskEmitter<A, B> {
1159 fn vmovdqu16_mask(&mut self, op0: A, op1: B);
1160}
1161
1162impl<'a> Vmovdqu16MaskEmitter<Xmm, Xmm> for Assembler<'a> {
1163 fn vmovdqu16_mask(&mut self, op0: Xmm, op1: Xmm) {
1164 self.emit(
1165 VMOVDQU16_128RR_MASK,
1166 op0.as_operand(),
1167 op1.as_operand(),
1168 &NOREG,
1169 &NOREG,
1170 );
1171 }
1172}
1173
1174impl<'a> Vmovdqu16MaskEmitter<Xmm, Mem> for Assembler<'a> {
1175 fn vmovdqu16_mask(&mut self, op0: Xmm, op1: Mem) {
1176 self.emit(
1177 VMOVDQU16_128RM_MASK,
1178 op0.as_operand(),
1179 op1.as_operand(),
1180 &NOREG,
1181 &NOREG,
1182 );
1183 }
1184}
1185
1186impl<'a> Vmovdqu16MaskEmitter<Ymm, Ymm> for Assembler<'a> {
1187 fn vmovdqu16_mask(&mut self, op0: Ymm, op1: Ymm) {
1188 self.emit(
1189 VMOVDQU16_256RR_MASK,
1190 op0.as_operand(),
1191 op1.as_operand(),
1192 &NOREG,
1193 &NOREG,
1194 );
1195 }
1196}
1197
1198impl<'a> Vmovdqu16MaskEmitter<Ymm, Mem> for Assembler<'a> {
1199 fn vmovdqu16_mask(&mut self, op0: Ymm, op1: Mem) {
1200 self.emit(
1201 VMOVDQU16_256RM_MASK,
1202 op0.as_operand(),
1203 op1.as_operand(),
1204 &NOREG,
1205 &NOREG,
1206 );
1207 }
1208}
1209
1210impl<'a> Vmovdqu16MaskEmitter<Zmm, Zmm> for Assembler<'a> {
1211 fn vmovdqu16_mask(&mut self, op0: Zmm, op1: Zmm) {
1212 self.emit(
1213 VMOVDQU16_512RR_MASK,
1214 op0.as_operand(),
1215 op1.as_operand(),
1216 &NOREG,
1217 &NOREG,
1218 );
1219 }
1220}
1221
1222impl<'a> Vmovdqu16MaskEmitter<Zmm, Mem> for Assembler<'a> {
1223 fn vmovdqu16_mask(&mut self, op0: Zmm, op1: Mem) {
1224 self.emit(
1225 VMOVDQU16_512RM_MASK,
1226 op0.as_operand(),
1227 op1.as_operand(),
1228 &NOREG,
1229 &NOREG,
1230 );
1231 }
1232}
1233
1234impl<'a> Vmovdqu16MaskEmitter<Mem, Xmm> for Assembler<'a> {
1235 fn vmovdqu16_mask(&mut self, op0: Mem, op1: Xmm) {
1236 self.emit(
1237 VMOVDQU16_128MR_MASK,
1238 op0.as_operand(),
1239 op1.as_operand(),
1240 &NOREG,
1241 &NOREG,
1242 );
1243 }
1244}
1245
1246impl<'a> Vmovdqu16MaskEmitter<Mem, Ymm> for Assembler<'a> {
1247 fn vmovdqu16_mask(&mut self, op0: Mem, op1: Ymm) {
1248 self.emit(
1249 VMOVDQU16_256MR_MASK,
1250 op0.as_operand(),
1251 op1.as_operand(),
1252 &NOREG,
1253 &NOREG,
1254 );
1255 }
1256}
1257
1258impl<'a> Vmovdqu16MaskEmitter<Mem, Zmm> for Assembler<'a> {
1259 fn vmovdqu16_mask(&mut self, op0: Mem, op1: Zmm) {
1260 self.emit(
1261 VMOVDQU16_512MR_MASK,
1262 op0.as_operand(),
1263 op1.as_operand(),
1264 &NOREG,
1265 &NOREG,
1266 );
1267 }
1268}
1269
1270pub trait Vmovdqu16MaskzEmitter<A, B> {
1287 fn vmovdqu16_maskz(&mut self, op0: A, op1: B);
1288}
1289
1290impl<'a> Vmovdqu16MaskzEmitter<Xmm, Xmm> for Assembler<'a> {
1291 fn vmovdqu16_maskz(&mut self, op0: Xmm, op1: Xmm) {
1292 self.emit(
1293 VMOVDQU16_128RR_MASKZ,
1294 op0.as_operand(),
1295 op1.as_operand(),
1296 &NOREG,
1297 &NOREG,
1298 );
1299 }
1300}
1301
1302impl<'a> Vmovdqu16MaskzEmitter<Xmm, Mem> for Assembler<'a> {
1303 fn vmovdqu16_maskz(&mut self, op0: Xmm, op1: Mem) {
1304 self.emit(
1305 VMOVDQU16_128RM_MASKZ,
1306 op0.as_operand(),
1307 op1.as_operand(),
1308 &NOREG,
1309 &NOREG,
1310 );
1311 }
1312}
1313
1314impl<'a> Vmovdqu16MaskzEmitter<Ymm, Ymm> for Assembler<'a> {
1315 fn vmovdqu16_maskz(&mut self, op0: Ymm, op1: Ymm) {
1316 self.emit(
1317 VMOVDQU16_256RR_MASKZ,
1318 op0.as_operand(),
1319 op1.as_operand(),
1320 &NOREG,
1321 &NOREG,
1322 );
1323 }
1324}
1325
1326impl<'a> Vmovdqu16MaskzEmitter<Ymm, Mem> for Assembler<'a> {
1327 fn vmovdqu16_maskz(&mut self, op0: Ymm, op1: Mem) {
1328 self.emit(
1329 VMOVDQU16_256RM_MASKZ,
1330 op0.as_operand(),
1331 op1.as_operand(),
1332 &NOREG,
1333 &NOREG,
1334 );
1335 }
1336}
1337
1338impl<'a> Vmovdqu16MaskzEmitter<Zmm, Zmm> for Assembler<'a> {
1339 fn vmovdqu16_maskz(&mut self, op0: Zmm, op1: Zmm) {
1340 self.emit(
1341 VMOVDQU16_512RR_MASKZ,
1342 op0.as_operand(),
1343 op1.as_operand(),
1344 &NOREG,
1345 &NOREG,
1346 );
1347 }
1348}
1349
1350impl<'a> Vmovdqu16MaskzEmitter<Zmm, Mem> for Assembler<'a> {
1351 fn vmovdqu16_maskz(&mut self, op0: Zmm, op1: Mem) {
1352 self.emit(
1353 VMOVDQU16_512RM_MASKZ,
1354 op0.as_operand(),
1355 op1.as_operand(),
1356 &NOREG,
1357 &NOREG,
1358 );
1359 }
1360}
1361
1362pub trait Vmovdqu8Emitter<A, B> {
1382 fn vmovdqu8(&mut self, op0: A, op1: B);
1383}
1384
1385impl<'a> Vmovdqu8Emitter<Xmm, Xmm> for Assembler<'a> {
1386 fn vmovdqu8(&mut self, op0: Xmm, op1: Xmm) {
1387 self.emit(
1388 VMOVDQU8_128RR,
1389 op0.as_operand(),
1390 op1.as_operand(),
1391 &NOREG,
1392 &NOREG,
1393 );
1394 }
1395}
1396
1397impl<'a> Vmovdqu8Emitter<Xmm, Mem> for Assembler<'a> {
1398 fn vmovdqu8(&mut self, op0: Xmm, op1: Mem) {
1399 self.emit(
1400 VMOVDQU8_128RM,
1401 op0.as_operand(),
1402 op1.as_operand(),
1403 &NOREG,
1404 &NOREG,
1405 );
1406 }
1407}
1408
1409impl<'a> Vmovdqu8Emitter<Ymm, Ymm> for Assembler<'a> {
1410 fn vmovdqu8(&mut self, op0: Ymm, op1: Ymm) {
1411 self.emit(
1412 VMOVDQU8_256RR,
1413 op0.as_operand(),
1414 op1.as_operand(),
1415 &NOREG,
1416 &NOREG,
1417 );
1418 }
1419}
1420
1421impl<'a> Vmovdqu8Emitter<Ymm, Mem> for Assembler<'a> {
1422 fn vmovdqu8(&mut self, op0: Ymm, op1: Mem) {
1423 self.emit(
1424 VMOVDQU8_256RM,
1425 op0.as_operand(),
1426 op1.as_operand(),
1427 &NOREG,
1428 &NOREG,
1429 );
1430 }
1431}
1432
1433impl<'a> Vmovdqu8Emitter<Zmm, Zmm> for Assembler<'a> {
1434 fn vmovdqu8(&mut self, op0: Zmm, op1: Zmm) {
1435 self.emit(
1436 VMOVDQU8_512RR,
1437 op0.as_operand(),
1438 op1.as_operand(),
1439 &NOREG,
1440 &NOREG,
1441 );
1442 }
1443}
1444
1445impl<'a> Vmovdqu8Emitter<Zmm, Mem> for Assembler<'a> {
1446 fn vmovdqu8(&mut self, op0: Zmm, op1: Mem) {
1447 self.emit(
1448 VMOVDQU8_512RM,
1449 op0.as_operand(),
1450 op1.as_operand(),
1451 &NOREG,
1452 &NOREG,
1453 );
1454 }
1455}
1456
1457impl<'a> Vmovdqu8Emitter<Mem, Xmm> for Assembler<'a> {
1458 fn vmovdqu8(&mut self, op0: Mem, op1: Xmm) {
1459 self.emit(
1460 VMOVDQU8_128MR,
1461 op0.as_operand(),
1462 op1.as_operand(),
1463 &NOREG,
1464 &NOREG,
1465 );
1466 }
1467}
1468
1469impl<'a> Vmovdqu8Emitter<Mem, Ymm> for Assembler<'a> {
1470 fn vmovdqu8(&mut self, op0: Mem, op1: Ymm) {
1471 self.emit(
1472 VMOVDQU8_256MR,
1473 op0.as_operand(),
1474 op1.as_operand(),
1475 &NOREG,
1476 &NOREG,
1477 );
1478 }
1479}
1480
1481impl<'a> Vmovdqu8Emitter<Mem, Zmm> for Assembler<'a> {
1482 fn vmovdqu8(&mut self, op0: Mem, op1: Zmm) {
1483 self.emit(
1484 VMOVDQU8_512MR,
1485 op0.as_operand(),
1486 op1.as_operand(),
1487 &NOREG,
1488 &NOREG,
1489 );
1490 }
1491}
1492
1493pub trait Vmovdqu8MaskEmitter<A, B> {
1513 fn vmovdqu8_mask(&mut self, op0: A, op1: B);
1514}
1515
1516impl<'a> Vmovdqu8MaskEmitter<Xmm, Xmm> for Assembler<'a> {
1517 fn vmovdqu8_mask(&mut self, op0: Xmm, op1: Xmm) {
1518 self.emit(
1519 VMOVDQU8_128RR_MASK,
1520 op0.as_operand(),
1521 op1.as_operand(),
1522 &NOREG,
1523 &NOREG,
1524 );
1525 }
1526}
1527
1528impl<'a> Vmovdqu8MaskEmitter<Xmm, Mem> for Assembler<'a> {
1529 fn vmovdqu8_mask(&mut self, op0: Xmm, op1: Mem) {
1530 self.emit(
1531 VMOVDQU8_128RM_MASK,
1532 op0.as_operand(),
1533 op1.as_operand(),
1534 &NOREG,
1535 &NOREG,
1536 );
1537 }
1538}
1539
1540impl<'a> Vmovdqu8MaskEmitter<Ymm, Ymm> for Assembler<'a> {
1541 fn vmovdqu8_mask(&mut self, op0: Ymm, op1: Ymm) {
1542 self.emit(
1543 VMOVDQU8_256RR_MASK,
1544 op0.as_operand(),
1545 op1.as_operand(),
1546 &NOREG,
1547 &NOREG,
1548 );
1549 }
1550}
1551
1552impl<'a> Vmovdqu8MaskEmitter<Ymm, Mem> for Assembler<'a> {
1553 fn vmovdqu8_mask(&mut self, op0: Ymm, op1: Mem) {
1554 self.emit(
1555 VMOVDQU8_256RM_MASK,
1556 op0.as_operand(),
1557 op1.as_operand(),
1558 &NOREG,
1559 &NOREG,
1560 );
1561 }
1562}
1563
1564impl<'a> Vmovdqu8MaskEmitter<Zmm, Zmm> for Assembler<'a> {
1565 fn vmovdqu8_mask(&mut self, op0: Zmm, op1: Zmm) {
1566 self.emit(
1567 VMOVDQU8_512RR_MASK,
1568 op0.as_operand(),
1569 op1.as_operand(),
1570 &NOREG,
1571 &NOREG,
1572 );
1573 }
1574}
1575
1576impl<'a> Vmovdqu8MaskEmitter<Zmm, Mem> for Assembler<'a> {
1577 fn vmovdqu8_mask(&mut self, op0: Zmm, op1: Mem) {
1578 self.emit(
1579 VMOVDQU8_512RM_MASK,
1580 op0.as_operand(),
1581 op1.as_operand(),
1582 &NOREG,
1583 &NOREG,
1584 );
1585 }
1586}
1587
1588impl<'a> Vmovdqu8MaskEmitter<Mem, Xmm> for Assembler<'a> {
1589 fn vmovdqu8_mask(&mut self, op0: Mem, op1: Xmm) {
1590 self.emit(
1591 VMOVDQU8_128MR_MASK,
1592 op0.as_operand(),
1593 op1.as_operand(),
1594 &NOREG,
1595 &NOREG,
1596 );
1597 }
1598}
1599
1600impl<'a> Vmovdqu8MaskEmitter<Mem, Ymm> for Assembler<'a> {
1601 fn vmovdqu8_mask(&mut self, op0: Mem, op1: Ymm) {
1602 self.emit(
1603 VMOVDQU8_256MR_MASK,
1604 op0.as_operand(),
1605 op1.as_operand(),
1606 &NOREG,
1607 &NOREG,
1608 );
1609 }
1610}
1611
1612impl<'a> Vmovdqu8MaskEmitter<Mem, Zmm> for Assembler<'a> {
1613 fn vmovdqu8_mask(&mut self, op0: Mem, op1: Zmm) {
1614 self.emit(
1615 VMOVDQU8_512MR_MASK,
1616 op0.as_operand(),
1617 op1.as_operand(),
1618 &NOREG,
1619 &NOREG,
1620 );
1621 }
1622}
1623
1624pub trait Vmovdqu8MaskzEmitter<A, B> {
1641 fn vmovdqu8_maskz(&mut self, op0: A, op1: B);
1642}
1643
1644impl<'a> Vmovdqu8MaskzEmitter<Xmm, Xmm> for Assembler<'a> {
1645 fn vmovdqu8_maskz(&mut self, op0: Xmm, op1: Xmm) {
1646 self.emit(
1647 VMOVDQU8_128RR_MASKZ,
1648 op0.as_operand(),
1649 op1.as_operand(),
1650 &NOREG,
1651 &NOREG,
1652 );
1653 }
1654}
1655
1656impl<'a> Vmovdqu8MaskzEmitter<Xmm, Mem> for Assembler<'a> {
1657 fn vmovdqu8_maskz(&mut self, op0: Xmm, op1: Mem) {
1658 self.emit(
1659 VMOVDQU8_128RM_MASKZ,
1660 op0.as_operand(),
1661 op1.as_operand(),
1662 &NOREG,
1663 &NOREG,
1664 );
1665 }
1666}
1667
1668impl<'a> Vmovdqu8MaskzEmitter<Ymm, Ymm> for Assembler<'a> {
1669 fn vmovdqu8_maskz(&mut self, op0: Ymm, op1: Ymm) {
1670 self.emit(
1671 VMOVDQU8_256RR_MASKZ,
1672 op0.as_operand(),
1673 op1.as_operand(),
1674 &NOREG,
1675 &NOREG,
1676 );
1677 }
1678}
1679
1680impl<'a> Vmovdqu8MaskzEmitter<Ymm, Mem> for Assembler<'a> {
1681 fn vmovdqu8_maskz(&mut self, op0: Ymm, op1: Mem) {
1682 self.emit(
1683 VMOVDQU8_256RM_MASKZ,
1684 op0.as_operand(),
1685 op1.as_operand(),
1686 &NOREG,
1687 &NOREG,
1688 );
1689 }
1690}
1691
1692impl<'a> Vmovdqu8MaskzEmitter<Zmm, Zmm> for Assembler<'a> {
1693 fn vmovdqu8_maskz(&mut self, op0: Zmm, op1: Zmm) {
1694 self.emit(
1695 VMOVDQU8_512RR_MASKZ,
1696 op0.as_operand(),
1697 op1.as_operand(),
1698 &NOREG,
1699 &NOREG,
1700 );
1701 }
1702}
1703
1704impl<'a> Vmovdqu8MaskzEmitter<Zmm, Mem> for Assembler<'a> {
1705 fn vmovdqu8_maskz(&mut self, op0: Zmm, op1: Mem) {
1706 self.emit(
1707 VMOVDQU8_512RM_MASKZ,
1708 op0.as_operand(),
1709 op1.as_operand(),
1710 &NOREG,
1711 &NOREG,
1712 );
1713 }
1714}
1715
1716pub trait VpabsbEmitter<A, B> {
1733 fn vpabsb(&mut self, op0: A, op1: B);
1734}
1735
1736impl<'a> VpabsbEmitter<Xmm, Xmm> for Assembler<'a> {
1737 fn vpabsb(&mut self, op0: Xmm, op1: Xmm) {
1738 self.emit(
1739 VPABSB128RR,
1740 op0.as_operand(),
1741 op1.as_operand(),
1742 &NOREG,
1743 &NOREG,
1744 );
1745 }
1746}
1747
1748impl<'a> VpabsbEmitter<Xmm, Mem> for Assembler<'a> {
1749 fn vpabsb(&mut self, op0: Xmm, op1: Mem) {
1750 self.emit(
1751 VPABSB128RM,
1752 op0.as_operand(),
1753 op1.as_operand(),
1754 &NOREG,
1755 &NOREG,
1756 );
1757 }
1758}
1759
1760impl<'a> VpabsbEmitter<Ymm, Ymm> for Assembler<'a> {
1761 fn vpabsb(&mut self, op0: Ymm, op1: Ymm) {
1762 self.emit(
1763 VPABSB256RR,
1764 op0.as_operand(),
1765 op1.as_operand(),
1766 &NOREG,
1767 &NOREG,
1768 );
1769 }
1770}
1771
1772impl<'a> VpabsbEmitter<Ymm, Mem> for Assembler<'a> {
1773 fn vpabsb(&mut self, op0: Ymm, op1: Mem) {
1774 self.emit(
1775 VPABSB256RM,
1776 op0.as_operand(),
1777 op1.as_operand(),
1778 &NOREG,
1779 &NOREG,
1780 );
1781 }
1782}
1783
1784impl<'a> VpabsbEmitter<Zmm, Zmm> for Assembler<'a> {
1785 fn vpabsb(&mut self, op0: Zmm, op1: Zmm) {
1786 self.emit(
1787 VPABSB512RR,
1788 op0.as_operand(),
1789 op1.as_operand(),
1790 &NOREG,
1791 &NOREG,
1792 );
1793 }
1794}
1795
1796impl<'a> VpabsbEmitter<Zmm, Mem> for Assembler<'a> {
1797 fn vpabsb(&mut self, op0: Zmm, op1: Mem) {
1798 self.emit(
1799 VPABSB512RM,
1800 op0.as_operand(),
1801 op1.as_operand(),
1802 &NOREG,
1803 &NOREG,
1804 );
1805 }
1806}
1807
1808pub trait VpabsbMaskEmitter<A, B> {
1825 fn vpabsb_mask(&mut self, op0: A, op1: B);
1826}
1827
1828impl<'a> VpabsbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
1829 fn vpabsb_mask(&mut self, op0: Xmm, op1: Xmm) {
1830 self.emit(
1831 VPABSB128RR_MASK,
1832 op0.as_operand(),
1833 op1.as_operand(),
1834 &NOREG,
1835 &NOREG,
1836 );
1837 }
1838}
1839
1840impl<'a> VpabsbMaskEmitter<Xmm, Mem> for Assembler<'a> {
1841 fn vpabsb_mask(&mut self, op0: Xmm, op1: Mem) {
1842 self.emit(
1843 VPABSB128RM_MASK,
1844 op0.as_operand(),
1845 op1.as_operand(),
1846 &NOREG,
1847 &NOREG,
1848 );
1849 }
1850}
1851
1852impl<'a> VpabsbMaskEmitter<Ymm, Ymm> for Assembler<'a> {
1853 fn vpabsb_mask(&mut self, op0: Ymm, op1: Ymm) {
1854 self.emit(
1855 VPABSB256RR_MASK,
1856 op0.as_operand(),
1857 op1.as_operand(),
1858 &NOREG,
1859 &NOREG,
1860 );
1861 }
1862}
1863
1864impl<'a> VpabsbMaskEmitter<Ymm, Mem> for Assembler<'a> {
1865 fn vpabsb_mask(&mut self, op0: Ymm, op1: Mem) {
1866 self.emit(
1867 VPABSB256RM_MASK,
1868 op0.as_operand(),
1869 op1.as_operand(),
1870 &NOREG,
1871 &NOREG,
1872 );
1873 }
1874}
1875
1876impl<'a> VpabsbMaskEmitter<Zmm, Zmm> for Assembler<'a> {
1877 fn vpabsb_mask(&mut self, op0: Zmm, op1: Zmm) {
1878 self.emit(
1879 VPABSB512RR_MASK,
1880 op0.as_operand(),
1881 op1.as_operand(),
1882 &NOREG,
1883 &NOREG,
1884 );
1885 }
1886}
1887
1888impl<'a> VpabsbMaskEmitter<Zmm, Mem> for Assembler<'a> {
1889 fn vpabsb_mask(&mut self, op0: Zmm, op1: Mem) {
1890 self.emit(
1891 VPABSB512RM_MASK,
1892 op0.as_operand(),
1893 op1.as_operand(),
1894 &NOREG,
1895 &NOREG,
1896 );
1897 }
1898}
1899
1900pub trait VpabsbMaskzEmitter<A, B> {
1917 fn vpabsb_maskz(&mut self, op0: A, op1: B);
1918}
1919
1920impl<'a> VpabsbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
1921 fn vpabsb_maskz(&mut self, op0: Xmm, op1: Xmm) {
1922 self.emit(
1923 VPABSB128RR_MASKZ,
1924 op0.as_operand(),
1925 op1.as_operand(),
1926 &NOREG,
1927 &NOREG,
1928 );
1929 }
1930}
1931
1932impl<'a> VpabsbMaskzEmitter<Xmm, Mem> for Assembler<'a> {
1933 fn vpabsb_maskz(&mut self, op0: Xmm, op1: Mem) {
1934 self.emit(
1935 VPABSB128RM_MASKZ,
1936 op0.as_operand(),
1937 op1.as_operand(),
1938 &NOREG,
1939 &NOREG,
1940 );
1941 }
1942}
1943
1944impl<'a> VpabsbMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
1945 fn vpabsb_maskz(&mut self, op0: Ymm, op1: Ymm) {
1946 self.emit(
1947 VPABSB256RR_MASKZ,
1948 op0.as_operand(),
1949 op1.as_operand(),
1950 &NOREG,
1951 &NOREG,
1952 );
1953 }
1954}
1955
1956impl<'a> VpabsbMaskzEmitter<Ymm, Mem> for Assembler<'a> {
1957 fn vpabsb_maskz(&mut self, op0: Ymm, op1: Mem) {
1958 self.emit(
1959 VPABSB256RM_MASKZ,
1960 op0.as_operand(),
1961 op1.as_operand(),
1962 &NOREG,
1963 &NOREG,
1964 );
1965 }
1966}
1967
1968impl<'a> VpabsbMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
1969 fn vpabsb_maskz(&mut self, op0: Zmm, op1: Zmm) {
1970 self.emit(
1971 VPABSB512RR_MASKZ,
1972 op0.as_operand(),
1973 op1.as_operand(),
1974 &NOREG,
1975 &NOREG,
1976 );
1977 }
1978}
1979
1980impl<'a> VpabsbMaskzEmitter<Zmm, Mem> for Assembler<'a> {
1981 fn vpabsb_maskz(&mut self, op0: Zmm, op1: Mem) {
1982 self.emit(
1983 VPABSB512RM_MASKZ,
1984 op0.as_operand(),
1985 op1.as_operand(),
1986 &NOREG,
1987 &NOREG,
1988 );
1989 }
1990}
1991
1992pub trait VpabswEmitter<A, B> {
2009 fn vpabsw(&mut self, op0: A, op1: B);
2010}
2011
2012impl<'a> VpabswEmitter<Xmm, Xmm> for Assembler<'a> {
2013 fn vpabsw(&mut self, op0: Xmm, op1: Xmm) {
2014 self.emit(
2015 VPABSW128RR,
2016 op0.as_operand(),
2017 op1.as_operand(),
2018 &NOREG,
2019 &NOREG,
2020 );
2021 }
2022}
2023
2024impl<'a> VpabswEmitter<Xmm, Mem> for Assembler<'a> {
2025 fn vpabsw(&mut self, op0: Xmm, op1: Mem) {
2026 self.emit(
2027 VPABSW128RM,
2028 op0.as_operand(),
2029 op1.as_operand(),
2030 &NOREG,
2031 &NOREG,
2032 );
2033 }
2034}
2035
2036impl<'a> VpabswEmitter<Ymm, Ymm> for Assembler<'a> {
2037 fn vpabsw(&mut self, op0: Ymm, op1: Ymm) {
2038 self.emit(
2039 VPABSW256RR,
2040 op0.as_operand(),
2041 op1.as_operand(),
2042 &NOREG,
2043 &NOREG,
2044 );
2045 }
2046}
2047
2048impl<'a> VpabswEmitter<Ymm, Mem> for Assembler<'a> {
2049 fn vpabsw(&mut self, op0: Ymm, op1: Mem) {
2050 self.emit(
2051 VPABSW256RM,
2052 op0.as_operand(),
2053 op1.as_operand(),
2054 &NOREG,
2055 &NOREG,
2056 );
2057 }
2058}
2059
2060impl<'a> VpabswEmitter<Zmm, Zmm> for Assembler<'a> {
2061 fn vpabsw(&mut self, op0: Zmm, op1: Zmm) {
2062 self.emit(
2063 VPABSW512RR,
2064 op0.as_operand(),
2065 op1.as_operand(),
2066 &NOREG,
2067 &NOREG,
2068 );
2069 }
2070}
2071
2072impl<'a> VpabswEmitter<Zmm, Mem> for Assembler<'a> {
2073 fn vpabsw(&mut self, op0: Zmm, op1: Mem) {
2074 self.emit(
2075 VPABSW512RM,
2076 op0.as_operand(),
2077 op1.as_operand(),
2078 &NOREG,
2079 &NOREG,
2080 );
2081 }
2082}
2083
2084pub trait VpabswMaskEmitter<A, B> {
2101 fn vpabsw_mask(&mut self, op0: A, op1: B);
2102}
2103
2104impl<'a> VpabswMaskEmitter<Xmm, Xmm> for Assembler<'a> {
2105 fn vpabsw_mask(&mut self, op0: Xmm, op1: Xmm) {
2106 self.emit(
2107 VPABSW128RR_MASK,
2108 op0.as_operand(),
2109 op1.as_operand(),
2110 &NOREG,
2111 &NOREG,
2112 );
2113 }
2114}
2115
2116impl<'a> VpabswMaskEmitter<Xmm, Mem> for Assembler<'a> {
2117 fn vpabsw_mask(&mut self, op0: Xmm, op1: Mem) {
2118 self.emit(
2119 VPABSW128RM_MASK,
2120 op0.as_operand(),
2121 op1.as_operand(),
2122 &NOREG,
2123 &NOREG,
2124 );
2125 }
2126}
2127
2128impl<'a> VpabswMaskEmitter<Ymm, Ymm> for Assembler<'a> {
2129 fn vpabsw_mask(&mut self, op0: Ymm, op1: Ymm) {
2130 self.emit(
2131 VPABSW256RR_MASK,
2132 op0.as_operand(),
2133 op1.as_operand(),
2134 &NOREG,
2135 &NOREG,
2136 );
2137 }
2138}
2139
2140impl<'a> VpabswMaskEmitter<Ymm, Mem> for Assembler<'a> {
2141 fn vpabsw_mask(&mut self, op0: Ymm, op1: Mem) {
2142 self.emit(
2143 VPABSW256RM_MASK,
2144 op0.as_operand(),
2145 op1.as_operand(),
2146 &NOREG,
2147 &NOREG,
2148 );
2149 }
2150}
2151
2152impl<'a> VpabswMaskEmitter<Zmm, Zmm> for Assembler<'a> {
2153 fn vpabsw_mask(&mut self, op0: Zmm, op1: Zmm) {
2154 self.emit(
2155 VPABSW512RR_MASK,
2156 op0.as_operand(),
2157 op1.as_operand(),
2158 &NOREG,
2159 &NOREG,
2160 );
2161 }
2162}
2163
2164impl<'a> VpabswMaskEmitter<Zmm, Mem> for Assembler<'a> {
2165 fn vpabsw_mask(&mut self, op0: Zmm, op1: Mem) {
2166 self.emit(
2167 VPABSW512RM_MASK,
2168 op0.as_operand(),
2169 op1.as_operand(),
2170 &NOREG,
2171 &NOREG,
2172 );
2173 }
2174}
2175
2176pub trait VpabswMaskzEmitter<A, B> {
2193 fn vpabsw_maskz(&mut self, op0: A, op1: B);
2194}
2195
2196impl<'a> VpabswMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
2197 fn vpabsw_maskz(&mut self, op0: Xmm, op1: Xmm) {
2198 self.emit(
2199 VPABSW128RR_MASKZ,
2200 op0.as_operand(),
2201 op1.as_operand(),
2202 &NOREG,
2203 &NOREG,
2204 );
2205 }
2206}
2207
2208impl<'a> VpabswMaskzEmitter<Xmm, Mem> for Assembler<'a> {
2209 fn vpabsw_maskz(&mut self, op0: Xmm, op1: Mem) {
2210 self.emit(
2211 VPABSW128RM_MASKZ,
2212 op0.as_operand(),
2213 op1.as_operand(),
2214 &NOREG,
2215 &NOREG,
2216 );
2217 }
2218}
2219
2220impl<'a> VpabswMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
2221 fn vpabsw_maskz(&mut self, op0: Ymm, op1: Ymm) {
2222 self.emit(
2223 VPABSW256RR_MASKZ,
2224 op0.as_operand(),
2225 op1.as_operand(),
2226 &NOREG,
2227 &NOREG,
2228 );
2229 }
2230}
2231
2232impl<'a> VpabswMaskzEmitter<Ymm, Mem> for Assembler<'a> {
2233 fn vpabsw_maskz(&mut self, op0: Ymm, op1: Mem) {
2234 self.emit(
2235 VPABSW256RM_MASKZ,
2236 op0.as_operand(),
2237 op1.as_operand(),
2238 &NOREG,
2239 &NOREG,
2240 );
2241 }
2242}
2243
2244impl<'a> VpabswMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
2245 fn vpabsw_maskz(&mut self, op0: Zmm, op1: Zmm) {
2246 self.emit(
2247 VPABSW512RR_MASKZ,
2248 op0.as_operand(),
2249 op1.as_operand(),
2250 &NOREG,
2251 &NOREG,
2252 );
2253 }
2254}
2255
2256impl<'a> VpabswMaskzEmitter<Zmm, Mem> for Assembler<'a> {
2257 fn vpabsw_maskz(&mut self, op0: Zmm, op1: Mem) {
2258 self.emit(
2259 VPABSW512RM_MASKZ,
2260 op0.as_operand(),
2261 op1.as_operand(),
2262 &NOREG,
2263 &NOREG,
2264 );
2265 }
2266}
2267
2268pub trait VpackssdwEmitter<A, B, C> {
2285 fn vpackssdw(&mut self, op0: A, op1: B, op2: C);
2286}
2287
2288impl<'a> VpackssdwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2289 fn vpackssdw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2290 self.emit(
2291 VPACKSSDW128RRR,
2292 op0.as_operand(),
2293 op1.as_operand(),
2294 op2.as_operand(),
2295 &NOREG,
2296 );
2297 }
2298}
2299
2300impl<'a> VpackssdwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2301 fn vpackssdw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2302 self.emit(
2303 VPACKSSDW128RRM,
2304 op0.as_operand(),
2305 op1.as_operand(),
2306 op2.as_operand(),
2307 &NOREG,
2308 );
2309 }
2310}
2311
2312impl<'a> VpackssdwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2313 fn vpackssdw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2314 self.emit(
2315 VPACKSSDW256RRR,
2316 op0.as_operand(),
2317 op1.as_operand(),
2318 op2.as_operand(),
2319 &NOREG,
2320 );
2321 }
2322}
2323
2324impl<'a> VpackssdwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2325 fn vpackssdw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2326 self.emit(
2327 VPACKSSDW256RRM,
2328 op0.as_operand(),
2329 op1.as_operand(),
2330 op2.as_operand(),
2331 &NOREG,
2332 );
2333 }
2334}
2335
2336impl<'a> VpackssdwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2337 fn vpackssdw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2338 self.emit(
2339 VPACKSSDW512RRR,
2340 op0.as_operand(),
2341 op1.as_operand(),
2342 op2.as_operand(),
2343 &NOREG,
2344 );
2345 }
2346}
2347
2348impl<'a> VpackssdwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2349 fn vpackssdw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2350 self.emit(
2351 VPACKSSDW512RRM,
2352 op0.as_operand(),
2353 op1.as_operand(),
2354 op2.as_operand(),
2355 &NOREG,
2356 );
2357 }
2358}
2359
2360pub trait VpackssdwMaskEmitter<A, B, C> {
2377 fn vpackssdw_mask(&mut self, op0: A, op1: B, op2: C);
2378}
2379
2380impl<'a> VpackssdwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2381 fn vpackssdw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2382 self.emit(
2383 VPACKSSDW128RRR_MASK,
2384 op0.as_operand(),
2385 op1.as_operand(),
2386 op2.as_operand(),
2387 &NOREG,
2388 );
2389 }
2390}
2391
2392impl<'a> VpackssdwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2393 fn vpackssdw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2394 self.emit(
2395 VPACKSSDW128RRM_MASK,
2396 op0.as_operand(),
2397 op1.as_operand(),
2398 op2.as_operand(),
2399 &NOREG,
2400 );
2401 }
2402}
2403
2404impl<'a> VpackssdwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2405 fn vpackssdw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2406 self.emit(
2407 VPACKSSDW256RRR_MASK,
2408 op0.as_operand(),
2409 op1.as_operand(),
2410 op2.as_operand(),
2411 &NOREG,
2412 );
2413 }
2414}
2415
2416impl<'a> VpackssdwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2417 fn vpackssdw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2418 self.emit(
2419 VPACKSSDW256RRM_MASK,
2420 op0.as_operand(),
2421 op1.as_operand(),
2422 op2.as_operand(),
2423 &NOREG,
2424 );
2425 }
2426}
2427
2428impl<'a> VpackssdwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2429 fn vpackssdw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2430 self.emit(
2431 VPACKSSDW512RRR_MASK,
2432 op0.as_operand(),
2433 op1.as_operand(),
2434 op2.as_operand(),
2435 &NOREG,
2436 );
2437 }
2438}
2439
2440impl<'a> VpackssdwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2441 fn vpackssdw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2442 self.emit(
2443 VPACKSSDW512RRM_MASK,
2444 op0.as_operand(),
2445 op1.as_operand(),
2446 op2.as_operand(),
2447 &NOREG,
2448 );
2449 }
2450}
2451
2452pub trait VpackssdwMaskzEmitter<A, B, C> {
2469 fn vpackssdw_maskz(&mut self, op0: A, op1: B, op2: C);
2470}
2471
2472impl<'a> VpackssdwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2473 fn vpackssdw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2474 self.emit(
2475 VPACKSSDW128RRR_MASKZ,
2476 op0.as_operand(),
2477 op1.as_operand(),
2478 op2.as_operand(),
2479 &NOREG,
2480 );
2481 }
2482}
2483
2484impl<'a> VpackssdwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2485 fn vpackssdw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2486 self.emit(
2487 VPACKSSDW128RRM_MASKZ,
2488 op0.as_operand(),
2489 op1.as_operand(),
2490 op2.as_operand(),
2491 &NOREG,
2492 );
2493 }
2494}
2495
2496impl<'a> VpackssdwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2497 fn vpackssdw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2498 self.emit(
2499 VPACKSSDW256RRR_MASKZ,
2500 op0.as_operand(),
2501 op1.as_operand(),
2502 op2.as_operand(),
2503 &NOREG,
2504 );
2505 }
2506}
2507
2508impl<'a> VpackssdwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2509 fn vpackssdw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2510 self.emit(
2511 VPACKSSDW256RRM_MASKZ,
2512 op0.as_operand(),
2513 op1.as_operand(),
2514 op2.as_operand(),
2515 &NOREG,
2516 );
2517 }
2518}
2519
2520impl<'a> VpackssdwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2521 fn vpackssdw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2522 self.emit(
2523 VPACKSSDW512RRR_MASKZ,
2524 op0.as_operand(),
2525 op1.as_operand(),
2526 op2.as_operand(),
2527 &NOREG,
2528 );
2529 }
2530}
2531
2532impl<'a> VpackssdwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2533 fn vpackssdw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2534 self.emit(
2535 VPACKSSDW512RRM_MASKZ,
2536 op0.as_operand(),
2537 op1.as_operand(),
2538 op2.as_operand(),
2539 &NOREG,
2540 );
2541 }
2542}
2543
2544pub trait VpacksswbEmitter<A, B, C> {
2561 fn vpacksswb(&mut self, op0: A, op1: B, op2: C);
2562}
2563
2564impl<'a> VpacksswbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2565 fn vpacksswb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2566 self.emit(
2567 VPACKSSWB128RRR,
2568 op0.as_operand(),
2569 op1.as_operand(),
2570 op2.as_operand(),
2571 &NOREG,
2572 );
2573 }
2574}
2575
2576impl<'a> VpacksswbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2577 fn vpacksswb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2578 self.emit(
2579 VPACKSSWB128RRM,
2580 op0.as_operand(),
2581 op1.as_operand(),
2582 op2.as_operand(),
2583 &NOREG,
2584 );
2585 }
2586}
2587
2588impl<'a> VpacksswbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2589 fn vpacksswb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2590 self.emit(
2591 VPACKSSWB256RRR,
2592 op0.as_operand(),
2593 op1.as_operand(),
2594 op2.as_operand(),
2595 &NOREG,
2596 );
2597 }
2598}
2599
2600impl<'a> VpacksswbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2601 fn vpacksswb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2602 self.emit(
2603 VPACKSSWB256RRM,
2604 op0.as_operand(),
2605 op1.as_operand(),
2606 op2.as_operand(),
2607 &NOREG,
2608 );
2609 }
2610}
2611
2612impl<'a> VpacksswbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2613 fn vpacksswb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2614 self.emit(
2615 VPACKSSWB512RRR,
2616 op0.as_operand(),
2617 op1.as_operand(),
2618 op2.as_operand(),
2619 &NOREG,
2620 );
2621 }
2622}
2623
2624impl<'a> VpacksswbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2625 fn vpacksswb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2626 self.emit(
2627 VPACKSSWB512RRM,
2628 op0.as_operand(),
2629 op1.as_operand(),
2630 op2.as_operand(),
2631 &NOREG,
2632 );
2633 }
2634}
2635
2636pub trait VpacksswbMaskEmitter<A, B, C> {
2653 fn vpacksswb_mask(&mut self, op0: A, op1: B, op2: C);
2654}
2655
2656impl<'a> VpacksswbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2657 fn vpacksswb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2658 self.emit(
2659 VPACKSSWB128RRR_MASK,
2660 op0.as_operand(),
2661 op1.as_operand(),
2662 op2.as_operand(),
2663 &NOREG,
2664 );
2665 }
2666}
2667
2668impl<'a> VpacksswbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2669 fn vpacksswb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2670 self.emit(
2671 VPACKSSWB128RRM_MASK,
2672 op0.as_operand(),
2673 op1.as_operand(),
2674 op2.as_operand(),
2675 &NOREG,
2676 );
2677 }
2678}
2679
2680impl<'a> VpacksswbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2681 fn vpacksswb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2682 self.emit(
2683 VPACKSSWB256RRR_MASK,
2684 op0.as_operand(),
2685 op1.as_operand(),
2686 op2.as_operand(),
2687 &NOREG,
2688 );
2689 }
2690}
2691
2692impl<'a> VpacksswbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2693 fn vpacksswb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2694 self.emit(
2695 VPACKSSWB256RRM_MASK,
2696 op0.as_operand(),
2697 op1.as_operand(),
2698 op2.as_operand(),
2699 &NOREG,
2700 );
2701 }
2702}
2703
2704impl<'a> VpacksswbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2705 fn vpacksswb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2706 self.emit(
2707 VPACKSSWB512RRR_MASK,
2708 op0.as_operand(),
2709 op1.as_operand(),
2710 op2.as_operand(),
2711 &NOREG,
2712 );
2713 }
2714}
2715
2716impl<'a> VpacksswbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2717 fn vpacksswb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2718 self.emit(
2719 VPACKSSWB512RRM_MASK,
2720 op0.as_operand(),
2721 op1.as_operand(),
2722 op2.as_operand(),
2723 &NOREG,
2724 );
2725 }
2726}
2727
2728pub trait VpacksswbMaskzEmitter<A, B, C> {
2745 fn vpacksswb_maskz(&mut self, op0: A, op1: B, op2: C);
2746}
2747
2748impl<'a> VpacksswbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2749 fn vpacksswb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2750 self.emit(
2751 VPACKSSWB128RRR_MASKZ,
2752 op0.as_operand(),
2753 op1.as_operand(),
2754 op2.as_operand(),
2755 &NOREG,
2756 );
2757 }
2758}
2759
2760impl<'a> VpacksswbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2761 fn vpacksswb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2762 self.emit(
2763 VPACKSSWB128RRM_MASKZ,
2764 op0.as_operand(),
2765 op1.as_operand(),
2766 op2.as_operand(),
2767 &NOREG,
2768 );
2769 }
2770}
2771
2772impl<'a> VpacksswbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2773 fn vpacksswb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2774 self.emit(
2775 VPACKSSWB256RRR_MASKZ,
2776 op0.as_operand(),
2777 op1.as_operand(),
2778 op2.as_operand(),
2779 &NOREG,
2780 );
2781 }
2782}
2783
2784impl<'a> VpacksswbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2785 fn vpacksswb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2786 self.emit(
2787 VPACKSSWB256RRM_MASKZ,
2788 op0.as_operand(),
2789 op1.as_operand(),
2790 op2.as_operand(),
2791 &NOREG,
2792 );
2793 }
2794}
2795
2796impl<'a> VpacksswbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2797 fn vpacksswb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2798 self.emit(
2799 VPACKSSWB512RRR_MASKZ,
2800 op0.as_operand(),
2801 op1.as_operand(),
2802 op2.as_operand(),
2803 &NOREG,
2804 );
2805 }
2806}
2807
2808impl<'a> VpacksswbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2809 fn vpacksswb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2810 self.emit(
2811 VPACKSSWB512RRM_MASKZ,
2812 op0.as_operand(),
2813 op1.as_operand(),
2814 op2.as_operand(),
2815 &NOREG,
2816 );
2817 }
2818}
2819
2820pub trait VpackusdwEmitter<A, B, C> {
2837 fn vpackusdw(&mut self, op0: A, op1: B, op2: C);
2838}
2839
2840impl<'a> VpackusdwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2841 fn vpackusdw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2842 self.emit(
2843 VPACKUSDW128RRR,
2844 op0.as_operand(),
2845 op1.as_operand(),
2846 op2.as_operand(),
2847 &NOREG,
2848 );
2849 }
2850}
2851
2852impl<'a> VpackusdwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2853 fn vpackusdw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2854 self.emit(
2855 VPACKUSDW128RRM,
2856 op0.as_operand(),
2857 op1.as_operand(),
2858 op2.as_operand(),
2859 &NOREG,
2860 );
2861 }
2862}
2863
2864impl<'a> VpackusdwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2865 fn vpackusdw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2866 self.emit(
2867 VPACKUSDW256RRR,
2868 op0.as_operand(),
2869 op1.as_operand(),
2870 op2.as_operand(),
2871 &NOREG,
2872 );
2873 }
2874}
2875
2876impl<'a> VpackusdwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2877 fn vpackusdw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2878 self.emit(
2879 VPACKUSDW256RRM,
2880 op0.as_operand(),
2881 op1.as_operand(),
2882 op2.as_operand(),
2883 &NOREG,
2884 );
2885 }
2886}
2887
2888impl<'a> VpackusdwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2889 fn vpackusdw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2890 self.emit(
2891 VPACKUSDW512RRR,
2892 op0.as_operand(),
2893 op1.as_operand(),
2894 op2.as_operand(),
2895 &NOREG,
2896 );
2897 }
2898}
2899
2900impl<'a> VpackusdwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2901 fn vpackusdw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2902 self.emit(
2903 VPACKUSDW512RRM,
2904 op0.as_operand(),
2905 op1.as_operand(),
2906 op2.as_operand(),
2907 &NOREG,
2908 );
2909 }
2910}
2911
2912pub trait VpackusdwMaskEmitter<A, B, C> {
2929 fn vpackusdw_mask(&mut self, op0: A, op1: B, op2: C);
2930}
2931
2932impl<'a> VpackusdwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
2933 fn vpackusdw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
2934 self.emit(
2935 VPACKUSDW128RRR_MASK,
2936 op0.as_operand(),
2937 op1.as_operand(),
2938 op2.as_operand(),
2939 &NOREG,
2940 );
2941 }
2942}
2943
2944impl<'a> VpackusdwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
2945 fn vpackusdw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
2946 self.emit(
2947 VPACKUSDW128RRM_MASK,
2948 op0.as_operand(),
2949 op1.as_operand(),
2950 op2.as_operand(),
2951 &NOREG,
2952 );
2953 }
2954}
2955
2956impl<'a> VpackusdwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
2957 fn vpackusdw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
2958 self.emit(
2959 VPACKUSDW256RRR_MASK,
2960 op0.as_operand(),
2961 op1.as_operand(),
2962 op2.as_operand(),
2963 &NOREG,
2964 );
2965 }
2966}
2967
2968impl<'a> VpackusdwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
2969 fn vpackusdw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
2970 self.emit(
2971 VPACKUSDW256RRM_MASK,
2972 op0.as_operand(),
2973 op1.as_operand(),
2974 op2.as_operand(),
2975 &NOREG,
2976 );
2977 }
2978}
2979
2980impl<'a> VpackusdwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
2981 fn vpackusdw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
2982 self.emit(
2983 VPACKUSDW512RRR_MASK,
2984 op0.as_operand(),
2985 op1.as_operand(),
2986 op2.as_operand(),
2987 &NOREG,
2988 );
2989 }
2990}
2991
2992impl<'a> VpackusdwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
2993 fn vpackusdw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
2994 self.emit(
2995 VPACKUSDW512RRM_MASK,
2996 op0.as_operand(),
2997 op1.as_operand(),
2998 op2.as_operand(),
2999 &NOREG,
3000 );
3001 }
3002}
3003
3004pub trait VpackusdwMaskzEmitter<A, B, C> {
3021 fn vpackusdw_maskz(&mut self, op0: A, op1: B, op2: C);
3022}
3023
3024impl<'a> VpackusdwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3025 fn vpackusdw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3026 self.emit(
3027 VPACKUSDW128RRR_MASKZ,
3028 op0.as_operand(),
3029 op1.as_operand(),
3030 op2.as_operand(),
3031 &NOREG,
3032 );
3033 }
3034}
3035
3036impl<'a> VpackusdwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3037 fn vpackusdw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3038 self.emit(
3039 VPACKUSDW128RRM_MASKZ,
3040 op0.as_operand(),
3041 op1.as_operand(),
3042 op2.as_operand(),
3043 &NOREG,
3044 );
3045 }
3046}
3047
3048impl<'a> VpackusdwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3049 fn vpackusdw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3050 self.emit(
3051 VPACKUSDW256RRR_MASKZ,
3052 op0.as_operand(),
3053 op1.as_operand(),
3054 op2.as_operand(),
3055 &NOREG,
3056 );
3057 }
3058}
3059
3060impl<'a> VpackusdwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3061 fn vpackusdw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3062 self.emit(
3063 VPACKUSDW256RRM_MASKZ,
3064 op0.as_operand(),
3065 op1.as_operand(),
3066 op2.as_operand(),
3067 &NOREG,
3068 );
3069 }
3070}
3071
3072impl<'a> VpackusdwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3073 fn vpackusdw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3074 self.emit(
3075 VPACKUSDW512RRR_MASKZ,
3076 op0.as_operand(),
3077 op1.as_operand(),
3078 op2.as_operand(),
3079 &NOREG,
3080 );
3081 }
3082}
3083
3084impl<'a> VpackusdwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3085 fn vpackusdw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3086 self.emit(
3087 VPACKUSDW512RRM_MASKZ,
3088 op0.as_operand(),
3089 op1.as_operand(),
3090 op2.as_operand(),
3091 &NOREG,
3092 );
3093 }
3094}
3095
3096pub trait VpackuswbEmitter<A, B, C> {
3113 fn vpackuswb(&mut self, op0: A, op1: B, op2: C);
3114}
3115
3116impl<'a> VpackuswbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3117 fn vpackuswb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3118 self.emit(
3119 VPACKUSWB128RRR,
3120 op0.as_operand(),
3121 op1.as_operand(),
3122 op2.as_operand(),
3123 &NOREG,
3124 );
3125 }
3126}
3127
3128impl<'a> VpackuswbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3129 fn vpackuswb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3130 self.emit(
3131 VPACKUSWB128RRM,
3132 op0.as_operand(),
3133 op1.as_operand(),
3134 op2.as_operand(),
3135 &NOREG,
3136 );
3137 }
3138}
3139
3140impl<'a> VpackuswbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3141 fn vpackuswb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3142 self.emit(
3143 VPACKUSWB256RRR,
3144 op0.as_operand(),
3145 op1.as_operand(),
3146 op2.as_operand(),
3147 &NOREG,
3148 );
3149 }
3150}
3151
3152impl<'a> VpackuswbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3153 fn vpackuswb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3154 self.emit(
3155 VPACKUSWB256RRM,
3156 op0.as_operand(),
3157 op1.as_operand(),
3158 op2.as_operand(),
3159 &NOREG,
3160 );
3161 }
3162}
3163
3164impl<'a> VpackuswbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3165 fn vpackuswb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3166 self.emit(
3167 VPACKUSWB512RRR,
3168 op0.as_operand(),
3169 op1.as_operand(),
3170 op2.as_operand(),
3171 &NOREG,
3172 );
3173 }
3174}
3175
3176impl<'a> VpackuswbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3177 fn vpackuswb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3178 self.emit(
3179 VPACKUSWB512RRM,
3180 op0.as_operand(),
3181 op1.as_operand(),
3182 op2.as_operand(),
3183 &NOREG,
3184 );
3185 }
3186}
3187
3188pub trait VpackuswbMaskEmitter<A, B, C> {
3205 fn vpackuswb_mask(&mut self, op0: A, op1: B, op2: C);
3206}
3207
3208impl<'a> VpackuswbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3209 fn vpackuswb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3210 self.emit(
3211 VPACKUSWB128RRR_MASK,
3212 op0.as_operand(),
3213 op1.as_operand(),
3214 op2.as_operand(),
3215 &NOREG,
3216 );
3217 }
3218}
3219
3220impl<'a> VpackuswbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3221 fn vpackuswb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3222 self.emit(
3223 VPACKUSWB128RRM_MASK,
3224 op0.as_operand(),
3225 op1.as_operand(),
3226 op2.as_operand(),
3227 &NOREG,
3228 );
3229 }
3230}
3231
3232impl<'a> VpackuswbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3233 fn vpackuswb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3234 self.emit(
3235 VPACKUSWB256RRR_MASK,
3236 op0.as_operand(),
3237 op1.as_operand(),
3238 op2.as_operand(),
3239 &NOREG,
3240 );
3241 }
3242}
3243
3244impl<'a> VpackuswbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3245 fn vpackuswb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3246 self.emit(
3247 VPACKUSWB256RRM_MASK,
3248 op0.as_operand(),
3249 op1.as_operand(),
3250 op2.as_operand(),
3251 &NOREG,
3252 );
3253 }
3254}
3255
3256impl<'a> VpackuswbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3257 fn vpackuswb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3258 self.emit(
3259 VPACKUSWB512RRR_MASK,
3260 op0.as_operand(),
3261 op1.as_operand(),
3262 op2.as_operand(),
3263 &NOREG,
3264 );
3265 }
3266}
3267
3268impl<'a> VpackuswbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3269 fn vpackuswb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3270 self.emit(
3271 VPACKUSWB512RRM_MASK,
3272 op0.as_operand(),
3273 op1.as_operand(),
3274 op2.as_operand(),
3275 &NOREG,
3276 );
3277 }
3278}
3279
3280pub trait VpackuswbMaskzEmitter<A, B, C> {
3297 fn vpackuswb_maskz(&mut self, op0: A, op1: B, op2: C);
3298}
3299
3300impl<'a> VpackuswbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3301 fn vpackuswb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3302 self.emit(
3303 VPACKUSWB128RRR_MASKZ,
3304 op0.as_operand(),
3305 op1.as_operand(),
3306 op2.as_operand(),
3307 &NOREG,
3308 );
3309 }
3310}
3311
3312impl<'a> VpackuswbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3313 fn vpackuswb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3314 self.emit(
3315 VPACKUSWB128RRM_MASKZ,
3316 op0.as_operand(),
3317 op1.as_operand(),
3318 op2.as_operand(),
3319 &NOREG,
3320 );
3321 }
3322}
3323
3324impl<'a> VpackuswbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3325 fn vpackuswb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3326 self.emit(
3327 VPACKUSWB256RRR_MASKZ,
3328 op0.as_operand(),
3329 op1.as_operand(),
3330 op2.as_operand(),
3331 &NOREG,
3332 );
3333 }
3334}
3335
3336impl<'a> VpackuswbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3337 fn vpackuswb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3338 self.emit(
3339 VPACKUSWB256RRM_MASKZ,
3340 op0.as_operand(),
3341 op1.as_operand(),
3342 op2.as_operand(),
3343 &NOREG,
3344 );
3345 }
3346}
3347
3348impl<'a> VpackuswbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3349 fn vpackuswb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3350 self.emit(
3351 VPACKUSWB512RRR_MASKZ,
3352 op0.as_operand(),
3353 op1.as_operand(),
3354 op2.as_operand(),
3355 &NOREG,
3356 );
3357 }
3358}
3359
3360impl<'a> VpackuswbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3361 fn vpackuswb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3362 self.emit(
3363 VPACKUSWB512RRM_MASKZ,
3364 op0.as_operand(),
3365 op1.as_operand(),
3366 op2.as_operand(),
3367 &NOREG,
3368 );
3369 }
3370}
3371
3372pub trait VpaddbEmitter<A, B, C> {
3389 fn vpaddb(&mut self, op0: A, op1: B, op2: C);
3390}
3391
3392impl<'a> VpaddbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3393 fn vpaddb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3394 self.emit(
3395 VPADDB128RRR,
3396 op0.as_operand(),
3397 op1.as_operand(),
3398 op2.as_operand(),
3399 &NOREG,
3400 );
3401 }
3402}
3403
3404impl<'a> VpaddbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3405 fn vpaddb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3406 self.emit(
3407 VPADDB128RRM,
3408 op0.as_operand(),
3409 op1.as_operand(),
3410 op2.as_operand(),
3411 &NOREG,
3412 );
3413 }
3414}
3415
3416impl<'a> VpaddbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3417 fn vpaddb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3418 self.emit(
3419 VPADDB256RRR,
3420 op0.as_operand(),
3421 op1.as_operand(),
3422 op2.as_operand(),
3423 &NOREG,
3424 );
3425 }
3426}
3427
3428impl<'a> VpaddbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3429 fn vpaddb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3430 self.emit(
3431 VPADDB256RRM,
3432 op0.as_operand(),
3433 op1.as_operand(),
3434 op2.as_operand(),
3435 &NOREG,
3436 );
3437 }
3438}
3439
3440impl<'a> VpaddbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3441 fn vpaddb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3442 self.emit(
3443 VPADDB512RRR,
3444 op0.as_operand(),
3445 op1.as_operand(),
3446 op2.as_operand(),
3447 &NOREG,
3448 );
3449 }
3450}
3451
3452impl<'a> VpaddbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3453 fn vpaddb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3454 self.emit(
3455 VPADDB512RRM,
3456 op0.as_operand(),
3457 op1.as_operand(),
3458 op2.as_operand(),
3459 &NOREG,
3460 );
3461 }
3462}
3463
3464pub trait VpaddbMaskEmitter<A, B, C> {
3481 fn vpaddb_mask(&mut self, op0: A, op1: B, op2: C);
3482}
3483
3484impl<'a> VpaddbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3485 fn vpaddb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3486 self.emit(
3487 VPADDB128RRR_MASK,
3488 op0.as_operand(),
3489 op1.as_operand(),
3490 op2.as_operand(),
3491 &NOREG,
3492 );
3493 }
3494}
3495
3496impl<'a> VpaddbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3497 fn vpaddb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3498 self.emit(
3499 VPADDB128RRM_MASK,
3500 op0.as_operand(),
3501 op1.as_operand(),
3502 op2.as_operand(),
3503 &NOREG,
3504 );
3505 }
3506}
3507
3508impl<'a> VpaddbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3509 fn vpaddb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3510 self.emit(
3511 VPADDB256RRR_MASK,
3512 op0.as_operand(),
3513 op1.as_operand(),
3514 op2.as_operand(),
3515 &NOREG,
3516 );
3517 }
3518}
3519
3520impl<'a> VpaddbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3521 fn vpaddb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3522 self.emit(
3523 VPADDB256RRM_MASK,
3524 op0.as_operand(),
3525 op1.as_operand(),
3526 op2.as_operand(),
3527 &NOREG,
3528 );
3529 }
3530}
3531
3532impl<'a> VpaddbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3533 fn vpaddb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3534 self.emit(
3535 VPADDB512RRR_MASK,
3536 op0.as_operand(),
3537 op1.as_operand(),
3538 op2.as_operand(),
3539 &NOREG,
3540 );
3541 }
3542}
3543
3544impl<'a> VpaddbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3545 fn vpaddb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3546 self.emit(
3547 VPADDB512RRM_MASK,
3548 op0.as_operand(),
3549 op1.as_operand(),
3550 op2.as_operand(),
3551 &NOREG,
3552 );
3553 }
3554}
3555
3556pub trait VpaddbMaskzEmitter<A, B, C> {
3573 fn vpaddb_maskz(&mut self, op0: A, op1: B, op2: C);
3574}
3575
3576impl<'a> VpaddbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3577 fn vpaddb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3578 self.emit(
3579 VPADDB128RRR_MASKZ,
3580 op0.as_operand(),
3581 op1.as_operand(),
3582 op2.as_operand(),
3583 &NOREG,
3584 );
3585 }
3586}
3587
3588impl<'a> VpaddbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3589 fn vpaddb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3590 self.emit(
3591 VPADDB128RRM_MASKZ,
3592 op0.as_operand(),
3593 op1.as_operand(),
3594 op2.as_operand(),
3595 &NOREG,
3596 );
3597 }
3598}
3599
3600impl<'a> VpaddbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3601 fn vpaddb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3602 self.emit(
3603 VPADDB256RRR_MASKZ,
3604 op0.as_operand(),
3605 op1.as_operand(),
3606 op2.as_operand(),
3607 &NOREG,
3608 );
3609 }
3610}
3611
3612impl<'a> VpaddbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3613 fn vpaddb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3614 self.emit(
3615 VPADDB256RRM_MASKZ,
3616 op0.as_operand(),
3617 op1.as_operand(),
3618 op2.as_operand(),
3619 &NOREG,
3620 );
3621 }
3622}
3623
3624impl<'a> VpaddbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3625 fn vpaddb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3626 self.emit(
3627 VPADDB512RRR_MASKZ,
3628 op0.as_operand(),
3629 op1.as_operand(),
3630 op2.as_operand(),
3631 &NOREG,
3632 );
3633 }
3634}
3635
3636impl<'a> VpaddbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3637 fn vpaddb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3638 self.emit(
3639 VPADDB512RRM_MASKZ,
3640 op0.as_operand(),
3641 op1.as_operand(),
3642 op2.as_operand(),
3643 &NOREG,
3644 );
3645 }
3646}
3647
3648pub trait VpaddsbEmitter<A, B, C> {
3665 fn vpaddsb(&mut self, op0: A, op1: B, op2: C);
3666}
3667
3668impl<'a> VpaddsbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3669 fn vpaddsb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3670 self.emit(
3671 VPADDSB128RRR,
3672 op0.as_operand(),
3673 op1.as_operand(),
3674 op2.as_operand(),
3675 &NOREG,
3676 );
3677 }
3678}
3679
3680impl<'a> VpaddsbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3681 fn vpaddsb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3682 self.emit(
3683 VPADDSB128RRM,
3684 op0.as_operand(),
3685 op1.as_operand(),
3686 op2.as_operand(),
3687 &NOREG,
3688 );
3689 }
3690}
3691
3692impl<'a> VpaddsbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3693 fn vpaddsb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3694 self.emit(
3695 VPADDSB256RRR,
3696 op0.as_operand(),
3697 op1.as_operand(),
3698 op2.as_operand(),
3699 &NOREG,
3700 );
3701 }
3702}
3703
3704impl<'a> VpaddsbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3705 fn vpaddsb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3706 self.emit(
3707 VPADDSB256RRM,
3708 op0.as_operand(),
3709 op1.as_operand(),
3710 op2.as_operand(),
3711 &NOREG,
3712 );
3713 }
3714}
3715
3716impl<'a> VpaddsbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3717 fn vpaddsb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3718 self.emit(
3719 VPADDSB512RRR,
3720 op0.as_operand(),
3721 op1.as_operand(),
3722 op2.as_operand(),
3723 &NOREG,
3724 );
3725 }
3726}
3727
3728impl<'a> VpaddsbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3729 fn vpaddsb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3730 self.emit(
3731 VPADDSB512RRM,
3732 op0.as_operand(),
3733 op1.as_operand(),
3734 op2.as_operand(),
3735 &NOREG,
3736 );
3737 }
3738}
3739
3740pub trait VpaddsbMaskEmitter<A, B, C> {
3757 fn vpaddsb_mask(&mut self, op0: A, op1: B, op2: C);
3758}
3759
3760impl<'a> VpaddsbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3761 fn vpaddsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3762 self.emit(
3763 VPADDSB128RRR_MASK,
3764 op0.as_operand(),
3765 op1.as_operand(),
3766 op2.as_operand(),
3767 &NOREG,
3768 );
3769 }
3770}
3771
3772impl<'a> VpaddsbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3773 fn vpaddsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3774 self.emit(
3775 VPADDSB128RRM_MASK,
3776 op0.as_operand(),
3777 op1.as_operand(),
3778 op2.as_operand(),
3779 &NOREG,
3780 );
3781 }
3782}
3783
3784impl<'a> VpaddsbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3785 fn vpaddsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3786 self.emit(
3787 VPADDSB256RRR_MASK,
3788 op0.as_operand(),
3789 op1.as_operand(),
3790 op2.as_operand(),
3791 &NOREG,
3792 );
3793 }
3794}
3795
3796impl<'a> VpaddsbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3797 fn vpaddsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3798 self.emit(
3799 VPADDSB256RRM_MASK,
3800 op0.as_operand(),
3801 op1.as_operand(),
3802 op2.as_operand(),
3803 &NOREG,
3804 );
3805 }
3806}
3807
3808impl<'a> VpaddsbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3809 fn vpaddsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3810 self.emit(
3811 VPADDSB512RRR_MASK,
3812 op0.as_operand(),
3813 op1.as_operand(),
3814 op2.as_operand(),
3815 &NOREG,
3816 );
3817 }
3818}
3819
3820impl<'a> VpaddsbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3821 fn vpaddsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3822 self.emit(
3823 VPADDSB512RRM_MASK,
3824 op0.as_operand(),
3825 op1.as_operand(),
3826 op2.as_operand(),
3827 &NOREG,
3828 );
3829 }
3830}
3831
3832pub trait VpaddsbMaskzEmitter<A, B, C> {
3849 fn vpaddsb_maskz(&mut self, op0: A, op1: B, op2: C);
3850}
3851
3852impl<'a> VpaddsbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3853 fn vpaddsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3854 self.emit(
3855 VPADDSB128RRR_MASKZ,
3856 op0.as_operand(),
3857 op1.as_operand(),
3858 op2.as_operand(),
3859 &NOREG,
3860 );
3861 }
3862}
3863
3864impl<'a> VpaddsbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3865 fn vpaddsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3866 self.emit(
3867 VPADDSB128RRM_MASKZ,
3868 op0.as_operand(),
3869 op1.as_operand(),
3870 op2.as_operand(),
3871 &NOREG,
3872 );
3873 }
3874}
3875
3876impl<'a> VpaddsbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3877 fn vpaddsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3878 self.emit(
3879 VPADDSB256RRR_MASKZ,
3880 op0.as_operand(),
3881 op1.as_operand(),
3882 op2.as_operand(),
3883 &NOREG,
3884 );
3885 }
3886}
3887
3888impl<'a> VpaddsbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3889 fn vpaddsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3890 self.emit(
3891 VPADDSB256RRM_MASKZ,
3892 op0.as_operand(),
3893 op1.as_operand(),
3894 op2.as_operand(),
3895 &NOREG,
3896 );
3897 }
3898}
3899
3900impl<'a> VpaddsbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3901 fn vpaddsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3902 self.emit(
3903 VPADDSB512RRR_MASKZ,
3904 op0.as_operand(),
3905 op1.as_operand(),
3906 op2.as_operand(),
3907 &NOREG,
3908 );
3909 }
3910}
3911
3912impl<'a> VpaddsbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
3913 fn vpaddsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
3914 self.emit(
3915 VPADDSB512RRM_MASKZ,
3916 op0.as_operand(),
3917 op1.as_operand(),
3918 op2.as_operand(),
3919 &NOREG,
3920 );
3921 }
3922}
3923
3924pub trait VpaddswEmitter<A, B, C> {
3941 fn vpaddsw(&mut self, op0: A, op1: B, op2: C);
3942}
3943
3944impl<'a> VpaddswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
3945 fn vpaddsw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
3946 self.emit(
3947 VPADDSW128RRR,
3948 op0.as_operand(),
3949 op1.as_operand(),
3950 op2.as_operand(),
3951 &NOREG,
3952 );
3953 }
3954}
3955
3956impl<'a> VpaddswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
3957 fn vpaddsw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
3958 self.emit(
3959 VPADDSW128RRM,
3960 op0.as_operand(),
3961 op1.as_operand(),
3962 op2.as_operand(),
3963 &NOREG,
3964 );
3965 }
3966}
3967
3968impl<'a> VpaddswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
3969 fn vpaddsw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
3970 self.emit(
3971 VPADDSW256RRR,
3972 op0.as_operand(),
3973 op1.as_operand(),
3974 op2.as_operand(),
3975 &NOREG,
3976 );
3977 }
3978}
3979
3980impl<'a> VpaddswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
3981 fn vpaddsw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
3982 self.emit(
3983 VPADDSW256RRM,
3984 op0.as_operand(),
3985 op1.as_operand(),
3986 op2.as_operand(),
3987 &NOREG,
3988 );
3989 }
3990}
3991
3992impl<'a> VpaddswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
3993 fn vpaddsw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
3994 self.emit(
3995 VPADDSW512RRR,
3996 op0.as_operand(),
3997 op1.as_operand(),
3998 op2.as_operand(),
3999 &NOREG,
4000 );
4001 }
4002}
4003
4004impl<'a> VpaddswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4005 fn vpaddsw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4006 self.emit(
4007 VPADDSW512RRM,
4008 op0.as_operand(),
4009 op1.as_operand(),
4010 op2.as_operand(),
4011 &NOREG,
4012 );
4013 }
4014}
4015
4016pub trait VpaddswMaskEmitter<A, B, C> {
4033 fn vpaddsw_mask(&mut self, op0: A, op1: B, op2: C);
4034}
4035
4036impl<'a> VpaddswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4037 fn vpaddsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4038 self.emit(
4039 VPADDSW128RRR_MASK,
4040 op0.as_operand(),
4041 op1.as_operand(),
4042 op2.as_operand(),
4043 &NOREG,
4044 );
4045 }
4046}
4047
4048impl<'a> VpaddswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4049 fn vpaddsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4050 self.emit(
4051 VPADDSW128RRM_MASK,
4052 op0.as_operand(),
4053 op1.as_operand(),
4054 op2.as_operand(),
4055 &NOREG,
4056 );
4057 }
4058}
4059
4060impl<'a> VpaddswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4061 fn vpaddsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4062 self.emit(
4063 VPADDSW256RRR_MASK,
4064 op0.as_operand(),
4065 op1.as_operand(),
4066 op2.as_operand(),
4067 &NOREG,
4068 );
4069 }
4070}
4071
4072impl<'a> VpaddswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4073 fn vpaddsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4074 self.emit(
4075 VPADDSW256RRM_MASK,
4076 op0.as_operand(),
4077 op1.as_operand(),
4078 op2.as_operand(),
4079 &NOREG,
4080 );
4081 }
4082}
4083
4084impl<'a> VpaddswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4085 fn vpaddsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4086 self.emit(
4087 VPADDSW512RRR_MASK,
4088 op0.as_operand(),
4089 op1.as_operand(),
4090 op2.as_operand(),
4091 &NOREG,
4092 );
4093 }
4094}
4095
4096impl<'a> VpaddswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4097 fn vpaddsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4098 self.emit(
4099 VPADDSW512RRM_MASK,
4100 op0.as_operand(),
4101 op1.as_operand(),
4102 op2.as_operand(),
4103 &NOREG,
4104 );
4105 }
4106}
4107
4108pub trait VpaddswMaskzEmitter<A, B, C> {
4125 fn vpaddsw_maskz(&mut self, op0: A, op1: B, op2: C);
4126}
4127
4128impl<'a> VpaddswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4129 fn vpaddsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4130 self.emit(
4131 VPADDSW128RRR_MASKZ,
4132 op0.as_operand(),
4133 op1.as_operand(),
4134 op2.as_operand(),
4135 &NOREG,
4136 );
4137 }
4138}
4139
4140impl<'a> VpaddswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4141 fn vpaddsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4142 self.emit(
4143 VPADDSW128RRM_MASKZ,
4144 op0.as_operand(),
4145 op1.as_operand(),
4146 op2.as_operand(),
4147 &NOREG,
4148 );
4149 }
4150}
4151
4152impl<'a> VpaddswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4153 fn vpaddsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4154 self.emit(
4155 VPADDSW256RRR_MASKZ,
4156 op0.as_operand(),
4157 op1.as_operand(),
4158 op2.as_operand(),
4159 &NOREG,
4160 );
4161 }
4162}
4163
4164impl<'a> VpaddswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4165 fn vpaddsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4166 self.emit(
4167 VPADDSW256RRM_MASKZ,
4168 op0.as_operand(),
4169 op1.as_operand(),
4170 op2.as_operand(),
4171 &NOREG,
4172 );
4173 }
4174}
4175
4176impl<'a> VpaddswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4177 fn vpaddsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4178 self.emit(
4179 VPADDSW512RRR_MASKZ,
4180 op0.as_operand(),
4181 op1.as_operand(),
4182 op2.as_operand(),
4183 &NOREG,
4184 );
4185 }
4186}
4187
4188impl<'a> VpaddswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4189 fn vpaddsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4190 self.emit(
4191 VPADDSW512RRM_MASKZ,
4192 op0.as_operand(),
4193 op1.as_operand(),
4194 op2.as_operand(),
4195 &NOREG,
4196 );
4197 }
4198}
4199
4200pub trait VpaddusbEmitter<A, B, C> {
4217 fn vpaddusb(&mut self, op0: A, op1: B, op2: C);
4218}
4219
4220impl<'a> VpaddusbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4221 fn vpaddusb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4222 self.emit(
4223 VPADDUSB128RRR,
4224 op0.as_operand(),
4225 op1.as_operand(),
4226 op2.as_operand(),
4227 &NOREG,
4228 );
4229 }
4230}
4231
4232impl<'a> VpaddusbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4233 fn vpaddusb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4234 self.emit(
4235 VPADDUSB128RRM,
4236 op0.as_operand(),
4237 op1.as_operand(),
4238 op2.as_operand(),
4239 &NOREG,
4240 );
4241 }
4242}
4243
4244impl<'a> VpaddusbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4245 fn vpaddusb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4246 self.emit(
4247 VPADDUSB256RRR,
4248 op0.as_operand(),
4249 op1.as_operand(),
4250 op2.as_operand(),
4251 &NOREG,
4252 );
4253 }
4254}
4255
4256impl<'a> VpaddusbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4257 fn vpaddusb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4258 self.emit(
4259 VPADDUSB256RRM,
4260 op0.as_operand(),
4261 op1.as_operand(),
4262 op2.as_operand(),
4263 &NOREG,
4264 );
4265 }
4266}
4267
4268impl<'a> VpaddusbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4269 fn vpaddusb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4270 self.emit(
4271 VPADDUSB512RRR,
4272 op0.as_operand(),
4273 op1.as_operand(),
4274 op2.as_operand(),
4275 &NOREG,
4276 );
4277 }
4278}
4279
4280impl<'a> VpaddusbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4281 fn vpaddusb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4282 self.emit(
4283 VPADDUSB512RRM,
4284 op0.as_operand(),
4285 op1.as_operand(),
4286 op2.as_operand(),
4287 &NOREG,
4288 );
4289 }
4290}
4291
4292pub trait VpaddusbMaskEmitter<A, B, C> {
4309 fn vpaddusb_mask(&mut self, op0: A, op1: B, op2: C);
4310}
4311
4312impl<'a> VpaddusbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4313 fn vpaddusb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4314 self.emit(
4315 VPADDUSB128RRR_MASK,
4316 op0.as_operand(),
4317 op1.as_operand(),
4318 op2.as_operand(),
4319 &NOREG,
4320 );
4321 }
4322}
4323
4324impl<'a> VpaddusbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4325 fn vpaddusb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4326 self.emit(
4327 VPADDUSB128RRM_MASK,
4328 op0.as_operand(),
4329 op1.as_operand(),
4330 op2.as_operand(),
4331 &NOREG,
4332 );
4333 }
4334}
4335
4336impl<'a> VpaddusbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4337 fn vpaddusb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4338 self.emit(
4339 VPADDUSB256RRR_MASK,
4340 op0.as_operand(),
4341 op1.as_operand(),
4342 op2.as_operand(),
4343 &NOREG,
4344 );
4345 }
4346}
4347
4348impl<'a> VpaddusbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4349 fn vpaddusb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4350 self.emit(
4351 VPADDUSB256RRM_MASK,
4352 op0.as_operand(),
4353 op1.as_operand(),
4354 op2.as_operand(),
4355 &NOREG,
4356 );
4357 }
4358}
4359
4360impl<'a> VpaddusbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4361 fn vpaddusb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4362 self.emit(
4363 VPADDUSB512RRR_MASK,
4364 op0.as_operand(),
4365 op1.as_operand(),
4366 op2.as_operand(),
4367 &NOREG,
4368 );
4369 }
4370}
4371
4372impl<'a> VpaddusbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4373 fn vpaddusb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4374 self.emit(
4375 VPADDUSB512RRM_MASK,
4376 op0.as_operand(),
4377 op1.as_operand(),
4378 op2.as_operand(),
4379 &NOREG,
4380 );
4381 }
4382}
4383
4384pub trait VpaddusbMaskzEmitter<A, B, C> {
4401 fn vpaddusb_maskz(&mut self, op0: A, op1: B, op2: C);
4402}
4403
4404impl<'a> VpaddusbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4405 fn vpaddusb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4406 self.emit(
4407 VPADDUSB128RRR_MASKZ,
4408 op0.as_operand(),
4409 op1.as_operand(),
4410 op2.as_operand(),
4411 &NOREG,
4412 );
4413 }
4414}
4415
4416impl<'a> VpaddusbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4417 fn vpaddusb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4418 self.emit(
4419 VPADDUSB128RRM_MASKZ,
4420 op0.as_operand(),
4421 op1.as_operand(),
4422 op2.as_operand(),
4423 &NOREG,
4424 );
4425 }
4426}
4427
4428impl<'a> VpaddusbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4429 fn vpaddusb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4430 self.emit(
4431 VPADDUSB256RRR_MASKZ,
4432 op0.as_operand(),
4433 op1.as_operand(),
4434 op2.as_operand(),
4435 &NOREG,
4436 );
4437 }
4438}
4439
4440impl<'a> VpaddusbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4441 fn vpaddusb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4442 self.emit(
4443 VPADDUSB256RRM_MASKZ,
4444 op0.as_operand(),
4445 op1.as_operand(),
4446 op2.as_operand(),
4447 &NOREG,
4448 );
4449 }
4450}
4451
4452impl<'a> VpaddusbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4453 fn vpaddusb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4454 self.emit(
4455 VPADDUSB512RRR_MASKZ,
4456 op0.as_operand(),
4457 op1.as_operand(),
4458 op2.as_operand(),
4459 &NOREG,
4460 );
4461 }
4462}
4463
4464impl<'a> VpaddusbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4465 fn vpaddusb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4466 self.emit(
4467 VPADDUSB512RRM_MASKZ,
4468 op0.as_operand(),
4469 op1.as_operand(),
4470 op2.as_operand(),
4471 &NOREG,
4472 );
4473 }
4474}
4475
4476pub trait VpadduswEmitter<A, B, C> {
4493 fn vpaddusw(&mut self, op0: A, op1: B, op2: C);
4494}
4495
4496impl<'a> VpadduswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4497 fn vpaddusw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4498 self.emit(
4499 VPADDUSW128RRR,
4500 op0.as_operand(),
4501 op1.as_operand(),
4502 op2.as_operand(),
4503 &NOREG,
4504 );
4505 }
4506}
4507
4508impl<'a> VpadduswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4509 fn vpaddusw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4510 self.emit(
4511 VPADDUSW128RRM,
4512 op0.as_operand(),
4513 op1.as_operand(),
4514 op2.as_operand(),
4515 &NOREG,
4516 );
4517 }
4518}
4519
4520impl<'a> VpadduswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4521 fn vpaddusw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4522 self.emit(
4523 VPADDUSW256RRR,
4524 op0.as_operand(),
4525 op1.as_operand(),
4526 op2.as_operand(),
4527 &NOREG,
4528 );
4529 }
4530}
4531
4532impl<'a> VpadduswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4533 fn vpaddusw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4534 self.emit(
4535 VPADDUSW256RRM,
4536 op0.as_operand(),
4537 op1.as_operand(),
4538 op2.as_operand(),
4539 &NOREG,
4540 );
4541 }
4542}
4543
4544impl<'a> VpadduswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4545 fn vpaddusw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4546 self.emit(
4547 VPADDUSW512RRR,
4548 op0.as_operand(),
4549 op1.as_operand(),
4550 op2.as_operand(),
4551 &NOREG,
4552 );
4553 }
4554}
4555
4556impl<'a> VpadduswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4557 fn vpaddusw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4558 self.emit(
4559 VPADDUSW512RRM,
4560 op0.as_operand(),
4561 op1.as_operand(),
4562 op2.as_operand(),
4563 &NOREG,
4564 );
4565 }
4566}
4567
4568pub trait VpadduswMaskEmitter<A, B, C> {
4585 fn vpaddusw_mask(&mut self, op0: A, op1: B, op2: C);
4586}
4587
4588impl<'a> VpadduswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4589 fn vpaddusw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4590 self.emit(
4591 VPADDUSW128RRR_MASK,
4592 op0.as_operand(),
4593 op1.as_operand(),
4594 op2.as_operand(),
4595 &NOREG,
4596 );
4597 }
4598}
4599
4600impl<'a> VpadduswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4601 fn vpaddusw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4602 self.emit(
4603 VPADDUSW128RRM_MASK,
4604 op0.as_operand(),
4605 op1.as_operand(),
4606 op2.as_operand(),
4607 &NOREG,
4608 );
4609 }
4610}
4611
4612impl<'a> VpadduswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4613 fn vpaddusw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4614 self.emit(
4615 VPADDUSW256RRR_MASK,
4616 op0.as_operand(),
4617 op1.as_operand(),
4618 op2.as_operand(),
4619 &NOREG,
4620 );
4621 }
4622}
4623
4624impl<'a> VpadduswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4625 fn vpaddusw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4626 self.emit(
4627 VPADDUSW256RRM_MASK,
4628 op0.as_operand(),
4629 op1.as_operand(),
4630 op2.as_operand(),
4631 &NOREG,
4632 );
4633 }
4634}
4635
4636impl<'a> VpadduswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4637 fn vpaddusw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4638 self.emit(
4639 VPADDUSW512RRR_MASK,
4640 op0.as_operand(),
4641 op1.as_operand(),
4642 op2.as_operand(),
4643 &NOREG,
4644 );
4645 }
4646}
4647
4648impl<'a> VpadduswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4649 fn vpaddusw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4650 self.emit(
4651 VPADDUSW512RRM_MASK,
4652 op0.as_operand(),
4653 op1.as_operand(),
4654 op2.as_operand(),
4655 &NOREG,
4656 );
4657 }
4658}
4659
4660pub trait VpadduswMaskzEmitter<A, B, C> {
4677 fn vpaddusw_maskz(&mut self, op0: A, op1: B, op2: C);
4678}
4679
4680impl<'a> VpadduswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4681 fn vpaddusw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4682 self.emit(
4683 VPADDUSW128RRR_MASKZ,
4684 op0.as_operand(),
4685 op1.as_operand(),
4686 op2.as_operand(),
4687 &NOREG,
4688 );
4689 }
4690}
4691
4692impl<'a> VpadduswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4693 fn vpaddusw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4694 self.emit(
4695 VPADDUSW128RRM_MASKZ,
4696 op0.as_operand(),
4697 op1.as_operand(),
4698 op2.as_operand(),
4699 &NOREG,
4700 );
4701 }
4702}
4703
4704impl<'a> VpadduswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4705 fn vpaddusw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4706 self.emit(
4707 VPADDUSW256RRR_MASKZ,
4708 op0.as_operand(),
4709 op1.as_operand(),
4710 op2.as_operand(),
4711 &NOREG,
4712 );
4713 }
4714}
4715
4716impl<'a> VpadduswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4717 fn vpaddusw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4718 self.emit(
4719 VPADDUSW256RRM_MASKZ,
4720 op0.as_operand(),
4721 op1.as_operand(),
4722 op2.as_operand(),
4723 &NOREG,
4724 );
4725 }
4726}
4727
4728impl<'a> VpadduswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4729 fn vpaddusw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4730 self.emit(
4731 VPADDUSW512RRR_MASKZ,
4732 op0.as_operand(),
4733 op1.as_operand(),
4734 op2.as_operand(),
4735 &NOREG,
4736 );
4737 }
4738}
4739
4740impl<'a> VpadduswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4741 fn vpaddusw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4742 self.emit(
4743 VPADDUSW512RRM_MASKZ,
4744 op0.as_operand(),
4745 op1.as_operand(),
4746 op2.as_operand(),
4747 &NOREG,
4748 );
4749 }
4750}
4751
4752pub trait VpaddwEmitter<A, B, C> {
4769 fn vpaddw(&mut self, op0: A, op1: B, op2: C);
4770}
4771
4772impl<'a> VpaddwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4773 fn vpaddw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4774 self.emit(
4775 VPADDW128RRR,
4776 op0.as_operand(),
4777 op1.as_operand(),
4778 op2.as_operand(),
4779 &NOREG,
4780 );
4781 }
4782}
4783
4784impl<'a> VpaddwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4785 fn vpaddw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4786 self.emit(
4787 VPADDW128RRM,
4788 op0.as_operand(),
4789 op1.as_operand(),
4790 op2.as_operand(),
4791 &NOREG,
4792 );
4793 }
4794}
4795
4796impl<'a> VpaddwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4797 fn vpaddw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4798 self.emit(
4799 VPADDW256RRR,
4800 op0.as_operand(),
4801 op1.as_operand(),
4802 op2.as_operand(),
4803 &NOREG,
4804 );
4805 }
4806}
4807
4808impl<'a> VpaddwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4809 fn vpaddw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4810 self.emit(
4811 VPADDW256RRM,
4812 op0.as_operand(),
4813 op1.as_operand(),
4814 op2.as_operand(),
4815 &NOREG,
4816 );
4817 }
4818}
4819
4820impl<'a> VpaddwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4821 fn vpaddw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4822 self.emit(
4823 VPADDW512RRR,
4824 op0.as_operand(),
4825 op1.as_operand(),
4826 op2.as_operand(),
4827 &NOREG,
4828 );
4829 }
4830}
4831
4832impl<'a> VpaddwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4833 fn vpaddw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4834 self.emit(
4835 VPADDW512RRM,
4836 op0.as_operand(),
4837 op1.as_operand(),
4838 op2.as_operand(),
4839 &NOREG,
4840 );
4841 }
4842}
4843
4844pub trait VpaddwMaskEmitter<A, B, C> {
4861 fn vpaddw_mask(&mut self, op0: A, op1: B, op2: C);
4862}
4863
4864impl<'a> VpaddwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4865 fn vpaddw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4866 self.emit(
4867 VPADDW128RRR_MASK,
4868 op0.as_operand(),
4869 op1.as_operand(),
4870 op2.as_operand(),
4871 &NOREG,
4872 );
4873 }
4874}
4875
4876impl<'a> VpaddwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4877 fn vpaddw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4878 self.emit(
4879 VPADDW128RRM_MASK,
4880 op0.as_operand(),
4881 op1.as_operand(),
4882 op2.as_operand(),
4883 &NOREG,
4884 );
4885 }
4886}
4887
4888impl<'a> VpaddwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4889 fn vpaddw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4890 self.emit(
4891 VPADDW256RRR_MASK,
4892 op0.as_operand(),
4893 op1.as_operand(),
4894 op2.as_operand(),
4895 &NOREG,
4896 );
4897 }
4898}
4899
4900impl<'a> VpaddwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4901 fn vpaddw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4902 self.emit(
4903 VPADDW256RRM_MASK,
4904 op0.as_operand(),
4905 op1.as_operand(),
4906 op2.as_operand(),
4907 &NOREG,
4908 );
4909 }
4910}
4911
4912impl<'a> VpaddwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
4913 fn vpaddw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
4914 self.emit(
4915 VPADDW512RRR_MASK,
4916 op0.as_operand(),
4917 op1.as_operand(),
4918 op2.as_operand(),
4919 &NOREG,
4920 );
4921 }
4922}
4923
4924impl<'a> VpaddwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
4925 fn vpaddw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
4926 self.emit(
4927 VPADDW512RRM_MASK,
4928 op0.as_operand(),
4929 op1.as_operand(),
4930 op2.as_operand(),
4931 &NOREG,
4932 );
4933 }
4934}
4935
4936pub trait VpaddwMaskzEmitter<A, B, C> {
4953 fn vpaddw_maskz(&mut self, op0: A, op1: B, op2: C);
4954}
4955
4956impl<'a> VpaddwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
4957 fn vpaddw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
4958 self.emit(
4959 VPADDW128RRR_MASKZ,
4960 op0.as_operand(),
4961 op1.as_operand(),
4962 op2.as_operand(),
4963 &NOREG,
4964 );
4965 }
4966}
4967
4968impl<'a> VpaddwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
4969 fn vpaddw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
4970 self.emit(
4971 VPADDW128RRM_MASKZ,
4972 op0.as_operand(),
4973 op1.as_operand(),
4974 op2.as_operand(),
4975 &NOREG,
4976 );
4977 }
4978}
4979
4980impl<'a> VpaddwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
4981 fn vpaddw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
4982 self.emit(
4983 VPADDW256RRR_MASKZ,
4984 op0.as_operand(),
4985 op1.as_operand(),
4986 op2.as_operand(),
4987 &NOREG,
4988 );
4989 }
4990}
4991
4992impl<'a> VpaddwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
4993 fn vpaddw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
4994 self.emit(
4995 VPADDW256RRM_MASKZ,
4996 op0.as_operand(),
4997 op1.as_operand(),
4998 op2.as_operand(),
4999 &NOREG,
5000 );
5001 }
5002}
5003
5004impl<'a> VpaddwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5005 fn vpaddw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5006 self.emit(
5007 VPADDW512RRR_MASKZ,
5008 op0.as_operand(),
5009 op1.as_operand(),
5010 op2.as_operand(),
5011 &NOREG,
5012 );
5013 }
5014}
5015
5016impl<'a> VpaddwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5017 fn vpaddw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5018 self.emit(
5019 VPADDW512RRM_MASKZ,
5020 op0.as_operand(),
5021 op1.as_operand(),
5022 op2.as_operand(),
5023 &NOREG,
5024 );
5025 }
5026}
5027
5028pub trait VpalignrEmitter<A, B, C, D> {
5045 fn vpalignr(&mut self, op0: A, op1: B, op2: C, op3: D);
5046}
5047
5048impl<'a> VpalignrEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
5049 fn vpalignr(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
5050 self.emit(
5051 VPALIGNR128RRRI,
5052 op0.as_operand(),
5053 op1.as_operand(),
5054 op2.as_operand(),
5055 op3.as_operand(),
5056 );
5057 }
5058}
5059
5060impl<'a> VpalignrEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
5061 fn vpalignr(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
5062 self.emit(
5063 VPALIGNR128RRMI,
5064 op0.as_operand(),
5065 op1.as_operand(),
5066 op2.as_operand(),
5067 op3.as_operand(),
5068 );
5069 }
5070}
5071
5072impl<'a> VpalignrEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
5073 fn vpalignr(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
5074 self.emit(
5075 VPALIGNR256RRRI,
5076 op0.as_operand(),
5077 op1.as_operand(),
5078 op2.as_operand(),
5079 op3.as_operand(),
5080 );
5081 }
5082}
5083
5084impl<'a> VpalignrEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5085 fn vpalignr(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5086 self.emit(
5087 VPALIGNR256RRMI,
5088 op0.as_operand(),
5089 op1.as_operand(),
5090 op2.as_operand(),
5091 op3.as_operand(),
5092 );
5093 }
5094}
5095
5096impl<'a> VpalignrEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
5097 fn vpalignr(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
5098 self.emit(
5099 VPALIGNR512RRRI,
5100 op0.as_operand(),
5101 op1.as_operand(),
5102 op2.as_operand(),
5103 op3.as_operand(),
5104 );
5105 }
5106}
5107
5108impl<'a> VpalignrEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5109 fn vpalignr(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5110 self.emit(
5111 VPALIGNR512RRMI,
5112 op0.as_operand(),
5113 op1.as_operand(),
5114 op2.as_operand(),
5115 op3.as_operand(),
5116 );
5117 }
5118}
5119
5120pub trait VpalignrMaskEmitter<A, B, C, D> {
5137 fn vpalignr_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
5138}
5139
5140impl<'a> VpalignrMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
5141 fn vpalignr_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
5142 self.emit(
5143 VPALIGNR128RRRI_MASK,
5144 op0.as_operand(),
5145 op1.as_operand(),
5146 op2.as_operand(),
5147 op3.as_operand(),
5148 );
5149 }
5150}
5151
5152impl<'a> VpalignrMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
5153 fn vpalignr_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
5154 self.emit(
5155 VPALIGNR128RRMI_MASK,
5156 op0.as_operand(),
5157 op1.as_operand(),
5158 op2.as_operand(),
5159 op3.as_operand(),
5160 );
5161 }
5162}
5163
5164impl<'a> VpalignrMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
5165 fn vpalignr_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
5166 self.emit(
5167 VPALIGNR256RRRI_MASK,
5168 op0.as_operand(),
5169 op1.as_operand(),
5170 op2.as_operand(),
5171 op3.as_operand(),
5172 );
5173 }
5174}
5175
5176impl<'a> VpalignrMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5177 fn vpalignr_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5178 self.emit(
5179 VPALIGNR256RRMI_MASK,
5180 op0.as_operand(),
5181 op1.as_operand(),
5182 op2.as_operand(),
5183 op3.as_operand(),
5184 );
5185 }
5186}
5187
5188impl<'a> VpalignrMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
5189 fn vpalignr_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
5190 self.emit(
5191 VPALIGNR512RRRI_MASK,
5192 op0.as_operand(),
5193 op1.as_operand(),
5194 op2.as_operand(),
5195 op3.as_operand(),
5196 );
5197 }
5198}
5199
5200impl<'a> VpalignrMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5201 fn vpalignr_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5202 self.emit(
5203 VPALIGNR512RRMI_MASK,
5204 op0.as_operand(),
5205 op1.as_operand(),
5206 op2.as_operand(),
5207 op3.as_operand(),
5208 );
5209 }
5210}
5211
5212pub trait VpalignrMaskzEmitter<A, B, C, D> {
5229 fn vpalignr_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
5230}
5231
5232impl<'a> VpalignrMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
5233 fn vpalignr_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
5234 self.emit(
5235 VPALIGNR128RRRI_MASKZ,
5236 op0.as_operand(),
5237 op1.as_operand(),
5238 op2.as_operand(),
5239 op3.as_operand(),
5240 );
5241 }
5242}
5243
5244impl<'a> VpalignrMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
5245 fn vpalignr_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
5246 self.emit(
5247 VPALIGNR128RRMI_MASKZ,
5248 op0.as_operand(),
5249 op1.as_operand(),
5250 op2.as_operand(),
5251 op3.as_operand(),
5252 );
5253 }
5254}
5255
5256impl<'a> VpalignrMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
5257 fn vpalignr_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
5258 self.emit(
5259 VPALIGNR256RRRI_MASKZ,
5260 op0.as_operand(),
5261 op1.as_operand(),
5262 op2.as_operand(),
5263 op3.as_operand(),
5264 );
5265 }
5266}
5267
5268impl<'a> VpalignrMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5269 fn vpalignr_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5270 self.emit(
5271 VPALIGNR256RRMI_MASKZ,
5272 op0.as_operand(),
5273 op1.as_operand(),
5274 op2.as_operand(),
5275 op3.as_operand(),
5276 );
5277 }
5278}
5279
5280impl<'a> VpalignrMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
5281 fn vpalignr_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
5282 self.emit(
5283 VPALIGNR512RRRI_MASKZ,
5284 op0.as_operand(),
5285 op1.as_operand(),
5286 op2.as_operand(),
5287 op3.as_operand(),
5288 );
5289 }
5290}
5291
5292impl<'a> VpalignrMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5293 fn vpalignr_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5294 self.emit(
5295 VPALIGNR512RRMI_MASKZ,
5296 op0.as_operand(),
5297 op1.as_operand(),
5298 op2.as_operand(),
5299 op3.as_operand(),
5300 );
5301 }
5302}
5303
5304pub trait VpavgbEmitter<A, B, C> {
5321 fn vpavgb(&mut self, op0: A, op1: B, op2: C);
5322}
5323
5324impl<'a> VpavgbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5325 fn vpavgb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5326 self.emit(
5327 VPAVGB128RRR,
5328 op0.as_operand(),
5329 op1.as_operand(),
5330 op2.as_operand(),
5331 &NOREG,
5332 );
5333 }
5334}
5335
5336impl<'a> VpavgbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5337 fn vpavgb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5338 self.emit(
5339 VPAVGB128RRM,
5340 op0.as_operand(),
5341 op1.as_operand(),
5342 op2.as_operand(),
5343 &NOREG,
5344 );
5345 }
5346}
5347
5348impl<'a> VpavgbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5349 fn vpavgb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5350 self.emit(
5351 VPAVGB256RRR,
5352 op0.as_operand(),
5353 op1.as_operand(),
5354 op2.as_operand(),
5355 &NOREG,
5356 );
5357 }
5358}
5359
5360impl<'a> VpavgbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5361 fn vpavgb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5362 self.emit(
5363 VPAVGB256RRM,
5364 op0.as_operand(),
5365 op1.as_operand(),
5366 op2.as_operand(),
5367 &NOREG,
5368 );
5369 }
5370}
5371
5372impl<'a> VpavgbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5373 fn vpavgb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5374 self.emit(
5375 VPAVGB512RRR,
5376 op0.as_operand(),
5377 op1.as_operand(),
5378 op2.as_operand(),
5379 &NOREG,
5380 );
5381 }
5382}
5383
5384impl<'a> VpavgbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5385 fn vpavgb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5386 self.emit(
5387 VPAVGB512RRM,
5388 op0.as_operand(),
5389 op1.as_operand(),
5390 op2.as_operand(),
5391 &NOREG,
5392 );
5393 }
5394}
5395
5396pub trait VpavgbMaskEmitter<A, B, C> {
5413 fn vpavgb_mask(&mut self, op0: A, op1: B, op2: C);
5414}
5415
5416impl<'a> VpavgbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5417 fn vpavgb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5418 self.emit(
5419 VPAVGB128RRR_MASK,
5420 op0.as_operand(),
5421 op1.as_operand(),
5422 op2.as_operand(),
5423 &NOREG,
5424 );
5425 }
5426}
5427
5428impl<'a> VpavgbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5429 fn vpavgb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5430 self.emit(
5431 VPAVGB128RRM_MASK,
5432 op0.as_operand(),
5433 op1.as_operand(),
5434 op2.as_operand(),
5435 &NOREG,
5436 );
5437 }
5438}
5439
5440impl<'a> VpavgbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5441 fn vpavgb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5442 self.emit(
5443 VPAVGB256RRR_MASK,
5444 op0.as_operand(),
5445 op1.as_operand(),
5446 op2.as_operand(),
5447 &NOREG,
5448 );
5449 }
5450}
5451
5452impl<'a> VpavgbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5453 fn vpavgb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5454 self.emit(
5455 VPAVGB256RRM_MASK,
5456 op0.as_operand(),
5457 op1.as_operand(),
5458 op2.as_operand(),
5459 &NOREG,
5460 );
5461 }
5462}
5463
5464impl<'a> VpavgbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5465 fn vpavgb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5466 self.emit(
5467 VPAVGB512RRR_MASK,
5468 op0.as_operand(),
5469 op1.as_operand(),
5470 op2.as_operand(),
5471 &NOREG,
5472 );
5473 }
5474}
5475
5476impl<'a> VpavgbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5477 fn vpavgb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5478 self.emit(
5479 VPAVGB512RRM_MASK,
5480 op0.as_operand(),
5481 op1.as_operand(),
5482 op2.as_operand(),
5483 &NOREG,
5484 );
5485 }
5486}
5487
5488pub trait VpavgbMaskzEmitter<A, B, C> {
5505 fn vpavgb_maskz(&mut self, op0: A, op1: B, op2: C);
5506}
5507
5508impl<'a> VpavgbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5509 fn vpavgb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5510 self.emit(
5511 VPAVGB128RRR_MASKZ,
5512 op0.as_operand(),
5513 op1.as_operand(),
5514 op2.as_operand(),
5515 &NOREG,
5516 );
5517 }
5518}
5519
5520impl<'a> VpavgbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5521 fn vpavgb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5522 self.emit(
5523 VPAVGB128RRM_MASKZ,
5524 op0.as_operand(),
5525 op1.as_operand(),
5526 op2.as_operand(),
5527 &NOREG,
5528 );
5529 }
5530}
5531
5532impl<'a> VpavgbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5533 fn vpavgb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5534 self.emit(
5535 VPAVGB256RRR_MASKZ,
5536 op0.as_operand(),
5537 op1.as_operand(),
5538 op2.as_operand(),
5539 &NOREG,
5540 );
5541 }
5542}
5543
5544impl<'a> VpavgbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5545 fn vpavgb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5546 self.emit(
5547 VPAVGB256RRM_MASKZ,
5548 op0.as_operand(),
5549 op1.as_operand(),
5550 op2.as_operand(),
5551 &NOREG,
5552 );
5553 }
5554}
5555
5556impl<'a> VpavgbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5557 fn vpavgb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5558 self.emit(
5559 VPAVGB512RRR_MASKZ,
5560 op0.as_operand(),
5561 op1.as_operand(),
5562 op2.as_operand(),
5563 &NOREG,
5564 );
5565 }
5566}
5567
5568impl<'a> VpavgbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5569 fn vpavgb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5570 self.emit(
5571 VPAVGB512RRM_MASKZ,
5572 op0.as_operand(),
5573 op1.as_operand(),
5574 op2.as_operand(),
5575 &NOREG,
5576 );
5577 }
5578}
5579
5580pub trait VpavgwEmitter<A, B, C> {
5597 fn vpavgw(&mut self, op0: A, op1: B, op2: C);
5598}
5599
5600impl<'a> VpavgwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5601 fn vpavgw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5602 self.emit(
5603 VPAVGW128RRR,
5604 op0.as_operand(),
5605 op1.as_operand(),
5606 op2.as_operand(),
5607 &NOREG,
5608 );
5609 }
5610}
5611
5612impl<'a> VpavgwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5613 fn vpavgw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5614 self.emit(
5615 VPAVGW128RRM,
5616 op0.as_operand(),
5617 op1.as_operand(),
5618 op2.as_operand(),
5619 &NOREG,
5620 );
5621 }
5622}
5623
5624impl<'a> VpavgwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5625 fn vpavgw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5626 self.emit(
5627 VPAVGW256RRR,
5628 op0.as_operand(),
5629 op1.as_operand(),
5630 op2.as_operand(),
5631 &NOREG,
5632 );
5633 }
5634}
5635
5636impl<'a> VpavgwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5637 fn vpavgw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5638 self.emit(
5639 VPAVGW256RRM,
5640 op0.as_operand(),
5641 op1.as_operand(),
5642 op2.as_operand(),
5643 &NOREG,
5644 );
5645 }
5646}
5647
5648impl<'a> VpavgwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5649 fn vpavgw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5650 self.emit(
5651 VPAVGW512RRR,
5652 op0.as_operand(),
5653 op1.as_operand(),
5654 op2.as_operand(),
5655 &NOREG,
5656 );
5657 }
5658}
5659
5660impl<'a> VpavgwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5661 fn vpavgw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5662 self.emit(
5663 VPAVGW512RRM,
5664 op0.as_operand(),
5665 op1.as_operand(),
5666 op2.as_operand(),
5667 &NOREG,
5668 );
5669 }
5670}
5671
5672pub trait VpavgwMaskEmitter<A, B, C> {
5689 fn vpavgw_mask(&mut self, op0: A, op1: B, op2: C);
5690}
5691
5692impl<'a> VpavgwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5693 fn vpavgw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5694 self.emit(
5695 VPAVGW128RRR_MASK,
5696 op0.as_operand(),
5697 op1.as_operand(),
5698 op2.as_operand(),
5699 &NOREG,
5700 );
5701 }
5702}
5703
5704impl<'a> VpavgwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5705 fn vpavgw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5706 self.emit(
5707 VPAVGW128RRM_MASK,
5708 op0.as_operand(),
5709 op1.as_operand(),
5710 op2.as_operand(),
5711 &NOREG,
5712 );
5713 }
5714}
5715
5716impl<'a> VpavgwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5717 fn vpavgw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5718 self.emit(
5719 VPAVGW256RRR_MASK,
5720 op0.as_operand(),
5721 op1.as_operand(),
5722 op2.as_operand(),
5723 &NOREG,
5724 );
5725 }
5726}
5727
5728impl<'a> VpavgwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5729 fn vpavgw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5730 self.emit(
5731 VPAVGW256RRM_MASK,
5732 op0.as_operand(),
5733 op1.as_operand(),
5734 op2.as_operand(),
5735 &NOREG,
5736 );
5737 }
5738}
5739
5740impl<'a> VpavgwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5741 fn vpavgw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5742 self.emit(
5743 VPAVGW512RRR_MASK,
5744 op0.as_operand(),
5745 op1.as_operand(),
5746 op2.as_operand(),
5747 &NOREG,
5748 );
5749 }
5750}
5751
5752impl<'a> VpavgwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5753 fn vpavgw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5754 self.emit(
5755 VPAVGW512RRM_MASK,
5756 op0.as_operand(),
5757 op1.as_operand(),
5758 op2.as_operand(),
5759 &NOREG,
5760 );
5761 }
5762}
5763
5764pub trait VpavgwMaskzEmitter<A, B, C> {
5781 fn vpavgw_maskz(&mut self, op0: A, op1: B, op2: C);
5782}
5783
5784impl<'a> VpavgwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5785 fn vpavgw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5786 self.emit(
5787 VPAVGW128RRR_MASKZ,
5788 op0.as_operand(),
5789 op1.as_operand(),
5790 op2.as_operand(),
5791 &NOREG,
5792 );
5793 }
5794}
5795
5796impl<'a> VpavgwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5797 fn vpavgw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5798 self.emit(
5799 VPAVGW128RRM_MASKZ,
5800 op0.as_operand(),
5801 op1.as_operand(),
5802 op2.as_operand(),
5803 &NOREG,
5804 );
5805 }
5806}
5807
5808impl<'a> VpavgwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5809 fn vpavgw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5810 self.emit(
5811 VPAVGW256RRR_MASKZ,
5812 op0.as_operand(),
5813 op1.as_operand(),
5814 op2.as_operand(),
5815 &NOREG,
5816 );
5817 }
5818}
5819
5820impl<'a> VpavgwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5821 fn vpavgw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5822 self.emit(
5823 VPAVGW256RRM_MASKZ,
5824 op0.as_operand(),
5825 op1.as_operand(),
5826 op2.as_operand(),
5827 &NOREG,
5828 );
5829 }
5830}
5831
5832impl<'a> VpavgwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5833 fn vpavgw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5834 self.emit(
5835 VPAVGW512RRR_MASKZ,
5836 op0.as_operand(),
5837 op1.as_operand(),
5838 op2.as_operand(),
5839 &NOREG,
5840 );
5841 }
5842}
5843
5844impl<'a> VpavgwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5845 fn vpavgw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5846 self.emit(
5847 VPAVGW512RRM_MASKZ,
5848 op0.as_operand(),
5849 op1.as_operand(),
5850 op2.as_operand(),
5851 &NOREG,
5852 );
5853 }
5854}
5855
5856pub trait VpblendmbEmitter<A, B, C> {
5873 fn vpblendmb(&mut self, op0: A, op1: B, op2: C);
5874}
5875
5876impl<'a> VpblendmbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5877 fn vpblendmb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5878 self.emit(
5879 VPBLENDMB128RRR,
5880 op0.as_operand(),
5881 op1.as_operand(),
5882 op2.as_operand(),
5883 &NOREG,
5884 );
5885 }
5886}
5887
5888impl<'a> VpblendmbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5889 fn vpblendmb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5890 self.emit(
5891 VPBLENDMB128RRM,
5892 op0.as_operand(),
5893 op1.as_operand(),
5894 op2.as_operand(),
5895 &NOREG,
5896 );
5897 }
5898}
5899
5900impl<'a> VpblendmbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5901 fn vpblendmb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5902 self.emit(
5903 VPBLENDMB256RRR,
5904 op0.as_operand(),
5905 op1.as_operand(),
5906 op2.as_operand(),
5907 &NOREG,
5908 );
5909 }
5910}
5911
5912impl<'a> VpblendmbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5913 fn vpblendmb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5914 self.emit(
5915 VPBLENDMB256RRM,
5916 op0.as_operand(),
5917 op1.as_operand(),
5918 op2.as_operand(),
5919 &NOREG,
5920 );
5921 }
5922}
5923
5924impl<'a> VpblendmbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5925 fn vpblendmb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5926 self.emit(
5927 VPBLENDMB512RRR,
5928 op0.as_operand(),
5929 op1.as_operand(),
5930 op2.as_operand(),
5931 &NOREG,
5932 );
5933 }
5934}
5935
5936impl<'a> VpblendmbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5937 fn vpblendmb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5938 self.emit(
5939 VPBLENDMB512RRM,
5940 op0.as_operand(),
5941 op1.as_operand(),
5942 op2.as_operand(),
5943 &NOREG,
5944 );
5945 }
5946}
5947
5948pub trait VpblendmbMaskEmitter<A, B, C> {
5965 fn vpblendmb_mask(&mut self, op0: A, op1: B, op2: C);
5966}
5967
5968impl<'a> VpblendmbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5969 fn vpblendmb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5970 self.emit(
5971 VPBLENDMB128RRR_MASK,
5972 op0.as_operand(),
5973 op1.as_operand(),
5974 op2.as_operand(),
5975 &NOREG,
5976 );
5977 }
5978}
5979
5980impl<'a> VpblendmbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5981 fn vpblendmb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5982 self.emit(
5983 VPBLENDMB128RRM_MASK,
5984 op0.as_operand(),
5985 op1.as_operand(),
5986 op2.as_operand(),
5987 &NOREG,
5988 );
5989 }
5990}
5991
5992impl<'a> VpblendmbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5993 fn vpblendmb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5994 self.emit(
5995 VPBLENDMB256RRR_MASK,
5996 op0.as_operand(),
5997 op1.as_operand(),
5998 op2.as_operand(),
5999 &NOREG,
6000 );
6001 }
6002}
6003
6004impl<'a> VpblendmbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6005 fn vpblendmb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6006 self.emit(
6007 VPBLENDMB256RRM_MASK,
6008 op0.as_operand(),
6009 op1.as_operand(),
6010 op2.as_operand(),
6011 &NOREG,
6012 );
6013 }
6014}
6015
6016impl<'a> VpblendmbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6017 fn vpblendmb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6018 self.emit(
6019 VPBLENDMB512RRR_MASK,
6020 op0.as_operand(),
6021 op1.as_operand(),
6022 op2.as_operand(),
6023 &NOREG,
6024 );
6025 }
6026}
6027
6028impl<'a> VpblendmbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6029 fn vpblendmb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6030 self.emit(
6031 VPBLENDMB512RRM_MASK,
6032 op0.as_operand(),
6033 op1.as_operand(),
6034 op2.as_operand(),
6035 &NOREG,
6036 );
6037 }
6038}
6039
6040pub trait VpblendmbMaskzEmitter<A, B, C> {
6057 fn vpblendmb_maskz(&mut self, op0: A, op1: B, op2: C);
6058}
6059
6060impl<'a> VpblendmbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6061 fn vpblendmb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6062 self.emit(
6063 VPBLENDMB128RRR_MASKZ,
6064 op0.as_operand(),
6065 op1.as_operand(),
6066 op2.as_operand(),
6067 &NOREG,
6068 );
6069 }
6070}
6071
6072impl<'a> VpblendmbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6073 fn vpblendmb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6074 self.emit(
6075 VPBLENDMB128RRM_MASKZ,
6076 op0.as_operand(),
6077 op1.as_operand(),
6078 op2.as_operand(),
6079 &NOREG,
6080 );
6081 }
6082}
6083
6084impl<'a> VpblendmbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6085 fn vpblendmb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6086 self.emit(
6087 VPBLENDMB256RRR_MASKZ,
6088 op0.as_operand(),
6089 op1.as_operand(),
6090 op2.as_operand(),
6091 &NOREG,
6092 );
6093 }
6094}
6095
6096impl<'a> VpblendmbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6097 fn vpblendmb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6098 self.emit(
6099 VPBLENDMB256RRM_MASKZ,
6100 op0.as_operand(),
6101 op1.as_operand(),
6102 op2.as_operand(),
6103 &NOREG,
6104 );
6105 }
6106}
6107
6108impl<'a> VpblendmbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6109 fn vpblendmb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6110 self.emit(
6111 VPBLENDMB512RRR_MASKZ,
6112 op0.as_operand(),
6113 op1.as_operand(),
6114 op2.as_operand(),
6115 &NOREG,
6116 );
6117 }
6118}
6119
6120impl<'a> VpblendmbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6121 fn vpblendmb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6122 self.emit(
6123 VPBLENDMB512RRM_MASKZ,
6124 op0.as_operand(),
6125 op1.as_operand(),
6126 op2.as_operand(),
6127 &NOREG,
6128 );
6129 }
6130}
6131
6132pub trait VpblendmwEmitter<A, B, C> {
6149 fn vpblendmw(&mut self, op0: A, op1: B, op2: C);
6150}
6151
6152impl<'a> VpblendmwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6153 fn vpblendmw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6154 self.emit(
6155 VPBLENDMW128RRR,
6156 op0.as_operand(),
6157 op1.as_operand(),
6158 op2.as_operand(),
6159 &NOREG,
6160 );
6161 }
6162}
6163
6164impl<'a> VpblendmwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6165 fn vpblendmw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6166 self.emit(
6167 VPBLENDMW128RRM,
6168 op0.as_operand(),
6169 op1.as_operand(),
6170 op2.as_operand(),
6171 &NOREG,
6172 );
6173 }
6174}
6175
6176impl<'a> VpblendmwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6177 fn vpblendmw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6178 self.emit(
6179 VPBLENDMW256RRR,
6180 op0.as_operand(),
6181 op1.as_operand(),
6182 op2.as_operand(),
6183 &NOREG,
6184 );
6185 }
6186}
6187
6188impl<'a> VpblendmwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6189 fn vpblendmw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6190 self.emit(
6191 VPBLENDMW256RRM,
6192 op0.as_operand(),
6193 op1.as_operand(),
6194 op2.as_operand(),
6195 &NOREG,
6196 );
6197 }
6198}
6199
6200impl<'a> VpblendmwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6201 fn vpblendmw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6202 self.emit(
6203 VPBLENDMW512RRR,
6204 op0.as_operand(),
6205 op1.as_operand(),
6206 op2.as_operand(),
6207 &NOREG,
6208 );
6209 }
6210}
6211
6212impl<'a> VpblendmwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6213 fn vpblendmw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6214 self.emit(
6215 VPBLENDMW512RRM,
6216 op0.as_operand(),
6217 op1.as_operand(),
6218 op2.as_operand(),
6219 &NOREG,
6220 );
6221 }
6222}
6223
6224pub trait VpblendmwMaskEmitter<A, B, C> {
6241 fn vpblendmw_mask(&mut self, op0: A, op1: B, op2: C);
6242}
6243
6244impl<'a> VpblendmwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6245 fn vpblendmw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6246 self.emit(
6247 VPBLENDMW128RRR_MASK,
6248 op0.as_operand(),
6249 op1.as_operand(),
6250 op2.as_operand(),
6251 &NOREG,
6252 );
6253 }
6254}
6255
6256impl<'a> VpblendmwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6257 fn vpblendmw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6258 self.emit(
6259 VPBLENDMW128RRM_MASK,
6260 op0.as_operand(),
6261 op1.as_operand(),
6262 op2.as_operand(),
6263 &NOREG,
6264 );
6265 }
6266}
6267
6268impl<'a> VpblendmwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6269 fn vpblendmw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6270 self.emit(
6271 VPBLENDMW256RRR_MASK,
6272 op0.as_operand(),
6273 op1.as_operand(),
6274 op2.as_operand(),
6275 &NOREG,
6276 );
6277 }
6278}
6279
6280impl<'a> VpblendmwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6281 fn vpblendmw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6282 self.emit(
6283 VPBLENDMW256RRM_MASK,
6284 op0.as_operand(),
6285 op1.as_operand(),
6286 op2.as_operand(),
6287 &NOREG,
6288 );
6289 }
6290}
6291
6292impl<'a> VpblendmwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6293 fn vpblendmw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6294 self.emit(
6295 VPBLENDMW512RRR_MASK,
6296 op0.as_operand(),
6297 op1.as_operand(),
6298 op2.as_operand(),
6299 &NOREG,
6300 );
6301 }
6302}
6303
6304impl<'a> VpblendmwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6305 fn vpblendmw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6306 self.emit(
6307 VPBLENDMW512RRM_MASK,
6308 op0.as_operand(),
6309 op1.as_operand(),
6310 op2.as_operand(),
6311 &NOREG,
6312 );
6313 }
6314}
6315
6316pub trait VpblendmwMaskzEmitter<A, B, C> {
6333 fn vpblendmw_maskz(&mut self, op0: A, op1: B, op2: C);
6334}
6335
6336impl<'a> VpblendmwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6337 fn vpblendmw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6338 self.emit(
6339 VPBLENDMW128RRR_MASKZ,
6340 op0.as_operand(),
6341 op1.as_operand(),
6342 op2.as_operand(),
6343 &NOREG,
6344 );
6345 }
6346}
6347
6348impl<'a> VpblendmwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6349 fn vpblendmw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6350 self.emit(
6351 VPBLENDMW128RRM_MASKZ,
6352 op0.as_operand(),
6353 op1.as_operand(),
6354 op2.as_operand(),
6355 &NOREG,
6356 );
6357 }
6358}
6359
6360impl<'a> VpblendmwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6361 fn vpblendmw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6362 self.emit(
6363 VPBLENDMW256RRR_MASKZ,
6364 op0.as_operand(),
6365 op1.as_operand(),
6366 op2.as_operand(),
6367 &NOREG,
6368 );
6369 }
6370}
6371
6372impl<'a> VpblendmwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6373 fn vpblendmw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6374 self.emit(
6375 VPBLENDMW256RRM_MASKZ,
6376 op0.as_operand(),
6377 op1.as_operand(),
6378 op2.as_operand(),
6379 &NOREG,
6380 );
6381 }
6382}
6383
6384impl<'a> VpblendmwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6385 fn vpblendmw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6386 self.emit(
6387 VPBLENDMW512RRR_MASKZ,
6388 op0.as_operand(),
6389 op1.as_operand(),
6390 op2.as_operand(),
6391 &NOREG,
6392 );
6393 }
6394}
6395
6396impl<'a> VpblendmwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6397 fn vpblendmw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6398 self.emit(
6399 VPBLENDMW512RRM_MASKZ,
6400 op0.as_operand(),
6401 op1.as_operand(),
6402 op2.as_operand(),
6403 &NOREG,
6404 );
6405 }
6406}
6407
6408pub trait VpbroadcastbEmitter<A, B> {
6425 fn vpbroadcastb(&mut self, op0: A, op1: B);
6426}
6427
6428impl<'a> VpbroadcastbEmitter<Xmm, Xmm> for Assembler<'a> {
6429 fn vpbroadcastb(&mut self, op0: Xmm, op1: Xmm) {
6430 self.emit(
6431 VPBROADCASTB128RR,
6432 op0.as_operand(),
6433 op1.as_operand(),
6434 &NOREG,
6435 &NOREG,
6436 );
6437 }
6438}
6439
6440impl<'a> VpbroadcastbEmitter<Xmm, Mem> for Assembler<'a> {
6441 fn vpbroadcastb(&mut self, op0: Xmm, op1: Mem) {
6442 self.emit(
6443 VPBROADCASTB128RM,
6444 op0.as_operand(),
6445 op1.as_operand(),
6446 &NOREG,
6447 &NOREG,
6448 );
6449 }
6450}
6451
6452impl<'a> VpbroadcastbEmitter<Ymm, Xmm> for Assembler<'a> {
6453 fn vpbroadcastb(&mut self, op0: Ymm, op1: Xmm) {
6454 self.emit(
6455 VPBROADCASTB256RR,
6456 op0.as_operand(),
6457 op1.as_operand(),
6458 &NOREG,
6459 &NOREG,
6460 );
6461 }
6462}
6463
6464impl<'a> VpbroadcastbEmitter<Ymm, Mem> for Assembler<'a> {
6465 fn vpbroadcastb(&mut self, op0: Ymm, op1: Mem) {
6466 self.emit(
6467 VPBROADCASTB256RM,
6468 op0.as_operand(),
6469 op1.as_operand(),
6470 &NOREG,
6471 &NOREG,
6472 );
6473 }
6474}
6475
6476impl<'a> VpbroadcastbEmitter<Zmm, Xmm> for Assembler<'a> {
6477 fn vpbroadcastb(&mut self, op0: Zmm, op1: Xmm) {
6478 self.emit(
6479 VPBROADCASTB512RR,
6480 op0.as_operand(),
6481 op1.as_operand(),
6482 &NOREG,
6483 &NOREG,
6484 );
6485 }
6486}
6487
6488impl<'a> VpbroadcastbEmitter<Zmm, Mem> for Assembler<'a> {
6489 fn vpbroadcastb(&mut self, op0: Zmm, op1: Mem) {
6490 self.emit(
6491 VPBROADCASTB512RM,
6492 op0.as_operand(),
6493 op1.as_operand(),
6494 &NOREG,
6495 &NOREG,
6496 );
6497 }
6498}
6499
6500pub trait VpbroadcastbGpEmitter<A, B> {
6514 fn vpbroadcastb_gp(&mut self, op0: A, op1: B);
6515}
6516
6517impl<'a> VpbroadcastbGpEmitter<Xmm, Gpd> for Assembler<'a> {
6518 fn vpbroadcastb_gp(&mut self, op0: Xmm, op1: Gpd) {
6519 self.emit(
6520 VPBROADCASTB_GP128RR,
6521 op0.as_operand(),
6522 op1.as_operand(),
6523 &NOREG,
6524 &NOREG,
6525 );
6526 }
6527}
6528
6529impl<'a> VpbroadcastbGpEmitter<Ymm, Gpd> for Assembler<'a> {
6530 fn vpbroadcastb_gp(&mut self, op0: Ymm, op1: Gpd) {
6531 self.emit(
6532 VPBROADCASTB_GP256RR,
6533 op0.as_operand(),
6534 op1.as_operand(),
6535 &NOREG,
6536 &NOREG,
6537 );
6538 }
6539}
6540
6541impl<'a> VpbroadcastbGpEmitter<Zmm, Gpd> for Assembler<'a> {
6542 fn vpbroadcastb_gp(&mut self, op0: Zmm, op1: Gpd) {
6543 self.emit(
6544 VPBROADCASTB_GP512RR,
6545 op0.as_operand(),
6546 op1.as_operand(),
6547 &NOREG,
6548 &NOREG,
6549 );
6550 }
6551}
6552
6553pub trait VpbroadcastbGpMaskEmitter<A, B> {
6567 fn vpbroadcastb_gp_mask(&mut self, op0: A, op1: B);
6568}
6569
6570impl<'a> VpbroadcastbGpMaskEmitter<Xmm, Gpd> for Assembler<'a> {
6571 fn vpbroadcastb_gp_mask(&mut self, op0: Xmm, op1: Gpd) {
6572 self.emit(
6573 VPBROADCASTB_GP128RR_MASK,
6574 op0.as_operand(),
6575 op1.as_operand(),
6576 &NOREG,
6577 &NOREG,
6578 );
6579 }
6580}
6581
6582impl<'a> VpbroadcastbGpMaskEmitter<Ymm, Gpd> for Assembler<'a> {
6583 fn vpbroadcastb_gp_mask(&mut self, op0: Ymm, op1: Gpd) {
6584 self.emit(
6585 VPBROADCASTB_GP256RR_MASK,
6586 op0.as_operand(),
6587 op1.as_operand(),
6588 &NOREG,
6589 &NOREG,
6590 );
6591 }
6592}
6593
6594impl<'a> VpbroadcastbGpMaskEmitter<Zmm, Gpd> for Assembler<'a> {
6595 fn vpbroadcastb_gp_mask(&mut self, op0: Zmm, op1: Gpd) {
6596 self.emit(
6597 VPBROADCASTB_GP512RR_MASK,
6598 op0.as_operand(),
6599 op1.as_operand(),
6600 &NOREG,
6601 &NOREG,
6602 );
6603 }
6604}
6605
6606pub trait VpbroadcastbGpMaskzEmitter<A, B> {
6620 fn vpbroadcastb_gp_maskz(&mut self, op0: A, op1: B);
6621}
6622
6623impl<'a> VpbroadcastbGpMaskzEmitter<Xmm, Gpd> for Assembler<'a> {
6624 fn vpbroadcastb_gp_maskz(&mut self, op0: Xmm, op1: Gpd) {
6625 self.emit(
6626 VPBROADCASTB_GP128RR_MASKZ,
6627 op0.as_operand(),
6628 op1.as_operand(),
6629 &NOREG,
6630 &NOREG,
6631 );
6632 }
6633}
6634
6635impl<'a> VpbroadcastbGpMaskzEmitter<Ymm, Gpd> for Assembler<'a> {
6636 fn vpbroadcastb_gp_maskz(&mut self, op0: Ymm, op1: Gpd) {
6637 self.emit(
6638 VPBROADCASTB_GP256RR_MASKZ,
6639 op0.as_operand(),
6640 op1.as_operand(),
6641 &NOREG,
6642 &NOREG,
6643 );
6644 }
6645}
6646
6647impl<'a> VpbroadcastbGpMaskzEmitter<Zmm, Gpd> for Assembler<'a> {
6648 fn vpbroadcastb_gp_maskz(&mut self, op0: Zmm, op1: Gpd) {
6649 self.emit(
6650 VPBROADCASTB_GP512RR_MASKZ,
6651 op0.as_operand(),
6652 op1.as_operand(),
6653 &NOREG,
6654 &NOREG,
6655 );
6656 }
6657}
6658
6659pub trait VpbroadcastbMaskEmitter<A, B> {
6676 fn vpbroadcastb_mask(&mut self, op0: A, op1: B);
6677}
6678
6679impl<'a> VpbroadcastbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
6680 fn vpbroadcastb_mask(&mut self, op0: Xmm, op1: Xmm) {
6681 self.emit(
6682 VPBROADCASTB128RR_MASK,
6683 op0.as_operand(),
6684 op1.as_operand(),
6685 &NOREG,
6686 &NOREG,
6687 );
6688 }
6689}
6690
6691impl<'a> VpbroadcastbMaskEmitter<Xmm, Mem> for Assembler<'a> {
6692 fn vpbroadcastb_mask(&mut self, op0: Xmm, op1: Mem) {
6693 self.emit(
6694 VPBROADCASTB128RM_MASK,
6695 op0.as_operand(),
6696 op1.as_operand(),
6697 &NOREG,
6698 &NOREG,
6699 );
6700 }
6701}
6702
6703impl<'a> VpbroadcastbMaskEmitter<Ymm, Xmm> for Assembler<'a> {
6704 fn vpbroadcastb_mask(&mut self, op0: Ymm, op1: Xmm) {
6705 self.emit(
6706 VPBROADCASTB256RR_MASK,
6707 op0.as_operand(),
6708 op1.as_operand(),
6709 &NOREG,
6710 &NOREG,
6711 );
6712 }
6713}
6714
6715impl<'a> VpbroadcastbMaskEmitter<Ymm, Mem> for Assembler<'a> {
6716 fn vpbroadcastb_mask(&mut self, op0: Ymm, op1: Mem) {
6717 self.emit(
6718 VPBROADCASTB256RM_MASK,
6719 op0.as_operand(),
6720 op1.as_operand(),
6721 &NOREG,
6722 &NOREG,
6723 );
6724 }
6725}
6726
6727impl<'a> VpbroadcastbMaskEmitter<Zmm, Xmm> for Assembler<'a> {
6728 fn vpbroadcastb_mask(&mut self, op0: Zmm, op1: Xmm) {
6729 self.emit(
6730 VPBROADCASTB512RR_MASK,
6731 op0.as_operand(),
6732 op1.as_operand(),
6733 &NOREG,
6734 &NOREG,
6735 );
6736 }
6737}
6738
6739impl<'a> VpbroadcastbMaskEmitter<Zmm, Mem> for Assembler<'a> {
6740 fn vpbroadcastb_mask(&mut self, op0: Zmm, op1: Mem) {
6741 self.emit(
6742 VPBROADCASTB512RM_MASK,
6743 op0.as_operand(),
6744 op1.as_operand(),
6745 &NOREG,
6746 &NOREG,
6747 );
6748 }
6749}
6750
6751pub trait VpbroadcastbMaskzEmitter<A, B> {
6768 fn vpbroadcastb_maskz(&mut self, op0: A, op1: B);
6769}
6770
6771impl<'a> VpbroadcastbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
6772 fn vpbroadcastb_maskz(&mut self, op0: Xmm, op1: Xmm) {
6773 self.emit(
6774 VPBROADCASTB128RR_MASKZ,
6775 op0.as_operand(),
6776 op1.as_operand(),
6777 &NOREG,
6778 &NOREG,
6779 );
6780 }
6781}
6782
6783impl<'a> VpbroadcastbMaskzEmitter<Xmm, Mem> for Assembler<'a> {
6784 fn vpbroadcastb_maskz(&mut self, op0: Xmm, op1: Mem) {
6785 self.emit(
6786 VPBROADCASTB128RM_MASKZ,
6787 op0.as_operand(),
6788 op1.as_operand(),
6789 &NOREG,
6790 &NOREG,
6791 );
6792 }
6793}
6794
6795impl<'a> VpbroadcastbMaskzEmitter<Ymm, Xmm> for Assembler<'a> {
6796 fn vpbroadcastb_maskz(&mut self, op0: Ymm, op1: Xmm) {
6797 self.emit(
6798 VPBROADCASTB256RR_MASKZ,
6799 op0.as_operand(),
6800 op1.as_operand(),
6801 &NOREG,
6802 &NOREG,
6803 );
6804 }
6805}
6806
6807impl<'a> VpbroadcastbMaskzEmitter<Ymm, Mem> for Assembler<'a> {
6808 fn vpbroadcastb_maskz(&mut self, op0: Ymm, op1: Mem) {
6809 self.emit(
6810 VPBROADCASTB256RM_MASKZ,
6811 op0.as_operand(),
6812 op1.as_operand(),
6813 &NOREG,
6814 &NOREG,
6815 );
6816 }
6817}
6818
6819impl<'a> VpbroadcastbMaskzEmitter<Zmm, Xmm> for Assembler<'a> {
6820 fn vpbroadcastb_maskz(&mut self, op0: Zmm, op1: Xmm) {
6821 self.emit(
6822 VPBROADCASTB512RR_MASKZ,
6823 op0.as_operand(),
6824 op1.as_operand(),
6825 &NOREG,
6826 &NOREG,
6827 );
6828 }
6829}
6830
6831impl<'a> VpbroadcastbMaskzEmitter<Zmm, Mem> for Assembler<'a> {
6832 fn vpbroadcastb_maskz(&mut self, op0: Zmm, op1: Mem) {
6833 self.emit(
6834 VPBROADCASTB512RM_MASKZ,
6835 op0.as_operand(),
6836 op1.as_operand(),
6837 &NOREG,
6838 &NOREG,
6839 );
6840 }
6841}
6842
6843pub trait VpbroadcastwEmitter<A, B> {
6860 fn vpbroadcastw(&mut self, op0: A, op1: B);
6861}
6862
6863impl<'a> VpbroadcastwEmitter<Xmm, Xmm> for Assembler<'a> {
6864 fn vpbroadcastw(&mut self, op0: Xmm, op1: Xmm) {
6865 self.emit(
6866 VPBROADCASTW128RR,
6867 op0.as_operand(),
6868 op1.as_operand(),
6869 &NOREG,
6870 &NOREG,
6871 );
6872 }
6873}
6874
6875impl<'a> VpbroadcastwEmitter<Xmm, Mem> for Assembler<'a> {
6876 fn vpbroadcastw(&mut self, op0: Xmm, op1: Mem) {
6877 self.emit(
6878 VPBROADCASTW128RM,
6879 op0.as_operand(),
6880 op1.as_operand(),
6881 &NOREG,
6882 &NOREG,
6883 );
6884 }
6885}
6886
6887impl<'a> VpbroadcastwEmitter<Ymm, Xmm> for Assembler<'a> {
6888 fn vpbroadcastw(&mut self, op0: Ymm, op1: Xmm) {
6889 self.emit(
6890 VPBROADCASTW256RR,
6891 op0.as_operand(),
6892 op1.as_operand(),
6893 &NOREG,
6894 &NOREG,
6895 );
6896 }
6897}
6898
6899impl<'a> VpbroadcastwEmitter<Ymm, Mem> for Assembler<'a> {
6900 fn vpbroadcastw(&mut self, op0: Ymm, op1: Mem) {
6901 self.emit(
6902 VPBROADCASTW256RM,
6903 op0.as_operand(),
6904 op1.as_operand(),
6905 &NOREG,
6906 &NOREG,
6907 );
6908 }
6909}
6910
6911impl<'a> VpbroadcastwEmitter<Zmm, Xmm> for Assembler<'a> {
6912 fn vpbroadcastw(&mut self, op0: Zmm, op1: Xmm) {
6913 self.emit(
6914 VPBROADCASTW512RR,
6915 op0.as_operand(),
6916 op1.as_operand(),
6917 &NOREG,
6918 &NOREG,
6919 );
6920 }
6921}
6922
6923impl<'a> VpbroadcastwEmitter<Zmm, Mem> for Assembler<'a> {
6924 fn vpbroadcastw(&mut self, op0: Zmm, op1: Mem) {
6925 self.emit(
6926 VPBROADCASTW512RM,
6927 op0.as_operand(),
6928 op1.as_operand(),
6929 &NOREG,
6930 &NOREG,
6931 );
6932 }
6933}
6934
6935pub trait VpbroadcastwGpEmitter<A, B> {
6949 fn vpbroadcastw_gp(&mut self, op0: A, op1: B);
6950}
6951
6952impl<'a> VpbroadcastwGpEmitter<Xmm, Gpd> for Assembler<'a> {
6953 fn vpbroadcastw_gp(&mut self, op0: Xmm, op1: Gpd) {
6954 self.emit(
6955 VPBROADCASTW_GP128RR,
6956 op0.as_operand(),
6957 op1.as_operand(),
6958 &NOREG,
6959 &NOREG,
6960 );
6961 }
6962}
6963
6964impl<'a> VpbroadcastwGpEmitter<Ymm, Gpd> for Assembler<'a> {
6965 fn vpbroadcastw_gp(&mut self, op0: Ymm, op1: Gpd) {
6966 self.emit(
6967 VPBROADCASTW_GP256RR,
6968 op0.as_operand(),
6969 op1.as_operand(),
6970 &NOREG,
6971 &NOREG,
6972 );
6973 }
6974}
6975
6976impl<'a> VpbroadcastwGpEmitter<Zmm, Gpd> for Assembler<'a> {
6977 fn vpbroadcastw_gp(&mut self, op0: Zmm, op1: Gpd) {
6978 self.emit(
6979 VPBROADCASTW_GP512RR,
6980 op0.as_operand(),
6981 op1.as_operand(),
6982 &NOREG,
6983 &NOREG,
6984 );
6985 }
6986}
6987
6988pub trait VpbroadcastwGpMaskEmitter<A, B> {
7002 fn vpbroadcastw_gp_mask(&mut self, op0: A, op1: B);
7003}
7004
7005impl<'a> VpbroadcastwGpMaskEmitter<Xmm, Gpd> for Assembler<'a> {
7006 fn vpbroadcastw_gp_mask(&mut self, op0: Xmm, op1: Gpd) {
7007 self.emit(
7008 VPBROADCASTW_GP128RR_MASK,
7009 op0.as_operand(),
7010 op1.as_operand(),
7011 &NOREG,
7012 &NOREG,
7013 );
7014 }
7015}
7016
7017impl<'a> VpbroadcastwGpMaskEmitter<Ymm, Gpd> for Assembler<'a> {
7018 fn vpbroadcastw_gp_mask(&mut self, op0: Ymm, op1: Gpd) {
7019 self.emit(
7020 VPBROADCASTW_GP256RR_MASK,
7021 op0.as_operand(),
7022 op1.as_operand(),
7023 &NOREG,
7024 &NOREG,
7025 );
7026 }
7027}
7028
7029impl<'a> VpbroadcastwGpMaskEmitter<Zmm, Gpd> for Assembler<'a> {
7030 fn vpbroadcastw_gp_mask(&mut self, op0: Zmm, op1: Gpd) {
7031 self.emit(
7032 VPBROADCASTW_GP512RR_MASK,
7033 op0.as_operand(),
7034 op1.as_operand(),
7035 &NOREG,
7036 &NOREG,
7037 );
7038 }
7039}
7040
7041pub trait VpbroadcastwGpMaskzEmitter<A, B> {
7055 fn vpbroadcastw_gp_maskz(&mut self, op0: A, op1: B);
7056}
7057
7058impl<'a> VpbroadcastwGpMaskzEmitter<Xmm, Gpd> for Assembler<'a> {
7059 fn vpbroadcastw_gp_maskz(&mut self, op0: Xmm, op1: Gpd) {
7060 self.emit(
7061 VPBROADCASTW_GP128RR_MASKZ,
7062 op0.as_operand(),
7063 op1.as_operand(),
7064 &NOREG,
7065 &NOREG,
7066 );
7067 }
7068}
7069
7070impl<'a> VpbroadcastwGpMaskzEmitter<Ymm, Gpd> for Assembler<'a> {
7071 fn vpbroadcastw_gp_maskz(&mut self, op0: Ymm, op1: Gpd) {
7072 self.emit(
7073 VPBROADCASTW_GP256RR_MASKZ,
7074 op0.as_operand(),
7075 op1.as_operand(),
7076 &NOREG,
7077 &NOREG,
7078 );
7079 }
7080}
7081
7082impl<'a> VpbroadcastwGpMaskzEmitter<Zmm, Gpd> for Assembler<'a> {
7083 fn vpbroadcastw_gp_maskz(&mut self, op0: Zmm, op1: Gpd) {
7084 self.emit(
7085 VPBROADCASTW_GP512RR_MASKZ,
7086 op0.as_operand(),
7087 op1.as_operand(),
7088 &NOREG,
7089 &NOREG,
7090 );
7091 }
7092}
7093
7094pub trait VpbroadcastwMaskEmitter<A, B> {
7111 fn vpbroadcastw_mask(&mut self, op0: A, op1: B);
7112}
7113
7114impl<'a> VpbroadcastwMaskEmitter<Xmm, Xmm> for Assembler<'a> {
7115 fn vpbroadcastw_mask(&mut self, op0: Xmm, op1: Xmm) {
7116 self.emit(
7117 VPBROADCASTW128RR_MASK,
7118 op0.as_operand(),
7119 op1.as_operand(),
7120 &NOREG,
7121 &NOREG,
7122 );
7123 }
7124}
7125
7126impl<'a> VpbroadcastwMaskEmitter<Xmm, Mem> for Assembler<'a> {
7127 fn vpbroadcastw_mask(&mut self, op0: Xmm, op1: Mem) {
7128 self.emit(
7129 VPBROADCASTW128RM_MASK,
7130 op0.as_operand(),
7131 op1.as_operand(),
7132 &NOREG,
7133 &NOREG,
7134 );
7135 }
7136}
7137
7138impl<'a> VpbroadcastwMaskEmitter<Ymm, Xmm> for Assembler<'a> {
7139 fn vpbroadcastw_mask(&mut self, op0: Ymm, op1: Xmm) {
7140 self.emit(
7141 VPBROADCASTW256RR_MASK,
7142 op0.as_operand(),
7143 op1.as_operand(),
7144 &NOREG,
7145 &NOREG,
7146 );
7147 }
7148}
7149
7150impl<'a> VpbroadcastwMaskEmitter<Ymm, Mem> for Assembler<'a> {
7151 fn vpbroadcastw_mask(&mut self, op0: Ymm, op1: Mem) {
7152 self.emit(
7153 VPBROADCASTW256RM_MASK,
7154 op0.as_operand(),
7155 op1.as_operand(),
7156 &NOREG,
7157 &NOREG,
7158 );
7159 }
7160}
7161
7162impl<'a> VpbroadcastwMaskEmitter<Zmm, Xmm> for Assembler<'a> {
7163 fn vpbroadcastw_mask(&mut self, op0: Zmm, op1: Xmm) {
7164 self.emit(
7165 VPBROADCASTW512RR_MASK,
7166 op0.as_operand(),
7167 op1.as_operand(),
7168 &NOREG,
7169 &NOREG,
7170 );
7171 }
7172}
7173
7174impl<'a> VpbroadcastwMaskEmitter<Zmm, Mem> for Assembler<'a> {
7175 fn vpbroadcastw_mask(&mut self, op0: Zmm, op1: Mem) {
7176 self.emit(
7177 VPBROADCASTW512RM_MASK,
7178 op0.as_operand(),
7179 op1.as_operand(),
7180 &NOREG,
7181 &NOREG,
7182 );
7183 }
7184}
7185
7186pub trait VpbroadcastwMaskzEmitter<A, B> {
7203 fn vpbroadcastw_maskz(&mut self, op0: A, op1: B);
7204}
7205
7206impl<'a> VpbroadcastwMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
7207 fn vpbroadcastw_maskz(&mut self, op0: Xmm, op1: Xmm) {
7208 self.emit(
7209 VPBROADCASTW128RR_MASKZ,
7210 op0.as_operand(),
7211 op1.as_operand(),
7212 &NOREG,
7213 &NOREG,
7214 );
7215 }
7216}
7217
7218impl<'a> VpbroadcastwMaskzEmitter<Xmm, Mem> for Assembler<'a> {
7219 fn vpbroadcastw_maskz(&mut self, op0: Xmm, op1: Mem) {
7220 self.emit(
7221 VPBROADCASTW128RM_MASKZ,
7222 op0.as_operand(),
7223 op1.as_operand(),
7224 &NOREG,
7225 &NOREG,
7226 );
7227 }
7228}
7229
7230impl<'a> VpbroadcastwMaskzEmitter<Ymm, Xmm> for Assembler<'a> {
7231 fn vpbroadcastw_maskz(&mut self, op0: Ymm, op1: Xmm) {
7232 self.emit(
7233 VPBROADCASTW256RR_MASKZ,
7234 op0.as_operand(),
7235 op1.as_operand(),
7236 &NOREG,
7237 &NOREG,
7238 );
7239 }
7240}
7241
7242impl<'a> VpbroadcastwMaskzEmitter<Ymm, Mem> for Assembler<'a> {
7243 fn vpbroadcastw_maskz(&mut self, op0: Ymm, op1: Mem) {
7244 self.emit(
7245 VPBROADCASTW256RM_MASKZ,
7246 op0.as_operand(),
7247 op1.as_operand(),
7248 &NOREG,
7249 &NOREG,
7250 );
7251 }
7252}
7253
7254impl<'a> VpbroadcastwMaskzEmitter<Zmm, Xmm> for Assembler<'a> {
7255 fn vpbroadcastw_maskz(&mut self, op0: Zmm, op1: Xmm) {
7256 self.emit(
7257 VPBROADCASTW512RR_MASKZ,
7258 op0.as_operand(),
7259 op1.as_operand(),
7260 &NOREG,
7261 &NOREG,
7262 );
7263 }
7264}
7265
7266impl<'a> VpbroadcastwMaskzEmitter<Zmm, Mem> for Assembler<'a> {
7267 fn vpbroadcastw_maskz(&mut self, op0: Zmm, op1: Mem) {
7268 self.emit(
7269 VPBROADCASTW512RM_MASKZ,
7270 op0.as_operand(),
7271 op1.as_operand(),
7272 &NOREG,
7273 &NOREG,
7274 );
7275 }
7276}
7277
7278pub trait VpcmpbEmitter<A, B, C, D> {
7295 fn vpcmpb(&mut self, op0: A, op1: B, op2: C, op3: D);
7296}
7297
7298impl<'a> VpcmpbEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7299 fn vpcmpb(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7300 self.emit(
7301 VPCMPB128KRRI,
7302 op0.as_operand(),
7303 op1.as_operand(),
7304 op2.as_operand(),
7305 op3.as_operand(),
7306 );
7307 }
7308}
7309
7310impl<'a> VpcmpbEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7311 fn vpcmpb(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7312 self.emit(
7313 VPCMPB128KRMI,
7314 op0.as_operand(),
7315 op1.as_operand(),
7316 op2.as_operand(),
7317 op3.as_operand(),
7318 );
7319 }
7320}
7321
7322impl<'a> VpcmpbEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7323 fn vpcmpb(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7324 self.emit(
7325 VPCMPB256KRRI,
7326 op0.as_operand(),
7327 op1.as_operand(),
7328 op2.as_operand(),
7329 op3.as_operand(),
7330 );
7331 }
7332}
7333
7334impl<'a> VpcmpbEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7335 fn vpcmpb(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7336 self.emit(
7337 VPCMPB256KRMI,
7338 op0.as_operand(),
7339 op1.as_operand(),
7340 op2.as_operand(),
7341 op3.as_operand(),
7342 );
7343 }
7344}
7345
7346impl<'a> VpcmpbEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7347 fn vpcmpb(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7348 self.emit(
7349 VPCMPB512KRRI,
7350 op0.as_operand(),
7351 op1.as_operand(),
7352 op2.as_operand(),
7353 op3.as_operand(),
7354 );
7355 }
7356}
7357
7358impl<'a> VpcmpbEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7359 fn vpcmpb(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7360 self.emit(
7361 VPCMPB512KRMI,
7362 op0.as_operand(),
7363 op1.as_operand(),
7364 op2.as_operand(),
7365 op3.as_operand(),
7366 );
7367 }
7368}
7369
7370pub trait VpcmpbMaskEmitter<A, B, C, D> {
7387 fn vpcmpb_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7388}
7389
7390impl<'a> VpcmpbMaskEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7391 fn vpcmpb_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7392 self.emit(
7393 VPCMPB128KRRI_MASK,
7394 op0.as_operand(),
7395 op1.as_operand(),
7396 op2.as_operand(),
7397 op3.as_operand(),
7398 );
7399 }
7400}
7401
7402impl<'a> VpcmpbMaskEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7403 fn vpcmpb_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7404 self.emit(
7405 VPCMPB128KRMI_MASK,
7406 op0.as_operand(),
7407 op1.as_operand(),
7408 op2.as_operand(),
7409 op3.as_operand(),
7410 );
7411 }
7412}
7413
7414impl<'a> VpcmpbMaskEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7415 fn vpcmpb_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7416 self.emit(
7417 VPCMPB256KRRI_MASK,
7418 op0.as_operand(),
7419 op1.as_operand(),
7420 op2.as_operand(),
7421 op3.as_operand(),
7422 );
7423 }
7424}
7425
7426impl<'a> VpcmpbMaskEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7427 fn vpcmpb_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7428 self.emit(
7429 VPCMPB256KRMI_MASK,
7430 op0.as_operand(),
7431 op1.as_operand(),
7432 op2.as_operand(),
7433 op3.as_operand(),
7434 );
7435 }
7436}
7437
7438impl<'a> VpcmpbMaskEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7439 fn vpcmpb_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7440 self.emit(
7441 VPCMPB512KRRI_MASK,
7442 op0.as_operand(),
7443 op1.as_operand(),
7444 op2.as_operand(),
7445 op3.as_operand(),
7446 );
7447 }
7448}
7449
7450impl<'a> VpcmpbMaskEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7451 fn vpcmpb_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7452 self.emit(
7453 VPCMPB512KRMI_MASK,
7454 op0.as_operand(),
7455 op1.as_operand(),
7456 op2.as_operand(),
7457 op3.as_operand(),
7458 );
7459 }
7460}
7461
7462pub trait VpcmpubEmitter<A, B, C, D> {
7479 fn vpcmpub(&mut self, op0: A, op1: B, op2: C, op3: D);
7480}
7481
7482impl<'a> VpcmpubEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7483 fn vpcmpub(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7484 self.emit(
7485 VPCMPUB128KRRI,
7486 op0.as_operand(),
7487 op1.as_operand(),
7488 op2.as_operand(),
7489 op3.as_operand(),
7490 );
7491 }
7492}
7493
7494impl<'a> VpcmpubEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7495 fn vpcmpub(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7496 self.emit(
7497 VPCMPUB128KRMI,
7498 op0.as_operand(),
7499 op1.as_operand(),
7500 op2.as_operand(),
7501 op3.as_operand(),
7502 );
7503 }
7504}
7505
7506impl<'a> VpcmpubEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7507 fn vpcmpub(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7508 self.emit(
7509 VPCMPUB256KRRI,
7510 op0.as_operand(),
7511 op1.as_operand(),
7512 op2.as_operand(),
7513 op3.as_operand(),
7514 );
7515 }
7516}
7517
7518impl<'a> VpcmpubEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7519 fn vpcmpub(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7520 self.emit(
7521 VPCMPUB256KRMI,
7522 op0.as_operand(),
7523 op1.as_operand(),
7524 op2.as_operand(),
7525 op3.as_operand(),
7526 );
7527 }
7528}
7529
7530impl<'a> VpcmpubEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7531 fn vpcmpub(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7532 self.emit(
7533 VPCMPUB512KRRI,
7534 op0.as_operand(),
7535 op1.as_operand(),
7536 op2.as_operand(),
7537 op3.as_operand(),
7538 );
7539 }
7540}
7541
7542impl<'a> VpcmpubEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7543 fn vpcmpub(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7544 self.emit(
7545 VPCMPUB512KRMI,
7546 op0.as_operand(),
7547 op1.as_operand(),
7548 op2.as_operand(),
7549 op3.as_operand(),
7550 );
7551 }
7552}
7553
7554pub trait VpcmpubMaskEmitter<A, B, C, D> {
7571 fn vpcmpub_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7572}
7573
7574impl<'a> VpcmpubMaskEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7575 fn vpcmpub_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7576 self.emit(
7577 VPCMPUB128KRRI_MASK,
7578 op0.as_operand(),
7579 op1.as_operand(),
7580 op2.as_operand(),
7581 op3.as_operand(),
7582 );
7583 }
7584}
7585
7586impl<'a> VpcmpubMaskEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7587 fn vpcmpub_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7588 self.emit(
7589 VPCMPUB128KRMI_MASK,
7590 op0.as_operand(),
7591 op1.as_operand(),
7592 op2.as_operand(),
7593 op3.as_operand(),
7594 );
7595 }
7596}
7597
7598impl<'a> VpcmpubMaskEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7599 fn vpcmpub_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7600 self.emit(
7601 VPCMPUB256KRRI_MASK,
7602 op0.as_operand(),
7603 op1.as_operand(),
7604 op2.as_operand(),
7605 op3.as_operand(),
7606 );
7607 }
7608}
7609
7610impl<'a> VpcmpubMaskEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7611 fn vpcmpub_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7612 self.emit(
7613 VPCMPUB256KRMI_MASK,
7614 op0.as_operand(),
7615 op1.as_operand(),
7616 op2.as_operand(),
7617 op3.as_operand(),
7618 );
7619 }
7620}
7621
7622impl<'a> VpcmpubMaskEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7623 fn vpcmpub_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7624 self.emit(
7625 VPCMPUB512KRRI_MASK,
7626 op0.as_operand(),
7627 op1.as_operand(),
7628 op2.as_operand(),
7629 op3.as_operand(),
7630 );
7631 }
7632}
7633
7634impl<'a> VpcmpubMaskEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7635 fn vpcmpub_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7636 self.emit(
7637 VPCMPUB512KRMI_MASK,
7638 op0.as_operand(),
7639 op1.as_operand(),
7640 op2.as_operand(),
7641 op3.as_operand(),
7642 );
7643 }
7644}
7645
7646pub trait VpcmpuwEmitter<A, B, C, D> {
7663 fn vpcmpuw(&mut self, op0: A, op1: B, op2: C, op3: D);
7664}
7665
7666impl<'a> VpcmpuwEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7667 fn vpcmpuw(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7668 self.emit(
7669 VPCMPUW128KRRI,
7670 op0.as_operand(),
7671 op1.as_operand(),
7672 op2.as_operand(),
7673 op3.as_operand(),
7674 );
7675 }
7676}
7677
7678impl<'a> VpcmpuwEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7679 fn vpcmpuw(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7680 self.emit(
7681 VPCMPUW128KRMI,
7682 op0.as_operand(),
7683 op1.as_operand(),
7684 op2.as_operand(),
7685 op3.as_operand(),
7686 );
7687 }
7688}
7689
7690impl<'a> VpcmpuwEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7691 fn vpcmpuw(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7692 self.emit(
7693 VPCMPUW256KRRI,
7694 op0.as_operand(),
7695 op1.as_operand(),
7696 op2.as_operand(),
7697 op3.as_operand(),
7698 );
7699 }
7700}
7701
7702impl<'a> VpcmpuwEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7703 fn vpcmpuw(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7704 self.emit(
7705 VPCMPUW256KRMI,
7706 op0.as_operand(),
7707 op1.as_operand(),
7708 op2.as_operand(),
7709 op3.as_operand(),
7710 );
7711 }
7712}
7713
7714impl<'a> VpcmpuwEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7715 fn vpcmpuw(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7716 self.emit(
7717 VPCMPUW512KRRI,
7718 op0.as_operand(),
7719 op1.as_operand(),
7720 op2.as_operand(),
7721 op3.as_operand(),
7722 );
7723 }
7724}
7725
7726impl<'a> VpcmpuwEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7727 fn vpcmpuw(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7728 self.emit(
7729 VPCMPUW512KRMI,
7730 op0.as_operand(),
7731 op1.as_operand(),
7732 op2.as_operand(),
7733 op3.as_operand(),
7734 );
7735 }
7736}
7737
7738pub trait VpcmpuwMaskEmitter<A, B, C, D> {
7755 fn vpcmpuw_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7756}
7757
7758impl<'a> VpcmpuwMaskEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7759 fn vpcmpuw_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7760 self.emit(
7761 VPCMPUW128KRRI_MASK,
7762 op0.as_operand(),
7763 op1.as_operand(),
7764 op2.as_operand(),
7765 op3.as_operand(),
7766 );
7767 }
7768}
7769
7770impl<'a> VpcmpuwMaskEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7771 fn vpcmpuw_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7772 self.emit(
7773 VPCMPUW128KRMI_MASK,
7774 op0.as_operand(),
7775 op1.as_operand(),
7776 op2.as_operand(),
7777 op3.as_operand(),
7778 );
7779 }
7780}
7781
7782impl<'a> VpcmpuwMaskEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7783 fn vpcmpuw_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7784 self.emit(
7785 VPCMPUW256KRRI_MASK,
7786 op0.as_operand(),
7787 op1.as_operand(),
7788 op2.as_operand(),
7789 op3.as_operand(),
7790 );
7791 }
7792}
7793
7794impl<'a> VpcmpuwMaskEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7795 fn vpcmpuw_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7796 self.emit(
7797 VPCMPUW256KRMI_MASK,
7798 op0.as_operand(),
7799 op1.as_operand(),
7800 op2.as_operand(),
7801 op3.as_operand(),
7802 );
7803 }
7804}
7805
7806impl<'a> VpcmpuwMaskEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7807 fn vpcmpuw_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7808 self.emit(
7809 VPCMPUW512KRRI_MASK,
7810 op0.as_operand(),
7811 op1.as_operand(),
7812 op2.as_operand(),
7813 op3.as_operand(),
7814 );
7815 }
7816}
7817
7818impl<'a> VpcmpuwMaskEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7819 fn vpcmpuw_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7820 self.emit(
7821 VPCMPUW512KRMI_MASK,
7822 op0.as_operand(),
7823 op1.as_operand(),
7824 op2.as_operand(),
7825 op3.as_operand(),
7826 );
7827 }
7828}
7829
7830pub trait VpcmpwEmitter<A, B, C, D> {
7847 fn vpcmpw(&mut self, op0: A, op1: B, op2: C, op3: D);
7848}
7849
7850impl<'a> VpcmpwEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7851 fn vpcmpw(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7852 self.emit(
7853 VPCMPW128KRRI,
7854 op0.as_operand(),
7855 op1.as_operand(),
7856 op2.as_operand(),
7857 op3.as_operand(),
7858 );
7859 }
7860}
7861
7862impl<'a> VpcmpwEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7863 fn vpcmpw(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7864 self.emit(
7865 VPCMPW128KRMI,
7866 op0.as_operand(),
7867 op1.as_operand(),
7868 op2.as_operand(),
7869 op3.as_operand(),
7870 );
7871 }
7872}
7873
7874impl<'a> VpcmpwEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7875 fn vpcmpw(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7876 self.emit(
7877 VPCMPW256KRRI,
7878 op0.as_operand(),
7879 op1.as_operand(),
7880 op2.as_operand(),
7881 op3.as_operand(),
7882 );
7883 }
7884}
7885
7886impl<'a> VpcmpwEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7887 fn vpcmpw(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7888 self.emit(
7889 VPCMPW256KRMI,
7890 op0.as_operand(),
7891 op1.as_operand(),
7892 op2.as_operand(),
7893 op3.as_operand(),
7894 );
7895 }
7896}
7897
7898impl<'a> VpcmpwEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7899 fn vpcmpw(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7900 self.emit(
7901 VPCMPW512KRRI,
7902 op0.as_operand(),
7903 op1.as_operand(),
7904 op2.as_operand(),
7905 op3.as_operand(),
7906 );
7907 }
7908}
7909
7910impl<'a> VpcmpwEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
7911 fn vpcmpw(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
7912 self.emit(
7913 VPCMPW512KRMI,
7914 op0.as_operand(),
7915 op1.as_operand(),
7916 op2.as_operand(),
7917 op3.as_operand(),
7918 );
7919 }
7920}
7921
7922pub trait VpcmpwMaskEmitter<A, B, C, D> {
7939 fn vpcmpw_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7940}
7941
7942impl<'a> VpcmpwMaskEmitter<KReg, Xmm, Xmm, Imm> for Assembler<'a> {
7943 fn vpcmpw_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm, op3: Imm) {
7944 self.emit(
7945 VPCMPW128KRRI_MASK,
7946 op0.as_operand(),
7947 op1.as_operand(),
7948 op2.as_operand(),
7949 op3.as_operand(),
7950 );
7951 }
7952}
7953
7954impl<'a> VpcmpwMaskEmitter<KReg, Xmm, Mem, Imm> for Assembler<'a> {
7955 fn vpcmpw_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem, op3: Imm) {
7956 self.emit(
7957 VPCMPW128KRMI_MASK,
7958 op0.as_operand(),
7959 op1.as_operand(),
7960 op2.as_operand(),
7961 op3.as_operand(),
7962 );
7963 }
7964}
7965
7966impl<'a> VpcmpwMaskEmitter<KReg, Ymm, Ymm, Imm> for Assembler<'a> {
7967 fn vpcmpw_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm, op3: Imm) {
7968 self.emit(
7969 VPCMPW256KRRI_MASK,
7970 op0.as_operand(),
7971 op1.as_operand(),
7972 op2.as_operand(),
7973 op3.as_operand(),
7974 );
7975 }
7976}
7977
7978impl<'a> VpcmpwMaskEmitter<KReg, Ymm, Mem, Imm> for Assembler<'a> {
7979 fn vpcmpw_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem, op3: Imm) {
7980 self.emit(
7981 VPCMPW256KRMI_MASK,
7982 op0.as_operand(),
7983 op1.as_operand(),
7984 op2.as_operand(),
7985 op3.as_operand(),
7986 );
7987 }
7988}
7989
7990impl<'a> VpcmpwMaskEmitter<KReg, Zmm, Zmm, Imm> for Assembler<'a> {
7991 fn vpcmpw_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm, op3: Imm) {
7992 self.emit(
7993 VPCMPW512KRRI_MASK,
7994 op0.as_operand(),
7995 op1.as_operand(),
7996 op2.as_operand(),
7997 op3.as_operand(),
7998 );
7999 }
8000}
8001
8002impl<'a> VpcmpwMaskEmitter<KReg, Zmm, Mem, Imm> for Assembler<'a> {
8003 fn vpcmpw_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem, op3: Imm) {
8004 self.emit(
8005 VPCMPW512KRMI_MASK,
8006 op0.as_operand(),
8007 op1.as_operand(),
8008 op2.as_operand(),
8009 op3.as_operand(),
8010 );
8011 }
8012}
8013
8014pub trait Vpermi2wEmitter<A, B, C> {
8031 fn vpermi2w(&mut self, op0: A, op1: B, op2: C);
8032}
8033
8034impl<'a> Vpermi2wEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8035 fn vpermi2w(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8036 self.emit(
8037 VPERMI2W128RRR,
8038 op0.as_operand(),
8039 op1.as_operand(),
8040 op2.as_operand(),
8041 &NOREG,
8042 );
8043 }
8044}
8045
8046impl<'a> Vpermi2wEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8047 fn vpermi2w(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8048 self.emit(
8049 VPERMI2W128RRM,
8050 op0.as_operand(),
8051 op1.as_operand(),
8052 op2.as_operand(),
8053 &NOREG,
8054 );
8055 }
8056}
8057
8058impl<'a> Vpermi2wEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8059 fn vpermi2w(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8060 self.emit(
8061 VPERMI2W256RRR,
8062 op0.as_operand(),
8063 op1.as_operand(),
8064 op2.as_operand(),
8065 &NOREG,
8066 );
8067 }
8068}
8069
8070impl<'a> Vpermi2wEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8071 fn vpermi2w(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8072 self.emit(
8073 VPERMI2W256RRM,
8074 op0.as_operand(),
8075 op1.as_operand(),
8076 op2.as_operand(),
8077 &NOREG,
8078 );
8079 }
8080}
8081
8082impl<'a> Vpermi2wEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8083 fn vpermi2w(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8084 self.emit(
8085 VPERMI2W512RRR,
8086 op0.as_operand(),
8087 op1.as_operand(),
8088 op2.as_operand(),
8089 &NOREG,
8090 );
8091 }
8092}
8093
8094impl<'a> Vpermi2wEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8095 fn vpermi2w(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8096 self.emit(
8097 VPERMI2W512RRM,
8098 op0.as_operand(),
8099 op1.as_operand(),
8100 op2.as_operand(),
8101 &NOREG,
8102 );
8103 }
8104}
8105
8106pub trait Vpermi2wMaskEmitter<A, B, C> {
8123 fn vpermi2w_mask(&mut self, op0: A, op1: B, op2: C);
8124}
8125
8126impl<'a> Vpermi2wMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8127 fn vpermi2w_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8128 self.emit(
8129 VPERMI2W128RRR_MASK,
8130 op0.as_operand(),
8131 op1.as_operand(),
8132 op2.as_operand(),
8133 &NOREG,
8134 );
8135 }
8136}
8137
8138impl<'a> Vpermi2wMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8139 fn vpermi2w_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8140 self.emit(
8141 VPERMI2W128RRM_MASK,
8142 op0.as_operand(),
8143 op1.as_operand(),
8144 op2.as_operand(),
8145 &NOREG,
8146 );
8147 }
8148}
8149
8150impl<'a> Vpermi2wMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8151 fn vpermi2w_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8152 self.emit(
8153 VPERMI2W256RRR_MASK,
8154 op0.as_operand(),
8155 op1.as_operand(),
8156 op2.as_operand(),
8157 &NOREG,
8158 );
8159 }
8160}
8161
8162impl<'a> Vpermi2wMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8163 fn vpermi2w_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8164 self.emit(
8165 VPERMI2W256RRM_MASK,
8166 op0.as_operand(),
8167 op1.as_operand(),
8168 op2.as_operand(),
8169 &NOREG,
8170 );
8171 }
8172}
8173
8174impl<'a> Vpermi2wMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8175 fn vpermi2w_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8176 self.emit(
8177 VPERMI2W512RRR_MASK,
8178 op0.as_operand(),
8179 op1.as_operand(),
8180 op2.as_operand(),
8181 &NOREG,
8182 );
8183 }
8184}
8185
8186impl<'a> Vpermi2wMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8187 fn vpermi2w_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8188 self.emit(
8189 VPERMI2W512RRM_MASK,
8190 op0.as_operand(),
8191 op1.as_operand(),
8192 op2.as_operand(),
8193 &NOREG,
8194 );
8195 }
8196}
8197
8198pub trait Vpermi2wMaskzEmitter<A, B, C> {
8215 fn vpermi2w_maskz(&mut self, op0: A, op1: B, op2: C);
8216}
8217
8218impl<'a> Vpermi2wMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8219 fn vpermi2w_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8220 self.emit(
8221 VPERMI2W128RRR_MASKZ,
8222 op0.as_operand(),
8223 op1.as_operand(),
8224 op2.as_operand(),
8225 &NOREG,
8226 );
8227 }
8228}
8229
8230impl<'a> Vpermi2wMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8231 fn vpermi2w_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8232 self.emit(
8233 VPERMI2W128RRM_MASKZ,
8234 op0.as_operand(),
8235 op1.as_operand(),
8236 op2.as_operand(),
8237 &NOREG,
8238 );
8239 }
8240}
8241
8242impl<'a> Vpermi2wMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8243 fn vpermi2w_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8244 self.emit(
8245 VPERMI2W256RRR_MASKZ,
8246 op0.as_operand(),
8247 op1.as_operand(),
8248 op2.as_operand(),
8249 &NOREG,
8250 );
8251 }
8252}
8253
8254impl<'a> Vpermi2wMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8255 fn vpermi2w_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8256 self.emit(
8257 VPERMI2W256RRM_MASKZ,
8258 op0.as_operand(),
8259 op1.as_operand(),
8260 op2.as_operand(),
8261 &NOREG,
8262 );
8263 }
8264}
8265
8266impl<'a> Vpermi2wMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8267 fn vpermi2w_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8268 self.emit(
8269 VPERMI2W512RRR_MASKZ,
8270 op0.as_operand(),
8271 op1.as_operand(),
8272 op2.as_operand(),
8273 &NOREG,
8274 );
8275 }
8276}
8277
8278impl<'a> Vpermi2wMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8279 fn vpermi2w_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8280 self.emit(
8281 VPERMI2W512RRM_MASKZ,
8282 op0.as_operand(),
8283 op1.as_operand(),
8284 op2.as_operand(),
8285 &NOREG,
8286 );
8287 }
8288}
8289
8290pub trait Vpermt2wEmitter<A, B, C> {
8307 fn vpermt2w(&mut self, op0: A, op1: B, op2: C);
8308}
8309
8310impl<'a> Vpermt2wEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8311 fn vpermt2w(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8312 self.emit(
8313 VPERMT2W128RRR,
8314 op0.as_operand(),
8315 op1.as_operand(),
8316 op2.as_operand(),
8317 &NOREG,
8318 );
8319 }
8320}
8321
8322impl<'a> Vpermt2wEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8323 fn vpermt2w(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8324 self.emit(
8325 VPERMT2W128RRM,
8326 op0.as_operand(),
8327 op1.as_operand(),
8328 op2.as_operand(),
8329 &NOREG,
8330 );
8331 }
8332}
8333
8334impl<'a> Vpermt2wEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8335 fn vpermt2w(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8336 self.emit(
8337 VPERMT2W256RRR,
8338 op0.as_operand(),
8339 op1.as_operand(),
8340 op2.as_operand(),
8341 &NOREG,
8342 );
8343 }
8344}
8345
8346impl<'a> Vpermt2wEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8347 fn vpermt2w(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8348 self.emit(
8349 VPERMT2W256RRM,
8350 op0.as_operand(),
8351 op1.as_operand(),
8352 op2.as_operand(),
8353 &NOREG,
8354 );
8355 }
8356}
8357
8358impl<'a> Vpermt2wEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8359 fn vpermt2w(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8360 self.emit(
8361 VPERMT2W512RRR,
8362 op0.as_operand(),
8363 op1.as_operand(),
8364 op2.as_operand(),
8365 &NOREG,
8366 );
8367 }
8368}
8369
8370impl<'a> Vpermt2wEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8371 fn vpermt2w(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8372 self.emit(
8373 VPERMT2W512RRM,
8374 op0.as_operand(),
8375 op1.as_operand(),
8376 op2.as_operand(),
8377 &NOREG,
8378 );
8379 }
8380}
8381
8382pub trait Vpermt2wMaskEmitter<A, B, C> {
8399 fn vpermt2w_mask(&mut self, op0: A, op1: B, op2: C);
8400}
8401
8402impl<'a> Vpermt2wMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8403 fn vpermt2w_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8404 self.emit(
8405 VPERMT2W128RRR_MASK,
8406 op0.as_operand(),
8407 op1.as_operand(),
8408 op2.as_operand(),
8409 &NOREG,
8410 );
8411 }
8412}
8413
8414impl<'a> Vpermt2wMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8415 fn vpermt2w_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8416 self.emit(
8417 VPERMT2W128RRM_MASK,
8418 op0.as_operand(),
8419 op1.as_operand(),
8420 op2.as_operand(),
8421 &NOREG,
8422 );
8423 }
8424}
8425
8426impl<'a> Vpermt2wMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8427 fn vpermt2w_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8428 self.emit(
8429 VPERMT2W256RRR_MASK,
8430 op0.as_operand(),
8431 op1.as_operand(),
8432 op2.as_operand(),
8433 &NOREG,
8434 );
8435 }
8436}
8437
8438impl<'a> Vpermt2wMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8439 fn vpermt2w_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8440 self.emit(
8441 VPERMT2W256RRM_MASK,
8442 op0.as_operand(),
8443 op1.as_operand(),
8444 op2.as_operand(),
8445 &NOREG,
8446 );
8447 }
8448}
8449
8450impl<'a> Vpermt2wMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8451 fn vpermt2w_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8452 self.emit(
8453 VPERMT2W512RRR_MASK,
8454 op0.as_operand(),
8455 op1.as_operand(),
8456 op2.as_operand(),
8457 &NOREG,
8458 );
8459 }
8460}
8461
8462impl<'a> Vpermt2wMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8463 fn vpermt2w_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8464 self.emit(
8465 VPERMT2W512RRM_MASK,
8466 op0.as_operand(),
8467 op1.as_operand(),
8468 op2.as_operand(),
8469 &NOREG,
8470 );
8471 }
8472}
8473
8474pub trait Vpermt2wMaskzEmitter<A, B, C> {
8491 fn vpermt2w_maskz(&mut self, op0: A, op1: B, op2: C);
8492}
8493
8494impl<'a> Vpermt2wMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8495 fn vpermt2w_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8496 self.emit(
8497 VPERMT2W128RRR_MASKZ,
8498 op0.as_operand(),
8499 op1.as_operand(),
8500 op2.as_operand(),
8501 &NOREG,
8502 );
8503 }
8504}
8505
8506impl<'a> Vpermt2wMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8507 fn vpermt2w_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8508 self.emit(
8509 VPERMT2W128RRM_MASKZ,
8510 op0.as_operand(),
8511 op1.as_operand(),
8512 op2.as_operand(),
8513 &NOREG,
8514 );
8515 }
8516}
8517
8518impl<'a> Vpermt2wMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8519 fn vpermt2w_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8520 self.emit(
8521 VPERMT2W256RRR_MASKZ,
8522 op0.as_operand(),
8523 op1.as_operand(),
8524 op2.as_operand(),
8525 &NOREG,
8526 );
8527 }
8528}
8529
8530impl<'a> Vpermt2wMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8531 fn vpermt2w_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8532 self.emit(
8533 VPERMT2W256RRM_MASKZ,
8534 op0.as_operand(),
8535 op1.as_operand(),
8536 op2.as_operand(),
8537 &NOREG,
8538 );
8539 }
8540}
8541
8542impl<'a> Vpermt2wMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8543 fn vpermt2w_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8544 self.emit(
8545 VPERMT2W512RRR_MASKZ,
8546 op0.as_operand(),
8547 op1.as_operand(),
8548 op2.as_operand(),
8549 &NOREG,
8550 );
8551 }
8552}
8553
8554impl<'a> Vpermt2wMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8555 fn vpermt2w_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8556 self.emit(
8557 VPERMT2W512RRM_MASKZ,
8558 op0.as_operand(),
8559 op1.as_operand(),
8560 op2.as_operand(),
8561 &NOREG,
8562 );
8563 }
8564}
8565
8566pub trait VpermwEmitter<A, B, C> {
8583 fn vpermw(&mut self, op0: A, op1: B, op2: C);
8584}
8585
8586impl<'a> VpermwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8587 fn vpermw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8588 self.emit(
8589 VPERMW128RRR,
8590 op0.as_operand(),
8591 op1.as_operand(),
8592 op2.as_operand(),
8593 &NOREG,
8594 );
8595 }
8596}
8597
8598impl<'a> VpermwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8599 fn vpermw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8600 self.emit(
8601 VPERMW128RRM,
8602 op0.as_operand(),
8603 op1.as_operand(),
8604 op2.as_operand(),
8605 &NOREG,
8606 );
8607 }
8608}
8609
8610impl<'a> VpermwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8611 fn vpermw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8612 self.emit(
8613 VPERMW256RRR,
8614 op0.as_operand(),
8615 op1.as_operand(),
8616 op2.as_operand(),
8617 &NOREG,
8618 );
8619 }
8620}
8621
8622impl<'a> VpermwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8623 fn vpermw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8624 self.emit(
8625 VPERMW256RRM,
8626 op0.as_operand(),
8627 op1.as_operand(),
8628 op2.as_operand(),
8629 &NOREG,
8630 );
8631 }
8632}
8633
8634impl<'a> VpermwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8635 fn vpermw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8636 self.emit(
8637 VPERMW512RRR,
8638 op0.as_operand(),
8639 op1.as_operand(),
8640 op2.as_operand(),
8641 &NOREG,
8642 );
8643 }
8644}
8645
8646impl<'a> VpermwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8647 fn vpermw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8648 self.emit(
8649 VPERMW512RRM,
8650 op0.as_operand(),
8651 op1.as_operand(),
8652 op2.as_operand(),
8653 &NOREG,
8654 );
8655 }
8656}
8657
8658pub trait VpermwMaskEmitter<A, B, C> {
8675 fn vpermw_mask(&mut self, op0: A, op1: B, op2: C);
8676}
8677
8678impl<'a> VpermwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8679 fn vpermw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8680 self.emit(
8681 VPERMW128RRR_MASK,
8682 op0.as_operand(),
8683 op1.as_operand(),
8684 op2.as_operand(),
8685 &NOREG,
8686 );
8687 }
8688}
8689
8690impl<'a> VpermwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8691 fn vpermw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8692 self.emit(
8693 VPERMW128RRM_MASK,
8694 op0.as_operand(),
8695 op1.as_operand(),
8696 op2.as_operand(),
8697 &NOREG,
8698 );
8699 }
8700}
8701
8702impl<'a> VpermwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8703 fn vpermw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8704 self.emit(
8705 VPERMW256RRR_MASK,
8706 op0.as_operand(),
8707 op1.as_operand(),
8708 op2.as_operand(),
8709 &NOREG,
8710 );
8711 }
8712}
8713
8714impl<'a> VpermwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8715 fn vpermw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8716 self.emit(
8717 VPERMW256RRM_MASK,
8718 op0.as_operand(),
8719 op1.as_operand(),
8720 op2.as_operand(),
8721 &NOREG,
8722 );
8723 }
8724}
8725
8726impl<'a> VpermwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8727 fn vpermw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8728 self.emit(
8729 VPERMW512RRR_MASK,
8730 op0.as_operand(),
8731 op1.as_operand(),
8732 op2.as_operand(),
8733 &NOREG,
8734 );
8735 }
8736}
8737
8738impl<'a> VpermwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8739 fn vpermw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8740 self.emit(
8741 VPERMW512RRM_MASK,
8742 op0.as_operand(),
8743 op1.as_operand(),
8744 op2.as_operand(),
8745 &NOREG,
8746 );
8747 }
8748}
8749
8750pub trait VpermwMaskzEmitter<A, B, C> {
8767 fn vpermw_maskz(&mut self, op0: A, op1: B, op2: C);
8768}
8769
8770impl<'a> VpermwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
8771 fn vpermw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
8772 self.emit(
8773 VPERMW128RRR_MASKZ,
8774 op0.as_operand(),
8775 op1.as_operand(),
8776 op2.as_operand(),
8777 &NOREG,
8778 );
8779 }
8780}
8781
8782impl<'a> VpermwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
8783 fn vpermw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
8784 self.emit(
8785 VPERMW128RRM_MASKZ,
8786 op0.as_operand(),
8787 op1.as_operand(),
8788 op2.as_operand(),
8789 &NOREG,
8790 );
8791 }
8792}
8793
8794impl<'a> VpermwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
8795 fn vpermw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
8796 self.emit(
8797 VPERMW256RRR_MASKZ,
8798 op0.as_operand(),
8799 op1.as_operand(),
8800 op2.as_operand(),
8801 &NOREG,
8802 );
8803 }
8804}
8805
8806impl<'a> VpermwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
8807 fn vpermw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
8808 self.emit(
8809 VPERMW256RRM_MASKZ,
8810 op0.as_operand(),
8811 op1.as_operand(),
8812 op2.as_operand(),
8813 &NOREG,
8814 );
8815 }
8816}
8817
8818impl<'a> VpermwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
8819 fn vpermw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
8820 self.emit(
8821 VPERMW512RRR_MASKZ,
8822 op0.as_operand(),
8823 op1.as_operand(),
8824 op2.as_operand(),
8825 &NOREG,
8826 );
8827 }
8828}
8829
8830impl<'a> VpermwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
8831 fn vpermw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
8832 self.emit(
8833 VPERMW512RRM_MASKZ,
8834 op0.as_operand(),
8835 op1.as_operand(),
8836 op2.as_operand(),
8837 &NOREG,
8838 );
8839 }
8840}
8841
8842pub trait VpextrbEmitter<A, B, C> {
8855 fn vpextrb(&mut self, op0: A, op1: B, op2: C);
8856}
8857
8858impl<'a> VpextrbEmitter<Mem, Xmm, Imm> for Assembler<'a> {
8859 fn vpextrb(&mut self, op0: Mem, op1: Xmm, op2: Imm) {
8860 self.emit(
8861 VPEXTRBMRI,
8862 op0.as_operand(),
8863 op1.as_operand(),
8864 op2.as_operand(),
8865 &NOREG,
8866 );
8867 }
8868}
8869
8870impl<'a> VpextrbEmitter<Gpd, Xmm, Imm> for Assembler<'a> {
8871 fn vpextrb(&mut self, op0: Gpd, op1: Xmm, op2: Imm) {
8872 self.emit(
8873 VPEXTRBRRI,
8874 op0.as_operand(),
8875 op1.as_operand(),
8876 op2.as_operand(),
8877 &NOREG,
8878 );
8879 }
8880}
8881
8882pub trait VpextrwEmitter<A, B, C> {
8895 fn vpextrw(&mut self, op0: A, op1: B, op2: C);
8896}
8897
8898impl<'a> VpextrwEmitter<Gpd, Xmm, Imm> for Assembler<'a> {
8899 fn vpextrw(&mut self, op0: Gpd, op1: Xmm, op2: Imm) {
8900 self.emit(
8901 VPEXTRWRRI,
8902 op0.as_operand(),
8903 op1.as_operand(),
8904 op2.as_operand(),
8905 &NOREG,
8906 );
8907 }
8908}
8909
8910impl<'a> VpextrwEmitter<Mem, Xmm, Imm> for Assembler<'a> {
8911 fn vpextrw(&mut self, op0: Mem, op1: Xmm, op2: Imm) {
8912 self.emit(
8913 VPEXTRWMRI,
8914 op0.as_operand(),
8915 op1.as_operand(),
8916 op2.as_operand(),
8917 &NOREG,
8918 );
8919 }
8920}
8921
8922pub trait VpinsrbEmitter<A, B, C, D> {
8935 fn vpinsrb(&mut self, op0: A, op1: B, op2: C, op3: D);
8936}
8937
8938impl<'a> VpinsrbEmitter<Xmm, Xmm, Gpd, Imm> for Assembler<'a> {
8939 fn vpinsrb(&mut self, op0: Xmm, op1: Xmm, op2: Gpd, op3: Imm) {
8940 self.emit(
8941 VPINSRBRRRI,
8942 op0.as_operand(),
8943 op1.as_operand(),
8944 op2.as_operand(),
8945 op3.as_operand(),
8946 );
8947 }
8948}
8949
8950impl<'a> VpinsrbEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
8951 fn vpinsrb(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
8952 self.emit(
8953 VPINSRBRRMI,
8954 op0.as_operand(),
8955 op1.as_operand(),
8956 op2.as_operand(),
8957 op3.as_operand(),
8958 );
8959 }
8960}
8961
8962pub trait VpinsrwEmitter<A, B, C, D> {
8975 fn vpinsrw(&mut self, op0: A, op1: B, op2: C, op3: D);
8976}
8977
8978impl<'a> VpinsrwEmitter<Xmm, Xmm, Gpd, Imm> for Assembler<'a> {
8979 fn vpinsrw(&mut self, op0: Xmm, op1: Xmm, op2: Gpd, op3: Imm) {
8980 self.emit(
8981 VPINSRWRRRI,
8982 op0.as_operand(),
8983 op1.as_operand(),
8984 op2.as_operand(),
8985 op3.as_operand(),
8986 );
8987 }
8988}
8989
8990impl<'a> VpinsrwEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
8991 fn vpinsrw(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
8992 self.emit(
8993 VPINSRWRRMI,
8994 op0.as_operand(),
8995 op1.as_operand(),
8996 op2.as_operand(),
8997 op3.as_operand(),
8998 );
8999 }
9000}
9001
9002pub trait VpmaddubswEmitter<A, B, C> {
9019 fn vpmaddubsw(&mut self, op0: A, op1: B, op2: C);
9020}
9021
9022impl<'a> VpmaddubswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9023 fn vpmaddubsw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9024 self.emit(
9025 VPMADDUBSW128RRR,
9026 op0.as_operand(),
9027 op1.as_operand(),
9028 op2.as_operand(),
9029 &NOREG,
9030 );
9031 }
9032}
9033
9034impl<'a> VpmaddubswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9035 fn vpmaddubsw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9036 self.emit(
9037 VPMADDUBSW128RRM,
9038 op0.as_operand(),
9039 op1.as_operand(),
9040 op2.as_operand(),
9041 &NOREG,
9042 );
9043 }
9044}
9045
9046impl<'a> VpmaddubswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9047 fn vpmaddubsw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9048 self.emit(
9049 VPMADDUBSW256RRR,
9050 op0.as_operand(),
9051 op1.as_operand(),
9052 op2.as_operand(),
9053 &NOREG,
9054 );
9055 }
9056}
9057
9058impl<'a> VpmaddubswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9059 fn vpmaddubsw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9060 self.emit(
9061 VPMADDUBSW256RRM,
9062 op0.as_operand(),
9063 op1.as_operand(),
9064 op2.as_operand(),
9065 &NOREG,
9066 );
9067 }
9068}
9069
9070impl<'a> VpmaddubswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9071 fn vpmaddubsw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9072 self.emit(
9073 VPMADDUBSW512RRR,
9074 op0.as_operand(),
9075 op1.as_operand(),
9076 op2.as_operand(),
9077 &NOREG,
9078 );
9079 }
9080}
9081
9082impl<'a> VpmaddubswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9083 fn vpmaddubsw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9084 self.emit(
9085 VPMADDUBSW512RRM,
9086 op0.as_operand(),
9087 op1.as_operand(),
9088 op2.as_operand(),
9089 &NOREG,
9090 );
9091 }
9092}
9093
9094pub trait VpmaddubswMaskEmitter<A, B, C> {
9111 fn vpmaddubsw_mask(&mut self, op0: A, op1: B, op2: C);
9112}
9113
9114impl<'a> VpmaddubswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9115 fn vpmaddubsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9116 self.emit(
9117 VPMADDUBSW128RRR_MASK,
9118 op0.as_operand(),
9119 op1.as_operand(),
9120 op2.as_operand(),
9121 &NOREG,
9122 );
9123 }
9124}
9125
9126impl<'a> VpmaddubswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9127 fn vpmaddubsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9128 self.emit(
9129 VPMADDUBSW128RRM_MASK,
9130 op0.as_operand(),
9131 op1.as_operand(),
9132 op2.as_operand(),
9133 &NOREG,
9134 );
9135 }
9136}
9137
9138impl<'a> VpmaddubswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9139 fn vpmaddubsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9140 self.emit(
9141 VPMADDUBSW256RRR_MASK,
9142 op0.as_operand(),
9143 op1.as_operand(),
9144 op2.as_operand(),
9145 &NOREG,
9146 );
9147 }
9148}
9149
9150impl<'a> VpmaddubswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9151 fn vpmaddubsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9152 self.emit(
9153 VPMADDUBSW256RRM_MASK,
9154 op0.as_operand(),
9155 op1.as_operand(),
9156 op2.as_operand(),
9157 &NOREG,
9158 );
9159 }
9160}
9161
9162impl<'a> VpmaddubswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9163 fn vpmaddubsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9164 self.emit(
9165 VPMADDUBSW512RRR_MASK,
9166 op0.as_operand(),
9167 op1.as_operand(),
9168 op2.as_operand(),
9169 &NOREG,
9170 );
9171 }
9172}
9173
9174impl<'a> VpmaddubswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9175 fn vpmaddubsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9176 self.emit(
9177 VPMADDUBSW512RRM_MASK,
9178 op0.as_operand(),
9179 op1.as_operand(),
9180 op2.as_operand(),
9181 &NOREG,
9182 );
9183 }
9184}
9185
9186pub trait VpmaddubswMaskzEmitter<A, B, C> {
9203 fn vpmaddubsw_maskz(&mut self, op0: A, op1: B, op2: C);
9204}
9205
9206impl<'a> VpmaddubswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9207 fn vpmaddubsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9208 self.emit(
9209 VPMADDUBSW128RRR_MASKZ,
9210 op0.as_operand(),
9211 op1.as_operand(),
9212 op2.as_operand(),
9213 &NOREG,
9214 );
9215 }
9216}
9217
9218impl<'a> VpmaddubswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9219 fn vpmaddubsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9220 self.emit(
9221 VPMADDUBSW128RRM_MASKZ,
9222 op0.as_operand(),
9223 op1.as_operand(),
9224 op2.as_operand(),
9225 &NOREG,
9226 );
9227 }
9228}
9229
9230impl<'a> VpmaddubswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9231 fn vpmaddubsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9232 self.emit(
9233 VPMADDUBSW256RRR_MASKZ,
9234 op0.as_operand(),
9235 op1.as_operand(),
9236 op2.as_operand(),
9237 &NOREG,
9238 );
9239 }
9240}
9241
9242impl<'a> VpmaddubswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9243 fn vpmaddubsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9244 self.emit(
9245 VPMADDUBSW256RRM_MASKZ,
9246 op0.as_operand(),
9247 op1.as_operand(),
9248 op2.as_operand(),
9249 &NOREG,
9250 );
9251 }
9252}
9253
9254impl<'a> VpmaddubswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9255 fn vpmaddubsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9256 self.emit(
9257 VPMADDUBSW512RRR_MASKZ,
9258 op0.as_operand(),
9259 op1.as_operand(),
9260 op2.as_operand(),
9261 &NOREG,
9262 );
9263 }
9264}
9265
9266impl<'a> VpmaddubswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9267 fn vpmaddubsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9268 self.emit(
9269 VPMADDUBSW512RRM_MASKZ,
9270 op0.as_operand(),
9271 op1.as_operand(),
9272 op2.as_operand(),
9273 &NOREG,
9274 );
9275 }
9276}
9277
9278pub trait VpmaddwdEmitter<A, B, C> {
9295 fn vpmaddwd(&mut self, op0: A, op1: B, op2: C);
9296}
9297
9298impl<'a> VpmaddwdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9299 fn vpmaddwd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9300 self.emit(
9301 VPMADDWD128RRR,
9302 op0.as_operand(),
9303 op1.as_operand(),
9304 op2.as_operand(),
9305 &NOREG,
9306 );
9307 }
9308}
9309
9310impl<'a> VpmaddwdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9311 fn vpmaddwd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9312 self.emit(
9313 VPMADDWD128RRM,
9314 op0.as_operand(),
9315 op1.as_operand(),
9316 op2.as_operand(),
9317 &NOREG,
9318 );
9319 }
9320}
9321
9322impl<'a> VpmaddwdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9323 fn vpmaddwd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9324 self.emit(
9325 VPMADDWD256RRR,
9326 op0.as_operand(),
9327 op1.as_operand(),
9328 op2.as_operand(),
9329 &NOREG,
9330 );
9331 }
9332}
9333
9334impl<'a> VpmaddwdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9335 fn vpmaddwd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9336 self.emit(
9337 VPMADDWD256RRM,
9338 op0.as_operand(),
9339 op1.as_operand(),
9340 op2.as_operand(),
9341 &NOREG,
9342 );
9343 }
9344}
9345
9346impl<'a> VpmaddwdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9347 fn vpmaddwd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9348 self.emit(
9349 VPMADDWD512RRR,
9350 op0.as_operand(),
9351 op1.as_operand(),
9352 op2.as_operand(),
9353 &NOREG,
9354 );
9355 }
9356}
9357
9358impl<'a> VpmaddwdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9359 fn vpmaddwd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9360 self.emit(
9361 VPMADDWD512RRM,
9362 op0.as_operand(),
9363 op1.as_operand(),
9364 op2.as_operand(),
9365 &NOREG,
9366 );
9367 }
9368}
9369
9370pub trait VpmaddwdMaskEmitter<A, B, C> {
9387 fn vpmaddwd_mask(&mut self, op0: A, op1: B, op2: C);
9388}
9389
9390impl<'a> VpmaddwdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9391 fn vpmaddwd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9392 self.emit(
9393 VPMADDWD128RRR_MASK,
9394 op0.as_operand(),
9395 op1.as_operand(),
9396 op2.as_operand(),
9397 &NOREG,
9398 );
9399 }
9400}
9401
9402impl<'a> VpmaddwdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9403 fn vpmaddwd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9404 self.emit(
9405 VPMADDWD128RRM_MASK,
9406 op0.as_operand(),
9407 op1.as_operand(),
9408 op2.as_operand(),
9409 &NOREG,
9410 );
9411 }
9412}
9413
9414impl<'a> VpmaddwdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9415 fn vpmaddwd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9416 self.emit(
9417 VPMADDWD256RRR_MASK,
9418 op0.as_operand(),
9419 op1.as_operand(),
9420 op2.as_operand(),
9421 &NOREG,
9422 );
9423 }
9424}
9425
9426impl<'a> VpmaddwdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9427 fn vpmaddwd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9428 self.emit(
9429 VPMADDWD256RRM_MASK,
9430 op0.as_operand(),
9431 op1.as_operand(),
9432 op2.as_operand(),
9433 &NOREG,
9434 );
9435 }
9436}
9437
9438impl<'a> VpmaddwdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9439 fn vpmaddwd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9440 self.emit(
9441 VPMADDWD512RRR_MASK,
9442 op0.as_operand(),
9443 op1.as_operand(),
9444 op2.as_operand(),
9445 &NOREG,
9446 );
9447 }
9448}
9449
9450impl<'a> VpmaddwdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9451 fn vpmaddwd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9452 self.emit(
9453 VPMADDWD512RRM_MASK,
9454 op0.as_operand(),
9455 op1.as_operand(),
9456 op2.as_operand(),
9457 &NOREG,
9458 );
9459 }
9460}
9461
9462pub trait VpmaddwdMaskzEmitter<A, B, C> {
9479 fn vpmaddwd_maskz(&mut self, op0: A, op1: B, op2: C);
9480}
9481
9482impl<'a> VpmaddwdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9483 fn vpmaddwd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9484 self.emit(
9485 VPMADDWD128RRR_MASKZ,
9486 op0.as_operand(),
9487 op1.as_operand(),
9488 op2.as_operand(),
9489 &NOREG,
9490 );
9491 }
9492}
9493
9494impl<'a> VpmaddwdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9495 fn vpmaddwd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9496 self.emit(
9497 VPMADDWD128RRM_MASKZ,
9498 op0.as_operand(),
9499 op1.as_operand(),
9500 op2.as_operand(),
9501 &NOREG,
9502 );
9503 }
9504}
9505
9506impl<'a> VpmaddwdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9507 fn vpmaddwd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9508 self.emit(
9509 VPMADDWD256RRR_MASKZ,
9510 op0.as_operand(),
9511 op1.as_operand(),
9512 op2.as_operand(),
9513 &NOREG,
9514 );
9515 }
9516}
9517
9518impl<'a> VpmaddwdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9519 fn vpmaddwd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9520 self.emit(
9521 VPMADDWD256RRM_MASKZ,
9522 op0.as_operand(),
9523 op1.as_operand(),
9524 op2.as_operand(),
9525 &NOREG,
9526 );
9527 }
9528}
9529
9530impl<'a> VpmaddwdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9531 fn vpmaddwd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9532 self.emit(
9533 VPMADDWD512RRR_MASKZ,
9534 op0.as_operand(),
9535 op1.as_operand(),
9536 op2.as_operand(),
9537 &NOREG,
9538 );
9539 }
9540}
9541
9542impl<'a> VpmaddwdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9543 fn vpmaddwd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9544 self.emit(
9545 VPMADDWD512RRM_MASKZ,
9546 op0.as_operand(),
9547 op1.as_operand(),
9548 op2.as_operand(),
9549 &NOREG,
9550 );
9551 }
9552}
9553
9554pub trait VpmaxsbEmitter<A, B, C> {
9571 fn vpmaxsb(&mut self, op0: A, op1: B, op2: C);
9572}
9573
9574impl<'a> VpmaxsbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9575 fn vpmaxsb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9576 self.emit(
9577 VPMAXSB128RRR,
9578 op0.as_operand(),
9579 op1.as_operand(),
9580 op2.as_operand(),
9581 &NOREG,
9582 );
9583 }
9584}
9585
9586impl<'a> VpmaxsbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9587 fn vpmaxsb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9588 self.emit(
9589 VPMAXSB128RRM,
9590 op0.as_operand(),
9591 op1.as_operand(),
9592 op2.as_operand(),
9593 &NOREG,
9594 );
9595 }
9596}
9597
9598impl<'a> VpmaxsbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9599 fn vpmaxsb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9600 self.emit(
9601 VPMAXSB256RRR,
9602 op0.as_operand(),
9603 op1.as_operand(),
9604 op2.as_operand(),
9605 &NOREG,
9606 );
9607 }
9608}
9609
9610impl<'a> VpmaxsbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9611 fn vpmaxsb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9612 self.emit(
9613 VPMAXSB256RRM,
9614 op0.as_operand(),
9615 op1.as_operand(),
9616 op2.as_operand(),
9617 &NOREG,
9618 );
9619 }
9620}
9621
9622impl<'a> VpmaxsbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9623 fn vpmaxsb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9624 self.emit(
9625 VPMAXSB512RRR,
9626 op0.as_operand(),
9627 op1.as_operand(),
9628 op2.as_operand(),
9629 &NOREG,
9630 );
9631 }
9632}
9633
9634impl<'a> VpmaxsbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9635 fn vpmaxsb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9636 self.emit(
9637 VPMAXSB512RRM,
9638 op0.as_operand(),
9639 op1.as_operand(),
9640 op2.as_operand(),
9641 &NOREG,
9642 );
9643 }
9644}
9645
9646pub trait VpmaxsbMaskEmitter<A, B, C> {
9663 fn vpmaxsb_mask(&mut self, op0: A, op1: B, op2: C);
9664}
9665
9666impl<'a> VpmaxsbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9667 fn vpmaxsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9668 self.emit(
9669 VPMAXSB128RRR_MASK,
9670 op0.as_operand(),
9671 op1.as_operand(),
9672 op2.as_operand(),
9673 &NOREG,
9674 );
9675 }
9676}
9677
9678impl<'a> VpmaxsbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9679 fn vpmaxsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9680 self.emit(
9681 VPMAXSB128RRM_MASK,
9682 op0.as_operand(),
9683 op1.as_operand(),
9684 op2.as_operand(),
9685 &NOREG,
9686 );
9687 }
9688}
9689
9690impl<'a> VpmaxsbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9691 fn vpmaxsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9692 self.emit(
9693 VPMAXSB256RRR_MASK,
9694 op0.as_operand(),
9695 op1.as_operand(),
9696 op2.as_operand(),
9697 &NOREG,
9698 );
9699 }
9700}
9701
9702impl<'a> VpmaxsbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9703 fn vpmaxsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9704 self.emit(
9705 VPMAXSB256RRM_MASK,
9706 op0.as_operand(),
9707 op1.as_operand(),
9708 op2.as_operand(),
9709 &NOREG,
9710 );
9711 }
9712}
9713
9714impl<'a> VpmaxsbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9715 fn vpmaxsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9716 self.emit(
9717 VPMAXSB512RRR_MASK,
9718 op0.as_operand(),
9719 op1.as_operand(),
9720 op2.as_operand(),
9721 &NOREG,
9722 );
9723 }
9724}
9725
9726impl<'a> VpmaxsbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9727 fn vpmaxsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9728 self.emit(
9729 VPMAXSB512RRM_MASK,
9730 op0.as_operand(),
9731 op1.as_operand(),
9732 op2.as_operand(),
9733 &NOREG,
9734 );
9735 }
9736}
9737
9738pub trait VpmaxsbMaskzEmitter<A, B, C> {
9755 fn vpmaxsb_maskz(&mut self, op0: A, op1: B, op2: C);
9756}
9757
9758impl<'a> VpmaxsbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9759 fn vpmaxsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9760 self.emit(
9761 VPMAXSB128RRR_MASKZ,
9762 op0.as_operand(),
9763 op1.as_operand(),
9764 op2.as_operand(),
9765 &NOREG,
9766 );
9767 }
9768}
9769
9770impl<'a> VpmaxsbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9771 fn vpmaxsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9772 self.emit(
9773 VPMAXSB128RRM_MASKZ,
9774 op0.as_operand(),
9775 op1.as_operand(),
9776 op2.as_operand(),
9777 &NOREG,
9778 );
9779 }
9780}
9781
9782impl<'a> VpmaxsbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9783 fn vpmaxsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9784 self.emit(
9785 VPMAXSB256RRR_MASKZ,
9786 op0.as_operand(),
9787 op1.as_operand(),
9788 op2.as_operand(),
9789 &NOREG,
9790 );
9791 }
9792}
9793
9794impl<'a> VpmaxsbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9795 fn vpmaxsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9796 self.emit(
9797 VPMAXSB256RRM_MASKZ,
9798 op0.as_operand(),
9799 op1.as_operand(),
9800 op2.as_operand(),
9801 &NOREG,
9802 );
9803 }
9804}
9805
9806impl<'a> VpmaxsbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9807 fn vpmaxsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9808 self.emit(
9809 VPMAXSB512RRR_MASKZ,
9810 op0.as_operand(),
9811 op1.as_operand(),
9812 op2.as_operand(),
9813 &NOREG,
9814 );
9815 }
9816}
9817
9818impl<'a> VpmaxsbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9819 fn vpmaxsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9820 self.emit(
9821 VPMAXSB512RRM_MASKZ,
9822 op0.as_operand(),
9823 op1.as_operand(),
9824 op2.as_operand(),
9825 &NOREG,
9826 );
9827 }
9828}
9829
9830pub trait VpmaxswEmitter<A, B, C> {
9847 fn vpmaxsw(&mut self, op0: A, op1: B, op2: C);
9848}
9849
9850impl<'a> VpmaxswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9851 fn vpmaxsw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9852 self.emit(
9853 VPMAXSW128RRR,
9854 op0.as_operand(),
9855 op1.as_operand(),
9856 op2.as_operand(),
9857 &NOREG,
9858 );
9859 }
9860}
9861
9862impl<'a> VpmaxswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9863 fn vpmaxsw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9864 self.emit(
9865 VPMAXSW128RRM,
9866 op0.as_operand(),
9867 op1.as_operand(),
9868 op2.as_operand(),
9869 &NOREG,
9870 );
9871 }
9872}
9873
9874impl<'a> VpmaxswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9875 fn vpmaxsw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9876 self.emit(
9877 VPMAXSW256RRR,
9878 op0.as_operand(),
9879 op1.as_operand(),
9880 op2.as_operand(),
9881 &NOREG,
9882 );
9883 }
9884}
9885
9886impl<'a> VpmaxswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9887 fn vpmaxsw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9888 self.emit(
9889 VPMAXSW256RRM,
9890 op0.as_operand(),
9891 op1.as_operand(),
9892 op2.as_operand(),
9893 &NOREG,
9894 );
9895 }
9896}
9897
9898impl<'a> VpmaxswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9899 fn vpmaxsw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9900 self.emit(
9901 VPMAXSW512RRR,
9902 op0.as_operand(),
9903 op1.as_operand(),
9904 op2.as_operand(),
9905 &NOREG,
9906 );
9907 }
9908}
9909
9910impl<'a> VpmaxswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9911 fn vpmaxsw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9912 self.emit(
9913 VPMAXSW512RRM,
9914 op0.as_operand(),
9915 op1.as_operand(),
9916 op2.as_operand(),
9917 &NOREG,
9918 );
9919 }
9920}
9921
9922pub trait VpmaxswMaskEmitter<A, B, C> {
9939 fn vpmaxsw_mask(&mut self, op0: A, op1: B, op2: C);
9940}
9941
9942impl<'a> VpmaxswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9943 fn vpmaxsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9944 self.emit(
9945 VPMAXSW128RRR_MASK,
9946 op0.as_operand(),
9947 op1.as_operand(),
9948 op2.as_operand(),
9949 &NOREG,
9950 );
9951 }
9952}
9953
9954impl<'a> VpmaxswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9955 fn vpmaxsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9956 self.emit(
9957 VPMAXSW128RRM_MASK,
9958 op0.as_operand(),
9959 op1.as_operand(),
9960 op2.as_operand(),
9961 &NOREG,
9962 );
9963 }
9964}
9965
9966impl<'a> VpmaxswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9967 fn vpmaxsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9968 self.emit(
9969 VPMAXSW256RRR_MASK,
9970 op0.as_operand(),
9971 op1.as_operand(),
9972 op2.as_operand(),
9973 &NOREG,
9974 );
9975 }
9976}
9977
9978impl<'a> VpmaxswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9979 fn vpmaxsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9980 self.emit(
9981 VPMAXSW256RRM_MASK,
9982 op0.as_operand(),
9983 op1.as_operand(),
9984 op2.as_operand(),
9985 &NOREG,
9986 );
9987 }
9988}
9989
9990impl<'a> VpmaxswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9991 fn vpmaxsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9992 self.emit(
9993 VPMAXSW512RRR_MASK,
9994 op0.as_operand(),
9995 op1.as_operand(),
9996 op2.as_operand(),
9997 &NOREG,
9998 );
9999 }
10000}
10001
10002impl<'a> VpmaxswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10003 fn vpmaxsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10004 self.emit(
10005 VPMAXSW512RRM_MASK,
10006 op0.as_operand(),
10007 op1.as_operand(),
10008 op2.as_operand(),
10009 &NOREG,
10010 );
10011 }
10012}
10013
10014pub trait VpmaxswMaskzEmitter<A, B, C> {
10031 fn vpmaxsw_maskz(&mut self, op0: A, op1: B, op2: C);
10032}
10033
10034impl<'a> VpmaxswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10035 fn vpmaxsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10036 self.emit(
10037 VPMAXSW128RRR_MASKZ,
10038 op0.as_operand(),
10039 op1.as_operand(),
10040 op2.as_operand(),
10041 &NOREG,
10042 );
10043 }
10044}
10045
10046impl<'a> VpmaxswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10047 fn vpmaxsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10048 self.emit(
10049 VPMAXSW128RRM_MASKZ,
10050 op0.as_operand(),
10051 op1.as_operand(),
10052 op2.as_operand(),
10053 &NOREG,
10054 );
10055 }
10056}
10057
10058impl<'a> VpmaxswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10059 fn vpmaxsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10060 self.emit(
10061 VPMAXSW256RRR_MASKZ,
10062 op0.as_operand(),
10063 op1.as_operand(),
10064 op2.as_operand(),
10065 &NOREG,
10066 );
10067 }
10068}
10069
10070impl<'a> VpmaxswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10071 fn vpmaxsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10072 self.emit(
10073 VPMAXSW256RRM_MASKZ,
10074 op0.as_operand(),
10075 op1.as_operand(),
10076 op2.as_operand(),
10077 &NOREG,
10078 );
10079 }
10080}
10081
10082impl<'a> VpmaxswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10083 fn vpmaxsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10084 self.emit(
10085 VPMAXSW512RRR_MASKZ,
10086 op0.as_operand(),
10087 op1.as_operand(),
10088 op2.as_operand(),
10089 &NOREG,
10090 );
10091 }
10092}
10093
10094impl<'a> VpmaxswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10095 fn vpmaxsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10096 self.emit(
10097 VPMAXSW512RRM_MASKZ,
10098 op0.as_operand(),
10099 op1.as_operand(),
10100 op2.as_operand(),
10101 &NOREG,
10102 );
10103 }
10104}
10105
10106pub trait VpmaxubEmitter<A, B, C> {
10123 fn vpmaxub(&mut self, op0: A, op1: B, op2: C);
10124}
10125
10126impl<'a> VpmaxubEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10127 fn vpmaxub(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10128 self.emit(
10129 VPMAXUB128RRR,
10130 op0.as_operand(),
10131 op1.as_operand(),
10132 op2.as_operand(),
10133 &NOREG,
10134 );
10135 }
10136}
10137
10138impl<'a> VpmaxubEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10139 fn vpmaxub(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10140 self.emit(
10141 VPMAXUB128RRM,
10142 op0.as_operand(),
10143 op1.as_operand(),
10144 op2.as_operand(),
10145 &NOREG,
10146 );
10147 }
10148}
10149
10150impl<'a> VpmaxubEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10151 fn vpmaxub(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10152 self.emit(
10153 VPMAXUB256RRR,
10154 op0.as_operand(),
10155 op1.as_operand(),
10156 op2.as_operand(),
10157 &NOREG,
10158 );
10159 }
10160}
10161
10162impl<'a> VpmaxubEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10163 fn vpmaxub(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10164 self.emit(
10165 VPMAXUB256RRM,
10166 op0.as_operand(),
10167 op1.as_operand(),
10168 op2.as_operand(),
10169 &NOREG,
10170 );
10171 }
10172}
10173
10174impl<'a> VpmaxubEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10175 fn vpmaxub(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10176 self.emit(
10177 VPMAXUB512RRR,
10178 op0.as_operand(),
10179 op1.as_operand(),
10180 op2.as_operand(),
10181 &NOREG,
10182 );
10183 }
10184}
10185
10186impl<'a> VpmaxubEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10187 fn vpmaxub(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10188 self.emit(
10189 VPMAXUB512RRM,
10190 op0.as_operand(),
10191 op1.as_operand(),
10192 op2.as_operand(),
10193 &NOREG,
10194 );
10195 }
10196}
10197
10198pub trait VpmaxubMaskEmitter<A, B, C> {
10215 fn vpmaxub_mask(&mut self, op0: A, op1: B, op2: C);
10216}
10217
10218impl<'a> VpmaxubMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10219 fn vpmaxub_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10220 self.emit(
10221 VPMAXUB128RRR_MASK,
10222 op0.as_operand(),
10223 op1.as_operand(),
10224 op2.as_operand(),
10225 &NOREG,
10226 );
10227 }
10228}
10229
10230impl<'a> VpmaxubMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10231 fn vpmaxub_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10232 self.emit(
10233 VPMAXUB128RRM_MASK,
10234 op0.as_operand(),
10235 op1.as_operand(),
10236 op2.as_operand(),
10237 &NOREG,
10238 );
10239 }
10240}
10241
10242impl<'a> VpmaxubMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10243 fn vpmaxub_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10244 self.emit(
10245 VPMAXUB256RRR_MASK,
10246 op0.as_operand(),
10247 op1.as_operand(),
10248 op2.as_operand(),
10249 &NOREG,
10250 );
10251 }
10252}
10253
10254impl<'a> VpmaxubMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10255 fn vpmaxub_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10256 self.emit(
10257 VPMAXUB256RRM_MASK,
10258 op0.as_operand(),
10259 op1.as_operand(),
10260 op2.as_operand(),
10261 &NOREG,
10262 );
10263 }
10264}
10265
10266impl<'a> VpmaxubMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10267 fn vpmaxub_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10268 self.emit(
10269 VPMAXUB512RRR_MASK,
10270 op0.as_operand(),
10271 op1.as_operand(),
10272 op2.as_operand(),
10273 &NOREG,
10274 );
10275 }
10276}
10277
10278impl<'a> VpmaxubMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10279 fn vpmaxub_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10280 self.emit(
10281 VPMAXUB512RRM_MASK,
10282 op0.as_operand(),
10283 op1.as_operand(),
10284 op2.as_operand(),
10285 &NOREG,
10286 );
10287 }
10288}
10289
10290pub trait VpmaxubMaskzEmitter<A, B, C> {
10307 fn vpmaxub_maskz(&mut self, op0: A, op1: B, op2: C);
10308}
10309
10310impl<'a> VpmaxubMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10311 fn vpmaxub_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10312 self.emit(
10313 VPMAXUB128RRR_MASKZ,
10314 op0.as_operand(),
10315 op1.as_operand(),
10316 op2.as_operand(),
10317 &NOREG,
10318 );
10319 }
10320}
10321
10322impl<'a> VpmaxubMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10323 fn vpmaxub_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10324 self.emit(
10325 VPMAXUB128RRM_MASKZ,
10326 op0.as_operand(),
10327 op1.as_operand(),
10328 op2.as_operand(),
10329 &NOREG,
10330 );
10331 }
10332}
10333
10334impl<'a> VpmaxubMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10335 fn vpmaxub_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10336 self.emit(
10337 VPMAXUB256RRR_MASKZ,
10338 op0.as_operand(),
10339 op1.as_operand(),
10340 op2.as_operand(),
10341 &NOREG,
10342 );
10343 }
10344}
10345
10346impl<'a> VpmaxubMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10347 fn vpmaxub_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10348 self.emit(
10349 VPMAXUB256RRM_MASKZ,
10350 op0.as_operand(),
10351 op1.as_operand(),
10352 op2.as_operand(),
10353 &NOREG,
10354 );
10355 }
10356}
10357
10358impl<'a> VpmaxubMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10359 fn vpmaxub_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10360 self.emit(
10361 VPMAXUB512RRR_MASKZ,
10362 op0.as_operand(),
10363 op1.as_operand(),
10364 op2.as_operand(),
10365 &NOREG,
10366 );
10367 }
10368}
10369
10370impl<'a> VpmaxubMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10371 fn vpmaxub_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10372 self.emit(
10373 VPMAXUB512RRM_MASKZ,
10374 op0.as_operand(),
10375 op1.as_operand(),
10376 op2.as_operand(),
10377 &NOREG,
10378 );
10379 }
10380}
10381
10382pub trait VpmaxuwEmitter<A, B, C> {
10399 fn vpmaxuw(&mut self, op0: A, op1: B, op2: C);
10400}
10401
10402impl<'a> VpmaxuwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10403 fn vpmaxuw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10404 self.emit(
10405 VPMAXUW128RRR,
10406 op0.as_operand(),
10407 op1.as_operand(),
10408 op2.as_operand(),
10409 &NOREG,
10410 );
10411 }
10412}
10413
10414impl<'a> VpmaxuwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10415 fn vpmaxuw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10416 self.emit(
10417 VPMAXUW128RRM,
10418 op0.as_operand(),
10419 op1.as_operand(),
10420 op2.as_operand(),
10421 &NOREG,
10422 );
10423 }
10424}
10425
10426impl<'a> VpmaxuwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10427 fn vpmaxuw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10428 self.emit(
10429 VPMAXUW256RRR,
10430 op0.as_operand(),
10431 op1.as_operand(),
10432 op2.as_operand(),
10433 &NOREG,
10434 );
10435 }
10436}
10437
10438impl<'a> VpmaxuwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10439 fn vpmaxuw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10440 self.emit(
10441 VPMAXUW256RRM,
10442 op0.as_operand(),
10443 op1.as_operand(),
10444 op2.as_operand(),
10445 &NOREG,
10446 );
10447 }
10448}
10449
10450impl<'a> VpmaxuwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10451 fn vpmaxuw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10452 self.emit(
10453 VPMAXUW512RRR,
10454 op0.as_operand(),
10455 op1.as_operand(),
10456 op2.as_operand(),
10457 &NOREG,
10458 );
10459 }
10460}
10461
10462impl<'a> VpmaxuwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10463 fn vpmaxuw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10464 self.emit(
10465 VPMAXUW512RRM,
10466 op0.as_operand(),
10467 op1.as_operand(),
10468 op2.as_operand(),
10469 &NOREG,
10470 );
10471 }
10472}
10473
10474pub trait VpmaxuwMaskEmitter<A, B, C> {
10491 fn vpmaxuw_mask(&mut self, op0: A, op1: B, op2: C);
10492}
10493
10494impl<'a> VpmaxuwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10495 fn vpmaxuw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10496 self.emit(
10497 VPMAXUW128RRR_MASK,
10498 op0.as_operand(),
10499 op1.as_operand(),
10500 op2.as_operand(),
10501 &NOREG,
10502 );
10503 }
10504}
10505
10506impl<'a> VpmaxuwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10507 fn vpmaxuw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10508 self.emit(
10509 VPMAXUW128RRM_MASK,
10510 op0.as_operand(),
10511 op1.as_operand(),
10512 op2.as_operand(),
10513 &NOREG,
10514 );
10515 }
10516}
10517
10518impl<'a> VpmaxuwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10519 fn vpmaxuw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10520 self.emit(
10521 VPMAXUW256RRR_MASK,
10522 op0.as_operand(),
10523 op1.as_operand(),
10524 op2.as_operand(),
10525 &NOREG,
10526 );
10527 }
10528}
10529
10530impl<'a> VpmaxuwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10531 fn vpmaxuw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10532 self.emit(
10533 VPMAXUW256RRM_MASK,
10534 op0.as_operand(),
10535 op1.as_operand(),
10536 op2.as_operand(),
10537 &NOREG,
10538 );
10539 }
10540}
10541
10542impl<'a> VpmaxuwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10543 fn vpmaxuw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10544 self.emit(
10545 VPMAXUW512RRR_MASK,
10546 op0.as_operand(),
10547 op1.as_operand(),
10548 op2.as_operand(),
10549 &NOREG,
10550 );
10551 }
10552}
10553
10554impl<'a> VpmaxuwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10555 fn vpmaxuw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10556 self.emit(
10557 VPMAXUW512RRM_MASK,
10558 op0.as_operand(),
10559 op1.as_operand(),
10560 op2.as_operand(),
10561 &NOREG,
10562 );
10563 }
10564}
10565
10566pub trait VpmaxuwMaskzEmitter<A, B, C> {
10583 fn vpmaxuw_maskz(&mut self, op0: A, op1: B, op2: C);
10584}
10585
10586impl<'a> VpmaxuwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10587 fn vpmaxuw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10588 self.emit(
10589 VPMAXUW128RRR_MASKZ,
10590 op0.as_operand(),
10591 op1.as_operand(),
10592 op2.as_operand(),
10593 &NOREG,
10594 );
10595 }
10596}
10597
10598impl<'a> VpmaxuwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10599 fn vpmaxuw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10600 self.emit(
10601 VPMAXUW128RRM_MASKZ,
10602 op0.as_operand(),
10603 op1.as_operand(),
10604 op2.as_operand(),
10605 &NOREG,
10606 );
10607 }
10608}
10609
10610impl<'a> VpmaxuwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10611 fn vpmaxuw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10612 self.emit(
10613 VPMAXUW256RRR_MASKZ,
10614 op0.as_operand(),
10615 op1.as_operand(),
10616 op2.as_operand(),
10617 &NOREG,
10618 );
10619 }
10620}
10621
10622impl<'a> VpmaxuwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10623 fn vpmaxuw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10624 self.emit(
10625 VPMAXUW256RRM_MASKZ,
10626 op0.as_operand(),
10627 op1.as_operand(),
10628 op2.as_operand(),
10629 &NOREG,
10630 );
10631 }
10632}
10633
10634impl<'a> VpmaxuwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10635 fn vpmaxuw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10636 self.emit(
10637 VPMAXUW512RRR_MASKZ,
10638 op0.as_operand(),
10639 op1.as_operand(),
10640 op2.as_operand(),
10641 &NOREG,
10642 );
10643 }
10644}
10645
10646impl<'a> VpmaxuwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10647 fn vpmaxuw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10648 self.emit(
10649 VPMAXUW512RRM_MASKZ,
10650 op0.as_operand(),
10651 op1.as_operand(),
10652 op2.as_operand(),
10653 &NOREG,
10654 );
10655 }
10656}
10657
10658pub trait VpminsbEmitter<A, B, C> {
10675 fn vpminsb(&mut self, op0: A, op1: B, op2: C);
10676}
10677
10678impl<'a> VpminsbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10679 fn vpminsb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10680 self.emit(
10681 VPMINSB128RRR,
10682 op0.as_operand(),
10683 op1.as_operand(),
10684 op2.as_operand(),
10685 &NOREG,
10686 );
10687 }
10688}
10689
10690impl<'a> VpminsbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10691 fn vpminsb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10692 self.emit(
10693 VPMINSB128RRM,
10694 op0.as_operand(),
10695 op1.as_operand(),
10696 op2.as_operand(),
10697 &NOREG,
10698 );
10699 }
10700}
10701
10702impl<'a> VpminsbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10703 fn vpminsb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10704 self.emit(
10705 VPMINSB256RRR,
10706 op0.as_operand(),
10707 op1.as_operand(),
10708 op2.as_operand(),
10709 &NOREG,
10710 );
10711 }
10712}
10713
10714impl<'a> VpminsbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10715 fn vpminsb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10716 self.emit(
10717 VPMINSB256RRM,
10718 op0.as_operand(),
10719 op1.as_operand(),
10720 op2.as_operand(),
10721 &NOREG,
10722 );
10723 }
10724}
10725
10726impl<'a> VpminsbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10727 fn vpminsb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10728 self.emit(
10729 VPMINSB512RRR,
10730 op0.as_operand(),
10731 op1.as_operand(),
10732 op2.as_operand(),
10733 &NOREG,
10734 );
10735 }
10736}
10737
10738impl<'a> VpminsbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10739 fn vpminsb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10740 self.emit(
10741 VPMINSB512RRM,
10742 op0.as_operand(),
10743 op1.as_operand(),
10744 op2.as_operand(),
10745 &NOREG,
10746 );
10747 }
10748}
10749
10750pub trait VpminsbMaskEmitter<A, B, C> {
10767 fn vpminsb_mask(&mut self, op0: A, op1: B, op2: C);
10768}
10769
10770impl<'a> VpminsbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10771 fn vpminsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10772 self.emit(
10773 VPMINSB128RRR_MASK,
10774 op0.as_operand(),
10775 op1.as_operand(),
10776 op2.as_operand(),
10777 &NOREG,
10778 );
10779 }
10780}
10781
10782impl<'a> VpminsbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10783 fn vpminsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10784 self.emit(
10785 VPMINSB128RRM_MASK,
10786 op0.as_operand(),
10787 op1.as_operand(),
10788 op2.as_operand(),
10789 &NOREG,
10790 );
10791 }
10792}
10793
10794impl<'a> VpminsbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10795 fn vpminsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10796 self.emit(
10797 VPMINSB256RRR_MASK,
10798 op0.as_operand(),
10799 op1.as_operand(),
10800 op2.as_operand(),
10801 &NOREG,
10802 );
10803 }
10804}
10805
10806impl<'a> VpminsbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10807 fn vpminsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10808 self.emit(
10809 VPMINSB256RRM_MASK,
10810 op0.as_operand(),
10811 op1.as_operand(),
10812 op2.as_operand(),
10813 &NOREG,
10814 );
10815 }
10816}
10817
10818impl<'a> VpminsbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10819 fn vpminsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10820 self.emit(
10821 VPMINSB512RRR_MASK,
10822 op0.as_operand(),
10823 op1.as_operand(),
10824 op2.as_operand(),
10825 &NOREG,
10826 );
10827 }
10828}
10829
10830impl<'a> VpminsbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10831 fn vpminsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10832 self.emit(
10833 VPMINSB512RRM_MASK,
10834 op0.as_operand(),
10835 op1.as_operand(),
10836 op2.as_operand(),
10837 &NOREG,
10838 );
10839 }
10840}
10841
10842pub trait VpminsbMaskzEmitter<A, B, C> {
10859 fn vpminsb_maskz(&mut self, op0: A, op1: B, op2: C);
10860}
10861
10862impl<'a> VpminsbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10863 fn vpminsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10864 self.emit(
10865 VPMINSB128RRR_MASKZ,
10866 op0.as_operand(),
10867 op1.as_operand(),
10868 op2.as_operand(),
10869 &NOREG,
10870 );
10871 }
10872}
10873
10874impl<'a> VpminsbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10875 fn vpminsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10876 self.emit(
10877 VPMINSB128RRM_MASKZ,
10878 op0.as_operand(),
10879 op1.as_operand(),
10880 op2.as_operand(),
10881 &NOREG,
10882 );
10883 }
10884}
10885
10886impl<'a> VpminsbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10887 fn vpminsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10888 self.emit(
10889 VPMINSB256RRR_MASKZ,
10890 op0.as_operand(),
10891 op1.as_operand(),
10892 op2.as_operand(),
10893 &NOREG,
10894 );
10895 }
10896}
10897
10898impl<'a> VpminsbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10899 fn vpminsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10900 self.emit(
10901 VPMINSB256RRM_MASKZ,
10902 op0.as_operand(),
10903 op1.as_operand(),
10904 op2.as_operand(),
10905 &NOREG,
10906 );
10907 }
10908}
10909
10910impl<'a> VpminsbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
10911 fn vpminsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
10912 self.emit(
10913 VPMINSB512RRR_MASKZ,
10914 op0.as_operand(),
10915 op1.as_operand(),
10916 op2.as_operand(),
10917 &NOREG,
10918 );
10919 }
10920}
10921
10922impl<'a> VpminsbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
10923 fn vpminsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
10924 self.emit(
10925 VPMINSB512RRM_MASKZ,
10926 op0.as_operand(),
10927 op1.as_operand(),
10928 op2.as_operand(),
10929 &NOREG,
10930 );
10931 }
10932}
10933
10934pub trait VpminswEmitter<A, B, C> {
10951 fn vpminsw(&mut self, op0: A, op1: B, op2: C);
10952}
10953
10954impl<'a> VpminswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
10955 fn vpminsw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
10956 self.emit(
10957 VPMINSW128RRR,
10958 op0.as_operand(),
10959 op1.as_operand(),
10960 op2.as_operand(),
10961 &NOREG,
10962 );
10963 }
10964}
10965
10966impl<'a> VpminswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
10967 fn vpminsw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
10968 self.emit(
10969 VPMINSW128RRM,
10970 op0.as_operand(),
10971 op1.as_operand(),
10972 op2.as_operand(),
10973 &NOREG,
10974 );
10975 }
10976}
10977
10978impl<'a> VpminswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
10979 fn vpminsw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
10980 self.emit(
10981 VPMINSW256RRR,
10982 op0.as_operand(),
10983 op1.as_operand(),
10984 op2.as_operand(),
10985 &NOREG,
10986 );
10987 }
10988}
10989
10990impl<'a> VpminswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
10991 fn vpminsw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
10992 self.emit(
10993 VPMINSW256RRM,
10994 op0.as_operand(),
10995 op1.as_operand(),
10996 op2.as_operand(),
10997 &NOREG,
10998 );
10999 }
11000}
11001
11002impl<'a> VpminswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11003 fn vpminsw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11004 self.emit(
11005 VPMINSW512RRR,
11006 op0.as_operand(),
11007 op1.as_operand(),
11008 op2.as_operand(),
11009 &NOREG,
11010 );
11011 }
11012}
11013
11014impl<'a> VpminswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11015 fn vpminsw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11016 self.emit(
11017 VPMINSW512RRM,
11018 op0.as_operand(),
11019 op1.as_operand(),
11020 op2.as_operand(),
11021 &NOREG,
11022 );
11023 }
11024}
11025
11026pub trait VpminswMaskEmitter<A, B, C> {
11043 fn vpminsw_mask(&mut self, op0: A, op1: B, op2: C);
11044}
11045
11046impl<'a> VpminswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11047 fn vpminsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11048 self.emit(
11049 VPMINSW128RRR_MASK,
11050 op0.as_operand(),
11051 op1.as_operand(),
11052 op2.as_operand(),
11053 &NOREG,
11054 );
11055 }
11056}
11057
11058impl<'a> VpminswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11059 fn vpminsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11060 self.emit(
11061 VPMINSW128RRM_MASK,
11062 op0.as_operand(),
11063 op1.as_operand(),
11064 op2.as_operand(),
11065 &NOREG,
11066 );
11067 }
11068}
11069
11070impl<'a> VpminswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11071 fn vpminsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11072 self.emit(
11073 VPMINSW256RRR_MASK,
11074 op0.as_operand(),
11075 op1.as_operand(),
11076 op2.as_operand(),
11077 &NOREG,
11078 );
11079 }
11080}
11081
11082impl<'a> VpminswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11083 fn vpminsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11084 self.emit(
11085 VPMINSW256RRM_MASK,
11086 op0.as_operand(),
11087 op1.as_operand(),
11088 op2.as_operand(),
11089 &NOREG,
11090 );
11091 }
11092}
11093
11094impl<'a> VpminswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11095 fn vpminsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11096 self.emit(
11097 VPMINSW512RRR_MASK,
11098 op0.as_operand(),
11099 op1.as_operand(),
11100 op2.as_operand(),
11101 &NOREG,
11102 );
11103 }
11104}
11105
11106impl<'a> VpminswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11107 fn vpminsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11108 self.emit(
11109 VPMINSW512RRM_MASK,
11110 op0.as_operand(),
11111 op1.as_operand(),
11112 op2.as_operand(),
11113 &NOREG,
11114 );
11115 }
11116}
11117
11118pub trait VpminswMaskzEmitter<A, B, C> {
11135 fn vpminsw_maskz(&mut self, op0: A, op1: B, op2: C);
11136}
11137
11138impl<'a> VpminswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11139 fn vpminsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11140 self.emit(
11141 VPMINSW128RRR_MASKZ,
11142 op0.as_operand(),
11143 op1.as_operand(),
11144 op2.as_operand(),
11145 &NOREG,
11146 );
11147 }
11148}
11149
11150impl<'a> VpminswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11151 fn vpminsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11152 self.emit(
11153 VPMINSW128RRM_MASKZ,
11154 op0.as_operand(),
11155 op1.as_operand(),
11156 op2.as_operand(),
11157 &NOREG,
11158 );
11159 }
11160}
11161
11162impl<'a> VpminswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11163 fn vpminsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11164 self.emit(
11165 VPMINSW256RRR_MASKZ,
11166 op0.as_operand(),
11167 op1.as_operand(),
11168 op2.as_operand(),
11169 &NOREG,
11170 );
11171 }
11172}
11173
11174impl<'a> VpminswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11175 fn vpminsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11176 self.emit(
11177 VPMINSW256RRM_MASKZ,
11178 op0.as_operand(),
11179 op1.as_operand(),
11180 op2.as_operand(),
11181 &NOREG,
11182 );
11183 }
11184}
11185
11186impl<'a> VpminswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11187 fn vpminsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11188 self.emit(
11189 VPMINSW512RRR_MASKZ,
11190 op0.as_operand(),
11191 op1.as_operand(),
11192 op2.as_operand(),
11193 &NOREG,
11194 );
11195 }
11196}
11197
11198impl<'a> VpminswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11199 fn vpminsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11200 self.emit(
11201 VPMINSW512RRM_MASKZ,
11202 op0.as_operand(),
11203 op1.as_operand(),
11204 op2.as_operand(),
11205 &NOREG,
11206 );
11207 }
11208}
11209
11210pub trait VpminubEmitter<A, B, C> {
11227 fn vpminub(&mut self, op0: A, op1: B, op2: C);
11228}
11229
11230impl<'a> VpminubEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11231 fn vpminub(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11232 self.emit(
11233 VPMINUB128RRR,
11234 op0.as_operand(),
11235 op1.as_operand(),
11236 op2.as_operand(),
11237 &NOREG,
11238 );
11239 }
11240}
11241
11242impl<'a> VpminubEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11243 fn vpminub(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11244 self.emit(
11245 VPMINUB128RRM,
11246 op0.as_operand(),
11247 op1.as_operand(),
11248 op2.as_operand(),
11249 &NOREG,
11250 );
11251 }
11252}
11253
11254impl<'a> VpminubEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11255 fn vpminub(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11256 self.emit(
11257 VPMINUB256RRR,
11258 op0.as_operand(),
11259 op1.as_operand(),
11260 op2.as_operand(),
11261 &NOREG,
11262 );
11263 }
11264}
11265
11266impl<'a> VpminubEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11267 fn vpminub(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11268 self.emit(
11269 VPMINUB256RRM,
11270 op0.as_operand(),
11271 op1.as_operand(),
11272 op2.as_operand(),
11273 &NOREG,
11274 );
11275 }
11276}
11277
11278impl<'a> VpminubEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11279 fn vpminub(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11280 self.emit(
11281 VPMINUB512RRR,
11282 op0.as_operand(),
11283 op1.as_operand(),
11284 op2.as_operand(),
11285 &NOREG,
11286 );
11287 }
11288}
11289
11290impl<'a> VpminubEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11291 fn vpminub(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11292 self.emit(
11293 VPMINUB512RRM,
11294 op0.as_operand(),
11295 op1.as_operand(),
11296 op2.as_operand(),
11297 &NOREG,
11298 );
11299 }
11300}
11301
11302pub trait VpminubMaskEmitter<A, B, C> {
11319 fn vpminub_mask(&mut self, op0: A, op1: B, op2: C);
11320}
11321
11322impl<'a> VpminubMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11323 fn vpminub_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11324 self.emit(
11325 VPMINUB128RRR_MASK,
11326 op0.as_operand(),
11327 op1.as_operand(),
11328 op2.as_operand(),
11329 &NOREG,
11330 );
11331 }
11332}
11333
11334impl<'a> VpminubMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11335 fn vpminub_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11336 self.emit(
11337 VPMINUB128RRM_MASK,
11338 op0.as_operand(),
11339 op1.as_operand(),
11340 op2.as_operand(),
11341 &NOREG,
11342 );
11343 }
11344}
11345
11346impl<'a> VpminubMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11347 fn vpminub_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11348 self.emit(
11349 VPMINUB256RRR_MASK,
11350 op0.as_operand(),
11351 op1.as_operand(),
11352 op2.as_operand(),
11353 &NOREG,
11354 );
11355 }
11356}
11357
11358impl<'a> VpminubMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11359 fn vpminub_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11360 self.emit(
11361 VPMINUB256RRM_MASK,
11362 op0.as_operand(),
11363 op1.as_operand(),
11364 op2.as_operand(),
11365 &NOREG,
11366 );
11367 }
11368}
11369
11370impl<'a> VpminubMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11371 fn vpminub_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11372 self.emit(
11373 VPMINUB512RRR_MASK,
11374 op0.as_operand(),
11375 op1.as_operand(),
11376 op2.as_operand(),
11377 &NOREG,
11378 );
11379 }
11380}
11381
11382impl<'a> VpminubMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11383 fn vpminub_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11384 self.emit(
11385 VPMINUB512RRM_MASK,
11386 op0.as_operand(),
11387 op1.as_operand(),
11388 op2.as_operand(),
11389 &NOREG,
11390 );
11391 }
11392}
11393
11394pub trait VpminubMaskzEmitter<A, B, C> {
11411 fn vpminub_maskz(&mut self, op0: A, op1: B, op2: C);
11412}
11413
11414impl<'a> VpminubMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11415 fn vpminub_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11416 self.emit(
11417 VPMINUB128RRR_MASKZ,
11418 op0.as_operand(),
11419 op1.as_operand(),
11420 op2.as_operand(),
11421 &NOREG,
11422 );
11423 }
11424}
11425
11426impl<'a> VpminubMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11427 fn vpminub_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11428 self.emit(
11429 VPMINUB128RRM_MASKZ,
11430 op0.as_operand(),
11431 op1.as_operand(),
11432 op2.as_operand(),
11433 &NOREG,
11434 );
11435 }
11436}
11437
11438impl<'a> VpminubMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11439 fn vpminub_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11440 self.emit(
11441 VPMINUB256RRR_MASKZ,
11442 op0.as_operand(),
11443 op1.as_operand(),
11444 op2.as_operand(),
11445 &NOREG,
11446 );
11447 }
11448}
11449
11450impl<'a> VpminubMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11451 fn vpminub_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11452 self.emit(
11453 VPMINUB256RRM_MASKZ,
11454 op0.as_operand(),
11455 op1.as_operand(),
11456 op2.as_operand(),
11457 &NOREG,
11458 );
11459 }
11460}
11461
11462impl<'a> VpminubMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11463 fn vpminub_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11464 self.emit(
11465 VPMINUB512RRR_MASKZ,
11466 op0.as_operand(),
11467 op1.as_operand(),
11468 op2.as_operand(),
11469 &NOREG,
11470 );
11471 }
11472}
11473
11474impl<'a> VpminubMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11475 fn vpminub_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11476 self.emit(
11477 VPMINUB512RRM_MASKZ,
11478 op0.as_operand(),
11479 op1.as_operand(),
11480 op2.as_operand(),
11481 &NOREG,
11482 );
11483 }
11484}
11485
11486pub trait VpminuwEmitter<A, B, C> {
11503 fn vpminuw(&mut self, op0: A, op1: B, op2: C);
11504}
11505
11506impl<'a> VpminuwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11507 fn vpminuw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11508 self.emit(
11509 VPMINUW128RRR,
11510 op0.as_operand(),
11511 op1.as_operand(),
11512 op2.as_operand(),
11513 &NOREG,
11514 );
11515 }
11516}
11517
11518impl<'a> VpminuwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11519 fn vpminuw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11520 self.emit(
11521 VPMINUW128RRM,
11522 op0.as_operand(),
11523 op1.as_operand(),
11524 op2.as_operand(),
11525 &NOREG,
11526 );
11527 }
11528}
11529
11530impl<'a> VpminuwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11531 fn vpminuw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11532 self.emit(
11533 VPMINUW256RRR,
11534 op0.as_operand(),
11535 op1.as_operand(),
11536 op2.as_operand(),
11537 &NOREG,
11538 );
11539 }
11540}
11541
11542impl<'a> VpminuwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11543 fn vpminuw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11544 self.emit(
11545 VPMINUW256RRM,
11546 op0.as_operand(),
11547 op1.as_operand(),
11548 op2.as_operand(),
11549 &NOREG,
11550 );
11551 }
11552}
11553
11554impl<'a> VpminuwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11555 fn vpminuw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11556 self.emit(
11557 VPMINUW512RRR,
11558 op0.as_operand(),
11559 op1.as_operand(),
11560 op2.as_operand(),
11561 &NOREG,
11562 );
11563 }
11564}
11565
11566impl<'a> VpminuwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11567 fn vpminuw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11568 self.emit(
11569 VPMINUW512RRM,
11570 op0.as_operand(),
11571 op1.as_operand(),
11572 op2.as_operand(),
11573 &NOREG,
11574 );
11575 }
11576}
11577
11578pub trait VpminuwMaskEmitter<A, B, C> {
11595 fn vpminuw_mask(&mut self, op0: A, op1: B, op2: C);
11596}
11597
11598impl<'a> VpminuwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11599 fn vpminuw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11600 self.emit(
11601 VPMINUW128RRR_MASK,
11602 op0.as_operand(),
11603 op1.as_operand(),
11604 op2.as_operand(),
11605 &NOREG,
11606 );
11607 }
11608}
11609
11610impl<'a> VpminuwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11611 fn vpminuw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11612 self.emit(
11613 VPMINUW128RRM_MASK,
11614 op0.as_operand(),
11615 op1.as_operand(),
11616 op2.as_operand(),
11617 &NOREG,
11618 );
11619 }
11620}
11621
11622impl<'a> VpminuwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11623 fn vpminuw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11624 self.emit(
11625 VPMINUW256RRR_MASK,
11626 op0.as_operand(),
11627 op1.as_operand(),
11628 op2.as_operand(),
11629 &NOREG,
11630 );
11631 }
11632}
11633
11634impl<'a> VpminuwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11635 fn vpminuw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11636 self.emit(
11637 VPMINUW256RRM_MASK,
11638 op0.as_operand(),
11639 op1.as_operand(),
11640 op2.as_operand(),
11641 &NOREG,
11642 );
11643 }
11644}
11645
11646impl<'a> VpminuwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11647 fn vpminuw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11648 self.emit(
11649 VPMINUW512RRR_MASK,
11650 op0.as_operand(),
11651 op1.as_operand(),
11652 op2.as_operand(),
11653 &NOREG,
11654 );
11655 }
11656}
11657
11658impl<'a> VpminuwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11659 fn vpminuw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11660 self.emit(
11661 VPMINUW512RRM_MASK,
11662 op0.as_operand(),
11663 op1.as_operand(),
11664 op2.as_operand(),
11665 &NOREG,
11666 );
11667 }
11668}
11669
11670pub trait VpminuwMaskzEmitter<A, B, C> {
11687 fn vpminuw_maskz(&mut self, op0: A, op1: B, op2: C);
11688}
11689
11690impl<'a> VpminuwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
11691 fn vpminuw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
11692 self.emit(
11693 VPMINUW128RRR_MASKZ,
11694 op0.as_operand(),
11695 op1.as_operand(),
11696 op2.as_operand(),
11697 &NOREG,
11698 );
11699 }
11700}
11701
11702impl<'a> VpminuwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
11703 fn vpminuw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
11704 self.emit(
11705 VPMINUW128RRM_MASKZ,
11706 op0.as_operand(),
11707 op1.as_operand(),
11708 op2.as_operand(),
11709 &NOREG,
11710 );
11711 }
11712}
11713
11714impl<'a> VpminuwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
11715 fn vpminuw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
11716 self.emit(
11717 VPMINUW256RRR_MASKZ,
11718 op0.as_operand(),
11719 op1.as_operand(),
11720 op2.as_operand(),
11721 &NOREG,
11722 );
11723 }
11724}
11725
11726impl<'a> VpminuwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
11727 fn vpminuw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
11728 self.emit(
11729 VPMINUW256RRM_MASKZ,
11730 op0.as_operand(),
11731 op1.as_operand(),
11732 op2.as_operand(),
11733 &NOREG,
11734 );
11735 }
11736}
11737
11738impl<'a> VpminuwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
11739 fn vpminuw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
11740 self.emit(
11741 VPMINUW512RRR_MASKZ,
11742 op0.as_operand(),
11743 op1.as_operand(),
11744 op2.as_operand(),
11745 &NOREG,
11746 );
11747 }
11748}
11749
11750impl<'a> VpminuwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
11751 fn vpminuw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
11752 self.emit(
11753 VPMINUW512RRM_MASKZ,
11754 op0.as_operand(),
11755 op1.as_operand(),
11756 op2.as_operand(),
11757 &NOREG,
11758 );
11759 }
11760}
11761
11762pub trait Vpmovb2mEmitter<A, B> {
11776 fn vpmovb2m(&mut self, op0: A, op1: B);
11777}
11778
11779impl<'a> Vpmovb2mEmitter<KReg, Xmm> for Assembler<'a> {
11780 fn vpmovb2m(&mut self, op0: KReg, op1: Xmm) {
11781 self.emit(
11782 VPMOVB2M128KR,
11783 op0.as_operand(),
11784 op1.as_operand(),
11785 &NOREG,
11786 &NOREG,
11787 );
11788 }
11789}
11790
11791impl<'a> Vpmovb2mEmitter<KReg, Ymm> for Assembler<'a> {
11792 fn vpmovb2m(&mut self, op0: KReg, op1: Ymm) {
11793 self.emit(
11794 VPMOVB2M256KR,
11795 op0.as_operand(),
11796 op1.as_operand(),
11797 &NOREG,
11798 &NOREG,
11799 );
11800 }
11801}
11802
11803impl<'a> Vpmovb2mEmitter<KReg, Zmm> for Assembler<'a> {
11804 fn vpmovb2m(&mut self, op0: KReg, op1: Zmm) {
11805 self.emit(
11806 VPMOVB2M512KR,
11807 op0.as_operand(),
11808 op1.as_operand(),
11809 &NOREG,
11810 &NOREG,
11811 );
11812 }
11813}
11814
11815pub trait Vpmovm2bEmitter<A, B> {
11829 fn vpmovm2b(&mut self, op0: A, op1: B);
11830}
11831
11832impl<'a> Vpmovm2bEmitter<Xmm, KReg> for Assembler<'a> {
11833 fn vpmovm2b(&mut self, op0: Xmm, op1: KReg) {
11834 self.emit(
11835 VPMOVM2B128RK,
11836 op0.as_operand(),
11837 op1.as_operand(),
11838 &NOREG,
11839 &NOREG,
11840 );
11841 }
11842}
11843
11844impl<'a> Vpmovm2bEmitter<Ymm, KReg> for Assembler<'a> {
11845 fn vpmovm2b(&mut self, op0: Ymm, op1: KReg) {
11846 self.emit(
11847 VPMOVM2B256RK,
11848 op0.as_operand(),
11849 op1.as_operand(),
11850 &NOREG,
11851 &NOREG,
11852 );
11853 }
11854}
11855
11856impl<'a> Vpmovm2bEmitter<Zmm, KReg> for Assembler<'a> {
11857 fn vpmovm2b(&mut self, op0: Zmm, op1: KReg) {
11858 self.emit(
11859 VPMOVM2B512RK,
11860 op0.as_operand(),
11861 op1.as_operand(),
11862 &NOREG,
11863 &NOREG,
11864 );
11865 }
11866}
11867
11868pub trait Vpmovm2wEmitter<A, B> {
11882 fn vpmovm2w(&mut self, op0: A, op1: B);
11883}
11884
11885impl<'a> Vpmovm2wEmitter<Xmm, KReg> for Assembler<'a> {
11886 fn vpmovm2w(&mut self, op0: Xmm, op1: KReg) {
11887 self.emit(
11888 VPMOVM2W128RK,
11889 op0.as_operand(),
11890 op1.as_operand(),
11891 &NOREG,
11892 &NOREG,
11893 );
11894 }
11895}
11896
11897impl<'a> Vpmovm2wEmitter<Ymm, KReg> for Assembler<'a> {
11898 fn vpmovm2w(&mut self, op0: Ymm, op1: KReg) {
11899 self.emit(
11900 VPMOVM2W256RK,
11901 op0.as_operand(),
11902 op1.as_operand(),
11903 &NOREG,
11904 &NOREG,
11905 );
11906 }
11907}
11908
11909impl<'a> Vpmovm2wEmitter<Zmm, KReg> for Assembler<'a> {
11910 fn vpmovm2w(&mut self, op0: Zmm, op1: KReg) {
11911 self.emit(
11912 VPMOVM2W512RK,
11913 op0.as_operand(),
11914 op1.as_operand(),
11915 &NOREG,
11916 &NOREG,
11917 );
11918 }
11919}
11920
11921pub trait VpmovswbEmitter<A, B> {
11938 fn vpmovswb(&mut self, op0: A, op1: B);
11939}
11940
11941impl<'a> VpmovswbEmitter<Xmm, Xmm> for Assembler<'a> {
11942 fn vpmovswb(&mut self, op0: Xmm, op1: Xmm) {
11943 self.emit(
11944 VPMOVSWB128RR,
11945 op0.as_operand(),
11946 op1.as_operand(),
11947 &NOREG,
11948 &NOREG,
11949 );
11950 }
11951}
11952
11953impl<'a> VpmovswbEmitter<Mem, Xmm> for Assembler<'a> {
11954 fn vpmovswb(&mut self, op0: Mem, op1: Xmm) {
11955 self.emit(
11956 VPMOVSWB128MR,
11957 op0.as_operand(),
11958 op1.as_operand(),
11959 &NOREG,
11960 &NOREG,
11961 );
11962 }
11963}
11964
11965impl<'a> VpmovswbEmitter<Xmm, Ymm> for Assembler<'a> {
11966 fn vpmovswb(&mut self, op0: Xmm, op1: Ymm) {
11967 self.emit(
11968 VPMOVSWB256RR,
11969 op0.as_operand(),
11970 op1.as_operand(),
11971 &NOREG,
11972 &NOREG,
11973 );
11974 }
11975}
11976
11977impl<'a> VpmovswbEmitter<Mem, Ymm> for Assembler<'a> {
11978 fn vpmovswb(&mut self, op0: Mem, op1: Ymm) {
11979 self.emit(
11980 VPMOVSWB256MR,
11981 op0.as_operand(),
11982 op1.as_operand(),
11983 &NOREG,
11984 &NOREG,
11985 );
11986 }
11987}
11988
11989impl<'a> VpmovswbEmitter<Ymm, Zmm> for Assembler<'a> {
11990 fn vpmovswb(&mut self, op0: Ymm, op1: Zmm) {
11991 self.emit(
11992 VPMOVSWB512RR,
11993 op0.as_operand(),
11994 op1.as_operand(),
11995 &NOREG,
11996 &NOREG,
11997 );
11998 }
11999}
12000
12001impl<'a> VpmovswbEmitter<Mem, Zmm> for Assembler<'a> {
12002 fn vpmovswb(&mut self, op0: Mem, op1: Zmm) {
12003 self.emit(
12004 VPMOVSWB512MR,
12005 op0.as_operand(),
12006 op1.as_operand(),
12007 &NOREG,
12008 &NOREG,
12009 );
12010 }
12011}
12012
12013pub trait VpmovswbMaskEmitter<A, B> {
12030 fn vpmovswb_mask(&mut self, op0: A, op1: B);
12031}
12032
12033impl<'a> VpmovswbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
12034 fn vpmovswb_mask(&mut self, op0: Xmm, op1: Xmm) {
12035 self.emit(
12036 VPMOVSWB128RR_MASK,
12037 op0.as_operand(),
12038 op1.as_operand(),
12039 &NOREG,
12040 &NOREG,
12041 );
12042 }
12043}
12044
12045impl<'a> VpmovswbMaskEmitter<Mem, Xmm> for Assembler<'a> {
12046 fn vpmovswb_mask(&mut self, op0: Mem, op1: Xmm) {
12047 self.emit(
12048 VPMOVSWB128MR_MASK,
12049 op0.as_operand(),
12050 op1.as_operand(),
12051 &NOREG,
12052 &NOREG,
12053 );
12054 }
12055}
12056
12057impl<'a> VpmovswbMaskEmitter<Xmm, Ymm> for Assembler<'a> {
12058 fn vpmovswb_mask(&mut self, op0: Xmm, op1: Ymm) {
12059 self.emit(
12060 VPMOVSWB256RR_MASK,
12061 op0.as_operand(),
12062 op1.as_operand(),
12063 &NOREG,
12064 &NOREG,
12065 );
12066 }
12067}
12068
12069impl<'a> VpmovswbMaskEmitter<Mem, Ymm> for Assembler<'a> {
12070 fn vpmovswb_mask(&mut self, op0: Mem, op1: Ymm) {
12071 self.emit(
12072 VPMOVSWB256MR_MASK,
12073 op0.as_operand(),
12074 op1.as_operand(),
12075 &NOREG,
12076 &NOREG,
12077 );
12078 }
12079}
12080
12081impl<'a> VpmovswbMaskEmitter<Ymm, Zmm> for Assembler<'a> {
12082 fn vpmovswb_mask(&mut self, op0: Ymm, op1: Zmm) {
12083 self.emit(
12084 VPMOVSWB512RR_MASK,
12085 op0.as_operand(),
12086 op1.as_operand(),
12087 &NOREG,
12088 &NOREG,
12089 );
12090 }
12091}
12092
12093impl<'a> VpmovswbMaskEmitter<Mem, Zmm> for Assembler<'a> {
12094 fn vpmovswb_mask(&mut self, op0: Mem, op1: Zmm) {
12095 self.emit(
12096 VPMOVSWB512MR_MASK,
12097 op0.as_operand(),
12098 op1.as_operand(),
12099 &NOREG,
12100 &NOREG,
12101 );
12102 }
12103}
12104
12105pub trait VpmovswbMaskzEmitter<A, B> {
12119 fn vpmovswb_maskz(&mut self, op0: A, op1: B);
12120}
12121
12122impl<'a> VpmovswbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
12123 fn vpmovswb_maskz(&mut self, op0: Xmm, op1: Xmm) {
12124 self.emit(
12125 VPMOVSWB128RR_MASKZ,
12126 op0.as_operand(),
12127 op1.as_operand(),
12128 &NOREG,
12129 &NOREG,
12130 );
12131 }
12132}
12133
12134impl<'a> VpmovswbMaskzEmitter<Xmm, Ymm> for Assembler<'a> {
12135 fn vpmovswb_maskz(&mut self, op0: Xmm, op1: Ymm) {
12136 self.emit(
12137 VPMOVSWB256RR_MASKZ,
12138 op0.as_operand(),
12139 op1.as_operand(),
12140 &NOREG,
12141 &NOREG,
12142 );
12143 }
12144}
12145
12146impl<'a> VpmovswbMaskzEmitter<Ymm, Zmm> for Assembler<'a> {
12147 fn vpmovswb_maskz(&mut self, op0: Ymm, op1: Zmm) {
12148 self.emit(
12149 VPMOVSWB512RR_MASKZ,
12150 op0.as_operand(),
12151 op1.as_operand(),
12152 &NOREG,
12153 &NOREG,
12154 );
12155 }
12156}
12157
12158pub trait VpmovuswbEmitter<A, B> {
12175 fn vpmovuswb(&mut self, op0: A, op1: B);
12176}
12177
12178impl<'a> VpmovuswbEmitter<Xmm, Xmm> for Assembler<'a> {
12179 fn vpmovuswb(&mut self, op0: Xmm, op1: Xmm) {
12180 self.emit(
12181 VPMOVUSWB128RR,
12182 op0.as_operand(),
12183 op1.as_operand(),
12184 &NOREG,
12185 &NOREG,
12186 );
12187 }
12188}
12189
12190impl<'a> VpmovuswbEmitter<Mem, Xmm> for Assembler<'a> {
12191 fn vpmovuswb(&mut self, op0: Mem, op1: Xmm) {
12192 self.emit(
12193 VPMOVUSWB128MR,
12194 op0.as_operand(),
12195 op1.as_operand(),
12196 &NOREG,
12197 &NOREG,
12198 );
12199 }
12200}
12201
12202impl<'a> VpmovuswbEmitter<Xmm, Ymm> for Assembler<'a> {
12203 fn vpmovuswb(&mut self, op0: Xmm, op1: Ymm) {
12204 self.emit(
12205 VPMOVUSWB256RR,
12206 op0.as_operand(),
12207 op1.as_operand(),
12208 &NOREG,
12209 &NOREG,
12210 );
12211 }
12212}
12213
12214impl<'a> VpmovuswbEmitter<Mem, Ymm> for Assembler<'a> {
12215 fn vpmovuswb(&mut self, op0: Mem, op1: Ymm) {
12216 self.emit(
12217 VPMOVUSWB256MR,
12218 op0.as_operand(),
12219 op1.as_operand(),
12220 &NOREG,
12221 &NOREG,
12222 );
12223 }
12224}
12225
12226impl<'a> VpmovuswbEmitter<Ymm, Zmm> for Assembler<'a> {
12227 fn vpmovuswb(&mut self, op0: Ymm, op1: Zmm) {
12228 self.emit(
12229 VPMOVUSWB512RR,
12230 op0.as_operand(),
12231 op1.as_operand(),
12232 &NOREG,
12233 &NOREG,
12234 );
12235 }
12236}
12237
12238impl<'a> VpmovuswbEmitter<Mem, Zmm> for Assembler<'a> {
12239 fn vpmovuswb(&mut self, op0: Mem, op1: Zmm) {
12240 self.emit(
12241 VPMOVUSWB512MR,
12242 op0.as_operand(),
12243 op1.as_operand(),
12244 &NOREG,
12245 &NOREG,
12246 );
12247 }
12248}
12249
12250pub trait VpmovuswbMaskEmitter<A, B> {
12267 fn vpmovuswb_mask(&mut self, op0: A, op1: B);
12268}
12269
12270impl<'a> VpmovuswbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
12271 fn vpmovuswb_mask(&mut self, op0: Xmm, op1: Xmm) {
12272 self.emit(
12273 VPMOVUSWB128RR_MASK,
12274 op0.as_operand(),
12275 op1.as_operand(),
12276 &NOREG,
12277 &NOREG,
12278 );
12279 }
12280}
12281
12282impl<'a> VpmovuswbMaskEmitter<Mem, Xmm> for Assembler<'a> {
12283 fn vpmovuswb_mask(&mut self, op0: Mem, op1: Xmm) {
12284 self.emit(
12285 VPMOVUSWB128MR_MASK,
12286 op0.as_operand(),
12287 op1.as_operand(),
12288 &NOREG,
12289 &NOREG,
12290 );
12291 }
12292}
12293
12294impl<'a> VpmovuswbMaskEmitter<Xmm, Ymm> for Assembler<'a> {
12295 fn vpmovuswb_mask(&mut self, op0: Xmm, op1: Ymm) {
12296 self.emit(
12297 VPMOVUSWB256RR_MASK,
12298 op0.as_operand(),
12299 op1.as_operand(),
12300 &NOREG,
12301 &NOREG,
12302 );
12303 }
12304}
12305
12306impl<'a> VpmovuswbMaskEmitter<Mem, Ymm> for Assembler<'a> {
12307 fn vpmovuswb_mask(&mut self, op0: Mem, op1: Ymm) {
12308 self.emit(
12309 VPMOVUSWB256MR_MASK,
12310 op0.as_operand(),
12311 op1.as_operand(),
12312 &NOREG,
12313 &NOREG,
12314 );
12315 }
12316}
12317
12318impl<'a> VpmovuswbMaskEmitter<Ymm, Zmm> for Assembler<'a> {
12319 fn vpmovuswb_mask(&mut self, op0: Ymm, op1: Zmm) {
12320 self.emit(
12321 VPMOVUSWB512RR_MASK,
12322 op0.as_operand(),
12323 op1.as_operand(),
12324 &NOREG,
12325 &NOREG,
12326 );
12327 }
12328}
12329
12330impl<'a> VpmovuswbMaskEmitter<Mem, Zmm> for Assembler<'a> {
12331 fn vpmovuswb_mask(&mut self, op0: Mem, op1: Zmm) {
12332 self.emit(
12333 VPMOVUSWB512MR_MASK,
12334 op0.as_operand(),
12335 op1.as_operand(),
12336 &NOREG,
12337 &NOREG,
12338 );
12339 }
12340}
12341
12342pub trait VpmovuswbMaskzEmitter<A, B> {
12356 fn vpmovuswb_maskz(&mut self, op0: A, op1: B);
12357}
12358
12359impl<'a> VpmovuswbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
12360 fn vpmovuswb_maskz(&mut self, op0: Xmm, op1: Xmm) {
12361 self.emit(
12362 VPMOVUSWB128RR_MASKZ,
12363 op0.as_operand(),
12364 op1.as_operand(),
12365 &NOREG,
12366 &NOREG,
12367 );
12368 }
12369}
12370
12371impl<'a> VpmovuswbMaskzEmitter<Xmm, Ymm> for Assembler<'a> {
12372 fn vpmovuswb_maskz(&mut self, op0: Xmm, op1: Ymm) {
12373 self.emit(
12374 VPMOVUSWB256RR_MASKZ,
12375 op0.as_operand(),
12376 op1.as_operand(),
12377 &NOREG,
12378 &NOREG,
12379 );
12380 }
12381}
12382
12383impl<'a> VpmovuswbMaskzEmitter<Ymm, Zmm> for Assembler<'a> {
12384 fn vpmovuswb_maskz(&mut self, op0: Ymm, op1: Zmm) {
12385 self.emit(
12386 VPMOVUSWB512RR_MASKZ,
12387 op0.as_operand(),
12388 op1.as_operand(),
12389 &NOREG,
12390 &NOREG,
12391 );
12392 }
12393}
12394
12395pub trait Vpmovw2mEmitter<A, B> {
12409 fn vpmovw2m(&mut self, op0: A, op1: B);
12410}
12411
12412impl<'a> Vpmovw2mEmitter<KReg, Xmm> for Assembler<'a> {
12413 fn vpmovw2m(&mut self, op0: KReg, op1: Xmm) {
12414 self.emit(
12415 VPMOVW2M128KR,
12416 op0.as_operand(),
12417 op1.as_operand(),
12418 &NOREG,
12419 &NOREG,
12420 );
12421 }
12422}
12423
12424impl<'a> Vpmovw2mEmitter<KReg, Ymm> for Assembler<'a> {
12425 fn vpmovw2m(&mut self, op0: KReg, op1: Ymm) {
12426 self.emit(
12427 VPMOVW2M256KR,
12428 op0.as_operand(),
12429 op1.as_operand(),
12430 &NOREG,
12431 &NOREG,
12432 );
12433 }
12434}
12435
12436impl<'a> Vpmovw2mEmitter<KReg, Zmm> for Assembler<'a> {
12437 fn vpmovw2m(&mut self, op0: KReg, op1: Zmm) {
12438 self.emit(
12439 VPMOVW2M512KR,
12440 op0.as_operand(),
12441 op1.as_operand(),
12442 &NOREG,
12443 &NOREG,
12444 );
12445 }
12446}
12447
12448pub trait VpmovwbEmitter<A, B> {
12465 fn vpmovwb(&mut self, op0: A, op1: B);
12466}
12467
12468impl<'a> VpmovwbEmitter<Xmm, Xmm> for Assembler<'a> {
12469 fn vpmovwb(&mut self, op0: Xmm, op1: Xmm) {
12470 self.emit(
12471 VPMOVWB128RR,
12472 op0.as_operand(),
12473 op1.as_operand(),
12474 &NOREG,
12475 &NOREG,
12476 );
12477 }
12478}
12479
12480impl<'a> VpmovwbEmitter<Mem, Xmm> for Assembler<'a> {
12481 fn vpmovwb(&mut self, op0: Mem, op1: Xmm) {
12482 self.emit(
12483 VPMOVWB128MR,
12484 op0.as_operand(),
12485 op1.as_operand(),
12486 &NOREG,
12487 &NOREG,
12488 );
12489 }
12490}
12491
12492impl<'a> VpmovwbEmitter<Xmm, Ymm> for Assembler<'a> {
12493 fn vpmovwb(&mut self, op0: Xmm, op1: Ymm) {
12494 self.emit(
12495 VPMOVWB256RR,
12496 op0.as_operand(),
12497 op1.as_operand(),
12498 &NOREG,
12499 &NOREG,
12500 );
12501 }
12502}
12503
12504impl<'a> VpmovwbEmitter<Mem, Ymm> for Assembler<'a> {
12505 fn vpmovwb(&mut self, op0: Mem, op1: Ymm) {
12506 self.emit(
12507 VPMOVWB256MR,
12508 op0.as_operand(),
12509 op1.as_operand(),
12510 &NOREG,
12511 &NOREG,
12512 );
12513 }
12514}
12515
12516impl<'a> VpmovwbEmitter<Ymm, Zmm> for Assembler<'a> {
12517 fn vpmovwb(&mut self, op0: Ymm, op1: Zmm) {
12518 self.emit(
12519 VPMOVWB512RR,
12520 op0.as_operand(),
12521 op1.as_operand(),
12522 &NOREG,
12523 &NOREG,
12524 );
12525 }
12526}
12527
12528impl<'a> VpmovwbEmitter<Mem, Zmm> for Assembler<'a> {
12529 fn vpmovwb(&mut self, op0: Mem, op1: Zmm) {
12530 self.emit(
12531 VPMOVWB512MR,
12532 op0.as_operand(),
12533 op1.as_operand(),
12534 &NOREG,
12535 &NOREG,
12536 );
12537 }
12538}
12539
12540pub trait VpmovwbMaskEmitter<A, B> {
12557 fn vpmovwb_mask(&mut self, op0: A, op1: B);
12558}
12559
12560impl<'a> VpmovwbMaskEmitter<Xmm, Xmm> for Assembler<'a> {
12561 fn vpmovwb_mask(&mut self, op0: Xmm, op1: Xmm) {
12562 self.emit(
12563 VPMOVWB128RR_MASK,
12564 op0.as_operand(),
12565 op1.as_operand(),
12566 &NOREG,
12567 &NOREG,
12568 );
12569 }
12570}
12571
12572impl<'a> VpmovwbMaskEmitter<Mem, Xmm> for Assembler<'a> {
12573 fn vpmovwb_mask(&mut self, op0: Mem, op1: Xmm) {
12574 self.emit(
12575 VPMOVWB128MR_MASK,
12576 op0.as_operand(),
12577 op1.as_operand(),
12578 &NOREG,
12579 &NOREG,
12580 );
12581 }
12582}
12583
12584impl<'a> VpmovwbMaskEmitter<Xmm, Ymm> for Assembler<'a> {
12585 fn vpmovwb_mask(&mut self, op0: Xmm, op1: Ymm) {
12586 self.emit(
12587 VPMOVWB256RR_MASK,
12588 op0.as_operand(),
12589 op1.as_operand(),
12590 &NOREG,
12591 &NOREG,
12592 );
12593 }
12594}
12595
12596impl<'a> VpmovwbMaskEmitter<Mem, Ymm> for Assembler<'a> {
12597 fn vpmovwb_mask(&mut self, op0: Mem, op1: Ymm) {
12598 self.emit(
12599 VPMOVWB256MR_MASK,
12600 op0.as_operand(),
12601 op1.as_operand(),
12602 &NOREG,
12603 &NOREG,
12604 );
12605 }
12606}
12607
12608impl<'a> VpmovwbMaskEmitter<Ymm, Zmm> for Assembler<'a> {
12609 fn vpmovwb_mask(&mut self, op0: Ymm, op1: Zmm) {
12610 self.emit(
12611 VPMOVWB512RR_MASK,
12612 op0.as_operand(),
12613 op1.as_operand(),
12614 &NOREG,
12615 &NOREG,
12616 );
12617 }
12618}
12619
12620impl<'a> VpmovwbMaskEmitter<Mem, Zmm> for Assembler<'a> {
12621 fn vpmovwb_mask(&mut self, op0: Mem, op1: Zmm) {
12622 self.emit(
12623 VPMOVWB512MR_MASK,
12624 op0.as_operand(),
12625 op1.as_operand(),
12626 &NOREG,
12627 &NOREG,
12628 );
12629 }
12630}
12631
12632pub trait VpmovwbMaskzEmitter<A, B> {
12646 fn vpmovwb_maskz(&mut self, op0: A, op1: B);
12647}
12648
12649impl<'a> VpmovwbMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
12650 fn vpmovwb_maskz(&mut self, op0: Xmm, op1: Xmm) {
12651 self.emit(
12652 VPMOVWB128RR_MASKZ,
12653 op0.as_operand(),
12654 op1.as_operand(),
12655 &NOREG,
12656 &NOREG,
12657 );
12658 }
12659}
12660
12661impl<'a> VpmovwbMaskzEmitter<Xmm, Ymm> for Assembler<'a> {
12662 fn vpmovwb_maskz(&mut self, op0: Xmm, op1: Ymm) {
12663 self.emit(
12664 VPMOVWB256RR_MASKZ,
12665 op0.as_operand(),
12666 op1.as_operand(),
12667 &NOREG,
12668 &NOREG,
12669 );
12670 }
12671}
12672
12673impl<'a> VpmovwbMaskzEmitter<Ymm, Zmm> for Assembler<'a> {
12674 fn vpmovwb_maskz(&mut self, op0: Ymm, op1: Zmm) {
12675 self.emit(
12676 VPMOVWB512RR_MASKZ,
12677 op0.as_operand(),
12678 op1.as_operand(),
12679 &NOREG,
12680 &NOREG,
12681 );
12682 }
12683}
12684
12685pub trait VpmulhrswEmitter<A, B, C> {
12702 fn vpmulhrsw(&mut self, op0: A, op1: B, op2: C);
12703}
12704
12705impl<'a> VpmulhrswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
12706 fn vpmulhrsw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
12707 self.emit(
12708 VPMULHRSW128RRR,
12709 op0.as_operand(),
12710 op1.as_operand(),
12711 op2.as_operand(),
12712 &NOREG,
12713 );
12714 }
12715}
12716
12717impl<'a> VpmulhrswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
12718 fn vpmulhrsw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
12719 self.emit(
12720 VPMULHRSW128RRM,
12721 op0.as_operand(),
12722 op1.as_operand(),
12723 op2.as_operand(),
12724 &NOREG,
12725 );
12726 }
12727}
12728
12729impl<'a> VpmulhrswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
12730 fn vpmulhrsw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
12731 self.emit(
12732 VPMULHRSW256RRR,
12733 op0.as_operand(),
12734 op1.as_operand(),
12735 op2.as_operand(),
12736 &NOREG,
12737 );
12738 }
12739}
12740
12741impl<'a> VpmulhrswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
12742 fn vpmulhrsw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
12743 self.emit(
12744 VPMULHRSW256RRM,
12745 op0.as_operand(),
12746 op1.as_operand(),
12747 op2.as_operand(),
12748 &NOREG,
12749 );
12750 }
12751}
12752
12753impl<'a> VpmulhrswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
12754 fn vpmulhrsw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
12755 self.emit(
12756 VPMULHRSW512RRR,
12757 op0.as_operand(),
12758 op1.as_operand(),
12759 op2.as_operand(),
12760 &NOREG,
12761 );
12762 }
12763}
12764
12765impl<'a> VpmulhrswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
12766 fn vpmulhrsw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
12767 self.emit(
12768 VPMULHRSW512RRM,
12769 op0.as_operand(),
12770 op1.as_operand(),
12771 op2.as_operand(),
12772 &NOREG,
12773 );
12774 }
12775}
12776
12777pub trait VpmulhrswMaskEmitter<A, B, C> {
12794 fn vpmulhrsw_mask(&mut self, op0: A, op1: B, op2: C);
12795}
12796
12797impl<'a> VpmulhrswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
12798 fn vpmulhrsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
12799 self.emit(
12800 VPMULHRSW128RRR_MASK,
12801 op0.as_operand(),
12802 op1.as_operand(),
12803 op2.as_operand(),
12804 &NOREG,
12805 );
12806 }
12807}
12808
12809impl<'a> VpmulhrswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
12810 fn vpmulhrsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
12811 self.emit(
12812 VPMULHRSW128RRM_MASK,
12813 op0.as_operand(),
12814 op1.as_operand(),
12815 op2.as_operand(),
12816 &NOREG,
12817 );
12818 }
12819}
12820
12821impl<'a> VpmulhrswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
12822 fn vpmulhrsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
12823 self.emit(
12824 VPMULHRSW256RRR_MASK,
12825 op0.as_operand(),
12826 op1.as_operand(),
12827 op2.as_operand(),
12828 &NOREG,
12829 );
12830 }
12831}
12832
12833impl<'a> VpmulhrswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
12834 fn vpmulhrsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
12835 self.emit(
12836 VPMULHRSW256RRM_MASK,
12837 op0.as_operand(),
12838 op1.as_operand(),
12839 op2.as_operand(),
12840 &NOREG,
12841 );
12842 }
12843}
12844
12845impl<'a> VpmulhrswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
12846 fn vpmulhrsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
12847 self.emit(
12848 VPMULHRSW512RRR_MASK,
12849 op0.as_operand(),
12850 op1.as_operand(),
12851 op2.as_operand(),
12852 &NOREG,
12853 );
12854 }
12855}
12856
12857impl<'a> VpmulhrswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
12858 fn vpmulhrsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
12859 self.emit(
12860 VPMULHRSW512RRM_MASK,
12861 op0.as_operand(),
12862 op1.as_operand(),
12863 op2.as_operand(),
12864 &NOREG,
12865 );
12866 }
12867}
12868
12869pub trait VpmulhrswMaskzEmitter<A, B, C> {
12886 fn vpmulhrsw_maskz(&mut self, op0: A, op1: B, op2: C);
12887}
12888
12889impl<'a> VpmulhrswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
12890 fn vpmulhrsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
12891 self.emit(
12892 VPMULHRSW128RRR_MASKZ,
12893 op0.as_operand(),
12894 op1.as_operand(),
12895 op2.as_operand(),
12896 &NOREG,
12897 );
12898 }
12899}
12900
12901impl<'a> VpmulhrswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
12902 fn vpmulhrsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
12903 self.emit(
12904 VPMULHRSW128RRM_MASKZ,
12905 op0.as_operand(),
12906 op1.as_operand(),
12907 op2.as_operand(),
12908 &NOREG,
12909 );
12910 }
12911}
12912
12913impl<'a> VpmulhrswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
12914 fn vpmulhrsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
12915 self.emit(
12916 VPMULHRSW256RRR_MASKZ,
12917 op0.as_operand(),
12918 op1.as_operand(),
12919 op2.as_operand(),
12920 &NOREG,
12921 );
12922 }
12923}
12924
12925impl<'a> VpmulhrswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
12926 fn vpmulhrsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
12927 self.emit(
12928 VPMULHRSW256RRM_MASKZ,
12929 op0.as_operand(),
12930 op1.as_operand(),
12931 op2.as_operand(),
12932 &NOREG,
12933 );
12934 }
12935}
12936
12937impl<'a> VpmulhrswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
12938 fn vpmulhrsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
12939 self.emit(
12940 VPMULHRSW512RRR_MASKZ,
12941 op0.as_operand(),
12942 op1.as_operand(),
12943 op2.as_operand(),
12944 &NOREG,
12945 );
12946 }
12947}
12948
12949impl<'a> VpmulhrswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
12950 fn vpmulhrsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
12951 self.emit(
12952 VPMULHRSW512RRM_MASKZ,
12953 op0.as_operand(),
12954 op1.as_operand(),
12955 op2.as_operand(),
12956 &NOREG,
12957 );
12958 }
12959}
12960
12961pub trait VpmulhuwEmitter<A, B, C> {
12978 fn vpmulhuw(&mut self, op0: A, op1: B, op2: C);
12979}
12980
12981impl<'a> VpmulhuwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
12982 fn vpmulhuw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
12983 self.emit(
12984 VPMULHUW128RRR,
12985 op0.as_operand(),
12986 op1.as_operand(),
12987 op2.as_operand(),
12988 &NOREG,
12989 );
12990 }
12991}
12992
12993impl<'a> VpmulhuwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
12994 fn vpmulhuw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
12995 self.emit(
12996 VPMULHUW128RRM,
12997 op0.as_operand(),
12998 op1.as_operand(),
12999 op2.as_operand(),
13000 &NOREG,
13001 );
13002 }
13003}
13004
13005impl<'a> VpmulhuwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13006 fn vpmulhuw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13007 self.emit(
13008 VPMULHUW256RRR,
13009 op0.as_operand(),
13010 op1.as_operand(),
13011 op2.as_operand(),
13012 &NOREG,
13013 );
13014 }
13015}
13016
13017impl<'a> VpmulhuwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13018 fn vpmulhuw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13019 self.emit(
13020 VPMULHUW256RRM,
13021 op0.as_operand(),
13022 op1.as_operand(),
13023 op2.as_operand(),
13024 &NOREG,
13025 );
13026 }
13027}
13028
13029impl<'a> VpmulhuwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13030 fn vpmulhuw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13031 self.emit(
13032 VPMULHUW512RRR,
13033 op0.as_operand(),
13034 op1.as_operand(),
13035 op2.as_operand(),
13036 &NOREG,
13037 );
13038 }
13039}
13040
13041impl<'a> VpmulhuwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13042 fn vpmulhuw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13043 self.emit(
13044 VPMULHUW512RRM,
13045 op0.as_operand(),
13046 op1.as_operand(),
13047 op2.as_operand(),
13048 &NOREG,
13049 );
13050 }
13051}
13052
13053pub trait VpmulhuwMaskEmitter<A, B, C> {
13070 fn vpmulhuw_mask(&mut self, op0: A, op1: B, op2: C);
13071}
13072
13073impl<'a> VpmulhuwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13074 fn vpmulhuw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13075 self.emit(
13076 VPMULHUW128RRR_MASK,
13077 op0.as_operand(),
13078 op1.as_operand(),
13079 op2.as_operand(),
13080 &NOREG,
13081 );
13082 }
13083}
13084
13085impl<'a> VpmulhuwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13086 fn vpmulhuw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13087 self.emit(
13088 VPMULHUW128RRM_MASK,
13089 op0.as_operand(),
13090 op1.as_operand(),
13091 op2.as_operand(),
13092 &NOREG,
13093 );
13094 }
13095}
13096
13097impl<'a> VpmulhuwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13098 fn vpmulhuw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13099 self.emit(
13100 VPMULHUW256RRR_MASK,
13101 op0.as_operand(),
13102 op1.as_operand(),
13103 op2.as_operand(),
13104 &NOREG,
13105 );
13106 }
13107}
13108
13109impl<'a> VpmulhuwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13110 fn vpmulhuw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13111 self.emit(
13112 VPMULHUW256RRM_MASK,
13113 op0.as_operand(),
13114 op1.as_operand(),
13115 op2.as_operand(),
13116 &NOREG,
13117 );
13118 }
13119}
13120
13121impl<'a> VpmulhuwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13122 fn vpmulhuw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13123 self.emit(
13124 VPMULHUW512RRR_MASK,
13125 op0.as_operand(),
13126 op1.as_operand(),
13127 op2.as_operand(),
13128 &NOREG,
13129 );
13130 }
13131}
13132
13133impl<'a> VpmulhuwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13134 fn vpmulhuw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13135 self.emit(
13136 VPMULHUW512RRM_MASK,
13137 op0.as_operand(),
13138 op1.as_operand(),
13139 op2.as_operand(),
13140 &NOREG,
13141 );
13142 }
13143}
13144
13145pub trait VpmulhuwMaskzEmitter<A, B, C> {
13162 fn vpmulhuw_maskz(&mut self, op0: A, op1: B, op2: C);
13163}
13164
13165impl<'a> VpmulhuwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13166 fn vpmulhuw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13167 self.emit(
13168 VPMULHUW128RRR_MASKZ,
13169 op0.as_operand(),
13170 op1.as_operand(),
13171 op2.as_operand(),
13172 &NOREG,
13173 );
13174 }
13175}
13176
13177impl<'a> VpmulhuwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13178 fn vpmulhuw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13179 self.emit(
13180 VPMULHUW128RRM_MASKZ,
13181 op0.as_operand(),
13182 op1.as_operand(),
13183 op2.as_operand(),
13184 &NOREG,
13185 );
13186 }
13187}
13188
13189impl<'a> VpmulhuwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13190 fn vpmulhuw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13191 self.emit(
13192 VPMULHUW256RRR_MASKZ,
13193 op0.as_operand(),
13194 op1.as_operand(),
13195 op2.as_operand(),
13196 &NOREG,
13197 );
13198 }
13199}
13200
13201impl<'a> VpmulhuwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13202 fn vpmulhuw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13203 self.emit(
13204 VPMULHUW256RRM_MASKZ,
13205 op0.as_operand(),
13206 op1.as_operand(),
13207 op2.as_operand(),
13208 &NOREG,
13209 );
13210 }
13211}
13212
13213impl<'a> VpmulhuwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13214 fn vpmulhuw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13215 self.emit(
13216 VPMULHUW512RRR_MASKZ,
13217 op0.as_operand(),
13218 op1.as_operand(),
13219 op2.as_operand(),
13220 &NOREG,
13221 );
13222 }
13223}
13224
13225impl<'a> VpmulhuwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13226 fn vpmulhuw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13227 self.emit(
13228 VPMULHUW512RRM_MASKZ,
13229 op0.as_operand(),
13230 op1.as_operand(),
13231 op2.as_operand(),
13232 &NOREG,
13233 );
13234 }
13235}
13236
13237pub trait VpmulhwEmitter<A, B, C> {
13254 fn vpmulhw(&mut self, op0: A, op1: B, op2: C);
13255}
13256
13257impl<'a> VpmulhwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13258 fn vpmulhw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13259 self.emit(
13260 VPMULHW128RRR,
13261 op0.as_operand(),
13262 op1.as_operand(),
13263 op2.as_operand(),
13264 &NOREG,
13265 );
13266 }
13267}
13268
13269impl<'a> VpmulhwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13270 fn vpmulhw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13271 self.emit(
13272 VPMULHW128RRM,
13273 op0.as_operand(),
13274 op1.as_operand(),
13275 op2.as_operand(),
13276 &NOREG,
13277 );
13278 }
13279}
13280
13281impl<'a> VpmulhwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13282 fn vpmulhw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13283 self.emit(
13284 VPMULHW256RRR,
13285 op0.as_operand(),
13286 op1.as_operand(),
13287 op2.as_operand(),
13288 &NOREG,
13289 );
13290 }
13291}
13292
13293impl<'a> VpmulhwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13294 fn vpmulhw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13295 self.emit(
13296 VPMULHW256RRM,
13297 op0.as_operand(),
13298 op1.as_operand(),
13299 op2.as_operand(),
13300 &NOREG,
13301 );
13302 }
13303}
13304
13305impl<'a> VpmulhwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13306 fn vpmulhw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13307 self.emit(
13308 VPMULHW512RRR,
13309 op0.as_operand(),
13310 op1.as_operand(),
13311 op2.as_operand(),
13312 &NOREG,
13313 );
13314 }
13315}
13316
13317impl<'a> VpmulhwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13318 fn vpmulhw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13319 self.emit(
13320 VPMULHW512RRM,
13321 op0.as_operand(),
13322 op1.as_operand(),
13323 op2.as_operand(),
13324 &NOREG,
13325 );
13326 }
13327}
13328
13329pub trait VpmulhwMaskEmitter<A, B, C> {
13346 fn vpmulhw_mask(&mut self, op0: A, op1: B, op2: C);
13347}
13348
13349impl<'a> VpmulhwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13350 fn vpmulhw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13351 self.emit(
13352 VPMULHW128RRR_MASK,
13353 op0.as_operand(),
13354 op1.as_operand(),
13355 op2.as_operand(),
13356 &NOREG,
13357 );
13358 }
13359}
13360
13361impl<'a> VpmulhwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13362 fn vpmulhw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13363 self.emit(
13364 VPMULHW128RRM_MASK,
13365 op0.as_operand(),
13366 op1.as_operand(),
13367 op2.as_operand(),
13368 &NOREG,
13369 );
13370 }
13371}
13372
13373impl<'a> VpmulhwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13374 fn vpmulhw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13375 self.emit(
13376 VPMULHW256RRR_MASK,
13377 op0.as_operand(),
13378 op1.as_operand(),
13379 op2.as_operand(),
13380 &NOREG,
13381 );
13382 }
13383}
13384
13385impl<'a> VpmulhwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13386 fn vpmulhw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13387 self.emit(
13388 VPMULHW256RRM_MASK,
13389 op0.as_operand(),
13390 op1.as_operand(),
13391 op2.as_operand(),
13392 &NOREG,
13393 );
13394 }
13395}
13396
13397impl<'a> VpmulhwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13398 fn vpmulhw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13399 self.emit(
13400 VPMULHW512RRR_MASK,
13401 op0.as_operand(),
13402 op1.as_operand(),
13403 op2.as_operand(),
13404 &NOREG,
13405 );
13406 }
13407}
13408
13409impl<'a> VpmulhwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13410 fn vpmulhw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13411 self.emit(
13412 VPMULHW512RRM_MASK,
13413 op0.as_operand(),
13414 op1.as_operand(),
13415 op2.as_operand(),
13416 &NOREG,
13417 );
13418 }
13419}
13420
13421pub trait VpmulhwMaskzEmitter<A, B, C> {
13438 fn vpmulhw_maskz(&mut self, op0: A, op1: B, op2: C);
13439}
13440
13441impl<'a> VpmulhwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13442 fn vpmulhw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13443 self.emit(
13444 VPMULHW128RRR_MASKZ,
13445 op0.as_operand(),
13446 op1.as_operand(),
13447 op2.as_operand(),
13448 &NOREG,
13449 );
13450 }
13451}
13452
13453impl<'a> VpmulhwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13454 fn vpmulhw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13455 self.emit(
13456 VPMULHW128RRM_MASKZ,
13457 op0.as_operand(),
13458 op1.as_operand(),
13459 op2.as_operand(),
13460 &NOREG,
13461 );
13462 }
13463}
13464
13465impl<'a> VpmulhwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13466 fn vpmulhw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13467 self.emit(
13468 VPMULHW256RRR_MASKZ,
13469 op0.as_operand(),
13470 op1.as_operand(),
13471 op2.as_operand(),
13472 &NOREG,
13473 );
13474 }
13475}
13476
13477impl<'a> VpmulhwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13478 fn vpmulhw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13479 self.emit(
13480 VPMULHW256RRM_MASKZ,
13481 op0.as_operand(),
13482 op1.as_operand(),
13483 op2.as_operand(),
13484 &NOREG,
13485 );
13486 }
13487}
13488
13489impl<'a> VpmulhwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13490 fn vpmulhw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13491 self.emit(
13492 VPMULHW512RRR_MASKZ,
13493 op0.as_operand(),
13494 op1.as_operand(),
13495 op2.as_operand(),
13496 &NOREG,
13497 );
13498 }
13499}
13500
13501impl<'a> VpmulhwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13502 fn vpmulhw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13503 self.emit(
13504 VPMULHW512RRM_MASKZ,
13505 op0.as_operand(),
13506 op1.as_operand(),
13507 op2.as_operand(),
13508 &NOREG,
13509 );
13510 }
13511}
13512
13513pub trait VpmullwEmitter<A, B, C> {
13530 fn vpmullw(&mut self, op0: A, op1: B, op2: C);
13531}
13532
13533impl<'a> VpmullwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13534 fn vpmullw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13535 self.emit(
13536 VPMULLW128RRR,
13537 op0.as_operand(),
13538 op1.as_operand(),
13539 op2.as_operand(),
13540 &NOREG,
13541 );
13542 }
13543}
13544
13545impl<'a> VpmullwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13546 fn vpmullw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13547 self.emit(
13548 VPMULLW128RRM,
13549 op0.as_operand(),
13550 op1.as_operand(),
13551 op2.as_operand(),
13552 &NOREG,
13553 );
13554 }
13555}
13556
13557impl<'a> VpmullwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13558 fn vpmullw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13559 self.emit(
13560 VPMULLW256RRR,
13561 op0.as_operand(),
13562 op1.as_operand(),
13563 op2.as_operand(),
13564 &NOREG,
13565 );
13566 }
13567}
13568
13569impl<'a> VpmullwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13570 fn vpmullw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13571 self.emit(
13572 VPMULLW256RRM,
13573 op0.as_operand(),
13574 op1.as_operand(),
13575 op2.as_operand(),
13576 &NOREG,
13577 );
13578 }
13579}
13580
13581impl<'a> VpmullwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13582 fn vpmullw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13583 self.emit(
13584 VPMULLW512RRR,
13585 op0.as_operand(),
13586 op1.as_operand(),
13587 op2.as_operand(),
13588 &NOREG,
13589 );
13590 }
13591}
13592
13593impl<'a> VpmullwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13594 fn vpmullw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13595 self.emit(
13596 VPMULLW512RRM,
13597 op0.as_operand(),
13598 op1.as_operand(),
13599 op2.as_operand(),
13600 &NOREG,
13601 );
13602 }
13603}
13604
13605pub trait VpmullwMaskEmitter<A, B, C> {
13622 fn vpmullw_mask(&mut self, op0: A, op1: B, op2: C);
13623}
13624
13625impl<'a> VpmullwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13626 fn vpmullw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13627 self.emit(
13628 VPMULLW128RRR_MASK,
13629 op0.as_operand(),
13630 op1.as_operand(),
13631 op2.as_operand(),
13632 &NOREG,
13633 );
13634 }
13635}
13636
13637impl<'a> VpmullwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13638 fn vpmullw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13639 self.emit(
13640 VPMULLW128RRM_MASK,
13641 op0.as_operand(),
13642 op1.as_operand(),
13643 op2.as_operand(),
13644 &NOREG,
13645 );
13646 }
13647}
13648
13649impl<'a> VpmullwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13650 fn vpmullw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13651 self.emit(
13652 VPMULLW256RRR_MASK,
13653 op0.as_operand(),
13654 op1.as_operand(),
13655 op2.as_operand(),
13656 &NOREG,
13657 );
13658 }
13659}
13660
13661impl<'a> VpmullwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13662 fn vpmullw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13663 self.emit(
13664 VPMULLW256RRM_MASK,
13665 op0.as_operand(),
13666 op1.as_operand(),
13667 op2.as_operand(),
13668 &NOREG,
13669 );
13670 }
13671}
13672
13673impl<'a> VpmullwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13674 fn vpmullw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13675 self.emit(
13676 VPMULLW512RRR_MASK,
13677 op0.as_operand(),
13678 op1.as_operand(),
13679 op2.as_operand(),
13680 &NOREG,
13681 );
13682 }
13683}
13684
13685impl<'a> VpmullwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13686 fn vpmullw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13687 self.emit(
13688 VPMULLW512RRM_MASK,
13689 op0.as_operand(),
13690 op1.as_operand(),
13691 op2.as_operand(),
13692 &NOREG,
13693 );
13694 }
13695}
13696
13697pub trait VpmullwMaskzEmitter<A, B, C> {
13714 fn vpmullw_maskz(&mut self, op0: A, op1: B, op2: C);
13715}
13716
13717impl<'a> VpmullwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13718 fn vpmullw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13719 self.emit(
13720 VPMULLW128RRR_MASKZ,
13721 op0.as_operand(),
13722 op1.as_operand(),
13723 op2.as_operand(),
13724 &NOREG,
13725 );
13726 }
13727}
13728
13729impl<'a> VpmullwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13730 fn vpmullw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13731 self.emit(
13732 VPMULLW128RRM_MASKZ,
13733 op0.as_operand(),
13734 op1.as_operand(),
13735 op2.as_operand(),
13736 &NOREG,
13737 );
13738 }
13739}
13740
13741impl<'a> VpmullwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13742 fn vpmullw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13743 self.emit(
13744 VPMULLW256RRR_MASKZ,
13745 op0.as_operand(),
13746 op1.as_operand(),
13747 op2.as_operand(),
13748 &NOREG,
13749 );
13750 }
13751}
13752
13753impl<'a> VpmullwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13754 fn vpmullw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13755 self.emit(
13756 VPMULLW256RRM_MASKZ,
13757 op0.as_operand(),
13758 op1.as_operand(),
13759 op2.as_operand(),
13760 &NOREG,
13761 );
13762 }
13763}
13764
13765impl<'a> VpmullwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13766 fn vpmullw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13767 self.emit(
13768 VPMULLW512RRR_MASKZ,
13769 op0.as_operand(),
13770 op1.as_operand(),
13771 op2.as_operand(),
13772 &NOREG,
13773 );
13774 }
13775}
13776
13777impl<'a> VpmullwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13778 fn vpmullw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13779 self.emit(
13780 VPMULLW512RRM_MASKZ,
13781 op0.as_operand(),
13782 op1.as_operand(),
13783 op2.as_operand(),
13784 &NOREG,
13785 );
13786 }
13787}
13788
13789pub trait VpsadbwEmitter<A, B, C> {
13806 fn vpsadbw(&mut self, op0: A, op1: B, op2: C);
13807}
13808
13809impl<'a> VpsadbwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13810 fn vpsadbw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13811 self.emit(
13812 VPSADBW128RRR,
13813 op0.as_operand(),
13814 op1.as_operand(),
13815 op2.as_operand(),
13816 &NOREG,
13817 );
13818 }
13819}
13820
13821impl<'a> VpsadbwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13822 fn vpsadbw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13823 self.emit(
13824 VPSADBW128RRM,
13825 op0.as_operand(),
13826 op1.as_operand(),
13827 op2.as_operand(),
13828 &NOREG,
13829 );
13830 }
13831}
13832
13833impl<'a> VpsadbwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13834 fn vpsadbw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13835 self.emit(
13836 VPSADBW256RRR,
13837 op0.as_operand(),
13838 op1.as_operand(),
13839 op2.as_operand(),
13840 &NOREG,
13841 );
13842 }
13843}
13844
13845impl<'a> VpsadbwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13846 fn vpsadbw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13847 self.emit(
13848 VPSADBW256RRM,
13849 op0.as_operand(),
13850 op1.as_operand(),
13851 op2.as_operand(),
13852 &NOREG,
13853 );
13854 }
13855}
13856
13857impl<'a> VpsadbwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13858 fn vpsadbw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13859 self.emit(
13860 VPSADBW512RRR,
13861 op0.as_operand(),
13862 op1.as_operand(),
13863 op2.as_operand(),
13864 &NOREG,
13865 );
13866 }
13867}
13868
13869impl<'a> VpsadbwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13870 fn vpsadbw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13871 self.emit(
13872 VPSADBW512RRM,
13873 op0.as_operand(),
13874 op1.as_operand(),
13875 op2.as_operand(),
13876 &NOREG,
13877 );
13878 }
13879}
13880
13881pub trait VpshufbEmitter<A, B, C> {
13898 fn vpshufb(&mut self, op0: A, op1: B, op2: C);
13899}
13900
13901impl<'a> VpshufbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13902 fn vpshufb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13903 self.emit(
13904 VPSHUFB128RRR,
13905 op0.as_operand(),
13906 op1.as_operand(),
13907 op2.as_operand(),
13908 &NOREG,
13909 );
13910 }
13911}
13912
13913impl<'a> VpshufbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
13914 fn vpshufb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
13915 self.emit(
13916 VPSHUFB128RRM,
13917 op0.as_operand(),
13918 op1.as_operand(),
13919 op2.as_operand(),
13920 &NOREG,
13921 );
13922 }
13923}
13924
13925impl<'a> VpshufbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
13926 fn vpshufb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
13927 self.emit(
13928 VPSHUFB256RRR,
13929 op0.as_operand(),
13930 op1.as_operand(),
13931 op2.as_operand(),
13932 &NOREG,
13933 );
13934 }
13935}
13936
13937impl<'a> VpshufbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
13938 fn vpshufb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
13939 self.emit(
13940 VPSHUFB256RRM,
13941 op0.as_operand(),
13942 op1.as_operand(),
13943 op2.as_operand(),
13944 &NOREG,
13945 );
13946 }
13947}
13948
13949impl<'a> VpshufbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
13950 fn vpshufb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
13951 self.emit(
13952 VPSHUFB512RRR,
13953 op0.as_operand(),
13954 op1.as_operand(),
13955 op2.as_operand(),
13956 &NOREG,
13957 );
13958 }
13959}
13960
13961impl<'a> VpshufbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
13962 fn vpshufb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
13963 self.emit(
13964 VPSHUFB512RRM,
13965 op0.as_operand(),
13966 op1.as_operand(),
13967 op2.as_operand(),
13968 &NOREG,
13969 );
13970 }
13971}
13972
13973pub trait VpshufbMaskEmitter<A, B, C> {
13990 fn vpshufb_mask(&mut self, op0: A, op1: B, op2: C);
13991}
13992
13993impl<'a> VpshufbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
13994 fn vpshufb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
13995 self.emit(
13996 VPSHUFB128RRR_MASK,
13997 op0.as_operand(),
13998 op1.as_operand(),
13999 op2.as_operand(),
14000 &NOREG,
14001 );
14002 }
14003}
14004
14005impl<'a> VpshufbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
14006 fn vpshufb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
14007 self.emit(
14008 VPSHUFB128RRM_MASK,
14009 op0.as_operand(),
14010 op1.as_operand(),
14011 op2.as_operand(),
14012 &NOREG,
14013 );
14014 }
14015}
14016
14017impl<'a> VpshufbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
14018 fn vpshufb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
14019 self.emit(
14020 VPSHUFB256RRR_MASK,
14021 op0.as_operand(),
14022 op1.as_operand(),
14023 op2.as_operand(),
14024 &NOREG,
14025 );
14026 }
14027}
14028
14029impl<'a> VpshufbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
14030 fn vpshufb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
14031 self.emit(
14032 VPSHUFB256RRM_MASK,
14033 op0.as_operand(),
14034 op1.as_operand(),
14035 op2.as_operand(),
14036 &NOREG,
14037 );
14038 }
14039}
14040
14041impl<'a> VpshufbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
14042 fn vpshufb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
14043 self.emit(
14044 VPSHUFB512RRR_MASK,
14045 op0.as_operand(),
14046 op1.as_operand(),
14047 op2.as_operand(),
14048 &NOREG,
14049 );
14050 }
14051}
14052
14053impl<'a> VpshufbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
14054 fn vpshufb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
14055 self.emit(
14056 VPSHUFB512RRM_MASK,
14057 op0.as_operand(),
14058 op1.as_operand(),
14059 op2.as_operand(),
14060 &NOREG,
14061 );
14062 }
14063}
14064
14065pub trait VpshufbMaskzEmitter<A, B, C> {
14082 fn vpshufb_maskz(&mut self, op0: A, op1: B, op2: C);
14083}
14084
14085impl<'a> VpshufbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
14086 fn vpshufb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
14087 self.emit(
14088 VPSHUFB128RRR_MASKZ,
14089 op0.as_operand(),
14090 op1.as_operand(),
14091 op2.as_operand(),
14092 &NOREG,
14093 );
14094 }
14095}
14096
14097impl<'a> VpshufbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
14098 fn vpshufb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
14099 self.emit(
14100 VPSHUFB128RRM_MASKZ,
14101 op0.as_operand(),
14102 op1.as_operand(),
14103 op2.as_operand(),
14104 &NOREG,
14105 );
14106 }
14107}
14108
14109impl<'a> VpshufbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
14110 fn vpshufb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
14111 self.emit(
14112 VPSHUFB256RRR_MASKZ,
14113 op0.as_operand(),
14114 op1.as_operand(),
14115 op2.as_operand(),
14116 &NOREG,
14117 );
14118 }
14119}
14120
14121impl<'a> VpshufbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
14122 fn vpshufb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
14123 self.emit(
14124 VPSHUFB256RRM_MASKZ,
14125 op0.as_operand(),
14126 op1.as_operand(),
14127 op2.as_operand(),
14128 &NOREG,
14129 );
14130 }
14131}
14132
14133impl<'a> VpshufbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
14134 fn vpshufb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
14135 self.emit(
14136 VPSHUFB512RRR_MASKZ,
14137 op0.as_operand(),
14138 op1.as_operand(),
14139 op2.as_operand(),
14140 &NOREG,
14141 );
14142 }
14143}
14144
14145impl<'a> VpshufbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
14146 fn vpshufb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
14147 self.emit(
14148 VPSHUFB512RRM_MASKZ,
14149 op0.as_operand(),
14150 op1.as_operand(),
14151 op2.as_operand(),
14152 &NOREG,
14153 );
14154 }
14155}
14156
14157pub trait VpshufhwEmitter<A, B, C> {
14174 fn vpshufhw(&mut self, op0: A, op1: B, op2: C);
14175}
14176
14177impl<'a> VpshufhwEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14178 fn vpshufhw(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14179 self.emit(
14180 VPSHUFHW128RRI,
14181 op0.as_operand(),
14182 op1.as_operand(),
14183 op2.as_operand(),
14184 &NOREG,
14185 );
14186 }
14187}
14188
14189impl<'a> VpshufhwEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14190 fn vpshufhw(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14191 self.emit(
14192 VPSHUFHW128RMI,
14193 op0.as_operand(),
14194 op1.as_operand(),
14195 op2.as_operand(),
14196 &NOREG,
14197 );
14198 }
14199}
14200
14201impl<'a> VpshufhwEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14202 fn vpshufhw(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14203 self.emit(
14204 VPSHUFHW256RRI,
14205 op0.as_operand(),
14206 op1.as_operand(),
14207 op2.as_operand(),
14208 &NOREG,
14209 );
14210 }
14211}
14212
14213impl<'a> VpshufhwEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14214 fn vpshufhw(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14215 self.emit(
14216 VPSHUFHW256RMI,
14217 op0.as_operand(),
14218 op1.as_operand(),
14219 op2.as_operand(),
14220 &NOREG,
14221 );
14222 }
14223}
14224
14225impl<'a> VpshufhwEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14226 fn vpshufhw(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14227 self.emit(
14228 VPSHUFHW512RRI,
14229 op0.as_operand(),
14230 op1.as_operand(),
14231 op2.as_operand(),
14232 &NOREG,
14233 );
14234 }
14235}
14236
14237impl<'a> VpshufhwEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14238 fn vpshufhw(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14239 self.emit(
14240 VPSHUFHW512RMI,
14241 op0.as_operand(),
14242 op1.as_operand(),
14243 op2.as_operand(),
14244 &NOREG,
14245 );
14246 }
14247}
14248
14249pub trait VpshufhwMaskEmitter<A, B, C> {
14266 fn vpshufhw_mask(&mut self, op0: A, op1: B, op2: C);
14267}
14268
14269impl<'a> VpshufhwMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14270 fn vpshufhw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14271 self.emit(
14272 VPSHUFHW128RRI_MASK,
14273 op0.as_operand(),
14274 op1.as_operand(),
14275 op2.as_operand(),
14276 &NOREG,
14277 );
14278 }
14279}
14280
14281impl<'a> VpshufhwMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14282 fn vpshufhw_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14283 self.emit(
14284 VPSHUFHW128RMI_MASK,
14285 op0.as_operand(),
14286 op1.as_operand(),
14287 op2.as_operand(),
14288 &NOREG,
14289 );
14290 }
14291}
14292
14293impl<'a> VpshufhwMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14294 fn vpshufhw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14295 self.emit(
14296 VPSHUFHW256RRI_MASK,
14297 op0.as_operand(),
14298 op1.as_operand(),
14299 op2.as_operand(),
14300 &NOREG,
14301 );
14302 }
14303}
14304
14305impl<'a> VpshufhwMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14306 fn vpshufhw_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14307 self.emit(
14308 VPSHUFHW256RMI_MASK,
14309 op0.as_operand(),
14310 op1.as_operand(),
14311 op2.as_operand(),
14312 &NOREG,
14313 );
14314 }
14315}
14316
14317impl<'a> VpshufhwMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14318 fn vpshufhw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14319 self.emit(
14320 VPSHUFHW512RRI_MASK,
14321 op0.as_operand(),
14322 op1.as_operand(),
14323 op2.as_operand(),
14324 &NOREG,
14325 );
14326 }
14327}
14328
14329impl<'a> VpshufhwMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14330 fn vpshufhw_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14331 self.emit(
14332 VPSHUFHW512RMI_MASK,
14333 op0.as_operand(),
14334 op1.as_operand(),
14335 op2.as_operand(),
14336 &NOREG,
14337 );
14338 }
14339}
14340
14341pub trait VpshufhwMaskzEmitter<A, B, C> {
14358 fn vpshufhw_maskz(&mut self, op0: A, op1: B, op2: C);
14359}
14360
14361impl<'a> VpshufhwMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14362 fn vpshufhw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14363 self.emit(
14364 VPSHUFHW128RRI_MASKZ,
14365 op0.as_operand(),
14366 op1.as_operand(),
14367 op2.as_operand(),
14368 &NOREG,
14369 );
14370 }
14371}
14372
14373impl<'a> VpshufhwMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14374 fn vpshufhw_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14375 self.emit(
14376 VPSHUFHW128RMI_MASKZ,
14377 op0.as_operand(),
14378 op1.as_operand(),
14379 op2.as_operand(),
14380 &NOREG,
14381 );
14382 }
14383}
14384
14385impl<'a> VpshufhwMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14386 fn vpshufhw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14387 self.emit(
14388 VPSHUFHW256RRI_MASKZ,
14389 op0.as_operand(),
14390 op1.as_operand(),
14391 op2.as_operand(),
14392 &NOREG,
14393 );
14394 }
14395}
14396
14397impl<'a> VpshufhwMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14398 fn vpshufhw_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14399 self.emit(
14400 VPSHUFHW256RMI_MASKZ,
14401 op0.as_operand(),
14402 op1.as_operand(),
14403 op2.as_operand(),
14404 &NOREG,
14405 );
14406 }
14407}
14408
14409impl<'a> VpshufhwMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14410 fn vpshufhw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14411 self.emit(
14412 VPSHUFHW512RRI_MASKZ,
14413 op0.as_operand(),
14414 op1.as_operand(),
14415 op2.as_operand(),
14416 &NOREG,
14417 );
14418 }
14419}
14420
14421impl<'a> VpshufhwMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14422 fn vpshufhw_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14423 self.emit(
14424 VPSHUFHW512RMI_MASKZ,
14425 op0.as_operand(),
14426 op1.as_operand(),
14427 op2.as_operand(),
14428 &NOREG,
14429 );
14430 }
14431}
14432
14433pub trait VpshuflwEmitter<A, B, C> {
14450 fn vpshuflw(&mut self, op0: A, op1: B, op2: C);
14451}
14452
14453impl<'a> VpshuflwEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14454 fn vpshuflw(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14455 self.emit(
14456 VPSHUFLW128RRI,
14457 op0.as_operand(),
14458 op1.as_operand(),
14459 op2.as_operand(),
14460 &NOREG,
14461 );
14462 }
14463}
14464
14465impl<'a> VpshuflwEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14466 fn vpshuflw(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14467 self.emit(
14468 VPSHUFLW128RMI,
14469 op0.as_operand(),
14470 op1.as_operand(),
14471 op2.as_operand(),
14472 &NOREG,
14473 );
14474 }
14475}
14476
14477impl<'a> VpshuflwEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14478 fn vpshuflw(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14479 self.emit(
14480 VPSHUFLW256RRI,
14481 op0.as_operand(),
14482 op1.as_operand(),
14483 op2.as_operand(),
14484 &NOREG,
14485 );
14486 }
14487}
14488
14489impl<'a> VpshuflwEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14490 fn vpshuflw(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14491 self.emit(
14492 VPSHUFLW256RMI,
14493 op0.as_operand(),
14494 op1.as_operand(),
14495 op2.as_operand(),
14496 &NOREG,
14497 );
14498 }
14499}
14500
14501impl<'a> VpshuflwEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14502 fn vpshuflw(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14503 self.emit(
14504 VPSHUFLW512RRI,
14505 op0.as_operand(),
14506 op1.as_operand(),
14507 op2.as_operand(),
14508 &NOREG,
14509 );
14510 }
14511}
14512
14513impl<'a> VpshuflwEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14514 fn vpshuflw(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14515 self.emit(
14516 VPSHUFLW512RMI,
14517 op0.as_operand(),
14518 op1.as_operand(),
14519 op2.as_operand(),
14520 &NOREG,
14521 );
14522 }
14523}
14524
14525pub trait VpshuflwMaskEmitter<A, B, C> {
14542 fn vpshuflw_mask(&mut self, op0: A, op1: B, op2: C);
14543}
14544
14545impl<'a> VpshuflwMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14546 fn vpshuflw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14547 self.emit(
14548 VPSHUFLW128RRI_MASK,
14549 op0.as_operand(),
14550 op1.as_operand(),
14551 op2.as_operand(),
14552 &NOREG,
14553 );
14554 }
14555}
14556
14557impl<'a> VpshuflwMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14558 fn vpshuflw_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14559 self.emit(
14560 VPSHUFLW128RMI_MASK,
14561 op0.as_operand(),
14562 op1.as_operand(),
14563 op2.as_operand(),
14564 &NOREG,
14565 );
14566 }
14567}
14568
14569impl<'a> VpshuflwMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14570 fn vpshuflw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14571 self.emit(
14572 VPSHUFLW256RRI_MASK,
14573 op0.as_operand(),
14574 op1.as_operand(),
14575 op2.as_operand(),
14576 &NOREG,
14577 );
14578 }
14579}
14580
14581impl<'a> VpshuflwMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14582 fn vpshuflw_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14583 self.emit(
14584 VPSHUFLW256RMI_MASK,
14585 op0.as_operand(),
14586 op1.as_operand(),
14587 op2.as_operand(),
14588 &NOREG,
14589 );
14590 }
14591}
14592
14593impl<'a> VpshuflwMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14594 fn vpshuflw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14595 self.emit(
14596 VPSHUFLW512RRI_MASK,
14597 op0.as_operand(),
14598 op1.as_operand(),
14599 op2.as_operand(),
14600 &NOREG,
14601 );
14602 }
14603}
14604
14605impl<'a> VpshuflwMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14606 fn vpshuflw_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14607 self.emit(
14608 VPSHUFLW512RMI_MASK,
14609 op0.as_operand(),
14610 op1.as_operand(),
14611 op2.as_operand(),
14612 &NOREG,
14613 );
14614 }
14615}
14616
14617pub trait VpshuflwMaskzEmitter<A, B, C> {
14634 fn vpshuflw_maskz(&mut self, op0: A, op1: B, op2: C);
14635}
14636
14637impl<'a> VpshuflwMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14638 fn vpshuflw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14639 self.emit(
14640 VPSHUFLW128RRI_MASKZ,
14641 op0.as_operand(),
14642 op1.as_operand(),
14643 op2.as_operand(),
14644 &NOREG,
14645 );
14646 }
14647}
14648
14649impl<'a> VpshuflwMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14650 fn vpshuflw_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14651 self.emit(
14652 VPSHUFLW128RMI_MASKZ,
14653 op0.as_operand(),
14654 op1.as_operand(),
14655 op2.as_operand(),
14656 &NOREG,
14657 );
14658 }
14659}
14660
14661impl<'a> VpshuflwMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14662 fn vpshuflw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14663 self.emit(
14664 VPSHUFLW256RRI_MASKZ,
14665 op0.as_operand(),
14666 op1.as_operand(),
14667 op2.as_operand(),
14668 &NOREG,
14669 );
14670 }
14671}
14672
14673impl<'a> VpshuflwMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14674 fn vpshuflw_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14675 self.emit(
14676 VPSHUFLW256RMI_MASKZ,
14677 op0.as_operand(),
14678 op1.as_operand(),
14679 op2.as_operand(),
14680 &NOREG,
14681 );
14682 }
14683}
14684
14685impl<'a> VpshuflwMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14686 fn vpshuflw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14687 self.emit(
14688 VPSHUFLW512RRI_MASKZ,
14689 op0.as_operand(),
14690 op1.as_operand(),
14691 op2.as_operand(),
14692 &NOREG,
14693 );
14694 }
14695}
14696
14697impl<'a> VpshuflwMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14698 fn vpshuflw_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14699 self.emit(
14700 VPSHUFLW512RMI_MASKZ,
14701 op0.as_operand(),
14702 op1.as_operand(),
14703 op2.as_operand(),
14704 &NOREG,
14705 );
14706 }
14707}
14708
14709pub trait VpslldqEmitter<A, B, C> {
14726 fn vpslldq(&mut self, op0: A, op1: B, op2: C);
14727}
14728
14729impl<'a> VpslldqEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
14730 fn vpslldq(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
14731 self.emit(
14732 VPSLLDQ128RRI,
14733 op0.as_operand(),
14734 op1.as_operand(),
14735 op2.as_operand(),
14736 &NOREG,
14737 );
14738 }
14739}
14740
14741impl<'a> VpslldqEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
14742 fn vpslldq(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
14743 self.emit(
14744 VPSLLDQ256RRI,
14745 op0.as_operand(),
14746 op1.as_operand(),
14747 op2.as_operand(),
14748 &NOREG,
14749 );
14750 }
14751}
14752
14753impl<'a> VpslldqEmitter<Xmm, Mem, Imm> for Assembler<'a> {
14754 fn vpslldq(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
14755 self.emit(
14756 VPSLLDQ128RMI,
14757 op0.as_operand(),
14758 op1.as_operand(),
14759 op2.as_operand(),
14760 &NOREG,
14761 );
14762 }
14763}
14764
14765impl<'a> VpslldqEmitter<Ymm, Mem, Imm> for Assembler<'a> {
14766 fn vpslldq(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
14767 self.emit(
14768 VPSLLDQ256RMI,
14769 op0.as_operand(),
14770 op1.as_operand(),
14771 op2.as_operand(),
14772 &NOREG,
14773 );
14774 }
14775}
14776
14777impl<'a> VpslldqEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
14778 fn vpslldq(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
14779 self.emit(
14780 VPSLLDQ512RRI,
14781 op0.as_operand(),
14782 op1.as_operand(),
14783 op2.as_operand(),
14784 &NOREG,
14785 );
14786 }
14787}
14788
14789impl<'a> VpslldqEmitter<Zmm, Mem, Imm> for Assembler<'a> {
14790 fn vpslldq(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
14791 self.emit(
14792 VPSLLDQ512RMI,
14793 op0.as_operand(),
14794 op1.as_operand(),
14795 op2.as_operand(),
14796 &NOREG,
14797 );
14798 }
14799}
14800
14801pub trait VpsllvwEmitter<A, B, C> {
14818 fn vpsllvw(&mut self, op0: A, op1: B, op2: C);
14819}
14820
14821impl<'a> VpsllvwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
14822 fn vpsllvw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
14823 self.emit(
14824 VPSLLVW128RRR,
14825 op0.as_operand(),
14826 op1.as_operand(),
14827 op2.as_operand(),
14828 &NOREG,
14829 );
14830 }
14831}
14832
14833impl<'a> VpsllvwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
14834 fn vpsllvw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
14835 self.emit(
14836 VPSLLVW128RRM,
14837 op0.as_operand(),
14838 op1.as_operand(),
14839 op2.as_operand(),
14840 &NOREG,
14841 );
14842 }
14843}
14844
14845impl<'a> VpsllvwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
14846 fn vpsllvw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
14847 self.emit(
14848 VPSLLVW256RRR,
14849 op0.as_operand(),
14850 op1.as_operand(),
14851 op2.as_operand(),
14852 &NOREG,
14853 );
14854 }
14855}
14856
14857impl<'a> VpsllvwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
14858 fn vpsllvw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
14859 self.emit(
14860 VPSLLVW256RRM,
14861 op0.as_operand(),
14862 op1.as_operand(),
14863 op2.as_operand(),
14864 &NOREG,
14865 );
14866 }
14867}
14868
14869impl<'a> VpsllvwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
14870 fn vpsllvw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
14871 self.emit(
14872 VPSLLVW512RRR,
14873 op0.as_operand(),
14874 op1.as_operand(),
14875 op2.as_operand(),
14876 &NOREG,
14877 );
14878 }
14879}
14880
14881impl<'a> VpsllvwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
14882 fn vpsllvw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
14883 self.emit(
14884 VPSLLVW512RRM,
14885 op0.as_operand(),
14886 op1.as_operand(),
14887 op2.as_operand(),
14888 &NOREG,
14889 );
14890 }
14891}
14892
14893pub trait VpsllvwMaskEmitter<A, B, C> {
14910 fn vpsllvw_mask(&mut self, op0: A, op1: B, op2: C);
14911}
14912
14913impl<'a> VpsllvwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
14914 fn vpsllvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
14915 self.emit(
14916 VPSLLVW128RRR_MASK,
14917 op0.as_operand(),
14918 op1.as_operand(),
14919 op2.as_operand(),
14920 &NOREG,
14921 );
14922 }
14923}
14924
14925impl<'a> VpsllvwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
14926 fn vpsllvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
14927 self.emit(
14928 VPSLLVW128RRM_MASK,
14929 op0.as_operand(),
14930 op1.as_operand(),
14931 op2.as_operand(),
14932 &NOREG,
14933 );
14934 }
14935}
14936
14937impl<'a> VpsllvwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
14938 fn vpsllvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
14939 self.emit(
14940 VPSLLVW256RRR_MASK,
14941 op0.as_operand(),
14942 op1.as_operand(),
14943 op2.as_operand(),
14944 &NOREG,
14945 );
14946 }
14947}
14948
14949impl<'a> VpsllvwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
14950 fn vpsllvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
14951 self.emit(
14952 VPSLLVW256RRM_MASK,
14953 op0.as_operand(),
14954 op1.as_operand(),
14955 op2.as_operand(),
14956 &NOREG,
14957 );
14958 }
14959}
14960
14961impl<'a> VpsllvwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
14962 fn vpsllvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
14963 self.emit(
14964 VPSLLVW512RRR_MASK,
14965 op0.as_operand(),
14966 op1.as_operand(),
14967 op2.as_operand(),
14968 &NOREG,
14969 );
14970 }
14971}
14972
14973impl<'a> VpsllvwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
14974 fn vpsllvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
14975 self.emit(
14976 VPSLLVW512RRM_MASK,
14977 op0.as_operand(),
14978 op1.as_operand(),
14979 op2.as_operand(),
14980 &NOREG,
14981 );
14982 }
14983}
14984
14985pub trait VpsllvwMaskzEmitter<A, B, C> {
15002 fn vpsllvw_maskz(&mut self, op0: A, op1: B, op2: C);
15003}
15004
15005impl<'a> VpsllvwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15006 fn vpsllvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15007 self.emit(
15008 VPSLLVW128RRR_MASKZ,
15009 op0.as_operand(),
15010 op1.as_operand(),
15011 op2.as_operand(),
15012 &NOREG,
15013 );
15014 }
15015}
15016
15017impl<'a> VpsllvwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15018 fn vpsllvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15019 self.emit(
15020 VPSLLVW128RRM_MASKZ,
15021 op0.as_operand(),
15022 op1.as_operand(),
15023 op2.as_operand(),
15024 &NOREG,
15025 );
15026 }
15027}
15028
15029impl<'a> VpsllvwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
15030 fn vpsllvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
15031 self.emit(
15032 VPSLLVW256RRR_MASKZ,
15033 op0.as_operand(),
15034 op1.as_operand(),
15035 op2.as_operand(),
15036 &NOREG,
15037 );
15038 }
15039}
15040
15041impl<'a> VpsllvwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15042 fn vpsllvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15043 self.emit(
15044 VPSLLVW256RRM_MASKZ,
15045 op0.as_operand(),
15046 op1.as_operand(),
15047 op2.as_operand(),
15048 &NOREG,
15049 );
15050 }
15051}
15052
15053impl<'a> VpsllvwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
15054 fn vpsllvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
15055 self.emit(
15056 VPSLLVW512RRR_MASKZ,
15057 op0.as_operand(),
15058 op1.as_operand(),
15059 op2.as_operand(),
15060 &NOREG,
15061 );
15062 }
15063}
15064
15065impl<'a> VpsllvwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15066 fn vpsllvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15067 self.emit(
15068 VPSLLVW512RRM_MASKZ,
15069 op0.as_operand(),
15070 op1.as_operand(),
15071 op2.as_operand(),
15072 &NOREG,
15073 );
15074 }
15075}
15076
15077pub trait VpsllwEmitter<A, B, C> {
15100 fn vpsllw(&mut self, op0: A, op1: B, op2: C);
15101}
15102
15103impl<'a> VpsllwEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
15104 fn vpsllw(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
15105 self.emit(
15106 VPSLLW128RRI,
15107 op0.as_operand(),
15108 op1.as_operand(),
15109 op2.as_operand(),
15110 &NOREG,
15111 );
15112 }
15113}
15114
15115impl<'a> VpsllwEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
15116 fn vpsllw(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
15117 self.emit(
15118 VPSLLW256RRI,
15119 op0.as_operand(),
15120 op1.as_operand(),
15121 op2.as_operand(),
15122 &NOREG,
15123 );
15124 }
15125}
15126
15127impl<'a> VpsllwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15128 fn vpsllw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15129 self.emit(
15130 VPSLLW128RRR,
15131 op0.as_operand(),
15132 op1.as_operand(),
15133 op2.as_operand(),
15134 &NOREG,
15135 );
15136 }
15137}
15138
15139impl<'a> VpsllwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15140 fn vpsllw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15141 self.emit(
15142 VPSLLW128RRM,
15143 op0.as_operand(),
15144 op1.as_operand(),
15145 op2.as_operand(),
15146 &NOREG,
15147 );
15148 }
15149}
15150
15151impl<'a> VpsllwEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
15152 fn vpsllw(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
15153 self.emit(
15154 VPSLLW256RRR,
15155 op0.as_operand(),
15156 op1.as_operand(),
15157 op2.as_operand(),
15158 &NOREG,
15159 );
15160 }
15161}
15162
15163impl<'a> VpsllwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15164 fn vpsllw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15165 self.emit(
15166 VPSLLW256RRM,
15167 op0.as_operand(),
15168 op1.as_operand(),
15169 op2.as_operand(),
15170 &NOREG,
15171 );
15172 }
15173}
15174
15175impl<'a> VpsllwEmitter<Xmm, Mem, Imm> for Assembler<'a> {
15176 fn vpsllw(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
15177 self.emit(
15178 VPSLLW128RMI,
15179 op0.as_operand(),
15180 op1.as_operand(),
15181 op2.as_operand(),
15182 &NOREG,
15183 );
15184 }
15185}
15186
15187impl<'a> VpsllwEmitter<Ymm, Mem, Imm> for Assembler<'a> {
15188 fn vpsllw(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
15189 self.emit(
15190 VPSLLW256RMI,
15191 op0.as_operand(),
15192 op1.as_operand(),
15193 op2.as_operand(),
15194 &NOREG,
15195 );
15196 }
15197}
15198
15199impl<'a> VpsllwEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
15200 fn vpsllw(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
15201 self.emit(
15202 VPSLLW512RRI,
15203 op0.as_operand(),
15204 op1.as_operand(),
15205 op2.as_operand(),
15206 &NOREG,
15207 );
15208 }
15209}
15210
15211impl<'a> VpsllwEmitter<Zmm, Mem, Imm> for Assembler<'a> {
15212 fn vpsllw(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
15213 self.emit(
15214 VPSLLW512RMI,
15215 op0.as_operand(),
15216 op1.as_operand(),
15217 op2.as_operand(),
15218 &NOREG,
15219 );
15220 }
15221}
15222
15223impl<'a> VpsllwEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
15224 fn vpsllw(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
15225 self.emit(
15226 VPSLLW512RRR,
15227 op0.as_operand(),
15228 op1.as_operand(),
15229 op2.as_operand(),
15230 &NOREG,
15231 );
15232 }
15233}
15234
15235impl<'a> VpsllwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15236 fn vpsllw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15237 self.emit(
15238 VPSLLW512RRM,
15239 op0.as_operand(),
15240 op1.as_operand(),
15241 op2.as_operand(),
15242 &NOREG,
15243 );
15244 }
15245}
15246
15247pub trait VpsllwMaskEmitter<A, B, C> {
15270 fn vpsllw_mask(&mut self, op0: A, op1: B, op2: C);
15271}
15272
15273impl<'a> VpsllwMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
15274 fn vpsllw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
15275 self.emit(
15276 VPSLLW128RRI_MASK,
15277 op0.as_operand(),
15278 op1.as_operand(),
15279 op2.as_operand(),
15280 &NOREG,
15281 );
15282 }
15283}
15284
15285impl<'a> VpsllwMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
15286 fn vpsllw_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
15287 self.emit(
15288 VPSLLW128RMI_MASK,
15289 op0.as_operand(),
15290 op1.as_operand(),
15291 op2.as_operand(),
15292 &NOREG,
15293 );
15294 }
15295}
15296
15297impl<'a> VpsllwMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
15298 fn vpsllw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
15299 self.emit(
15300 VPSLLW256RRI_MASK,
15301 op0.as_operand(),
15302 op1.as_operand(),
15303 op2.as_operand(),
15304 &NOREG,
15305 );
15306 }
15307}
15308
15309impl<'a> VpsllwMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
15310 fn vpsllw_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
15311 self.emit(
15312 VPSLLW256RMI_MASK,
15313 op0.as_operand(),
15314 op1.as_operand(),
15315 op2.as_operand(),
15316 &NOREG,
15317 );
15318 }
15319}
15320
15321impl<'a> VpsllwMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
15322 fn vpsllw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
15323 self.emit(
15324 VPSLLW512RRI_MASK,
15325 op0.as_operand(),
15326 op1.as_operand(),
15327 op2.as_operand(),
15328 &NOREG,
15329 );
15330 }
15331}
15332
15333impl<'a> VpsllwMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
15334 fn vpsllw_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
15335 self.emit(
15336 VPSLLW512RMI_MASK,
15337 op0.as_operand(),
15338 op1.as_operand(),
15339 op2.as_operand(),
15340 &NOREG,
15341 );
15342 }
15343}
15344
15345impl<'a> VpsllwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15346 fn vpsllw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15347 self.emit(
15348 VPSLLW128RRR_MASK,
15349 op0.as_operand(),
15350 op1.as_operand(),
15351 op2.as_operand(),
15352 &NOREG,
15353 );
15354 }
15355}
15356
15357impl<'a> VpsllwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15358 fn vpsllw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15359 self.emit(
15360 VPSLLW128RRM_MASK,
15361 op0.as_operand(),
15362 op1.as_operand(),
15363 op2.as_operand(),
15364 &NOREG,
15365 );
15366 }
15367}
15368
15369impl<'a> VpsllwMaskEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
15370 fn vpsllw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
15371 self.emit(
15372 VPSLLW256RRR_MASK,
15373 op0.as_operand(),
15374 op1.as_operand(),
15375 op2.as_operand(),
15376 &NOREG,
15377 );
15378 }
15379}
15380
15381impl<'a> VpsllwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15382 fn vpsllw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15383 self.emit(
15384 VPSLLW256RRM_MASK,
15385 op0.as_operand(),
15386 op1.as_operand(),
15387 op2.as_operand(),
15388 &NOREG,
15389 );
15390 }
15391}
15392
15393impl<'a> VpsllwMaskEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
15394 fn vpsllw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
15395 self.emit(
15396 VPSLLW512RRR_MASK,
15397 op0.as_operand(),
15398 op1.as_operand(),
15399 op2.as_operand(),
15400 &NOREG,
15401 );
15402 }
15403}
15404
15405impl<'a> VpsllwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15406 fn vpsllw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15407 self.emit(
15408 VPSLLW512RRM_MASK,
15409 op0.as_operand(),
15410 op1.as_operand(),
15411 op2.as_operand(),
15412 &NOREG,
15413 );
15414 }
15415}
15416
15417pub trait VpsllwMaskzEmitter<A, B, C> {
15440 fn vpsllw_maskz(&mut self, op0: A, op1: B, op2: C);
15441}
15442
15443impl<'a> VpsllwMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
15444 fn vpsllw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
15445 self.emit(
15446 VPSLLW128RRI_MASKZ,
15447 op0.as_operand(),
15448 op1.as_operand(),
15449 op2.as_operand(),
15450 &NOREG,
15451 );
15452 }
15453}
15454
15455impl<'a> VpsllwMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
15456 fn vpsllw_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
15457 self.emit(
15458 VPSLLW128RMI_MASKZ,
15459 op0.as_operand(),
15460 op1.as_operand(),
15461 op2.as_operand(),
15462 &NOREG,
15463 );
15464 }
15465}
15466
15467impl<'a> VpsllwMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
15468 fn vpsllw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
15469 self.emit(
15470 VPSLLW256RRI_MASKZ,
15471 op0.as_operand(),
15472 op1.as_operand(),
15473 op2.as_operand(),
15474 &NOREG,
15475 );
15476 }
15477}
15478
15479impl<'a> VpsllwMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
15480 fn vpsllw_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
15481 self.emit(
15482 VPSLLW256RMI_MASKZ,
15483 op0.as_operand(),
15484 op1.as_operand(),
15485 op2.as_operand(),
15486 &NOREG,
15487 );
15488 }
15489}
15490
15491impl<'a> VpsllwMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
15492 fn vpsllw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
15493 self.emit(
15494 VPSLLW512RRI_MASKZ,
15495 op0.as_operand(),
15496 op1.as_operand(),
15497 op2.as_operand(),
15498 &NOREG,
15499 );
15500 }
15501}
15502
15503impl<'a> VpsllwMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
15504 fn vpsllw_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
15505 self.emit(
15506 VPSLLW512RMI_MASKZ,
15507 op0.as_operand(),
15508 op1.as_operand(),
15509 op2.as_operand(),
15510 &NOREG,
15511 );
15512 }
15513}
15514
15515impl<'a> VpsllwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15516 fn vpsllw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15517 self.emit(
15518 VPSLLW128RRR_MASKZ,
15519 op0.as_operand(),
15520 op1.as_operand(),
15521 op2.as_operand(),
15522 &NOREG,
15523 );
15524 }
15525}
15526
15527impl<'a> VpsllwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15528 fn vpsllw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15529 self.emit(
15530 VPSLLW128RRM_MASKZ,
15531 op0.as_operand(),
15532 op1.as_operand(),
15533 op2.as_operand(),
15534 &NOREG,
15535 );
15536 }
15537}
15538
15539impl<'a> VpsllwMaskzEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
15540 fn vpsllw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
15541 self.emit(
15542 VPSLLW256RRR_MASKZ,
15543 op0.as_operand(),
15544 op1.as_operand(),
15545 op2.as_operand(),
15546 &NOREG,
15547 );
15548 }
15549}
15550
15551impl<'a> VpsllwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15552 fn vpsllw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15553 self.emit(
15554 VPSLLW256RRM_MASKZ,
15555 op0.as_operand(),
15556 op1.as_operand(),
15557 op2.as_operand(),
15558 &NOREG,
15559 );
15560 }
15561}
15562
15563impl<'a> VpsllwMaskzEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
15564 fn vpsllw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
15565 self.emit(
15566 VPSLLW512RRR_MASKZ,
15567 op0.as_operand(),
15568 op1.as_operand(),
15569 op2.as_operand(),
15570 &NOREG,
15571 );
15572 }
15573}
15574
15575impl<'a> VpsllwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15576 fn vpsllw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15577 self.emit(
15578 VPSLLW512RRM_MASKZ,
15579 op0.as_operand(),
15580 op1.as_operand(),
15581 op2.as_operand(),
15582 &NOREG,
15583 );
15584 }
15585}
15586
15587pub trait VpsravwEmitter<A, B, C> {
15604 fn vpsravw(&mut self, op0: A, op1: B, op2: C);
15605}
15606
15607impl<'a> VpsravwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15608 fn vpsravw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15609 self.emit(
15610 VPSRAVW128RRR,
15611 op0.as_operand(),
15612 op1.as_operand(),
15613 op2.as_operand(),
15614 &NOREG,
15615 );
15616 }
15617}
15618
15619impl<'a> VpsravwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15620 fn vpsravw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15621 self.emit(
15622 VPSRAVW128RRM,
15623 op0.as_operand(),
15624 op1.as_operand(),
15625 op2.as_operand(),
15626 &NOREG,
15627 );
15628 }
15629}
15630
15631impl<'a> VpsravwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
15632 fn vpsravw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
15633 self.emit(
15634 VPSRAVW256RRR,
15635 op0.as_operand(),
15636 op1.as_operand(),
15637 op2.as_operand(),
15638 &NOREG,
15639 );
15640 }
15641}
15642
15643impl<'a> VpsravwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15644 fn vpsravw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15645 self.emit(
15646 VPSRAVW256RRM,
15647 op0.as_operand(),
15648 op1.as_operand(),
15649 op2.as_operand(),
15650 &NOREG,
15651 );
15652 }
15653}
15654
15655impl<'a> VpsravwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
15656 fn vpsravw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
15657 self.emit(
15658 VPSRAVW512RRR,
15659 op0.as_operand(),
15660 op1.as_operand(),
15661 op2.as_operand(),
15662 &NOREG,
15663 );
15664 }
15665}
15666
15667impl<'a> VpsravwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15668 fn vpsravw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15669 self.emit(
15670 VPSRAVW512RRM,
15671 op0.as_operand(),
15672 op1.as_operand(),
15673 op2.as_operand(),
15674 &NOREG,
15675 );
15676 }
15677}
15678
15679pub trait VpsravwMaskEmitter<A, B, C> {
15696 fn vpsravw_mask(&mut self, op0: A, op1: B, op2: C);
15697}
15698
15699impl<'a> VpsravwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15700 fn vpsravw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15701 self.emit(
15702 VPSRAVW128RRR_MASK,
15703 op0.as_operand(),
15704 op1.as_operand(),
15705 op2.as_operand(),
15706 &NOREG,
15707 );
15708 }
15709}
15710
15711impl<'a> VpsravwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15712 fn vpsravw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15713 self.emit(
15714 VPSRAVW128RRM_MASK,
15715 op0.as_operand(),
15716 op1.as_operand(),
15717 op2.as_operand(),
15718 &NOREG,
15719 );
15720 }
15721}
15722
15723impl<'a> VpsravwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
15724 fn vpsravw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
15725 self.emit(
15726 VPSRAVW256RRR_MASK,
15727 op0.as_operand(),
15728 op1.as_operand(),
15729 op2.as_operand(),
15730 &NOREG,
15731 );
15732 }
15733}
15734
15735impl<'a> VpsravwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15736 fn vpsravw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15737 self.emit(
15738 VPSRAVW256RRM_MASK,
15739 op0.as_operand(),
15740 op1.as_operand(),
15741 op2.as_operand(),
15742 &NOREG,
15743 );
15744 }
15745}
15746
15747impl<'a> VpsravwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
15748 fn vpsravw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
15749 self.emit(
15750 VPSRAVW512RRR_MASK,
15751 op0.as_operand(),
15752 op1.as_operand(),
15753 op2.as_operand(),
15754 &NOREG,
15755 );
15756 }
15757}
15758
15759impl<'a> VpsravwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15760 fn vpsravw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15761 self.emit(
15762 VPSRAVW512RRM_MASK,
15763 op0.as_operand(),
15764 op1.as_operand(),
15765 op2.as_operand(),
15766 &NOREG,
15767 );
15768 }
15769}
15770
15771pub trait VpsravwMaskzEmitter<A, B, C> {
15788 fn vpsravw_maskz(&mut self, op0: A, op1: B, op2: C);
15789}
15790
15791impl<'a> VpsravwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15792 fn vpsravw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15793 self.emit(
15794 VPSRAVW128RRR_MASKZ,
15795 op0.as_operand(),
15796 op1.as_operand(),
15797 op2.as_operand(),
15798 &NOREG,
15799 );
15800 }
15801}
15802
15803impl<'a> VpsravwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15804 fn vpsravw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15805 self.emit(
15806 VPSRAVW128RRM_MASKZ,
15807 op0.as_operand(),
15808 op1.as_operand(),
15809 op2.as_operand(),
15810 &NOREG,
15811 );
15812 }
15813}
15814
15815impl<'a> VpsravwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
15816 fn vpsravw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
15817 self.emit(
15818 VPSRAVW256RRR_MASKZ,
15819 op0.as_operand(),
15820 op1.as_operand(),
15821 op2.as_operand(),
15822 &NOREG,
15823 );
15824 }
15825}
15826
15827impl<'a> VpsravwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15828 fn vpsravw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15829 self.emit(
15830 VPSRAVW256RRM_MASKZ,
15831 op0.as_operand(),
15832 op1.as_operand(),
15833 op2.as_operand(),
15834 &NOREG,
15835 );
15836 }
15837}
15838
15839impl<'a> VpsravwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
15840 fn vpsravw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
15841 self.emit(
15842 VPSRAVW512RRR_MASKZ,
15843 op0.as_operand(),
15844 op1.as_operand(),
15845 op2.as_operand(),
15846 &NOREG,
15847 );
15848 }
15849}
15850
15851impl<'a> VpsravwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
15852 fn vpsravw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
15853 self.emit(
15854 VPSRAVW512RRM_MASKZ,
15855 op0.as_operand(),
15856 op1.as_operand(),
15857 op2.as_operand(),
15858 &NOREG,
15859 );
15860 }
15861}
15862
15863pub trait VpsrawEmitter<A, B, C> {
15886 fn vpsraw(&mut self, op0: A, op1: B, op2: C);
15887}
15888
15889impl<'a> VpsrawEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
15890 fn vpsraw(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
15891 self.emit(
15892 VPSRAW128RRI,
15893 op0.as_operand(),
15894 op1.as_operand(),
15895 op2.as_operand(),
15896 &NOREG,
15897 );
15898 }
15899}
15900
15901impl<'a> VpsrawEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
15902 fn vpsraw(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
15903 self.emit(
15904 VPSRAW256RRI,
15905 op0.as_operand(),
15906 op1.as_operand(),
15907 op2.as_operand(),
15908 &NOREG,
15909 );
15910 }
15911}
15912
15913impl<'a> VpsrawEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
15914 fn vpsraw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
15915 self.emit(
15916 VPSRAW128RRR,
15917 op0.as_operand(),
15918 op1.as_operand(),
15919 op2.as_operand(),
15920 &NOREG,
15921 );
15922 }
15923}
15924
15925impl<'a> VpsrawEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
15926 fn vpsraw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
15927 self.emit(
15928 VPSRAW128RRM,
15929 op0.as_operand(),
15930 op1.as_operand(),
15931 op2.as_operand(),
15932 &NOREG,
15933 );
15934 }
15935}
15936
15937impl<'a> VpsrawEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
15938 fn vpsraw(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
15939 self.emit(
15940 VPSRAW256RRR,
15941 op0.as_operand(),
15942 op1.as_operand(),
15943 op2.as_operand(),
15944 &NOREG,
15945 );
15946 }
15947}
15948
15949impl<'a> VpsrawEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
15950 fn vpsraw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
15951 self.emit(
15952 VPSRAW256RRM,
15953 op0.as_operand(),
15954 op1.as_operand(),
15955 op2.as_operand(),
15956 &NOREG,
15957 );
15958 }
15959}
15960
15961impl<'a> VpsrawEmitter<Xmm, Mem, Imm> for Assembler<'a> {
15962 fn vpsraw(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
15963 self.emit(
15964 VPSRAW128RMI,
15965 op0.as_operand(),
15966 op1.as_operand(),
15967 op2.as_operand(),
15968 &NOREG,
15969 );
15970 }
15971}
15972
15973impl<'a> VpsrawEmitter<Ymm, Mem, Imm> for Assembler<'a> {
15974 fn vpsraw(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
15975 self.emit(
15976 VPSRAW256RMI,
15977 op0.as_operand(),
15978 op1.as_operand(),
15979 op2.as_operand(),
15980 &NOREG,
15981 );
15982 }
15983}
15984
15985impl<'a> VpsrawEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
15986 fn vpsraw(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
15987 self.emit(
15988 VPSRAW512RRI,
15989 op0.as_operand(),
15990 op1.as_operand(),
15991 op2.as_operand(),
15992 &NOREG,
15993 );
15994 }
15995}
15996
15997impl<'a> VpsrawEmitter<Zmm, Mem, Imm> for Assembler<'a> {
15998 fn vpsraw(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
15999 self.emit(
16000 VPSRAW512RMI,
16001 op0.as_operand(),
16002 op1.as_operand(),
16003 op2.as_operand(),
16004 &NOREG,
16005 );
16006 }
16007}
16008
16009impl<'a> VpsrawEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
16010 fn vpsraw(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
16011 self.emit(
16012 VPSRAW512RRR,
16013 op0.as_operand(),
16014 op1.as_operand(),
16015 op2.as_operand(),
16016 &NOREG,
16017 );
16018 }
16019}
16020
16021impl<'a> VpsrawEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16022 fn vpsraw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16023 self.emit(
16024 VPSRAW512RRM,
16025 op0.as_operand(),
16026 op1.as_operand(),
16027 op2.as_operand(),
16028 &NOREG,
16029 );
16030 }
16031}
16032
16033pub trait VpsrawMaskEmitter<A, B, C> {
16056 fn vpsraw_mask(&mut self, op0: A, op1: B, op2: C);
16057}
16058
16059impl<'a> VpsrawMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
16060 fn vpsraw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
16061 self.emit(
16062 VPSRAW128RRI_MASK,
16063 op0.as_operand(),
16064 op1.as_operand(),
16065 op2.as_operand(),
16066 &NOREG,
16067 );
16068 }
16069}
16070
16071impl<'a> VpsrawMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
16072 fn vpsraw_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
16073 self.emit(
16074 VPSRAW128RMI_MASK,
16075 op0.as_operand(),
16076 op1.as_operand(),
16077 op2.as_operand(),
16078 &NOREG,
16079 );
16080 }
16081}
16082
16083impl<'a> VpsrawMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
16084 fn vpsraw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
16085 self.emit(
16086 VPSRAW256RRI_MASK,
16087 op0.as_operand(),
16088 op1.as_operand(),
16089 op2.as_operand(),
16090 &NOREG,
16091 );
16092 }
16093}
16094
16095impl<'a> VpsrawMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
16096 fn vpsraw_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
16097 self.emit(
16098 VPSRAW256RMI_MASK,
16099 op0.as_operand(),
16100 op1.as_operand(),
16101 op2.as_operand(),
16102 &NOREG,
16103 );
16104 }
16105}
16106
16107impl<'a> VpsrawMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
16108 fn vpsraw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
16109 self.emit(
16110 VPSRAW512RRI_MASK,
16111 op0.as_operand(),
16112 op1.as_operand(),
16113 op2.as_operand(),
16114 &NOREG,
16115 );
16116 }
16117}
16118
16119impl<'a> VpsrawMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
16120 fn vpsraw_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
16121 self.emit(
16122 VPSRAW512RMI_MASK,
16123 op0.as_operand(),
16124 op1.as_operand(),
16125 op2.as_operand(),
16126 &NOREG,
16127 );
16128 }
16129}
16130
16131impl<'a> VpsrawMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
16132 fn vpsraw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
16133 self.emit(
16134 VPSRAW128RRR_MASK,
16135 op0.as_operand(),
16136 op1.as_operand(),
16137 op2.as_operand(),
16138 &NOREG,
16139 );
16140 }
16141}
16142
16143impl<'a> VpsrawMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
16144 fn vpsraw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
16145 self.emit(
16146 VPSRAW128RRM_MASK,
16147 op0.as_operand(),
16148 op1.as_operand(),
16149 op2.as_operand(),
16150 &NOREG,
16151 );
16152 }
16153}
16154
16155impl<'a> VpsrawMaskEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
16156 fn vpsraw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
16157 self.emit(
16158 VPSRAW256RRR_MASK,
16159 op0.as_operand(),
16160 op1.as_operand(),
16161 op2.as_operand(),
16162 &NOREG,
16163 );
16164 }
16165}
16166
16167impl<'a> VpsrawMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
16168 fn vpsraw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
16169 self.emit(
16170 VPSRAW256RRM_MASK,
16171 op0.as_operand(),
16172 op1.as_operand(),
16173 op2.as_operand(),
16174 &NOREG,
16175 );
16176 }
16177}
16178
16179impl<'a> VpsrawMaskEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
16180 fn vpsraw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
16181 self.emit(
16182 VPSRAW512RRR_MASK,
16183 op0.as_operand(),
16184 op1.as_operand(),
16185 op2.as_operand(),
16186 &NOREG,
16187 );
16188 }
16189}
16190
16191impl<'a> VpsrawMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16192 fn vpsraw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16193 self.emit(
16194 VPSRAW512RRM_MASK,
16195 op0.as_operand(),
16196 op1.as_operand(),
16197 op2.as_operand(),
16198 &NOREG,
16199 );
16200 }
16201}
16202
16203pub trait VpsrawMaskzEmitter<A, B, C> {
16226 fn vpsraw_maskz(&mut self, op0: A, op1: B, op2: C);
16227}
16228
16229impl<'a> VpsrawMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
16230 fn vpsraw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
16231 self.emit(
16232 VPSRAW128RRI_MASKZ,
16233 op0.as_operand(),
16234 op1.as_operand(),
16235 op2.as_operand(),
16236 &NOREG,
16237 );
16238 }
16239}
16240
16241impl<'a> VpsrawMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
16242 fn vpsraw_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
16243 self.emit(
16244 VPSRAW128RMI_MASKZ,
16245 op0.as_operand(),
16246 op1.as_operand(),
16247 op2.as_operand(),
16248 &NOREG,
16249 );
16250 }
16251}
16252
16253impl<'a> VpsrawMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
16254 fn vpsraw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
16255 self.emit(
16256 VPSRAW256RRI_MASKZ,
16257 op0.as_operand(),
16258 op1.as_operand(),
16259 op2.as_operand(),
16260 &NOREG,
16261 );
16262 }
16263}
16264
16265impl<'a> VpsrawMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
16266 fn vpsraw_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
16267 self.emit(
16268 VPSRAW256RMI_MASKZ,
16269 op0.as_operand(),
16270 op1.as_operand(),
16271 op2.as_operand(),
16272 &NOREG,
16273 );
16274 }
16275}
16276
16277impl<'a> VpsrawMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
16278 fn vpsraw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
16279 self.emit(
16280 VPSRAW512RRI_MASKZ,
16281 op0.as_operand(),
16282 op1.as_operand(),
16283 op2.as_operand(),
16284 &NOREG,
16285 );
16286 }
16287}
16288
16289impl<'a> VpsrawMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
16290 fn vpsraw_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
16291 self.emit(
16292 VPSRAW512RMI_MASKZ,
16293 op0.as_operand(),
16294 op1.as_operand(),
16295 op2.as_operand(),
16296 &NOREG,
16297 );
16298 }
16299}
16300
16301impl<'a> VpsrawMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
16302 fn vpsraw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
16303 self.emit(
16304 VPSRAW128RRR_MASKZ,
16305 op0.as_operand(),
16306 op1.as_operand(),
16307 op2.as_operand(),
16308 &NOREG,
16309 );
16310 }
16311}
16312
16313impl<'a> VpsrawMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
16314 fn vpsraw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
16315 self.emit(
16316 VPSRAW128RRM_MASKZ,
16317 op0.as_operand(),
16318 op1.as_operand(),
16319 op2.as_operand(),
16320 &NOREG,
16321 );
16322 }
16323}
16324
16325impl<'a> VpsrawMaskzEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
16326 fn vpsraw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
16327 self.emit(
16328 VPSRAW256RRR_MASKZ,
16329 op0.as_operand(),
16330 op1.as_operand(),
16331 op2.as_operand(),
16332 &NOREG,
16333 );
16334 }
16335}
16336
16337impl<'a> VpsrawMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
16338 fn vpsraw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
16339 self.emit(
16340 VPSRAW256RRM_MASKZ,
16341 op0.as_operand(),
16342 op1.as_operand(),
16343 op2.as_operand(),
16344 &NOREG,
16345 );
16346 }
16347}
16348
16349impl<'a> VpsrawMaskzEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
16350 fn vpsraw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
16351 self.emit(
16352 VPSRAW512RRR_MASKZ,
16353 op0.as_operand(),
16354 op1.as_operand(),
16355 op2.as_operand(),
16356 &NOREG,
16357 );
16358 }
16359}
16360
16361impl<'a> VpsrawMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16362 fn vpsraw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16363 self.emit(
16364 VPSRAW512RRM_MASKZ,
16365 op0.as_operand(),
16366 op1.as_operand(),
16367 op2.as_operand(),
16368 &NOREG,
16369 );
16370 }
16371}
16372
16373pub trait VpsrldqEmitter<A, B, C> {
16390 fn vpsrldq(&mut self, op0: A, op1: B, op2: C);
16391}
16392
16393impl<'a> VpsrldqEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
16394 fn vpsrldq(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
16395 self.emit(
16396 VPSRLDQ128RRI,
16397 op0.as_operand(),
16398 op1.as_operand(),
16399 op2.as_operand(),
16400 &NOREG,
16401 );
16402 }
16403}
16404
16405impl<'a> VpsrldqEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
16406 fn vpsrldq(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
16407 self.emit(
16408 VPSRLDQ256RRI,
16409 op0.as_operand(),
16410 op1.as_operand(),
16411 op2.as_operand(),
16412 &NOREG,
16413 );
16414 }
16415}
16416
16417impl<'a> VpsrldqEmitter<Xmm, Mem, Imm> for Assembler<'a> {
16418 fn vpsrldq(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
16419 self.emit(
16420 VPSRLDQ128RMI,
16421 op0.as_operand(),
16422 op1.as_operand(),
16423 op2.as_operand(),
16424 &NOREG,
16425 );
16426 }
16427}
16428
16429impl<'a> VpsrldqEmitter<Ymm, Mem, Imm> for Assembler<'a> {
16430 fn vpsrldq(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
16431 self.emit(
16432 VPSRLDQ256RMI,
16433 op0.as_operand(),
16434 op1.as_operand(),
16435 op2.as_operand(),
16436 &NOREG,
16437 );
16438 }
16439}
16440
16441impl<'a> VpsrldqEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
16442 fn vpsrldq(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
16443 self.emit(
16444 VPSRLDQ512RRI,
16445 op0.as_operand(),
16446 op1.as_operand(),
16447 op2.as_operand(),
16448 &NOREG,
16449 );
16450 }
16451}
16452
16453impl<'a> VpsrldqEmitter<Zmm, Mem, Imm> for Assembler<'a> {
16454 fn vpsrldq(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
16455 self.emit(
16456 VPSRLDQ512RMI,
16457 op0.as_operand(),
16458 op1.as_operand(),
16459 op2.as_operand(),
16460 &NOREG,
16461 );
16462 }
16463}
16464
16465pub trait VpsrlvwEmitter<A, B, C> {
16482 fn vpsrlvw(&mut self, op0: A, op1: B, op2: C);
16483}
16484
16485impl<'a> VpsrlvwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
16486 fn vpsrlvw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
16487 self.emit(
16488 VPSRLVW128RRR,
16489 op0.as_operand(),
16490 op1.as_operand(),
16491 op2.as_operand(),
16492 &NOREG,
16493 );
16494 }
16495}
16496
16497impl<'a> VpsrlvwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
16498 fn vpsrlvw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
16499 self.emit(
16500 VPSRLVW128RRM,
16501 op0.as_operand(),
16502 op1.as_operand(),
16503 op2.as_operand(),
16504 &NOREG,
16505 );
16506 }
16507}
16508
16509impl<'a> VpsrlvwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
16510 fn vpsrlvw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
16511 self.emit(
16512 VPSRLVW256RRR,
16513 op0.as_operand(),
16514 op1.as_operand(),
16515 op2.as_operand(),
16516 &NOREG,
16517 );
16518 }
16519}
16520
16521impl<'a> VpsrlvwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
16522 fn vpsrlvw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
16523 self.emit(
16524 VPSRLVW256RRM,
16525 op0.as_operand(),
16526 op1.as_operand(),
16527 op2.as_operand(),
16528 &NOREG,
16529 );
16530 }
16531}
16532
16533impl<'a> VpsrlvwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
16534 fn vpsrlvw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
16535 self.emit(
16536 VPSRLVW512RRR,
16537 op0.as_operand(),
16538 op1.as_operand(),
16539 op2.as_operand(),
16540 &NOREG,
16541 );
16542 }
16543}
16544
16545impl<'a> VpsrlvwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16546 fn vpsrlvw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16547 self.emit(
16548 VPSRLVW512RRM,
16549 op0.as_operand(),
16550 op1.as_operand(),
16551 op2.as_operand(),
16552 &NOREG,
16553 );
16554 }
16555}
16556
16557pub trait VpsrlvwMaskEmitter<A, B, C> {
16574 fn vpsrlvw_mask(&mut self, op0: A, op1: B, op2: C);
16575}
16576
16577impl<'a> VpsrlvwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
16578 fn vpsrlvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
16579 self.emit(
16580 VPSRLVW128RRR_MASK,
16581 op0.as_operand(),
16582 op1.as_operand(),
16583 op2.as_operand(),
16584 &NOREG,
16585 );
16586 }
16587}
16588
16589impl<'a> VpsrlvwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
16590 fn vpsrlvw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
16591 self.emit(
16592 VPSRLVW128RRM_MASK,
16593 op0.as_operand(),
16594 op1.as_operand(),
16595 op2.as_operand(),
16596 &NOREG,
16597 );
16598 }
16599}
16600
16601impl<'a> VpsrlvwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
16602 fn vpsrlvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
16603 self.emit(
16604 VPSRLVW256RRR_MASK,
16605 op0.as_operand(),
16606 op1.as_operand(),
16607 op2.as_operand(),
16608 &NOREG,
16609 );
16610 }
16611}
16612
16613impl<'a> VpsrlvwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
16614 fn vpsrlvw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
16615 self.emit(
16616 VPSRLVW256RRM_MASK,
16617 op0.as_operand(),
16618 op1.as_operand(),
16619 op2.as_operand(),
16620 &NOREG,
16621 );
16622 }
16623}
16624
16625impl<'a> VpsrlvwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
16626 fn vpsrlvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
16627 self.emit(
16628 VPSRLVW512RRR_MASK,
16629 op0.as_operand(),
16630 op1.as_operand(),
16631 op2.as_operand(),
16632 &NOREG,
16633 );
16634 }
16635}
16636
16637impl<'a> VpsrlvwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16638 fn vpsrlvw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16639 self.emit(
16640 VPSRLVW512RRM_MASK,
16641 op0.as_operand(),
16642 op1.as_operand(),
16643 op2.as_operand(),
16644 &NOREG,
16645 );
16646 }
16647}
16648
16649pub trait VpsrlvwMaskzEmitter<A, B, C> {
16666 fn vpsrlvw_maskz(&mut self, op0: A, op1: B, op2: C);
16667}
16668
16669impl<'a> VpsrlvwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
16670 fn vpsrlvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
16671 self.emit(
16672 VPSRLVW128RRR_MASKZ,
16673 op0.as_operand(),
16674 op1.as_operand(),
16675 op2.as_operand(),
16676 &NOREG,
16677 );
16678 }
16679}
16680
16681impl<'a> VpsrlvwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
16682 fn vpsrlvw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
16683 self.emit(
16684 VPSRLVW128RRM_MASKZ,
16685 op0.as_operand(),
16686 op1.as_operand(),
16687 op2.as_operand(),
16688 &NOREG,
16689 );
16690 }
16691}
16692
16693impl<'a> VpsrlvwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
16694 fn vpsrlvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
16695 self.emit(
16696 VPSRLVW256RRR_MASKZ,
16697 op0.as_operand(),
16698 op1.as_operand(),
16699 op2.as_operand(),
16700 &NOREG,
16701 );
16702 }
16703}
16704
16705impl<'a> VpsrlvwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
16706 fn vpsrlvw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
16707 self.emit(
16708 VPSRLVW256RRM_MASKZ,
16709 op0.as_operand(),
16710 op1.as_operand(),
16711 op2.as_operand(),
16712 &NOREG,
16713 );
16714 }
16715}
16716
16717impl<'a> VpsrlvwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
16718 fn vpsrlvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
16719 self.emit(
16720 VPSRLVW512RRR_MASKZ,
16721 op0.as_operand(),
16722 op1.as_operand(),
16723 op2.as_operand(),
16724 &NOREG,
16725 );
16726 }
16727}
16728
16729impl<'a> VpsrlvwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16730 fn vpsrlvw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16731 self.emit(
16732 VPSRLVW512RRM_MASKZ,
16733 op0.as_operand(),
16734 op1.as_operand(),
16735 op2.as_operand(),
16736 &NOREG,
16737 );
16738 }
16739}
16740
16741pub trait VpsrlwEmitter<A, B, C> {
16764 fn vpsrlw(&mut self, op0: A, op1: B, op2: C);
16765}
16766
16767impl<'a> VpsrlwEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
16768 fn vpsrlw(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
16769 self.emit(
16770 VPSRLW128RRI,
16771 op0.as_operand(),
16772 op1.as_operand(),
16773 op2.as_operand(),
16774 &NOREG,
16775 );
16776 }
16777}
16778
16779impl<'a> VpsrlwEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
16780 fn vpsrlw(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
16781 self.emit(
16782 VPSRLW256RRI,
16783 op0.as_operand(),
16784 op1.as_operand(),
16785 op2.as_operand(),
16786 &NOREG,
16787 );
16788 }
16789}
16790
16791impl<'a> VpsrlwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
16792 fn vpsrlw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
16793 self.emit(
16794 VPSRLW128RRR,
16795 op0.as_operand(),
16796 op1.as_operand(),
16797 op2.as_operand(),
16798 &NOREG,
16799 );
16800 }
16801}
16802
16803impl<'a> VpsrlwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
16804 fn vpsrlw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
16805 self.emit(
16806 VPSRLW128RRM,
16807 op0.as_operand(),
16808 op1.as_operand(),
16809 op2.as_operand(),
16810 &NOREG,
16811 );
16812 }
16813}
16814
16815impl<'a> VpsrlwEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
16816 fn vpsrlw(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
16817 self.emit(
16818 VPSRLW256RRR,
16819 op0.as_operand(),
16820 op1.as_operand(),
16821 op2.as_operand(),
16822 &NOREG,
16823 );
16824 }
16825}
16826
16827impl<'a> VpsrlwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
16828 fn vpsrlw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
16829 self.emit(
16830 VPSRLW256RRM,
16831 op0.as_operand(),
16832 op1.as_operand(),
16833 op2.as_operand(),
16834 &NOREG,
16835 );
16836 }
16837}
16838
16839impl<'a> VpsrlwEmitter<Xmm, Mem, Imm> for Assembler<'a> {
16840 fn vpsrlw(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
16841 self.emit(
16842 VPSRLW128RMI,
16843 op0.as_operand(),
16844 op1.as_operand(),
16845 op2.as_operand(),
16846 &NOREG,
16847 );
16848 }
16849}
16850
16851impl<'a> VpsrlwEmitter<Ymm, Mem, Imm> for Assembler<'a> {
16852 fn vpsrlw(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
16853 self.emit(
16854 VPSRLW256RMI,
16855 op0.as_operand(),
16856 op1.as_operand(),
16857 op2.as_operand(),
16858 &NOREG,
16859 );
16860 }
16861}
16862
16863impl<'a> VpsrlwEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
16864 fn vpsrlw(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
16865 self.emit(
16866 VPSRLW512RRI,
16867 op0.as_operand(),
16868 op1.as_operand(),
16869 op2.as_operand(),
16870 &NOREG,
16871 );
16872 }
16873}
16874
16875impl<'a> VpsrlwEmitter<Zmm, Mem, Imm> for Assembler<'a> {
16876 fn vpsrlw(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
16877 self.emit(
16878 VPSRLW512RMI,
16879 op0.as_operand(),
16880 op1.as_operand(),
16881 op2.as_operand(),
16882 &NOREG,
16883 );
16884 }
16885}
16886
16887impl<'a> VpsrlwEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
16888 fn vpsrlw(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
16889 self.emit(
16890 VPSRLW512RRR,
16891 op0.as_operand(),
16892 op1.as_operand(),
16893 op2.as_operand(),
16894 &NOREG,
16895 );
16896 }
16897}
16898
16899impl<'a> VpsrlwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
16900 fn vpsrlw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
16901 self.emit(
16902 VPSRLW512RRM,
16903 op0.as_operand(),
16904 op1.as_operand(),
16905 op2.as_operand(),
16906 &NOREG,
16907 );
16908 }
16909}
16910
16911pub trait VpsrlwMaskEmitter<A, B, C> {
16934 fn vpsrlw_mask(&mut self, op0: A, op1: B, op2: C);
16935}
16936
16937impl<'a> VpsrlwMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
16938 fn vpsrlw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
16939 self.emit(
16940 VPSRLW128RRI_MASK,
16941 op0.as_operand(),
16942 op1.as_operand(),
16943 op2.as_operand(),
16944 &NOREG,
16945 );
16946 }
16947}
16948
16949impl<'a> VpsrlwMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
16950 fn vpsrlw_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
16951 self.emit(
16952 VPSRLW128RMI_MASK,
16953 op0.as_operand(),
16954 op1.as_operand(),
16955 op2.as_operand(),
16956 &NOREG,
16957 );
16958 }
16959}
16960
16961impl<'a> VpsrlwMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
16962 fn vpsrlw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
16963 self.emit(
16964 VPSRLW256RRI_MASK,
16965 op0.as_operand(),
16966 op1.as_operand(),
16967 op2.as_operand(),
16968 &NOREG,
16969 );
16970 }
16971}
16972
16973impl<'a> VpsrlwMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
16974 fn vpsrlw_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
16975 self.emit(
16976 VPSRLW256RMI_MASK,
16977 op0.as_operand(),
16978 op1.as_operand(),
16979 op2.as_operand(),
16980 &NOREG,
16981 );
16982 }
16983}
16984
16985impl<'a> VpsrlwMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
16986 fn vpsrlw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
16987 self.emit(
16988 VPSRLW512RRI_MASK,
16989 op0.as_operand(),
16990 op1.as_operand(),
16991 op2.as_operand(),
16992 &NOREG,
16993 );
16994 }
16995}
16996
16997impl<'a> VpsrlwMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
16998 fn vpsrlw_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
16999 self.emit(
17000 VPSRLW512RMI_MASK,
17001 op0.as_operand(),
17002 op1.as_operand(),
17003 op2.as_operand(),
17004 &NOREG,
17005 );
17006 }
17007}
17008
17009impl<'a> VpsrlwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17010 fn vpsrlw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17011 self.emit(
17012 VPSRLW128RRR_MASK,
17013 op0.as_operand(),
17014 op1.as_operand(),
17015 op2.as_operand(),
17016 &NOREG,
17017 );
17018 }
17019}
17020
17021impl<'a> VpsrlwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17022 fn vpsrlw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17023 self.emit(
17024 VPSRLW128RRM_MASK,
17025 op0.as_operand(),
17026 op1.as_operand(),
17027 op2.as_operand(),
17028 &NOREG,
17029 );
17030 }
17031}
17032
17033impl<'a> VpsrlwMaskEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
17034 fn vpsrlw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
17035 self.emit(
17036 VPSRLW256RRR_MASK,
17037 op0.as_operand(),
17038 op1.as_operand(),
17039 op2.as_operand(),
17040 &NOREG,
17041 );
17042 }
17043}
17044
17045impl<'a> VpsrlwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17046 fn vpsrlw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17047 self.emit(
17048 VPSRLW256RRM_MASK,
17049 op0.as_operand(),
17050 op1.as_operand(),
17051 op2.as_operand(),
17052 &NOREG,
17053 );
17054 }
17055}
17056
17057impl<'a> VpsrlwMaskEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
17058 fn vpsrlw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
17059 self.emit(
17060 VPSRLW512RRR_MASK,
17061 op0.as_operand(),
17062 op1.as_operand(),
17063 op2.as_operand(),
17064 &NOREG,
17065 );
17066 }
17067}
17068
17069impl<'a> VpsrlwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17070 fn vpsrlw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17071 self.emit(
17072 VPSRLW512RRM_MASK,
17073 op0.as_operand(),
17074 op1.as_operand(),
17075 op2.as_operand(),
17076 &NOREG,
17077 );
17078 }
17079}
17080
17081pub trait VpsrlwMaskzEmitter<A, B, C> {
17104 fn vpsrlw_maskz(&mut self, op0: A, op1: B, op2: C);
17105}
17106
17107impl<'a> VpsrlwMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
17108 fn vpsrlw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
17109 self.emit(
17110 VPSRLW128RRI_MASKZ,
17111 op0.as_operand(),
17112 op1.as_operand(),
17113 op2.as_operand(),
17114 &NOREG,
17115 );
17116 }
17117}
17118
17119impl<'a> VpsrlwMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
17120 fn vpsrlw_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
17121 self.emit(
17122 VPSRLW128RMI_MASKZ,
17123 op0.as_operand(),
17124 op1.as_operand(),
17125 op2.as_operand(),
17126 &NOREG,
17127 );
17128 }
17129}
17130
17131impl<'a> VpsrlwMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
17132 fn vpsrlw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
17133 self.emit(
17134 VPSRLW256RRI_MASKZ,
17135 op0.as_operand(),
17136 op1.as_operand(),
17137 op2.as_operand(),
17138 &NOREG,
17139 );
17140 }
17141}
17142
17143impl<'a> VpsrlwMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
17144 fn vpsrlw_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
17145 self.emit(
17146 VPSRLW256RMI_MASKZ,
17147 op0.as_operand(),
17148 op1.as_operand(),
17149 op2.as_operand(),
17150 &NOREG,
17151 );
17152 }
17153}
17154
17155impl<'a> VpsrlwMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
17156 fn vpsrlw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
17157 self.emit(
17158 VPSRLW512RRI_MASKZ,
17159 op0.as_operand(),
17160 op1.as_operand(),
17161 op2.as_operand(),
17162 &NOREG,
17163 );
17164 }
17165}
17166
17167impl<'a> VpsrlwMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
17168 fn vpsrlw_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
17169 self.emit(
17170 VPSRLW512RMI_MASKZ,
17171 op0.as_operand(),
17172 op1.as_operand(),
17173 op2.as_operand(),
17174 &NOREG,
17175 );
17176 }
17177}
17178
17179impl<'a> VpsrlwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17180 fn vpsrlw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17181 self.emit(
17182 VPSRLW128RRR_MASKZ,
17183 op0.as_operand(),
17184 op1.as_operand(),
17185 op2.as_operand(),
17186 &NOREG,
17187 );
17188 }
17189}
17190
17191impl<'a> VpsrlwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17192 fn vpsrlw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17193 self.emit(
17194 VPSRLW128RRM_MASKZ,
17195 op0.as_operand(),
17196 op1.as_operand(),
17197 op2.as_operand(),
17198 &NOREG,
17199 );
17200 }
17201}
17202
17203impl<'a> VpsrlwMaskzEmitter<Ymm, Ymm, Xmm> for Assembler<'a> {
17204 fn vpsrlw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Xmm) {
17205 self.emit(
17206 VPSRLW256RRR_MASKZ,
17207 op0.as_operand(),
17208 op1.as_operand(),
17209 op2.as_operand(),
17210 &NOREG,
17211 );
17212 }
17213}
17214
17215impl<'a> VpsrlwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17216 fn vpsrlw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17217 self.emit(
17218 VPSRLW256RRM_MASKZ,
17219 op0.as_operand(),
17220 op1.as_operand(),
17221 op2.as_operand(),
17222 &NOREG,
17223 );
17224 }
17225}
17226
17227impl<'a> VpsrlwMaskzEmitter<Zmm, Zmm, Xmm> for Assembler<'a> {
17228 fn vpsrlw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Xmm) {
17229 self.emit(
17230 VPSRLW512RRR_MASKZ,
17231 op0.as_operand(),
17232 op1.as_operand(),
17233 op2.as_operand(),
17234 &NOREG,
17235 );
17236 }
17237}
17238
17239impl<'a> VpsrlwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17240 fn vpsrlw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17241 self.emit(
17242 VPSRLW512RRM_MASKZ,
17243 op0.as_operand(),
17244 op1.as_operand(),
17245 op2.as_operand(),
17246 &NOREG,
17247 );
17248 }
17249}
17250
17251pub trait VpsubbEmitter<A, B, C> {
17268 fn vpsubb(&mut self, op0: A, op1: B, op2: C);
17269}
17270
17271impl<'a> VpsubbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17272 fn vpsubb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17273 self.emit(
17274 VPSUBB128RRR,
17275 op0.as_operand(),
17276 op1.as_operand(),
17277 op2.as_operand(),
17278 &NOREG,
17279 );
17280 }
17281}
17282
17283impl<'a> VpsubbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17284 fn vpsubb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17285 self.emit(
17286 VPSUBB128RRM,
17287 op0.as_operand(),
17288 op1.as_operand(),
17289 op2.as_operand(),
17290 &NOREG,
17291 );
17292 }
17293}
17294
17295impl<'a> VpsubbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17296 fn vpsubb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17297 self.emit(
17298 VPSUBB256RRR,
17299 op0.as_operand(),
17300 op1.as_operand(),
17301 op2.as_operand(),
17302 &NOREG,
17303 );
17304 }
17305}
17306
17307impl<'a> VpsubbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17308 fn vpsubb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17309 self.emit(
17310 VPSUBB256RRM,
17311 op0.as_operand(),
17312 op1.as_operand(),
17313 op2.as_operand(),
17314 &NOREG,
17315 );
17316 }
17317}
17318
17319impl<'a> VpsubbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17320 fn vpsubb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17321 self.emit(
17322 VPSUBB512RRR,
17323 op0.as_operand(),
17324 op1.as_operand(),
17325 op2.as_operand(),
17326 &NOREG,
17327 );
17328 }
17329}
17330
17331impl<'a> VpsubbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17332 fn vpsubb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17333 self.emit(
17334 VPSUBB512RRM,
17335 op0.as_operand(),
17336 op1.as_operand(),
17337 op2.as_operand(),
17338 &NOREG,
17339 );
17340 }
17341}
17342
17343pub trait VpsubbMaskEmitter<A, B, C> {
17360 fn vpsubb_mask(&mut self, op0: A, op1: B, op2: C);
17361}
17362
17363impl<'a> VpsubbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17364 fn vpsubb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17365 self.emit(
17366 VPSUBB128RRR_MASK,
17367 op0.as_operand(),
17368 op1.as_operand(),
17369 op2.as_operand(),
17370 &NOREG,
17371 );
17372 }
17373}
17374
17375impl<'a> VpsubbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17376 fn vpsubb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17377 self.emit(
17378 VPSUBB128RRM_MASK,
17379 op0.as_operand(),
17380 op1.as_operand(),
17381 op2.as_operand(),
17382 &NOREG,
17383 );
17384 }
17385}
17386
17387impl<'a> VpsubbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17388 fn vpsubb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17389 self.emit(
17390 VPSUBB256RRR_MASK,
17391 op0.as_operand(),
17392 op1.as_operand(),
17393 op2.as_operand(),
17394 &NOREG,
17395 );
17396 }
17397}
17398
17399impl<'a> VpsubbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17400 fn vpsubb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17401 self.emit(
17402 VPSUBB256RRM_MASK,
17403 op0.as_operand(),
17404 op1.as_operand(),
17405 op2.as_operand(),
17406 &NOREG,
17407 );
17408 }
17409}
17410
17411impl<'a> VpsubbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17412 fn vpsubb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17413 self.emit(
17414 VPSUBB512RRR_MASK,
17415 op0.as_operand(),
17416 op1.as_operand(),
17417 op2.as_operand(),
17418 &NOREG,
17419 );
17420 }
17421}
17422
17423impl<'a> VpsubbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17424 fn vpsubb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17425 self.emit(
17426 VPSUBB512RRM_MASK,
17427 op0.as_operand(),
17428 op1.as_operand(),
17429 op2.as_operand(),
17430 &NOREG,
17431 );
17432 }
17433}
17434
17435pub trait VpsubbMaskzEmitter<A, B, C> {
17452 fn vpsubb_maskz(&mut self, op0: A, op1: B, op2: C);
17453}
17454
17455impl<'a> VpsubbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17456 fn vpsubb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17457 self.emit(
17458 VPSUBB128RRR_MASKZ,
17459 op0.as_operand(),
17460 op1.as_operand(),
17461 op2.as_operand(),
17462 &NOREG,
17463 );
17464 }
17465}
17466
17467impl<'a> VpsubbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17468 fn vpsubb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17469 self.emit(
17470 VPSUBB128RRM_MASKZ,
17471 op0.as_operand(),
17472 op1.as_operand(),
17473 op2.as_operand(),
17474 &NOREG,
17475 );
17476 }
17477}
17478
17479impl<'a> VpsubbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17480 fn vpsubb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17481 self.emit(
17482 VPSUBB256RRR_MASKZ,
17483 op0.as_operand(),
17484 op1.as_operand(),
17485 op2.as_operand(),
17486 &NOREG,
17487 );
17488 }
17489}
17490
17491impl<'a> VpsubbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17492 fn vpsubb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17493 self.emit(
17494 VPSUBB256RRM_MASKZ,
17495 op0.as_operand(),
17496 op1.as_operand(),
17497 op2.as_operand(),
17498 &NOREG,
17499 );
17500 }
17501}
17502
17503impl<'a> VpsubbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17504 fn vpsubb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17505 self.emit(
17506 VPSUBB512RRR_MASKZ,
17507 op0.as_operand(),
17508 op1.as_operand(),
17509 op2.as_operand(),
17510 &NOREG,
17511 );
17512 }
17513}
17514
17515impl<'a> VpsubbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17516 fn vpsubb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17517 self.emit(
17518 VPSUBB512RRM_MASKZ,
17519 op0.as_operand(),
17520 op1.as_operand(),
17521 op2.as_operand(),
17522 &NOREG,
17523 );
17524 }
17525}
17526
17527pub trait VpsubsbEmitter<A, B, C> {
17544 fn vpsubsb(&mut self, op0: A, op1: B, op2: C);
17545}
17546
17547impl<'a> VpsubsbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17548 fn vpsubsb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17549 self.emit(
17550 VPSUBSB128RRR,
17551 op0.as_operand(),
17552 op1.as_operand(),
17553 op2.as_operand(),
17554 &NOREG,
17555 );
17556 }
17557}
17558
17559impl<'a> VpsubsbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17560 fn vpsubsb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17561 self.emit(
17562 VPSUBSB128RRM,
17563 op0.as_operand(),
17564 op1.as_operand(),
17565 op2.as_operand(),
17566 &NOREG,
17567 );
17568 }
17569}
17570
17571impl<'a> VpsubsbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17572 fn vpsubsb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17573 self.emit(
17574 VPSUBSB256RRR,
17575 op0.as_operand(),
17576 op1.as_operand(),
17577 op2.as_operand(),
17578 &NOREG,
17579 );
17580 }
17581}
17582
17583impl<'a> VpsubsbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17584 fn vpsubsb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17585 self.emit(
17586 VPSUBSB256RRM,
17587 op0.as_operand(),
17588 op1.as_operand(),
17589 op2.as_operand(),
17590 &NOREG,
17591 );
17592 }
17593}
17594
17595impl<'a> VpsubsbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17596 fn vpsubsb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17597 self.emit(
17598 VPSUBSB512RRR,
17599 op0.as_operand(),
17600 op1.as_operand(),
17601 op2.as_operand(),
17602 &NOREG,
17603 );
17604 }
17605}
17606
17607impl<'a> VpsubsbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17608 fn vpsubsb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17609 self.emit(
17610 VPSUBSB512RRM,
17611 op0.as_operand(),
17612 op1.as_operand(),
17613 op2.as_operand(),
17614 &NOREG,
17615 );
17616 }
17617}
17618
17619pub trait VpsubsbMaskEmitter<A, B, C> {
17636 fn vpsubsb_mask(&mut self, op0: A, op1: B, op2: C);
17637}
17638
17639impl<'a> VpsubsbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17640 fn vpsubsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17641 self.emit(
17642 VPSUBSB128RRR_MASK,
17643 op0.as_operand(),
17644 op1.as_operand(),
17645 op2.as_operand(),
17646 &NOREG,
17647 );
17648 }
17649}
17650
17651impl<'a> VpsubsbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17652 fn vpsubsb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17653 self.emit(
17654 VPSUBSB128RRM_MASK,
17655 op0.as_operand(),
17656 op1.as_operand(),
17657 op2.as_operand(),
17658 &NOREG,
17659 );
17660 }
17661}
17662
17663impl<'a> VpsubsbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17664 fn vpsubsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17665 self.emit(
17666 VPSUBSB256RRR_MASK,
17667 op0.as_operand(),
17668 op1.as_operand(),
17669 op2.as_operand(),
17670 &NOREG,
17671 );
17672 }
17673}
17674
17675impl<'a> VpsubsbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17676 fn vpsubsb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17677 self.emit(
17678 VPSUBSB256RRM_MASK,
17679 op0.as_operand(),
17680 op1.as_operand(),
17681 op2.as_operand(),
17682 &NOREG,
17683 );
17684 }
17685}
17686
17687impl<'a> VpsubsbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17688 fn vpsubsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17689 self.emit(
17690 VPSUBSB512RRR_MASK,
17691 op0.as_operand(),
17692 op1.as_operand(),
17693 op2.as_operand(),
17694 &NOREG,
17695 );
17696 }
17697}
17698
17699impl<'a> VpsubsbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17700 fn vpsubsb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17701 self.emit(
17702 VPSUBSB512RRM_MASK,
17703 op0.as_operand(),
17704 op1.as_operand(),
17705 op2.as_operand(),
17706 &NOREG,
17707 );
17708 }
17709}
17710
17711pub trait VpsubsbMaskzEmitter<A, B, C> {
17728 fn vpsubsb_maskz(&mut self, op0: A, op1: B, op2: C);
17729}
17730
17731impl<'a> VpsubsbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17732 fn vpsubsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17733 self.emit(
17734 VPSUBSB128RRR_MASKZ,
17735 op0.as_operand(),
17736 op1.as_operand(),
17737 op2.as_operand(),
17738 &NOREG,
17739 );
17740 }
17741}
17742
17743impl<'a> VpsubsbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17744 fn vpsubsb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17745 self.emit(
17746 VPSUBSB128RRM_MASKZ,
17747 op0.as_operand(),
17748 op1.as_operand(),
17749 op2.as_operand(),
17750 &NOREG,
17751 );
17752 }
17753}
17754
17755impl<'a> VpsubsbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17756 fn vpsubsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17757 self.emit(
17758 VPSUBSB256RRR_MASKZ,
17759 op0.as_operand(),
17760 op1.as_operand(),
17761 op2.as_operand(),
17762 &NOREG,
17763 );
17764 }
17765}
17766
17767impl<'a> VpsubsbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17768 fn vpsubsb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17769 self.emit(
17770 VPSUBSB256RRM_MASKZ,
17771 op0.as_operand(),
17772 op1.as_operand(),
17773 op2.as_operand(),
17774 &NOREG,
17775 );
17776 }
17777}
17778
17779impl<'a> VpsubsbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17780 fn vpsubsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17781 self.emit(
17782 VPSUBSB512RRR_MASKZ,
17783 op0.as_operand(),
17784 op1.as_operand(),
17785 op2.as_operand(),
17786 &NOREG,
17787 );
17788 }
17789}
17790
17791impl<'a> VpsubsbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17792 fn vpsubsb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17793 self.emit(
17794 VPSUBSB512RRM_MASKZ,
17795 op0.as_operand(),
17796 op1.as_operand(),
17797 op2.as_operand(),
17798 &NOREG,
17799 );
17800 }
17801}
17802
17803pub trait VpsubswEmitter<A, B, C> {
17820 fn vpsubsw(&mut self, op0: A, op1: B, op2: C);
17821}
17822
17823impl<'a> VpsubswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17824 fn vpsubsw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17825 self.emit(
17826 VPSUBSW128RRR,
17827 op0.as_operand(),
17828 op1.as_operand(),
17829 op2.as_operand(),
17830 &NOREG,
17831 );
17832 }
17833}
17834
17835impl<'a> VpsubswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17836 fn vpsubsw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17837 self.emit(
17838 VPSUBSW128RRM,
17839 op0.as_operand(),
17840 op1.as_operand(),
17841 op2.as_operand(),
17842 &NOREG,
17843 );
17844 }
17845}
17846
17847impl<'a> VpsubswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17848 fn vpsubsw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17849 self.emit(
17850 VPSUBSW256RRR,
17851 op0.as_operand(),
17852 op1.as_operand(),
17853 op2.as_operand(),
17854 &NOREG,
17855 );
17856 }
17857}
17858
17859impl<'a> VpsubswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17860 fn vpsubsw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17861 self.emit(
17862 VPSUBSW256RRM,
17863 op0.as_operand(),
17864 op1.as_operand(),
17865 op2.as_operand(),
17866 &NOREG,
17867 );
17868 }
17869}
17870
17871impl<'a> VpsubswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17872 fn vpsubsw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17873 self.emit(
17874 VPSUBSW512RRR,
17875 op0.as_operand(),
17876 op1.as_operand(),
17877 op2.as_operand(),
17878 &NOREG,
17879 );
17880 }
17881}
17882
17883impl<'a> VpsubswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17884 fn vpsubsw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17885 self.emit(
17886 VPSUBSW512RRM,
17887 op0.as_operand(),
17888 op1.as_operand(),
17889 op2.as_operand(),
17890 &NOREG,
17891 );
17892 }
17893}
17894
17895pub trait VpsubswMaskEmitter<A, B, C> {
17912 fn vpsubsw_mask(&mut self, op0: A, op1: B, op2: C);
17913}
17914
17915impl<'a> VpsubswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
17916 fn vpsubsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
17917 self.emit(
17918 VPSUBSW128RRR_MASK,
17919 op0.as_operand(),
17920 op1.as_operand(),
17921 op2.as_operand(),
17922 &NOREG,
17923 );
17924 }
17925}
17926
17927impl<'a> VpsubswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
17928 fn vpsubsw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
17929 self.emit(
17930 VPSUBSW128RRM_MASK,
17931 op0.as_operand(),
17932 op1.as_operand(),
17933 op2.as_operand(),
17934 &NOREG,
17935 );
17936 }
17937}
17938
17939impl<'a> VpsubswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
17940 fn vpsubsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
17941 self.emit(
17942 VPSUBSW256RRR_MASK,
17943 op0.as_operand(),
17944 op1.as_operand(),
17945 op2.as_operand(),
17946 &NOREG,
17947 );
17948 }
17949}
17950
17951impl<'a> VpsubswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
17952 fn vpsubsw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
17953 self.emit(
17954 VPSUBSW256RRM_MASK,
17955 op0.as_operand(),
17956 op1.as_operand(),
17957 op2.as_operand(),
17958 &NOREG,
17959 );
17960 }
17961}
17962
17963impl<'a> VpsubswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
17964 fn vpsubsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
17965 self.emit(
17966 VPSUBSW512RRR_MASK,
17967 op0.as_operand(),
17968 op1.as_operand(),
17969 op2.as_operand(),
17970 &NOREG,
17971 );
17972 }
17973}
17974
17975impl<'a> VpsubswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
17976 fn vpsubsw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
17977 self.emit(
17978 VPSUBSW512RRM_MASK,
17979 op0.as_operand(),
17980 op1.as_operand(),
17981 op2.as_operand(),
17982 &NOREG,
17983 );
17984 }
17985}
17986
17987pub trait VpsubswMaskzEmitter<A, B, C> {
18004 fn vpsubsw_maskz(&mut self, op0: A, op1: B, op2: C);
18005}
18006
18007impl<'a> VpsubswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18008 fn vpsubsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18009 self.emit(
18010 VPSUBSW128RRR_MASKZ,
18011 op0.as_operand(),
18012 op1.as_operand(),
18013 op2.as_operand(),
18014 &NOREG,
18015 );
18016 }
18017}
18018
18019impl<'a> VpsubswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18020 fn vpsubsw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18021 self.emit(
18022 VPSUBSW128RRM_MASKZ,
18023 op0.as_operand(),
18024 op1.as_operand(),
18025 op2.as_operand(),
18026 &NOREG,
18027 );
18028 }
18029}
18030
18031impl<'a> VpsubswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18032 fn vpsubsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18033 self.emit(
18034 VPSUBSW256RRR_MASKZ,
18035 op0.as_operand(),
18036 op1.as_operand(),
18037 op2.as_operand(),
18038 &NOREG,
18039 );
18040 }
18041}
18042
18043impl<'a> VpsubswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18044 fn vpsubsw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18045 self.emit(
18046 VPSUBSW256RRM_MASKZ,
18047 op0.as_operand(),
18048 op1.as_operand(),
18049 op2.as_operand(),
18050 &NOREG,
18051 );
18052 }
18053}
18054
18055impl<'a> VpsubswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18056 fn vpsubsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18057 self.emit(
18058 VPSUBSW512RRR_MASKZ,
18059 op0.as_operand(),
18060 op1.as_operand(),
18061 op2.as_operand(),
18062 &NOREG,
18063 );
18064 }
18065}
18066
18067impl<'a> VpsubswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18068 fn vpsubsw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18069 self.emit(
18070 VPSUBSW512RRM_MASKZ,
18071 op0.as_operand(),
18072 op1.as_operand(),
18073 op2.as_operand(),
18074 &NOREG,
18075 );
18076 }
18077}
18078
18079pub trait VpsubusbEmitter<A, B, C> {
18096 fn vpsubusb(&mut self, op0: A, op1: B, op2: C);
18097}
18098
18099impl<'a> VpsubusbEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18100 fn vpsubusb(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18101 self.emit(
18102 VPSUBUSB128RRR,
18103 op0.as_operand(),
18104 op1.as_operand(),
18105 op2.as_operand(),
18106 &NOREG,
18107 );
18108 }
18109}
18110
18111impl<'a> VpsubusbEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18112 fn vpsubusb(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18113 self.emit(
18114 VPSUBUSB128RRM,
18115 op0.as_operand(),
18116 op1.as_operand(),
18117 op2.as_operand(),
18118 &NOREG,
18119 );
18120 }
18121}
18122
18123impl<'a> VpsubusbEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18124 fn vpsubusb(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18125 self.emit(
18126 VPSUBUSB256RRR,
18127 op0.as_operand(),
18128 op1.as_operand(),
18129 op2.as_operand(),
18130 &NOREG,
18131 );
18132 }
18133}
18134
18135impl<'a> VpsubusbEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18136 fn vpsubusb(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18137 self.emit(
18138 VPSUBUSB256RRM,
18139 op0.as_operand(),
18140 op1.as_operand(),
18141 op2.as_operand(),
18142 &NOREG,
18143 );
18144 }
18145}
18146
18147impl<'a> VpsubusbEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18148 fn vpsubusb(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18149 self.emit(
18150 VPSUBUSB512RRR,
18151 op0.as_operand(),
18152 op1.as_operand(),
18153 op2.as_operand(),
18154 &NOREG,
18155 );
18156 }
18157}
18158
18159impl<'a> VpsubusbEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18160 fn vpsubusb(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18161 self.emit(
18162 VPSUBUSB512RRM,
18163 op0.as_operand(),
18164 op1.as_operand(),
18165 op2.as_operand(),
18166 &NOREG,
18167 );
18168 }
18169}
18170
18171pub trait VpsubusbMaskEmitter<A, B, C> {
18188 fn vpsubusb_mask(&mut self, op0: A, op1: B, op2: C);
18189}
18190
18191impl<'a> VpsubusbMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18192 fn vpsubusb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18193 self.emit(
18194 VPSUBUSB128RRR_MASK,
18195 op0.as_operand(),
18196 op1.as_operand(),
18197 op2.as_operand(),
18198 &NOREG,
18199 );
18200 }
18201}
18202
18203impl<'a> VpsubusbMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18204 fn vpsubusb_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18205 self.emit(
18206 VPSUBUSB128RRM_MASK,
18207 op0.as_operand(),
18208 op1.as_operand(),
18209 op2.as_operand(),
18210 &NOREG,
18211 );
18212 }
18213}
18214
18215impl<'a> VpsubusbMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18216 fn vpsubusb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18217 self.emit(
18218 VPSUBUSB256RRR_MASK,
18219 op0.as_operand(),
18220 op1.as_operand(),
18221 op2.as_operand(),
18222 &NOREG,
18223 );
18224 }
18225}
18226
18227impl<'a> VpsubusbMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18228 fn vpsubusb_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18229 self.emit(
18230 VPSUBUSB256RRM_MASK,
18231 op0.as_operand(),
18232 op1.as_operand(),
18233 op2.as_operand(),
18234 &NOREG,
18235 );
18236 }
18237}
18238
18239impl<'a> VpsubusbMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18240 fn vpsubusb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18241 self.emit(
18242 VPSUBUSB512RRR_MASK,
18243 op0.as_operand(),
18244 op1.as_operand(),
18245 op2.as_operand(),
18246 &NOREG,
18247 );
18248 }
18249}
18250
18251impl<'a> VpsubusbMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18252 fn vpsubusb_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18253 self.emit(
18254 VPSUBUSB512RRM_MASK,
18255 op0.as_operand(),
18256 op1.as_operand(),
18257 op2.as_operand(),
18258 &NOREG,
18259 );
18260 }
18261}
18262
18263pub trait VpsubusbMaskzEmitter<A, B, C> {
18280 fn vpsubusb_maskz(&mut self, op0: A, op1: B, op2: C);
18281}
18282
18283impl<'a> VpsubusbMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18284 fn vpsubusb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18285 self.emit(
18286 VPSUBUSB128RRR_MASKZ,
18287 op0.as_operand(),
18288 op1.as_operand(),
18289 op2.as_operand(),
18290 &NOREG,
18291 );
18292 }
18293}
18294
18295impl<'a> VpsubusbMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18296 fn vpsubusb_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18297 self.emit(
18298 VPSUBUSB128RRM_MASKZ,
18299 op0.as_operand(),
18300 op1.as_operand(),
18301 op2.as_operand(),
18302 &NOREG,
18303 );
18304 }
18305}
18306
18307impl<'a> VpsubusbMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18308 fn vpsubusb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18309 self.emit(
18310 VPSUBUSB256RRR_MASKZ,
18311 op0.as_operand(),
18312 op1.as_operand(),
18313 op2.as_operand(),
18314 &NOREG,
18315 );
18316 }
18317}
18318
18319impl<'a> VpsubusbMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18320 fn vpsubusb_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18321 self.emit(
18322 VPSUBUSB256RRM_MASKZ,
18323 op0.as_operand(),
18324 op1.as_operand(),
18325 op2.as_operand(),
18326 &NOREG,
18327 );
18328 }
18329}
18330
18331impl<'a> VpsubusbMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18332 fn vpsubusb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18333 self.emit(
18334 VPSUBUSB512RRR_MASKZ,
18335 op0.as_operand(),
18336 op1.as_operand(),
18337 op2.as_operand(),
18338 &NOREG,
18339 );
18340 }
18341}
18342
18343impl<'a> VpsubusbMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18344 fn vpsubusb_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18345 self.emit(
18346 VPSUBUSB512RRM_MASKZ,
18347 op0.as_operand(),
18348 op1.as_operand(),
18349 op2.as_operand(),
18350 &NOREG,
18351 );
18352 }
18353}
18354
18355pub trait VpsubuswEmitter<A, B, C> {
18372 fn vpsubusw(&mut self, op0: A, op1: B, op2: C);
18373}
18374
18375impl<'a> VpsubuswEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18376 fn vpsubusw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18377 self.emit(
18378 VPSUBUSW128RRR,
18379 op0.as_operand(),
18380 op1.as_operand(),
18381 op2.as_operand(),
18382 &NOREG,
18383 );
18384 }
18385}
18386
18387impl<'a> VpsubuswEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18388 fn vpsubusw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18389 self.emit(
18390 VPSUBUSW128RRM,
18391 op0.as_operand(),
18392 op1.as_operand(),
18393 op2.as_operand(),
18394 &NOREG,
18395 );
18396 }
18397}
18398
18399impl<'a> VpsubuswEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18400 fn vpsubusw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18401 self.emit(
18402 VPSUBUSW256RRR,
18403 op0.as_operand(),
18404 op1.as_operand(),
18405 op2.as_operand(),
18406 &NOREG,
18407 );
18408 }
18409}
18410
18411impl<'a> VpsubuswEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18412 fn vpsubusw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18413 self.emit(
18414 VPSUBUSW256RRM,
18415 op0.as_operand(),
18416 op1.as_operand(),
18417 op2.as_operand(),
18418 &NOREG,
18419 );
18420 }
18421}
18422
18423impl<'a> VpsubuswEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18424 fn vpsubusw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18425 self.emit(
18426 VPSUBUSW512RRR,
18427 op0.as_operand(),
18428 op1.as_operand(),
18429 op2.as_operand(),
18430 &NOREG,
18431 );
18432 }
18433}
18434
18435impl<'a> VpsubuswEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18436 fn vpsubusw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18437 self.emit(
18438 VPSUBUSW512RRM,
18439 op0.as_operand(),
18440 op1.as_operand(),
18441 op2.as_operand(),
18442 &NOREG,
18443 );
18444 }
18445}
18446
18447pub trait VpsubuswMaskEmitter<A, B, C> {
18464 fn vpsubusw_mask(&mut self, op0: A, op1: B, op2: C);
18465}
18466
18467impl<'a> VpsubuswMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18468 fn vpsubusw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18469 self.emit(
18470 VPSUBUSW128RRR_MASK,
18471 op0.as_operand(),
18472 op1.as_operand(),
18473 op2.as_operand(),
18474 &NOREG,
18475 );
18476 }
18477}
18478
18479impl<'a> VpsubuswMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18480 fn vpsubusw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18481 self.emit(
18482 VPSUBUSW128RRM_MASK,
18483 op0.as_operand(),
18484 op1.as_operand(),
18485 op2.as_operand(),
18486 &NOREG,
18487 );
18488 }
18489}
18490
18491impl<'a> VpsubuswMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18492 fn vpsubusw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18493 self.emit(
18494 VPSUBUSW256RRR_MASK,
18495 op0.as_operand(),
18496 op1.as_operand(),
18497 op2.as_operand(),
18498 &NOREG,
18499 );
18500 }
18501}
18502
18503impl<'a> VpsubuswMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18504 fn vpsubusw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18505 self.emit(
18506 VPSUBUSW256RRM_MASK,
18507 op0.as_operand(),
18508 op1.as_operand(),
18509 op2.as_operand(),
18510 &NOREG,
18511 );
18512 }
18513}
18514
18515impl<'a> VpsubuswMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18516 fn vpsubusw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18517 self.emit(
18518 VPSUBUSW512RRR_MASK,
18519 op0.as_operand(),
18520 op1.as_operand(),
18521 op2.as_operand(),
18522 &NOREG,
18523 );
18524 }
18525}
18526
18527impl<'a> VpsubuswMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18528 fn vpsubusw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18529 self.emit(
18530 VPSUBUSW512RRM_MASK,
18531 op0.as_operand(),
18532 op1.as_operand(),
18533 op2.as_operand(),
18534 &NOREG,
18535 );
18536 }
18537}
18538
18539pub trait VpsubuswMaskzEmitter<A, B, C> {
18556 fn vpsubusw_maskz(&mut self, op0: A, op1: B, op2: C);
18557}
18558
18559impl<'a> VpsubuswMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18560 fn vpsubusw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18561 self.emit(
18562 VPSUBUSW128RRR_MASKZ,
18563 op0.as_operand(),
18564 op1.as_operand(),
18565 op2.as_operand(),
18566 &NOREG,
18567 );
18568 }
18569}
18570
18571impl<'a> VpsubuswMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18572 fn vpsubusw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18573 self.emit(
18574 VPSUBUSW128RRM_MASKZ,
18575 op0.as_operand(),
18576 op1.as_operand(),
18577 op2.as_operand(),
18578 &NOREG,
18579 );
18580 }
18581}
18582
18583impl<'a> VpsubuswMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18584 fn vpsubusw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18585 self.emit(
18586 VPSUBUSW256RRR_MASKZ,
18587 op0.as_operand(),
18588 op1.as_operand(),
18589 op2.as_operand(),
18590 &NOREG,
18591 );
18592 }
18593}
18594
18595impl<'a> VpsubuswMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18596 fn vpsubusw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18597 self.emit(
18598 VPSUBUSW256RRM_MASKZ,
18599 op0.as_operand(),
18600 op1.as_operand(),
18601 op2.as_operand(),
18602 &NOREG,
18603 );
18604 }
18605}
18606
18607impl<'a> VpsubuswMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18608 fn vpsubusw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18609 self.emit(
18610 VPSUBUSW512RRR_MASKZ,
18611 op0.as_operand(),
18612 op1.as_operand(),
18613 op2.as_operand(),
18614 &NOREG,
18615 );
18616 }
18617}
18618
18619impl<'a> VpsubuswMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18620 fn vpsubusw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18621 self.emit(
18622 VPSUBUSW512RRM_MASKZ,
18623 op0.as_operand(),
18624 op1.as_operand(),
18625 op2.as_operand(),
18626 &NOREG,
18627 );
18628 }
18629}
18630
18631pub trait VpsubwEmitter<A, B, C> {
18648 fn vpsubw(&mut self, op0: A, op1: B, op2: C);
18649}
18650
18651impl<'a> VpsubwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18652 fn vpsubw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18653 self.emit(
18654 VPSUBW128RRR,
18655 op0.as_operand(),
18656 op1.as_operand(),
18657 op2.as_operand(),
18658 &NOREG,
18659 );
18660 }
18661}
18662
18663impl<'a> VpsubwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18664 fn vpsubw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18665 self.emit(
18666 VPSUBW128RRM,
18667 op0.as_operand(),
18668 op1.as_operand(),
18669 op2.as_operand(),
18670 &NOREG,
18671 );
18672 }
18673}
18674
18675impl<'a> VpsubwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18676 fn vpsubw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18677 self.emit(
18678 VPSUBW256RRR,
18679 op0.as_operand(),
18680 op1.as_operand(),
18681 op2.as_operand(),
18682 &NOREG,
18683 );
18684 }
18685}
18686
18687impl<'a> VpsubwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18688 fn vpsubw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18689 self.emit(
18690 VPSUBW256RRM,
18691 op0.as_operand(),
18692 op1.as_operand(),
18693 op2.as_operand(),
18694 &NOREG,
18695 );
18696 }
18697}
18698
18699impl<'a> VpsubwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18700 fn vpsubw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18701 self.emit(
18702 VPSUBW512RRR,
18703 op0.as_operand(),
18704 op1.as_operand(),
18705 op2.as_operand(),
18706 &NOREG,
18707 );
18708 }
18709}
18710
18711impl<'a> VpsubwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18712 fn vpsubw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18713 self.emit(
18714 VPSUBW512RRM,
18715 op0.as_operand(),
18716 op1.as_operand(),
18717 op2.as_operand(),
18718 &NOREG,
18719 );
18720 }
18721}
18722
18723pub trait VpsubwMaskEmitter<A, B, C> {
18740 fn vpsubw_mask(&mut self, op0: A, op1: B, op2: C);
18741}
18742
18743impl<'a> VpsubwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18744 fn vpsubw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18745 self.emit(
18746 VPSUBW128RRR_MASK,
18747 op0.as_operand(),
18748 op1.as_operand(),
18749 op2.as_operand(),
18750 &NOREG,
18751 );
18752 }
18753}
18754
18755impl<'a> VpsubwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18756 fn vpsubw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18757 self.emit(
18758 VPSUBW128RRM_MASK,
18759 op0.as_operand(),
18760 op1.as_operand(),
18761 op2.as_operand(),
18762 &NOREG,
18763 );
18764 }
18765}
18766
18767impl<'a> VpsubwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18768 fn vpsubw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18769 self.emit(
18770 VPSUBW256RRR_MASK,
18771 op0.as_operand(),
18772 op1.as_operand(),
18773 op2.as_operand(),
18774 &NOREG,
18775 );
18776 }
18777}
18778
18779impl<'a> VpsubwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18780 fn vpsubw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18781 self.emit(
18782 VPSUBW256RRM_MASK,
18783 op0.as_operand(),
18784 op1.as_operand(),
18785 op2.as_operand(),
18786 &NOREG,
18787 );
18788 }
18789}
18790
18791impl<'a> VpsubwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18792 fn vpsubw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18793 self.emit(
18794 VPSUBW512RRR_MASK,
18795 op0.as_operand(),
18796 op1.as_operand(),
18797 op2.as_operand(),
18798 &NOREG,
18799 );
18800 }
18801}
18802
18803impl<'a> VpsubwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18804 fn vpsubw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18805 self.emit(
18806 VPSUBW512RRM_MASK,
18807 op0.as_operand(),
18808 op1.as_operand(),
18809 op2.as_operand(),
18810 &NOREG,
18811 );
18812 }
18813}
18814
18815pub trait VpsubwMaskzEmitter<A, B, C> {
18832 fn vpsubw_maskz(&mut self, op0: A, op1: B, op2: C);
18833}
18834
18835impl<'a> VpsubwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
18836 fn vpsubw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
18837 self.emit(
18838 VPSUBW128RRR_MASKZ,
18839 op0.as_operand(),
18840 op1.as_operand(),
18841 op2.as_operand(),
18842 &NOREG,
18843 );
18844 }
18845}
18846
18847impl<'a> VpsubwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
18848 fn vpsubw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
18849 self.emit(
18850 VPSUBW128RRM_MASKZ,
18851 op0.as_operand(),
18852 op1.as_operand(),
18853 op2.as_operand(),
18854 &NOREG,
18855 );
18856 }
18857}
18858
18859impl<'a> VpsubwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
18860 fn vpsubw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
18861 self.emit(
18862 VPSUBW256RRR_MASKZ,
18863 op0.as_operand(),
18864 op1.as_operand(),
18865 op2.as_operand(),
18866 &NOREG,
18867 );
18868 }
18869}
18870
18871impl<'a> VpsubwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
18872 fn vpsubw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
18873 self.emit(
18874 VPSUBW256RRM_MASKZ,
18875 op0.as_operand(),
18876 op1.as_operand(),
18877 op2.as_operand(),
18878 &NOREG,
18879 );
18880 }
18881}
18882
18883impl<'a> VpsubwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
18884 fn vpsubw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
18885 self.emit(
18886 VPSUBW512RRR_MASKZ,
18887 op0.as_operand(),
18888 op1.as_operand(),
18889 op2.as_operand(),
18890 &NOREG,
18891 );
18892 }
18893}
18894
18895impl<'a> VpsubwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
18896 fn vpsubw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
18897 self.emit(
18898 VPSUBW512RRM_MASKZ,
18899 op0.as_operand(),
18900 op1.as_operand(),
18901 op2.as_operand(),
18902 &NOREG,
18903 );
18904 }
18905}
18906
18907pub trait VptestmbEmitter<A, B, C> {
18924 fn vptestmb(&mut self, op0: A, op1: B, op2: C);
18925}
18926
18927impl<'a> VptestmbEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
18928 fn vptestmb(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
18929 self.emit(
18930 VPTESTMB128KRR,
18931 op0.as_operand(),
18932 op1.as_operand(),
18933 op2.as_operand(),
18934 &NOREG,
18935 );
18936 }
18937}
18938
18939impl<'a> VptestmbEmitter<KReg, Xmm, Mem> for Assembler<'a> {
18940 fn vptestmb(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
18941 self.emit(
18942 VPTESTMB128KRM,
18943 op0.as_operand(),
18944 op1.as_operand(),
18945 op2.as_operand(),
18946 &NOREG,
18947 );
18948 }
18949}
18950
18951impl<'a> VptestmbEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
18952 fn vptestmb(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
18953 self.emit(
18954 VPTESTMB256KRR,
18955 op0.as_operand(),
18956 op1.as_operand(),
18957 op2.as_operand(),
18958 &NOREG,
18959 );
18960 }
18961}
18962
18963impl<'a> VptestmbEmitter<KReg, Ymm, Mem> for Assembler<'a> {
18964 fn vptestmb(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
18965 self.emit(
18966 VPTESTMB256KRM,
18967 op0.as_operand(),
18968 op1.as_operand(),
18969 op2.as_operand(),
18970 &NOREG,
18971 );
18972 }
18973}
18974
18975impl<'a> VptestmbEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
18976 fn vptestmb(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
18977 self.emit(
18978 VPTESTMB512KRR,
18979 op0.as_operand(),
18980 op1.as_operand(),
18981 op2.as_operand(),
18982 &NOREG,
18983 );
18984 }
18985}
18986
18987impl<'a> VptestmbEmitter<KReg, Zmm, Mem> for Assembler<'a> {
18988 fn vptestmb(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
18989 self.emit(
18990 VPTESTMB512KRM,
18991 op0.as_operand(),
18992 op1.as_operand(),
18993 op2.as_operand(),
18994 &NOREG,
18995 );
18996 }
18997}
18998
18999pub trait VptestmbMaskEmitter<A, B, C> {
19016 fn vptestmb_mask(&mut self, op0: A, op1: B, op2: C);
19017}
19018
19019impl<'a> VptestmbMaskEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19020 fn vptestmb_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19021 self.emit(
19022 VPTESTMB128KRR_MASK,
19023 op0.as_operand(),
19024 op1.as_operand(),
19025 op2.as_operand(),
19026 &NOREG,
19027 );
19028 }
19029}
19030
19031impl<'a> VptestmbMaskEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19032 fn vptestmb_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19033 self.emit(
19034 VPTESTMB128KRM_MASK,
19035 op0.as_operand(),
19036 op1.as_operand(),
19037 op2.as_operand(),
19038 &NOREG,
19039 );
19040 }
19041}
19042
19043impl<'a> VptestmbMaskEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19044 fn vptestmb_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19045 self.emit(
19046 VPTESTMB256KRR_MASK,
19047 op0.as_operand(),
19048 op1.as_operand(),
19049 op2.as_operand(),
19050 &NOREG,
19051 );
19052 }
19053}
19054
19055impl<'a> VptestmbMaskEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19056 fn vptestmb_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19057 self.emit(
19058 VPTESTMB256KRM_MASK,
19059 op0.as_operand(),
19060 op1.as_operand(),
19061 op2.as_operand(),
19062 &NOREG,
19063 );
19064 }
19065}
19066
19067impl<'a> VptestmbMaskEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19068 fn vptestmb_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19069 self.emit(
19070 VPTESTMB512KRR_MASK,
19071 op0.as_operand(),
19072 op1.as_operand(),
19073 op2.as_operand(),
19074 &NOREG,
19075 );
19076 }
19077}
19078
19079impl<'a> VptestmbMaskEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19080 fn vptestmb_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19081 self.emit(
19082 VPTESTMB512KRM_MASK,
19083 op0.as_operand(),
19084 op1.as_operand(),
19085 op2.as_operand(),
19086 &NOREG,
19087 );
19088 }
19089}
19090
19091pub trait VptestmwEmitter<A, B, C> {
19108 fn vptestmw(&mut self, op0: A, op1: B, op2: C);
19109}
19110
19111impl<'a> VptestmwEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19112 fn vptestmw(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19113 self.emit(
19114 VPTESTMW128KRR,
19115 op0.as_operand(),
19116 op1.as_operand(),
19117 op2.as_operand(),
19118 &NOREG,
19119 );
19120 }
19121}
19122
19123impl<'a> VptestmwEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19124 fn vptestmw(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19125 self.emit(
19126 VPTESTMW128KRM,
19127 op0.as_operand(),
19128 op1.as_operand(),
19129 op2.as_operand(),
19130 &NOREG,
19131 );
19132 }
19133}
19134
19135impl<'a> VptestmwEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19136 fn vptestmw(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19137 self.emit(
19138 VPTESTMW256KRR,
19139 op0.as_operand(),
19140 op1.as_operand(),
19141 op2.as_operand(),
19142 &NOREG,
19143 );
19144 }
19145}
19146
19147impl<'a> VptestmwEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19148 fn vptestmw(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19149 self.emit(
19150 VPTESTMW256KRM,
19151 op0.as_operand(),
19152 op1.as_operand(),
19153 op2.as_operand(),
19154 &NOREG,
19155 );
19156 }
19157}
19158
19159impl<'a> VptestmwEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19160 fn vptestmw(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19161 self.emit(
19162 VPTESTMW512KRR,
19163 op0.as_operand(),
19164 op1.as_operand(),
19165 op2.as_operand(),
19166 &NOREG,
19167 );
19168 }
19169}
19170
19171impl<'a> VptestmwEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19172 fn vptestmw(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19173 self.emit(
19174 VPTESTMW512KRM,
19175 op0.as_operand(),
19176 op1.as_operand(),
19177 op2.as_operand(),
19178 &NOREG,
19179 );
19180 }
19181}
19182
19183pub trait VptestmwMaskEmitter<A, B, C> {
19200 fn vptestmw_mask(&mut self, op0: A, op1: B, op2: C);
19201}
19202
19203impl<'a> VptestmwMaskEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19204 fn vptestmw_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19205 self.emit(
19206 VPTESTMW128KRR_MASK,
19207 op0.as_operand(),
19208 op1.as_operand(),
19209 op2.as_operand(),
19210 &NOREG,
19211 );
19212 }
19213}
19214
19215impl<'a> VptestmwMaskEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19216 fn vptestmw_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19217 self.emit(
19218 VPTESTMW128KRM_MASK,
19219 op0.as_operand(),
19220 op1.as_operand(),
19221 op2.as_operand(),
19222 &NOREG,
19223 );
19224 }
19225}
19226
19227impl<'a> VptestmwMaskEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19228 fn vptestmw_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19229 self.emit(
19230 VPTESTMW256KRR_MASK,
19231 op0.as_operand(),
19232 op1.as_operand(),
19233 op2.as_operand(),
19234 &NOREG,
19235 );
19236 }
19237}
19238
19239impl<'a> VptestmwMaskEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19240 fn vptestmw_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19241 self.emit(
19242 VPTESTMW256KRM_MASK,
19243 op0.as_operand(),
19244 op1.as_operand(),
19245 op2.as_operand(),
19246 &NOREG,
19247 );
19248 }
19249}
19250
19251impl<'a> VptestmwMaskEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19252 fn vptestmw_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19253 self.emit(
19254 VPTESTMW512KRR_MASK,
19255 op0.as_operand(),
19256 op1.as_operand(),
19257 op2.as_operand(),
19258 &NOREG,
19259 );
19260 }
19261}
19262
19263impl<'a> VptestmwMaskEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19264 fn vptestmw_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19265 self.emit(
19266 VPTESTMW512KRM_MASK,
19267 op0.as_operand(),
19268 op1.as_operand(),
19269 op2.as_operand(),
19270 &NOREG,
19271 );
19272 }
19273}
19274
19275pub trait VptestnmbEmitter<A, B, C> {
19292 fn vptestnmb(&mut self, op0: A, op1: B, op2: C);
19293}
19294
19295impl<'a> VptestnmbEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19296 fn vptestnmb(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19297 self.emit(
19298 VPTESTNMB128KRR,
19299 op0.as_operand(),
19300 op1.as_operand(),
19301 op2.as_operand(),
19302 &NOREG,
19303 );
19304 }
19305}
19306
19307impl<'a> VptestnmbEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19308 fn vptestnmb(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19309 self.emit(
19310 VPTESTNMB128KRM,
19311 op0.as_operand(),
19312 op1.as_operand(),
19313 op2.as_operand(),
19314 &NOREG,
19315 );
19316 }
19317}
19318
19319impl<'a> VptestnmbEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19320 fn vptestnmb(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19321 self.emit(
19322 VPTESTNMB256KRR,
19323 op0.as_operand(),
19324 op1.as_operand(),
19325 op2.as_operand(),
19326 &NOREG,
19327 );
19328 }
19329}
19330
19331impl<'a> VptestnmbEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19332 fn vptestnmb(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19333 self.emit(
19334 VPTESTNMB256KRM,
19335 op0.as_operand(),
19336 op1.as_operand(),
19337 op2.as_operand(),
19338 &NOREG,
19339 );
19340 }
19341}
19342
19343impl<'a> VptestnmbEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19344 fn vptestnmb(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19345 self.emit(
19346 VPTESTNMB512KRR,
19347 op0.as_operand(),
19348 op1.as_operand(),
19349 op2.as_operand(),
19350 &NOREG,
19351 );
19352 }
19353}
19354
19355impl<'a> VptestnmbEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19356 fn vptestnmb(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19357 self.emit(
19358 VPTESTNMB512KRM,
19359 op0.as_operand(),
19360 op1.as_operand(),
19361 op2.as_operand(),
19362 &NOREG,
19363 );
19364 }
19365}
19366
19367pub trait VptestnmbMaskEmitter<A, B, C> {
19384 fn vptestnmb_mask(&mut self, op0: A, op1: B, op2: C);
19385}
19386
19387impl<'a> VptestnmbMaskEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19388 fn vptestnmb_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19389 self.emit(
19390 VPTESTNMB128KRR_MASK,
19391 op0.as_operand(),
19392 op1.as_operand(),
19393 op2.as_operand(),
19394 &NOREG,
19395 );
19396 }
19397}
19398
19399impl<'a> VptestnmbMaskEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19400 fn vptestnmb_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19401 self.emit(
19402 VPTESTNMB128KRM_MASK,
19403 op0.as_operand(),
19404 op1.as_operand(),
19405 op2.as_operand(),
19406 &NOREG,
19407 );
19408 }
19409}
19410
19411impl<'a> VptestnmbMaskEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19412 fn vptestnmb_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19413 self.emit(
19414 VPTESTNMB256KRR_MASK,
19415 op0.as_operand(),
19416 op1.as_operand(),
19417 op2.as_operand(),
19418 &NOREG,
19419 );
19420 }
19421}
19422
19423impl<'a> VptestnmbMaskEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19424 fn vptestnmb_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19425 self.emit(
19426 VPTESTNMB256KRM_MASK,
19427 op0.as_operand(),
19428 op1.as_operand(),
19429 op2.as_operand(),
19430 &NOREG,
19431 );
19432 }
19433}
19434
19435impl<'a> VptestnmbMaskEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19436 fn vptestnmb_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19437 self.emit(
19438 VPTESTNMB512KRR_MASK,
19439 op0.as_operand(),
19440 op1.as_operand(),
19441 op2.as_operand(),
19442 &NOREG,
19443 );
19444 }
19445}
19446
19447impl<'a> VptestnmbMaskEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19448 fn vptestnmb_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19449 self.emit(
19450 VPTESTNMB512KRM_MASK,
19451 op0.as_operand(),
19452 op1.as_operand(),
19453 op2.as_operand(),
19454 &NOREG,
19455 );
19456 }
19457}
19458
19459pub trait VptestnmwEmitter<A, B, C> {
19476 fn vptestnmw(&mut self, op0: A, op1: B, op2: C);
19477}
19478
19479impl<'a> VptestnmwEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19480 fn vptestnmw(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19481 self.emit(
19482 VPTESTNMW128KRR,
19483 op0.as_operand(),
19484 op1.as_operand(),
19485 op2.as_operand(),
19486 &NOREG,
19487 );
19488 }
19489}
19490
19491impl<'a> VptestnmwEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19492 fn vptestnmw(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19493 self.emit(
19494 VPTESTNMW128KRM,
19495 op0.as_operand(),
19496 op1.as_operand(),
19497 op2.as_operand(),
19498 &NOREG,
19499 );
19500 }
19501}
19502
19503impl<'a> VptestnmwEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19504 fn vptestnmw(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19505 self.emit(
19506 VPTESTNMW256KRR,
19507 op0.as_operand(),
19508 op1.as_operand(),
19509 op2.as_operand(),
19510 &NOREG,
19511 );
19512 }
19513}
19514
19515impl<'a> VptestnmwEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19516 fn vptestnmw(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19517 self.emit(
19518 VPTESTNMW256KRM,
19519 op0.as_operand(),
19520 op1.as_operand(),
19521 op2.as_operand(),
19522 &NOREG,
19523 );
19524 }
19525}
19526
19527impl<'a> VptestnmwEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19528 fn vptestnmw(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19529 self.emit(
19530 VPTESTNMW512KRR,
19531 op0.as_operand(),
19532 op1.as_operand(),
19533 op2.as_operand(),
19534 &NOREG,
19535 );
19536 }
19537}
19538
19539impl<'a> VptestnmwEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19540 fn vptestnmw(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19541 self.emit(
19542 VPTESTNMW512KRM,
19543 op0.as_operand(),
19544 op1.as_operand(),
19545 op2.as_operand(),
19546 &NOREG,
19547 );
19548 }
19549}
19550
19551pub trait VptestnmwMaskEmitter<A, B, C> {
19568 fn vptestnmw_mask(&mut self, op0: A, op1: B, op2: C);
19569}
19570
19571impl<'a> VptestnmwMaskEmitter<KReg, Xmm, Xmm> for Assembler<'a> {
19572 fn vptestnmw_mask(&mut self, op0: KReg, op1: Xmm, op2: Xmm) {
19573 self.emit(
19574 VPTESTNMW128KRR_MASK,
19575 op0.as_operand(),
19576 op1.as_operand(),
19577 op2.as_operand(),
19578 &NOREG,
19579 );
19580 }
19581}
19582
19583impl<'a> VptestnmwMaskEmitter<KReg, Xmm, Mem> for Assembler<'a> {
19584 fn vptestnmw_mask(&mut self, op0: KReg, op1: Xmm, op2: Mem) {
19585 self.emit(
19586 VPTESTNMW128KRM_MASK,
19587 op0.as_operand(),
19588 op1.as_operand(),
19589 op2.as_operand(),
19590 &NOREG,
19591 );
19592 }
19593}
19594
19595impl<'a> VptestnmwMaskEmitter<KReg, Ymm, Ymm> for Assembler<'a> {
19596 fn vptestnmw_mask(&mut self, op0: KReg, op1: Ymm, op2: Ymm) {
19597 self.emit(
19598 VPTESTNMW256KRR_MASK,
19599 op0.as_operand(),
19600 op1.as_operand(),
19601 op2.as_operand(),
19602 &NOREG,
19603 );
19604 }
19605}
19606
19607impl<'a> VptestnmwMaskEmitter<KReg, Ymm, Mem> for Assembler<'a> {
19608 fn vptestnmw_mask(&mut self, op0: KReg, op1: Ymm, op2: Mem) {
19609 self.emit(
19610 VPTESTNMW256KRM_MASK,
19611 op0.as_operand(),
19612 op1.as_operand(),
19613 op2.as_operand(),
19614 &NOREG,
19615 );
19616 }
19617}
19618
19619impl<'a> VptestnmwMaskEmitter<KReg, Zmm, Zmm> for Assembler<'a> {
19620 fn vptestnmw_mask(&mut self, op0: KReg, op1: Zmm, op2: Zmm) {
19621 self.emit(
19622 VPTESTNMW512KRR_MASK,
19623 op0.as_operand(),
19624 op1.as_operand(),
19625 op2.as_operand(),
19626 &NOREG,
19627 );
19628 }
19629}
19630
19631impl<'a> VptestnmwMaskEmitter<KReg, Zmm, Mem> for Assembler<'a> {
19632 fn vptestnmw_mask(&mut self, op0: KReg, op1: Zmm, op2: Mem) {
19633 self.emit(
19634 VPTESTNMW512KRM_MASK,
19635 op0.as_operand(),
19636 op1.as_operand(),
19637 op2.as_operand(),
19638 &NOREG,
19639 );
19640 }
19641}
19642
19643pub trait VpunpckhbwEmitter<A, B, C> {
19660 fn vpunpckhbw(&mut self, op0: A, op1: B, op2: C);
19661}
19662
19663impl<'a> VpunpckhbwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
19664 fn vpunpckhbw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
19665 self.emit(
19666 VPUNPCKHBW128RRR,
19667 op0.as_operand(),
19668 op1.as_operand(),
19669 op2.as_operand(),
19670 &NOREG,
19671 );
19672 }
19673}
19674
19675impl<'a> VpunpckhbwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
19676 fn vpunpckhbw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
19677 self.emit(
19678 VPUNPCKHBW128RRM,
19679 op0.as_operand(),
19680 op1.as_operand(),
19681 op2.as_operand(),
19682 &NOREG,
19683 );
19684 }
19685}
19686
19687impl<'a> VpunpckhbwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
19688 fn vpunpckhbw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
19689 self.emit(
19690 VPUNPCKHBW256RRR,
19691 op0.as_operand(),
19692 op1.as_operand(),
19693 op2.as_operand(),
19694 &NOREG,
19695 );
19696 }
19697}
19698
19699impl<'a> VpunpckhbwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
19700 fn vpunpckhbw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
19701 self.emit(
19702 VPUNPCKHBW256RRM,
19703 op0.as_operand(),
19704 op1.as_operand(),
19705 op2.as_operand(),
19706 &NOREG,
19707 );
19708 }
19709}
19710
19711impl<'a> VpunpckhbwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
19712 fn vpunpckhbw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
19713 self.emit(
19714 VPUNPCKHBW512RRR,
19715 op0.as_operand(),
19716 op1.as_operand(),
19717 op2.as_operand(),
19718 &NOREG,
19719 );
19720 }
19721}
19722
19723impl<'a> VpunpckhbwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
19724 fn vpunpckhbw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
19725 self.emit(
19726 VPUNPCKHBW512RRM,
19727 op0.as_operand(),
19728 op1.as_operand(),
19729 op2.as_operand(),
19730 &NOREG,
19731 );
19732 }
19733}
19734
19735pub trait VpunpckhbwMaskEmitter<A, B, C> {
19752 fn vpunpckhbw_mask(&mut self, op0: A, op1: B, op2: C);
19753}
19754
19755impl<'a> VpunpckhbwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
19756 fn vpunpckhbw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
19757 self.emit(
19758 VPUNPCKHBW128RRR_MASK,
19759 op0.as_operand(),
19760 op1.as_operand(),
19761 op2.as_operand(),
19762 &NOREG,
19763 );
19764 }
19765}
19766
19767impl<'a> VpunpckhbwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
19768 fn vpunpckhbw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
19769 self.emit(
19770 VPUNPCKHBW128RRM_MASK,
19771 op0.as_operand(),
19772 op1.as_operand(),
19773 op2.as_operand(),
19774 &NOREG,
19775 );
19776 }
19777}
19778
19779impl<'a> VpunpckhbwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
19780 fn vpunpckhbw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
19781 self.emit(
19782 VPUNPCKHBW256RRR_MASK,
19783 op0.as_operand(),
19784 op1.as_operand(),
19785 op2.as_operand(),
19786 &NOREG,
19787 );
19788 }
19789}
19790
19791impl<'a> VpunpckhbwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
19792 fn vpunpckhbw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
19793 self.emit(
19794 VPUNPCKHBW256RRM_MASK,
19795 op0.as_operand(),
19796 op1.as_operand(),
19797 op2.as_operand(),
19798 &NOREG,
19799 );
19800 }
19801}
19802
19803impl<'a> VpunpckhbwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
19804 fn vpunpckhbw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
19805 self.emit(
19806 VPUNPCKHBW512RRR_MASK,
19807 op0.as_operand(),
19808 op1.as_operand(),
19809 op2.as_operand(),
19810 &NOREG,
19811 );
19812 }
19813}
19814
19815impl<'a> VpunpckhbwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
19816 fn vpunpckhbw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
19817 self.emit(
19818 VPUNPCKHBW512RRM_MASK,
19819 op0.as_operand(),
19820 op1.as_operand(),
19821 op2.as_operand(),
19822 &NOREG,
19823 );
19824 }
19825}
19826
19827pub trait VpunpckhbwMaskzEmitter<A, B, C> {
19844 fn vpunpckhbw_maskz(&mut self, op0: A, op1: B, op2: C);
19845}
19846
19847impl<'a> VpunpckhbwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
19848 fn vpunpckhbw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
19849 self.emit(
19850 VPUNPCKHBW128RRR_MASKZ,
19851 op0.as_operand(),
19852 op1.as_operand(),
19853 op2.as_operand(),
19854 &NOREG,
19855 );
19856 }
19857}
19858
19859impl<'a> VpunpckhbwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
19860 fn vpunpckhbw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
19861 self.emit(
19862 VPUNPCKHBW128RRM_MASKZ,
19863 op0.as_operand(),
19864 op1.as_operand(),
19865 op2.as_operand(),
19866 &NOREG,
19867 );
19868 }
19869}
19870
19871impl<'a> VpunpckhbwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
19872 fn vpunpckhbw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
19873 self.emit(
19874 VPUNPCKHBW256RRR_MASKZ,
19875 op0.as_operand(),
19876 op1.as_operand(),
19877 op2.as_operand(),
19878 &NOREG,
19879 );
19880 }
19881}
19882
19883impl<'a> VpunpckhbwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
19884 fn vpunpckhbw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
19885 self.emit(
19886 VPUNPCKHBW256RRM_MASKZ,
19887 op0.as_operand(),
19888 op1.as_operand(),
19889 op2.as_operand(),
19890 &NOREG,
19891 );
19892 }
19893}
19894
19895impl<'a> VpunpckhbwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
19896 fn vpunpckhbw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
19897 self.emit(
19898 VPUNPCKHBW512RRR_MASKZ,
19899 op0.as_operand(),
19900 op1.as_operand(),
19901 op2.as_operand(),
19902 &NOREG,
19903 );
19904 }
19905}
19906
19907impl<'a> VpunpckhbwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
19908 fn vpunpckhbw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
19909 self.emit(
19910 VPUNPCKHBW512RRM_MASKZ,
19911 op0.as_operand(),
19912 op1.as_operand(),
19913 op2.as_operand(),
19914 &NOREG,
19915 );
19916 }
19917}
19918
19919pub trait VpunpckhwdEmitter<A, B, C> {
19936 fn vpunpckhwd(&mut self, op0: A, op1: B, op2: C);
19937}
19938
19939impl<'a> VpunpckhwdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
19940 fn vpunpckhwd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
19941 self.emit(
19942 VPUNPCKHWD128RRR,
19943 op0.as_operand(),
19944 op1.as_operand(),
19945 op2.as_operand(),
19946 &NOREG,
19947 );
19948 }
19949}
19950
19951impl<'a> VpunpckhwdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
19952 fn vpunpckhwd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
19953 self.emit(
19954 VPUNPCKHWD128RRM,
19955 op0.as_operand(),
19956 op1.as_operand(),
19957 op2.as_operand(),
19958 &NOREG,
19959 );
19960 }
19961}
19962
19963impl<'a> VpunpckhwdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
19964 fn vpunpckhwd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
19965 self.emit(
19966 VPUNPCKHWD256RRR,
19967 op0.as_operand(),
19968 op1.as_operand(),
19969 op2.as_operand(),
19970 &NOREG,
19971 );
19972 }
19973}
19974
19975impl<'a> VpunpckhwdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
19976 fn vpunpckhwd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
19977 self.emit(
19978 VPUNPCKHWD256RRM,
19979 op0.as_operand(),
19980 op1.as_operand(),
19981 op2.as_operand(),
19982 &NOREG,
19983 );
19984 }
19985}
19986
19987impl<'a> VpunpckhwdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
19988 fn vpunpckhwd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
19989 self.emit(
19990 VPUNPCKHWD512RRR,
19991 op0.as_operand(),
19992 op1.as_operand(),
19993 op2.as_operand(),
19994 &NOREG,
19995 );
19996 }
19997}
19998
19999impl<'a> VpunpckhwdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20000 fn vpunpckhwd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20001 self.emit(
20002 VPUNPCKHWD512RRM,
20003 op0.as_operand(),
20004 op1.as_operand(),
20005 op2.as_operand(),
20006 &NOREG,
20007 );
20008 }
20009}
20010
20011pub trait VpunpckhwdMaskEmitter<A, B, C> {
20028 fn vpunpckhwd_mask(&mut self, op0: A, op1: B, op2: C);
20029}
20030
20031impl<'a> VpunpckhwdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20032 fn vpunpckhwd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20033 self.emit(
20034 VPUNPCKHWD128RRR_MASK,
20035 op0.as_operand(),
20036 op1.as_operand(),
20037 op2.as_operand(),
20038 &NOREG,
20039 );
20040 }
20041}
20042
20043impl<'a> VpunpckhwdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20044 fn vpunpckhwd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20045 self.emit(
20046 VPUNPCKHWD128RRM_MASK,
20047 op0.as_operand(),
20048 op1.as_operand(),
20049 op2.as_operand(),
20050 &NOREG,
20051 );
20052 }
20053}
20054
20055impl<'a> VpunpckhwdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20056 fn vpunpckhwd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20057 self.emit(
20058 VPUNPCKHWD256RRR_MASK,
20059 op0.as_operand(),
20060 op1.as_operand(),
20061 op2.as_operand(),
20062 &NOREG,
20063 );
20064 }
20065}
20066
20067impl<'a> VpunpckhwdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20068 fn vpunpckhwd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20069 self.emit(
20070 VPUNPCKHWD256RRM_MASK,
20071 op0.as_operand(),
20072 op1.as_operand(),
20073 op2.as_operand(),
20074 &NOREG,
20075 );
20076 }
20077}
20078
20079impl<'a> VpunpckhwdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20080 fn vpunpckhwd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20081 self.emit(
20082 VPUNPCKHWD512RRR_MASK,
20083 op0.as_operand(),
20084 op1.as_operand(),
20085 op2.as_operand(),
20086 &NOREG,
20087 );
20088 }
20089}
20090
20091impl<'a> VpunpckhwdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20092 fn vpunpckhwd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20093 self.emit(
20094 VPUNPCKHWD512RRM_MASK,
20095 op0.as_operand(),
20096 op1.as_operand(),
20097 op2.as_operand(),
20098 &NOREG,
20099 );
20100 }
20101}
20102
20103pub trait VpunpckhwdMaskzEmitter<A, B, C> {
20120 fn vpunpckhwd_maskz(&mut self, op0: A, op1: B, op2: C);
20121}
20122
20123impl<'a> VpunpckhwdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20124 fn vpunpckhwd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20125 self.emit(
20126 VPUNPCKHWD128RRR_MASKZ,
20127 op0.as_operand(),
20128 op1.as_operand(),
20129 op2.as_operand(),
20130 &NOREG,
20131 );
20132 }
20133}
20134
20135impl<'a> VpunpckhwdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20136 fn vpunpckhwd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20137 self.emit(
20138 VPUNPCKHWD128RRM_MASKZ,
20139 op0.as_operand(),
20140 op1.as_operand(),
20141 op2.as_operand(),
20142 &NOREG,
20143 );
20144 }
20145}
20146
20147impl<'a> VpunpckhwdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20148 fn vpunpckhwd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20149 self.emit(
20150 VPUNPCKHWD256RRR_MASKZ,
20151 op0.as_operand(),
20152 op1.as_operand(),
20153 op2.as_operand(),
20154 &NOREG,
20155 );
20156 }
20157}
20158
20159impl<'a> VpunpckhwdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20160 fn vpunpckhwd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20161 self.emit(
20162 VPUNPCKHWD256RRM_MASKZ,
20163 op0.as_operand(),
20164 op1.as_operand(),
20165 op2.as_operand(),
20166 &NOREG,
20167 );
20168 }
20169}
20170
20171impl<'a> VpunpckhwdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20172 fn vpunpckhwd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20173 self.emit(
20174 VPUNPCKHWD512RRR_MASKZ,
20175 op0.as_operand(),
20176 op1.as_operand(),
20177 op2.as_operand(),
20178 &NOREG,
20179 );
20180 }
20181}
20182
20183impl<'a> VpunpckhwdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20184 fn vpunpckhwd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20185 self.emit(
20186 VPUNPCKHWD512RRM_MASKZ,
20187 op0.as_operand(),
20188 op1.as_operand(),
20189 op2.as_operand(),
20190 &NOREG,
20191 );
20192 }
20193}
20194
20195pub trait VpunpcklbwEmitter<A, B, C> {
20212 fn vpunpcklbw(&mut self, op0: A, op1: B, op2: C);
20213}
20214
20215impl<'a> VpunpcklbwEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20216 fn vpunpcklbw(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20217 self.emit(
20218 VPUNPCKLBW128RRR,
20219 op0.as_operand(),
20220 op1.as_operand(),
20221 op2.as_operand(),
20222 &NOREG,
20223 );
20224 }
20225}
20226
20227impl<'a> VpunpcklbwEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20228 fn vpunpcklbw(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20229 self.emit(
20230 VPUNPCKLBW128RRM,
20231 op0.as_operand(),
20232 op1.as_operand(),
20233 op2.as_operand(),
20234 &NOREG,
20235 );
20236 }
20237}
20238
20239impl<'a> VpunpcklbwEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20240 fn vpunpcklbw(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20241 self.emit(
20242 VPUNPCKLBW256RRR,
20243 op0.as_operand(),
20244 op1.as_operand(),
20245 op2.as_operand(),
20246 &NOREG,
20247 );
20248 }
20249}
20250
20251impl<'a> VpunpcklbwEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20252 fn vpunpcklbw(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20253 self.emit(
20254 VPUNPCKLBW256RRM,
20255 op0.as_operand(),
20256 op1.as_operand(),
20257 op2.as_operand(),
20258 &NOREG,
20259 );
20260 }
20261}
20262
20263impl<'a> VpunpcklbwEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20264 fn vpunpcklbw(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20265 self.emit(
20266 VPUNPCKLBW512RRR,
20267 op0.as_operand(),
20268 op1.as_operand(),
20269 op2.as_operand(),
20270 &NOREG,
20271 );
20272 }
20273}
20274
20275impl<'a> VpunpcklbwEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20276 fn vpunpcklbw(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20277 self.emit(
20278 VPUNPCKLBW512RRM,
20279 op0.as_operand(),
20280 op1.as_operand(),
20281 op2.as_operand(),
20282 &NOREG,
20283 );
20284 }
20285}
20286
20287pub trait VpunpcklbwMaskEmitter<A, B, C> {
20304 fn vpunpcklbw_mask(&mut self, op0: A, op1: B, op2: C);
20305}
20306
20307impl<'a> VpunpcklbwMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20308 fn vpunpcklbw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20309 self.emit(
20310 VPUNPCKLBW128RRR_MASK,
20311 op0.as_operand(),
20312 op1.as_operand(),
20313 op2.as_operand(),
20314 &NOREG,
20315 );
20316 }
20317}
20318
20319impl<'a> VpunpcklbwMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20320 fn vpunpcklbw_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20321 self.emit(
20322 VPUNPCKLBW128RRM_MASK,
20323 op0.as_operand(),
20324 op1.as_operand(),
20325 op2.as_operand(),
20326 &NOREG,
20327 );
20328 }
20329}
20330
20331impl<'a> VpunpcklbwMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20332 fn vpunpcklbw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20333 self.emit(
20334 VPUNPCKLBW256RRR_MASK,
20335 op0.as_operand(),
20336 op1.as_operand(),
20337 op2.as_operand(),
20338 &NOREG,
20339 );
20340 }
20341}
20342
20343impl<'a> VpunpcklbwMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20344 fn vpunpcklbw_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20345 self.emit(
20346 VPUNPCKLBW256RRM_MASK,
20347 op0.as_operand(),
20348 op1.as_operand(),
20349 op2.as_operand(),
20350 &NOREG,
20351 );
20352 }
20353}
20354
20355impl<'a> VpunpcklbwMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20356 fn vpunpcklbw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20357 self.emit(
20358 VPUNPCKLBW512RRR_MASK,
20359 op0.as_operand(),
20360 op1.as_operand(),
20361 op2.as_operand(),
20362 &NOREG,
20363 );
20364 }
20365}
20366
20367impl<'a> VpunpcklbwMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20368 fn vpunpcklbw_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20369 self.emit(
20370 VPUNPCKLBW512RRM_MASK,
20371 op0.as_operand(),
20372 op1.as_operand(),
20373 op2.as_operand(),
20374 &NOREG,
20375 );
20376 }
20377}
20378
20379pub trait VpunpcklbwMaskzEmitter<A, B, C> {
20396 fn vpunpcklbw_maskz(&mut self, op0: A, op1: B, op2: C);
20397}
20398
20399impl<'a> VpunpcklbwMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20400 fn vpunpcklbw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20401 self.emit(
20402 VPUNPCKLBW128RRR_MASKZ,
20403 op0.as_operand(),
20404 op1.as_operand(),
20405 op2.as_operand(),
20406 &NOREG,
20407 );
20408 }
20409}
20410
20411impl<'a> VpunpcklbwMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20412 fn vpunpcklbw_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20413 self.emit(
20414 VPUNPCKLBW128RRM_MASKZ,
20415 op0.as_operand(),
20416 op1.as_operand(),
20417 op2.as_operand(),
20418 &NOREG,
20419 );
20420 }
20421}
20422
20423impl<'a> VpunpcklbwMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20424 fn vpunpcklbw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20425 self.emit(
20426 VPUNPCKLBW256RRR_MASKZ,
20427 op0.as_operand(),
20428 op1.as_operand(),
20429 op2.as_operand(),
20430 &NOREG,
20431 );
20432 }
20433}
20434
20435impl<'a> VpunpcklbwMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20436 fn vpunpcklbw_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20437 self.emit(
20438 VPUNPCKLBW256RRM_MASKZ,
20439 op0.as_operand(),
20440 op1.as_operand(),
20441 op2.as_operand(),
20442 &NOREG,
20443 );
20444 }
20445}
20446
20447impl<'a> VpunpcklbwMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20448 fn vpunpcklbw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20449 self.emit(
20450 VPUNPCKLBW512RRR_MASKZ,
20451 op0.as_operand(),
20452 op1.as_operand(),
20453 op2.as_operand(),
20454 &NOREG,
20455 );
20456 }
20457}
20458
20459impl<'a> VpunpcklbwMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20460 fn vpunpcklbw_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20461 self.emit(
20462 VPUNPCKLBW512RRM_MASKZ,
20463 op0.as_operand(),
20464 op1.as_operand(),
20465 op2.as_operand(),
20466 &NOREG,
20467 );
20468 }
20469}
20470
20471pub trait VpunpcklwdEmitter<A, B, C> {
20488 fn vpunpcklwd(&mut self, op0: A, op1: B, op2: C);
20489}
20490
20491impl<'a> VpunpcklwdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20492 fn vpunpcklwd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20493 self.emit(
20494 VPUNPCKLWD128RRR,
20495 op0.as_operand(),
20496 op1.as_operand(),
20497 op2.as_operand(),
20498 &NOREG,
20499 );
20500 }
20501}
20502
20503impl<'a> VpunpcklwdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20504 fn vpunpcklwd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20505 self.emit(
20506 VPUNPCKLWD128RRM,
20507 op0.as_operand(),
20508 op1.as_operand(),
20509 op2.as_operand(),
20510 &NOREG,
20511 );
20512 }
20513}
20514
20515impl<'a> VpunpcklwdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20516 fn vpunpcklwd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20517 self.emit(
20518 VPUNPCKLWD256RRR,
20519 op0.as_operand(),
20520 op1.as_operand(),
20521 op2.as_operand(),
20522 &NOREG,
20523 );
20524 }
20525}
20526
20527impl<'a> VpunpcklwdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20528 fn vpunpcklwd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20529 self.emit(
20530 VPUNPCKLWD256RRM,
20531 op0.as_operand(),
20532 op1.as_operand(),
20533 op2.as_operand(),
20534 &NOREG,
20535 );
20536 }
20537}
20538
20539impl<'a> VpunpcklwdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20540 fn vpunpcklwd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20541 self.emit(
20542 VPUNPCKLWD512RRR,
20543 op0.as_operand(),
20544 op1.as_operand(),
20545 op2.as_operand(),
20546 &NOREG,
20547 );
20548 }
20549}
20550
20551impl<'a> VpunpcklwdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20552 fn vpunpcklwd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20553 self.emit(
20554 VPUNPCKLWD512RRM,
20555 op0.as_operand(),
20556 op1.as_operand(),
20557 op2.as_operand(),
20558 &NOREG,
20559 );
20560 }
20561}
20562
20563pub trait VpunpcklwdMaskEmitter<A, B, C> {
20580 fn vpunpcklwd_mask(&mut self, op0: A, op1: B, op2: C);
20581}
20582
20583impl<'a> VpunpcklwdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20584 fn vpunpcklwd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20585 self.emit(
20586 VPUNPCKLWD128RRR_MASK,
20587 op0.as_operand(),
20588 op1.as_operand(),
20589 op2.as_operand(),
20590 &NOREG,
20591 );
20592 }
20593}
20594
20595impl<'a> VpunpcklwdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20596 fn vpunpcklwd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20597 self.emit(
20598 VPUNPCKLWD128RRM_MASK,
20599 op0.as_operand(),
20600 op1.as_operand(),
20601 op2.as_operand(),
20602 &NOREG,
20603 );
20604 }
20605}
20606
20607impl<'a> VpunpcklwdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20608 fn vpunpcklwd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20609 self.emit(
20610 VPUNPCKLWD256RRR_MASK,
20611 op0.as_operand(),
20612 op1.as_operand(),
20613 op2.as_operand(),
20614 &NOREG,
20615 );
20616 }
20617}
20618
20619impl<'a> VpunpcklwdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20620 fn vpunpcklwd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20621 self.emit(
20622 VPUNPCKLWD256RRM_MASK,
20623 op0.as_operand(),
20624 op1.as_operand(),
20625 op2.as_operand(),
20626 &NOREG,
20627 );
20628 }
20629}
20630
20631impl<'a> VpunpcklwdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20632 fn vpunpcklwd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20633 self.emit(
20634 VPUNPCKLWD512RRR_MASK,
20635 op0.as_operand(),
20636 op1.as_operand(),
20637 op2.as_operand(),
20638 &NOREG,
20639 );
20640 }
20641}
20642
20643impl<'a> VpunpcklwdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20644 fn vpunpcklwd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20645 self.emit(
20646 VPUNPCKLWD512RRM_MASK,
20647 op0.as_operand(),
20648 op1.as_operand(),
20649 op2.as_operand(),
20650 &NOREG,
20651 );
20652 }
20653}
20654
20655pub trait VpunpcklwdMaskzEmitter<A, B, C> {
20672 fn vpunpcklwd_maskz(&mut self, op0: A, op1: B, op2: C);
20673}
20674
20675impl<'a> VpunpcklwdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
20676 fn vpunpcklwd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
20677 self.emit(
20678 VPUNPCKLWD128RRR_MASKZ,
20679 op0.as_operand(),
20680 op1.as_operand(),
20681 op2.as_operand(),
20682 &NOREG,
20683 );
20684 }
20685}
20686
20687impl<'a> VpunpcklwdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
20688 fn vpunpcklwd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
20689 self.emit(
20690 VPUNPCKLWD128RRM_MASKZ,
20691 op0.as_operand(),
20692 op1.as_operand(),
20693 op2.as_operand(),
20694 &NOREG,
20695 );
20696 }
20697}
20698
20699impl<'a> VpunpcklwdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
20700 fn vpunpcklwd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
20701 self.emit(
20702 VPUNPCKLWD256RRR_MASKZ,
20703 op0.as_operand(),
20704 op1.as_operand(),
20705 op2.as_operand(),
20706 &NOREG,
20707 );
20708 }
20709}
20710
20711impl<'a> VpunpcklwdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
20712 fn vpunpcklwd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
20713 self.emit(
20714 VPUNPCKLWD256RRM_MASKZ,
20715 op0.as_operand(),
20716 op1.as_operand(),
20717 op2.as_operand(),
20718 &NOREG,
20719 );
20720 }
20721}
20722
20723impl<'a> VpunpcklwdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
20724 fn vpunpcklwd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
20725 self.emit(
20726 VPUNPCKLWD512RRR_MASKZ,
20727 op0.as_operand(),
20728 op1.as_operand(),
20729 op2.as_operand(),
20730 &NOREG,
20731 );
20732 }
20733}
20734
20735impl<'a> VpunpcklwdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
20736 fn vpunpcklwd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
20737 self.emit(
20738 VPUNPCKLWD512RRM_MASKZ,
20739 op0.as_operand(),
20740 op1.as_operand(),
20741 op2.as_operand(),
20742 &NOREG,
20743 );
20744 }
20745}
20746
20747impl<'a> Assembler<'a> {
20748 #[inline]
20760 pub fn kaddd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20761 where
20762 Assembler<'a>: KadddEmitter<A, B, C>,
20763 {
20764 <Self as KadddEmitter<A, B, C>>::kaddd(self, op0, op1, op2);
20765 }
20766 #[inline]
20778 pub fn kaddq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20779 where
20780 Assembler<'a>: KaddqEmitter<A, B, C>,
20781 {
20782 <Self as KaddqEmitter<A, B, C>>::kaddq(self, op0, op1, op2);
20783 }
20784 #[inline]
20796 pub fn kandd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20797 where
20798 Assembler<'a>: KanddEmitter<A, B, C>,
20799 {
20800 <Self as KanddEmitter<A, B, C>>::kandd(self, op0, op1, op2);
20801 }
20802 #[inline]
20814 pub fn kandnd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20815 where
20816 Assembler<'a>: KandndEmitter<A, B, C>,
20817 {
20818 <Self as KandndEmitter<A, B, C>>::kandnd(self, op0, op1, op2);
20819 }
20820 #[inline]
20832 pub fn kandnq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20833 where
20834 Assembler<'a>: KandnqEmitter<A, B, C>,
20835 {
20836 <Self as KandnqEmitter<A, B, C>>::kandnq(self, op0, op1, op2);
20837 }
20838 #[inline]
20850 pub fn kandq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20851 where
20852 Assembler<'a>: KandqEmitter<A, B, C>,
20853 {
20854 <Self as KandqEmitter<A, B, C>>::kandq(self, op0, op1, op2);
20855 }
20856 #[inline]
20872 pub fn kmovd<A, B>(&mut self, op0: A, op1: B)
20873 where
20874 Assembler<'a>: KmovdEmitter<A, B>,
20875 {
20876 <Self as KmovdEmitter<A, B>>::kmovd(self, op0, op1);
20877 }
20878 #[inline]
20894 pub fn kmovq<A, B>(&mut self, op0: A, op1: B)
20895 where
20896 Assembler<'a>: KmovqEmitter<A, B>,
20897 {
20898 <Self as KmovqEmitter<A, B>>::kmovq(self, op0, op1);
20899 }
20900 #[inline]
20912 pub fn knotd<A, B>(&mut self, op0: A, op1: B)
20913 where
20914 Assembler<'a>: KnotdEmitter<A, B>,
20915 {
20916 <Self as KnotdEmitter<A, B>>::knotd(self, op0, op1);
20917 }
20918 #[inline]
20930 pub fn knotq<A, B>(&mut self, op0: A, op1: B)
20931 where
20932 Assembler<'a>: KnotqEmitter<A, B>,
20933 {
20934 <Self as KnotqEmitter<A, B>>::knotq(self, op0, op1);
20935 }
20936 #[inline]
20948 pub fn kord<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20949 where
20950 Assembler<'a>: KordEmitter<A, B, C>,
20951 {
20952 <Self as KordEmitter<A, B, C>>::kord(self, op0, op1, op2);
20953 }
20954 #[inline]
20966 pub fn korq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
20967 where
20968 Assembler<'a>: KorqEmitter<A, B, C>,
20969 {
20970 <Self as KorqEmitter<A, B, C>>::korq(self, op0, op1, op2);
20971 }
20972 #[inline]
20984 pub fn kortestd<A, B>(&mut self, op0: A, op1: B)
20985 where
20986 Assembler<'a>: KortestdEmitter<A, B>,
20987 {
20988 <Self as KortestdEmitter<A, B>>::kortestd(self, op0, op1);
20989 }
20990 #[inline]
21002 pub fn kortestq<A, B>(&mut self, op0: A, op1: B)
21003 where
21004 Assembler<'a>: KortestqEmitter<A, B>,
21005 {
21006 <Self as KortestqEmitter<A, B>>::kortestq(self, op0, op1);
21007 }
21008 #[inline]
21020 pub fn kshiftld<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21021 where
21022 Assembler<'a>: KshiftldEmitter<A, B, C>,
21023 {
21024 <Self as KshiftldEmitter<A, B, C>>::kshiftld(self, op0, op1, op2);
21025 }
21026 #[inline]
21038 pub fn kshiftlq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21039 where
21040 Assembler<'a>: KshiftlqEmitter<A, B, C>,
21041 {
21042 <Self as KshiftlqEmitter<A, B, C>>::kshiftlq(self, op0, op1, op2);
21043 }
21044 #[inline]
21056 pub fn kshiftrd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21057 where
21058 Assembler<'a>: KshiftrdEmitter<A, B, C>,
21059 {
21060 <Self as KshiftrdEmitter<A, B, C>>::kshiftrd(self, op0, op1, op2);
21061 }
21062 #[inline]
21074 pub fn kshiftrq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21075 where
21076 Assembler<'a>: KshiftrqEmitter<A, B, C>,
21077 {
21078 <Self as KshiftrqEmitter<A, B, C>>::kshiftrq(self, op0, op1, op2);
21079 }
21080 #[inline]
21092 pub fn ktestd<A, B>(&mut self, op0: A, op1: B)
21093 where
21094 Assembler<'a>: KtestdEmitter<A, B>,
21095 {
21096 <Self as KtestdEmitter<A, B>>::ktestd(self, op0, op1);
21097 }
21098 #[inline]
21110 pub fn ktestq<A, B>(&mut self, op0: A, op1: B)
21111 where
21112 Assembler<'a>: KtestqEmitter<A, B>,
21113 {
21114 <Self as KtestqEmitter<A, B>>::ktestq(self, op0, op1);
21115 }
21116 #[inline]
21128 pub fn kunpckdq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21129 where
21130 Assembler<'a>: KunpckdqEmitter<A, B, C>,
21131 {
21132 <Self as KunpckdqEmitter<A, B, C>>::kunpckdq(self, op0, op1, op2);
21133 }
21134 #[inline]
21146 pub fn kunpckwd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21147 where
21148 Assembler<'a>: KunpckwdEmitter<A, B, C>,
21149 {
21150 <Self as KunpckwdEmitter<A, B, C>>::kunpckwd(self, op0, op1, op2);
21151 }
21152 #[inline]
21164 pub fn kxnord<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21165 where
21166 Assembler<'a>: KxnordEmitter<A, B, C>,
21167 {
21168 <Self as KxnordEmitter<A, B, C>>::kxnord(self, op0, op1, op2);
21169 }
21170 #[inline]
21182 pub fn kxnorq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21183 where
21184 Assembler<'a>: KxnorqEmitter<A, B, C>,
21185 {
21186 <Self as KxnorqEmitter<A, B, C>>::kxnorq(self, op0, op1, op2);
21187 }
21188 #[inline]
21200 pub fn kxord<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21201 where
21202 Assembler<'a>: KxordEmitter<A, B, C>,
21203 {
21204 <Self as KxordEmitter<A, B, C>>::kxord(self, op0, op1, op2);
21205 }
21206 #[inline]
21218 pub fn kxorq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21219 where
21220 Assembler<'a>: KxorqEmitter<A, B, C>,
21221 {
21222 <Self as KxorqEmitter<A, B, C>>::kxorq(self, op0, op1, op2);
21223 }
21224 #[inline]
21241 pub fn vdbpsadbw<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
21242 where
21243 Assembler<'a>: VdbpsadbwEmitter<A, B, C, D>,
21244 {
21245 <Self as VdbpsadbwEmitter<A, B, C, D>>::vdbpsadbw(self, op0, op1, op2, op3);
21246 }
21247 #[inline]
21264 pub fn vdbpsadbw_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
21265 where
21266 Assembler<'a>: VdbpsadbwMaskEmitter<A, B, C, D>,
21267 {
21268 <Self as VdbpsadbwMaskEmitter<A, B, C, D>>::vdbpsadbw_mask(self, op0, op1, op2, op3);
21269 }
21270 #[inline]
21287 pub fn vdbpsadbw_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
21288 where
21289 Assembler<'a>: VdbpsadbwMaskzEmitter<A, B, C, D>,
21290 {
21291 <Self as VdbpsadbwMaskzEmitter<A, B, C, D>>::vdbpsadbw_maskz(self, op0, op1, op2, op3);
21292 }
21293 #[inline]
21313 pub fn vmovdqu16<A, B>(&mut self, op0: A, op1: B)
21314 where
21315 Assembler<'a>: Vmovdqu16Emitter<A, B>,
21316 {
21317 <Self as Vmovdqu16Emitter<A, B>>::vmovdqu16(self, op0, op1);
21318 }
21319 #[inline]
21339 pub fn vmovdqu16_mask<A, B>(&mut self, op0: A, op1: B)
21340 where
21341 Assembler<'a>: Vmovdqu16MaskEmitter<A, B>,
21342 {
21343 <Self as Vmovdqu16MaskEmitter<A, B>>::vmovdqu16_mask(self, op0, op1);
21344 }
21345 #[inline]
21362 pub fn vmovdqu16_maskz<A, B>(&mut self, op0: A, op1: B)
21363 where
21364 Assembler<'a>: Vmovdqu16MaskzEmitter<A, B>,
21365 {
21366 <Self as Vmovdqu16MaskzEmitter<A, B>>::vmovdqu16_maskz(self, op0, op1);
21367 }
21368 #[inline]
21388 pub fn vmovdqu8<A, B>(&mut self, op0: A, op1: B)
21389 where
21390 Assembler<'a>: Vmovdqu8Emitter<A, B>,
21391 {
21392 <Self as Vmovdqu8Emitter<A, B>>::vmovdqu8(self, op0, op1);
21393 }
21394 #[inline]
21414 pub fn vmovdqu8_mask<A, B>(&mut self, op0: A, op1: B)
21415 where
21416 Assembler<'a>: Vmovdqu8MaskEmitter<A, B>,
21417 {
21418 <Self as Vmovdqu8MaskEmitter<A, B>>::vmovdqu8_mask(self, op0, op1);
21419 }
21420 #[inline]
21437 pub fn vmovdqu8_maskz<A, B>(&mut self, op0: A, op1: B)
21438 where
21439 Assembler<'a>: Vmovdqu8MaskzEmitter<A, B>,
21440 {
21441 <Self as Vmovdqu8MaskzEmitter<A, B>>::vmovdqu8_maskz(self, op0, op1);
21442 }
21443 #[inline]
21460 pub fn vpabsb<A, B>(&mut self, op0: A, op1: B)
21461 where
21462 Assembler<'a>: VpabsbEmitter<A, B>,
21463 {
21464 <Self as VpabsbEmitter<A, B>>::vpabsb(self, op0, op1);
21465 }
21466 #[inline]
21483 pub fn vpabsb_mask<A, B>(&mut self, op0: A, op1: B)
21484 where
21485 Assembler<'a>: VpabsbMaskEmitter<A, B>,
21486 {
21487 <Self as VpabsbMaskEmitter<A, B>>::vpabsb_mask(self, op0, op1);
21488 }
21489 #[inline]
21506 pub fn vpabsb_maskz<A, B>(&mut self, op0: A, op1: B)
21507 where
21508 Assembler<'a>: VpabsbMaskzEmitter<A, B>,
21509 {
21510 <Self as VpabsbMaskzEmitter<A, B>>::vpabsb_maskz(self, op0, op1);
21511 }
21512 #[inline]
21529 pub fn vpabsw<A, B>(&mut self, op0: A, op1: B)
21530 where
21531 Assembler<'a>: VpabswEmitter<A, B>,
21532 {
21533 <Self as VpabswEmitter<A, B>>::vpabsw(self, op0, op1);
21534 }
21535 #[inline]
21552 pub fn vpabsw_mask<A, B>(&mut self, op0: A, op1: B)
21553 where
21554 Assembler<'a>: VpabswMaskEmitter<A, B>,
21555 {
21556 <Self as VpabswMaskEmitter<A, B>>::vpabsw_mask(self, op0, op1);
21557 }
21558 #[inline]
21575 pub fn vpabsw_maskz<A, B>(&mut self, op0: A, op1: B)
21576 where
21577 Assembler<'a>: VpabswMaskzEmitter<A, B>,
21578 {
21579 <Self as VpabswMaskzEmitter<A, B>>::vpabsw_maskz(self, op0, op1);
21580 }
21581 #[inline]
21598 pub fn vpackssdw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21599 where
21600 Assembler<'a>: VpackssdwEmitter<A, B, C>,
21601 {
21602 <Self as VpackssdwEmitter<A, B, C>>::vpackssdw(self, op0, op1, op2);
21603 }
21604 #[inline]
21621 pub fn vpackssdw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21622 where
21623 Assembler<'a>: VpackssdwMaskEmitter<A, B, C>,
21624 {
21625 <Self as VpackssdwMaskEmitter<A, B, C>>::vpackssdw_mask(self, op0, op1, op2);
21626 }
21627 #[inline]
21644 pub fn vpackssdw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21645 where
21646 Assembler<'a>: VpackssdwMaskzEmitter<A, B, C>,
21647 {
21648 <Self as VpackssdwMaskzEmitter<A, B, C>>::vpackssdw_maskz(self, op0, op1, op2);
21649 }
21650 #[inline]
21667 pub fn vpacksswb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21668 where
21669 Assembler<'a>: VpacksswbEmitter<A, B, C>,
21670 {
21671 <Self as VpacksswbEmitter<A, B, C>>::vpacksswb(self, op0, op1, op2);
21672 }
21673 #[inline]
21690 pub fn vpacksswb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21691 where
21692 Assembler<'a>: VpacksswbMaskEmitter<A, B, C>,
21693 {
21694 <Self as VpacksswbMaskEmitter<A, B, C>>::vpacksswb_mask(self, op0, op1, op2);
21695 }
21696 #[inline]
21713 pub fn vpacksswb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21714 where
21715 Assembler<'a>: VpacksswbMaskzEmitter<A, B, C>,
21716 {
21717 <Self as VpacksswbMaskzEmitter<A, B, C>>::vpacksswb_maskz(self, op0, op1, op2);
21718 }
21719 #[inline]
21736 pub fn vpackusdw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21737 where
21738 Assembler<'a>: VpackusdwEmitter<A, B, C>,
21739 {
21740 <Self as VpackusdwEmitter<A, B, C>>::vpackusdw(self, op0, op1, op2);
21741 }
21742 #[inline]
21759 pub fn vpackusdw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21760 where
21761 Assembler<'a>: VpackusdwMaskEmitter<A, B, C>,
21762 {
21763 <Self as VpackusdwMaskEmitter<A, B, C>>::vpackusdw_mask(self, op0, op1, op2);
21764 }
21765 #[inline]
21782 pub fn vpackusdw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21783 where
21784 Assembler<'a>: VpackusdwMaskzEmitter<A, B, C>,
21785 {
21786 <Self as VpackusdwMaskzEmitter<A, B, C>>::vpackusdw_maskz(self, op0, op1, op2);
21787 }
21788 #[inline]
21805 pub fn vpackuswb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21806 where
21807 Assembler<'a>: VpackuswbEmitter<A, B, C>,
21808 {
21809 <Self as VpackuswbEmitter<A, B, C>>::vpackuswb(self, op0, op1, op2);
21810 }
21811 #[inline]
21828 pub fn vpackuswb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21829 where
21830 Assembler<'a>: VpackuswbMaskEmitter<A, B, C>,
21831 {
21832 <Self as VpackuswbMaskEmitter<A, B, C>>::vpackuswb_mask(self, op0, op1, op2);
21833 }
21834 #[inline]
21851 pub fn vpackuswb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21852 where
21853 Assembler<'a>: VpackuswbMaskzEmitter<A, B, C>,
21854 {
21855 <Self as VpackuswbMaskzEmitter<A, B, C>>::vpackuswb_maskz(self, op0, op1, op2);
21856 }
21857 #[inline]
21874 pub fn vpaddb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21875 where
21876 Assembler<'a>: VpaddbEmitter<A, B, C>,
21877 {
21878 <Self as VpaddbEmitter<A, B, C>>::vpaddb(self, op0, op1, op2);
21879 }
21880 #[inline]
21897 pub fn vpaddb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21898 where
21899 Assembler<'a>: VpaddbMaskEmitter<A, B, C>,
21900 {
21901 <Self as VpaddbMaskEmitter<A, B, C>>::vpaddb_mask(self, op0, op1, op2);
21902 }
21903 #[inline]
21920 pub fn vpaddb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21921 where
21922 Assembler<'a>: VpaddbMaskzEmitter<A, B, C>,
21923 {
21924 <Self as VpaddbMaskzEmitter<A, B, C>>::vpaddb_maskz(self, op0, op1, op2);
21925 }
21926 #[inline]
21943 pub fn vpaddsb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21944 where
21945 Assembler<'a>: VpaddsbEmitter<A, B, C>,
21946 {
21947 <Self as VpaddsbEmitter<A, B, C>>::vpaddsb(self, op0, op1, op2);
21948 }
21949 #[inline]
21966 pub fn vpaddsb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21967 where
21968 Assembler<'a>: VpaddsbMaskEmitter<A, B, C>,
21969 {
21970 <Self as VpaddsbMaskEmitter<A, B, C>>::vpaddsb_mask(self, op0, op1, op2);
21971 }
21972 #[inline]
21989 pub fn vpaddsb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
21990 where
21991 Assembler<'a>: VpaddsbMaskzEmitter<A, B, C>,
21992 {
21993 <Self as VpaddsbMaskzEmitter<A, B, C>>::vpaddsb_maskz(self, op0, op1, op2);
21994 }
21995 #[inline]
22012 pub fn vpaddsw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22013 where
22014 Assembler<'a>: VpaddswEmitter<A, B, C>,
22015 {
22016 <Self as VpaddswEmitter<A, B, C>>::vpaddsw(self, op0, op1, op2);
22017 }
22018 #[inline]
22035 pub fn vpaddsw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22036 where
22037 Assembler<'a>: VpaddswMaskEmitter<A, B, C>,
22038 {
22039 <Self as VpaddswMaskEmitter<A, B, C>>::vpaddsw_mask(self, op0, op1, op2);
22040 }
22041 #[inline]
22058 pub fn vpaddsw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22059 where
22060 Assembler<'a>: VpaddswMaskzEmitter<A, B, C>,
22061 {
22062 <Self as VpaddswMaskzEmitter<A, B, C>>::vpaddsw_maskz(self, op0, op1, op2);
22063 }
22064 #[inline]
22081 pub fn vpaddusb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22082 where
22083 Assembler<'a>: VpaddusbEmitter<A, B, C>,
22084 {
22085 <Self as VpaddusbEmitter<A, B, C>>::vpaddusb(self, op0, op1, op2);
22086 }
22087 #[inline]
22104 pub fn vpaddusb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22105 where
22106 Assembler<'a>: VpaddusbMaskEmitter<A, B, C>,
22107 {
22108 <Self as VpaddusbMaskEmitter<A, B, C>>::vpaddusb_mask(self, op0, op1, op2);
22109 }
22110 #[inline]
22127 pub fn vpaddusb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22128 where
22129 Assembler<'a>: VpaddusbMaskzEmitter<A, B, C>,
22130 {
22131 <Self as VpaddusbMaskzEmitter<A, B, C>>::vpaddusb_maskz(self, op0, op1, op2);
22132 }
22133 #[inline]
22150 pub fn vpaddusw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22151 where
22152 Assembler<'a>: VpadduswEmitter<A, B, C>,
22153 {
22154 <Self as VpadduswEmitter<A, B, C>>::vpaddusw(self, op0, op1, op2);
22155 }
22156 #[inline]
22173 pub fn vpaddusw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22174 where
22175 Assembler<'a>: VpadduswMaskEmitter<A, B, C>,
22176 {
22177 <Self as VpadduswMaskEmitter<A, B, C>>::vpaddusw_mask(self, op0, op1, op2);
22178 }
22179 #[inline]
22196 pub fn vpaddusw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22197 where
22198 Assembler<'a>: VpadduswMaskzEmitter<A, B, C>,
22199 {
22200 <Self as VpadduswMaskzEmitter<A, B, C>>::vpaddusw_maskz(self, op0, op1, op2);
22201 }
22202 #[inline]
22219 pub fn vpaddw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22220 where
22221 Assembler<'a>: VpaddwEmitter<A, B, C>,
22222 {
22223 <Self as VpaddwEmitter<A, B, C>>::vpaddw(self, op0, op1, op2);
22224 }
22225 #[inline]
22242 pub fn vpaddw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22243 where
22244 Assembler<'a>: VpaddwMaskEmitter<A, B, C>,
22245 {
22246 <Self as VpaddwMaskEmitter<A, B, C>>::vpaddw_mask(self, op0, op1, op2);
22247 }
22248 #[inline]
22265 pub fn vpaddw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22266 where
22267 Assembler<'a>: VpaddwMaskzEmitter<A, B, C>,
22268 {
22269 <Self as VpaddwMaskzEmitter<A, B, C>>::vpaddw_maskz(self, op0, op1, op2);
22270 }
22271 #[inline]
22288 pub fn vpalignr<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22289 where
22290 Assembler<'a>: VpalignrEmitter<A, B, C, D>,
22291 {
22292 <Self as VpalignrEmitter<A, B, C, D>>::vpalignr(self, op0, op1, op2, op3);
22293 }
22294 #[inline]
22311 pub fn vpalignr_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22312 where
22313 Assembler<'a>: VpalignrMaskEmitter<A, B, C, D>,
22314 {
22315 <Self as VpalignrMaskEmitter<A, B, C, D>>::vpalignr_mask(self, op0, op1, op2, op3);
22316 }
22317 #[inline]
22334 pub fn vpalignr_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22335 where
22336 Assembler<'a>: VpalignrMaskzEmitter<A, B, C, D>,
22337 {
22338 <Self as VpalignrMaskzEmitter<A, B, C, D>>::vpalignr_maskz(self, op0, op1, op2, op3);
22339 }
22340 #[inline]
22357 pub fn vpavgb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22358 where
22359 Assembler<'a>: VpavgbEmitter<A, B, C>,
22360 {
22361 <Self as VpavgbEmitter<A, B, C>>::vpavgb(self, op0, op1, op2);
22362 }
22363 #[inline]
22380 pub fn vpavgb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22381 where
22382 Assembler<'a>: VpavgbMaskEmitter<A, B, C>,
22383 {
22384 <Self as VpavgbMaskEmitter<A, B, C>>::vpavgb_mask(self, op0, op1, op2);
22385 }
22386 #[inline]
22403 pub fn vpavgb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22404 where
22405 Assembler<'a>: VpavgbMaskzEmitter<A, B, C>,
22406 {
22407 <Self as VpavgbMaskzEmitter<A, B, C>>::vpavgb_maskz(self, op0, op1, op2);
22408 }
22409 #[inline]
22426 pub fn vpavgw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22427 where
22428 Assembler<'a>: VpavgwEmitter<A, B, C>,
22429 {
22430 <Self as VpavgwEmitter<A, B, C>>::vpavgw(self, op0, op1, op2);
22431 }
22432 #[inline]
22449 pub fn vpavgw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22450 where
22451 Assembler<'a>: VpavgwMaskEmitter<A, B, C>,
22452 {
22453 <Self as VpavgwMaskEmitter<A, B, C>>::vpavgw_mask(self, op0, op1, op2);
22454 }
22455 #[inline]
22472 pub fn vpavgw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22473 where
22474 Assembler<'a>: VpavgwMaskzEmitter<A, B, C>,
22475 {
22476 <Self as VpavgwMaskzEmitter<A, B, C>>::vpavgw_maskz(self, op0, op1, op2);
22477 }
22478 #[inline]
22495 pub fn vpblendmb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22496 where
22497 Assembler<'a>: VpblendmbEmitter<A, B, C>,
22498 {
22499 <Self as VpblendmbEmitter<A, B, C>>::vpblendmb(self, op0, op1, op2);
22500 }
22501 #[inline]
22518 pub fn vpblendmb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22519 where
22520 Assembler<'a>: VpblendmbMaskEmitter<A, B, C>,
22521 {
22522 <Self as VpblendmbMaskEmitter<A, B, C>>::vpblendmb_mask(self, op0, op1, op2);
22523 }
22524 #[inline]
22541 pub fn vpblendmb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22542 where
22543 Assembler<'a>: VpblendmbMaskzEmitter<A, B, C>,
22544 {
22545 <Self as VpblendmbMaskzEmitter<A, B, C>>::vpblendmb_maskz(self, op0, op1, op2);
22546 }
22547 #[inline]
22564 pub fn vpblendmw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22565 where
22566 Assembler<'a>: VpblendmwEmitter<A, B, C>,
22567 {
22568 <Self as VpblendmwEmitter<A, B, C>>::vpblendmw(self, op0, op1, op2);
22569 }
22570 #[inline]
22587 pub fn vpblendmw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22588 where
22589 Assembler<'a>: VpblendmwMaskEmitter<A, B, C>,
22590 {
22591 <Self as VpblendmwMaskEmitter<A, B, C>>::vpblendmw_mask(self, op0, op1, op2);
22592 }
22593 #[inline]
22610 pub fn vpblendmw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
22611 where
22612 Assembler<'a>: VpblendmwMaskzEmitter<A, B, C>,
22613 {
22614 <Self as VpblendmwMaskzEmitter<A, B, C>>::vpblendmw_maskz(self, op0, op1, op2);
22615 }
22616 #[inline]
22633 pub fn vpbroadcastb<A, B>(&mut self, op0: A, op1: B)
22634 where
22635 Assembler<'a>: VpbroadcastbEmitter<A, B>,
22636 {
22637 <Self as VpbroadcastbEmitter<A, B>>::vpbroadcastb(self, op0, op1);
22638 }
22639 #[inline]
22653 pub fn vpbroadcastb_gp<A, B>(&mut self, op0: A, op1: B)
22654 where
22655 Assembler<'a>: VpbroadcastbGpEmitter<A, B>,
22656 {
22657 <Self as VpbroadcastbGpEmitter<A, B>>::vpbroadcastb_gp(self, op0, op1);
22658 }
22659 #[inline]
22673 pub fn vpbroadcastb_gp_mask<A, B>(&mut self, op0: A, op1: B)
22674 where
22675 Assembler<'a>: VpbroadcastbGpMaskEmitter<A, B>,
22676 {
22677 <Self as VpbroadcastbGpMaskEmitter<A, B>>::vpbroadcastb_gp_mask(self, op0, op1);
22678 }
22679 #[inline]
22693 pub fn vpbroadcastb_gp_maskz<A, B>(&mut self, op0: A, op1: B)
22694 where
22695 Assembler<'a>: VpbroadcastbGpMaskzEmitter<A, B>,
22696 {
22697 <Self as VpbroadcastbGpMaskzEmitter<A, B>>::vpbroadcastb_gp_maskz(self, op0, op1);
22698 }
22699 #[inline]
22716 pub fn vpbroadcastb_mask<A, B>(&mut self, op0: A, op1: B)
22717 where
22718 Assembler<'a>: VpbroadcastbMaskEmitter<A, B>,
22719 {
22720 <Self as VpbroadcastbMaskEmitter<A, B>>::vpbroadcastb_mask(self, op0, op1);
22721 }
22722 #[inline]
22739 pub fn vpbroadcastb_maskz<A, B>(&mut self, op0: A, op1: B)
22740 where
22741 Assembler<'a>: VpbroadcastbMaskzEmitter<A, B>,
22742 {
22743 <Self as VpbroadcastbMaskzEmitter<A, B>>::vpbroadcastb_maskz(self, op0, op1);
22744 }
22745 #[inline]
22762 pub fn vpbroadcastw<A, B>(&mut self, op0: A, op1: B)
22763 where
22764 Assembler<'a>: VpbroadcastwEmitter<A, B>,
22765 {
22766 <Self as VpbroadcastwEmitter<A, B>>::vpbroadcastw(self, op0, op1);
22767 }
22768 #[inline]
22782 pub fn vpbroadcastw_gp<A, B>(&mut self, op0: A, op1: B)
22783 where
22784 Assembler<'a>: VpbroadcastwGpEmitter<A, B>,
22785 {
22786 <Self as VpbroadcastwGpEmitter<A, B>>::vpbroadcastw_gp(self, op0, op1);
22787 }
22788 #[inline]
22802 pub fn vpbroadcastw_gp_mask<A, B>(&mut self, op0: A, op1: B)
22803 where
22804 Assembler<'a>: VpbroadcastwGpMaskEmitter<A, B>,
22805 {
22806 <Self as VpbroadcastwGpMaskEmitter<A, B>>::vpbroadcastw_gp_mask(self, op0, op1);
22807 }
22808 #[inline]
22822 pub fn vpbroadcastw_gp_maskz<A, B>(&mut self, op0: A, op1: B)
22823 where
22824 Assembler<'a>: VpbroadcastwGpMaskzEmitter<A, B>,
22825 {
22826 <Self as VpbroadcastwGpMaskzEmitter<A, B>>::vpbroadcastw_gp_maskz(self, op0, op1);
22827 }
22828 #[inline]
22845 pub fn vpbroadcastw_mask<A, B>(&mut self, op0: A, op1: B)
22846 where
22847 Assembler<'a>: VpbroadcastwMaskEmitter<A, B>,
22848 {
22849 <Self as VpbroadcastwMaskEmitter<A, B>>::vpbroadcastw_mask(self, op0, op1);
22850 }
22851 #[inline]
22868 pub fn vpbroadcastw_maskz<A, B>(&mut self, op0: A, op1: B)
22869 where
22870 Assembler<'a>: VpbroadcastwMaskzEmitter<A, B>,
22871 {
22872 <Self as VpbroadcastwMaskzEmitter<A, B>>::vpbroadcastw_maskz(self, op0, op1);
22873 }
22874 #[inline]
22891 pub fn vpcmpb<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22892 where
22893 Assembler<'a>: VpcmpbEmitter<A, B, C, D>,
22894 {
22895 <Self as VpcmpbEmitter<A, B, C, D>>::vpcmpb(self, op0, op1, op2, op3);
22896 }
22897 #[inline]
22914 pub fn vpcmpb_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22915 where
22916 Assembler<'a>: VpcmpbMaskEmitter<A, B, C, D>,
22917 {
22918 <Self as VpcmpbMaskEmitter<A, B, C, D>>::vpcmpb_mask(self, op0, op1, op2, op3);
22919 }
22920 #[inline]
22937 pub fn vpcmpub<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22938 where
22939 Assembler<'a>: VpcmpubEmitter<A, B, C, D>,
22940 {
22941 <Self as VpcmpubEmitter<A, B, C, D>>::vpcmpub(self, op0, op1, op2, op3);
22942 }
22943 #[inline]
22960 pub fn vpcmpub_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22961 where
22962 Assembler<'a>: VpcmpubMaskEmitter<A, B, C, D>,
22963 {
22964 <Self as VpcmpubMaskEmitter<A, B, C, D>>::vpcmpub_mask(self, op0, op1, op2, op3);
22965 }
22966 #[inline]
22983 pub fn vpcmpuw<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
22984 where
22985 Assembler<'a>: VpcmpuwEmitter<A, B, C, D>,
22986 {
22987 <Self as VpcmpuwEmitter<A, B, C, D>>::vpcmpuw(self, op0, op1, op2, op3);
22988 }
22989 #[inline]
23006 pub fn vpcmpuw_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
23007 where
23008 Assembler<'a>: VpcmpuwMaskEmitter<A, B, C, D>,
23009 {
23010 <Self as VpcmpuwMaskEmitter<A, B, C, D>>::vpcmpuw_mask(self, op0, op1, op2, op3);
23011 }
23012 #[inline]
23029 pub fn vpcmpw<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
23030 where
23031 Assembler<'a>: VpcmpwEmitter<A, B, C, D>,
23032 {
23033 <Self as VpcmpwEmitter<A, B, C, D>>::vpcmpw(self, op0, op1, op2, op3);
23034 }
23035 #[inline]
23052 pub fn vpcmpw_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
23053 where
23054 Assembler<'a>: VpcmpwMaskEmitter<A, B, C, D>,
23055 {
23056 <Self as VpcmpwMaskEmitter<A, B, C, D>>::vpcmpw_mask(self, op0, op1, op2, op3);
23057 }
23058 #[inline]
23075 pub fn vpermi2w<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23076 where
23077 Assembler<'a>: Vpermi2wEmitter<A, B, C>,
23078 {
23079 <Self as Vpermi2wEmitter<A, B, C>>::vpermi2w(self, op0, op1, op2);
23080 }
23081 #[inline]
23098 pub fn vpermi2w_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23099 where
23100 Assembler<'a>: Vpermi2wMaskEmitter<A, B, C>,
23101 {
23102 <Self as Vpermi2wMaskEmitter<A, B, C>>::vpermi2w_mask(self, op0, op1, op2);
23103 }
23104 #[inline]
23121 pub fn vpermi2w_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23122 where
23123 Assembler<'a>: Vpermi2wMaskzEmitter<A, B, C>,
23124 {
23125 <Self as Vpermi2wMaskzEmitter<A, B, C>>::vpermi2w_maskz(self, op0, op1, op2);
23126 }
23127 #[inline]
23144 pub fn vpermt2w<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23145 where
23146 Assembler<'a>: Vpermt2wEmitter<A, B, C>,
23147 {
23148 <Self as Vpermt2wEmitter<A, B, C>>::vpermt2w(self, op0, op1, op2);
23149 }
23150 #[inline]
23167 pub fn vpermt2w_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23168 where
23169 Assembler<'a>: Vpermt2wMaskEmitter<A, B, C>,
23170 {
23171 <Self as Vpermt2wMaskEmitter<A, B, C>>::vpermt2w_mask(self, op0, op1, op2);
23172 }
23173 #[inline]
23190 pub fn vpermt2w_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23191 where
23192 Assembler<'a>: Vpermt2wMaskzEmitter<A, B, C>,
23193 {
23194 <Self as Vpermt2wMaskzEmitter<A, B, C>>::vpermt2w_maskz(self, op0, op1, op2);
23195 }
23196 #[inline]
23213 pub fn vpermw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23214 where
23215 Assembler<'a>: VpermwEmitter<A, B, C>,
23216 {
23217 <Self as VpermwEmitter<A, B, C>>::vpermw(self, op0, op1, op2);
23218 }
23219 #[inline]
23236 pub fn vpermw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23237 where
23238 Assembler<'a>: VpermwMaskEmitter<A, B, C>,
23239 {
23240 <Self as VpermwMaskEmitter<A, B, C>>::vpermw_mask(self, op0, op1, op2);
23241 }
23242 #[inline]
23259 pub fn vpermw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23260 where
23261 Assembler<'a>: VpermwMaskzEmitter<A, B, C>,
23262 {
23263 <Self as VpermwMaskzEmitter<A, B, C>>::vpermw_maskz(self, op0, op1, op2);
23264 }
23265 #[inline]
23278 pub fn vpextrb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23279 where
23280 Assembler<'a>: VpextrbEmitter<A, B, C>,
23281 {
23282 <Self as VpextrbEmitter<A, B, C>>::vpextrb(self, op0, op1, op2);
23283 }
23284 #[inline]
23297 pub fn vpextrw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23298 where
23299 Assembler<'a>: VpextrwEmitter<A, B, C>,
23300 {
23301 <Self as VpextrwEmitter<A, B, C>>::vpextrw(self, op0, op1, op2);
23302 }
23303 #[inline]
23316 pub fn vpinsrb<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
23317 where
23318 Assembler<'a>: VpinsrbEmitter<A, B, C, D>,
23319 {
23320 <Self as VpinsrbEmitter<A, B, C, D>>::vpinsrb(self, op0, op1, op2, op3);
23321 }
23322 #[inline]
23335 pub fn vpinsrw<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
23336 where
23337 Assembler<'a>: VpinsrwEmitter<A, B, C, D>,
23338 {
23339 <Self as VpinsrwEmitter<A, B, C, D>>::vpinsrw(self, op0, op1, op2, op3);
23340 }
23341 #[inline]
23358 pub fn vpmaddubsw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23359 where
23360 Assembler<'a>: VpmaddubswEmitter<A, B, C>,
23361 {
23362 <Self as VpmaddubswEmitter<A, B, C>>::vpmaddubsw(self, op0, op1, op2);
23363 }
23364 #[inline]
23381 pub fn vpmaddubsw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23382 where
23383 Assembler<'a>: VpmaddubswMaskEmitter<A, B, C>,
23384 {
23385 <Self as VpmaddubswMaskEmitter<A, B, C>>::vpmaddubsw_mask(self, op0, op1, op2);
23386 }
23387 #[inline]
23404 pub fn vpmaddubsw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23405 where
23406 Assembler<'a>: VpmaddubswMaskzEmitter<A, B, C>,
23407 {
23408 <Self as VpmaddubswMaskzEmitter<A, B, C>>::vpmaddubsw_maskz(self, op0, op1, op2);
23409 }
23410 #[inline]
23427 pub fn vpmaddwd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23428 where
23429 Assembler<'a>: VpmaddwdEmitter<A, B, C>,
23430 {
23431 <Self as VpmaddwdEmitter<A, B, C>>::vpmaddwd(self, op0, op1, op2);
23432 }
23433 #[inline]
23450 pub fn vpmaddwd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23451 where
23452 Assembler<'a>: VpmaddwdMaskEmitter<A, B, C>,
23453 {
23454 <Self as VpmaddwdMaskEmitter<A, B, C>>::vpmaddwd_mask(self, op0, op1, op2);
23455 }
23456 #[inline]
23473 pub fn vpmaddwd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23474 where
23475 Assembler<'a>: VpmaddwdMaskzEmitter<A, B, C>,
23476 {
23477 <Self as VpmaddwdMaskzEmitter<A, B, C>>::vpmaddwd_maskz(self, op0, op1, op2);
23478 }
23479 #[inline]
23496 pub fn vpmaxsb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23497 where
23498 Assembler<'a>: VpmaxsbEmitter<A, B, C>,
23499 {
23500 <Self as VpmaxsbEmitter<A, B, C>>::vpmaxsb(self, op0, op1, op2);
23501 }
23502 #[inline]
23519 pub fn vpmaxsb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23520 where
23521 Assembler<'a>: VpmaxsbMaskEmitter<A, B, C>,
23522 {
23523 <Self as VpmaxsbMaskEmitter<A, B, C>>::vpmaxsb_mask(self, op0, op1, op2);
23524 }
23525 #[inline]
23542 pub fn vpmaxsb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23543 where
23544 Assembler<'a>: VpmaxsbMaskzEmitter<A, B, C>,
23545 {
23546 <Self as VpmaxsbMaskzEmitter<A, B, C>>::vpmaxsb_maskz(self, op0, op1, op2);
23547 }
23548 #[inline]
23565 pub fn vpmaxsw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23566 where
23567 Assembler<'a>: VpmaxswEmitter<A, B, C>,
23568 {
23569 <Self as VpmaxswEmitter<A, B, C>>::vpmaxsw(self, op0, op1, op2);
23570 }
23571 #[inline]
23588 pub fn vpmaxsw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23589 where
23590 Assembler<'a>: VpmaxswMaskEmitter<A, B, C>,
23591 {
23592 <Self as VpmaxswMaskEmitter<A, B, C>>::vpmaxsw_mask(self, op0, op1, op2);
23593 }
23594 #[inline]
23611 pub fn vpmaxsw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23612 where
23613 Assembler<'a>: VpmaxswMaskzEmitter<A, B, C>,
23614 {
23615 <Self as VpmaxswMaskzEmitter<A, B, C>>::vpmaxsw_maskz(self, op0, op1, op2);
23616 }
23617 #[inline]
23634 pub fn vpmaxub<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23635 where
23636 Assembler<'a>: VpmaxubEmitter<A, B, C>,
23637 {
23638 <Self as VpmaxubEmitter<A, B, C>>::vpmaxub(self, op0, op1, op2);
23639 }
23640 #[inline]
23657 pub fn vpmaxub_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23658 where
23659 Assembler<'a>: VpmaxubMaskEmitter<A, B, C>,
23660 {
23661 <Self as VpmaxubMaskEmitter<A, B, C>>::vpmaxub_mask(self, op0, op1, op2);
23662 }
23663 #[inline]
23680 pub fn vpmaxub_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23681 where
23682 Assembler<'a>: VpmaxubMaskzEmitter<A, B, C>,
23683 {
23684 <Self as VpmaxubMaskzEmitter<A, B, C>>::vpmaxub_maskz(self, op0, op1, op2);
23685 }
23686 #[inline]
23703 pub fn vpmaxuw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23704 where
23705 Assembler<'a>: VpmaxuwEmitter<A, B, C>,
23706 {
23707 <Self as VpmaxuwEmitter<A, B, C>>::vpmaxuw(self, op0, op1, op2);
23708 }
23709 #[inline]
23726 pub fn vpmaxuw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23727 where
23728 Assembler<'a>: VpmaxuwMaskEmitter<A, B, C>,
23729 {
23730 <Self as VpmaxuwMaskEmitter<A, B, C>>::vpmaxuw_mask(self, op0, op1, op2);
23731 }
23732 #[inline]
23749 pub fn vpmaxuw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23750 where
23751 Assembler<'a>: VpmaxuwMaskzEmitter<A, B, C>,
23752 {
23753 <Self as VpmaxuwMaskzEmitter<A, B, C>>::vpmaxuw_maskz(self, op0, op1, op2);
23754 }
23755 #[inline]
23772 pub fn vpminsb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23773 where
23774 Assembler<'a>: VpminsbEmitter<A, B, C>,
23775 {
23776 <Self as VpminsbEmitter<A, B, C>>::vpminsb(self, op0, op1, op2);
23777 }
23778 #[inline]
23795 pub fn vpminsb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23796 where
23797 Assembler<'a>: VpminsbMaskEmitter<A, B, C>,
23798 {
23799 <Self as VpminsbMaskEmitter<A, B, C>>::vpminsb_mask(self, op0, op1, op2);
23800 }
23801 #[inline]
23818 pub fn vpminsb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23819 where
23820 Assembler<'a>: VpminsbMaskzEmitter<A, B, C>,
23821 {
23822 <Self as VpminsbMaskzEmitter<A, B, C>>::vpminsb_maskz(self, op0, op1, op2);
23823 }
23824 #[inline]
23841 pub fn vpminsw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23842 where
23843 Assembler<'a>: VpminswEmitter<A, B, C>,
23844 {
23845 <Self as VpminswEmitter<A, B, C>>::vpminsw(self, op0, op1, op2);
23846 }
23847 #[inline]
23864 pub fn vpminsw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23865 where
23866 Assembler<'a>: VpminswMaskEmitter<A, B, C>,
23867 {
23868 <Self as VpminswMaskEmitter<A, B, C>>::vpminsw_mask(self, op0, op1, op2);
23869 }
23870 #[inline]
23887 pub fn vpminsw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23888 where
23889 Assembler<'a>: VpminswMaskzEmitter<A, B, C>,
23890 {
23891 <Self as VpminswMaskzEmitter<A, B, C>>::vpminsw_maskz(self, op0, op1, op2);
23892 }
23893 #[inline]
23910 pub fn vpminub<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23911 where
23912 Assembler<'a>: VpminubEmitter<A, B, C>,
23913 {
23914 <Self as VpminubEmitter<A, B, C>>::vpminub(self, op0, op1, op2);
23915 }
23916 #[inline]
23933 pub fn vpminub_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23934 where
23935 Assembler<'a>: VpminubMaskEmitter<A, B, C>,
23936 {
23937 <Self as VpminubMaskEmitter<A, B, C>>::vpminub_mask(self, op0, op1, op2);
23938 }
23939 #[inline]
23956 pub fn vpminub_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23957 where
23958 Assembler<'a>: VpminubMaskzEmitter<A, B, C>,
23959 {
23960 <Self as VpminubMaskzEmitter<A, B, C>>::vpminub_maskz(self, op0, op1, op2);
23961 }
23962 #[inline]
23979 pub fn vpminuw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
23980 where
23981 Assembler<'a>: VpminuwEmitter<A, B, C>,
23982 {
23983 <Self as VpminuwEmitter<A, B, C>>::vpminuw(self, op0, op1, op2);
23984 }
23985 #[inline]
24002 pub fn vpminuw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24003 where
24004 Assembler<'a>: VpminuwMaskEmitter<A, B, C>,
24005 {
24006 <Self as VpminuwMaskEmitter<A, B, C>>::vpminuw_mask(self, op0, op1, op2);
24007 }
24008 #[inline]
24025 pub fn vpminuw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24026 where
24027 Assembler<'a>: VpminuwMaskzEmitter<A, B, C>,
24028 {
24029 <Self as VpminuwMaskzEmitter<A, B, C>>::vpminuw_maskz(self, op0, op1, op2);
24030 }
24031 #[inline]
24045 pub fn vpmovb2m<A, B>(&mut self, op0: A, op1: B)
24046 where
24047 Assembler<'a>: Vpmovb2mEmitter<A, B>,
24048 {
24049 <Self as Vpmovb2mEmitter<A, B>>::vpmovb2m(self, op0, op1);
24050 }
24051 #[inline]
24065 pub fn vpmovm2b<A, B>(&mut self, op0: A, op1: B)
24066 where
24067 Assembler<'a>: Vpmovm2bEmitter<A, B>,
24068 {
24069 <Self as Vpmovm2bEmitter<A, B>>::vpmovm2b(self, op0, op1);
24070 }
24071 #[inline]
24085 pub fn vpmovm2w<A, B>(&mut self, op0: A, op1: B)
24086 where
24087 Assembler<'a>: Vpmovm2wEmitter<A, B>,
24088 {
24089 <Self as Vpmovm2wEmitter<A, B>>::vpmovm2w(self, op0, op1);
24090 }
24091 #[inline]
24108 pub fn vpmovswb<A, B>(&mut self, op0: A, op1: B)
24109 where
24110 Assembler<'a>: VpmovswbEmitter<A, B>,
24111 {
24112 <Self as VpmovswbEmitter<A, B>>::vpmovswb(self, op0, op1);
24113 }
24114 #[inline]
24131 pub fn vpmovswb_mask<A, B>(&mut self, op0: A, op1: B)
24132 where
24133 Assembler<'a>: VpmovswbMaskEmitter<A, B>,
24134 {
24135 <Self as VpmovswbMaskEmitter<A, B>>::vpmovswb_mask(self, op0, op1);
24136 }
24137 #[inline]
24151 pub fn vpmovswb_maskz<A, B>(&mut self, op0: A, op1: B)
24152 where
24153 Assembler<'a>: VpmovswbMaskzEmitter<A, B>,
24154 {
24155 <Self as VpmovswbMaskzEmitter<A, B>>::vpmovswb_maskz(self, op0, op1);
24156 }
24157 #[inline]
24174 pub fn vpmovuswb<A, B>(&mut self, op0: A, op1: B)
24175 where
24176 Assembler<'a>: VpmovuswbEmitter<A, B>,
24177 {
24178 <Self as VpmovuswbEmitter<A, B>>::vpmovuswb(self, op0, op1);
24179 }
24180 #[inline]
24197 pub fn vpmovuswb_mask<A, B>(&mut self, op0: A, op1: B)
24198 where
24199 Assembler<'a>: VpmovuswbMaskEmitter<A, B>,
24200 {
24201 <Self as VpmovuswbMaskEmitter<A, B>>::vpmovuswb_mask(self, op0, op1);
24202 }
24203 #[inline]
24217 pub fn vpmovuswb_maskz<A, B>(&mut self, op0: A, op1: B)
24218 where
24219 Assembler<'a>: VpmovuswbMaskzEmitter<A, B>,
24220 {
24221 <Self as VpmovuswbMaskzEmitter<A, B>>::vpmovuswb_maskz(self, op0, op1);
24222 }
24223 #[inline]
24237 pub fn vpmovw2m<A, B>(&mut self, op0: A, op1: B)
24238 where
24239 Assembler<'a>: Vpmovw2mEmitter<A, B>,
24240 {
24241 <Self as Vpmovw2mEmitter<A, B>>::vpmovw2m(self, op0, op1);
24242 }
24243 #[inline]
24260 pub fn vpmovwb<A, B>(&mut self, op0: A, op1: B)
24261 where
24262 Assembler<'a>: VpmovwbEmitter<A, B>,
24263 {
24264 <Self as VpmovwbEmitter<A, B>>::vpmovwb(self, op0, op1);
24265 }
24266 #[inline]
24283 pub fn vpmovwb_mask<A, B>(&mut self, op0: A, op1: B)
24284 where
24285 Assembler<'a>: VpmovwbMaskEmitter<A, B>,
24286 {
24287 <Self as VpmovwbMaskEmitter<A, B>>::vpmovwb_mask(self, op0, op1);
24288 }
24289 #[inline]
24303 pub fn vpmovwb_maskz<A, B>(&mut self, op0: A, op1: B)
24304 where
24305 Assembler<'a>: VpmovwbMaskzEmitter<A, B>,
24306 {
24307 <Self as VpmovwbMaskzEmitter<A, B>>::vpmovwb_maskz(self, op0, op1);
24308 }
24309 #[inline]
24326 pub fn vpmulhrsw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24327 where
24328 Assembler<'a>: VpmulhrswEmitter<A, B, C>,
24329 {
24330 <Self as VpmulhrswEmitter<A, B, C>>::vpmulhrsw(self, op0, op1, op2);
24331 }
24332 #[inline]
24349 pub fn vpmulhrsw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24350 where
24351 Assembler<'a>: VpmulhrswMaskEmitter<A, B, C>,
24352 {
24353 <Self as VpmulhrswMaskEmitter<A, B, C>>::vpmulhrsw_mask(self, op0, op1, op2);
24354 }
24355 #[inline]
24372 pub fn vpmulhrsw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24373 where
24374 Assembler<'a>: VpmulhrswMaskzEmitter<A, B, C>,
24375 {
24376 <Self as VpmulhrswMaskzEmitter<A, B, C>>::vpmulhrsw_maskz(self, op0, op1, op2);
24377 }
24378 #[inline]
24395 pub fn vpmulhuw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24396 where
24397 Assembler<'a>: VpmulhuwEmitter<A, B, C>,
24398 {
24399 <Self as VpmulhuwEmitter<A, B, C>>::vpmulhuw(self, op0, op1, op2);
24400 }
24401 #[inline]
24418 pub fn vpmulhuw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24419 where
24420 Assembler<'a>: VpmulhuwMaskEmitter<A, B, C>,
24421 {
24422 <Self as VpmulhuwMaskEmitter<A, B, C>>::vpmulhuw_mask(self, op0, op1, op2);
24423 }
24424 #[inline]
24441 pub fn vpmulhuw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24442 where
24443 Assembler<'a>: VpmulhuwMaskzEmitter<A, B, C>,
24444 {
24445 <Self as VpmulhuwMaskzEmitter<A, B, C>>::vpmulhuw_maskz(self, op0, op1, op2);
24446 }
24447 #[inline]
24464 pub fn vpmulhw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24465 where
24466 Assembler<'a>: VpmulhwEmitter<A, B, C>,
24467 {
24468 <Self as VpmulhwEmitter<A, B, C>>::vpmulhw(self, op0, op1, op2);
24469 }
24470 #[inline]
24487 pub fn vpmulhw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24488 where
24489 Assembler<'a>: VpmulhwMaskEmitter<A, B, C>,
24490 {
24491 <Self as VpmulhwMaskEmitter<A, B, C>>::vpmulhw_mask(self, op0, op1, op2);
24492 }
24493 #[inline]
24510 pub fn vpmulhw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24511 where
24512 Assembler<'a>: VpmulhwMaskzEmitter<A, B, C>,
24513 {
24514 <Self as VpmulhwMaskzEmitter<A, B, C>>::vpmulhw_maskz(self, op0, op1, op2);
24515 }
24516 #[inline]
24533 pub fn vpmullw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24534 where
24535 Assembler<'a>: VpmullwEmitter<A, B, C>,
24536 {
24537 <Self as VpmullwEmitter<A, B, C>>::vpmullw(self, op0, op1, op2);
24538 }
24539 #[inline]
24556 pub fn vpmullw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24557 where
24558 Assembler<'a>: VpmullwMaskEmitter<A, B, C>,
24559 {
24560 <Self as VpmullwMaskEmitter<A, B, C>>::vpmullw_mask(self, op0, op1, op2);
24561 }
24562 #[inline]
24579 pub fn vpmullw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24580 where
24581 Assembler<'a>: VpmullwMaskzEmitter<A, B, C>,
24582 {
24583 <Self as VpmullwMaskzEmitter<A, B, C>>::vpmullw_maskz(self, op0, op1, op2);
24584 }
24585 #[inline]
24602 pub fn vpsadbw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24603 where
24604 Assembler<'a>: VpsadbwEmitter<A, B, C>,
24605 {
24606 <Self as VpsadbwEmitter<A, B, C>>::vpsadbw(self, op0, op1, op2);
24607 }
24608 #[inline]
24625 pub fn vpshufb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24626 where
24627 Assembler<'a>: VpshufbEmitter<A, B, C>,
24628 {
24629 <Self as VpshufbEmitter<A, B, C>>::vpshufb(self, op0, op1, op2);
24630 }
24631 #[inline]
24648 pub fn vpshufb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24649 where
24650 Assembler<'a>: VpshufbMaskEmitter<A, B, C>,
24651 {
24652 <Self as VpshufbMaskEmitter<A, B, C>>::vpshufb_mask(self, op0, op1, op2);
24653 }
24654 #[inline]
24671 pub fn vpshufb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24672 where
24673 Assembler<'a>: VpshufbMaskzEmitter<A, B, C>,
24674 {
24675 <Self as VpshufbMaskzEmitter<A, B, C>>::vpshufb_maskz(self, op0, op1, op2);
24676 }
24677 #[inline]
24694 pub fn vpshufhw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24695 where
24696 Assembler<'a>: VpshufhwEmitter<A, B, C>,
24697 {
24698 <Self as VpshufhwEmitter<A, B, C>>::vpshufhw(self, op0, op1, op2);
24699 }
24700 #[inline]
24717 pub fn vpshufhw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24718 where
24719 Assembler<'a>: VpshufhwMaskEmitter<A, B, C>,
24720 {
24721 <Self as VpshufhwMaskEmitter<A, B, C>>::vpshufhw_mask(self, op0, op1, op2);
24722 }
24723 #[inline]
24740 pub fn vpshufhw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24741 where
24742 Assembler<'a>: VpshufhwMaskzEmitter<A, B, C>,
24743 {
24744 <Self as VpshufhwMaskzEmitter<A, B, C>>::vpshufhw_maskz(self, op0, op1, op2);
24745 }
24746 #[inline]
24763 pub fn vpshuflw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24764 where
24765 Assembler<'a>: VpshuflwEmitter<A, B, C>,
24766 {
24767 <Self as VpshuflwEmitter<A, B, C>>::vpshuflw(self, op0, op1, op2);
24768 }
24769 #[inline]
24786 pub fn vpshuflw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24787 where
24788 Assembler<'a>: VpshuflwMaskEmitter<A, B, C>,
24789 {
24790 <Self as VpshuflwMaskEmitter<A, B, C>>::vpshuflw_mask(self, op0, op1, op2);
24791 }
24792 #[inline]
24809 pub fn vpshuflw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24810 where
24811 Assembler<'a>: VpshuflwMaskzEmitter<A, B, C>,
24812 {
24813 <Self as VpshuflwMaskzEmitter<A, B, C>>::vpshuflw_maskz(self, op0, op1, op2);
24814 }
24815 #[inline]
24832 pub fn vpslldq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24833 where
24834 Assembler<'a>: VpslldqEmitter<A, B, C>,
24835 {
24836 <Self as VpslldqEmitter<A, B, C>>::vpslldq(self, op0, op1, op2);
24837 }
24838 #[inline]
24855 pub fn vpsllvw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24856 where
24857 Assembler<'a>: VpsllvwEmitter<A, B, C>,
24858 {
24859 <Self as VpsllvwEmitter<A, B, C>>::vpsllvw(self, op0, op1, op2);
24860 }
24861 #[inline]
24878 pub fn vpsllvw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24879 where
24880 Assembler<'a>: VpsllvwMaskEmitter<A, B, C>,
24881 {
24882 <Self as VpsllvwMaskEmitter<A, B, C>>::vpsllvw_mask(self, op0, op1, op2);
24883 }
24884 #[inline]
24901 pub fn vpsllvw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24902 where
24903 Assembler<'a>: VpsllvwMaskzEmitter<A, B, C>,
24904 {
24905 <Self as VpsllvwMaskzEmitter<A, B, C>>::vpsllvw_maskz(self, op0, op1, op2);
24906 }
24907 #[inline]
24930 pub fn vpsllw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24931 where
24932 Assembler<'a>: VpsllwEmitter<A, B, C>,
24933 {
24934 <Self as VpsllwEmitter<A, B, C>>::vpsllw(self, op0, op1, op2);
24935 }
24936 #[inline]
24959 pub fn vpsllw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24960 where
24961 Assembler<'a>: VpsllwMaskEmitter<A, B, C>,
24962 {
24963 <Self as VpsllwMaskEmitter<A, B, C>>::vpsllw_mask(self, op0, op1, op2);
24964 }
24965 #[inline]
24988 pub fn vpsllw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
24989 where
24990 Assembler<'a>: VpsllwMaskzEmitter<A, B, C>,
24991 {
24992 <Self as VpsllwMaskzEmitter<A, B, C>>::vpsllw_maskz(self, op0, op1, op2);
24993 }
24994 #[inline]
25011 pub fn vpsravw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25012 where
25013 Assembler<'a>: VpsravwEmitter<A, B, C>,
25014 {
25015 <Self as VpsravwEmitter<A, B, C>>::vpsravw(self, op0, op1, op2);
25016 }
25017 #[inline]
25034 pub fn vpsravw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25035 where
25036 Assembler<'a>: VpsravwMaskEmitter<A, B, C>,
25037 {
25038 <Self as VpsravwMaskEmitter<A, B, C>>::vpsravw_mask(self, op0, op1, op2);
25039 }
25040 #[inline]
25057 pub fn vpsravw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25058 where
25059 Assembler<'a>: VpsravwMaskzEmitter<A, B, C>,
25060 {
25061 <Self as VpsravwMaskzEmitter<A, B, C>>::vpsravw_maskz(self, op0, op1, op2);
25062 }
25063 #[inline]
25086 pub fn vpsraw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25087 where
25088 Assembler<'a>: VpsrawEmitter<A, B, C>,
25089 {
25090 <Self as VpsrawEmitter<A, B, C>>::vpsraw(self, op0, op1, op2);
25091 }
25092 #[inline]
25115 pub fn vpsraw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25116 where
25117 Assembler<'a>: VpsrawMaskEmitter<A, B, C>,
25118 {
25119 <Self as VpsrawMaskEmitter<A, B, C>>::vpsraw_mask(self, op0, op1, op2);
25120 }
25121 #[inline]
25144 pub fn vpsraw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25145 where
25146 Assembler<'a>: VpsrawMaskzEmitter<A, B, C>,
25147 {
25148 <Self as VpsrawMaskzEmitter<A, B, C>>::vpsraw_maskz(self, op0, op1, op2);
25149 }
25150 #[inline]
25167 pub fn vpsrldq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25168 where
25169 Assembler<'a>: VpsrldqEmitter<A, B, C>,
25170 {
25171 <Self as VpsrldqEmitter<A, B, C>>::vpsrldq(self, op0, op1, op2);
25172 }
25173 #[inline]
25190 pub fn vpsrlvw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25191 where
25192 Assembler<'a>: VpsrlvwEmitter<A, B, C>,
25193 {
25194 <Self as VpsrlvwEmitter<A, B, C>>::vpsrlvw(self, op0, op1, op2);
25195 }
25196 #[inline]
25213 pub fn vpsrlvw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25214 where
25215 Assembler<'a>: VpsrlvwMaskEmitter<A, B, C>,
25216 {
25217 <Self as VpsrlvwMaskEmitter<A, B, C>>::vpsrlvw_mask(self, op0, op1, op2);
25218 }
25219 #[inline]
25236 pub fn vpsrlvw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25237 where
25238 Assembler<'a>: VpsrlvwMaskzEmitter<A, B, C>,
25239 {
25240 <Self as VpsrlvwMaskzEmitter<A, B, C>>::vpsrlvw_maskz(self, op0, op1, op2);
25241 }
25242 #[inline]
25265 pub fn vpsrlw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25266 where
25267 Assembler<'a>: VpsrlwEmitter<A, B, C>,
25268 {
25269 <Self as VpsrlwEmitter<A, B, C>>::vpsrlw(self, op0, op1, op2);
25270 }
25271 #[inline]
25294 pub fn vpsrlw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25295 where
25296 Assembler<'a>: VpsrlwMaskEmitter<A, B, C>,
25297 {
25298 <Self as VpsrlwMaskEmitter<A, B, C>>::vpsrlw_mask(self, op0, op1, op2);
25299 }
25300 #[inline]
25323 pub fn vpsrlw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25324 where
25325 Assembler<'a>: VpsrlwMaskzEmitter<A, B, C>,
25326 {
25327 <Self as VpsrlwMaskzEmitter<A, B, C>>::vpsrlw_maskz(self, op0, op1, op2);
25328 }
25329 #[inline]
25346 pub fn vpsubb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25347 where
25348 Assembler<'a>: VpsubbEmitter<A, B, C>,
25349 {
25350 <Self as VpsubbEmitter<A, B, C>>::vpsubb(self, op0, op1, op2);
25351 }
25352 #[inline]
25369 pub fn vpsubb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25370 where
25371 Assembler<'a>: VpsubbMaskEmitter<A, B, C>,
25372 {
25373 <Self as VpsubbMaskEmitter<A, B, C>>::vpsubb_mask(self, op0, op1, op2);
25374 }
25375 #[inline]
25392 pub fn vpsubb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25393 where
25394 Assembler<'a>: VpsubbMaskzEmitter<A, B, C>,
25395 {
25396 <Self as VpsubbMaskzEmitter<A, B, C>>::vpsubb_maskz(self, op0, op1, op2);
25397 }
25398 #[inline]
25415 pub fn vpsubsb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25416 where
25417 Assembler<'a>: VpsubsbEmitter<A, B, C>,
25418 {
25419 <Self as VpsubsbEmitter<A, B, C>>::vpsubsb(self, op0, op1, op2);
25420 }
25421 #[inline]
25438 pub fn vpsubsb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25439 where
25440 Assembler<'a>: VpsubsbMaskEmitter<A, B, C>,
25441 {
25442 <Self as VpsubsbMaskEmitter<A, B, C>>::vpsubsb_mask(self, op0, op1, op2);
25443 }
25444 #[inline]
25461 pub fn vpsubsb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25462 where
25463 Assembler<'a>: VpsubsbMaskzEmitter<A, B, C>,
25464 {
25465 <Self as VpsubsbMaskzEmitter<A, B, C>>::vpsubsb_maskz(self, op0, op1, op2);
25466 }
25467 #[inline]
25484 pub fn vpsubsw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25485 where
25486 Assembler<'a>: VpsubswEmitter<A, B, C>,
25487 {
25488 <Self as VpsubswEmitter<A, B, C>>::vpsubsw(self, op0, op1, op2);
25489 }
25490 #[inline]
25507 pub fn vpsubsw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25508 where
25509 Assembler<'a>: VpsubswMaskEmitter<A, B, C>,
25510 {
25511 <Self as VpsubswMaskEmitter<A, B, C>>::vpsubsw_mask(self, op0, op1, op2);
25512 }
25513 #[inline]
25530 pub fn vpsubsw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25531 where
25532 Assembler<'a>: VpsubswMaskzEmitter<A, B, C>,
25533 {
25534 <Self as VpsubswMaskzEmitter<A, B, C>>::vpsubsw_maskz(self, op0, op1, op2);
25535 }
25536 #[inline]
25553 pub fn vpsubusb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25554 where
25555 Assembler<'a>: VpsubusbEmitter<A, B, C>,
25556 {
25557 <Self as VpsubusbEmitter<A, B, C>>::vpsubusb(self, op0, op1, op2);
25558 }
25559 #[inline]
25576 pub fn vpsubusb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25577 where
25578 Assembler<'a>: VpsubusbMaskEmitter<A, B, C>,
25579 {
25580 <Self as VpsubusbMaskEmitter<A, B, C>>::vpsubusb_mask(self, op0, op1, op2);
25581 }
25582 #[inline]
25599 pub fn vpsubusb_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25600 where
25601 Assembler<'a>: VpsubusbMaskzEmitter<A, B, C>,
25602 {
25603 <Self as VpsubusbMaskzEmitter<A, B, C>>::vpsubusb_maskz(self, op0, op1, op2);
25604 }
25605 #[inline]
25622 pub fn vpsubusw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25623 where
25624 Assembler<'a>: VpsubuswEmitter<A, B, C>,
25625 {
25626 <Self as VpsubuswEmitter<A, B, C>>::vpsubusw(self, op0, op1, op2);
25627 }
25628 #[inline]
25645 pub fn vpsubusw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25646 where
25647 Assembler<'a>: VpsubuswMaskEmitter<A, B, C>,
25648 {
25649 <Self as VpsubuswMaskEmitter<A, B, C>>::vpsubusw_mask(self, op0, op1, op2);
25650 }
25651 #[inline]
25668 pub fn vpsubusw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25669 where
25670 Assembler<'a>: VpsubuswMaskzEmitter<A, B, C>,
25671 {
25672 <Self as VpsubuswMaskzEmitter<A, B, C>>::vpsubusw_maskz(self, op0, op1, op2);
25673 }
25674 #[inline]
25691 pub fn vpsubw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25692 where
25693 Assembler<'a>: VpsubwEmitter<A, B, C>,
25694 {
25695 <Self as VpsubwEmitter<A, B, C>>::vpsubw(self, op0, op1, op2);
25696 }
25697 #[inline]
25714 pub fn vpsubw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25715 where
25716 Assembler<'a>: VpsubwMaskEmitter<A, B, C>,
25717 {
25718 <Self as VpsubwMaskEmitter<A, B, C>>::vpsubw_mask(self, op0, op1, op2);
25719 }
25720 #[inline]
25737 pub fn vpsubw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25738 where
25739 Assembler<'a>: VpsubwMaskzEmitter<A, B, C>,
25740 {
25741 <Self as VpsubwMaskzEmitter<A, B, C>>::vpsubw_maskz(self, op0, op1, op2);
25742 }
25743 #[inline]
25760 pub fn vptestmb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25761 where
25762 Assembler<'a>: VptestmbEmitter<A, B, C>,
25763 {
25764 <Self as VptestmbEmitter<A, B, C>>::vptestmb(self, op0, op1, op2);
25765 }
25766 #[inline]
25783 pub fn vptestmb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25784 where
25785 Assembler<'a>: VptestmbMaskEmitter<A, B, C>,
25786 {
25787 <Self as VptestmbMaskEmitter<A, B, C>>::vptestmb_mask(self, op0, op1, op2);
25788 }
25789 #[inline]
25806 pub fn vptestmw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25807 where
25808 Assembler<'a>: VptestmwEmitter<A, B, C>,
25809 {
25810 <Self as VptestmwEmitter<A, B, C>>::vptestmw(self, op0, op1, op2);
25811 }
25812 #[inline]
25829 pub fn vptestmw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25830 where
25831 Assembler<'a>: VptestmwMaskEmitter<A, B, C>,
25832 {
25833 <Self as VptestmwMaskEmitter<A, B, C>>::vptestmw_mask(self, op0, op1, op2);
25834 }
25835 #[inline]
25852 pub fn vptestnmb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25853 where
25854 Assembler<'a>: VptestnmbEmitter<A, B, C>,
25855 {
25856 <Self as VptestnmbEmitter<A, B, C>>::vptestnmb(self, op0, op1, op2);
25857 }
25858 #[inline]
25875 pub fn vptestnmb_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25876 where
25877 Assembler<'a>: VptestnmbMaskEmitter<A, B, C>,
25878 {
25879 <Self as VptestnmbMaskEmitter<A, B, C>>::vptestnmb_mask(self, op0, op1, op2);
25880 }
25881 #[inline]
25898 pub fn vptestnmw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25899 where
25900 Assembler<'a>: VptestnmwEmitter<A, B, C>,
25901 {
25902 <Self as VptestnmwEmitter<A, B, C>>::vptestnmw(self, op0, op1, op2);
25903 }
25904 #[inline]
25921 pub fn vptestnmw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25922 where
25923 Assembler<'a>: VptestnmwMaskEmitter<A, B, C>,
25924 {
25925 <Self as VptestnmwMaskEmitter<A, B, C>>::vptestnmw_mask(self, op0, op1, op2);
25926 }
25927 #[inline]
25944 pub fn vpunpckhbw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25945 where
25946 Assembler<'a>: VpunpckhbwEmitter<A, B, C>,
25947 {
25948 <Self as VpunpckhbwEmitter<A, B, C>>::vpunpckhbw(self, op0, op1, op2);
25949 }
25950 #[inline]
25967 pub fn vpunpckhbw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25968 where
25969 Assembler<'a>: VpunpckhbwMaskEmitter<A, B, C>,
25970 {
25971 <Self as VpunpckhbwMaskEmitter<A, B, C>>::vpunpckhbw_mask(self, op0, op1, op2);
25972 }
25973 #[inline]
25990 pub fn vpunpckhbw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
25991 where
25992 Assembler<'a>: VpunpckhbwMaskzEmitter<A, B, C>,
25993 {
25994 <Self as VpunpckhbwMaskzEmitter<A, B, C>>::vpunpckhbw_maskz(self, op0, op1, op2);
25995 }
25996 #[inline]
26013 pub fn vpunpckhwd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26014 where
26015 Assembler<'a>: VpunpckhwdEmitter<A, B, C>,
26016 {
26017 <Self as VpunpckhwdEmitter<A, B, C>>::vpunpckhwd(self, op0, op1, op2);
26018 }
26019 #[inline]
26036 pub fn vpunpckhwd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26037 where
26038 Assembler<'a>: VpunpckhwdMaskEmitter<A, B, C>,
26039 {
26040 <Self as VpunpckhwdMaskEmitter<A, B, C>>::vpunpckhwd_mask(self, op0, op1, op2);
26041 }
26042 #[inline]
26059 pub fn vpunpckhwd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26060 where
26061 Assembler<'a>: VpunpckhwdMaskzEmitter<A, B, C>,
26062 {
26063 <Self as VpunpckhwdMaskzEmitter<A, B, C>>::vpunpckhwd_maskz(self, op0, op1, op2);
26064 }
26065 #[inline]
26082 pub fn vpunpcklbw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26083 where
26084 Assembler<'a>: VpunpcklbwEmitter<A, B, C>,
26085 {
26086 <Self as VpunpcklbwEmitter<A, B, C>>::vpunpcklbw(self, op0, op1, op2);
26087 }
26088 #[inline]
26105 pub fn vpunpcklbw_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26106 where
26107 Assembler<'a>: VpunpcklbwMaskEmitter<A, B, C>,
26108 {
26109 <Self as VpunpcklbwMaskEmitter<A, B, C>>::vpunpcklbw_mask(self, op0, op1, op2);
26110 }
26111 #[inline]
26128 pub fn vpunpcklbw_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26129 where
26130 Assembler<'a>: VpunpcklbwMaskzEmitter<A, B, C>,
26131 {
26132 <Self as VpunpcklbwMaskzEmitter<A, B, C>>::vpunpcklbw_maskz(self, op0, op1, op2);
26133 }
26134 #[inline]
26151 pub fn vpunpcklwd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26152 where
26153 Assembler<'a>: VpunpcklwdEmitter<A, B, C>,
26154 {
26155 <Self as VpunpcklwdEmitter<A, B, C>>::vpunpcklwd(self, op0, op1, op2);
26156 }
26157 #[inline]
26174 pub fn vpunpcklwd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26175 where
26176 Assembler<'a>: VpunpcklwdMaskEmitter<A, B, C>,
26177 {
26178 <Self as VpunpcklwdMaskEmitter<A, B, C>>::vpunpcklwd_mask(self, op0, op1, op2);
26179 }
26180 #[inline]
26197 pub fn vpunpcklwd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
26198 where
26199 Assembler<'a>: VpunpcklwdMaskzEmitter<A, B, C>,
26200 {
26201 <Self as VpunpcklwdMaskzEmitter<A, B, C>>::vpunpcklwd_maskz(self, op0, op1, op2);
26202 }
26203}