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 KaddbEmitter<A, B, C> {
22 fn kaddb(&mut self, op0: A, op1: B, op2: C);
23}
24
25impl<'a> KaddbEmitter<KReg, KReg, KReg> for Assembler<'a> {
26 fn kaddb(&mut self, op0: KReg, op1: KReg, op2: KReg) {
27 self.emit(
28 KADDBKKK,
29 op0.as_operand(),
30 op1.as_operand(),
31 op2.as_operand(),
32 &NOREG,
33 );
34 }
35}
36
37pub trait KaddwEmitter<A, B, C> {
49 fn kaddw(&mut self, op0: A, op1: B, op2: C);
50}
51
52impl<'a> KaddwEmitter<KReg, KReg, KReg> for Assembler<'a> {
53 fn kaddw(&mut self, op0: KReg, op1: KReg, op2: KReg) {
54 self.emit(
55 KADDWKKK,
56 op0.as_operand(),
57 op1.as_operand(),
58 op2.as_operand(),
59 &NOREG,
60 );
61 }
62}
63
64pub trait KandbEmitter<A, B, C> {
76 fn kandb(&mut self, op0: A, op1: B, op2: C);
77}
78
79impl<'a> KandbEmitter<KReg, KReg, KReg> for Assembler<'a> {
80 fn kandb(&mut self, op0: KReg, op1: KReg, op2: KReg) {
81 self.emit(
82 KANDBKKK,
83 op0.as_operand(),
84 op1.as_operand(),
85 op2.as_operand(),
86 &NOREG,
87 );
88 }
89}
90
91pub trait KandnbEmitter<A, B, C> {
103 fn kandnb(&mut self, op0: A, op1: B, op2: C);
104}
105
106impl<'a> KandnbEmitter<KReg, KReg, KReg> for Assembler<'a> {
107 fn kandnb(&mut self, op0: KReg, op1: KReg, op2: KReg) {
108 self.emit(
109 KANDNBKKK,
110 op0.as_operand(),
111 op1.as_operand(),
112 op2.as_operand(),
113 &NOREG,
114 );
115 }
116}
117
118pub trait KmovbEmitter<A, B> {
134 fn kmovb(&mut self, op0: A, op1: B);
135}
136
137impl<'a> KmovbEmitter<KReg, KReg> for Assembler<'a> {
138 fn kmovb(&mut self, op0: KReg, op1: KReg) {
139 self.emit(KMOVBKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
140 }
141}
142
143impl<'a> KmovbEmitter<KReg, Mem> for Assembler<'a> {
144 fn kmovb(&mut self, op0: KReg, op1: Mem) {
145 self.emit(KMOVBKM, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
146 }
147}
148
149impl<'a> KmovbEmitter<Mem, KReg> for Assembler<'a> {
150 fn kmovb(&mut self, op0: Mem, op1: KReg) {
151 self.emit(KMOVBMK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
152 }
153}
154
155impl<'a> KmovbEmitter<KReg, Gpd> for Assembler<'a> {
156 fn kmovb(&mut self, op0: KReg, op1: Gpd) {
157 self.emit(KMOVBKR, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
158 }
159}
160
161impl<'a> KmovbEmitter<Gpd, KReg> for Assembler<'a> {
162 fn kmovb(&mut self, op0: Gpd, op1: KReg) {
163 self.emit(KMOVBRK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
164 }
165}
166
167pub trait KnotbEmitter<A, B> {
179 fn knotb(&mut self, op0: A, op1: B);
180}
181
182impl<'a> KnotbEmitter<KReg, KReg> for Assembler<'a> {
183 fn knotb(&mut self, op0: KReg, op1: KReg) {
184 self.emit(KNOTBKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
185 }
186}
187
188pub trait KorbEmitter<A, B, C> {
200 fn korb(&mut self, op0: A, op1: B, op2: C);
201}
202
203impl<'a> KorbEmitter<KReg, KReg, KReg> for Assembler<'a> {
204 fn korb(&mut self, op0: KReg, op1: KReg, op2: KReg) {
205 self.emit(
206 KORBKKK,
207 op0.as_operand(),
208 op1.as_operand(),
209 op2.as_operand(),
210 &NOREG,
211 );
212 }
213}
214
215pub trait KortestbEmitter<A, B> {
227 fn kortestb(&mut self, op0: A, op1: B);
228}
229
230impl<'a> KortestbEmitter<KReg, KReg> for Assembler<'a> {
231 fn kortestb(&mut self, op0: KReg, op1: KReg) {
232 self.emit(
233 KORTESTBKK,
234 op0.as_operand(),
235 op1.as_operand(),
236 &NOREG,
237 &NOREG,
238 );
239 }
240}
241
242pub trait KshiftlbEmitter<A, B, C> {
254 fn kshiftlb(&mut self, op0: A, op1: B, op2: C);
255}
256
257impl<'a> KshiftlbEmitter<KReg, KReg, Imm> for Assembler<'a> {
258 fn kshiftlb(&mut self, op0: KReg, op1: KReg, op2: Imm) {
259 self.emit(
260 KSHIFTLBKKI,
261 op0.as_operand(),
262 op1.as_operand(),
263 op2.as_operand(),
264 &NOREG,
265 );
266 }
267}
268
269pub trait KshiftrbEmitter<A, B, C> {
281 fn kshiftrb(&mut self, op0: A, op1: B, op2: C);
282}
283
284impl<'a> KshiftrbEmitter<KReg, KReg, Imm> for Assembler<'a> {
285 fn kshiftrb(&mut self, op0: KReg, op1: KReg, op2: Imm) {
286 self.emit(
287 KSHIFTRBKKI,
288 op0.as_operand(),
289 op1.as_operand(),
290 op2.as_operand(),
291 &NOREG,
292 );
293 }
294}
295
296pub trait KtestbEmitter<A, B> {
308 fn ktestb(&mut self, op0: A, op1: B);
309}
310
311impl<'a> KtestbEmitter<KReg, KReg> for Assembler<'a> {
312 fn ktestb(&mut self, op0: KReg, op1: KReg) {
313 self.emit(KTESTBKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
314 }
315}
316
317pub trait KtestwEmitter<A, B> {
329 fn ktestw(&mut self, op0: A, op1: B);
330}
331
332impl<'a> KtestwEmitter<KReg, KReg> for Assembler<'a> {
333 fn ktestw(&mut self, op0: KReg, op1: KReg) {
334 self.emit(KTESTWKK, op0.as_operand(), op1.as_operand(), &NOREG, &NOREG);
335 }
336}
337
338pub trait KxnorbEmitter<A, B, C> {
350 fn kxnorb(&mut self, op0: A, op1: B, op2: C);
351}
352
353impl<'a> KxnorbEmitter<KReg, KReg, KReg> for Assembler<'a> {
354 fn kxnorb(&mut self, op0: KReg, op1: KReg, op2: KReg) {
355 self.emit(
356 KXNORBKKK,
357 op0.as_operand(),
358 op1.as_operand(),
359 op2.as_operand(),
360 &NOREG,
361 );
362 }
363}
364
365pub trait KxorbEmitter<A, B, C> {
377 fn kxorb(&mut self, op0: A, op1: B, op2: C);
378}
379
380impl<'a> KxorbEmitter<KReg, KReg, KReg> for Assembler<'a> {
381 fn kxorb(&mut self, op0: KReg, op1: KReg, op2: KReg) {
382 self.emit(
383 KXORBKKK,
384 op0.as_operand(),
385 op1.as_operand(),
386 op2.as_operand(),
387 &NOREG,
388 );
389 }
390}
391
392pub trait VandnpdEmitter<A, B, C> {
409 fn vandnpd(&mut self, op0: A, op1: B, op2: C);
410}
411
412impl<'a> VandnpdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
413 fn vandnpd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
414 self.emit(
415 VANDNPD128RRR,
416 op0.as_operand(),
417 op1.as_operand(),
418 op2.as_operand(),
419 &NOREG,
420 );
421 }
422}
423
424impl<'a> VandnpdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
425 fn vandnpd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
426 self.emit(
427 VANDNPD128RRM,
428 op0.as_operand(),
429 op1.as_operand(),
430 op2.as_operand(),
431 &NOREG,
432 );
433 }
434}
435
436impl<'a> VandnpdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
437 fn vandnpd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
438 self.emit(
439 VANDNPD256RRR,
440 op0.as_operand(),
441 op1.as_operand(),
442 op2.as_operand(),
443 &NOREG,
444 );
445 }
446}
447
448impl<'a> VandnpdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
449 fn vandnpd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
450 self.emit(
451 VANDNPD256RRM,
452 op0.as_operand(),
453 op1.as_operand(),
454 op2.as_operand(),
455 &NOREG,
456 );
457 }
458}
459
460impl<'a> VandnpdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
461 fn vandnpd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
462 self.emit(
463 VANDNPD512RRR,
464 op0.as_operand(),
465 op1.as_operand(),
466 op2.as_operand(),
467 &NOREG,
468 );
469 }
470}
471
472impl<'a> VandnpdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
473 fn vandnpd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
474 self.emit(
475 VANDNPD512RRM,
476 op0.as_operand(),
477 op1.as_operand(),
478 op2.as_operand(),
479 &NOREG,
480 );
481 }
482}
483
484pub trait VandnpdMaskEmitter<A, B, C> {
501 fn vandnpd_mask(&mut self, op0: A, op1: B, op2: C);
502}
503
504impl<'a> VandnpdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
505 fn vandnpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
506 self.emit(
507 VANDNPD128RRR_MASK,
508 op0.as_operand(),
509 op1.as_operand(),
510 op2.as_operand(),
511 &NOREG,
512 );
513 }
514}
515
516impl<'a> VandnpdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
517 fn vandnpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
518 self.emit(
519 VANDNPD128RRM_MASK,
520 op0.as_operand(),
521 op1.as_operand(),
522 op2.as_operand(),
523 &NOREG,
524 );
525 }
526}
527
528impl<'a> VandnpdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
529 fn vandnpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
530 self.emit(
531 VANDNPD256RRR_MASK,
532 op0.as_operand(),
533 op1.as_operand(),
534 op2.as_operand(),
535 &NOREG,
536 );
537 }
538}
539
540impl<'a> VandnpdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
541 fn vandnpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
542 self.emit(
543 VANDNPD256RRM_MASK,
544 op0.as_operand(),
545 op1.as_operand(),
546 op2.as_operand(),
547 &NOREG,
548 );
549 }
550}
551
552impl<'a> VandnpdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
553 fn vandnpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
554 self.emit(
555 VANDNPD512RRR_MASK,
556 op0.as_operand(),
557 op1.as_operand(),
558 op2.as_operand(),
559 &NOREG,
560 );
561 }
562}
563
564impl<'a> VandnpdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
565 fn vandnpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
566 self.emit(
567 VANDNPD512RRM_MASK,
568 op0.as_operand(),
569 op1.as_operand(),
570 op2.as_operand(),
571 &NOREG,
572 );
573 }
574}
575
576pub trait VandnpdMaskzEmitter<A, B, C> {
593 fn vandnpd_maskz(&mut self, op0: A, op1: B, op2: C);
594}
595
596impl<'a> VandnpdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
597 fn vandnpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
598 self.emit(
599 VANDNPD128RRR_MASKZ,
600 op0.as_operand(),
601 op1.as_operand(),
602 op2.as_operand(),
603 &NOREG,
604 );
605 }
606}
607
608impl<'a> VandnpdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
609 fn vandnpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
610 self.emit(
611 VANDNPD128RRM_MASKZ,
612 op0.as_operand(),
613 op1.as_operand(),
614 op2.as_operand(),
615 &NOREG,
616 );
617 }
618}
619
620impl<'a> VandnpdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
621 fn vandnpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
622 self.emit(
623 VANDNPD256RRR_MASKZ,
624 op0.as_operand(),
625 op1.as_operand(),
626 op2.as_operand(),
627 &NOREG,
628 );
629 }
630}
631
632impl<'a> VandnpdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
633 fn vandnpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
634 self.emit(
635 VANDNPD256RRM_MASKZ,
636 op0.as_operand(),
637 op1.as_operand(),
638 op2.as_operand(),
639 &NOREG,
640 );
641 }
642}
643
644impl<'a> VandnpdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
645 fn vandnpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
646 self.emit(
647 VANDNPD512RRR_MASKZ,
648 op0.as_operand(),
649 op1.as_operand(),
650 op2.as_operand(),
651 &NOREG,
652 );
653 }
654}
655
656impl<'a> VandnpdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
657 fn vandnpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
658 self.emit(
659 VANDNPD512RRM_MASKZ,
660 op0.as_operand(),
661 op1.as_operand(),
662 op2.as_operand(),
663 &NOREG,
664 );
665 }
666}
667
668pub trait VandnpsEmitter<A, B, C> {
685 fn vandnps(&mut self, op0: A, op1: B, op2: C);
686}
687
688impl<'a> VandnpsEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
689 fn vandnps(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
690 self.emit(
691 VANDNPS128RRR,
692 op0.as_operand(),
693 op1.as_operand(),
694 op2.as_operand(),
695 &NOREG,
696 );
697 }
698}
699
700impl<'a> VandnpsEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
701 fn vandnps(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
702 self.emit(
703 VANDNPS128RRM,
704 op0.as_operand(),
705 op1.as_operand(),
706 op2.as_operand(),
707 &NOREG,
708 );
709 }
710}
711
712impl<'a> VandnpsEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
713 fn vandnps(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
714 self.emit(
715 VANDNPS256RRR,
716 op0.as_operand(),
717 op1.as_operand(),
718 op2.as_operand(),
719 &NOREG,
720 );
721 }
722}
723
724impl<'a> VandnpsEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
725 fn vandnps(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
726 self.emit(
727 VANDNPS256RRM,
728 op0.as_operand(),
729 op1.as_operand(),
730 op2.as_operand(),
731 &NOREG,
732 );
733 }
734}
735
736impl<'a> VandnpsEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
737 fn vandnps(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
738 self.emit(
739 VANDNPS512RRR,
740 op0.as_operand(),
741 op1.as_operand(),
742 op2.as_operand(),
743 &NOREG,
744 );
745 }
746}
747
748impl<'a> VandnpsEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
749 fn vandnps(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
750 self.emit(
751 VANDNPS512RRM,
752 op0.as_operand(),
753 op1.as_operand(),
754 op2.as_operand(),
755 &NOREG,
756 );
757 }
758}
759
760pub trait VandnpsMaskEmitter<A, B, C> {
777 fn vandnps_mask(&mut self, op0: A, op1: B, op2: C);
778}
779
780impl<'a> VandnpsMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
781 fn vandnps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
782 self.emit(
783 VANDNPS128RRR_MASK,
784 op0.as_operand(),
785 op1.as_operand(),
786 op2.as_operand(),
787 &NOREG,
788 );
789 }
790}
791
792impl<'a> VandnpsMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
793 fn vandnps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
794 self.emit(
795 VANDNPS128RRM_MASK,
796 op0.as_operand(),
797 op1.as_operand(),
798 op2.as_operand(),
799 &NOREG,
800 );
801 }
802}
803
804impl<'a> VandnpsMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
805 fn vandnps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
806 self.emit(
807 VANDNPS256RRR_MASK,
808 op0.as_operand(),
809 op1.as_operand(),
810 op2.as_operand(),
811 &NOREG,
812 );
813 }
814}
815
816impl<'a> VandnpsMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
817 fn vandnps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
818 self.emit(
819 VANDNPS256RRM_MASK,
820 op0.as_operand(),
821 op1.as_operand(),
822 op2.as_operand(),
823 &NOREG,
824 );
825 }
826}
827
828impl<'a> VandnpsMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
829 fn vandnps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
830 self.emit(
831 VANDNPS512RRR_MASK,
832 op0.as_operand(),
833 op1.as_operand(),
834 op2.as_operand(),
835 &NOREG,
836 );
837 }
838}
839
840impl<'a> VandnpsMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
841 fn vandnps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
842 self.emit(
843 VANDNPS512RRM_MASK,
844 op0.as_operand(),
845 op1.as_operand(),
846 op2.as_operand(),
847 &NOREG,
848 );
849 }
850}
851
852pub trait VandnpsMaskzEmitter<A, B, C> {
869 fn vandnps_maskz(&mut self, op0: A, op1: B, op2: C);
870}
871
872impl<'a> VandnpsMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
873 fn vandnps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
874 self.emit(
875 VANDNPS128RRR_MASKZ,
876 op0.as_operand(),
877 op1.as_operand(),
878 op2.as_operand(),
879 &NOREG,
880 );
881 }
882}
883
884impl<'a> VandnpsMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
885 fn vandnps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
886 self.emit(
887 VANDNPS128RRM_MASKZ,
888 op0.as_operand(),
889 op1.as_operand(),
890 op2.as_operand(),
891 &NOREG,
892 );
893 }
894}
895
896impl<'a> VandnpsMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
897 fn vandnps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
898 self.emit(
899 VANDNPS256RRR_MASKZ,
900 op0.as_operand(),
901 op1.as_operand(),
902 op2.as_operand(),
903 &NOREG,
904 );
905 }
906}
907
908impl<'a> VandnpsMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
909 fn vandnps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
910 self.emit(
911 VANDNPS256RRM_MASKZ,
912 op0.as_operand(),
913 op1.as_operand(),
914 op2.as_operand(),
915 &NOREG,
916 );
917 }
918}
919
920impl<'a> VandnpsMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
921 fn vandnps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
922 self.emit(
923 VANDNPS512RRR_MASKZ,
924 op0.as_operand(),
925 op1.as_operand(),
926 op2.as_operand(),
927 &NOREG,
928 );
929 }
930}
931
932impl<'a> VandnpsMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
933 fn vandnps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
934 self.emit(
935 VANDNPS512RRM_MASKZ,
936 op0.as_operand(),
937 op1.as_operand(),
938 op2.as_operand(),
939 &NOREG,
940 );
941 }
942}
943
944pub trait VandpdEmitter<A, B, C> {
961 fn vandpd(&mut self, op0: A, op1: B, op2: C);
962}
963
964impl<'a> VandpdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
965 fn vandpd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
966 self.emit(
967 VANDPD128RRR,
968 op0.as_operand(),
969 op1.as_operand(),
970 op2.as_operand(),
971 &NOREG,
972 );
973 }
974}
975
976impl<'a> VandpdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
977 fn vandpd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
978 self.emit(
979 VANDPD128RRM,
980 op0.as_operand(),
981 op1.as_operand(),
982 op2.as_operand(),
983 &NOREG,
984 );
985 }
986}
987
988impl<'a> VandpdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
989 fn vandpd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
990 self.emit(
991 VANDPD256RRR,
992 op0.as_operand(),
993 op1.as_operand(),
994 op2.as_operand(),
995 &NOREG,
996 );
997 }
998}
999
1000impl<'a> VandpdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1001 fn vandpd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1002 self.emit(
1003 VANDPD256RRM,
1004 op0.as_operand(),
1005 op1.as_operand(),
1006 op2.as_operand(),
1007 &NOREG,
1008 );
1009 }
1010}
1011
1012impl<'a> VandpdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1013 fn vandpd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1014 self.emit(
1015 VANDPD512RRR,
1016 op0.as_operand(),
1017 op1.as_operand(),
1018 op2.as_operand(),
1019 &NOREG,
1020 );
1021 }
1022}
1023
1024impl<'a> VandpdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1025 fn vandpd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1026 self.emit(
1027 VANDPD512RRM,
1028 op0.as_operand(),
1029 op1.as_operand(),
1030 op2.as_operand(),
1031 &NOREG,
1032 );
1033 }
1034}
1035
1036pub trait VandpdMaskEmitter<A, B, C> {
1053 fn vandpd_mask(&mut self, op0: A, op1: B, op2: C);
1054}
1055
1056impl<'a> VandpdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1057 fn vandpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1058 self.emit(
1059 VANDPD128RRR_MASK,
1060 op0.as_operand(),
1061 op1.as_operand(),
1062 op2.as_operand(),
1063 &NOREG,
1064 );
1065 }
1066}
1067
1068impl<'a> VandpdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1069 fn vandpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1070 self.emit(
1071 VANDPD128RRM_MASK,
1072 op0.as_operand(),
1073 op1.as_operand(),
1074 op2.as_operand(),
1075 &NOREG,
1076 );
1077 }
1078}
1079
1080impl<'a> VandpdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1081 fn vandpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1082 self.emit(
1083 VANDPD256RRR_MASK,
1084 op0.as_operand(),
1085 op1.as_operand(),
1086 op2.as_operand(),
1087 &NOREG,
1088 );
1089 }
1090}
1091
1092impl<'a> VandpdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1093 fn vandpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1094 self.emit(
1095 VANDPD256RRM_MASK,
1096 op0.as_operand(),
1097 op1.as_operand(),
1098 op2.as_operand(),
1099 &NOREG,
1100 );
1101 }
1102}
1103
1104impl<'a> VandpdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1105 fn vandpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1106 self.emit(
1107 VANDPD512RRR_MASK,
1108 op0.as_operand(),
1109 op1.as_operand(),
1110 op2.as_operand(),
1111 &NOREG,
1112 );
1113 }
1114}
1115
1116impl<'a> VandpdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1117 fn vandpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1118 self.emit(
1119 VANDPD512RRM_MASK,
1120 op0.as_operand(),
1121 op1.as_operand(),
1122 op2.as_operand(),
1123 &NOREG,
1124 );
1125 }
1126}
1127
1128pub trait VandpdMaskzEmitter<A, B, C> {
1145 fn vandpd_maskz(&mut self, op0: A, op1: B, op2: C);
1146}
1147
1148impl<'a> VandpdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1149 fn vandpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1150 self.emit(
1151 VANDPD128RRR_MASKZ,
1152 op0.as_operand(),
1153 op1.as_operand(),
1154 op2.as_operand(),
1155 &NOREG,
1156 );
1157 }
1158}
1159
1160impl<'a> VandpdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1161 fn vandpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1162 self.emit(
1163 VANDPD128RRM_MASKZ,
1164 op0.as_operand(),
1165 op1.as_operand(),
1166 op2.as_operand(),
1167 &NOREG,
1168 );
1169 }
1170}
1171
1172impl<'a> VandpdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1173 fn vandpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1174 self.emit(
1175 VANDPD256RRR_MASKZ,
1176 op0.as_operand(),
1177 op1.as_operand(),
1178 op2.as_operand(),
1179 &NOREG,
1180 );
1181 }
1182}
1183
1184impl<'a> VandpdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1185 fn vandpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1186 self.emit(
1187 VANDPD256RRM_MASKZ,
1188 op0.as_operand(),
1189 op1.as_operand(),
1190 op2.as_operand(),
1191 &NOREG,
1192 );
1193 }
1194}
1195
1196impl<'a> VandpdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1197 fn vandpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1198 self.emit(
1199 VANDPD512RRR_MASKZ,
1200 op0.as_operand(),
1201 op1.as_operand(),
1202 op2.as_operand(),
1203 &NOREG,
1204 );
1205 }
1206}
1207
1208impl<'a> VandpdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1209 fn vandpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1210 self.emit(
1211 VANDPD512RRM_MASKZ,
1212 op0.as_operand(),
1213 op1.as_operand(),
1214 op2.as_operand(),
1215 &NOREG,
1216 );
1217 }
1218}
1219
1220pub trait VandpsEmitter<A, B, C> {
1237 fn vandps(&mut self, op0: A, op1: B, op2: C);
1238}
1239
1240impl<'a> VandpsEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1241 fn vandps(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1242 self.emit(
1243 VANDPS128RRR,
1244 op0.as_operand(),
1245 op1.as_operand(),
1246 op2.as_operand(),
1247 &NOREG,
1248 );
1249 }
1250}
1251
1252impl<'a> VandpsEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1253 fn vandps(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1254 self.emit(
1255 VANDPS128RRM,
1256 op0.as_operand(),
1257 op1.as_operand(),
1258 op2.as_operand(),
1259 &NOREG,
1260 );
1261 }
1262}
1263
1264impl<'a> VandpsEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1265 fn vandps(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1266 self.emit(
1267 VANDPS256RRR,
1268 op0.as_operand(),
1269 op1.as_operand(),
1270 op2.as_operand(),
1271 &NOREG,
1272 );
1273 }
1274}
1275
1276impl<'a> VandpsEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1277 fn vandps(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1278 self.emit(
1279 VANDPS256RRM,
1280 op0.as_operand(),
1281 op1.as_operand(),
1282 op2.as_operand(),
1283 &NOREG,
1284 );
1285 }
1286}
1287
1288impl<'a> VandpsEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1289 fn vandps(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1290 self.emit(
1291 VANDPS512RRR,
1292 op0.as_operand(),
1293 op1.as_operand(),
1294 op2.as_operand(),
1295 &NOREG,
1296 );
1297 }
1298}
1299
1300impl<'a> VandpsEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1301 fn vandps(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1302 self.emit(
1303 VANDPS512RRM,
1304 op0.as_operand(),
1305 op1.as_operand(),
1306 op2.as_operand(),
1307 &NOREG,
1308 );
1309 }
1310}
1311
1312pub trait VandpsMaskEmitter<A, B, C> {
1329 fn vandps_mask(&mut self, op0: A, op1: B, op2: C);
1330}
1331
1332impl<'a> VandpsMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1333 fn vandps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1334 self.emit(
1335 VANDPS128RRR_MASK,
1336 op0.as_operand(),
1337 op1.as_operand(),
1338 op2.as_operand(),
1339 &NOREG,
1340 );
1341 }
1342}
1343
1344impl<'a> VandpsMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1345 fn vandps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1346 self.emit(
1347 VANDPS128RRM_MASK,
1348 op0.as_operand(),
1349 op1.as_operand(),
1350 op2.as_operand(),
1351 &NOREG,
1352 );
1353 }
1354}
1355
1356impl<'a> VandpsMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1357 fn vandps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1358 self.emit(
1359 VANDPS256RRR_MASK,
1360 op0.as_operand(),
1361 op1.as_operand(),
1362 op2.as_operand(),
1363 &NOREG,
1364 );
1365 }
1366}
1367
1368impl<'a> VandpsMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1369 fn vandps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1370 self.emit(
1371 VANDPS256RRM_MASK,
1372 op0.as_operand(),
1373 op1.as_operand(),
1374 op2.as_operand(),
1375 &NOREG,
1376 );
1377 }
1378}
1379
1380impl<'a> VandpsMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1381 fn vandps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1382 self.emit(
1383 VANDPS512RRR_MASK,
1384 op0.as_operand(),
1385 op1.as_operand(),
1386 op2.as_operand(),
1387 &NOREG,
1388 );
1389 }
1390}
1391
1392impl<'a> VandpsMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1393 fn vandps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1394 self.emit(
1395 VANDPS512RRM_MASK,
1396 op0.as_operand(),
1397 op1.as_operand(),
1398 op2.as_operand(),
1399 &NOREG,
1400 );
1401 }
1402}
1403
1404pub trait VandpsMaskzEmitter<A, B, C> {
1421 fn vandps_maskz(&mut self, op0: A, op1: B, op2: C);
1422}
1423
1424impl<'a> VandpsMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
1425 fn vandps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
1426 self.emit(
1427 VANDPS128RRR_MASKZ,
1428 op0.as_operand(),
1429 op1.as_operand(),
1430 op2.as_operand(),
1431 &NOREG,
1432 );
1433 }
1434}
1435
1436impl<'a> VandpsMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
1437 fn vandps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
1438 self.emit(
1439 VANDPS128RRM_MASKZ,
1440 op0.as_operand(),
1441 op1.as_operand(),
1442 op2.as_operand(),
1443 &NOREG,
1444 );
1445 }
1446}
1447
1448impl<'a> VandpsMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
1449 fn vandps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
1450 self.emit(
1451 VANDPS256RRR_MASKZ,
1452 op0.as_operand(),
1453 op1.as_operand(),
1454 op2.as_operand(),
1455 &NOREG,
1456 );
1457 }
1458}
1459
1460impl<'a> VandpsMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
1461 fn vandps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
1462 self.emit(
1463 VANDPS256RRM_MASKZ,
1464 op0.as_operand(),
1465 op1.as_operand(),
1466 op2.as_operand(),
1467 &NOREG,
1468 );
1469 }
1470}
1471
1472impl<'a> VandpsMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
1473 fn vandps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
1474 self.emit(
1475 VANDPS512RRR_MASKZ,
1476 op0.as_operand(),
1477 op1.as_operand(),
1478 op2.as_operand(),
1479 &NOREG,
1480 );
1481 }
1482}
1483
1484impl<'a> VandpsMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
1485 fn vandps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
1486 self.emit(
1487 VANDPS512RRM_MASKZ,
1488 op0.as_operand(),
1489 op1.as_operand(),
1490 op2.as_operand(),
1491 &NOREG,
1492 );
1493 }
1494}
1495
1496pub trait Vbroadcastf32x2Emitter<A, B> {
1511 fn vbroadcastf32x2(&mut self, op0: A, op1: B);
1512}
1513
1514impl<'a> Vbroadcastf32x2Emitter<Ymm, Xmm> for Assembler<'a> {
1515 fn vbroadcastf32x2(&mut self, op0: Ymm, op1: Xmm) {
1516 self.emit(
1517 VBROADCASTF32X2_256RR,
1518 op0.as_operand(),
1519 op1.as_operand(),
1520 &NOREG,
1521 &NOREG,
1522 );
1523 }
1524}
1525
1526impl<'a> Vbroadcastf32x2Emitter<Ymm, Mem> for Assembler<'a> {
1527 fn vbroadcastf32x2(&mut self, op0: Ymm, op1: Mem) {
1528 self.emit(
1529 VBROADCASTF32X2_256RM,
1530 op0.as_operand(),
1531 op1.as_operand(),
1532 &NOREG,
1533 &NOREG,
1534 );
1535 }
1536}
1537
1538impl<'a> Vbroadcastf32x2Emitter<Zmm, Xmm> for Assembler<'a> {
1539 fn vbroadcastf32x2(&mut self, op0: Zmm, op1: Xmm) {
1540 self.emit(
1541 VBROADCASTF32X2_512RR,
1542 op0.as_operand(),
1543 op1.as_operand(),
1544 &NOREG,
1545 &NOREG,
1546 );
1547 }
1548}
1549
1550impl<'a> Vbroadcastf32x2Emitter<Zmm, Mem> for Assembler<'a> {
1551 fn vbroadcastf32x2(&mut self, op0: Zmm, op1: Mem) {
1552 self.emit(
1553 VBROADCASTF32X2_512RM,
1554 op0.as_operand(),
1555 op1.as_operand(),
1556 &NOREG,
1557 &NOREG,
1558 );
1559 }
1560}
1561
1562pub trait Vbroadcastf32x2MaskEmitter<A, B> {
1577 fn vbroadcastf32x2_mask(&mut self, op0: A, op1: B);
1578}
1579
1580impl<'a> Vbroadcastf32x2MaskEmitter<Ymm, Xmm> for Assembler<'a> {
1581 fn vbroadcastf32x2_mask(&mut self, op0: Ymm, op1: Xmm) {
1582 self.emit(
1583 VBROADCASTF32X2_256RR_MASK,
1584 op0.as_operand(),
1585 op1.as_operand(),
1586 &NOREG,
1587 &NOREG,
1588 );
1589 }
1590}
1591
1592impl<'a> Vbroadcastf32x2MaskEmitter<Ymm, Mem> for Assembler<'a> {
1593 fn vbroadcastf32x2_mask(&mut self, op0: Ymm, op1: Mem) {
1594 self.emit(
1595 VBROADCASTF32X2_256RM_MASK,
1596 op0.as_operand(),
1597 op1.as_operand(),
1598 &NOREG,
1599 &NOREG,
1600 );
1601 }
1602}
1603
1604impl<'a> Vbroadcastf32x2MaskEmitter<Zmm, Xmm> for Assembler<'a> {
1605 fn vbroadcastf32x2_mask(&mut self, op0: Zmm, op1: Xmm) {
1606 self.emit(
1607 VBROADCASTF32X2_512RR_MASK,
1608 op0.as_operand(),
1609 op1.as_operand(),
1610 &NOREG,
1611 &NOREG,
1612 );
1613 }
1614}
1615
1616impl<'a> Vbroadcastf32x2MaskEmitter<Zmm, Mem> for Assembler<'a> {
1617 fn vbroadcastf32x2_mask(&mut self, op0: Zmm, op1: Mem) {
1618 self.emit(
1619 VBROADCASTF32X2_512RM_MASK,
1620 op0.as_operand(),
1621 op1.as_operand(),
1622 &NOREG,
1623 &NOREG,
1624 );
1625 }
1626}
1627
1628pub trait Vbroadcastf32x2MaskzEmitter<A, B> {
1643 fn vbroadcastf32x2_maskz(&mut self, op0: A, op1: B);
1644}
1645
1646impl<'a> Vbroadcastf32x2MaskzEmitter<Ymm, Xmm> for Assembler<'a> {
1647 fn vbroadcastf32x2_maskz(&mut self, op0: Ymm, op1: Xmm) {
1648 self.emit(
1649 VBROADCASTF32X2_256RR_MASKZ,
1650 op0.as_operand(),
1651 op1.as_operand(),
1652 &NOREG,
1653 &NOREG,
1654 );
1655 }
1656}
1657
1658impl<'a> Vbroadcastf32x2MaskzEmitter<Ymm, Mem> for Assembler<'a> {
1659 fn vbroadcastf32x2_maskz(&mut self, op0: Ymm, op1: Mem) {
1660 self.emit(
1661 VBROADCASTF32X2_256RM_MASKZ,
1662 op0.as_operand(),
1663 op1.as_operand(),
1664 &NOREG,
1665 &NOREG,
1666 );
1667 }
1668}
1669
1670impl<'a> Vbroadcastf32x2MaskzEmitter<Zmm, Xmm> for Assembler<'a> {
1671 fn vbroadcastf32x2_maskz(&mut self, op0: Zmm, op1: Xmm) {
1672 self.emit(
1673 VBROADCASTF32X2_512RR_MASKZ,
1674 op0.as_operand(),
1675 op1.as_operand(),
1676 &NOREG,
1677 &NOREG,
1678 );
1679 }
1680}
1681
1682impl<'a> Vbroadcastf32x2MaskzEmitter<Zmm, Mem> for Assembler<'a> {
1683 fn vbroadcastf32x2_maskz(&mut self, op0: Zmm, op1: Mem) {
1684 self.emit(
1685 VBROADCASTF32X2_512RM_MASKZ,
1686 op0.as_operand(),
1687 op1.as_operand(),
1688 &NOREG,
1689 &NOREG,
1690 );
1691 }
1692}
1693
1694pub trait Vbroadcastf32x8Emitter<A, B> {
1706 fn vbroadcastf32x8(&mut self, op0: A, op1: B);
1707}
1708
1709impl<'a> Vbroadcastf32x8Emitter<Zmm, Mem> for Assembler<'a> {
1710 fn vbroadcastf32x8(&mut self, op0: Zmm, op1: Mem) {
1711 self.emit(
1712 VBROADCASTF32X8_512RM,
1713 op0.as_operand(),
1714 op1.as_operand(),
1715 &NOREG,
1716 &NOREG,
1717 );
1718 }
1719}
1720
1721pub trait Vbroadcastf32x8MaskEmitter<A, B> {
1733 fn vbroadcastf32x8_mask(&mut self, op0: A, op1: B);
1734}
1735
1736impl<'a> Vbroadcastf32x8MaskEmitter<Zmm, Mem> for Assembler<'a> {
1737 fn vbroadcastf32x8_mask(&mut self, op0: Zmm, op1: Mem) {
1738 self.emit(
1739 VBROADCASTF32X8_512RM_MASK,
1740 op0.as_operand(),
1741 op1.as_operand(),
1742 &NOREG,
1743 &NOREG,
1744 );
1745 }
1746}
1747
1748pub trait Vbroadcastf32x8MaskzEmitter<A, B> {
1760 fn vbroadcastf32x8_maskz(&mut self, op0: A, op1: B);
1761}
1762
1763impl<'a> Vbroadcastf32x8MaskzEmitter<Zmm, Mem> for Assembler<'a> {
1764 fn vbroadcastf32x8_maskz(&mut self, op0: Zmm, op1: Mem) {
1765 self.emit(
1766 VBROADCASTF32X8_512RM_MASKZ,
1767 op0.as_operand(),
1768 op1.as_operand(),
1769 &NOREG,
1770 &NOREG,
1771 );
1772 }
1773}
1774
1775pub trait Vbroadcastf64x2Emitter<A, B> {
1788 fn vbroadcastf64x2(&mut self, op0: A, op1: B);
1789}
1790
1791impl<'a> Vbroadcastf64x2Emitter<Ymm, Mem> for Assembler<'a> {
1792 fn vbroadcastf64x2(&mut self, op0: Ymm, op1: Mem) {
1793 self.emit(
1794 VBROADCASTF64X2_256RM,
1795 op0.as_operand(),
1796 op1.as_operand(),
1797 &NOREG,
1798 &NOREG,
1799 );
1800 }
1801}
1802
1803impl<'a> Vbroadcastf64x2Emitter<Zmm, Mem> for Assembler<'a> {
1804 fn vbroadcastf64x2(&mut self, op0: Zmm, op1: Mem) {
1805 self.emit(
1806 VBROADCASTF64X2_512RM,
1807 op0.as_operand(),
1808 op1.as_operand(),
1809 &NOREG,
1810 &NOREG,
1811 );
1812 }
1813}
1814
1815pub trait Vbroadcastf64x2MaskEmitter<A, B> {
1828 fn vbroadcastf64x2_mask(&mut self, op0: A, op1: B);
1829}
1830
1831impl<'a> Vbroadcastf64x2MaskEmitter<Ymm, Mem> for Assembler<'a> {
1832 fn vbroadcastf64x2_mask(&mut self, op0: Ymm, op1: Mem) {
1833 self.emit(
1834 VBROADCASTF64X2_256RM_MASK,
1835 op0.as_operand(),
1836 op1.as_operand(),
1837 &NOREG,
1838 &NOREG,
1839 );
1840 }
1841}
1842
1843impl<'a> Vbroadcastf64x2MaskEmitter<Zmm, Mem> for Assembler<'a> {
1844 fn vbroadcastf64x2_mask(&mut self, op0: Zmm, op1: Mem) {
1845 self.emit(
1846 VBROADCASTF64X2_512RM_MASK,
1847 op0.as_operand(),
1848 op1.as_operand(),
1849 &NOREG,
1850 &NOREG,
1851 );
1852 }
1853}
1854
1855pub trait Vbroadcastf64x2MaskzEmitter<A, B> {
1868 fn vbroadcastf64x2_maskz(&mut self, op0: A, op1: B);
1869}
1870
1871impl<'a> Vbroadcastf64x2MaskzEmitter<Ymm, Mem> for Assembler<'a> {
1872 fn vbroadcastf64x2_maskz(&mut self, op0: Ymm, op1: Mem) {
1873 self.emit(
1874 VBROADCASTF64X2_256RM_MASKZ,
1875 op0.as_operand(),
1876 op1.as_operand(),
1877 &NOREG,
1878 &NOREG,
1879 );
1880 }
1881}
1882
1883impl<'a> Vbroadcastf64x2MaskzEmitter<Zmm, Mem> for Assembler<'a> {
1884 fn vbroadcastf64x2_maskz(&mut self, op0: Zmm, op1: Mem) {
1885 self.emit(
1886 VBROADCASTF64X2_512RM_MASKZ,
1887 op0.as_operand(),
1888 op1.as_operand(),
1889 &NOREG,
1890 &NOREG,
1891 );
1892 }
1893}
1894
1895pub trait Vbroadcasti32x2Emitter<A, B> {
1912 fn vbroadcasti32x2(&mut self, op0: A, op1: B);
1913}
1914
1915impl<'a> Vbroadcasti32x2Emitter<Xmm, Xmm> for Assembler<'a> {
1916 fn vbroadcasti32x2(&mut self, op0: Xmm, op1: Xmm) {
1917 self.emit(
1918 VBROADCASTI32X2_128RR,
1919 op0.as_operand(),
1920 op1.as_operand(),
1921 &NOREG,
1922 &NOREG,
1923 );
1924 }
1925}
1926
1927impl<'a> Vbroadcasti32x2Emitter<Xmm, Mem> for Assembler<'a> {
1928 fn vbroadcasti32x2(&mut self, op0: Xmm, op1: Mem) {
1929 self.emit(
1930 VBROADCASTI32X2_128RM,
1931 op0.as_operand(),
1932 op1.as_operand(),
1933 &NOREG,
1934 &NOREG,
1935 );
1936 }
1937}
1938
1939impl<'a> Vbroadcasti32x2Emitter<Ymm, Xmm> for Assembler<'a> {
1940 fn vbroadcasti32x2(&mut self, op0: Ymm, op1: Xmm) {
1941 self.emit(
1942 VBROADCASTI32X2_256RR,
1943 op0.as_operand(),
1944 op1.as_operand(),
1945 &NOREG,
1946 &NOREG,
1947 );
1948 }
1949}
1950
1951impl<'a> Vbroadcasti32x2Emitter<Ymm, Mem> for Assembler<'a> {
1952 fn vbroadcasti32x2(&mut self, op0: Ymm, op1: Mem) {
1953 self.emit(
1954 VBROADCASTI32X2_256RM,
1955 op0.as_operand(),
1956 op1.as_operand(),
1957 &NOREG,
1958 &NOREG,
1959 );
1960 }
1961}
1962
1963impl<'a> Vbroadcasti32x2Emitter<Zmm, Xmm> for Assembler<'a> {
1964 fn vbroadcasti32x2(&mut self, op0: Zmm, op1: Xmm) {
1965 self.emit(
1966 VBROADCASTI32X2_512RR,
1967 op0.as_operand(),
1968 op1.as_operand(),
1969 &NOREG,
1970 &NOREG,
1971 );
1972 }
1973}
1974
1975impl<'a> Vbroadcasti32x2Emitter<Zmm, Mem> for Assembler<'a> {
1976 fn vbroadcasti32x2(&mut self, op0: Zmm, op1: Mem) {
1977 self.emit(
1978 VBROADCASTI32X2_512RM,
1979 op0.as_operand(),
1980 op1.as_operand(),
1981 &NOREG,
1982 &NOREG,
1983 );
1984 }
1985}
1986
1987pub trait Vbroadcasti32x2MaskEmitter<A, B> {
2004 fn vbroadcasti32x2_mask(&mut self, op0: A, op1: B);
2005}
2006
2007impl<'a> Vbroadcasti32x2MaskEmitter<Xmm, Xmm> for Assembler<'a> {
2008 fn vbroadcasti32x2_mask(&mut self, op0: Xmm, op1: Xmm) {
2009 self.emit(
2010 VBROADCASTI32X2_128RR_MASK,
2011 op0.as_operand(),
2012 op1.as_operand(),
2013 &NOREG,
2014 &NOREG,
2015 );
2016 }
2017}
2018
2019impl<'a> Vbroadcasti32x2MaskEmitter<Xmm, Mem> for Assembler<'a> {
2020 fn vbroadcasti32x2_mask(&mut self, op0: Xmm, op1: Mem) {
2021 self.emit(
2022 VBROADCASTI32X2_128RM_MASK,
2023 op0.as_operand(),
2024 op1.as_operand(),
2025 &NOREG,
2026 &NOREG,
2027 );
2028 }
2029}
2030
2031impl<'a> Vbroadcasti32x2MaskEmitter<Ymm, Xmm> for Assembler<'a> {
2032 fn vbroadcasti32x2_mask(&mut self, op0: Ymm, op1: Xmm) {
2033 self.emit(
2034 VBROADCASTI32X2_256RR_MASK,
2035 op0.as_operand(),
2036 op1.as_operand(),
2037 &NOREG,
2038 &NOREG,
2039 );
2040 }
2041}
2042
2043impl<'a> Vbroadcasti32x2MaskEmitter<Ymm, Mem> for Assembler<'a> {
2044 fn vbroadcasti32x2_mask(&mut self, op0: Ymm, op1: Mem) {
2045 self.emit(
2046 VBROADCASTI32X2_256RM_MASK,
2047 op0.as_operand(),
2048 op1.as_operand(),
2049 &NOREG,
2050 &NOREG,
2051 );
2052 }
2053}
2054
2055impl<'a> Vbroadcasti32x2MaskEmitter<Zmm, Xmm> for Assembler<'a> {
2056 fn vbroadcasti32x2_mask(&mut self, op0: Zmm, op1: Xmm) {
2057 self.emit(
2058 VBROADCASTI32X2_512RR_MASK,
2059 op0.as_operand(),
2060 op1.as_operand(),
2061 &NOREG,
2062 &NOREG,
2063 );
2064 }
2065}
2066
2067impl<'a> Vbroadcasti32x2MaskEmitter<Zmm, Mem> for Assembler<'a> {
2068 fn vbroadcasti32x2_mask(&mut self, op0: Zmm, op1: Mem) {
2069 self.emit(
2070 VBROADCASTI32X2_512RM_MASK,
2071 op0.as_operand(),
2072 op1.as_operand(),
2073 &NOREG,
2074 &NOREG,
2075 );
2076 }
2077}
2078
2079pub trait Vbroadcasti32x2MaskzEmitter<A, B> {
2096 fn vbroadcasti32x2_maskz(&mut self, op0: A, op1: B);
2097}
2098
2099impl<'a> Vbroadcasti32x2MaskzEmitter<Xmm, Xmm> for Assembler<'a> {
2100 fn vbroadcasti32x2_maskz(&mut self, op0: Xmm, op1: Xmm) {
2101 self.emit(
2102 VBROADCASTI32X2_128RR_MASKZ,
2103 op0.as_operand(),
2104 op1.as_operand(),
2105 &NOREG,
2106 &NOREG,
2107 );
2108 }
2109}
2110
2111impl<'a> Vbroadcasti32x2MaskzEmitter<Xmm, Mem> for Assembler<'a> {
2112 fn vbroadcasti32x2_maskz(&mut self, op0: Xmm, op1: Mem) {
2113 self.emit(
2114 VBROADCASTI32X2_128RM_MASKZ,
2115 op0.as_operand(),
2116 op1.as_operand(),
2117 &NOREG,
2118 &NOREG,
2119 );
2120 }
2121}
2122
2123impl<'a> Vbroadcasti32x2MaskzEmitter<Ymm, Xmm> for Assembler<'a> {
2124 fn vbroadcasti32x2_maskz(&mut self, op0: Ymm, op1: Xmm) {
2125 self.emit(
2126 VBROADCASTI32X2_256RR_MASKZ,
2127 op0.as_operand(),
2128 op1.as_operand(),
2129 &NOREG,
2130 &NOREG,
2131 );
2132 }
2133}
2134
2135impl<'a> Vbroadcasti32x2MaskzEmitter<Ymm, Mem> for Assembler<'a> {
2136 fn vbroadcasti32x2_maskz(&mut self, op0: Ymm, op1: Mem) {
2137 self.emit(
2138 VBROADCASTI32X2_256RM_MASKZ,
2139 op0.as_operand(),
2140 op1.as_operand(),
2141 &NOREG,
2142 &NOREG,
2143 );
2144 }
2145}
2146
2147impl<'a> Vbroadcasti32x2MaskzEmitter<Zmm, Xmm> for Assembler<'a> {
2148 fn vbroadcasti32x2_maskz(&mut self, op0: Zmm, op1: Xmm) {
2149 self.emit(
2150 VBROADCASTI32X2_512RR_MASKZ,
2151 op0.as_operand(),
2152 op1.as_operand(),
2153 &NOREG,
2154 &NOREG,
2155 );
2156 }
2157}
2158
2159impl<'a> Vbroadcasti32x2MaskzEmitter<Zmm, Mem> for Assembler<'a> {
2160 fn vbroadcasti32x2_maskz(&mut self, op0: Zmm, op1: Mem) {
2161 self.emit(
2162 VBROADCASTI32X2_512RM_MASKZ,
2163 op0.as_operand(),
2164 op1.as_operand(),
2165 &NOREG,
2166 &NOREG,
2167 );
2168 }
2169}
2170
2171pub trait Vbroadcasti32x4Emitter<A, B> {
2184 fn vbroadcasti32x4(&mut self, op0: A, op1: B);
2185}
2186
2187impl<'a> Vbroadcasti32x4Emitter<Ymm, Mem> for Assembler<'a> {
2188 fn vbroadcasti32x4(&mut self, op0: Ymm, op1: Mem) {
2189 self.emit(
2190 VBROADCASTI32X4_256RM,
2191 op0.as_operand(),
2192 op1.as_operand(),
2193 &NOREG,
2194 &NOREG,
2195 );
2196 }
2197}
2198
2199impl<'a> Vbroadcasti32x4Emitter<Zmm, Mem> for Assembler<'a> {
2200 fn vbroadcasti32x4(&mut self, op0: Zmm, op1: Mem) {
2201 self.emit(
2202 VBROADCASTI32X4_512RM,
2203 op0.as_operand(),
2204 op1.as_operand(),
2205 &NOREG,
2206 &NOREG,
2207 );
2208 }
2209}
2210
2211pub trait Vbroadcasti32x4MaskEmitter<A, B> {
2224 fn vbroadcasti32x4_mask(&mut self, op0: A, op1: B);
2225}
2226
2227impl<'a> Vbroadcasti32x4MaskEmitter<Ymm, Mem> for Assembler<'a> {
2228 fn vbroadcasti32x4_mask(&mut self, op0: Ymm, op1: Mem) {
2229 self.emit(
2230 VBROADCASTI32X4_256RM_MASK,
2231 op0.as_operand(),
2232 op1.as_operand(),
2233 &NOREG,
2234 &NOREG,
2235 );
2236 }
2237}
2238
2239impl<'a> Vbroadcasti32x4MaskEmitter<Zmm, Mem> for Assembler<'a> {
2240 fn vbroadcasti32x4_mask(&mut self, op0: Zmm, op1: Mem) {
2241 self.emit(
2242 VBROADCASTI32X4_512RM_MASK,
2243 op0.as_operand(),
2244 op1.as_operand(),
2245 &NOREG,
2246 &NOREG,
2247 );
2248 }
2249}
2250
2251pub trait Vbroadcasti32x4MaskzEmitter<A, B> {
2264 fn vbroadcasti32x4_maskz(&mut self, op0: A, op1: B);
2265}
2266
2267impl<'a> Vbroadcasti32x4MaskzEmitter<Ymm, Mem> for Assembler<'a> {
2268 fn vbroadcasti32x4_maskz(&mut self, op0: Ymm, op1: Mem) {
2269 self.emit(
2270 VBROADCASTI32X4_256RM_MASKZ,
2271 op0.as_operand(),
2272 op1.as_operand(),
2273 &NOREG,
2274 &NOREG,
2275 );
2276 }
2277}
2278
2279impl<'a> Vbroadcasti32x4MaskzEmitter<Zmm, Mem> for Assembler<'a> {
2280 fn vbroadcasti32x4_maskz(&mut self, op0: Zmm, op1: Mem) {
2281 self.emit(
2282 VBROADCASTI32X4_512RM_MASKZ,
2283 op0.as_operand(),
2284 op1.as_operand(),
2285 &NOREG,
2286 &NOREG,
2287 );
2288 }
2289}
2290
2291pub trait Vbroadcasti32x8Emitter<A, B> {
2303 fn vbroadcasti32x8(&mut self, op0: A, op1: B);
2304}
2305
2306impl<'a> Vbroadcasti32x8Emitter<Zmm, Mem> for Assembler<'a> {
2307 fn vbroadcasti32x8(&mut self, op0: Zmm, op1: Mem) {
2308 self.emit(
2309 VBROADCASTI32X8_512RM,
2310 op0.as_operand(),
2311 op1.as_operand(),
2312 &NOREG,
2313 &NOREG,
2314 );
2315 }
2316}
2317
2318pub trait Vbroadcasti32x8MaskEmitter<A, B> {
2330 fn vbroadcasti32x8_mask(&mut self, op0: A, op1: B);
2331}
2332
2333impl<'a> Vbroadcasti32x8MaskEmitter<Zmm, Mem> for Assembler<'a> {
2334 fn vbroadcasti32x8_mask(&mut self, op0: Zmm, op1: Mem) {
2335 self.emit(
2336 VBROADCASTI32X8_512RM_MASK,
2337 op0.as_operand(),
2338 op1.as_operand(),
2339 &NOREG,
2340 &NOREG,
2341 );
2342 }
2343}
2344
2345pub trait Vbroadcasti32x8MaskzEmitter<A, B> {
2357 fn vbroadcasti32x8_maskz(&mut self, op0: A, op1: B);
2358}
2359
2360impl<'a> Vbroadcasti32x8MaskzEmitter<Zmm, Mem> for Assembler<'a> {
2361 fn vbroadcasti32x8_maskz(&mut self, op0: Zmm, op1: Mem) {
2362 self.emit(
2363 VBROADCASTI32X8_512RM_MASKZ,
2364 op0.as_operand(),
2365 op1.as_operand(),
2366 &NOREG,
2367 &NOREG,
2368 );
2369 }
2370}
2371
2372pub trait Vbroadcasti64x2Emitter<A, B> {
2385 fn vbroadcasti64x2(&mut self, op0: A, op1: B);
2386}
2387
2388impl<'a> Vbroadcasti64x2Emitter<Ymm, Mem> for Assembler<'a> {
2389 fn vbroadcasti64x2(&mut self, op0: Ymm, op1: Mem) {
2390 self.emit(
2391 VBROADCASTI64X2_256RM,
2392 op0.as_operand(),
2393 op1.as_operand(),
2394 &NOREG,
2395 &NOREG,
2396 );
2397 }
2398}
2399
2400impl<'a> Vbroadcasti64x2Emitter<Zmm, Mem> for Assembler<'a> {
2401 fn vbroadcasti64x2(&mut self, op0: Zmm, op1: Mem) {
2402 self.emit(
2403 VBROADCASTI64X2_512RM,
2404 op0.as_operand(),
2405 op1.as_operand(),
2406 &NOREG,
2407 &NOREG,
2408 );
2409 }
2410}
2411
2412pub trait Vbroadcasti64x2MaskEmitter<A, B> {
2425 fn vbroadcasti64x2_mask(&mut self, op0: A, op1: B);
2426}
2427
2428impl<'a> Vbroadcasti64x2MaskEmitter<Ymm, Mem> for Assembler<'a> {
2429 fn vbroadcasti64x2_mask(&mut self, op0: Ymm, op1: Mem) {
2430 self.emit(
2431 VBROADCASTI64X2_256RM_MASK,
2432 op0.as_operand(),
2433 op1.as_operand(),
2434 &NOREG,
2435 &NOREG,
2436 );
2437 }
2438}
2439
2440impl<'a> Vbroadcasti64x2MaskEmitter<Zmm, Mem> for Assembler<'a> {
2441 fn vbroadcasti64x2_mask(&mut self, op0: Zmm, op1: Mem) {
2442 self.emit(
2443 VBROADCASTI64X2_512RM_MASK,
2444 op0.as_operand(),
2445 op1.as_operand(),
2446 &NOREG,
2447 &NOREG,
2448 );
2449 }
2450}
2451
2452pub trait Vbroadcasti64x2MaskzEmitter<A, B> {
2465 fn vbroadcasti64x2_maskz(&mut self, op0: A, op1: B);
2466}
2467
2468impl<'a> Vbroadcasti64x2MaskzEmitter<Ymm, Mem> for Assembler<'a> {
2469 fn vbroadcasti64x2_maskz(&mut self, op0: Ymm, op1: Mem) {
2470 self.emit(
2471 VBROADCASTI64X2_256RM_MASKZ,
2472 op0.as_operand(),
2473 op1.as_operand(),
2474 &NOREG,
2475 &NOREG,
2476 );
2477 }
2478}
2479
2480impl<'a> Vbroadcasti64x2MaskzEmitter<Zmm, Mem> for Assembler<'a> {
2481 fn vbroadcasti64x2_maskz(&mut self, op0: Zmm, op1: Mem) {
2482 self.emit(
2483 VBROADCASTI64X2_512RM_MASKZ,
2484 op0.as_operand(),
2485 op1.as_operand(),
2486 &NOREG,
2487 &NOREG,
2488 );
2489 }
2490}
2491
2492pub trait Vcvtpd2qqEmitter<A, B> {
2509 fn vcvtpd2qq(&mut self, op0: A, op1: B);
2510}
2511
2512impl<'a> Vcvtpd2qqEmitter<Xmm, Xmm> for Assembler<'a> {
2513 fn vcvtpd2qq(&mut self, op0: Xmm, op1: Xmm) {
2514 self.emit(
2515 VCVTPD2QQ128RR,
2516 op0.as_operand(),
2517 op1.as_operand(),
2518 &NOREG,
2519 &NOREG,
2520 );
2521 }
2522}
2523
2524impl<'a> Vcvtpd2qqEmitter<Xmm, Mem> for Assembler<'a> {
2525 fn vcvtpd2qq(&mut self, op0: Xmm, op1: Mem) {
2526 self.emit(
2527 VCVTPD2QQ128RM,
2528 op0.as_operand(),
2529 op1.as_operand(),
2530 &NOREG,
2531 &NOREG,
2532 );
2533 }
2534}
2535
2536impl<'a> Vcvtpd2qqEmitter<Ymm, Ymm> for Assembler<'a> {
2537 fn vcvtpd2qq(&mut self, op0: Ymm, op1: Ymm) {
2538 self.emit(
2539 VCVTPD2QQ256RR,
2540 op0.as_operand(),
2541 op1.as_operand(),
2542 &NOREG,
2543 &NOREG,
2544 );
2545 }
2546}
2547
2548impl<'a> Vcvtpd2qqEmitter<Ymm, Mem> for Assembler<'a> {
2549 fn vcvtpd2qq(&mut self, op0: Ymm, op1: Mem) {
2550 self.emit(
2551 VCVTPD2QQ256RM,
2552 op0.as_operand(),
2553 op1.as_operand(),
2554 &NOREG,
2555 &NOREG,
2556 );
2557 }
2558}
2559
2560impl<'a> Vcvtpd2qqEmitter<Zmm, Zmm> for Assembler<'a> {
2561 fn vcvtpd2qq(&mut self, op0: Zmm, op1: Zmm) {
2562 self.emit(
2563 VCVTPD2QQ512RR,
2564 op0.as_operand(),
2565 op1.as_operand(),
2566 &NOREG,
2567 &NOREG,
2568 );
2569 }
2570}
2571
2572impl<'a> Vcvtpd2qqEmitter<Zmm, Mem> for Assembler<'a> {
2573 fn vcvtpd2qq(&mut self, op0: Zmm, op1: Mem) {
2574 self.emit(
2575 VCVTPD2QQ512RM,
2576 op0.as_operand(),
2577 op1.as_operand(),
2578 &NOREG,
2579 &NOREG,
2580 );
2581 }
2582}
2583
2584pub trait Vcvtpd2qqErEmitter<A, B> {
2596 fn vcvtpd2qq_er(&mut self, op0: A, op1: B);
2597}
2598
2599impl<'a> Vcvtpd2qqErEmitter<Zmm, Zmm> for Assembler<'a> {
2600 fn vcvtpd2qq_er(&mut self, op0: Zmm, op1: Zmm) {
2601 self.emit(
2602 VCVTPD2QQ512RR_ER,
2603 op0.as_operand(),
2604 op1.as_operand(),
2605 &NOREG,
2606 &NOREG,
2607 );
2608 }
2609}
2610
2611pub trait Vcvtpd2qqMaskEmitter<A, B> {
2628 fn vcvtpd2qq_mask(&mut self, op0: A, op1: B);
2629}
2630
2631impl<'a> Vcvtpd2qqMaskEmitter<Xmm, Xmm> for Assembler<'a> {
2632 fn vcvtpd2qq_mask(&mut self, op0: Xmm, op1: Xmm) {
2633 self.emit(
2634 VCVTPD2QQ128RR_MASK,
2635 op0.as_operand(),
2636 op1.as_operand(),
2637 &NOREG,
2638 &NOREG,
2639 );
2640 }
2641}
2642
2643impl<'a> Vcvtpd2qqMaskEmitter<Xmm, Mem> for Assembler<'a> {
2644 fn vcvtpd2qq_mask(&mut self, op0: Xmm, op1: Mem) {
2645 self.emit(
2646 VCVTPD2QQ128RM_MASK,
2647 op0.as_operand(),
2648 op1.as_operand(),
2649 &NOREG,
2650 &NOREG,
2651 );
2652 }
2653}
2654
2655impl<'a> Vcvtpd2qqMaskEmitter<Ymm, Ymm> for Assembler<'a> {
2656 fn vcvtpd2qq_mask(&mut self, op0: Ymm, op1: Ymm) {
2657 self.emit(
2658 VCVTPD2QQ256RR_MASK,
2659 op0.as_operand(),
2660 op1.as_operand(),
2661 &NOREG,
2662 &NOREG,
2663 );
2664 }
2665}
2666
2667impl<'a> Vcvtpd2qqMaskEmitter<Ymm, Mem> for Assembler<'a> {
2668 fn vcvtpd2qq_mask(&mut self, op0: Ymm, op1: Mem) {
2669 self.emit(
2670 VCVTPD2QQ256RM_MASK,
2671 op0.as_operand(),
2672 op1.as_operand(),
2673 &NOREG,
2674 &NOREG,
2675 );
2676 }
2677}
2678
2679impl<'a> Vcvtpd2qqMaskEmitter<Zmm, Zmm> for Assembler<'a> {
2680 fn vcvtpd2qq_mask(&mut self, op0: Zmm, op1: Zmm) {
2681 self.emit(
2682 VCVTPD2QQ512RR_MASK,
2683 op0.as_operand(),
2684 op1.as_operand(),
2685 &NOREG,
2686 &NOREG,
2687 );
2688 }
2689}
2690
2691impl<'a> Vcvtpd2qqMaskEmitter<Zmm, Mem> for Assembler<'a> {
2692 fn vcvtpd2qq_mask(&mut self, op0: Zmm, op1: Mem) {
2693 self.emit(
2694 VCVTPD2QQ512RM_MASK,
2695 op0.as_operand(),
2696 op1.as_operand(),
2697 &NOREG,
2698 &NOREG,
2699 );
2700 }
2701}
2702
2703pub trait Vcvtpd2qqMaskErEmitter<A, B> {
2715 fn vcvtpd2qq_mask_er(&mut self, op0: A, op1: B);
2716}
2717
2718impl<'a> Vcvtpd2qqMaskErEmitter<Zmm, Zmm> for Assembler<'a> {
2719 fn vcvtpd2qq_mask_er(&mut self, op0: Zmm, op1: Zmm) {
2720 self.emit(
2721 VCVTPD2QQ512RR_MASK_ER,
2722 op0.as_operand(),
2723 op1.as_operand(),
2724 &NOREG,
2725 &NOREG,
2726 );
2727 }
2728}
2729
2730pub trait Vcvtpd2qqMaskzEmitter<A, B> {
2747 fn vcvtpd2qq_maskz(&mut self, op0: A, op1: B);
2748}
2749
2750impl<'a> Vcvtpd2qqMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
2751 fn vcvtpd2qq_maskz(&mut self, op0: Xmm, op1: Xmm) {
2752 self.emit(
2753 VCVTPD2QQ128RR_MASKZ,
2754 op0.as_operand(),
2755 op1.as_operand(),
2756 &NOREG,
2757 &NOREG,
2758 );
2759 }
2760}
2761
2762impl<'a> Vcvtpd2qqMaskzEmitter<Xmm, Mem> for Assembler<'a> {
2763 fn vcvtpd2qq_maskz(&mut self, op0: Xmm, op1: Mem) {
2764 self.emit(
2765 VCVTPD2QQ128RM_MASKZ,
2766 op0.as_operand(),
2767 op1.as_operand(),
2768 &NOREG,
2769 &NOREG,
2770 );
2771 }
2772}
2773
2774impl<'a> Vcvtpd2qqMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
2775 fn vcvtpd2qq_maskz(&mut self, op0: Ymm, op1: Ymm) {
2776 self.emit(
2777 VCVTPD2QQ256RR_MASKZ,
2778 op0.as_operand(),
2779 op1.as_operand(),
2780 &NOREG,
2781 &NOREG,
2782 );
2783 }
2784}
2785
2786impl<'a> Vcvtpd2qqMaskzEmitter<Ymm, Mem> for Assembler<'a> {
2787 fn vcvtpd2qq_maskz(&mut self, op0: Ymm, op1: Mem) {
2788 self.emit(
2789 VCVTPD2QQ256RM_MASKZ,
2790 op0.as_operand(),
2791 op1.as_operand(),
2792 &NOREG,
2793 &NOREG,
2794 );
2795 }
2796}
2797
2798impl<'a> Vcvtpd2qqMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
2799 fn vcvtpd2qq_maskz(&mut self, op0: Zmm, op1: Zmm) {
2800 self.emit(
2801 VCVTPD2QQ512RR_MASKZ,
2802 op0.as_operand(),
2803 op1.as_operand(),
2804 &NOREG,
2805 &NOREG,
2806 );
2807 }
2808}
2809
2810impl<'a> Vcvtpd2qqMaskzEmitter<Zmm, Mem> for Assembler<'a> {
2811 fn vcvtpd2qq_maskz(&mut self, op0: Zmm, op1: Mem) {
2812 self.emit(
2813 VCVTPD2QQ512RM_MASKZ,
2814 op0.as_operand(),
2815 op1.as_operand(),
2816 &NOREG,
2817 &NOREG,
2818 );
2819 }
2820}
2821
2822pub trait Vcvtpd2qqMaskzErEmitter<A, B> {
2834 fn vcvtpd2qq_maskz_er(&mut self, op0: A, op1: B);
2835}
2836
2837impl<'a> Vcvtpd2qqMaskzErEmitter<Zmm, Zmm> for Assembler<'a> {
2838 fn vcvtpd2qq_maskz_er(&mut self, op0: Zmm, op1: Zmm) {
2839 self.emit(
2840 VCVTPD2QQ512RR_MASKZ_ER,
2841 op0.as_operand(),
2842 op1.as_operand(),
2843 &NOREG,
2844 &NOREG,
2845 );
2846 }
2847}
2848
2849pub trait Vcvtps2qqEmitter<A, B> {
2866 fn vcvtps2qq(&mut self, op0: A, op1: B);
2867}
2868
2869impl<'a> Vcvtps2qqEmitter<Xmm, Xmm> for Assembler<'a> {
2870 fn vcvtps2qq(&mut self, op0: Xmm, op1: Xmm) {
2871 self.emit(
2872 VCVTPS2QQ128RR,
2873 op0.as_operand(),
2874 op1.as_operand(),
2875 &NOREG,
2876 &NOREG,
2877 );
2878 }
2879}
2880
2881impl<'a> Vcvtps2qqEmitter<Xmm, Mem> for Assembler<'a> {
2882 fn vcvtps2qq(&mut self, op0: Xmm, op1: Mem) {
2883 self.emit(
2884 VCVTPS2QQ128RM,
2885 op0.as_operand(),
2886 op1.as_operand(),
2887 &NOREG,
2888 &NOREG,
2889 );
2890 }
2891}
2892
2893impl<'a> Vcvtps2qqEmitter<Ymm, Xmm> for Assembler<'a> {
2894 fn vcvtps2qq(&mut self, op0: Ymm, op1: Xmm) {
2895 self.emit(
2896 VCVTPS2QQ256RR,
2897 op0.as_operand(),
2898 op1.as_operand(),
2899 &NOREG,
2900 &NOREG,
2901 );
2902 }
2903}
2904
2905impl<'a> Vcvtps2qqEmitter<Ymm, Mem> for Assembler<'a> {
2906 fn vcvtps2qq(&mut self, op0: Ymm, op1: Mem) {
2907 self.emit(
2908 VCVTPS2QQ256RM,
2909 op0.as_operand(),
2910 op1.as_operand(),
2911 &NOREG,
2912 &NOREG,
2913 );
2914 }
2915}
2916
2917impl<'a> Vcvtps2qqEmitter<Zmm, Ymm> for Assembler<'a> {
2918 fn vcvtps2qq(&mut self, op0: Zmm, op1: Ymm) {
2919 self.emit(
2920 VCVTPS2QQ512RR,
2921 op0.as_operand(),
2922 op1.as_operand(),
2923 &NOREG,
2924 &NOREG,
2925 );
2926 }
2927}
2928
2929impl<'a> Vcvtps2qqEmitter<Zmm, Mem> for Assembler<'a> {
2930 fn vcvtps2qq(&mut self, op0: Zmm, op1: Mem) {
2931 self.emit(
2932 VCVTPS2QQ512RM,
2933 op0.as_operand(),
2934 op1.as_operand(),
2935 &NOREG,
2936 &NOREG,
2937 );
2938 }
2939}
2940
2941pub trait Vcvtps2qqErEmitter<A, B> {
2953 fn vcvtps2qq_er(&mut self, op0: A, op1: B);
2954}
2955
2956impl<'a> Vcvtps2qqErEmitter<Zmm, Ymm> for Assembler<'a> {
2957 fn vcvtps2qq_er(&mut self, op0: Zmm, op1: Ymm) {
2958 self.emit(
2959 VCVTPS2QQ512RR_ER,
2960 op0.as_operand(),
2961 op1.as_operand(),
2962 &NOREG,
2963 &NOREG,
2964 );
2965 }
2966}
2967
2968pub trait Vcvtps2qqMaskEmitter<A, B> {
2985 fn vcvtps2qq_mask(&mut self, op0: A, op1: B);
2986}
2987
2988impl<'a> Vcvtps2qqMaskEmitter<Xmm, Xmm> for Assembler<'a> {
2989 fn vcvtps2qq_mask(&mut self, op0: Xmm, op1: Xmm) {
2990 self.emit(
2991 VCVTPS2QQ128RR_MASK,
2992 op0.as_operand(),
2993 op1.as_operand(),
2994 &NOREG,
2995 &NOREG,
2996 );
2997 }
2998}
2999
3000impl<'a> Vcvtps2qqMaskEmitter<Xmm, Mem> for Assembler<'a> {
3001 fn vcvtps2qq_mask(&mut self, op0: Xmm, op1: Mem) {
3002 self.emit(
3003 VCVTPS2QQ128RM_MASK,
3004 op0.as_operand(),
3005 op1.as_operand(),
3006 &NOREG,
3007 &NOREG,
3008 );
3009 }
3010}
3011
3012impl<'a> Vcvtps2qqMaskEmitter<Ymm, Xmm> for Assembler<'a> {
3013 fn vcvtps2qq_mask(&mut self, op0: Ymm, op1: Xmm) {
3014 self.emit(
3015 VCVTPS2QQ256RR_MASK,
3016 op0.as_operand(),
3017 op1.as_operand(),
3018 &NOREG,
3019 &NOREG,
3020 );
3021 }
3022}
3023
3024impl<'a> Vcvtps2qqMaskEmitter<Ymm, Mem> for Assembler<'a> {
3025 fn vcvtps2qq_mask(&mut self, op0: Ymm, op1: Mem) {
3026 self.emit(
3027 VCVTPS2QQ256RM_MASK,
3028 op0.as_operand(),
3029 op1.as_operand(),
3030 &NOREG,
3031 &NOREG,
3032 );
3033 }
3034}
3035
3036impl<'a> Vcvtps2qqMaskEmitter<Zmm, Ymm> for Assembler<'a> {
3037 fn vcvtps2qq_mask(&mut self, op0: Zmm, op1: Ymm) {
3038 self.emit(
3039 VCVTPS2QQ512RR_MASK,
3040 op0.as_operand(),
3041 op1.as_operand(),
3042 &NOREG,
3043 &NOREG,
3044 );
3045 }
3046}
3047
3048impl<'a> Vcvtps2qqMaskEmitter<Zmm, Mem> for Assembler<'a> {
3049 fn vcvtps2qq_mask(&mut self, op0: Zmm, op1: Mem) {
3050 self.emit(
3051 VCVTPS2QQ512RM_MASK,
3052 op0.as_operand(),
3053 op1.as_operand(),
3054 &NOREG,
3055 &NOREG,
3056 );
3057 }
3058}
3059
3060pub trait Vcvtps2qqMaskErEmitter<A, B> {
3072 fn vcvtps2qq_mask_er(&mut self, op0: A, op1: B);
3073}
3074
3075impl<'a> Vcvtps2qqMaskErEmitter<Zmm, Ymm> for Assembler<'a> {
3076 fn vcvtps2qq_mask_er(&mut self, op0: Zmm, op1: Ymm) {
3077 self.emit(
3078 VCVTPS2QQ512RR_MASK_ER,
3079 op0.as_operand(),
3080 op1.as_operand(),
3081 &NOREG,
3082 &NOREG,
3083 );
3084 }
3085}
3086
3087pub trait Vcvtps2qqMaskzEmitter<A, B> {
3104 fn vcvtps2qq_maskz(&mut self, op0: A, op1: B);
3105}
3106
3107impl<'a> Vcvtps2qqMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
3108 fn vcvtps2qq_maskz(&mut self, op0: Xmm, op1: Xmm) {
3109 self.emit(
3110 VCVTPS2QQ128RR_MASKZ,
3111 op0.as_operand(),
3112 op1.as_operand(),
3113 &NOREG,
3114 &NOREG,
3115 );
3116 }
3117}
3118
3119impl<'a> Vcvtps2qqMaskzEmitter<Xmm, Mem> for Assembler<'a> {
3120 fn vcvtps2qq_maskz(&mut self, op0: Xmm, op1: Mem) {
3121 self.emit(
3122 VCVTPS2QQ128RM_MASKZ,
3123 op0.as_operand(),
3124 op1.as_operand(),
3125 &NOREG,
3126 &NOREG,
3127 );
3128 }
3129}
3130
3131impl<'a> Vcvtps2qqMaskzEmitter<Ymm, Xmm> for Assembler<'a> {
3132 fn vcvtps2qq_maskz(&mut self, op0: Ymm, op1: Xmm) {
3133 self.emit(
3134 VCVTPS2QQ256RR_MASKZ,
3135 op0.as_operand(),
3136 op1.as_operand(),
3137 &NOREG,
3138 &NOREG,
3139 );
3140 }
3141}
3142
3143impl<'a> Vcvtps2qqMaskzEmitter<Ymm, Mem> for Assembler<'a> {
3144 fn vcvtps2qq_maskz(&mut self, op0: Ymm, op1: Mem) {
3145 self.emit(
3146 VCVTPS2QQ256RM_MASKZ,
3147 op0.as_operand(),
3148 op1.as_operand(),
3149 &NOREG,
3150 &NOREG,
3151 );
3152 }
3153}
3154
3155impl<'a> Vcvtps2qqMaskzEmitter<Zmm, Ymm> for Assembler<'a> {
3156 fn vcvtps2qq_maskz(&mut self, op0: Zmm, op1: Ymm) {
3157 self.emit(
3158 VCVTPS2QQ512RR_MASKZ,
3159 op0.as_operand(),
3160 op1.as_operand(),
3161 &NOREG,
3162 &NOREG,
3163 );
3164 }
3165}
3166
3167impl<'a> Vcvtps2qqMaskzEmitter<Zmm, Mem> for Assembler<'a> {
3168 fn vcvtps2qq_maskz(&mut self, op0: Zmm, op1: Mem) {
3169 self.emit(
3170 VCVTPS2QQ512RM_MASKZ,
3171 op0.as_operand(),
3172 op1.as_operand(),
3173 &NOREG,
3174 &NOREG,
3175 );
3176 }
3177}
3178
3179pub trait Vcvtps2qqMaskzErEmitter<A, B> {
3191 fn vcvtps2qq_maskz_er(&mut self, op0: A, op1: B);
3192}
3193
3194impl<'a> Vcvtps2qqMaskzErEmitter<Zmm, Ymm> for Assembler<'a> {
3195 fn vcvtps2qq_maskz_er(&mut self, op0: Zmm, op1: Ymm) {
3196 self.emit(
3197 VCVTPS2QQ512RR_MASKZ_ER,
3198 op0.as_operand(),
3199 op1.as_operand(),
3200 &NOREG,
3201 &NOREG,
3202 );
3203 }
3204}
3205
3206pub trait Vcvtqq2pdEmitter<A, B> {
3223 fn vcvtqq2pd(&mut self, op0: A, op1: B);
3224}
3225
3226impl<'a> Vcvtqq2pdEmitter<Xmm, Xmm> for Assembler<'a> {
3227 fn vcvtqq2pd(&mut self, op0: Xmm, op1: Xmm) {
3228 self.emit(
3229 VCVTQQ2PD128RR,
3230 op0.as_operand(),
3231 op1.as_operand(),
3232 &NOREG,
3233 &NOREG,
3234 );
3235 }
3236}
3237
3238impl<'a> Vcvtqq2pdEmitter<Xmm, Mem> for Assembler<'a> {
3239 fn vcvtqq2pd(&mut self, op0: Xmm, op1: Mem) {
3240 self.emit(
3241 VCVTQQ2PD128RM,
3242 op0.as_operand(),
3243 op1.as_operand(),
3244 &NOREG,
3245 &NOREG,
3246 );
3247 }
3248}
3249
3250impl<'a> Vcvtqq2pdEmitter<Ymm, Ymm> for Assembler<'a> {
3251 fn vcvtqq2pd(&mut self, op0: Ymm, op1: Ymm) {
3252 self.emit(
3253 VCVTQQ2PD256RR,
3254 op0.as_operand(),
3255 op1.as_operand(),
3256 &NOREG,
3257 &NOREG,
3258 );
3259 }
3260}
3261
3262impl<'a> Vcvtqq2pdEmitter<Ymm, Mem> for Assembler<'a> {
3263 fn vcvtqq2pd(&mut self, op0: Ymm, op1: Mem) {
3264 self.emit(
3265 VCVTQQ2PD256RM,
3266 op0.as_operand(),
3267 op1.as_operand(),
3268 &NOREG,
3269 &NOREG,
3270 );
3271 }
3272}
3273
3274impl<'a> Vcvtqq2pdEmitter<Zmm, Zmm> for Assembler<'a> {
3275 fn vcvtqq2pd(&mut self, op0: Zmm, op1: Zmm) {
3276 self.emit(
3277 VCVTQQ2PD512RR,
3278 op0.as_operand(),
3279 op1.as_operand(),
3280 &NOREG,
3281 &NOREG,
3282 );
3283 }
3284}
3285
3286impl<'a> Vcvtqq2pdEmitter<Zmm, Mem> for Assembler<'a> {
3287 fn vcvtqq2pd(&mut self, op0: Zmm, op1: Mem) {
3288 self.emit(
3289 VCVTQQ2PD512RM,
3290 op0.as_operand(),
3291 op1.as_operand(),
3292 &NOREG,
3293 &NOREG,
3294 );
3295 }
3296}
3297
3298pub trait Vcvtqq2pdErEmitter<A, B> {
3310 fn vcvtqq2pd_er(&mut self, op0: A, op1: B);
3311}
3312
3313impl<'a> Vcvtqq2pdErEmitter<Zmm, Zmm> for Assembler<'a> {
3314 fn vcvtqq2pd_er(&mut self, op0: Zmm, op1: Zmm) {
3315 self.emit(
3316 VCVTQQ2PD512RR_ER,
3317 op0.as_operand(),
3318 op1.as_operand(),
3319 &NOREG,
3320 &NOREG,
3321 );
3322 }
3323}
3324
3325pub trait Vcvtqq2pdMaskEmitter<A, B> {
3342 fn vcvtqq2pd_mask(&mut self, op0: A, op1: B);
3343}
3344
3345impl<'a> Vcvtqq2pdMaskEmitter<Xmm, Xmm> for Assembler<'a> {
3346 fn vcvtqq2pd_mask(&mut self, op0: Xmm, op1: Xmm) {
3347 self.emit(
3348 VCVTQQ2PD128RR_MASK,
3349 op0.as_operand(),
3350 op1.as_operand(),
3351 &NOREG,
3352 &NOREG,
3353 );
3354 }
3355}
3356
3357impl<'a> Vcvtqq2pdMaskEmitter<Xmm, Mem> for Assembler<'a> {
3358 fn vcvtqq2pd_mask(&mut self, op0: Xmm, op1: Mem) {
3359 self.emit(
3360 VCVTQQ2PD128RM_MASK,
3361 op0.as_operand(),
3362 op1.as_operand(),
3363 &NOREG,
3364 &NOREG,
3365 );
3366 }
3367}
3368
3369impl<'a> Vcvtqq2pdMaskEmitter<Ymm, Ymm> for Assembler<'a> {
3370 fn vcvtqq2pd_mask(&mut self, op0: Ymm, op1: Ymm) {
3371 self.emit(
3372 VCVTQQ2PD256RR_MASK,
3373 op0.as_operand(),
3374 op1.as_operand(),
3375 &NOREG,
3376 &NOREG,
3377 );
3378 }
3379}
3380
3381impl<'a> Vcvtqq2pdMaskEmitter<Ymm, Mem> for Assembler<'a> {
3382 fn vcvtqq2pd_mask(&mut self, op0: Ymm, op1: Mem) {
3383 self.emit(
3384 VCVTQQ2PD256RM_MASK,
3385 op0.as_operand(),
3386 op1.as_operand(),
3387 &NOREG,
3388 &NOREG,
3389 );
3390 }
3391}
3392
3393impl<'a> Vcvtqq2pdMaskEmitter<Zmm, Zmm> for Assembler<'a> {
3394 fn vcvtqq2pd_mask(&mut self, op0: Zmm, op1: Zmm) {
3395 self.emit(
3396 VCVTQQ2PD512RR_MASK,
3397 op0.as_operand(),
3398 op1.as_operand(),
3399 &NOREG,
3400 &NOREG,
3401 );
3402 }
3403}
3404
3405impl<'a> Vcvtqq2pdMaskEmitter<Zmm, Mem> for Assembler<'a> {
3406 fn vcvtqq2pd_mask(&mut self, op0: Zmm, op1: Mem) {
3407 self.emit(
3408 VCVTQQ2PD512RM_MASK,
3409 op0.as_operand(),
3410 op1.as_operand(),
3411 &NOREG,
3412 &NOREG,
3413 );
3414 }
3415}
3416
3417pub trait Vcvtqq2pdMaskErEmitter<A, B> {
3429 fn vcvtqq2pd_mask_er(&mut self, op0: A, op1: B);
3430}
3431
3432impl<'a> Vcvtqq2pdMaskErEmitter<Zmm, Zmm> for Assembler<'a> {
3433 fn vcvtqq2pd_mask_er(&mut self, op0: Zmm, op1: Zmm) {
3434 self.emit(
3435 VCVTQQ2PD512RR_MASK_ER,
3436 op0.as_operand(),
3437 op1.as_operand(),
3438 &NOREG,
3439 &NOREG,
3440 );
3441 }
3442}
3443
3444pub trait Vcvtqq2pdMaskzEmitter<A, B> {
3461 fn vcvtqq2pd_maskz(&mut self, op0: A, op1: B);
3462}
3463
3464impl<'a> Vcvtqq2pdMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
3465 fn vcvtqq2pd_maskz(&mut self, op0: Xmm, op1: Xmm) {
3466 self.emit(
3467 VCVTQQ2PD128RR_MASKZ,
3468 op0.as_operand(),
3469 op1.as_operand(),
3470 &NOREG,
3471 &NOREG,
3472 );
3473 }
3474}
3475
3476impl<'a> Vcvtqq2pdMaskzEmitter<Xmm, Mem> for Assembler<'a> {
3477 fn vcvtqq2pd_maskz(&mut self, op0: Xmm, op1: Mem) {
3478 self.emit(
3479 VCVTQQ2PD128RM_MASKZ,
3480 op0.as_operand(),
3481 op1.as_operand(),
3482 &NOREG,
3483 &NOREG,
3484 );
3485 }
3486}
3487
3488impl<'a> Vcvtqq2pdMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
3489 fn vcvtqq2pd_maskz(&mut self, op0: Ymm, op1: Ymm) {
3490 self.emit(
3491 VCVTQQ2PD256RR_MASKZ,
3492 op0.as_operand(),
3493 op1.as_operand(),
3494 &NOREG,
3495 &NOREG,
3496 );
3497 }
3498}
3499
3500impl<'a> Vcvtqq2pdMaskzEmitter<Ymm, Mem> for Assembler<'a> {
3501 fn vcvtqq2pd_maskz(&mut self, op0: Ymm, op1: Mem) {
3502 self.emit(
3503 VCVTQQ2PD256RM_MASKZ,
3504 op0.as_operand(),
3505 op1.as_operand(),
3506 &NOREG,
3507 &NOREG,
3508 );
3509 }
3510}
3511
3512impl<'a> Vcvtqq2pdMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
3513 fn vcvtqq2pd_maskz(&mut self, op0: Zmm, op1: Zmm) {
3514 self.emit(
3515 VCVTQQ2PD512RR_MASKZ,
3516 op0.as_operand(),
3517 op1.as_operand(),
3518 &NOREG,
3519 &NOREG,
3520 );
3521 }
3522}
3523
3524impl<'a> Vcvtqq2pdMaskzEmitter<Zmm, Mem> for Assembler<'a> {
3525 fn vcvtqq2pd_maskz(&mut self, op0: Zmm, op1: Mem) {
3526 self.emit(
3527 VCVTQQ2PD512RM_MASKZ,
3528 op0.as_operand(),
3529 op1.as_operand(),
3530 &NOREG,
3531 &NOREG,
3532 );
3533 }
3534}
3535
3536pub trait Vcvtqq2pdMaskzErEmitter<A, B> {
3548 fn vcvtqq2pd_maskz_er(&mut self, op0: A, op1: B);
3549}
3550
3551impl<'a> Vcvtqq2pdMaskzErEmitter<Zmm, Zmm> for Assembler<'a> {
3552 fn vcvtqq2pd_maskz_er(&mut self, op0: Zmm, op1: Zmm) {
3553 self.emit(
3554 VCVTQQ2PD512RR_MASKZ_ER,
3555 op0.as_operand(),
3556 op1.as_operand(),
3557 &NOREG,
3558 &NOREG,
3559 );
3560 }
3561}
3562
3563pub trait Vcvtqq2psEmitter<A, B> {
3579 fn vcvtqq2ps(&mut self, op0: A, op1: B);
3580}
3581
3582impl<'a> Vcvtqq2psEmitter<Xmm, Xmm> for Assembler<'a> {
3583 fn vcvtqq2ps(&mut self, op0: Xmm, op1: Xmm) {
3584 self.emit(
3585 VCVTQQ2PS128RR,
3586 op0.as_operand(),
3587 op1.as_operand(),
3588 &NOREG,
3589 &NOREG,
3590 );
3591 }
3592}
3593
3594impl<'a> Vcvtqq2psEmitter<Xmm, Mem> for Assembler<'a> {
3595 fn vcvtqq2ps(&mut self, op0: Xmm, op1: Mem) {
3596 self.emit(
3597 VCVTQQ2PS128RM,
3598 op0.as_operand(),
3599 op1.as_operand(),
3600 &NOREG,
3601 &NOREG,
3602 );
3603 }
3604}
3605
3606impl<'a> Vcvtqq2psEmitter<Xmm, Ymm> for Assembler<'a> {
3607 fn vcvtqq2ps(&mut self, op0: Xmm, op1: Ymm) {
3608 self.emit(
3609 VCVTQQ2PS256RR,
3610 op0.as_operand(),
3611 op1.as_operand(),
3612 &NOREG,
3613 &NOREG,
3614 );
3615 }
3616}
3617
3618impl<'a> Vcvtqq2psEmitter<Ymm, Zmm> for Assembler<'a> {
3619 fn vcvtqq2ps(&mut self, op0: Ymm, op1: Zmm) {
3620 self.emit(
3621 VCVTQQ2PS512RR,
3622 op0.as_operand(),
3623 op1.as_operand(),
3624 &NOREG,
3625 &NOREG,
3626 );
3627 }
3628}
3629
3630impl<'a> Vcvtqq2psEmitter<Ymm, Mem> for Assembler<'a> {
3631 fn vcvtqq2ps(&mut self, op0: Ymm, op1: Mem) {
3632 self.emit(
3633 VCVTQQ2PS512RM,
3634 op0.as_operand(),
3635 op1.as_operand(),
3636 &NOREG,
3637 &NOREG,
3638 );
3639 }
3640}
3641
3642pub trait Vcvtqq2psErEmitter<A, B> {
3654 fn vcvtqq2ps_er(&mut self, op0: A, op1: B);
3655}
3656
3657impl<'a> Vcvtqq2psErEmitter<Ymm, Zmm> for Assembler<'a> {
3658 fn vcvtqq2ps_er(&mut self, op0: Ymm, op1: Zmm) {
3659 self.emit(
3660 VCVTQQ2PS512RR_ER,
3661 op0.as_operand(),
3662 op1.as_operand(),
3663 &NOREG,
3664 &NOREG,
3665 );
3666 }
3667}
3668
3669pub trait Vcvtqq2psMaskEmitter<A, B> {
3685 fn vcvtqq2ps_mask(&mut self, op0: A, op1: B);
3686}
3687
3688impl<'a> Vcvtqq2psMaskEmitter<Xmm, Xmm> for Assembler<'a> {
3689 fn vcvtqq2ps_mask(&mut self, op0: Xmm, op1: Xmm) {
3690 self.emit(
3691 VCVTQQ2PS128RR_MASK,
3692 op0.as_operand(),
3693 op1.as_operand(),
3694 &NOREG,
3695 &NOREG,
3696 );
3697 }
3698}
3699
3700impl<'a> Vcvtqq2psMaskEmitter<Xmm, Mem> for Assembler<'a> {
3701 fn vcvtqq2ps_mask(&mut self, op0: Xmm, op1: Mem) {
3702 self.emit(
3703 VCVTQQ2PS128RM_MASK,
3704 op0.as_operand(),
3705 op1.as_operand(),
3706 &NOREG,
3707 &NOREG,
3708 );
3709 }
3710}
3711
3712impl<'a> Vcvtqq2psMaskEmitter<Xmm, Ymm> for Assembler<'a> {
3713 fn vcvtqq2ps_mask(&mut self, op0: Xmm, op1: Ymm) {
3714 self.emit(
3715 VCVTQQ2PS256RR_MASK,
3716 op0.as_operand(),
3717 op1.as_operand(),
3718 &NOREG,
3719 &NOREG,
3720 );
3721 }
3722}
3723
3724impl<'a> Vcvtqq2psMaskEmitter<Ymm, Zmm> for Assembler<'a> {
3725 fn vcvtqq2ps_mask(&mut self, op0: Ymm, op1: Zmm) {
3726 self.emit(
3727 VCVTQQ2PS512RR_MASK,
3728 op0.as_operand(),
3729 op1.as_operand(),
3730 &NOREG,
3731 &NOREG,
3732 );
3733 }
3734}
3735
3736impl<'a> Vcvtqq2psMaskEmitter<Ymm, Mem> for Assembler<'a> {
3737 fn vcvtqq2ps_mask(&mut self, op0: Ymm, op1: Mem) {
3738 self.emit(
3739 VCVTQQ2PS512RM_MASK,
3740 op0.as_operand(),
3741 op1.as_operand(),
3742 &NOREG,
3743 &NOREG,
3744 );
3745 }
3746}
3747
3748pub trait Vcvtqq2psMaskErEmitter<A, B> {
3760 fn vcvtqq2ps_mask_er(&mut self, op0: A, op1: B);
3761}
3762
3763impl<'a> Vcvtqq2psMaskErEmitter<Ymm, Zmm> for Assembler<'a> {
3764 fn vcvtqq2ps_mask_er(&mut self, op0: Ymm, op1: Zmm) {
3765 self.emit(
3766 VCVTQQ2PS512RR_MASK_ER,
3767 op0.as_operand(),
3768 op1.as_operand(),
3769 &NOREG,
3770 &NOREG,
3771 );
3772 }
3773}
3774
3775pub trait Vcvtqq2psMaskzEmitter<A, B> {
3791 fn vcvtqq2ps_maskz(&mut self, op0: A, op1: B);
3792}
3793
3794impl<'a> Vcvtqq2psMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
3795 fn vcvtqq2ps_maskz(&mut self, op0: Xmm, op1: Xmm) {
3796 self.emit(
3797 VCVTQQ2PS128RR_MASKZ,
3798 op0.as_operand(),
3799 op1.as_operand(),
3800 &NOREG,
3801 &NOREG,
3802 );
3803 }
3804}
3805
3806impl<'a> Vcvtqq2psMaskzEmitter<Xmm, Mem> for Assembler<'a> {
3807 fn vcvtqq2ps_maskz(&mut self, op0: Xmm, op1: Mem) {
3808 self.emit(
3809 VCVTQQ2PS128RM_MASKZ,
3810 op0.as_operand(),
3811 op1.as_operand(),
3812 &NOREG,
3813 &NOREG,
3814 );
3815 }
3816}
3817
3818impl<'a> Vcvtqq2psMaskzEmitter<Xmm, Ymm> for Assembler<'a> {
3819 fn vcvtqq2ps_maskz(&mut self, op0: Xmm, op1: Ymm) {
3820 self.emit(
3821 VCVTQQ2PS256RR_MASKZ,
3822 op0.as_operand(),
3823 op1.as_operand(),
3824 &NOREG,
3825 &NOREG,
3826 );
3827 }
3828}
3829
3830impl<'a> Vcvtqq2psMaskzEmitter<Ymm, Zmm> for Assembler<'a> {
3831 fn vcvtqq2ps_maskz(&mut self, op0: Ymm, op1: Zmm) {
3832 self.emit(
3833 VCVTQQ2PS512RR_MASKZ,
3834 op0.as_operand(),
3835 op1.as_operand(),
3836 &NOREG,
3837 &NOREG,
3838 );
3839 }
3840}
3841
3842impl<'a> Vcvtqq2psMaskzEmitter<Ymm, Mem> for Assembler<'a> {
3843 fn vcvtqq2ps_maskz(&mut self, op0: Ymm, op1: Mem) {
3844 self.emit(
3845 VCVTQQ2PS512RM_MASKZ,
3846 op0.as_operand(),
3847 op1.as_operand(),
3848 &NOREG,
3849 &NOREG,
3850 );
3851 }
3852}
3853
3854pub trait Vcvtqq2psMaskzErEmitter<A, B> {
3866 fn vcvtqq2ps_maskz_er(&mut self, op0: A, op1: B);
3867}
3868
3869impl<'a> Vcvtqq2psMaskzErEmitter<Ymm, Zmm> for Assembler<'a> {
3870 fn vcvtqq2ps_maskz_er(&mut self, op0: Ymm, op1: Zmm) {
3871 self.emit(
3872 VCVTQQ2PS512RR_MASKZ_ER,
3873 op0.as_operand(),
3874 op1.as_operand(),
3875 &NOREG,
3876 &NOREG,
3877 );
3878 }
3879}
3880
3881pub trait Vcvttpd2qqEmitter<A, B> {
3898 fn vcvttpd2qq(&mut self, op0: A, op1: B);
3899}
3900
3901impl<'a> Vcvttpd2qqEmitter<Xmm, Xmm> for Assembler<'a> {
3902 fn vcvttpd2qq(&mut self, op0: Xmm, op1: Xmm) {
3903 self.emit(
3904 VCVTTPD2QQ128RR,
3905 op0.as_operand(),
3906 op1.as_operand(),
3907 &NOREG,
3908 &NOREG,
3909 );
3910 }
3911}
3912
3913impl<'a> Vcvttpd2qqEmitter<Xmm, Mem> for Assembler<'a> {
3914 fn vcvttpd2qq(&mut self, op0: Xmm, op1: Mem) {
3915 self.emit(
3916 VCVTTPD2QQ128RM,
3917 op0.as_operand(),
3918 op1.as_operand(),
3919 &NOREG,
3920 &NOREG,
3921 );
3922 }
3923}
3924
3925impl<'a> Vcvttpd2qqEmitter<Ymm, Ymm> for Assembler<'a> {
3926 fn vcvttpd2qq(&mut self, op0: Ymm, op1: Ymm) {
3927 self.emit(
3928 VCVTTPD2QQ256RR,
3929 op0.as_operand(),
3930 op1.as_operand(),
3931 &NOREG,
3932 &NOREG,
3933 );
3934 }
3935}
3936
3937impl<'a> Vcvttpd2qqEmitter<Ymm, Mem> for Assembler<'a> {
3938 fn vcvttpd2qq(&mut self, op0: Ymm, op1: Mem) {
3939 self.emit(
3940 VCVTTPD2QQ256RM,
3941 op0.as_operand(),
3942 op1.as_operand(),
3943 &NOREG,
3944 &NOREG,
3945 );
3946 }
3947}
3948
3949impl<'a> Vcvttpd2qqEmitter<Zmm, Zmm> for Assembler<'a> {
3950 fn vcvttpd2qq(&mut self, op0: Zmm, op1: Zmm) {
3951 self.emit(
3952 VCVTTPD2QQ512RR,
3953 op0.as_operand(),
3954 op1.as_operand(),
3955 &NOREG,
3956 &NOREG,
3957 );
3958 }
3959}
3960
3961impl<'a> Vcvttpd2qqEmitter<Zmm, Mem> for Assembler<'a> {
3962 fn vcvttpd2qq(&mut self, op0: Zmm, op1: Mem) {
3963 self.emit(
3964 VCVTTPD2QQ512RM,
3965 op0.as_operand(),
3966 op1.as_operand(),
3967 &NOREG,
3968 &NOREG,
3969 );
3970 }
3971}
3972
3973pub trait Vcvttpd2qqMaskEmitter<A, B> {
3990 fn vcvttpd2qq_mask(&mut self, op0: A, op1: B);
3991}
3992
3993impl<'a> Vcvttpd2qqMaskEmitter<Xmm, Xmm> for Assembler<'a> {
3994 fn vcvttpd2qq_mask(&mut self, op0: Xmm, op1: Xmm) {
3995 self.emit(
3996 VCVTTPD2QQ128RR_MASK,
3997 op0.as_operand(),
3998 op1.as_operand(),
3999 &NOREG,
4000 &NOREG,
4001 );
4002 }
4003}
4004
4005impl<'a> Vcvttpd2qqMaskEmitter<Xmm, Mem> for Assembler<'a> {
4006 fn vcvttpd2qq_mask(&mut self, op0: Xmm, op1: Mem) {
4007 self.emit(
4008 VCVTTPD2QQ128RM_MASK,
4009 op0.as_operand(),
4010 op1.as_operand(),
4011 &NOREG,
4012 &NOREG,
4013 );
4014 }
4015}
4016
4017impl<'a> Vcvttpd2qqMaskEmitter<Ymm, Ymm> for Assembler<'a> {
4018 fn vcvttpd2qq_mask(&mut self, op0: Ymm, op1: Ymm) {
4019 self.emit(
4020 VCVTTPD2QQ256RR_MASK,
4021 op0.as_operand(),
4022 op1.as_operand(),
4023 &NOREG,
4024 &NOREG,
4025 );
4026 }
4027}
4028
4029impl<'a> Vcvttpd2qqMaskEmitter<Ymm, Mem> for Assembler<'a> {
4030 fn vcvttpd2qq_mask(&mut self, op0: Ymm, op1: Mem) {
4031 self.emit(
4032 VCVTTPD2QQ256RM_MASK,
4033 op0.as_operand(),
4034 op1.as_operand(),
4035 &NOREG,
4036 &NOREG,
4037 );
4038 }
4039}
4040
4041impl<'a> Vcvttpd2qqMaskEmitter<Zmm, Zmm> for Assembler<'a> {
4042 fn vcvttpd2qq_mask(&mut self, op0: Zmm, op1: Zmm) {
4043 self.emit(
4044 VCVTTPD2QQ512RR_MASK,
4045 op0.as_operand(),
4046 op1.as_operand(),
4047 &NOREG,
4048 &NOREG,
4049 );
4050 }
4051}
4052
4053impl<'a> Vcvttpd2qqMaskEmitter<Zmm, Mem> for Assembler<'a> {
4054 fn vcvttpd2qq_mask(&mut self, op0: Zmm, op1: Mem) {
4055 self.emit(
4056 VCVTTPD2QQ512RM_MASK,
4057 op0.as_operand(),
4058 op1.as_operand(),
4059 &NOREG,
4060 &NOREG,
4061 );
4062 }
4063}
4064
4065pub trait Vcvttpd2qqMaskSaeEmitter<A, B> {
4077 fn vcvttpd2qq_mask_sae(&mut self, op0: A, op1: B);
4078}
4079
4080impl<'a> Vcvttpd2qqMaskSaeEmitter<Zmm, Zmm> for Assembler<'a> {
4081 fn vcvttpd2qq_mask_sae(&mut self, op0: Zmm, op1: Zmm) {
4082 self.emit(
4083 VCVTTPD2QQ512RR_MASK_SAE,
4084 op0.as_operand(),
4085 op1.as_operand(),
4086 &NOREG,
4087 &NOREG,
4088 );
4089 }
4090}
4091
4092pub trait Vcvttpd2qqMaskzEmitter<A, B> {
4109 fn vcvttpd2qq_maskz(&mut self, op0: A, op1: B);
4110}
4111
4112impl<'a> Vcvttpd2qqMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
4113 fn vcvttpd2qq_maskz(&mut self, op0: Xmm, op1: Xmm) {
4114 self.emit(
4115 VCVTTPD2QQ128RR_MASKZ,
4116 op0.as_operand(),
4117 op1.as_operand(),
4118 &NOREG,
4119 &NOREG,
4120 );
4121 }
4122}
4123
4124impl<'a> Vcvttpd2qqMaskzEmitter<Xmm, Mem> for Assembler<'a> {
4125 fn vcvttpd2qq_maskz(&mut self, op0: Xmm, op1: Mem) {
4126 self.emit(
4127 VCVTTPD2QQ128RM_MASKZ,
4128 op0.as_operand(),
4129 op1.as_operand(),
4130 &NOREG,
4131 &NOREG,
4132 );
4133 }
4134}
4135
4136impl<'a> Vcvttpd2qqMaskzEmitter<Ymm, Ymm> for Assembler<'a> {
4137 fn vcvttpd2qq_maskz(&mut self, op0: Ymm, op1: Ymm) {
4138 self.emit(
4139 VCVTTPD2QQ256RR_MASKZ,
4140 op0.as_operand(),
4141 op1.as_operand(),
4142 &NOREG,
4143 &NOREG,
4144 );
4145 }
4146}
4147
4148impl<'a> Vcvttpd2qqMaskzEmitter<Ymm, Mem> for Assembler<'a> {
4149 fn vcvttpd2qq_maskz(&mut self, op0: Ymm, op1: Mem) {
4150 self.emit(
4151 VCVTTPD2QQ256RM_MASKZ,
4152 op0.as_operand(),
4153 op1.as_operand(),
4154 &NOREG,
4155 &NOREG,
4156 );
4157 }
4158}
4159
4160impl<'a> Vcvttpd2qqMaskzEmitter<Zmm, Zmm> for Assembler<'a> {
4161 fn vcvttpd2qq_maskz(&mut self, op0: Zmm, op1: Zmm) {
4162 self.emit(
4163 VCVTTPD2QQ512RR_MASKZ,
4164 op0.as_operand(),
4165 op1.as_operand(),
4166 &NOREG,
4167 &NOREG,
4168 );
4169 }
4170}
4171
4172impl<'a> Vcvttpd2qqMaskzEmitter<Zmm, Mem> for Assembler<'a> {
4173 fn vcvttpd2qq_maskz(&mut self, op0: Zmm, op1: Mem) {
4174 self.emit(
4175 VCVTTPD2QQ512RM_MASKZ,
4176 op0.as_operand(),
4177 op1.as_operand(),
4178 &NOREG,
4179 &NOREG,
4180 );
4181 }
4182}
4183
4184pub trait Vcvttpd2qqMaskzSaeEmitter<A, B> {
4196 fn vcvttpd2qq_maskz_sae(&mut self, op0: A, op1: B);
4197}
4198
4199impl<'a> Vcvttpd2qqMaskzSaeEmitter<Zmm, Zmm> for Assembler<'a> {
4200 fn vcvttpd2qq_maskz_sae(&mut self, op0: Zmm, op1: Zmm) {
4201 self.emit(
4202 VCVTTPD2QQ512RR_MASKZ_SAE,
4203 op0.as_operand(),
4204 op1.as_operand(),
4205 &NOREG,
4206 &NOREG,
4207 );
4208 }
4209}
4210
4211pub trait Vcvttpd2qqSaeEmitter<A, B> {
4223 fn vcvttpd2qq_sae(&mut self, op0: A, op1: B);
4224}
4225
4226impl<'a> Vcvttpd2qqSaeEmitter<Zmm, Zmm> for Assembler<'a> {
4227 fn vcvttpd2qq_sae(&mut self, op0: Zmm, op1: Zmm) {
4228 self.emit(
4229 VCVTTPD2QQ512RR_SAE,
4230 op0.as_operand(),
4231 op1.as_operand(),
4232 &NOREG,
4233 &NOREG,
4234 );
4235 }
4236}
4237
4238pub trait Vcvttps2qqEmitter<A, B> {
4255 fn vcvttps2qq(&mut self, op0: A, op1: B);
4256}
4257
4258impl<'a> Vcvttps2qqEmitter<Xmm, Xmm> for Assembler<'a> {
4259 fn vcvttps2qq(&mut self, op0: Xmm, op1: Xmm) {
4260 self.emit(
4261 VCVTTPS2QQ128RR,
4262 op0.as_operand(),
4263 op1.as_operand(),
4264 &NOREG,
4265 &NOREG,
4266 );
4267 }
4268}
4269
4270impl<'a> Vcvttps2qqEmitter<Xmm, Mem> for Assembler<'a> {
4271 fn vcvttps2qq(&mut self, op0: Xmm, op1: Mem) {
4272 self.emit(
4273 VCVTTPS2QQ128RM,
4274 op0.as_operand(),
4275 op1.as_operand(),
4276 &NOREG,
4277 &NOREG,
4278 );
4279 }
4280}
4281
4282impl<'a> Vcvttps2qqEmitter<Ymm, Xmm> for Assembler<'a> {
4283 fn vcvttps2qq(&mut self, op0: Ymm, op1: Xmm) {
4284 self.emit(
4285 VCVTTPS2QQ256RR,
4286 op0.as_operand(),
4287 op1.as_operand(),
4288 &NOREG,
4289 &NOREG,
4290 );
4291 }
4292}
4293
4294impl<'a> Vcvttps2qqEmitter<Ymm, Mem> for Assembler<'a> {
4295 fn vcvttps2qq(&mut self, op0: Ymm, op1: Mem) {
4296 self.emit(
4297 VCVTTPS2QQ256RM,
4298 op0.as_operand(),
4299 op1.as_operand(),
4300 &NOREG,
4301 &NOREG,
4302 );
4303 }
4304}
4305
4306impl<'a> Vcvttps2qqEmitter<Zmm, Ymm> for Assembler<'a> {
4307 fn vcvttps2qq(&mut self, op0: Zmm, op1: Ymm) {
4308 self.emit(
4309 VCVTTPS2QQ512RR,
4310 op0.as_operand(),
4311 op1.as_operand(),
4312 &NOREG,
4313 &NOREG,
4314 );
4315 }
4316}
4317
4318impl<'a> Vcvttps2qqEmitter<Zmm, Mem> for Assembler<'a> {
4319 fn vcvttps2qq(&mut self, op0: Zmm, op1: Mem) {
4320 self.emit(
4321 VCVTTPS2QQ512RM,
4322 op0.as_operand(),
4323 op1.as_operand(),
4324 &NOREG,
4325 &NOREG,
4326 );
4327 }
4328}
4329
4330pub trait Vcvttps2qqMaskEmitter<A, B> {
4347 fn vcvttps2qq_mask(&mut self, op0: A, op1: B);
4348}
4349
4350impl<'a> Vcvttps2qqMaskEmitter<Xmm, Xmm> for Assembler<'a> {
4351 fn vcvttps2qq_mask(&mut self, op0: Xmm, op1: Xmm) {
4352 self.emit(
4353 VCVTTPS2QQ128RR_MASK,
4354 op0.as_operand(),
4355 op1.as_operand(),
4356 &NOREG,
4357 &NOREG,
4358 );
4359 }
4360}
4361
4362impl<'a> Vcvttps2qqMaskEmitter<Xmm, Mem> for Assembler<'a> {
4363 fn vcvttps2qq_mask(&mut self, op0: Xmm, op1: Mem) {
4364 self.emit(
4365 VCVTTPS2QQ128RM_MASK,
4366 op0.as_operand(),
4367 op1.as_operand(),
4368 &NOREG,
4369 &NOREG,
4370 );
4371 }
4372}
4373
4374impl<'a> Vcvttps2qqMaskEmitter<Ymm, Xmm> for Assembler<'a> {
4375 fn vcvttps2qq_mask(&mut self, op0: Ymm, op1: Xmm) {
4376 self.emit(
4377 VCVTTPS2QQ256RR_MASK,
4378 op0.as_operand(),
4379 op1.as_operand(),
4380 &NOREG,
4381 &NOREG,
4382 );
4383 }
4384}
4385
4386impl<'a> Vcvttps2qqMaskEmitter<Ymm, Mem> for Assembler<'a> {
4387 fn vcvttps2qq_mask(&mut self, op0: Ymm, op1: Mem) {
4388 self.emit(
4389 VCVTTPS2QQ256RM_MASK,
4390 op0.as_operand(),
4391 op1.as_operand(),
4392 &NOREG,
4393 &NOREG,
4394 );
4395 }
4396}
4397
4398impl<'a> Vcvttps2qqMaskEmitter<Zmm, Ymm> for Assembler<'a> {
4399 fn vcvttps2qq_mask(&mut self, op0: Zmm, op1: Ymm) {
4400 self.emit(
4401 VCVTTPS2QQ512RR_MASK,
4402 op0.as_operand(),
4403 op1.as_operand(),
4404 &NOREG,
4405 &NOREG,
4406 );
4407 }
4408}
4409
4410impl<'a> Vcvttps2qqMaskEmitter<Zmm, Mem> for Assembler<'a> {
4411 fn vcvttps2qq_mask(&mut self, op0: Zmm, op1: Mem) {
4412 self.emit(
4413 VCVTTPS2QQ512RM_MASK,
4414 op0.as_operand(),
4415 op1.as_operand(),
4416 &NOREG,
4417 &NOREG,
4418 );
4419 }
4420}
4421
4422pub trait Vcvttps2qqMaskSaeEmitter<A, B> {
4434 fn vcvttps2qq_mask_sae(&mut self, op0: A, op1: B);
4435}
4436
4437impl<'a> Vcvttps2qqMaskSaeEmitter<Zmm, Ymm> for Assembler<'a> {
4438 fn vcvttps2qq_mask_sae(&mut self, op0: Zmm, op1: Ymm) {
4439 self.emit(
4440 VCVTTPS2QQ512RR_MASK_SAE,
4441 op0.as_operand(),
4442 op1.as_operand(),
4443 &NOREG,
4444 &NOREG,
4445 );
4446 }
4447}
4448
4449pub trait Vcvttps2qqMaskzEmitter<A, B> {
4466 fn vcvttps2qq_maskz(&mut self, op0: A, op1: B);
4467}
4468
4469impl<'a> Vcvttps2qqMaskzEmitter<Xmm, Xmm> for Assembler<'a> {
4470 fn vcvttps2qq_maskz(&mut self, op0: Xmm, op1: Xmm) {
4471 self.emit(
4472 VCVTTPS2QQ128RR_MASKZ,
4473 op0.as_operand(),
4474 op1.as_operand(),
4475 &NOREG,
4476 &NOREG,
4477 );
4478 }
4479}
4480
4481impl<'a> Vcvttps2qqMaskzEmitter<Xmm, Mem> for Assembler<'a> {
4482 fn vcvttps2qq_maskz(&mut self, op0: Xmm, op1: Mem) {
4483 self.emit(
4484 VCVTTPS2QQ128RM_MASKZ,
4485 op0.as_operand(),
4486 op1.as_operand(),
4487 &NOREG,
4488 &NOREG,
4489 );
4490 }
4491}
4492
4493impl<'a> Vcvttps2qqMaskzEmitter<Ymm, Xmm> for Assembler<'a> {
4494 fn vcvttps2qq_maskz(&mut self, op0: Ymm, op1: Xmm) {
4495 self.emit(
4496 VCVTTPS2QQ256RR_MASKZ,
4497 op0.as_operand(),
4498 op1.as_operand(),
4499 &NOREG,
4500 &NOREG,
4501 );
4502 }
4503}
4504
4505impl<'a> Vcvttps2qqMaskzEmitter<Ymm, Mem> for Assembler<'a> {
4506 fn vcvttps2qq_maskz(&mut self, op0: Ymm, op1: Mem) {
4507 self.emit(
4508 VCVTTPS2QQ256RM_MASKZ,
4509 op0.as_operand(),
4510 op1.as_operand(),
4511 &NOREG,
4512 &NOREG,
4513 );
4514 }
4515}
4516
4517impl<'a> Vcvttps2qqMaskzEmitter<Zmm, Ymm> for Assembler<'a> {
4518 fn vcvttps2qq_maskz(&mut self, op0: Zmm, op1: Ymm) {
4519 self.emit(
4520 VCVTTPS2QQ512RR_MASKZ,
4521 op0.as_operand(),
4522 op1.as_operand(),
4523 &NOREG,
4524 &NOREG,
4525 );
4526 }
4527}
4528
4529impl<'a> Vcvttps2qqMaskzEmitter<Zmm, Mem> for Assembler<'a> {
4530 fn vcvttps2qq_maskz(&mut self, op0: Zmm, op1: Mem) {
4531 self.emit(
4532 VCVTTPS2QQ512RM_MASKZ,
4533 op0.as_operand(),
4534 op1.as_operand(),
4535 &NOREG,
4536 &NOREG,
4537 );
4538 }
4539}
4540
4541pub trait Vcvttps2qqMaskzSaeEmitter<A, B> {
4553 fn vcvttps2qq_maskz_sae(&mut self, op0: A, op1: B);
4554}
4555
4556impl<'a> Vcvttps2qqMaskzSaeEmitter<Zmm, Ymm> for Assembler<'a> {
4557 fn vcvttps2qq_maskz_sae(&mut self, op0: Zmm, op1: Ymm) {
4558 self.emit(
4559 VCVTTPS2QQ512RR_MASKZ_SAE,
4560 op0.as_operand(),
4561 op1.as_operand(),
4562 &NOREG,
4563 &NOREG,
4564 );
4565 }
4566}
4567
4568pub trait Vcvttps2qqSaeEmitter<A, B> {
4580 fn vcvttps2qq_sae(&mut self, op0: A, op1: B);
4581}
4582
4583impl<'a> Vcvttps2qqSaeEmitter<Zmm, Ymm> for Assembler<'a> {
4584 fn vcvttps2qq_sae(&mut self, op0: Zmm, op1: Ymm) {
4585 self.emit(
4586 VCVTTPS2QQ512RR_SAE,
4587 op0.as_operand(),
4588 op1.as_operand(),
4589 &NOREG,
4590 &NOREG,
4591 );
4592 }
4593}
4594
4595pub trait VfpclasspdEmitter<A, B, C> {
4610 fn vfpclasspd(&mut self, op0: A, op1: B, op2: C);
4611}
4612
4613impl<'a> VfpclasspdEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4614 fn vfpclasspd(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4615 self.emit(
4616 VFPCLASSPD128KRI,
4617 op0.as_operand(),
4618 op1.as_operand(),
4619 op2.as_operand(),
4620 &NOREG,
4621 );
4622 }
4623}
4624
4625impl<'a> VfpclasspdEmitter<KReg, Mem, Imm> for Assembler<'a> {
4626 fn vfpclasspd(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4627 self.emit(
4628 VFPCLASSPD128KMI,
4629 op0.as_operand(),
4630 op1.as_operand(),
4631 op2.as_operand(),
4632 &NOREG,
4633 );
4634 }
4635}
4636
4637impl<'a> VfpclasspdEmitter<KReg, Ymm, Imm> for Assembler<'a> {
4638 fn vfpclasspd(&mut self, op0: KReg, op1: Ymm, op2: Imm) {
4639 self.emit(
4640 VFPCLASSPD256KRI,
4641 op0.as_operand(),
4642 op1.as_operand(),
4643 op2.as_operand(),
4644 &NOREG,
4645 );
4646 }
4647}
4648
4649impl<'a> VfpclasspdEmitter<KReg, Zmm, Imm> for Assembler<'a> {
4650 fn vfpclasspd(&mut self, op0: KReg, op1: Zmm, op2: Imm) {
4651 self.emit(
4652 VFPCLASSPD512KRI,
4653 op0.as_operand(),
4654 op1.as_operand(),
4655 op2.as_operand(),
4656 &NOREG,
4657 );
4658 }
4659}
4660
4661pub trait VfpclasspdMaskEmitter<A, B, C> {
4676 fn vfpclasspd_mask(&mut self, op0: A, op1: B, op2: C);
4677}
4678
4679impl<'a> VfpclasspdMaskEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4680 fn vfpclasspd_mask(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4681 self.emit(
4682 VFPCLASSPD128KRI_MASK,
4683 op0.as_operand(),
4684 op1.as_operand(),
4685 op2.as_operand(),
4686 &NOREG,
4687 );
4688 }
4689}
4690
4691impl<'a> VfpclasspdMaskEmitter<KReg, Mem, Imm> for Assembler<'a> {
4692 fn vfpclasspd_mask(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4693 self.emit(
4694 VFPCLASSPD128KMI_MASK,
4695 op0.as_operand(),
4696 op1.as_operand(),
4697 op2.as_operand(),
4698 &NOREG,
4699 );
4700 }
4701}
4702
4703impl<'a> VfpclasspdMaskEmitter<KReg, Ymm, Imm> for Assembler<'a> {
4704 fn vfpclasspd_mask(&mut self, op0: KReg, op1: Ymm, op2: Imm) {
4705 self.emit(
4706 VFPCLASSPD256KRI_MASK,
4707 op0.as_operand(),
4708 op1.as_operand(),
4709 op2.as_operand(),
4710 &NOREG,
4711 );
4712 }
4713}
4714
4715impl<'a> VfpclasspdMaskEmitter<KReg, Zmm, Imm> for Assembler<'a> {
4716 fn vfpclasspd_mask(&mut self, op0: KReg, op1: Zmm, op2: Imm) {
4717 self.emit(
4718 VFPCLASSPD512KRI_MASK,
4719 op0.as_operand(),
4720 op1.as_operand(),
4721 op2.as_operand(),
4722 &NOREG,
4723 );
4724 }
4725}
4726
4727pub trait VfpclasspsEmitter<A, B, C> {
4742 fn vfpclassps(&mut self, op0: A, op1: B, op2: C);
4743}
4744
4745impl<'a> VfpclasspsEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4746 fn vfpclassps(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4747 self.emit(
4748 VFPCLASSPS128KRI,
4749 op0.as_operand(),
4750 op1.as_operand(),
4751 op2.as_operand(),
4752 &NOREG,
4753 );
4754 }
4755}
4756
4757impl<'a> VfpclasspsEmitter<KReg, Mem, Imm> for Assembler<'a> {
4758 fn vfpclassps(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4759 self.emit(
4760 VFPCLASSPS128KMI,
4761 op0.as_operand(),
4762 op1.as_operand(),
4763 op2.as_operand(),
4764 &NOREG,
4765 );
4766 }
4767}
4768
4769impl<'a> VfpclasspsEmitter<KReg, Ymm, Imm> for Assembler<'a> {
4770 fn vfpclassps(&mut self, op0: KReg, op1: Ymm, op2: Imm) {
4771 self.emit(
4772 VFPCLASSPS256KRI,
4773 op0.as_operand(),
4774 op1.as_operand(),
4775 op2.as_operand(),
4776 &NOREG,
4777 );
4778 }
4779}
4780
4781impl<'a> VfpclasspsEmitter<KReg, Zmm, Imm> for Assembler<'a> {
4782 fn vfpclassps(&mut self, op0: KReg, op1: Zmm, op2: Imm) {
4783 self.emit(
4784 VFPCLASSPS512KRI,
4785 op0.as_operand(),
4786 op1.as_operand(),
4787 op2.as_operand(),
4788 &NOREG,
4789 );
4790 }
4791}
4792
4793pub trait VfpclasspsMaskEmitter<A, B, C> {
4808 fn vfpclassps_mask(&mut self, op0: A, op1: B, op2: C);
4809}
4810
4811impl<'a> VfpclasspsMaskEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4812 fn vfpclassps_mask(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4813 self.emit(
4814 VFPCLASSPS128KRI_MASK,
4815 op0.as_operand(),
4816 op1.as_operand(),
4817 op2.as_operand(),
4818 &NOREG,
4819 );
4820 }
4821}
4822
4823impl<'a> VfpclasspsMaskEmitter<KReg, Mem, Imm> for Assembler<'a> {
4824 fn vfpclassps_mask(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4825 self.emit(
4826 VFPCLASSPS128KMI_MASK,
4827 op0.as_operand(),
4828 op1.as_operand(),
4829 op2.as_operand(),
4830 &NOREG,
4831 );
4832 }
4833}
4834
4835impl<'a> VfpclasspsMaskEmitter<KReg, Ymm, Imm> for Assembler<'a> {
4836 fn vfpclassps_mask(&mut self, op0: KReg, op1: Ymm, op2: Imm) {
4837 self.emit(
4838 VFPCLASSPS256KRI_MASK,
4839 op0.as_operand(),
4840 op1.as_operand(),
4841 op2.as_operand(),
4842 &NOREG,
4843 );
4844 }
4845}
4846
4847impl<'a> VfpclasspsMaskEmitter<KReg, Zmm, Imm> for Assembler<'a> {
4848 fn vfpclassps_mask(&mut self, op0: KReg, op1: Zmm, op2: Imm) {
4849 self.emit(
4850 VFPCLASSPS512KRI_MASK,
4851 op0.as_operand(),
4852 op1.as_operand(),
4853 op2.as_operand(),
4854 &NOREG,
4855 );
4856 }
4857}
4858
4859pub trait VfpclasssdEmitter<A, B, C> {
4872 fn vfpclasssd(&mut self, op0: A, op1: B, op2: C);
4873}
4874
4875impl<'a> VfpclasssdEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4876 fn vfpclasssd(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4877 self.emit(
4878 VFPCLASSSDKRI,
4879 op0.as_operand(),
4880 op1.as_operand(),
4881 op2.as_operand(),
4882 &NOREG,
4883 );
4884 }
4885}
4886
4887impl<'a> VfpclasssdEmitter<KReg, Mem, Imm> for Assembler<'a> {
4888 fn vfpclasssd(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4889 self.emit(
4890 VFPCLASSSDKMI,
4891 op0.as_operand(),
4892 op1.as_operand(),
4893 op2.as_operand(),
4894 &NOREG,
4895 );
4896 }
4897}
4898
4899pub trait VfpclasssdMaskEmitter<A, B, C> {
4912 fn vfpclasssd_mask(&mut self, op0: A, op1: B, op2: C);
4913}
4914
4915impl<'a> VfpclasssdMaskEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4916 fn vfpclasssd_mask(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4917 self.emit(
4918 VFPCLASSSDKRI_MASK,
4919 op0.as_operand(),
4920 op1.as_operand(),
4921 op2.as_operand(),
4922 &NOREG,
4923 );
4924 }
4925}
4926
4927impl<'a> VfpclasssdMaskEmitter<KReg, Mem, Imm> for Assembler<'a> {
4928 fn vfpclasssd_mask(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4929 self.emit(
4930 VFPCLASSSDKMI_MASK,
4931 op0.as_operand(),
4932 op1.as_operand(),
4933 op2.as_operand(),
4934 &NOREG,
4935 );
4936 }
4937}
4938
4939pub trait VfpclassssEmitter<A, B, C> {
4952 fn vfpclassss(&mut self, op0: A, op1: B, op2: C);
4953}
4954
4955impl<'a> VfpclassssEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4956 fn vfpclassss(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4957 self.emit(
4958 VFPCLASSSSKRI,
4959 op0.as_operand(),
4960 op1.as_operand(),
4961 op2.as_operand(),
4962 &NOREG,
4963 );
4964 }
4965}
4966
4967impl<'a> VfpclassssEmitter<KReg, Mem, Imm> for Assembler<'a> {
4968 fn vfpclassss(&mut self, op0: KReg, op1: Mem, op2: Imm) {
4969 self.emit(
4970 VFPCLASSSSKMI,
4971 op0.as_operand(),
4972 op1.as_operand(),
4973 op2.as_operand(),
4974 &NOREG,
4975 );
4976 }
4977}
4978
4979pub trait VfpclassssMaskEmitter<A, B, C> {
4992 fn vfpclassss_mask(&mut self, op0: A, op1: B, op2: C);
4993}
4994
4995impl<'a> VfpclassssMaskEmitter<KReg, Xmm, Imm> for Assembler<'a> {
4996 fn vfpclassss_mask(&mut self, op0: KReg, op1: Xmm, op2: Imm) {
4997 self.emit(
4998 VFPCLASSSSKRI_MASK,
4999 op0.as_operand(),
5000 op1.as_operand(),
5001 op2.as_operand(),
5002 &NOREG,
5003 );
5004 }
5005}
5006
5007impl<'a> VfpclassssMaskEmitter<KReg, Mem, Imm> for Assembler<'a> {
5008 fn vfpclassss_mask(&mut self, op0: KReg, op1: Mem, op2: Imm) {
5009 self.emit(
5010 VFPCLASSSSKMI_MASK,
5011 op0.as_operand(),
5012 op1.as_operand(),
5013 op2.as_operand(),
5014 &NOREG,
5015 );
5016 }
5017}
5018
5019pub trait Vinsertf32x8Emitter<A, B, C, D> {
5032 fn vinsertf32x8(&mut self, op0: A, op1: B, op2: C, op3: D);
5033}
5034
5035impl<'a> Vinsertf32x8Emitter<Zmm, Zmm, Ymm, Imm> for Assembler<'a> {
5036 fn vinsertf32x8(&mut self, op0: Zmm, op1: Zmm, op2: Ymm, op3: Imm) {
5037 self.emit(
5038 VINSERTF32X8_512RRRI,
5039 op0.as_operand(),
5040 op1.as_operand(),
5041 op2.as_operand(),
5042 op3.as_operand(),
5043 );
5044 }
5045}
5046
5047impl<'a> Vinsertf32x8Emitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5048 fn vinsertf32x8(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5049 self.emit(
5050 VINSERTF32X8_512RRMI,
5051 op0.as_operand(),
5052 op1.as_operand(),
5053 op2.as_operand(),
5054 op3.as_operand(),
5055 );
5056 }
5057}
5058
5059pub trait Vinsertf32x8MaskEmitter<A, B, C, D> {
5072 fn vinsertf32x8_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
5073}
5074
5075impl<'a> Vinsertf32x8MaskEmitter<Zmm, Zmm, Ymm, Imm> for Assembler<'a> {
5076 fn vinsertf32x8_mask(&mut self, op0: Zmm, op1: Zmm, op2: Ymm, op3: Imm) {
5077 self.emit(
5078 VINSERTF32X8_512RRRI_MASK,
5079 op0.as_operand(),
5080 op1.as_operand(),
5081 op2.as_operand(),
5082 op3.as_operand(),
5083 );
5084 }
5085}
5086
5087impl<'a> Vinsertf32x8MaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5088 fn vinsertf32x8_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5089 self.emit(
5090 VINSERTF32X8_512RRMI_MASK,
5091 op0.as_operand(),
5092 op1.as_operand(),
5093 op2.as_operand(),
5094 op3.as_operand(),
5095 );
5096 }
5097}
5098
5099pub trait Vinsertf32x8MaskzEmitter<A, B, C, D> {
5112 fn vinsertf32x8_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
5113}
5114
5115impl<'a> Vinsertf32x8MaskzEmitter<Zmm, Zmm, Ymm, Imm> for Assembler<'a> {
5116 fn vinsertf32x8_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Ymm, op3: Imm) {
5117 self.emit(
5118 VINSERTF32X8_512RRRI_MASKZ,
5119 op0.as_operand(),
5120 op1.as_operand(),
5121 op2.as_operand(),
5122 op3.as_operand(),
5123 );
5124 }
5125}
5126
5127impl<'a> Vinsertf32x8MaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5128 fn vinsertf32x8_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5129 self.emit(
5130 VINSERTF32X8_512RRMI_MASKZ,
5131 op0.as_operand(),
5132 op1.as_operand(),
5133 op2.as_operand(),
5134 op3.as_operand(),
5135 );
5136 }
5137}
5138
5139pub trait Vinsertf64x2Emitter<A, B, C, D> {
5154 fn vinsertf64x2(&mut self, op0: A, op1: B, op2: C, op3: D);
5155}
5156
5157impl<'a> Vinsertf64x2Emitter<Ymm, Ymm, Xmm, Imm> for Assembler<'a> {
5158 fn vinsertf64x2(&mut self, op0: Ymm, op1: Ymm, op2: Xmm, op3: Imm) {
5159 self.emit(
5160 VINSERTF64X2_256RRRI,
5161 op0.as_operand(),
5162 op1.as_operand(),
5163 op2.as_operand(),
5164 op3.as_operand(),
5165 );
5166 }
5167}
5168
5169impl<'a> Vinsertf64x2Emitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5170 fn vinsertf64x2(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5171 self.emit(
5172 VINSERTF64X2_256RRMI,
5173 op0.as_operand(),
5174 op1.as_operand(),
5175 op2.as_operand(),
5176 op3.as_operand(),
5177 );
5178 }
5179}
5180
5181impl<'a> Vinsertf64x2Emitter<Zmm, Zmm, Xmm, Imm> for Assembler<'a> {
5182 fn vinsertf64x2(&mut self, op0: Zmm, op1: Zmm, op2: Xmm, op3: Imm) {
5183 self.emit(
5184 VINSERTF64X2_512RRRI,
5185 op0.as_operand(),
5186 op1.as_operand(),
5187 op2.as_operand(),
5188 op3.as_operand(),
5189 );
5190 }
5191}
5192
5193impl<'a> Vinsertf64x2Emitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5194 fn vinsertf64x2(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5195 self.emit(
5196 VINSERTF64X2_512RRMI,
5197 op0.as_operand(),
5198 op1.as_operand(),
5199 op2.as_operand(),
5200 op3.as_operand(),
5201 );
5202 }
5203}
5204
5205pub trait Vinsertf64x2MaskEmitter<A, B, C, D> {
5220 fn vinsertf64x2_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
5221}
5222
5223impl<'a> Vinsertf64x2MaskEmitter<Ymm, Ymm, Xmm, Imm> for Assembler<'a> {
5224 fn vinsertf64x2_mask(&mut self, op0: Ymm, op1: Ymm, op2: Xmm, op3: Imm) {
5225 self.emit(
5226 VINSERTF64X2_256RRRI_MASK,
5227 op0.as_operand(),
5228 op1.as_operand(),
5229 op2.as_operand(),
5230 op3.as_operand(),
5231 );
5232 }
5233}
5234
5235impl<'a> Vinsertf64x2MaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5236 fn vinsertf64x2_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5237 self.emit(
5238 VINSERTF64X2_256RRMI_MASK,
5239 op0.as_operand(),
5240 op1.as_operand(),
5241 op2.as_operand(),
5242 op3.as_operand(),
5243 );
5244 }
5245}
5246
5247impl<'a> Vinsertf64x2MaskEmitter<Zmm, Zmm, Xmm, Imm> for Assembler<'a> {
5248 fn vinsertf64x2_mask(&mut self, op0: Zmm, op1: Zmm, op2: Xmm, op3: Imm) {
5249 self.emit(
5250 VINSERTF64X2_512RRRI_MASK,
5251 op0.as_operand(),
5252 op1.as_operand(),
5253 op2.as_operand(),
5254 op3.as_operand(),
5255 );
5256 }
5257}
5258
5259impl<'a> Vinsertf64x2MaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5260 fn vinsertf64x2_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5261 self.emit(
5262 VINSERTF64X2_512RRMI_MASK,
5263 op0.as_operand(),
5264 op1.as_operand(),
5265 op2.as_operand(),
5266 op3.as_operand(),
5267 );
5268 }
5269}
5270
5271pub trait Vinsertf64x2MaskzEmitter<A, B, C, D> {
5286 fn vinsertf64x2_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
5287}
5288
5289impl<'a> Vinsertf64x2MaskzEmitter<Ymm, Ymm, Xmm, Imm> for Assembler<'a> {
5290 fn vinsertf64x2_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Xmm, op3: Imm) {
5291 self.emit(
5292 VINSERTF64X2_256RRRI_MASKZ,
5293 op0.as_operand(),
5294 op1.as_operand(),
5295 op2.as_operand(),
5296 op3.as_operand(),
5297 );
5298 }
5299}
5300
5301impl<'a> Vinsertf64x2MaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5302 fn vinsertf64x2_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5303 self.emit(
5304 VINSERTF64X2_256RRMI_MASKZ,
5305 op0.as_operand(),
5306 op1.as_operand(),
5307 op2.as_operand(),
5308 op3.as_operand(),
5309 );
5310 }
5311}
5312
5313impl<'a> Vinsertf64x2MaskzEmitter<Zmm, Zmm, Xmm, Imm> for Assembler<'a> {
5314 fn vinsertf64x2_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Xmm, op3: Imm) {
5315 self.emit(
5316 VINSERTF64X2_512RRRI_MASKZ,
5317 op0.as_operand(),
5318 op1.as_operand(),
5319 op2.as_operand(),
5320 op3.as_operand(),
5321 );
5322 }
5323}
5324
5325impl<'a> Vinsertf64x2MaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5326 fn vinsertf64x2_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5327 self.emit(
5328 VINSERTF64X2_512RRMI_MASKZ,
5329 op0.as_operand(),
5330 op1.as_operand(),
5331 op2.as_operand(),
5332 op3.as_operand(),
5333 );
5334 }
5335}
5336
5337pub trait Vinserti32x8Emitter<A, B, C, D> {
5350 fn vinserti32x8(&mut self, op0: A, op1: B, op2: C, op3: D);
5351}
5352
5353impl<'a> Vinserti32x8Emitter<Zmm, Zmm, Ymm, Imm> for Assembler<'a> {
5354 fn vinserti32x8(&mut self, op0: Zmm, op1: Zmm, op2: Ymm, op3: Imm) {
5355 self.emit(
5356 VINSERTI32X8_512RRRI,
5357 op0.as_operand(),
5358 op1.as_operand(),
5359 op2.as_operand(),
5360 op3.as_operand(),
5361 );
5362 }
5363}
5364
5365impl<'a> Vinserti32x8Emitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5366 fn vinserti32x8(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5367 self.emit(
5368 VINSERTI32X8_512RRMI,
5369 op0.as_operand(),
5370 op1.as_operand(),
5371 op2.as_operand(),
5372 op3.as_operand(),
5373 );
5374 }
5375}
5376
5377pub trait Vinserti32x8MaskEmitter<A, B, C, D> {
5390 fn vinserti32x8_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
5391}
5392
5393impl<'a> Vinserti32x8MaskEmitter<Zmm, Zmm, Ymm, Imm> for Assembler<'a> {
5394 fn vinserti32x8_mask(&mut self, op0: Zmm, op1: Zmm, op2: Ymm, op3: Imm) {
5395 self.emit(
5396 VINSERTI32X8_512RRRI_MASK,
5397 op0.as_operand(),
5398 op1.as_operand(),
5399 op2.as_operand(),
5400 op3.as_operand(),
5401 );
5402 }
5403}
5404
5405impl<'a> Vinserti32x8MaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5406 fn vinserti32x8_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5407 self.emit(
5408 VINSERTI32X8_512RRMI_MASK,
5409 op0.as_operand(),
5410 op1.as_operand(),
5411 op2.as_operand(),
5412 op3.as_operand(),
5413 );
5414 }
5415}
5416
5417pub trait Vinserti32x8MaskzEmitter<A, B, C, D> {
5430 fn vinserti32x8_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
5431}
5432
5433impl<'a> Vinserti32x8MaskzEmitter<Zmm, Zmm, Ymm, Imm> for Assembler<'a> {
5434 fn vinserti32x8_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Ymm, op3: Imm) {
5435 self.emit(
5436 VINSERTI32X8_512RRRI_MASKZ,
5437 op0.as_operand(),
5438 op1.as_operand(),
5439 op2.as_operand(),
5440 op3.as_operand(),
5441 );
5442 }
5443}
5444
5445impl<'a> Vinserti32x8MaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5446 fn vinserti32x8_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5447 self.emit(
5448 VINSERTI32X8_512RRMI_MASKZ,
5449 op0.as_operand(),
5450 op1.as_operand(),
5451 op2.as_operand(),
5452 op3.as_operand(),
5453 );
5454 }
5455}
5456
5457pub trait Vinserti64x2Emitter<A, B, C, D> {
5472 fn vinserti64x2(&mut self, op0: A, op1: B, op2: C, op3: D);
5473}
5474
5475impl<'a> Vinserti64x2Emitter<Ymm, Ymm, Xmm, Imm> for Assembler<'a> {
5476 fn vinserti64x2(&mut self, op0: Ymm, op1: Ymm, op2: Xmm, op3: Imm) {
5477 self.emit(
5478 VINSERTI64X2_256RRRI,
5479 op0.as_operand(),
5480 op1.as_operand(),
5481 op2.as_operand(),
5482 op3.as_operand(),
5483 );
5484 }
5485}
5486
5487impl<'a> Vinserti64x2Emitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5488 fn vinserti64x2(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5489 self.emit(
5490 VINSERTI64X2_256RRMI,
5491 op0.as_operand(),
5492 op1.as_operand(),
5493 op2.as_operand(),
5494 op3.as_operand(),
5495 );
5496 }
5497}
5498
5499impl<'a> Vinserti64x2Emitter<Zmm, Zmm, Xmm, Imm> for Assembler<'a> {
5500 fn vinserti64x2(&mut self, op0: Zmm, op1: Zmm, op2: Xmm, op3: Imm) {
5501 self.emit(
5502 VINSERTI64X2_512RRRI,
5503 op0.as_operand(),
5504 op1.as_operand(),
5505 op2.as_operand(),
5506 op3.as_operand(),
5507 );
5508 }
5509}
5510
5511impl<'a> Vinserti64x2Emitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5512 fn vinserti64x2(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5513 self.emit(
5514 VINSERTI64X2_512RRMI,
5515 op0.as_operand(),
5516 op1.as_operand(),
5517 op2.as_operand(),
5518 op3.as_operand(),
5519 );
5520 }
5521}
5522
5523pub trait Vinserti64x2MaskEmitter<A, B, C, D> {
5538 fn vinserti64x2_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
5539}
5540
5541impl<'a> Vinserti64x2MaskEmitter<Ymm, Ymm, Xmm, Imm> for Assembler<'a> {
5542 fn vinserti64x2_mask(&mut self, op0: Ymm, op1: Ymm, op2: Xmm, op3: Imm) {
5543 self.emit(
5544 VINSERTI64X2_256RRRI_MASK,
5545 op0.as_operand(),
5546 op1.as_operand(),
5547 op2.as_operand(),
5548 op3.as_operand(),
5549 );
5550 }
5551}
5552
5553impl<'a> Vinserti64x2MaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5554 fn vinserti64x2_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5555 self.emit(
5556 VINSERTI64X2_256RRMI_MASK,
5557 op0.as_operand(),
5558 op1.as_operand(),
5559 op2.as_operand(),
5560 op3.as_operand(),
5561 );
5562 }
5563}
5564
5565impl<'a> Vinserti64x2MaskEmitter<Zmm, Zmm, Xmm, Imm> for Assembler<'a> {
5566 fn vinserti64x2_mask(&mut self, op0: Zmm, op1: Zmm, op2: Xmm, op3: Imm) {
5567 self.emit(
5568 VINSERTI64X2_512RRRI_MASK,
5569 op0.as_operand(),
5570 op1.as_operand(),
5571 op2.as_operand(),
5572 op3.as_operand(),
5573 );
5574 }
5575}
5576
5577impl<'a> Vinserti64x2MaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5578 fn vinserti64x2_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5579 self.emit(
5580 VINSERTI64X2_512RRMI_MASK,
5581 op0.as_operand(),
5582 op1.as_operand(),
5583 op2.as_operand(),
5584 op3.as_operand(),
5585 );
5586 }
5587}
5588
5589pub trait Vinserti64x2MaskzEmitter<A, B, C, D> {
5604 fn vinserti64x2_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
5605}
5606
5607impl<'a> Vinserti64x2MaskzEmitter<Ymm, Ymm, Xmm, Imm> for Assembler<'a> {
5608 fn vinserti64x2_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Xmm, op3: Imm) {
5609 self.emit(
5610 VINSERTI64X2_256RRRI_MASKZ,
5611 op0.as_operand(),
5612 op1.as_operand(),
5613 op2.as_operand(),
5614 op3.as_operand(),
5615 );
5616 }
5617}
5618
5619impl<'a> Vinserti64x2MaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
5620 fn vinserti64x2_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
5621 self.emit(
5622 VINSERTI64X2_256RRMI_MASKZ,
5623 op0.as_operand(),
5624 op1.as_operand(),
5625 op2.as_operand(),
5626 op3.as_operand(),
5627 );
5628 }
5629}
5630
5631impl<'a> Vinserti64x2MaskzEmitter<Zmm, Zmm, Xmm, Imm> for Assembler<'a> {
5632 fn vinserti64x2_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Xmm, op3: Imm) {
5633 self.emit(
5634 VINSERTI64X2_512RRRI_MASKZ,
5635 op0.as_operand(),
5636 op1.as_operand(),
5637 op2.as_operand(),
5638 op3.as_operand(),
5639 );
5640 }
5641}
5642
5643impl<'a> Vinserti64x2MaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
5644 fn vinserti64x2_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
5645 self.emit(
5646 VINSERTI64X2_512RRMI_MASKZ,
5647 op0.as_operand(),
5648 op1.as_operand(),
5649 op2.as_operand(),
5650 op3.as_operand(),
5651 );
5652 }
5653}
5654
5655pub trait VorpdEmitter<A, B, C> {
5672 fn vorpd(&mut self, op0: A, op1: B, op2: C);
5673}
5674
5675impl<'a> VorpdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5676 fn vorpd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5677 self.emit(
5678 VORPD128RRR,
5679 op0.as_operand(),
5680 op1.as_operand(),
5681 op2.as_operand(),
5682 &NOREG,
5683 );
5684 }
5685}
5686
5687impl<'a> VorpdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5688 fn vorpd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5689 self.emit(
5690 VORPD128RRM,
5691 op0.as_operand(),
5692 op1.as_operand(),
5693 op2.as_operand(),
5694 &NOREG,
5695 );
5696 }
5697}
5698
5699impl<'a> VorpdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5700 fn vorpd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5701 self.emit(
5702 VORPD256RRR,
5703 op0.as_operand(),
5704 op1.as_operand(),
5705 op2.as_operand(),
5706 &NOREG,
5707 );
5708 }
5709}
5710
5711impl<'a> VorpdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5712 fn vorpd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5713 self.emit(
5714 VORPD256RRM,
5715 op0.as_operand(),
5716 op1.as_operand(),
5717 op2.as_operand(),
5718 &NOREG,
5719 );
5720 }
5721}
5722
5723impl<'a> VorpdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5724 fn vorpd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5725 self.emit(
5726 VORPD512RRR,
5727 op0.as_operand(),
5728 op1.as_operand(),
5729 op2.as_operand(),
5730 &NOREG,
5731 );
5732 }
5733}
5734
5735impl<'a> VorpdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5736 fn vorpd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5737 self.emit(
5738 VORPD512RRM,
5739 op0.as_operand(),
5740 op1.as_operand(),
5741 op2.as_operand(),
5742 &NOREG,
5743 );
5744 }
5745}
5746
5747pub trait VorpdMaskEmitter<A, B, C> {
5764 fn vorpd_mask(&mut self, op0: A, op1: B, op2: C);
5765}
5766
5767impl<'a> VorpdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5768 fn vorpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5769 self.emit(
5770 VORPD128RRR_MASK,
5771 op0.as_operand(),
5772 op1.as_operand(),
5773 op2.as_operand(),
5774 &NOREG,
5775 );
5776 }
5777}
5778
5779impl<'a> VorpdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5780 fn vorpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5781 self.emit(
5782 VORPD128RRM_MASK,
5783 op0.as_operand(),
5784 op1.as_operand(),
5785 op2.as_operand(),
5786 &NOREG,
5787 );
5788 }
5789}
5790
5791impl<'a> VorpdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5792 fn vorpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5793 self.emit(
5794 VORPD256RRR_MASK,
5795 op0.as_operand(),
5796 op1.as_operand(),
5797 op2.as_operand(),
5798 &NOREG,
5799 );
5800 }
5801}
5802
5803impl<'a> VorpdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5804 fn vorpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5805 self.emit(
5806 VORPD256RRM_MASK,
5807 op0.as_operand(),
5808 op1.as_operand(),
5809 op2.as_operand(),
5810 &NOREG,
5811 );
5812 }
5813}
5814
5815impl<'a> VorpdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5816 fn vorpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5817 self.emit(
5818 VORPD512RRR_MASK,
5819 op0.as_operand(),
5820 op1.as_operand(),
5821 op2.as_operand(),
5822 &NOREG,
5823 );
5824 }
5825}
5826
5827impl<'a> VorpdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5828 fn vorpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5829 self.emit(
5830 VORPD512RRM_MASK,
5831 op0.as_operand(),
5832 op1.as_operand(),
5833 op2.as_operand(),
5834 &NOREG,
5835 );
5836 }
5837}
5838
5839pub trait VorpdMaskzEmitter<A, B, C> {
5856 fn vorpd_maskz(&mut self, op0: A, op1: B, op2: C);
5857}
5858
5859impl<'a> VorpdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5860 fn vorpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5861 self.emit(
5862 VORPD128RRR_MASKZ,
5863 op0.as_operand(),
5864 op1.as_operand(),
5865 op2.as_operand(),
5866 &NOREG,
5867 );
5868 }
5869}
5870
5871impl<'a> VorpdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5872 fn vorpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5873 self.emit(
5874 VORPD128RRM_MASKZ,
5875 op0.as_operand(),
5876 op1.as_operand(),
5877 op2.as_operand(),
5878 &NOREG,
5879 );
5880 }
5881}
5882
5883impl<'a> VorpdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5884 fn vorpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5885 self.emit(
5886 VORPD256RRR_MASKZ,
5887 op0.as_operand(),
5888 op1.as_operand(),
5889 op2.as_operand(),
5890 &NOREG,
5891 );
5892 }
5893}
5894
5895impl<'a> VorpdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5896 fn vorpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5897 self.emit(
5898 VORPD256RRM_MASKZ,
5899 op0.as_operand(),
5900 op1.as_operand(),
5901 op2.as_operand(),
5902 &NOREG,
5903 );
5904 }
5905}
5906
5907impl<'a> VorpdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
5908 fn vorpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
5909 self.emit(
5910 VORPD512RRR_MASKZ,
5911 op0.as_operand(),
5912 op1.as_operand(),
5913 op2.as_operand(),
5914 &NOREG,
5915 );
5916 }
5917}
5918
5919impl<'a> VorpdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
5920 fn vorpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
5921 self.emit(
5922 VORPD512RRM_MASKZ,
5923 op0.as_operand(),
5924 op1.as_operand(),
5925 op2.as_operand(),
5926 &NOREG,
5927 );
5928 }
5929}
5930
5931pub trait VorpsEmitter<A, B, C> {
5948 fn vorps(&mut self, op0: A, op1: B, op2: C);
5949}
5950
5951impl<'a> VorpsEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
5952 fn vorps(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
5953 self.emit(
5954 VORPS128RRR,
5955 op0.as_operand(),
5956 op1.as_operand(),
5957 op2.as_operand(),
5958 &NOREG,
5959 );
5960 }
5961}
5962
5963impl<'a> VorpsEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
5964 fn vorps(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
5965 self.emit(
5966 VORPS128RRM,
5967 op0.as_operand(),
5968 op1.as_operand(),
5969 op2.as_operand(),
5970 &NOREG,
5971 );
5972 }
5973}
5974
5975impl<'a> VorpsEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
5976 fn vorps(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
5977 self.emit(
5978 VORPS256RRR,
5979 op0.as_operand(),
5980 op1.as_operand(),
5981 op2.as_operand(),
5982 &NOREG,
5983 );
5984 }
5985}
5986
5987impl<'a> VorpsEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
5988 fn vorps(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
5989 self.emit(
5990 VORPS256RRM,
5991 op0.as_operand(),
5992 op1.as_operand(),
5993 op2.as_operand(),
5994 &NOREG,
5995 );
5996 }
5997}
5998
5999impl<'a> VorpsEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6000 fn vorps(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6001 self.emit(
6002 VORPS512RRR,
6003 op0.as_operand(),
6004 op1.as_operand(),
6005 op2.as_operand(),
6006 &NOREG,
6007 );
6008 }
6009}
6010
6011impl<'a> VorpsEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6012 fn vorps(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6013 self.emit(
6014 VORPS512RRM,
6015 op0.as_operand(),
6016 op1.as_operand(),
6017 op2.as_operand(),
6018 &NOREG,
6019 );
6020 }
6021}
6022
6023pub trait VorpsMaskEmitter<A, B, C> {
6040 fn vorps_mask(&mut self, op0: A, op1: B, op2: C);
6041}
6042
6043impl<'a> VorpsMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6044 fn vorps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6045 self.emit(
6046 VORPS128RRR_MASK,
6047 op0.as_operand(),
6048 op1.as_operand(),
6049 op2.as_operand(),
6050 &NOREG,
6051 );
6052 }
6053}
6054
6055impl<'a> VorpsMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6056 fn vorps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6057 self.emit(
6058 VORPS128RRM_MASK,
6059 op0.as_operand(),
6060 op1.as_operand(),
6061 op2.as_operand(),
6062 &NOREG,
6063 );
6064 }
6065}
6066
6067impl<'a> VorpsMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6068 fn vorps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6069 self.emit(
6070 VORPS256RRR_MASK,
6071 op0.as_operand(),
6072 op1.as_operand(),
6073 op2.as_operand(),
6074 &NOREG,
6075 );
6076 }
6077}
6078
6079impl<'a> VorpsMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6080 fn vorps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6081 self.emit(
6082 VORPS256RRM_MASK,
6083 op0.as_operand(),
6084 op1.as_operand(),
6085 op2.as_operand(),
6086 &NOREG,
6087 );
6088 }
6089}
6090
6091impl<'a> VorpsMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6092 fn vorps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6093 self.emit(
6094 VORPS512RRR_MASK,
6095 op0.as_operand(),
6096 op1.as_operand(),
6097 op2.as_operand(),
6098 &NOREG,
6099 );
6100 }
6101}
6102
6103impl<'a> VorpsMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6104 fn vorps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6105 self.emit(
6106 VORPS512RRM_MASK,
6107 op0.as_operand(),
6108 op1.as_operand(),
6109 op2.as_operand(),
6110 &NOREG,
6111 );
6112 }
6113}
6114
6115pub trait VorpsMaskzEmitter<A, B, C> {
6132 fn vorps_maskz(&mut self, op0: A, op1: B, op2: C);
6133}
6134
6135impl<'a> VorpsMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6136 fn vorps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6137 self.emit(
6138 VORPS128RRR_MASKZ,
6139 op0.as_operand(),
6140 op1.as_operand(),
6141 op2.as_operand(),
6142 &NOREG,
6143 );
6144 }
6145}
6146
6147impl<'a> VorpsMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6148 fn vorps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6149 self.emit(
6150 VORPS128RRM_MASKZ,
6151 op0.as_operand(),
6152 op1.as_operand(),
6153 op2.as_operand(),
6154 &NOREG,
6155 );
6156 }
6157}
6158
6159impl<'a> VorpsMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6160 fn vorps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6161 self.emit(
6162 VORPS256RRR_MASKZ,
6163 op0.as_operand(),
6164 op1.as_operand(),
6165 op2.as_operand(),
6166 &NOREG,
6167 );
6168 }
6169}
6170
6171impl<'a> VorpsMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6172 fn vorps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6173 self.emit(
6174 VORPS256RRM_MASKZ,
6175 op0.as_operand(),
6176 op1.as_operand(),
6177 op2.as_operand(),
6178 &NOREG,
6179 );
6180 }
6181}
6182
6183impl<'a> VorpsMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6184 fn vorps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6185 self.emit(
6186 VORPS512RRR_MASKZ,
6187 op0.as_operand(),
6188 op1.as_operand(),
6189 op2.as_operand(),
6190 &NOREG,
6191 );
6192 }
6193}
6194
6195impl<'a> VorpsMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6196 fn vorps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6197 self.emit(
6198 VORPS512RRM_MASKZ,
6199 op0.as_operand(),
6200 op1.as_operand(),
6201 op2.as_operand(),
6202 &NOREG,
6203 );
6204 }
6205}
6206
6207pub trait Vpmovd2mEmitter<A, B> {
6221 fn vpmovd2m(&mut self, op0: A, op1: B);
6222}
6223
6224impl<'a> Vpmovd2mEmitter<KReg, Xmm> for Assembler<'a> {
6225 fn vpmovd2m(&mut self, op0: KReg, op1: Xmm) {
6226 self.emit(
6227 VPMOVD2M128KR,
6228 op0.as_operand(),
6229 op1.as_operand(),
6230 &NOREG,
6231 &NOREG,
6232 );
6233 }
6234}
6235
6236impl<'a> Vpmovd2mEmitter<KReg, Ymm> for Assembler<'a> {
6237 fn vpmovd2m(&mut self, op0: KReg, op1: Ymm) {
6238 self.emit(
6239 VPMOVD2M256KR,
6240 op0.as_operand(),
6241 op1.as_operand(),
6242 &NOREG,
6243 &NOREG,
6244 );
6245 }
6246}
6247
6248impl<'a> Vpmovd2mEmitter<KReg, Zmm> for Assembler<'a> {
6249 fn vpmovd2m(&mut self, op0: KReg, op1: Zmm) {
6250 self.emit(
6251 VPMOVD2M512KR,
6252 op0.as_operand(),
6253 op1.as_operand(),
6254 &NOREG,
6255 &NOREG,
6256 );
6257 }
6258}
6259
6260pub trait Vpmovm2dEmitter<A, B> {
6274 fn vpmovm2d(&mut self, op0: A, op1: B);
6275}
6276
6277impl<'a> Vpmovm2dEmitter<Xmm, KReg> for Assembler<'a> {
6278 fn vpmovm2d(&mut self, op0: Xmm, op1: KReg) {
6279 self.emit(
6280 VPMOVM2D128RK,
6281 op0.as_operand(),
6282 op1.as_operand(),
6283 &NOREG,
6284 &NOREG,
6285 );
6286 }
6287}
6288
6289impl<'a> Vpmovm2dEmitter<Ymm, KReg> for Assembler<'a> {
6290 fn vpmovm2d(&mut self, op0: Ymm, op1: KReg) {
6291 self.emit(
6292 VPMOVM2D256RK,
6293 op0.as_operand(),
6294 op1.as_operand(),
6295 &NOREG,
6296 &NOREG,
6297 );
6298 }
6299}
6300
6301impl<'a> Vpmovm2dEmitter<Zmm, KReg> for Assembler<'a> {
6302 fn vpmovm2d(&mut self, op0: Zmm, op1: KReg) {
6303 self.emit(
6304 VPMOVM2D512RK,
6305 op0.as_operand(),
6306 op1.as_operand(),
6307 &NOREG,
6308 &NOREG,
6309 );
6310 }
6311}
6312
6313pub trait Vpmovm2qEmitter<A, B> {
6327 fn vpmovm2q(&mut self, op0: A, op1: B);
6328}
6329
6330impl<'a> Vpmovm2qEmitter<Xmm, KReg> for Assembler<'a> {
6331 fn vpmovm2q(&mut self, op0: Xmm, op1: KReg) {
6332 self.emit(
6333 VPMOVM2Q128RK,
6334 op0.as_operand(),
6335 op1.as_operand(),
6336 &NOREG,
6337 &NOREG,
6338 );
6339 }
6340}
6341
6342impl<'a> Vpmovm2qEmitter<Ymm, KReg> for Assembler<'a> {
6343 fn vpmovm2q(&mut self, op0: Ymm, op1: KReg) {
6344 self.emit(
6345 VPMOVM2Q256RK,
6346 op0.as_operand(),
6347 op1.as_operand(),
6348 &NOREG,
6349 &NOREG,
6350 );
6351 }
6352}
6353
6354impl<'a> Vpmovm2qEmitter<Zmm, KReg> for Assembler<'a> {
6355 fn vpmovm2q(&mut self, op0: Zmm, op1: KReg) {
6356 self.emit(
6357 VPMOVM2Q512RK,
6358 op0.as_operand(),
6359 op1.as_operand(),
6360 &NOREG,
6361 &NOREG,
6362 );
6363 }
6364}
6365
6366pub trait Vpmovq2mEmitter<A, B> {
6380 fn vpmovq2m(&mut self, op0: A, op1: B);
6381}
6382
6383impl<'a> Vpmovq2mEmitter<KReg, Xmm> for Assembler<'a> {
6384 fn vpmovq2m(&mut self, op0: KReg, op1: Xmm) {
6385 self.emit(
6386 VPMOVQ2M128KR,
6387 op0.as_operand(),
6388 op1.as_operand(),
6389 &NOREG,
6390 &NOREG,
6391 );
6392 }
6393}
6394
6395impl<'a> Vpmovq2mEmitter<KReg, Ymm> for Assembler<'a> {
6396 fn vpmovq2m(&mut self, op0: KReg, op1: Ymm) {
6397 self.emit(
6398 VPMOVQ2M256KR,
6399 op0.as_operand(),
6400 op1.as_operand(),
6401 &NOREG,
6402 &NOREG,
6403 );
6404 }
6405}
6406
6407impl<'a> Vpmovq2mEmitter<KReg, Zmm> for Assembler<'a> {
6408 fn vpmovq2m(&mut self, op0: KReg, op1: Zmm) {
6409 self.emit(
6410 VPMOVQ2M512KR,
6411 op0.as_operand(),
6412 op1.as_operand(),
6413 &NOREG,
6414 &NOREG,
6415 );
6416 }
6417}
6418
6419pub trait VpmulldEmitter<A, B, C> {
6436 fn vpmulld(&mut self, op0: A, op1: B, op2: C);
6437}
6438
6439impl<'a> VpmulldEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6440 fn vpmulld(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6441 self.emit(
6442 VPMULLD128RRR,
6443 op0.as_operand(),
6444 op1.as_operand(),
6445 op2.as_operand(),
6446 &NOREG,
6447 );
6448 }
6449}
6450
6451impl<'a> VpmulldEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6452 fn vpmulld(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6453 self.emit(
6454 VPMULLD128RRM,
6455 op0.as_operand(),
6456 op1.as_operand(),
6457 op2.as_operand(),
6458 &NOREG,
6459 );
6460 }
6461}
6462
6463impl<'a> VpmulldEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6464 fn vpmulld(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6465 self.emit(
6466 VPMULLD256RRR,
6467 op0.as_operand(),
6468 op1.as_operand(),
6469 op2.as_operand(),
6470 &NOREG,
6471 );
6472 }
6473}
6474
6475impl<'a> VpmulldEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6476 fn vpmulld(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6477 self.emit(
6478 VPMULLD256RRM,
6479 op0.as_operand(),
6480 op1.as_operand(),
6481 op2.as_operand(),
6482 &NOREG,
6483 );
6484 }
6485}
6486
6487impl<'a> VpmulldEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6488 fn vpmulld(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6489 self.emit(
6490 VPMULLD512RRR,
6491 op0.as_operand(),
6492 op1.as_operand(),
6493 op2.as_operand(),
6494 &NOREG,
6495 );
6496 }
6497}
6498
6499impl<'a> VpmulldEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6500 fn vpmulld(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6501 self.emit(
6502 VPMULLD512RRM,
6503 op0.as_operand(),
6504 op1.as_operand(),
6505 op2.as_operand(),
6506 &NOREG,
6507 );
6508 }
6509}
6510
6511pub trait VpmulldMaskEmitter<A, B, C> {
6528 fn vpmulld_mask(&mut self, op0: A, op1: B, op2: C);
6529}
6530
6531impl<'a> VpmulldMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6532 fn vpmulld_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6533 self.emit(
6534 VPMULLD128RRR_MASK,
6535 op0.as_operand(),
6536 op1.as_operand(),
6537 op2.as_operand(),
6538 &NOREG,
6539 );
6540 }
6541}
6542
6543impl<'a> VpmulldMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6544 fn vpmulld_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6545 self.emit(
6546 VPMULLD128RRM_MASK,
6547 op0.as_operand(),
6548 op1.as_operand(),
6549 op2.as_operand(),
6550 &NOREG,
6551 );
6552 }
6553}
6554
6555impl<'a> VpmulldMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6556 fn vpmulld_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6557 self.emit(
6558 VPMULLD256RRR_MASK,
6559 op0.as_operand(),
6560 op1.as_operand(),
6561 op2.as_operand(),
6562 &NOREG,
6563 );
6564 }
6565}
6566
6567impl<'a> VpmulldMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6568 fn vpmulld_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6569 self.emit(
6570 VPMULLD256RRM_MASK,
6571 op0.as_operand(),
6572 op1.as_operand(),
6573 op2.as_operand(),
6574 &NOREG,
6575 );
6576 }
6577}
6578
6579impl<'a> VpmulldMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6580 fn vpmulld_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6581 self.emit(
6582 VPMULLD512RRR_MASK,
6583 op0.as_operand(),
6584 op1.as_operand(),
6585 op2.as_operand(),
6586 &NOREG,
6587 );
6588 }
6589}
6590
6591impl<'a> VpmulldMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6592 fn vpmulld_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6593 self.emit(
6594 VPMULLD512RRM_MASK,
6595 op0.as_operand(),
6596 op1.as_operand(),
6597 op2.as_operand(),
6598 &NOREG,
6599 );
6600 }
6601}
6602
6603pub trait VpmulldMaskzEmitter<A, B, C> {
6620 fn vpmulld_maskz(&mut self, op0: A, op1: B, op2: C);
6621}
6622
6623impl<'a> VpmulldMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6624 fn vpmulld_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6625 self.emit(
6626 VPMULLD128RRR_MASKZ,
6627 op0.as_operand(),
6628 op1.as_operand(),
6629 op2.as_operand(),
6630 &NOREG,
6631 );
6632 }
6633}
6634
6635impl<'a> VpmulldMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6636 fn vpmulld_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6637 self.emit(
6638 VPMULLD128RRM_MASKZ,
6639 op0.as_operand(),
6640 op1.as_operand(),
6641 op2.as_operand(),
6642 &NOREG,
6643 );
6644 }
6645}
6646
6647impl<'a> VpmulldMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6648 fn vpmulld_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6649 self.emit(
6650 VPMULLD256RRR_MASKZ,
6651 op0.as_operand(),
6652 op1.as_operand(),
6653 op2.as_operand(),
6654 &NOREG,
6655 );
6656 }
6657}
6658
6659impl<'a> VpmulldMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6660 fn vpmulld_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6661 self.emit(
6662 VPMULLD256RRM_MASKZ,
6663 op0.as_operand(),
6664 op1.as_operand(),
6665 op2.as_operand(),
6666 &NOREG,
6667 );
6668 }
6669}
6670
6671impl<'a> VpmulldMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6672 fn vpmulld_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6673 self.emit(
6674 VPMULLD512RRR_MASKZ,
6675 op0.as_operand(),
6676 op1.as_operand(),
6677 op2.as_operand(),
6678 &NOREG,
6679 );
6680 }
6681}
6682
6683impl<'a> VpmulldMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6684 fn vpmulld_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6685 self.emit(
6686 VPMULLD512RRM_MASKZ,
6687 op0.as_operand(),
6688 op1.as_operand(),
6689 op2.as_operand(),
6690 &NOREG,
6691 );
6692 }
6693}
6694
6695pub trait VpmullqEmitter<A, B, C> {
6712 fn vpmullq(&mut self, op0: A, op1: B, op2: C);
6713}
6714
6715impl<'a> VpmullqEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6716 fn vpmullq(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6717 self.emit(
6718 VPMULLQ128RRR,
6719 op0.as_operand(),
6720 op1.as_operand(),
6721 op2.as_operand(),
6722 &NOREG,
6723 );
6724 }
6725}
6726
6727impl<'a> VpmullqEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6728 fn vpmullq(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6729 self.emit(
6730 VPMULLQ128RRM,
6731 op0.as_operand(),
6732 op1.as_operand(),
6733 op2.as_operand(),
6734 &NOREG,
6735 );
6736 }
6737}
6738
6739impl<'a> VpmullqEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6740 fn vpmullq(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6741 self.emit(
6742 VPMULLQ256RRR,
6743 op0.as_operand(),
6744 op1.as_operand(),
6745 op2.as_operand(),
6746 &NOREG,
6747 );
6748 }
6749}
6750
6751impl<'a> VpmullqEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6752 fn vpmullq(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6753 self.emit(
6754 VPMULLQ256RRM,
6755 op0.as_operand(),
6756 op1.as_operand(),
6757 op2.as_operand(),
6758 &NOREG,
6759 );
6760 }
6761}
6762
6763impl<'a> VpmullqEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6764 fn vpmullq(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6765 self.emit(
6766 VPMULLQ512RRR,
6767 op0.as_operand(),
6768 op1.as_operand(),
6769 op2.as_operand(),
6770 &NOREG,
6771 );
6772 }
6773}
6774
6775impl<'a> VpmullqEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6776 fn vpmullq(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6777 self.emit(
6778 VPMULLQ512RRM,
6779 op0.as_operand(),
6780 op1.as_operand(),
6781 op2.as_operand(),
6782 &NOREG,
6783 );
6784 }
6785}
6786
6787pub trait VpmullqMaskEmitter<A, B, C> {
6804 fn vpmullq_mask(&mut self, op0: A, op1: B, op2: C);
6805}
6806
6807impl<'a> VpmullqMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6808 fn vpmullq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6809 self.emit(
6810 VPMULLQ128RRR_MASK,
6811 op0.as_operand(),
6812 op1.as_operand(),
6813 op2.as_operand(),
6814 &NOREG,
6815 );
6816 }
6817}
6818
6819impl<'a> VpmullqMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6820 fn vpmullq_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6821 self.emit(
6822 VPMULLQ128RRM_MASK,
6823 op0.as_operand(),
6824 op1.as_operand(),
6825 op2.as_operand(),
6826 &NOREG,
6827 );
6828 }
6829}
6830
6831impl<'a> VpmullqMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6832 fn vpmullq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6833 self.emit(
6834 VPMULLQ256RRR_MASK,
6835 op0.as_operand(),
6836 op1.as_operand(),
6837 op2.as_operand(),
6838 &NOREG,
6839 );
6840 }
6841}
6842
6843impl<'a> VpmullqMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6844 fn vpmullq_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6845 self.emit(
6846 VPMULLQ256RRM_MASK,
6847 op0.as_operand(),
6848 op1.as_operand(),
6849 op2.as_operand(),
6850 &NOREG,
6851 );
6852 }
6853}
6854
6855impl<'a> VpmullqMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6856 fn vpmullq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6857 self.emit(
6858 VPMULLQ512RRR_MASK,
6859 op0.as_operand(),
6860 op1.as_operand(),
6861 op2.as_operand(),
6862 &NOREG,
6863 );
6864 }
6865}
6866
6867impl<'a> VpmullqMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6868 fn vpmullq_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6869 self.emit(
6870 VPMULLQ512RRM_MASK,
6871 op0.as_operand(),
6872 op1.as_operand(),
6873 op2.as_operand(),
6874 &NOREG,
6875 );
6876 }
6877}
6878
6879pub trait VpmullqMaskzEmitter<A, B, C> {
6896 fn vpmullq_maskz(&mut self, op0: A, op1: B, op2: C);
6897}
6898
6899impl<'a> VpmullqMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
6900 fn vpmullq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
6901 self.emit(
6902 VPMULLQ128RRR_MASKZ,
6903 op0.as_operand(),
6904 op1.as_operand(),
6905 op2.as_operand(),
6906 &NOREG,
6907 );
6908 }
6909}
6910
6911impl<'a> VpmullqMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
6912 fn vpmullq_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
6913 self.emit(
6914 VPMULLQ128RRM_MASKZ,
6915 op0.as_operand(),
6916 op1.as_operand(),
6917 op2.as_operand(),
6918 &NOREG,
6919 );
6920 }
6921}
6922
6923impl<'a> VpmullqMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
6924 fn vpmullq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
6925 self.emit(
6926 VPMULLQ256RRR_MASKZ,
6927 op0.as_operand(),
6928 op1.as_operand(),
6929 op2.as_operand(),
6930 &NOREG,
6931 );
6932 }
6933}
6934
6935impl<'a> VpmullqMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
6936 fn vpmullq_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
6937 self.emit(
6938 VPMULLQ256RRM_MASKZ,
6939 op0.as_operand(),
6940 op1.as_operand(),
6941 op2.as_operand(),
6942 &NOREG,
6943 );
6944 }
6945}
6946
6947impl<'a> VpmullqMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
6948 fn vpmullq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
6949 self.emit(
6950 VPMULLQ512RRR_MASKZ,
6951 op0.as_operand(),
6952 op1.as_operand(),
6953 op2.as_operand(),
6954 &NOREG,
6955 );
6956 }
6957}
6958
6959impl<'a> VpmullqMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
6960 fn vpmullq_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
6961 self.emit(
6962 VPMULLQ512RRM_MASKZ,
6963 op0.as_operand(),
6964 op1.as_operand(),
6965 op2.as_operand(),
6966 &NOREG,
6967 );
6968 }
6969}
6970
6971pub trait VrangepdEmitter<A, B, C, D> {
6988 fn vrangepd(&mut self, op0: A, op1: B, op2: C, op3: D);
6989}
6990
6991impl<'a> VrangepdEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
6992 fn vrangepd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
6993 self.emit(
6994 VRANGEPD128RRRI,
6995 op0.as_operand(),
6996 op1.as_operand(),
6997 op2.as_operand(),
6998 op3.as_operand(),
6999 );
7000 }
7001}
7002
7003impl<'a> VrangepdEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7004 fn vrangepd(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7005 self.emit(
7006 VRANGEPD128RRMI,
7007 op0.as_operand(),
7008 op1.as_operand(),
7009 op2.as_operand(),
7010 op3.as_operand(),
7011 );
7012 }
7013}
7014
7015impl<'a> VrangepdEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
7016 fn vrangepd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
7017 self.emit(
7018 VRANGEPD256RRRI,
7019 op0.as_operand(),
7020 op1.as_operand(),
7021 op2.as_operand(),
7022 op3.as_operand(),
7023 );
7024 }
7025}
7026
7027impl<'a> VrangepdEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
7028 fn vrangepd(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
7029 self.emit(
7030 VRANGEPD256RRMI,
7031 op0.as_operand(),
7032 op1.as_operand(),
7033 op2.as_operand(),
7034 op3.as_operand(),
7035 );
7036 }
7037}
7038
7039impl<'a> VrangepdEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7040 fn vrangepd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7041 self.emit(
7042 VRANGEPD512RRRI,
7043 op0.as_operand(),
7044 op1.as_operand(),
7045 op2.as_operand(),
7046 op3.as_operand(),
7047 );
7048 }
7049}
7050
7051impl<'a> VrangepdEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
7052 fn vrangepd(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
7053 self.emit(
7054 VRANGEPD512RRMI,
7055 op0.as_operand(),
7056 op1.as_operand(),
7057 op2.as_operand(),
7058 op3.as_operand(),
7059 );
7060 }
7061}
7062
7063pub trait VrangepdMaskEmitter<A, B, C, D> {
7080 fn vrangepd_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7081}
7082
7083impl<'a> VrangepdMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7084 fn vrangepd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7085 self.emit(
7086 VRANGEPD128RRRI_MASK,
7087 op0.as_operand(),
7088 op1.as_operand(),
7089 op2.as_operand(),
7090 op3.as_operand(),
7091 );
7092 }
7093}
7094
7095impl<'a> VrangepdMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7096 fn vrangepd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7097 self.emit(
7098 VRANGEPD128RRMI_MASK,
7099 op0.as_operand(),
7100 op1.as_operand(),
7101 op2.as_operand(),
7102 op3.as_operand(),
7103 );
7104 }
7105}
7106
7107impl<'a> VrangepdMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
7108 fn vrangepd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
7109 self.emit(
7110 VRANGEPD256RRRI_MASK,
7111 op0.as_operand(),
7112 op1.as_operand(),
7113 op2.as_operand(),
7114 op3.as_operand(),
7115 );
7116 }
7117}
7118
7119impl<'a> VrangepdMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
7120 fn vrangepd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
7121 self.emit(
7122 VRANGEPD256RRMI_MASK,
7123 op0.as_operand(),
7124 op1.as_operand(),
7125 op2.as_operand(),
7126 op3.as_operand(),
7127 );
7128 }
7129}
7130
7131impl<'a> VrangepdMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7132 fn vrangepd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7133 self.emit(
7134 VRANGEPD512RRRI_MASK,
7135 op0.as_operand(),
7136 op1.as_operand(),
7137 op2.as_operand(),
7138 op3.as_operand(),
7139 );
7140 }
7141}
7142
7143impl<'a> VrangepdMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
7144 fn vrangepd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
7145 self.emit(
7146 VRANGEPD512RRMI_MASK,
7147 op0.as_operand(),
7148 op1.as_operand(),
7149 op2.as_operand(),
7150 op3.as_operand(),
7151 );
7152 }
7153}
7154
7155pub trait VrangepdMaskSaeEmitter<A, B, C, D> {
7167 fn vrangepd_mask_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7168}
7169
7170impl<'a> VrangepdMaskSaeEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7171 fn vrangepd_mask_sae(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7172 self.emit(
7173 VRANGEPD512RRRI_MASK_SAE,
7174 op0.as_operand(),
7175 op1.as_operand(),
7176 op2.as_operand(),
7177 op3.as_operand(),
7178 );
7179 }
7180}
7181
7182pub trait VrangepdMaskzEmitter<A, B, C, D> {
7199 fn vrangepd_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
7200}
7201
7202impl<'a> VrangepdMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7203 fn vrangepd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7204 self.emit(
7205 VRANGEPD128RRRI_MASKZ,
7206 op0.as_operand(),
7207 op1.as_operand(),
7208 op2.as_operand(),
7209 op3.as_operand(),
7210 );
7211 }
7212}
7213
7214impl<'a> VrangepdMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7215 fn vrangepd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7216 self.emit(
7217 VRANGEPD128RRMI_MASKZ,
7218 op0.as_operand(),
7219 op1.as_operand(),
7220 op2.as_operand(),
7221 op3.as_operand(),
7222 );
7223 }
7224}
7225
7226impl<'a> VrangepdMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
7227 fn vrangepd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
7228 self.emit(
7229 VRANGEPD256RRRI_MASKZ,
7230 op0.as_operand(),
7231 op1.as_operand(),
7232 op2.as_operand(),
7233 op3.as_operand(),
7234 );
7235 }
7236}
7237
7238impl<'a> VrangepdMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
7239 fn vrangepd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
7240 self.emit(
7241 VRANGEPD256RRMI_MASKZ,
7242 op0.as_operand(),
7243 op1.as_operand(),
7244 op2.as_operand(),
7245 op3.as_operand(),
7246 );
7247 }
7248}
7249
7250impl<'a> VrangepdMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7251 fn vrangepd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7252 self.emit(
7253 VRANGEPD512RRRI_MASKZ,
7254 op0.as_operand(),
7255 op1.as_operand(),
7256 op2.as_operand(),
7257 op3.as_operand(),
7258 );
7259 }
7260}
7261
7262impl<'a> VrangepdMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
7263 fn vrangepd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
7264 self.emit(
7265 VRANGEPD512RRMI_MASKZ,
7266 op0.as_operand(),
7267 op1.as_operand(),
7268 op2.as_operand(),
7269 op3.as_operand(),
7270 );
7271 }
7272}
7273
7274pub trait VrangepdMaskzSaeEmitter<A, B, C, D> {
7286 fn vrangepd_maskz_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7287}
7288
7289impl<'a> VrangepdMaskzSaeEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7290 fn vrangepd_maskz_sae(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7291 self.emit(
7292 VRANGEPD512RRRI_MASKZ_SAE,
7293 op0.as_operand(),
7294 op1.as_operand(),
7295 op2.as_operand(),
7296 op3.as_operand(),
7297 );
7298 }
7299}
7300
7301pub trait VrangepdSaeEmitter<A, B, C, D> {
7313 fn vrangepd_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7314}
7315
7316impl<'a> VrangepdSaeEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7317 fn vrangepd_sae(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7318 self.emit(
7319 VRANGEPD512RRRI_SAE,
7320 op0.as_operand(),
7321 op1.as_operand(),
7322 op2.as_operand(),
7323 op3.as_operand(),
7324 );
7325 }
7326}
7327
7328pub trait VrangepsEmitter<A, B, C, D> {
7345 fn vrangeps(&mut self, op0: A, op1: B, op2: C, op3: D);
7346}
7347
7348impl<'a> VrangepsEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7349 fn vrangeps(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7350 self.emit(
7351 VRANGEPS128RRRI,
7352 op0.as_operand(),
7353 op1.as_operand(),
7354 op2.as_operand(),
7355 op3.as_operand(),
7356 );
7357 }
7358}
7359
7360impl<'a> VrangepsEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7361 fn vrangeps(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7362 self.emit(
7363 VRANGEPS128RRMI,
7364 op0.as_operand(),
7365 op1.as_operand(),
7366 op2.as_operand(),
7367 op3.as_operand(),
7368 );
7369 }
7370}
7371
7372impl<'a> VrangepsEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
7373 fn vrangeps(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
7374 self.emit(
7375 VRANGEPS256RRRI,
7376 op0.as_operand(),
7377 op1.as_operand(),
7378 op2.as_operand(),
7379 op3.as_operand(),
7380 );
7381 }
7382}
7383
7384impl<'a> VrangepsEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
7385 fn vrangeps(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
7386 self.emit(
7387 VRANGEPS256RRMI,
7388 op0.as_operand(),
7389 op1.as_operand(),
7390 op2.as_operand(),
7391 op3.as_operand(),
7392 );
7393 }
7394}
7395
7396impl<'a> VrangepsEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7397 fn vrangeps(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7398 self.emit(
7399 VRANGEPS512RRRI,
7400 op0.as_operand(),
7401 op1.as_operand(),
7402 op2.as_operand(),
7403 op3.as_operand(),
7404 );
7405 }
7406}
7407
7408impl<'a> VrangepsEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
7409 fn vrangeps(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
7410 self.emit(
7411 VRANGEPS512RRMI,
7412 op0.as_operand(),
7413 op1.as_operand(),
7414 op2.as_operand(),
7415 op3.as_operand(),
7416 );
7417 }
7418}
7419
7420pub trait VrangepsMaskEmitter<A, B, C, D> {
7437 fn vrangeps_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7438}
7439
7440impl<'a> VrangepsMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7441 fn vrangeps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7442 self.emit(
7443 VRANGEPS128RRRI_MASK,
7444 op0.as_operand(),
7445 op1.as_operand(),
7446 op2.as_operand(),
7447 op3.as_operand(),
7448 );
7449 }
7450}
7451
7452impl<'a> VrangepsMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7453 fn vrangeps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7454 self.emit(
7455 VRANGEPS128RRMI_MASK,
7456 op0.as_operand(),
7457 op1.as_operand(),
7458 op2.as_operand(),
7459 op3.as_operand(),
7460 );
7461 }
7462}
7463
7464impl<'a> VrangepsMaskEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
7465 fn vrangeps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
7466 self.emit(
7467 VRANGEPS256RRRI_MASK,
7468 op0.as_operand(),
7469 op1.as_operand(),
7470 op2.as_operand(),
7471 op3.as_operand(),
7472 );
7473 }
7474}
7475
7476impl<'a> VrangepsMaskEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
7477 fn vrangeps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
7478 self.emit(
7479 VRANGEPS256RRMI_MASK,
7480 op0.as_operand(),
7481 op1.as_operand(),
7482 op2.as_operand(),
7483 op3.as_operand(),
7484 );
7485 }
7486}
7487
7488impl<'a> VrangepsMaskEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7489 fn vrangeps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7490 self.emit(
7491 VRANGEPS512RRRI_MASK,
7492 op0.as_operand(),
7493 op1.as_operand(),
7494 op2.as_operand(),
7495 op3.as_operand(),
7496 );
7497 }
7498}
7499
7500impl<'a> VrangepsMaskEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
7501 fn vrangeps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
7502 self.emit(
7503 VRANGEPS512RRMI_MASK,
7504 op0.as_operand(),
7505 op1.as_operand(),
7506 op2.as_operand(),
7507 op3.as_operand(),
7508 );
7509 }
7510}
7511
7512pub trait VrangepsMaskSaeEmitter<A, B, C, D> {
7524 fn vrangeps_mask_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7525}
7526
7527impl<'a> VrangepsMaskSaeEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7528 fn vrangeps_mask_sae(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7529 self.emit(
7530 VRANGEPS512RRRI_MASK_SAE,
7531 op0.as_operand(),
7532 op1.as_operand(),
7533 op2.as_operand(),
7534 op3.as_operand(),
7535 );
7536 }
7537}
7538
7539pub trait VrangepsMaskzEmitter<A, B, C, D> {
7556 fn vrangeps_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
7557}
7558
7559impl<'a> VrangepsMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7560 fn vrangeps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7561 self.emit(
7562 VRANGEPS128RRRI_MASKZ,
7563 op0.as_operand(),
7564 op1.as_operand(),
7565 op2.as_operand(),
7566 op3.as_operand(),
7567 );
7568 }
7569}
7570
7571impl<'a> VrangepsMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7572 fn vrangeps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7573 self.emit(
7574 VRANGEPS128RRMI_MASKZ,
7575 op0.as_operand(),
7576 op1.as_operand(),
7577 op2.as_operand(),
7578 op3.as_operand(),
7579 );
7580 }
7581}
7582
7583impl<'a> VrangepsMaskzEmitter<Ymm, Ymm, Ymm, Imm> for Assembler<'a> {
7584 fn vrangeps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm, op3: Imm) {
7585 self.emit(
7586 VRANGEPS256RRRI_MASKZ,
7587 op0.as_operand(),
7588 op1.as_operand(),
7589 op2.as_operand(),
7590 op3.as_operand(),
7591 );
7592 }
7593}
7594
7595impl<'a> VrangepsMaskzEmitter<Ymm, Ymm, Mem, Imm> for Assembler<'a> {
7596 fn vrangeps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem, op3: Imm) {
7597 self.emit(
7598 VRANGEPS256RRMI_MASKZ,
7599 op0.as_operand(),
7600 op1.as_operand(),
7601 op2.as_operand(),
7602 op3.as_operand(),
7603 );
7604 }
7605}
7606
7607impl<'a> VrangepsMaskzEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7608 fn vrangeps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7609 self.emit(
7610 VRANGEPS512RRRI_MASKZ,
7611 op0.as_operand(),
7612 op1.as_operand(),
7613 op2.as_operand(),
7614 op3.as_operand(),
7615 );
7616 }
7617}
7618
7619impl<'a> VrangepsMaskzEmitter<Zmm, Zmm, Mem, Imm> for Assembler<'a> {
7620 fn vrangeps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem, op3: Imm) {
7621 self.emit(
7622 VRANGEPS512RRMI_MASKZ,
7623 op0.as_operand(),
7624 op1.as_operand(),
7625 op2.as_operand(),
7626 op3.as_operand(),
7627 );
7628 }
7629}
7630
7631pub trait VrangepsMaskzSaeEmitter<A, B, C, D> {
7643 fn vrangeps_maskz_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7644}
7645
7646impl<'a> VrangepsMaskzSaeEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7647 fn vrangeps_maskz_sae(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7648 self.emit(
7649 VRANGEPS512RRRI_MASKZ_SAE,
7650 op0.as_operand(),
7651 op1.as_operand(),
7652 op2.as_operand(),
7653 op3.as_operand(),
7654 );
7655 }
7656}
7657
7658pub trait VrangepsSaeEmitter<A, B, C, D> {
7670 fn vrangeps_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7671}
7672
7673impl<'a> VrangepsSaeEmitter<Zmm, Zmm, Zmm, Imm> for Assembler<'a> {
7674 fn vrangeps_sae(&mut self, op0: Zmm, op1: Zmm, op2: Zmm, op3: Imm) {
7675 self.emit(
7676 VRANGEPS512RRRI_SAE,
7677 op0.as_operand(),
7678 op1.as_operand(),
7679 op2.as_operand(),
7680 op3.as_operand(),
7681 );
7682 }
7683}
7684
7685pub trait VrangesdEmitter<A, B, C, D> {
7698 fn vrangesd(&mut self, op0: A, op1: B, op2: C, op3: D);
7699}
7700
7701impl<'a> VrangesdEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7702 fn vrangesd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7703 self.emit(
7704 VRANGESDRRRI,
7705 op0.as_operand(),
7706 op1.as_operand(),
7707 op2.as_operand(),
7708 op3.as_operand(),
7709 );
7710 }
7711}
7712
7713impl<'a> VrangesdEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7714 fn vrangesd(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7715 self.emit(
7716 VRANGESDRRMI,
7717 op0.as_operand(),
7718 op1.as_operand(),
7719 op2.as_operand(),
7720 op3.as_operand(),
7721 );
7722 }
7723}
7724
7725pub trait VrangesdMaskEmitter<A, B, C, D> {
7738 fn vrangesd_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7739}
7740
7741impl<'a> VrangesdMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7742 fn vrangesd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7743 self.emit(
7744 VRANGESDRRRI_MASK,
7745 op0.as_operand(),
7746 op1.as_operand(),
7747 op2.as_operand(),
7748 op3.as_operand(),
7749 );
7750 }
7751}
7752
7753impl<'a> VrangesdMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7754 fn vrangesd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7755 self.emit(
7756 VRANGESDRRMI_MASK,
7757 op0.as_operand(),
7758 op1.as_operand(),
7759 op2.as_operand(),
7760 op3.as_operand(),
7761 );
7762 }
7763}
7764
7765pub trait VrangesdMaskSaeEmitter<A, B, C, D> {
7777 fn vrangesd_mask_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7778}
7779
7780impl<'a> VrangesdMaskSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7781 fn vrangesd_mask_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7782 self.emit(
7783 VRANGESDRRRI_MASK_SAE,
7784 op0.as_operand(),
7785 op1.as_operand(),
7786 op2.as_operand(),
7787 op3.as_operand(),
7788 );
7789 }
7790}
7791
7792pub trait VrangesdMaskzEmitter<A, B, C, D> {
7805 fn vrangesd_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
7806}
7807
7808impl<'a> VrangesdMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7809 fn vrangesd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7810 self.emit(
7811 VRANGESDRRRI_MASKZ,
7812 op0.as_operand(),
7813 op1.as_operand(),
7814 op2.as_operand(),
7815 op3.as_operand(),
7816 );
7817 }
7818}
7819
7820impl<'a> VrangesdMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7821 fn vrangesd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7822 self.emit(
7823 VRANGESDRRMI_MASKZ,
7824 op0.as_operand(),
7825 op1.as_operand(),
7826 op2.as_operand(),
7827 op3.as_operand(),
7828 );
7829 }
7830}
7831
7832pub trait VrangesdMaskzSaeEmitter<A, B, C, D> {
7844 fn vrangesd_maskz_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7845}
7846
7847impl<'a> VrangesdMaskzSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7848 fn vrangesd_maskz_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7849 self.emit(
7850 VRANGESDRRRI_MASKZ_SAE,
7851 op0.as_operand(),
7852 op1.as_operand(),
7853 op2.as_operand(),
7854 op3.as_operand(),
7855 );
7856 }
7857}
7858
7859pub trait VrangesdSaeEmitter<A, B, C, D> {
7871 fn vrangesd_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7872}
7873
7874impl<'a> VrangesdSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7875 fn vrangesd_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7876 self.emit(
7877 VRANGESDRRRI_SAE,
7878 op0.as_operand(),
7879 op1.as_operand(),
7880 op2.as_operand(),
7881 op3.as_operand(),
7882 );
7883 }
7884}
7885
7886pub trait VrangessEmitter<A, B, C, D> {
7899 fn vrangess(&mut self, op0: A, op1: B, op2: C, op3: D);
7900}
7901
7902impl<'a> VrangessEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7903 fn vrangess(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7904 self.emit(
7905 VRANGESSRRRI,
7906 op0.as_operand(),
7907 op1.as_operand(),
7908 op2.as_operand(),
7909 op3.as_operand(),
7910 );
7911 }
7912}
7913
7914impl<'a> VrangessEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7915 fn vrangess(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7916 self.emit(
7917 VRANGESSRRMI,
7918 op0.as_operand(),
7919 op1.as_operand(),
7920 op2.as_operand(),
7921 op3.as_operand(),
7922 );
7923 }
7924}
7925
7926pub trait VrangessMaskEmitter<A, B, C, D> {
7939 fn vrangess_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
7940}
7941
7942impl<'a> VrangessMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7943 fn vrangess_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7944 self.emit(
7945 VRANGESSRRRI_MASK,
7946 op0.as_operand(),
7947 op1.as_operand(),
7948 op2.as_operand(),
7949 op3.as_operand(),
7950 );
7951 }
7952}
7953
7954impl<'a> VrangessMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
7955 fn vrangess_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
7956 self.emit(
7957 VRANGESSRRMI_MASK,
7958 op0.as_operand(),
7959 op1.as_operand(),
7960 op2.as_operand(),
7961 op3.as_operand(),
7962 );
7963 }
7964}
7965
7966pub trait VrangessMaskSaeEmitter<A, B, C, D> {
7978 fn vrangess_mask_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
7979}
7980
7981impl<'a> VrangessMaskSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
7982 fn vrangess_mask_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
7983 self.emit(
7984 VRANGESSRRRI_MASK_SAE,
7985 op0.as_operand(),
7986 op1.as_operand(),
7987 op2.as_operand(),
7988 op3.as_operand(),
7989 );
7990 }
7991}
7992
7993pub trait VrangessMaskzEmitter<A, B, C, D> {
8006 fn vrangess_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
8007}
8008
8009impl<'a> VrangessMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8010 fn vrangess_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8011 self.emit(
8012 VRANGESSRRRI_MASKZ,
8013 op0.as_operand(),
8014 op1.as_operand(),
8015 op2.as_operand(),
8016 op3.as_operand(),
8017 );
8018 }
8019}
8020
8021impl<'a> VrangessMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
8022 fn vrangess_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
8023 self.emit(
8024 VRANGESSRRMI_MASKZ,
8025 op0.as_operand(),
8026 op1.as_operand(),
8027 op2.as_operand(),
8028 op3.as_operand(),
8029 );
8030 }
8031}
8032
8033pub trait VrangessMaskzSaeEmitter<A, B, C, D> {
8045 fn vrangess_maskz_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
8046}
8047
8048impl<'a> VrangessMaskzSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8049 fn vrangess_maskz_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8050 self.emit(
8051 VRANGESSRRRI_MASKZ_SAE,
8052 op0.as_operand(),
8053 op1.as_operand(),
8054 op2.as_operand(),
8055 op3.as_operand(),
8056 );
8057 }
8058}
8059
8060pub trait VrangessSaeEmitter<A, B, C, D> {
8072 fn vrangess_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
8073}
8074
8075impl<'a> VrangessSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8076 fn vrangess_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8077 self.emit(
8078 VRANGESSRRRI_SAE,
8079 op0.as_operand(),
8080 op1.as_operand(),
8081 op2.as_operand(),
8082 op3.as_operand(),
8083 );
8084 }
8085}
8086
8087pub trait VreducepdEmitter<A, B, C> {
8104 fn vreducepd(&mut self, op0: A, op1: B, op2: C);
8105}
8106
8107impl<'a> VreducepdEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
8108 fn vreducepd(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
8109 self.emit(
8110 VREDUCEPD128RRI,
8111 op0.as_operand(),
8112 op1.as_operand(),
8113 op2.as_operand(),
8114 &NOREG,
8115 );
8116 }
8117}
8118
8119impl<'a> VreducepdEmitter<Xmm, Mem, Imm> for Assembler<'a> {
8120 fn vreducepd(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
8121 self.emit(
8122 VREDUCEPD128RMI,
8123 op0.as_operand(),
8124 op1.as_operand(),
8125 op2.as_operand(),
8126 &NOREG,
8127 );
8128 }
8129}
8130
8131impl<'a> VreducepdEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
8132 fn vreducepd(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
8133 self.emit(
8134 VREDUCEPD256RRI,
8135 op0.as_operand(),
8136 op1.as_operand(),
8137 op2.as_operand(),
8138 &NOREG,
8139 );
8140 }
8141}
8142
8143impl<'a> VreducepdEmitter<Ymm, Mem, Imm> for Assembler<'a> {
8144 fn vreducepd(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
8145 self.emit(
8146 VREDUCEPD256RMI,
8147 op0.as_operand(),
8148 op1.as_operand(),
8149 op2.as_operand(),
8150 &NOREG,
8151 );
8152 }
8153}
8154
8155impl<'a> VreducepdEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8156 fn vreducepd(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8157 self.emit(
8158 VREDUCEPD512RRI,
8159 op0.as_operand(),
8160 op1.as_operand(),
8161 op2.as_operand(),
8162 &NOREG,
8163 );
8164 }
8165}
8166
8167impl<'a> VreducepdEmitter<Zmm, Mem, Imm> for Assembler<'a> {
8168 fn vreducepd(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
8169 self.emit(
8170 VREDUCEPD512RMI,
8171 op0.as_operand(),
8172 op1.as_operand(),
8173 op2.as_operand(),
8174 &NOREG,
8175 );
8176 }
8177}
8178
8179pub trait VreducepdMaskEmitter<A, B, C> {
8196 fn vreducepd_mask(&mut self, op0: A, op1: B, op2: C);
8197}
8198
8199impl<'a> VreducepdMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
8200 fn vreducepd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
8201 self.emit(
8202 VREDUCEPD128RRI_MASK,
8203 op0.as_operand(),
8204 op1.as_operand(),
8205 op2.as_operand(),
8206 &NOREG,
8207 );
8208 }
8209}
8210
8211impl<'a> VreducepdMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
8212 fn vreducepd_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
8213 self.emit(
8214 VREDUCEPD128RMI_MASK,
8215 op0.as_operand(),
8216 op1.as_operand(),
8217 op2.as_operand(),
8218 &NOREG,
8219 );
8220 }
8221}
8222
8223impl<'a> VreducepdMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
8224 fn vreducepd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
8225 self.emit(
8226 VREDUCEPD256RRI_MASK,
8227 op0.as_operand(),
8228 op1.as_operand(),
8229 op2.as_operand(),
8230 &NOREG,
8231 );
8232 }
8233}
8234
8235impl<'a> VreducepdMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
8236 fn vreducepd_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
8237 self.emit(
8238 VREDUCEPD256RMI_MASK,
8239 op0.as_operand(),
8240 op1.as_operand(),
8241 op2.as_operand(),
8242 &NOREG,
8243 );
8244 }
8245}
8246
8247impl<'a> VreducepdMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8248 fn vreducepd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8249 self.emit(
8250 VREDUCEPD512RRI_MASK,
8251 op0.as_operand(),
8252 op1.as_operand(),
8253 op2.as_operand(),
8254 &NOREG,
8255 );
8256 }
8257}
8258
8259impl<'a> VreducepdMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
8260 fn vreducepd_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
8261 self.emit(
8262 VREDUCEPD512RMI_MASK,
8263 op0.as_operand(),
8264 op1.as_operand(),
8265 op2.as_operand(),
8266 &NOREG,
8267 );
8268 }
8269}
8270
8271pub trait VreducepdMaskSaeEmitter<A, B, C> {
8283 fn vreducepd_mask_sae(&mut self, op0: A, op1: B, op2: C);
8284}
8285
8286impl<'a> VreducepdMaskSaeEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8287 fn vreducepd_mask_sae(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8288 self.emit(
8289 VREDUCEPD512RRI_MASK_SAE,
8290 op0.as_operand(),
8291 op1.as_operand(),
8292 op2.as_operand(),
8293 &NOREG,
8294 );
8295 }
8296}
8297
8298pub trait VreducepdMaskzEmitter<A, B, C> {
8315 fn vreducepd_maskz(&mut self, op0: A, op1: B, op2: C);
8316}
8317
8318impl<'a> VreducepdMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
8319 fn vreducepd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
8320 self.emit(
8321 VREDUCEPD128RRI_MASKZ,
8322 op0.as_operand(),
8323 op1.as_operand(),
8324 op2.as_operand(),
8325 &NOREG,
8326 );
8327 }
8328}
8329
8330impl<'a> VreducepdMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
8331 fn vreducepd_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
8332 self.emit(
8333 VREDUCEPD128RMI_MASKZ,
8334 op0.as_operand(),
8335 op1.as_operand(),
8336 op2.as_operand(),
8337 &NOREG,
8338 );
8339 }
8340}
8341
8342impl<'a> VreducepdMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
8343 fn vreducepd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
8344 self.emit(
8345 VREDUCEPD256RRI_MASKZ,
8346 op0.as_operand(),
8347 op1.as_operand(),
8348 op2.as_operand(),
8349 &NOREG,
8350 );
8351 }
8352}
8353
8354impl<'a> VreducepdMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
8355 fn vreducepd_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
8356 self.emit(
8357 VREDUCEPD256RMI_MASKZ,
8358 op0.as_operand(),
8359 op1.as_operand(),
8360 op2.as_operand(),
8361 &NOREG,
8362 );
8363 }
8364}
8365
8366impl<'a> VreducepdMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8367 fn vreducepd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8368 self.emit(
8369 VREDUCEPD512RRI_MASKZ,
8370 op0.as_operand(),
8371 op1.as_operand(),
8372 op2.as_operand(),
8373 &NOREG,
8374 );
8375 }
8376}
8377
8378impl<'a> VreducepdMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
8379 fn vreducepd_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
8380 self.emit(
8381 VREDUCEPD512RMI_MASKZ,
8382 op0.as_operand(),
8383 op1.as_operand(),
8384 op2.as_operand(),
8385 &NOREG,
8386 );
8387 }
8388}
8389
8390pub trait VreducepdMaskzSaeEmitter<A, B, C> {
8402 fn vreducepd_maskz_sae(&mut self, op0: A, op1: B, op2: C);
8403}
8404
8405impl<'a> VreducepdMaskzSaeEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8406 fn vreducepd_maskz_sae(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8407 self.emit(
8408 VREDUCEPD512RRI_MASKZ_SAE,
8409 op0.as_operand(),
8410 op1.as_operand(),
8411 op2.as_operand(),
8412 &NOREG,
8413 );
8414 }
8415}
8416
8417pub trait VreducepdSaeEmitter<A, B, C> {
8429 fn vreducepd_sae(&mut self, op0: A, op1: B, op2: C);
8430}
8431
8432impl<'a> VreducepdSaeEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8433 fn vreducepd_sae(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8434 self.emit(
8435 VREDUCEPD512RRI_SAE,
8436 op0.as_operand(),
8437 op1.as_operand(),
8438 op2.as_operand(),
8439 &NOREG,
8440 );
8441 }
8442}
8443
8444pub trait VreducepsEmitter<A, B, C> {
8461 fn vreduceps(&mut self, op0: A, op1: B, op2: C);
8462}
8463
8464impl<'a> VreducepsEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
8465 fn vreduceps(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
8466 self.emit(
8467 VREDUCEPS128RRI,
8468 op0.as_operand(),
8469 op1.as_operand(),
8470 op2.as_operand(),
8471 &NOREG,
8472 );
8473 }
8474}
8475
8476impl<'a> VreducepsEmitter<Xmm, Mem, Imm> for Assembler<'a> {
8477 fn vreduceps(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
8478 self.emit(
8479 VREDUCEPS128RMI,
8480 op0.as_operand(),
8481 op1.as_operand(),
8482 op2.as_operand(),
8483 &NOREG,
8484 );
8485 }
8486}
8487
8488impl<'a> VreducepsEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
8489 fn vreduceps(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
8490 self.emit(
8491 VREDUCEPS256RRI,
8492 op0.as_operand(),
8493 op1.as_operand(),
8494 op2.as_operand(),
8495 &NOREG,
8496 );
8497 }
8498}
8499
8500impl<'a> VreducepsEmitter<Ymm, Mem, Imm> for Assembler<'a> {
8501 fn vreduceps(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
8502 self.emit(
8503 VREDUCEPS256RMI,
8504 op0.as_operand(),
8505 op1.as_operand(),
8506 op2.as_operand(),
8507 &NOREG,
8508 );
8509 }
8510}
8511
8512impl<'a> VreducepsEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8513 fn vreduceps(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8514 self.emit(
8515 VREDUCEPS512RRI,
8516 op0.as_operand(),
8517 op1.as_operand(),
8518 op2.as_operand(),
8519 &NOREG,
8520 );
8521 }
8522}
8523
8524impl<'a> VreducepsEmitter<Zmm, Mem, Imm> for Assembler<'a> {
8525 fn vreduceps(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
8526 self.emit(
8527 VREDUCEPS512RMI,
8528 op0.as_operand(),
8529 op1.as_operand(),
8530 op2.as_operand(),
8531 &NOREG,
8532 );
8533 }
8534}
8535
8536pub trait VreducepsMaskEmitter<A, B, C> {
8553 fn vreduceps_mask(&mut self, op0: A, op1: B, op2: C);
8554}
8555
8556impl<'a> VreducepsMaskEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
8557 fn vreduceps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
8558 self.emit(
8559 VREDUCEPS128RRI_MASK,
8560 op0.as_operand(),
8561 op1.as_operand(),
8562 op2.as_operand(),
8563 &NOREG,
8564 );
8565 }
8566}
8567
8568impl<'a> VreducepsMaskEmitter<Xmm, Mem, Imm> for Assembler<'a> {
8569 fn vreduceps_mask(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
8570 self.emit(
8571 VREDUCEPS128RMI_MASK,
8572 op0.as_operand(),
8573 op1.as_operand(),
8574 op2.as_operand(),
8575 &NOREG,
8576 );
8577 }
8578}
8579
8580impl<'a> VreducepsMaskEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
8581 fn vreduceps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
8582 self.emit(
8583 VREDUCEPS256RRI_MASK,
8584 op0.as_operand(),
8585 op1.as_operand(),
8586 op2.as_operand(),
8587 &NOREG,
8588 );
8589 }
8590}
8591
8592impl<'a> VreducepsMaskEmitter<Ymm, Mem, Imm> for Assembler<'a> {
8593 fn vreduceps_mask(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
8594 self.emit(
8595 VREDUCEPS256RMI_MASK,
8596 op0.as_operand(),
8597 op1.as_operand(),
8598 op2.as_operand(),
8599 &NOREG,
8600 );
8601 }
8602}
8603
8604impl<'a> VreducepsMaskEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8605 fn vreduceps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8606 self.emit(
8607 VREDUCEPS512RRI_MASK,
8608 op0.as_operand(),
8609 op1.as_operand(),
8610 op2.as_operand(),
8611 &NOREG,
8612 );
8613 }
8614}
8615
8616impl<'a> VreducepsMaskEmitter<Zmm, Mem, Imm> for Assembler<'a> {
8617 fn vreduceps_mask(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
8618 self.emit(
8619 VREDUCEPS512RMI_MASK,
8620 op0.as_operand(),
8621 op1.as_operand(),
8622 op2.as_operand(),
8623 &NOREG,
8624 );
8625 }
8626}
8627
8628pub trait VreducepsMaskSaeEmitter<A, B, C> {
8640 fn vreduceps_mask_sae(&mut self, op0: A, op1: B, op2: C);
8641}
8642
8643impl<'a> VreducepsMaskSaeEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8644 fn vreduceps_mask_sae(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8645 self.emit(
8646 VREDUCEPS512RRI_MASK_SAE,
8647 op0.as_operand(),
8648 op1.as_operand(),
8649 op2.as_operand(),
8650 &NOREG,
8651 );
8652 }
8653}
8654
8655pub trait VreducepsMaskzEmitter<A, B, C> {
8672 fn vreduceps_maskz(&mut self, op0: A, op1: B, op2: C);
8673}
8674
8675impl<'a> VreducepsMaskzEmitter<Xmm, Xmm, Imm> for Assembler<'a> {
8676 fn vreduceps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Imm) {
8677 self.emit(
8678 VREDUCEPS128RRI_MASKZ,
8679 op0.as_operand(),
8680 op1.as_operand(),
8681 op2.as_operand(),
8682 &NOREG,
8683 );
8684 }
8685}
8686
8687impl<'a> VreducepsMaskzEmitter<Xmm, Mem, Imm> for Assembler<'a> {
8688 fn vreduceps_maskz(&mut self, op0: Xmm, op1: Mem, op2: Imm) {
8689 self.emit(
8690 VREDUCEPS128RMI_MASKZ,
8691 op0.as_operand(),
8692 op1.as_operand(),
8693 op2.as_operand(),
8694 &NOREG,
8695 );
8696 }
8697}
8698
8699impl<'a> VreducepsMaskzEmitter<Ymm, Ymm, Imm> for Assembler<'a> {
8700 fn vreduceps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Imm) {
8701 self.emit(
8702 VREDUCEPS256RRI_MASKZ,
8703 op0.as_operand(),
8704 op1.as_operand(),
8705 op2.as_operand(),
8706 &NOREG,
8707 );
8708 }
8709}
8710
8711impl<'a> VreducepsMaskzEmitter<Ymm, Mem, Imm> for Assembler<'a> {
8712 fn vreduceps_maskz(&mut self, op0: Ymm, op1: Mem, op2: Imm) {
8713 self.emit(
8714 VREDUCEPS256RMI_MASKZ,
8715 op0.as_operand(),
8716 op1.as_operand(),
8717 op2.as_operand(),
8718 &NOREG,
8719 );
8720 }
8721}
8722
8723impl<'a> VreducepsMaskzEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8724 fn vreduceps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8725 self.emit(
8726 VREDUCEPS512RRI_MASKZ,
8727 op0.as_operand(),
8728 op1.as_operand(),
8729 op2.as_operand(),
8730 &NOREG,
8731 );
8732 }
8733}
8734
8735impl<'a> VreducepsMaskzEmitter<Zmm, Mem, Imm> for Assembler<'a> {
8736 fn vreduceps_maskz(&mut self, op0: Zmm, op1: Mem, op2: Imm) {
8737 self.emit(
8738 VREDUCEPS512RMI_MASKZ,
8739 op0.as_operand(),
8740 op1.as_operand(),
8741 op2.as_operand(),
8742 &NOREG,
8743 );
8744 }
8745}
8746
8747pub trait VreducepsMaskzSaeEmitter<A, B, C> {
8759 fn vreduceps_maskz_sae(&mut self, op0: A, op1: B, op2: C);
8760}
8761
8762impl<'a> VreducepsMaskzSaeEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8763 fn vreduceps_maskz_sae(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8764 self.emit(
8765 VREDUCEPS512RRI_MASKZ_SAE,
8766 op0.as_operand(),
8767 op1.as_operand(),
8768 op2.as_operand(),
8769 &NOREG,
8770 );
8771 }
8772}
8773
8774pub trait VreducepsSaeEmitter<A, B, C> {
8786 fn vreduceps_sae(&mut self, op0: A, op1: B, op2: C);
8787}
8788
8789impl<'a> VreducepsSaeEmitter<Zmm, Zmm, Imm> for Assembler<'a> {
8790 fn vreduceps_sae(&mut self, op0: Zmm, op1: Zmm, op2: Imm) {
8791 self.emit(
8792 VREDUCEPS512RRI_SAE,
8793 op0.as_operand(),
8794 op1.as_operand(),
8795 op2.as_operand(),
8796 &NOREG,
8797 );
8798 }
8799}
8800
8801pub trait VreducesdEmitter<A, B, C, D> {
8814 fn vreducesd(&mut self, op0: A, op1: B, op2: C, op3: D);
8815}
8816
8817impl<'a> VreducesdEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8818 fn vreducesd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8819 self.emit(
8820 VREDUCESDRRRI,
8821 op0.as_operand(),
8822 op1.as_operand(),
8823 op2.as_operand(),
8824 op3.as_operand(),
8825 );
8826 }
8827}
8828
8829impl<'a> VreducesdEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
8830 fn vreducesd(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
8831 self.emit(
8832 VREDUCESDRRMI,
8833 op0.as_operand(),
8834 op1.as_operand(),
8835 op2.as_operand(),
8836 op3.as_operand(),
8837 );
8838 }
8839}
8840
8841pub trait VreducesdMaskEmitter<A, B, C, D> {
8854 fn vreducesd_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
8855}
8856
8857impl<'a> VreducesdMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8858 fn vreducesd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8859 self.emit(
8860 VREDUCESDRRRI_MASK,
8861 op0.as_operand(),
8862 op1.as_operand(),
8863 op2.as_operand(),
8864 op3.as_operand(),
8865 );
8866 }
8867}
8868
8869impl<'a> VreducesdMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
8870 fn vreducesd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
8871 self.emit(
8872 VREDUCESDRRMI_MASK,
8873 op0.as_operand(),
8874 op1.as_operand(),
8875 op2.as_operand(),
8876 op3.as_operand(),
8877 );
8878 }
8879}
8880
8881pub trait VreducesdMaskSaeEmitter<A, B, C, D> {
8893 fn vreducesd_mask_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
8894}
8895
8896impl<'a> VreducesdMaskSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8897 fn vreducesd_mask_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8898 self.emit(
8899 VREDUCESDRRRI_MASK_SAE,
8900 op0.as_operand(),
8901 op1.as_operand(),
8902 op2.as_operand(),
8903 op3.as_operand(),
8904 );
8905 }
8906}
8907
8908pub trait VreducesdMaskzEmitter<A, B, C, D> {
8921 fn vreducesd_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
8922}
8923
8924impl<'a> VreducesdMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8925 fn vreducesd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8926 self.emit(
8927 VREDUCESDRRRI_MASKZ,
8928 op0.as_operand(),
8929 op1.as_operand(),
8930 op2.as_operand(),
8931 op3.as_operand(),
8932 );
8933 }
8934}
8935
8936impl<'a> VreducesdMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
8937 fn vreducesd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
8938 self.emit(
8939 VREDUCESDRRMI_MASKZ,
8940 op0.as_operand(),
8941 op1.as_operand(),
8942 op2.as_operand(),
8943 op3.as_operand(),
8944 );
8945 }
8946}
8947
8948pub trait VreducesdMaskzSaeEmitter<A, B, C, D> {
8960 fn vreducesd_maskz_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
8961}
8962
8963impl<'a> VreducesdMaskzSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8964 fn vreducesd_maskz_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8965 self.emit(
8966 VREDUCESDRRRI_MASKZ_SAE,
8967 op0.as_operand(),
8968 op1.as_operand(),
8969 op2.as_operand(),
8970 op3.as_operand(),
8971 );
8972 }
8973}
8974
8975pub trait VreducesdSaeEmitter<A, B, C, D> {
8987 fn vreducesd_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
8988}
8989
8990impl<'a> VreducesdSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
8991 fn vreducesd_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
8992 self.emit(
8993 VREDUCESDRRRI_SAE,
8994 op0.as_operand(),
8995 op1.as_operand(),
8996 op2.as_operand(),
8997 op3.as_operand(),
8998 );
8999 }
9000}
9001
9002pub trait VreducessEmitter<A, B, C, D> {
9015 fn vreducess(&mut self, op0: A, op1: B, op2: C, op3: D);
9016}
9017
9018impl<'a> VreducessEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
9019 fn vreducess(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
9020 self.emit(
9021 VREDUCESSRRRI,
9022 op0.as_operand(),
9023 op1.as_operand(),
9024 op2.as_operand(),
9025 op3.as_operand(),
9026 );
9027 }
9028}
9029
9030impl<'a> VreducessEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
9031 fn vreducess(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
9032 self.emit(
9033 VREDUCESSRRMI,
9034 op0.as_operand(),
9035 op1.as_operand(),
9036 op2.as_operand(),
9037 op3.as_operand(),
9038 );
9039 }
9040}
9041
9042pub trait VreducessMaskEmitter<A, B, C, D> {
9055 fn vreducess_mask(&mut self, op0: A, op1: B, op2: C, op3: D);
9056}
9057
9058impl<'a> VreducessMaskEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
9059 fn vreducess_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
9060 self.emit(
9061 VREDUCESSRRRI_MASK,
9062 op0.as_operand(),
9063 op1.as_operand(),
9064 op2.as_operand(),
9065 op3.as_operand(),
9066 );
9067 }
9068}
9069
9070impl<'a> VreducessMaskEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
9071 fn vreducess_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
9072 self.emit(
9073 VREDUCESSRRMI_MASK,
9074 op0.as_operand(),
9075 op1.as_operand(),
9076 op2.as_operand(),
9077 op3.as_operand(),
9078 );
9079 }
9080}
9081
9082pub trait VreducessMaskSaeEmitter<A, B, C, D> {
9094 fn vreducess_mask_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
9095}
9096
9097impl<'a> VreducessMaskSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
9098 fn vreducess_mask_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
9099 self.emit(
9100 VREDUCESSRRRI_MASK_SAE,
9101 op0.as_operand(),
9102 op1.as_operand(),
9103 op2.as_operand(),
9104 op3.as_operand(),
9105 );
9106 }
9107}
9108
9109pub trait VreducessMaskzEmitter<A, B, C, D> {
9122 fn vreducess_maskz(&mut self, op0: A, op1: B, op2: C, op3: D);
9123}
9124
9125impl<'a> VreducessMaskzEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
9126 fn vreducess_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
9127 self.emit(
9128 VREDUCESSRRRI_MASKZ,
9129 op0.as_operand(),
9130 op1.as_operand(),
9131 op2.as_operand(),
9132 op3.as_operand(),
9133 );
9134 }
9135}
9136
9137impl<'a> VreducessMaskzEmitter<Xmm, Xmm, Mem, Imm> for Assembler<'a> {
9138 fn vreducess_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem, op3: Imm) {
9139 self.emit(
9140 VREDUCESSRRMI_MASKZ,
9141 op0.as_operand(),
9142 op1.as_operand(),
9143 op2.as_operand(),
9144 op3.as_operand(),
9145 );
9146 }
9147}
9148
9149pub trait VreducessMaskzSaeEmitter<A, B, C, D> {
9161 fn vreducess_maskz_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
9162}
9163
9164impl<'a> VreducessMaskzSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
9165 fn vreducess_maskz_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
9166 self.emit(
9167 VREDUCESSRRRI_MASKZ_SAE,
9168 op0.as_operand(),
9169 op1.as_operand(),
9170 op2.as_operand(),
9171 op3.as_operand(),
9172 );
9173 }
9174}
9175
9176pub trait VreducessSaeEmitter<A, B, C, D> {
9188 fn vreducess_sae(&mut self, op0: A, op1: B, op2: C, op3: D);
9189}
9190
9191impl<'a> VreducessSaeEmitter<Xmm, Xmm, Xmm, Imm> for Assembler<'a> {
9192 fn vreducess_sae(&mut self, op0: Xmm, op1: Xmm, op2: Xmm, op3: Imm) {
9193 self.emit(
9194 VREDUCESSRRRI_SAE,
9195 op0.as_operand(),
9196 op1.as_operand(),
9197 op2.as_operand(),
9198 op3.as_operand(),
9199 );
9200 }
9201}
9202
9203pub trait VxorpdEmitter<A, B, C> {
9220 fn vxorpd(&mut self, op0: A, op1: B, op2: C);
9221}
9222
9223impl<'a> VxorpdEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9224 fn vxorpd(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9225 self.emit(
9226 VXORPD128RRR,
9227 op0.as_operand(),
9228 op1.as_operand(),
9229 op2.as_operand(),
9230 &NOREG,
9231 );
9232 }
9233}
9234
9235impl<'a> VxorpdEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9236 fn vxorpd(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9237 self.emit(
9238 VXORPD128RRM,
9239 op0.as_operand(),
9240 op1.as_operand(),
9241 op2.as_operand(),
9242 &NOREG,
9243 );
9244 }
9245}
9246
9247impl<'a> VxorpdEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9248 fn vxorpd(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9249 self.emit(
9250 VXORPD256RRR,
9251 op0.as_operand(),
9252 op1.as_operand(),
9253 op2.as_operand(),
9254 &NOREG,
9255 );
9256 }
9257}
9258
9259impl<'a> VxorpdEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9260 fn vxorpd(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9261 self.emit(
9262 VXORPD256RRM,
9263 op0.as_operand(),
9264 op1.as_operand(),
9265 op2.as_operand(),
9266 &NOREG,
9267 );
9268 }
9269}
9270
9271impl<'a> VxorpdEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9272 fn vxorpd(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9273 self.emit(
9274 VXORPD512RRR,
9275 op0.as_operand(),
9276 op1.as_operand(),
9277 op2.as_operand(),
9278 &NOREG,
9279 );
9280 }
9281}
9282
9283impl<'a> VxorpdEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9284 fn vxorpd(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9285 self.emit(
9286 VXORPD512RRM,
9287 op0.as_operand(),
9288 op1.as_operand(),
9289 op2.as_operand(),
9290 &NOREG,
9291 );
9292 }
9293}
9294
9295pub trait VxorpdMaskEmitter<A, B, C> {
9312 fn vxorpd_mask(&mut self, op0: A, op1: B, op2: C);
9313}
9314
9315impl<'a> VxorpdMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9316 fn vxorpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9317 self.emit(
9318 VXORPD128RRR_MASK,
9319 op0.as_operand(),
9320 op1.as_operand(),
9321 op2.as_operand(),
9322 &NOREG,
9323 );
9324 }
9325}
9326
9327impl<'a> VxorpdMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9328 fn vxorpd_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9329 self.emit(
9330 VXORPD128RRM_MASK,
9331 op0.as_operand(),
9332 op1.as_operand(),
9333 op2.as_operand(),
9334 &NOREG,
9335 );
9336 }
9337}
9338
9339impl<'a> VxorpdMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9340 fn vxorpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9341 self.emit(
9342 VXORPD256RRR_MASK,
9343 op0.as_operand(),
9344 op1.as_operand(),
9345 op2.as_operand(),
9346 &NOREG,
9347 );
9348 }
9349}
9350
9351impl<'a> VxorpdMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9352 fn vxorpd_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9353 self.emit(
9354 VXORPD256RRM_MASK,
9355 op0.as_operand(),
9356 op1.as_operand(),
9357 op2.as_operand(),
9358 &NOREG,
9359 );
9360 }
9361}
9362
9363impl<'a> VxorpdMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9364 fn vxorpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9365 self.emit(
9366 VXORPD512RRR_MASK,
9367 op0.as_operand(),
9368 op1.as_operand(),
9369 op2.as_operand(),
9370 &NOREG,
9371 );
9372 }
9373}
9374
9375impl<'a> VxorpdMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9376 fn vxorpd_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9377 self.emit(
9378 VXORPD512RRM_MASK,
9379 op0.as_operand(),
9380 op1.as_operand(),
9381 op2.as_operand(),
9382 &NOREG,
9383 );
9384 }
9385}
9386
9387pub trait VxorpdMaskzEmitter<A, B, C> {
9404 fn vxorpd_maskz(&mut self, op0: A, op1: B, op2: C);
9405}
9406
9407impl<'a> VxorpdMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9408 fn vxorpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9409 self.emit(
9410 VXORPD128RRR_MASKZ,
9411 op0.as_operand(),
9412 op1.as_operand(),
9413 op2.as_operand(),
9414 &NOREG,
9415 );
9416 }
9417}
9418
9419impl<'a> VxorpdMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9420 fn vxorpd_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9421 self.emit(
9422 VXORPD128RRM_MASKZ,
9423 op0.as_operand(),
9424 op1.as_operand(),
9425 op2.as_operand(),
9426 &NOREG,
9427 );
9428 }
9429}
9430
9431impl<'a> VxorpdMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9432 fn vxorpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9433 self.emit(
9434 VXORPD256RRR_MASKZ,
9435 op0.as_operand(),
9436 op1.as_operand(),
9437 op2.as_operand(),
9438 &NOREG,
9439 );
9440 }
9441}
9442
9443impl<'a> VxorpdMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9444 fn vxorpd_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9445 self.emit(
9446 VXORPD256RRM_MASKZ,
9447 op0.as_operand(),
9448 op1.as_operand(),
9449 op2.as_operand(),
9450 &NOREG,
9451 );
9452 }
9453}
9454
9455impl<'a> VxorpdMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9456 fn vxorpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9457 self.emit(
9458 VXORPD512RRR_MASKZ,
9459 op0.as_operand(),
9460 op1.as_operand(),
9461 op2.as_operand(),
9462 &NOREG,
9463 );
9464 }
9465}
9466
9467impl<'a> VxorpdMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9468 fn vxorpd_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9469 self.emit(
9470 VXORPD512RRM_MASKZ,
9471 op0.as_operand(),
9472 op1.as_operand(),
9473 op2.as_operand(),
9474 &NOREG,
9475 );
9476 }
9477}
9478
9479pub trait VxorpsEmitter<A, B, C> {
9496 fn vxorps(&mut self, op0: A, op1: B, op2: C);
9497}
9498
9499impl<'a> VxorpsEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9500 fn vxorps(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9501 self.emit(
9502 VXORPS128RRR,
9503 op0.as_operand(),
9504 op1.as_operand(),
9505 op2.as_operand(),
9506 &NOREG,
9507 );
9508 }
9509}
9510
9511impl<'a> VxorpsEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9512 fn vxorps(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9513 self.emit(
9514 VXORPS128RRM,
9515 op0.as_operand(),
9516 op1.as_operand(),
9517 op2.as_operand(),
9518 &NOREG,
9519 );
9520 }
9521}
9522
9523impl<'a> VxorpsEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9524 fn vxorps(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9525 self.emit(
9526 VXORPS256RRR,
9527 op0.as_operand(),
9528 op1.as_operand(),
9529 op2.as_operand(),
9530 &NOREG,
9531 );
9532 }
9533}
9534
9535impl<'a> VxorpsEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9536 fn vxorps(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9537 self.emit(
9538 VXORPS256RRM,
9539 op0.as_operand(),
9540 op1.as_operand(),
9541 op2.as_operand(),
9542 &NOREG,
9543 );
9544 }
9545}
9546
9547impl<'a> VxorpsEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9548 fn vxorps(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9549 self.emit(
9550 VXORPS512RRR,
9551 op0.as_operand(),
9552 op1.as_operand(),
9553 op2.as_operand(),
9554 &NOREG,
9555 );
9556 }
9557}
9558
9559impl<'a> VxorpsEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9560 fn vxorps(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9561 self.emit(
9562 VXORPS512RRM,
9563 op0.as_operand(),
9564 op1.as_operand(),
9565 op2.as_operand(),
9566 &NOREG,
9567 );
9568 }
9569}
9570
9571pub trait VxorpsMaskEmitter<A, B, C> {
9588 fn vxorps_mask(&mut self, op0: A, op1: B, op2: C);
9589}
9590
9591impl<'a> VxorpsMaskEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9592 fn vxorps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9593 self.emit(
9594 VXORPS128RRR_MASK,
9595 op0.as_operand(),
9596 op1.as_operand(),
9597 op2.as_operand(),
9598 &NOREG,
9599 );
9600 }
9601}
9602
9603impl<'a> VxorpsMaskEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9604 fn vxorps_mask(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9605 self.emit(
9606 VXORPS128RRM_MASK,
9607 op0.as_operand(),
9608 op1.as_operand(),
9609 op2.as_operand(),
9610 &NOREG,
9611 );
9612 }
9613}
9614
9615impl<'a> VxorpsMaskEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9616 fn vxorps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9617 self.emit(
9618 VXORPS256RRR_MASK,
9619 op0.as_operand(),
9620 op1.as_operand(),
9621 op2.as_operand(),
9622 &NOREG,
9623 );
9624 }
9625}
9626
9627impl<'a> VxorpsMaskEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9628 fn vxorps_mask(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9629 self.emit(
9630 VXORPS256RRM_MASK,
9631 op0.as_operand(),
9632 op1.as_operand(),
9633 op2.as_operand(),
9634 &NOREG,
9635 );
9636 }
9637}
9638
9639impl<'a> VxorpsMaskEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9640 fn vxorps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9641 self.emit(
9642 VXORPS512RRR_MASK,
9643 op0.as_operand(),
9644 op1.as_operand(),
9645 op2.as_operand(),
9646 &NOREG,
9647 );
9648 }
9649}
9650
9651impl<'a> VxorpsMaskEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9652 fn vxorps_mask(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9653 self.emit(
9654 VXORPS512RRM_MASK,
9655 op0.as_operand(),
9656 op1.as_operand(),
9657 op2.as_operand(),
9658 &NOREG,
9659 );
9660 }
9661}
9662
9663pub trait VxorpsMaskzEmitter<A, B, C> {
9680 fn vxorps_maskz(&mut self, op0: A, op1: B, op2: C);
9681}
9682
9683impl<'a> VxorpsMaskzEmitter<Xmm, Xmm, Xmm> for Assembler<'a> {
9684 fn vxorps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Xmm) {
9685 self.emit(
9686 VXORPS128RRR_MASKZ,
9687 op0.as_operand(),
9688 op1.as_operand(),
9689 op2.as_operand(),
9690 &NOREG,
9691 );
9692 }
9693}
9694
9695impl<'a> VxorpsMaskzEmitter<Xmm, Xmm, Mem> for Assembler<'a> {
9696 fn vxorps_maskz(&mut self, op0: Xmm, op1: Xmm, op2: Mem) {
9697 self.emit(
9698 VXORPS128RRM_MASKZ,
9699 op0.as_operand(),
9700 op1.as_operand(),
9701 op2.as_operand(),
9702 &NOREG,
9703 );
9704 }
9705}
9706
9707impl<'a> VxorpsMaskzEmitter<Ymm, Ymm, Ymm> for Assembler<'a> {
9708 fn vxorps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Ymm) {
9709 self.emit(
9710 VXORPS256RRR_MASKZ,
9711 op0.as_operand(),
9712 op1.as_operand(),
9713 op2.as_operand(),
9714 &NOREG,
9715 );
9716 }
9717}
9718
9719impl<'a> VxorpsMaskzEmitter<Ymm, Ymm, Mem> for Assembler<'a> {
9720 fn vxorps_maskz(&mut self, op0: Ymm, op1: Ymm, op2: Mem) {
9721 self.emit(
9722 VXORPS256RRM_MASKZ,
9723 op0.as_operand(),
9724 op1.as_operand(),
9725 op2.as_operand(),
9726 &NOREG,
9727 );
9728 }
9729}
9730
9731impl<'a> VxorpsMaskzEmitter<Zmm, Zmm, Zmm> for Assembler<'a> {
9732 fn vxorps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Zmm) {
9733 self.emit(
9734 VXORPS512RRR_MASKZ,
9735 op0.as_operand(),
9736 op1.as_operand(),
9737 op2.as_operand(),
9738 &NOREG,
9739 );
9740 }
9741}
9742
9743impl<'a> VxorpsMaskzEmitter<Zmm, Zmm, Mem> for Assembler<'a> {
9744 fn vxorps_maskz(&mut self, op0: Zmm, op1: Zmm, op2: Mem) {
9745 self.emit(
9746 VXORPS512RRM_MASKZ,
9747 op0.as_operand(),
9748 op1.as_operand(),
9749 op2.as_operand(),
9750 &NOREG,
9751 );
9752 }
9753}
9754
9755impl<'a> Assembler<'a> {
9756 #[inline]
9768 pub fn kaddb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9769 where
9770 Assembler<'a>: KaddbEmitter<A, B, C>,
9771 {
9772 <Self as KaddbEmitter<A, B, C>>::kaddb(self, op0, op1, op2);
9773 }
9774 #[inline]
9786 pub fn kaddw<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9787 where
9788 Assembler<'a>: KaddwEmitter<A, B, C>,
9789 {
9790 <Self as KaddwEmitter<A, B, C>>::kaddw(self, op0, op1, op2);
9791 }
9792 #[inline]
9804 pub fn kandb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9805 where
9806 Assembler<'a>: KandbEmitter<A, B, C>,
9807 {
9808 <Self as KandbEmitter<A, B, C>>::kandb(self, op0, op1, op2);
9809 }
9810 #[inline]
9822 pub fn kandnb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9823 where
9824 Assembler<'a>: KandnbEmitter<A, B, C>,
9825 {
9826 <Self as KandnbEmitter<A, B, C>>::kandnb(self, op0, op1, op2);
9827 }
9828 #[inline]
9844 pub fn kmovb<A, B>(&mut self, op0: A, op1: B)
9845 where
9846 Assembler<'a>: KmovbEmitter<A, B>,
9847 {
9848 <Self as KmovbEmitter<A, B>>::kmovb(self, op0, op1);
9849 }
9850 #[inline]
9862 pub fn knotb<A, B>(&mut self, op0: A, op1: B)
9863 where
9864 Assembler<'a>: KnotbEmitter<A, B>,
9865 {
9866 <Self as KnotbEmitter<A, B>>::knotb(self, op0, op1);
9867 }
9868 #[inline]
9880 pub fn korb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9881 where
9882 Assembler<'a>: KorbEmitter<A, B, C>,
9883 {
9884 <Self as KorbEmitter<A, B, C>>::korb(self, op0, op1, op2);
9885 }
9886 #[inline]
9898 pub fn kortestb<A, B>(&mut self, op0: A, op1: B)
9899 where
9900 Assembler<'a>: KortestbEmitter<A, B>,
9901 {
9902 <Self as KortestbEmitter<A, B>>::kortestb(self, op0, op1);
9903 }
9904 #[inline]
9916 pub fn kshiftlb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9917 where
9918 Assembler<'a>: KshiftlbEmitter<A, B, C>,
9919 {
9920 <Self as KshiftlbEmitter<A, B, C>>::kshiftlb(self, op0, op1, op2);
9921 }
9922 #[inline]
9934 pub fn kshiftrb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9935 where
9936 Assembler<'a>: KshiftrbEmitter<A, B, C>,
9937 {
9938 <Self as KshiftrbEmitter<A, B, C>>::kshiftrb(self, op0, op1, op2);
9939 }
9940 #[inline]
9952 pub fn ktestb<A, B>(&mut self, op0: A, op1: B)
9953 where
9954 Assembler<'a>: KtestbEmitter<A, B>,
9955 {
9956 <Self as KtestbEmitter<A, B>>::ktestb(self, op0, op1);
9957 }
9958 #[inline]
9970 pub fn ktestw<A, B>(&mut self, op0: A, op1: B)
9971 where
9972 Assembler<'a>: KtestwEmitter<A, B>,
9973 {
9974 <Self as KtestwEmitter<A, B>>::ktestw(self, op0, op1);
9975 }
9976 #[inline]
9988 pub fn kxnorb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
9989 where
9990 Assembler<'a>: KxnorbEmitter<A, B, C>,
9991 {
9992 <Self as KxnorbEmitter<A, B, C>>::kxnorb(self, op0, op1, op2);
9993 }
9994 #[inline]
10006 pub fn kxorb<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10007 where
10008 Assembler<'a>: KxorbEmitter<A, B, C>,
10009 {
10010 <Self as KxorbEmitter<A, B, C>>::kxorb(self, op0, op1, op2);
10011 }
10012 #[inline]
10029 pub fn vandnpd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10030 where
10031 Assembler<'a>: VandnpdEmitter<A, B, C>,
10032 {
10033 <Self as VandnpdEmitter<A, B, C>>::vandnpd(self, op0, op1, op2);
10034 }
10035 #[inline]
10052 pub fn vandnpd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10053 where
10054 Assembler<'a>: VandnpdMaskEmitter<A, B, C>,
10055 {
10056 <Self as VandnpdMaskEmitter<A, B, C>>::vandnpd_mask(self, op0, op1, op2);
10057 }
10058 #[inline]
10075 pub fn vandnpd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10076 where
10077 Assembler<'a>: VandnpdMaskzEmitter<A, B, C>,
10078 {
10079 <Self as VandnpdMaskzEmitter<A, B, C>>::vandnpd_maskz(self, op0, op1, op2);
10080 }
10081 #[inline]
10098 pub fn vandnps<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10099 where
10100 Assembler<'a>: VandnpsEmitter<A, B, C>,
10101 {
10102 <Self as VandnpsEmitter<A, B, C>>::vandnps(self, op0, op1, op2);
10103 }
10104 #[inline]
10121 pub fn vandnps_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10122 where
10123 Assembler<'a>: VandnpsMaskEmitter<A, B, C>,
10124 {
10125 <Self as VandnpsMaskEmitter<A, B, C>>::vandnps_mask(self, op0, op1, op2);
10126 }
10127 #[inline]
10144 pub fn vandnps_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10145 where
10146 Assembler<'a>: VandnpsMaskzEmitter<A, B, C>,
10147 {
10148 <Self as VandnpsMaskzEmitter<A, B, C>>::vandnps_maskz(self, op0, op1, op2);
10149 }
10150 #[inline]
10167 pub fn vandpd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10168 where
10169 Assembler<'a>: VandpdEmitter<A, B, C>,
10170 {
10171 <Self as VandpdEmitter<A, B, C>>::vandpd(self, op0, op1, op2);
10172 }
10173 #[inline]
10190 pub fn vandpd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10191 where
10192 Assembler<'a>: VandpdMaskEmitter<A, B, C>,
10193 {
10194 <Self as VandpdMaskEmitter<A, B, C>>::vandpd_mask(self, op0, op1, op2);
10195 }
10196 #[inline]
10213 pub fn vandpd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10214 where
10215 Assembler<'a>: VandpdMaskzEmitter<A, B, C>,
10216 {
10217 <Self as VandpdMaskzEmitter<A, B, C>>::vandpd_maskz(self, op0, op1, op2);
10218 }
10219 #[inline]
10236 pub fn vandps<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10237 where
10238 Assembler<'a>: VandpsEmitter<A, B, C>,
10239 {
10240 <Self as VandpsEmitter<A, B, C>>::vandps(self, op0, op1, op2);
10241 }
10242 #[inline]
10259 pub fn vandps_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10260 where
10261 Assembler<'a>: VandpsMaskEmitter<A, B, C>,
10262 {
10263 <Self as VandpsMaskEmitter<A, B, C>>::vandps_mask(self, op0, op1, op2);
10264 }
10265 #[inline]
10282 pub fn vandps_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
10283 where
10284 Assembler<'a>: VandpsMaskzEmitter<A, B, C>,
10285 {
10286 <Self as VandpsMaskzEmitter<A, B, C>>::vandps_maskz(self, op0, op1, op2);
10287 }
10288 #[inline]
10303 pub fn vbroadcastf32x2<A, B>(&mut self, op0: A, op1: B)
10304 where
10305 Assembler<'a>: Vbroadcastf32x2Emitter<A, B>,
10306 {
10307 <Self as Vbroadcastf32x2Emitter<A, B>>::vbroadcastf32x2(self, op0, op1);
10308 }
10309 #[inline]
10324 pub fn vbroadcastf32x2_mask<A, B>(&mut self, op0: A, op1: B)
10325 where
10326 Assembler<'a>: Vbroadcastf32x2MaskEmitter<A, B>,
10327 {
10328 <Self as Vbroadcastf32x2MaskEmitter<A, B>>::vbroadcastf32x2_mask(self, op0, op1);
10329 }
10330 #[inline]
10345 pub fn vbroadcastf32x2_maskz<A, B>(&mut self, op0: A, op1: B)
10346 where
10347 Assembler<'a>: Vbroadcastf32x2MaskzEmitter<A, B>,
10348 {
10349 <Self as Vbroadcastf32x2MaskzEmitter<A, B>>::vbroadcastf32x2_maskz(self, op0, op1);
10350 }
10351 #[inline]
10363 pub fn vbroadcastf32x8<A, B>(&mut self, op0: A, op1: B)
10364 where
10365 Assembler<'a>: Vbroadcastf32x8Emitter<A, B>,
10366 {
10367 <Self as Vbroadcastf32x8Emitter<A, B>>::vbroadcastf32x8(self, op0, op1);
10368 }
10369 #[inline]
10381 pub fn vbroadcastf32x8_mask<A, B>(&mut self, op0: A, op1: B)
10382 where
10383 Assembler<'a>: Vbroadcastf32x8MaskEmitter<A, B>,
10384 {
10385 <Self as Vbroadcastf32x8MaskEmitter<A, B>>::vbroadcastf32x8_mask(self, op0, op1);
10386 }
10387 #[inline]
10399 pub fn vbroadcastf32x8_maskz<A, B>(&mut self, op0: A, op1: B)
10400 where
10401 Assembler<'a>: Vbroadcastf32x8MaskzEmitter<A, B>,
10402 {
10403 <Self as Vbroadcastf32x8MaskzEmitter<A, B>>::vbroadcastf32x8_maskz(self, op0, op1);
10404 }
10405 #[inline]
10418 pub fn vbroadcastf64x2<A, B>(&mut self, op0: A, op1: B)
10419 where
10420 Assembler<'a>: Vbroadcastf64x2Emitter<A, B>,
10421 {
10422 <Self as Vbroadcastf64x2Emitter<A, B>>::vbroadcastf64x2(self, op0, op1);
10423 }
10424 #[inline]
10437 pub fn vbroadcastf64x2_mask<A, B>(&mut self, op0: A, op1: B)
10438 where
10439 Assembler<'a>: Vbroadcastf64x2MaskEmitter<A, B>,
10440 {
10441 <Self as Vbroadcastf64x2MaskEmitter<A, B>>::vbroadcastf64x2_mask(self, op0, op1);
10442 }
10443 #[inline]
10456 pub fn vbroadcastf64x2_maskz<A, B>(&mut self, op0: A, op1: B)
10457 where
10458 Assembler<'a>: Vbroadcastf64x2MaskzEmitter<A, B>,
10459 {
10460 <Self as Vbroadcastf64x2MaskzEmitter<A, B>>::vbroadcastf64x2_maskz(self, op0, op1);
10461 }
10462 #[inline]
10479 pub fn vbroadcasti32x2<A, B>(&mut self, op0: A, op1: B)
10480 where
10481 Assembler<'a>: Vbroadcasti32x2Emitter<A, B>,
10482 {
10483 <Self as Vbroadcasti32x2Emitter<A, B>>::vbroadcasti32x2(self, op0, op1);
10484 }
10485 #[inline]
10502 pub fn vbroadcasti32x2_mask<A, B>(&mut self, op0: A, op1: B)
10503 where
10504 Assembler<'a>: Vbroadcasti32x2MaskEmitter<A, B>,
10505 {
10506 <Self as Vbroadcasti32x2MaskEmitter<A, B>>::vbroadcasti32x2_mask(self, op0, op1);
10507 }
10508 #[inline]
10525 pub fn vbroadcasti32x2_maskz<A, B>(&mut self, op0: A, op1: B)
10526 where
10527 Assembler<'a>: Vbroadcasti32x2MaskzEmitter<A, B>,
10528 {
10529 <Self as Vbroadcasti32x2MaskzEmitter<A, B>>::vbroadcasti32x2_maskz(self, op0, op1);
10530 }
10531 #[inline]
10544 pub fn vbroadcasti32x4<A, B>(&mut self, op0: A, op1: B)
10545 where
10546 Assembler<'a>: Vbroadcasti32x4Emitter<A, B>,
10547 {
10548 <Self as Vbroadcasti32x4Emitter<A, B>>::vbroadcasti32x4(self, op0, op1);
10549 }
10550 #[inline]
10563 pub fn vbroadcasti32x4_mask<A, B>(&mut self, op0: A, op1: B)
10564 where
10565 Assembler<'a>: Vbroadcasti32x4MaskEmitter<A, B>,
10566 {
10567 <Self as Vbroadcasti32x4MaskEmitter<A, B>>::vbroadcasti32x4_mask(self, op0, op1);
10568 }
10569 #[inline]
10582 pub fn vbroadcasti32x4_maskz<A, B>(&mut self, op0: A, op1: B)
10583 where
10584 Assembler<'a>: Vbroadcasti32x4MaskzEmitter<A, B>,
10585 {
10586 <Self as Vbroadcasti32x4MaskzEmitter<A, B>>::vbroadcasti32x4_maskz(self, op0, op1);
10587 }
10588 #[inline]
10600 pub fn vbroadcasti32x8<A, B>(&mut self, op0: A, op1: B)
10601 where
10602 Assembler<'a>: Vbroadcasti32x8Emitter<A, B>,
10603 {
10604 <Self as Vbroadcasti32x8Emitter<A, B>>::vbroadcasti32x8(self, op0, op1);
10605 }
10606 #[inline]
10618 pub fn vbroadcasti32x8_mask<A, B>(&mut self, op0: A, op1: B)
10619 where
10620 Assembler<'a>: Vbroadcasti32x8MaskEmitter<A, B>,
10621 {
10622 <Self as Vbroadcasti32x8MaskEmitter<A, B>>::vbroadcasti32x8_mask(self, op0, op1);
10623 }
10624 #[inline]
10636 pub fn vbroadcasti32x8_maskz<A, B>(&mut self, op0: A, op1: B)
10637 where
10638 Assembler<'a>: Vbroadcasti32x8MaskzEmitter<A, B>,
10639 {
10640 <Self as Vbroadcasti32x8MaskzEmitter<A, B>>::vbroadcasti32x8_maskz(self, op0, op1);
10641 }
10642 #[inline]
10655 pub fn vbroadcasti64x2<A, B>(&mut self, op0: A, op1: B)
10656 where
10657 Assembler<'a>: Vbroadcasti64x2Emitter<A, B>,
10658 {
10659 <Self as Vbroadcasti64x2Emitter<A, B>>::vbroadcasti64x2(self, op0, op1);
10660 }
10661 #[inline]
10674 pub fn vbroadcasti64x2_mask<A, B>(&mut self, op0: A, op1: B)
10675 where
10676 Assembler<'a>: Vbroadcasti64x2MaskEmitter<A, B>,
10677 {
10678 <Self as Vbroadcasti64x2MaskEmitter<A, B>>::vbroadcasti64x2_mask(self, op0, op1);
10679 }
10680 #[inline]
10693 pub fn vbroadcasti64x2_maskz<A, B>(&mut self, op0: A, op1: B)
10694 where
10695 Assembler<'a>: Vbroadcasti64x2MaskzEmitter<A, B>,
10696 {
10697 <Self as Vbroadcasti64x2MaskzEmitter<A, B>>::vbroadcasti64x2_maskz(self, op0, op1);
10698 }
10699 #[inline]
10716 pub fn vcvtpd2qq<A, B>(&mut self, op0: A, op1: B)
10717 where
10718 Assembler<'a>: Vcvtpd2qqEmitter<A, B>,
10719 {
10720 <Self as Vcvtpd2qqEmitter<A, B>>::vcvtpd2qq(self, op0, op1);
10721 }
10722 #[inline]
10734 pub fn vcvtpd2qq_er<A, B>(&mut self, op0: A, op1: B)
10735 where
10736 Assembler<'a>: Vcvtpd2qqErEmitter<A, B>,
10737 {
10738 <Self as Vcvtpd2qqErEmitter<A, B>>::vcvtpd2qq_er(self, op0, op1);
10739 }
10740 #[inline]
10757 pub fn vcvtpd2qq_mask<A, B>(&mut self, op0: A, op1: B)
10758 where
10759 Assembler<'a>: Vcvtpd2qqMaskEmitter<A, B>,
10760 {
10761 <Self as Vcvtpd2qqMaskEmitter<A, B>>::vcvtpd2qq_mask(self, op0, op1);
10762 }
10763 #[inline]
10775 pub fn vcvtpd2qq_mask_er<A, B>(&mut self, op0: A, op1: B)
10776 where
10777 Assembler<'a>: Vcvtpd2qqMaskErEmitter<A, B>,
10778 {
10779 <Self as Vcvtpd2qqMaskErEmitter<A, B>>::vcvtpd2qq_mask_er(self, op0, op1);
10780 }
10781 #[inline]
10798 pub fn vcvtpd2qq_maskz<A, B>(&mut self, op0: A, op1: B)
10799 where
10800 Assembler<'a>: Vcvtpd2qqMaskzEmitter<A, B>,
10801 {
10802 <Self as Vcvtpd2qqMaskzEmitter<A, B>>::vcvtpd2qq_maskz(self, op0, op1);
10803 }
10804 #[inline]
10816 pub fn vcvtpd2qq_maskz_er<A, B>(&mut self, op0: A, op1: B)
10817 where
10818 Assembler<'a>: Vcvtpd2qqMaskzErEmitter<A, B>,
10819 {
10820 <Self as Vcvtpd2qqMaskzErEmitter<A, B>>::vcvtpd2qq_maskz_er(self, op0, op1);
10821 }
10822 #[inline]
10839 pub fn vcvtps2qq<A, B>(&mut self, op0: A, op1: B)
10840 where
10841 Assembler<'a>: Vcvtps2qqEmitter<A, B>,
10842 {
10843 <Self as Vcvtps2qqEmitter<A, B>>::vcvtps2qq(self, op0, op1);
10844 }
10845 #[inline]
10857 pub fn vcvtps2qq_er<A, B>(&mut self, op0: A, op1: B)
10858 where
10859 Assembler<'a>: Vcvtps2qqErEmitter<A, B>,
10860 {
10861 <Self as Vcvtps2qqErEmitter<A, B>>::vcvtps2qq_er(self, op0, op1);
10862 }
10863 #[inline]
10880 pub fn vcvtps2qq_mask<A, B>(&mut self, op0: A, op1: B)
10881 where
10882 Assembler<'a>: Vcvtps2qqMaskEmitter<A, B>,
10883 {
10884 <Self as Vcvtps2qqMaskEmitter<A, B>>::vcvtps2qq_mask(self, op0, op1);
10885 }
10886 #[inline]
10898 pub fn vcvtps2qq_mask_er<A, B>(&mut self, op0: A, op1: B)
10899 where
10900 Assembler<'a>: Vcvtps2qqMaskErEmitter<A, B>,
10901 {
10902 <Self as Vcvtps2qqMaskErEmitter<A, B>>::vcvtps2qq_mask_er(self, op0, op1);
10903 }
10904 #[inline]
10921 pub fn vcvtps2qq_maskz<A, B>(&mut self, op0: A, op1: B)
10922 where
10923 Assembler<'a>: Vcvtps2qqMaskzEmitter<A, B>,
10924 {
10925 <Self as Vcvtps2qqMaskzEmitter<A, B>>::vcvtps2qq_maskz(self, op0, op1);
10926 }
10927 #[inline]
10939 pub fn vcvtps2qq_maskz_er<A, B>(&mut self, op0: A, op1: B)
10940 where
10941 Assembler<'a>: Vcvtps2qqMaskzErEmitter<A, B>,
10942 {
10943 <Self as Vcvtps2qqMaskzErEmitter<A, B>>::vcvtps2qq_maskz_er(self, op0, op1);
10944 }
10945 #[inline]
10962 pub fn vcvtqq2pd<A, B>(&mut self, op0: A, op1: B)
10963 where
10964 Assembler<'a>: Vcvtqq2pdEmitter<A, B>,
10965 {
10966 <Self as Vcvtqq2pdEmitter<A, B>>::vcvtqq2pd(self, op0, op1);
10967 }
10968 #[inline]
10980 pub fn vcvtqq2pd_er<A, B>(&mut self, op0: A, op1: B)
10981 where
10982 Assembler<'a>: Vcvtqq2pdErEmitter<A, B>,
10983 {
10984 <Self as Vcvtqq2pdErEmitter<A, B>>::vcvtqq2pd_er(self, op0, op1);
10985 }
10986 #[inline]
11003 pub fn vcvtqq2pd_mask<A, B>(&mut self, op0: A, op1: B)
11004 where
11005 Assembler<'a>: Vcvtqq2pdMaskEmitter<A, B>,
11006 {
11007 <Self as Vcvtqq2pdMaskEmitter<A, B>>::vcvtqq2pd_mask(self, op0, op1);
11008 }
11009 #[inline]
11021 pub fn vcvtqq2pd_mask_er<A, B>(&mut self, op0: A, op1: B)
11022 where
11023 Assembler<'a>: Vcvtqq2pdMaskErEmitter<A, B>,
11024 {
11025 <Self as Vcvtqq2pdMaskErEmitter<A, B>>::vcvtqq2pd_mask_er(self, op0, op1);
11026 }
11027 #[inline]
11044 pub fn vcvtqq2pd_maskz<A, B>(&mut self, op0: A, op1: B)
11045 where
11046 Assembler<'a>: Vcvtqq2pdMaskzEmitter<A, B>,
11047 {
11048 <Self as Vcvtqq2pdMaskzEmitter<A, B>>::vcvtqq2pd_maskz(self, op0, op1);
11049 }
11050 #[inline]
11062 pub fn vcvtqq2pd_maskz_er<A, B>(&mut self, op0: A, op1: B)
11063 where
11064 Assembler<'a>: Vcvtqq2pdMaskzErEmitter<A, B>,
11065 {
11066 <Self as Vcvtqq2pdMaskzErEmitter<A, B>>::vcvtqq2pd_maskz_er(self, op0, op1);
11067 }
11068 #[inline]
11084 pub fn vcvtqq2ps<A, B>(&mut self, op0: A, op1: B)
11085 where
11086 Assembler<'a>: Vcvtqq2psEmitter<A, B>,
11087 {
11088 <Self as Vcvtqq2psEmitter<A, B>>::vcvtqq2ps(self, op0, op1);
11089 }
11090 #[inline]
11102 pub fn vcvtqq2ps_er<A, B>(&mut self, op0: A, op1: B)
11103 where
11104 Assembler<'a>: Vcvtqq2psErEmitter<A, B>,
11105 {
11106 <Self as Vcvtqq2psErEmitter<A, B>>::vcvtqq2ps_er(self, op0, op1);
11107 }
11108 #[inline]
11124 pub fn vcvtqq2ps_mask<A, B>(&mut self, op0: A, op1: B)
11125 where
11126 Assembler<'a>: Vcvtqq2psMaskEmitter<A, B>,
11127 {
11128 <Self as Vcvtqq2psMaskEmitter<A, B>>::vcvtqq2ps_mask(self, op0, op1);
11129 }
11130 #[inline]
11142 pub fn vcvtqq2ps_mask_er<A, B>(&mut self, op0: A, op1: B)
11143 where
11144 Assembler<'a>: Vcvtqq2psMaskErEmitter<A, B>,
11145 {
11146 <Self as Vcvtqq2psMaskErEmitter<A, B>>::vcvtqq2ps_mask_er(self, op0, op1);
11147 }
11148 #[inline]
11164 pub fn vcvtqq2ps_maskz<A, B>(&mut self, op0: A, op1: B)
11165 where
11166 Assembler<'a>: Vcvtqq2psMaskzEmitter<A, B>,
11167 {
11168 <Self as Vcvtqq2psMaskzEmitter<A, B>>::vcvtqq2ps_maskz(self, op0, op1);
11169 }
11170 #[inline]
11182 pub fn vcvtqq2ps_maskz_er<A, B>(&mut self, op0: A, op1: B)
11183 where
11184 Assembler<'a>: Vcvtqq2psMaskzErEmitter<A, B>,
11185 {
11186 <Self as Vcvtqq2psMaskzErEmitter<A, B>>::vcvtqq2ps_maskz_er(self, op0, op1);
11187 }
11188 #[inline]
11205 pub fn vcvttpd2qq<A, B>(&mut self, op0: A, op1: B)
11206 where
11207 Assembler<'a>: Vcvttpd2qqEmitter<A, B>,
11208 {
11209 <Self as Vcvttpd2qqEmitter<A, B>>::vcvttpd2qq(self, op0, op1);
11210 }
11211 #[inline]
11228 pub fn vcvttpd2qq_mask<A, B>(&mut self, op0: A, op1: B)
11229 where
11230 Assembler<'a>: Vcvttpd2qqMaskEmitter<A, B>,
11231 {
11232 <Self as Vcvttpd2qqMaskEmitter<A, B>>::vcvttpd2qq_mask(self, op0, op1);
11233 }
11234 #[inline]
11246 pub fn vcvttpd2qq_mask_sae<A, B>(&mut self, op0: A, op1: B)
11247 where
11248 Assembler<'a>: Vcvttpd2qqMaskSaeEmitter<A, B>,
11249 {
11250 <Self as Vcvttpd2qqMaskSaeEmitter<A, B>>::vcvttpd2qq_mask_sae(self, op0, op1);
11251 }
11252 #[inline]
11269 pub fn vcvttpd2qq_maskz<A, B>(&mut self, op0: A, op1: B)
11270 where
11271 Assembler<'a>: Vcvttpd2qqMaskzEmitter<A, B>,
11272 {
11273 <Self as Vcvttpd2qqMaskzEmitter<A, B>>::vcvttpd2qq_maskz(self, op0, op1);
11274 }
11275 #[inline]
11287 pub fn vcvttpd2qq_maskz_sae<A, B>(&mut self, op0: A, op1: B)
11288 where
11289 Assembler<'a>: Vcvttpd2qqMaskzSaeEmitter<A, B>,
11290 {
11291 <Self as Vcvttpd2qqMaskzSaeEmitter<A, B>>::vcvttpd2qq_maskz_sae(self, op0, op1);
11292 }
11293 #[inline]
11305 pub fn vcvttpd2qq_sae<A, B>(&mut self, op0: A, op1: B)
11306 where
11307 Assembler<'a>: Vcvttpd2qqSaeEmitter<A, B>,
11308 {
11309 <Self as Vcvttpd2qqSaeEmitter<A, B>>::vcvttpd2qq_sae(self, op0, op1);
11310 }
11311 #[inline]
11328 pub fn vcvttps2qq<A, B>(&mut self, op0: A, op1: B)
11329 where
11330 Assembler<'a>: Vcvttps2qqEmitter<A, B>,
11331 {
11332 <Self as Vcvttps2qqEmitter<A, B>>::vcvttps2qq(self, op0, op1);
11333 }
11334 #[inline]
11351 pub fn vcvttps2qq_mask<A, B>(&mut self, op0: A, op1: B)
11352 where
11353 Assembler<'a>: Vcvttps2qqMaskEmitter<A, B>,
11354 {
11355 <Self as Vcvttps2qqMaskEmitter<A, B>>::vcvttps2qq_mask(self, op0, op1);
11356 }
11357 #[inline]
11369 pub fn vcvttps2qq_mask_sae<A, B>(&mut self, op0: A, op1: B)
11370 where
11371 Assembler<'a>: Vcvttps2qqMaskSaeEmitter<A, B>,
11372 {
11373 <Self as Vcvttps2qqMaskSaeEmitter<A, B>>::vcvttps2qq_mask_sae(self, op0, op1);
11374 }
11375 #[inline]
11392 pub fn vcvttps2qq_maskz<A, B>(&mut self, op0: A, op1: B)
11393 where
11394 Assembler<'a>: Vcvttps2qqMaskzEmitter<A, B>,
11395 {
11396 <Self as Vcvttps2qqMaskzEmitter<A, B>>::vcvttps2qq_maskz(self, op0, op1);
11397 }
11398 #[inline]
11410 pub fn vcvttps2qq_maskz_sae<A, B>(&mut self, op0: A, op1: B)
11411 where
11412 Assembler<'a>: Vcvttps2qqMaskzSaeEmitter<A, B>,
11413 {
11414 <Self as Vcvttps2qqMaskzSaeEmitter<A, B>>::vcvttps2qq_maskz_sae(self, op0, op1);
11415 }
11416 #[inline]
11428 pub fn vcvttps2qq_sae<A, B>(&mut self, op0: A, op1: B)
11429 where
11430 Assembler<'a>: Vcvttps2qqSaeEmitter<A, B>,
11431 {
11432 <Self as Vcvttps2qqSaeEmitter<A, B>>::vcvttps2qq_sae(self, op0, op1);
11433 }
11434 #[inline]
11449 pub fn vfpclasspd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11450 where
11451 Assembler<'a>: VfpclasspdEmitter<A, B, C>,
11452 {
11453 <Self as VfpclasspdEmitter<A, B, C>>::vfpclasspd(self, op0, op1, op2);
11454 }
11455 #[inline]
11470 pub fn vfpclasspd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11471 where
11472 Assembler<'a>: VfpclasspdMaskEmitter<A, B, C>,
11473 {
11474 <Self as VfpclasspdMaskEmitter<A, B, C>>::vfpclasspd_mask(self, op0, op1, op2);
11475 }
11476 #[inline]
11491 pub fn vfpclassps<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11492 where
11493 Assembler<'a>: VfpclasspsEmitter<A, B, C>,
11494 {
11495 <Self as VfpclasspsEmitter<A, B, C>>::vfpclassps(self, op0, op1, op2);
11496 }
11497 #[inline]
11512 pub fn vfpclassps_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11513 where
11514 Assembler<'a>: VfpclasspsMaskEmitter<A, B, C>,
11515 {
11516 <Self as VfpclasspsMaskEmitter<A, B, C>>::vfpclassps_mask(self, op0, op1, op2);
11517 }
11518 #[inline]
11531 pub fn vfpclasssd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11532 where
11533 Assembler<'a>: VfpclasssdEmitter<A, B, C>,
11534 {
11535 <Self as VfpclasssdEmitter<A, B, C>>::vfpclasssd(self, op0, op1, op2);
11536 }
11537 #[inline]
11550 pub fn vfpclasssd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11551 where
11552 Assembler<'a>: VfpclasssdMaskEmitter<A, B, C>,
11553 {
11554 <Self as VfpclasssdMaskEmitter<A, B, C>>::vfpclasssd_mask(self, op0, op1, op2);
11555 }
11556 #[inline]
11569 pub fn vfpclassss<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11570 where
11571 Assembler<'a>: VfpclassssEmitter<A, B, C>,
11572 {
11573 <Self as VfpclassssEmitter<A, B, C>>::vfpclassss(self, op0, op1, op2);
11574 }
11575 #[inline]
11588 pub fn vfpclassss_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11589 where
11590 Assembler<'a>: VfpclassssMaskEmitter<A, B, C>,
11591 {
11592 <Self as VfpclassssMaskEmitter<A, B, C>>::vfpclassss_mask(self, op0, op1, op2);
11593 }
11594 #[inline]
11607 pub fn vinsertf32x8<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11608 where
11609 Assembler<'a>: Vinsertf32x8Emitter<A, B, C, D>,
11610 {
11611 <Self as Vinsertf32x8Emitter<A, B, C, D>>::vinsertf32x8(self, op0, op1, op2, op3);
11612 }
11613 #[inline]
11626 pub fn vinsertf32x8_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11627 where
11628 Assembler<'a>: Vinsertf32x8MaskEmitter<A, B, C, D>,
11629 {
11630 <Self as Vinsertf32x8MaskEmitter<A, B, C, D>>::vinsertf32x8_mask(self, op0, op1, op2, op3);
11631 }
11632 #[inline]
11645 pub fn vinsertf32x8_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11646 where
11647 Assembler<'a>: Vinsertf32x8MaskzEmitter<A, B, C, D>,
11648 {
11649 <Self as Vinsertf32x8MaskzEmitter<A, B, C, D>>::vinsertf32x8_maskz(
11650 self, op0, op1, op2, op3,
11651 );
11652 }
11653 #[inline]
11668 pub fn vinsertf64x2<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11669 where
11670 Assembler<'a>: Vinsertf64x2Emitter<A, B, C, D>,
11671 {
11672 <Self as Vinsertf64x2Emitter<A, B, C, D>>::vinsertf64x2(self, op0, op1, op2, op3);
11673 }
11674 #[inline]
11689 pub fn vinsertf64x2_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11690 where
11691 Assembler<'a>: Vinsertf64x2MaskEmitter<A, B, C, D>,
11692 {
11693 <Self as Vinsertf64x2MaskEmitter<A, B, C, D>>::vinsertf64x2_mask(self, op0, op1, op2, op3);
11694 }
11695 #[inline]
11710 pub fn vinsertf64x2_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11711 where
11712 Assembler<'a>: Vinsertf64x2MaskzEmitter<A, B, C, D>,
11713 {
11714 <Self as Vinsertf64x2MaskzEmitter<A, B, C, D>>::vinsertf64x2_maskz(
11715 self, op0, op1, op2, op3,
11716 );
11717 }
11718 #[inline]
11731 pub fn vinserti32x8<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11732 where
11733 Assembler<'a>: Vinserti32x8Emitter<A, B, C, D>,
11734 {
11735 <Self as Vinserti32x8Emitter<A, B, C, D>>::vinserti32x8(self, op0, op1, op2, op3);
11736 }
11737 #[inline]
11750 pub fn vinserti32x8_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11751 where
11752 Assembler<'a>: Vinserti32x8MaskEmitter<A, B, C, D>,
11753 {
11754 <Self as Vinserti32x8MaskEmitter<A, B, C, D>>::vinserti32x8_mask(self, op0, op1, op2, op3);
11755 }
11756 #[inline]
11769 pub fn vinserti32x8_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11770 where
11771 Assembler<'a>: Vinserti32x8MaskzEmitter<A, B, C, D>,
11772 {
11773 <Self as Vinserti32x8MaskzEmitter<A, B, C, D>>::vinserti32x8_maskz(
11774 self, op0, op1, op2, op3,
11775 );
11776 }
11777 #[inline]
11792 pub fn vinserti64x2<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11793 where
11794 Assembler<'a>: Vinserti64x2Emitter<A, B, C, D>,
11795 {
11796 <Self as Vinserti64x2Emitter<A, B, C, D>>::vinserti64x2(self, op0, op1, op2, op3);
11797 }
11798 #[inline]
11813 pub fn vinserti64x2_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11814 where
11815 Assembler<'a>: Vinserti64x2MaskEmitter<A, B, C, D>,
11816 {
11817 <Self as Vinserti64x2MaskEmitter<A, B, C, D>>::vinserti64x2_mask(self, op0, op1, op2, op3);
11818 }
11819 #[inline]
11834 pub fn vinserti64x2_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
11835 where
11836 Assembler<'a>: Vinserti64x2MaskzEmitter<A, B, C, D>,
11837 {
11838 <Self as Vinserti64x2MaskzEmitter<A, B, C, D>>::vinserti64x2_maskz(
11839 self, op0, op1, op2, op3,
11840 );
11841 }
11842 #[inline]
11859 pub fn vorpd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11860 where
11861 Assembler<'a>: VorpdEmitter<A, B, C>,
11862 {
11863 <Self as VorpdEmitter<A, B, C>>::vorpd(self, op0, op1, op2);
11864 }
11865 #[inline]
11882 pub fn vorpd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11883 where
11884 Assembler<'a>: VorpdMaskEmitter<A, B, C>,
11885 {
11886 <Self as VorpdMaskEmitter<A, B, C>>::vorpd_mask(self, op0, op1, op2);
11887 }
11888 #[inline]
11905 pub fn vorpd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11906 where
11907 Assembler<'a>: VorpdMaskzEmitter<A, B, C>,
11908 {
11909 <Self as VorpdMaskzEmitter<A, B, C>>::vorpd_maskz(self, op0, op1, op2);
11910 }
11911 #[inline]
11928 pub fn vorps<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11929 where
11930 Assembler<'a>: VorpsEmitter<A, B, C>,
11931 {
11932 <Self as VorpsEmitter<A, B, C>>::vorps(self, op0, op1, op2);
11933 }
11934 #[inline]
11951 pub fn vorps_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11952 where
11953 Assembler<'a>: VorpsMaskEmitter<A, B, C>,
11954 {
11955 <Self as VorpsMaskEmitter<A, B, C>>::vorps_mask(self, op0, op1, op2);
11956 }
11957 #[inline]
11974 pub fn vorps_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
11975 where
11976 Assembler<'a>: VorpsMaskzEmitter<A, B, C>,
11977 {
11978 <Self as VorpsMaskzEmitter<A, B, C>>::vorps_maskz(self, op0, op1, op2);
11979 }
11980 #[inline]
11994 pub fn vpmovd2m<A, B>(&mut self, op0: A, op1: B)
11995 where
11996 Assembler<'a>: Vpmovd2mEmitter<A, B>,
11997 {
11998 <Self as Vpmovd2mEmitter<A, B>>::vpmovd2m(self, op0, op1);
11999 }
12000 #[inline]
12014 pub fn vpmovm2d<A, B>(&mut self, op0: A, op1: B)
12015 where
12016 Assembler<'a>: Vpmovm2dEmitter<A, B>,
12017 {
12018 <Self as Vpmovm2dEmitter<A, B>>::vpmovm2d(self, op0, op1);
12019 }
12020 #[inline]
12034 pub fn vpmovm2q<A, B>(&mut self, op0: A, op1: B)
12035 where
12036 Assembler<'a>: Vpmovm2qEmitter<A, B>,
12037 {
12038 <Self as Vpmovm2qEmitter<A, B>>::vpmovm2q(self, op0, op1);
12039 }
12040 #[inline]
12054 pub fn vpmovq2m<A, B>(&mut self, op0: A, op1: B)
12055 where
12056 Assembler<'a>: Vpmovq2mEmitter<A, B>,
12057 {
12058 <Self as Vpmovq2mEmitter<A, B>>::vpmovq2m(self, op0, op1);
12059 }
12060 #[inline]
12077 pub fn vpmulld<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12078 where
12079 Assembler<'a>: VpmulldEmitter<A, B, C>,
12080 {
12081 <Self as VpmulldEmitter<A, B, C>>::vpmulld(self, op0, op1, op2);
12082 }
12083 #[inline]
12100 pub fn vpmulld_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12101 where
12102 Assembler<'a>: VpmulldMaskEmitter<A, B, C>,
12103 {
12104 <Self as VpmulldMaskEmitter<A, B, C>>::vpmulld_mask(self, op0, op1, op2);
12105 }
12106 #[inline]
12123 pub fn vpmulld_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12124 where
12125 Assembler<'a>: VpmulldMaskzEmitter<A, B, C>,
12126 {
12127 <Self as VpmulldMaskzEmitter<A, B, C>>::vpmulld_maskz(self, op0, op1, op2);
12128 }
12129 #[inline]
12146 pub fn vpmullq<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12147 where
12148 Assembler<'a>: VpmullqEmitter<A, B, C>,
12149 {
12150 <Self as VpmullqEmitter<A, B, C>>::vpmullq(self, op0, op1, op2);
12151 }
12152 #[inline]
12169 pub fn vpmullq_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12170 where
12171 Assembler<'a>: VpmullqMaskEmitter<A, B, C>,
12172 {
12173 <Self as VpmullqMaskEmitter<A, B, C>>::vpmullq_mask(self, op0, op1, op2);
12174 }
12175 #[inline]
12192 pub fn vpmullq_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12193 where
12194 Assembler<'a>: VpmullqMaskzEmitter<A, B, C>,
12195 {
12196 <Self as VpmullqMaskzEmitter<A, B, C>>::vpmullq_maskz(self, op0, op1, op2);
12197 }
12198 #[inline]
12215 pub fn vrangepd<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12216 where
12217 Assembler<'a>: VrangepdEmitter<A, B, C, D>,
12218 {
12219 <Self as VrangepdEmitter<A, B, C, D>>::vrangepd(self, op0, op1, op2, op3);
12220 }
12221 #[inline]
12238 pub fn vrangepd_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12239 where
12240 Assembler<'a>: VrangepdMaskEmitter<A, B, C, D>,
12241 {
12242 <Self as VrangepdMaskEmitter<A, B, C, D>>::vrangepd_mask(self, op0, op1, op2, op3);
12243 }
12244 #[inline]
12256 pub fn vrangepd_mask_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12257 where
12258 Assembler<'a>: VrangepdMaskSaeEmitter<A, B, C, D>,
12259 {
12260 <Self as VrangepdMaskSaeEmitter<A, B, C, D>>::vrangepd_mask_sae(self, op0, op1, op2, op3);
12261 }
12262 #[inline]
12279 pub fn vrangepd_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12280 where
12281 Assembler<'a>: VrangepdMaskzEmitter<A, B, C, D>,
12282 {
12283 <Self as VrangepdMaskzEmitter<A, B, C, D>>::vrangepd_maskz(self, op0, op1, op2, op3);
12284 }
12285 #[inline]
12297 pub fn vrangepd_maskz_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12298 where
12299 Assembler<'a>: VrangepdMaskzSaeEmitter<A, B, C, D>,
12300 {
12301 <Self as VrangepdMaskzSaeEmitter<A, B, C, D>>::vrangepd_maskz_sae(self, op0, op1, op2, op3);
12302 }
12303 #[inline]
12315 pub fn vrangepd_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12316 where
12317 Assembler<'a>: VrangepdSaeEmitter<A, B, C, D>,
12318 {
12319 <Self as VrangepdSaeEmitter<A, B, C, D>>::vrangepd_sae(self, op0, op1, op2, op3);
12320 }
12321 #[inline]
12338 pub fn vrangeps<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12339 where
12340 Assembler<'a>: VrangepsEmitter<A, B, C, D>,
12341 {
12342 <Self as VrangepsEmitter<A, B, C, D>>::vrangeps(self, op0, op1, op2, op3);
12343 }
12344 #[inline]
12361 pub fn vrangeps_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12362 where
12363 Assembler<'a>: VrangepsMaskEmitter<A, B, C, D>,
12364 {
12365 <Self as VrangepsMaskEmitter<A, B, C, D>>::vrangeps_mask(self, op0, op1, op2, op3);
12366 }
12367 #[inline]
12379 pub fn vrangeps_mask_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12380 where
12381 Assembler<'a>: VrangepsMaskSaeEmitter<A, B, C, D>,
12382 {
12383 <Self as VrangepsMaskSaeEmitter<A, B, C, D>>::vrangeps_mask_sae(self, op0, op1, op2, op3);
12384 }
12385 #[inline]
12402 pub fn vrangeps_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12403 where
12404 Assembler<'a>: VrangepsMaskzEmitter<A, B, C, D>,
12405 {
12406 <Self as VrangepsMaskzEmitter<A, B, C, D>>::vrangeps_maskz(self, op0, op1, op2, op3);
12407 }
12408 #[inline]
12420 pub fn vrangeps_maskz_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12421 where
12422 Assembler<'a>: VrangepsMaskzSaeEmitter<A, B, C, D>,
12423 {
12424 <Self as VrangepsMaskzSaeEmitter<A, B, C, D>>::vrangeps_maskz_sae(self, op0, op1, op2, op3);
12425 }
12426 #[inline]
12438 pub fn vrangeps_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12439 where
12440 Assembler<'a>: VrangepsSaeEmitter<A, B, C, D>,
12441 {
12442 <Self as VrangepsSaeEmitter<A, B, C, D>>::vrangeps_sae(self, op0, op1, op2, op3);
12443 }
12444 #[inline]
12457 pub fn vrangesd<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12458 where
12459 Assembler<'a>: VrangesdEmitter<A, B, C, D>,
12460 {
12461 <Self as VrangesdEmitter<A, B, C, D>>::vrangesd(self, op0, op1, op2, op3);
12462 }
12463 #[inline]
12476 pub fn vrangesd_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12477 where
12478 Assembler<'a>: VrangesdMaskEmitter<A, B, C, D>,
12479 {
12480 <Self as VrangesdMaskEmitter<A, B, C, D>>::vrangesd_mask(self, op0, op1, op2, op3);
12481 }
12482 #[inline]
12494 pub fn vrangesd_mask_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12495 where
12496 Assembler<'a>: VrangesdMaskSaeEmitter<A, B, C, D>,
12497 {
12498 <Self as VrangesdMaskSaeEmitter<A, B, C, D>>::vrangesd_mask_sae(self, op0, op1, op2, op3);
12499 }
12500 #[inline]
12513 pub fn vrangesd_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12514 where
12515 Assembler<'a>: VrangesdMaskzEmitter<A, B, C, D>,
12516 {
12517 <Self as VrangesdMaskzEmitter<A, B, C, D>>::vrangesd_maskz(self, op0, op1, op2, op3);
12518 }
12519 #[inline]
12531 pub fn vrangesd_maskz_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12532 where
12533 Assembler<'a>: VrangesdMaskzSaeEmitter<A, B, C, D>,
12534 {
12535 <Self as VrangesdMaskzSaeEmitter<A, B, C, D>>::vrangesd_maskz_sae(self, op0, op1, op2, op3);
12536 }
12537 #[inline]
12549 pub fn vrangesd_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12550 where
12551 Assembler<'a>: VrangesdSaeEmitter<A, B, C, D>,
12552 {
12553 <Self as VrangesdSaeEmitter<A, B, C, D>>::vrangesd_sae(self, op0, op1, op2, op3);
12554 }
12555 #[inline]
12568 pub fn vrangess<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12569 where
12570 Assembler<'a>: VrangessEmitter<A, B, C, D>,
12571 {
12572 <Self as VrangessEmitter<A, B, C, D>>::vrangess(self, op0, op1, op2, op3);
12573 }
12574 #[inline]
12587 pub fn vrangess_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12588 where
12589 Assembler<'a>: VrangessMaskEmitter<A, B, C, D>,
12590 {
12591 <Self as VrangessMaskEmitter<A, B, C, D>>::vrangess_mask(self, op0, op1, op2, op3);
12592 }
12593 #[inline]
12605 pub fn vrangess_mask_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12606 where
12607 Assembler<'a>: VrangessMaskSaeEmitter<A, B, C, D>,
12608 {
12609 <Self as VrangessMaskSaeEmitter<A, B, C, D>>::vrangess_mask_sae(self, op0, op1, op2, op3);
12610 }
12611 #[inline]
12624 pub fn vrangess_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12625 where
12626 Assembler<'a>: VrangessMaskzEmitter<A, B, C, D>,
12627 {
12628 <Self as VrangessMaskzEmitter<A, B, C, D>>::vrangess_maskz(self, op0, op1, op2, op3);
12629 }
12630 #[inline]
12642 pub fn vrangess_maskz_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12643 where
12644 Assembler<'a>: VrangessMaskzSaeEmitter<A, B, C, D>,
12645 {
12646 <Self as VrangessMaskzSaeEmitter<A, B, C, D>>::vrangess_maskz_sae(self, op0, op1, op2, op3);
12647 }
12648 #[inline]
12660 pub fn vrangess_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12661 where
12662 Assembler<'a>: VrangessSaeEmitter<A, B, C, D>,
12663 {
12664 <Self as VrangessSaeEmitter<A, B, C, D>>::vrangess_sae(self, op0, op1, op2, op3);
12665 }
12666 #[inline]
12683 pub fn vreducepd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12684 where
12685 Assembler<'a>: VreducepdEmitter<A, B, C>,
12686 {
12687 <Self as VreducepdEmitter<A, B, C>>::vreducepd(self, op0, op1, op2);
12688 }
12689 #[inline]
12706 pub fn vreducepd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12707 where
12708 Assembler<'a>: VreducepdMaskEmitter<A, B, C>,
12709 {
12710 <Self as VreducepdMaskEmitter<A, B, C>>::vreducepd_mask(self, op0, op1, op2);
12711 }
12712 #[inline]
12724 pub fn vreducepd_mask_sae<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12725 where
12726 Assembler<'a>: VreducepdMaskSaeEmitter<A, B, C>,
12727 {
12728 <Self as VreducepdMaskSaeEmitter<A, B, C>>::vreducepd_mask_sae(self, op0, op1, op2);
12729 }
12730 #[inline]
12747 pub fn vreducepd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12748 where
12749 Assembler<'a>: VreducepdMaskzEmitter<A, B, C>,
12750 {
12751 <Self as VreducepdMaskzEmitter<A, B, C>>::vreducepd_maskz(self, op0, op1, op2);
12752 }
12753 #[inline]
12765 pub fn vreducepd_maskz_sae<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12766 where
12767 Assembler<'a>: VreducepdMaskzSaeEmitter<A, B, C>,
12768 {
12769 <Self as VreducepdMaskzSaeEmitter<A, B, C>>::vreducepd_maskz_sae(self, op0, op1, op2);
12770 }
12771 #[inline]
12783 pub fn vreducepd_sae<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12784 where
12785 Assembler<'a>: VreducepdSaeEmitter<A, B, C>,
12786 {
12787 <Self as VreducepdSaeEmitter<A, B, C>>::vreducepd_sae(self, op0, op1, op2);
12788 }
12789 #[inline]
12806 pub fn vreduceps<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12807 where
12808 Assembler<'a>: VreducepsEmitter<A, B, C>,
12809 {
12810 <Self as VreducepsEmitter<A, B, C>>::vreduceps(self, op0, op1, op2);
12811 }
12812 #[inline]
12829 pub fn vreduceps_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12830 where
12831 Assembler<'a>: VreducepsMaskEmitter<A, B, C>,
12832 {
12833 <Self as VreducepsMaskEmitter<A, B, C>>::vreduceps_mask(self, op0, op1, op2);
12834 }
12835 #[inline]
12847 pub fn vreduceps_mask_sae<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12848 where
12849 Assembler<'a>: VreducepsMaskSaeEmitter<A, B, C>,
12850 {
12851 <Self as VreducepsMaskSaeEmitter<A, B, C>>::vreduceps_mask_sae(self, op0, op1, op2);
12852 }
12853 #[inline]
12870 pub fn vreduceps_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12871 where
12872 Assembler<'a>: VreducepsMaskzEmitter<A, B, C>,
12873 {
12874 <Self as VreducepsMaskzEmitter<A, B, C>>::vreduceps_maskz(self, op0, op1, op2);
12875 }
12876 #[inline]
12888 pub fn vreduceps_maskz_sae<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12889 where
12890 Assembler<'a>: VreducepsMaskzSaeEmitter<A, B, C>,
12891 {
12892 <Self as VreducepsMaskzSaeEmitter<A, B, C>>::vreduceps_maskz_sae(self, op0, op1, op2);
12893 }
12894 #[inline]
12906 pub fn vreduceps_sae<A, B, C>(&mut self, op0: A, op1: B, op2: C)
12907 where
12908 Assembler<'a>: VreducepsSaeEmitter<A, B, C>,
12909 {
12910 <Self as VreducepsSaeEmitter<A, B, C>>::vreduceps_sae(self, op0, op1, op2);
12911 }
12912 #[inline]
12925 pub fn vreducesd<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12926 where
12927 Assembler<'a>: VreducesdEmitter<A, B, C, D>,
12928 {
12929 <Self as VreducesdEmitter<A, B, C, D>>::vreducesd(self, op0, op1, op2, op3);
12930 }
12931 #[inline]
12944 pub fn vreducesd_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12945 where
12946 Assembler<'a>: VreducesdMaskEmitter<A, B, C, D>,
12947 {
12948 <Self as VreducesdMaskEmitter<A, B, C, D>>::vreducesd_mask(self, op0, op1, op2, op3);
12949 }
12950 #[inline]
12962 pub fn vreducesd_mask_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12963 where
12964 Assembler<'a>: VreducesdMaskSaeEmitter<A, B, C, D>,
12965 {
12966 <Self as VreducesdMaskSaeEmitter<A, B, C, D>>::vreducesd_mask_sae(self, op0, op1, op2, op3);
12967 }
12968 #[inline]
12981 pub fn vreducesd_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
12982 where
12983 Assembler<'a>: VreducesdMaskzEmitter<A, B, C, D>,
12984 {
12985 <Self as VreducesdMaskzEmitter<A, B, C, D>>::vreducesd_maskz(self, op0, op1, op2, op3);
12986 }
12987 #[inline]
12999 pub fn vreducesd_maskz_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13000 where
13001 Assembler<'a>: VreducesdMaskzSaeEmitter<A, B, C, D>,
13002 {
13003 <Self as VreducesdMaskzSaeEmitter<A, B, C, D>>::vreducesd_maskz_sae(
13004 self, op0, op1, op2, op3,
13005 );
13006 }
13007 #[inline]
13019 pub fn vreducesd_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13020 where
13021 Assembler<'a>: VreducesdSaeEmitter<A, B, C, D>,
13022 {
13023 <Self as VreducesdSaeEmitter<A, B, C, D>>::vreducesd_sae(self, op0, op1, op2, op3);
13024 }
13025 #[inline]
13038 pub fn vreducess<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13039 where
13040 Assembler<'a>: VreducessEmitter<A, B, C, D>,
13041 {
13042 <Self as VreducessEmitter<A, B, C, D>>::vreducess(self, op0, op1, op2, op3);
13043 }
13044 #[inline]
13057 pub fn vreducess_mask<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13058 where
13059 Assembler<'a>: VreducessMaskEmitter<A, B, C, D>,
13060 {
13061 <Self as VreducessMaskEmitter<A, B, C, D>>::vreducess_mask(self, op0, op1, op2, op3);
13062 }
13063 #[inline]
13075 pub fn vreducess_mask_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13076 where
13077 Assembler<'a>: VreducessMaskSaeEmitter<A, B, C, D>,
13078 {
13079 <Self as VreducessMaskSaeEmitter<A, B, C, D>>::vreducess_mask_sae(self, op0, op1, op2, op3);
13080 }
13081 #[inline]
13094 pub fn vreducess_maskz<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13095 where
13096 Assembler<'a>: VreducessMaskzEmitter<A, B, C, D>,
13097 {
13098 <Self as VreducessMaskzEmitter<A, B, C, D>>::vreducess_maskz(self, op0, op1, op2, op3);
13099 }
13100 #[inline]
13112 pub fn vreducess_maskz_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13113 where
13114 Assembler<'a>: VreducessMaskzSaeEmitter<A, B, C, D>,
13115 {
13116 <Self as VreducessMaskzSaeEmitter<A, B, C, D>>::vreducess_maskz_sae(
13117 self, op0, op1, op2, op3,
13118 );
13119 }
13120 #[inline]
13132 pub fn vreducess_sae<A, B, C, D>(&mut self, op0: A, op1: B, op2: C, op3: D)
13133 where
13134 Assembler<'a>: VreducessSaeEmitter<A, B, C, D>,
13135 {
13136 <Self as VreducessSaeEmitter<A, B, C, D>>::vreducess_sae(self, op0, op1, op2, op3);
13137 }
13138 #[inline]
13155 pub fn vxorpd<A, B, C>(&mut self, op0: A, op1: B, op2: C)
13156 where
13157 Assembler<'a>: VxorpdEmitter<A, B, C>,
13158 {
13159 <Self as VxorpdEmitter<A, B, C>>::vxorpd(self, op0, op1, op2);
13160 }
13161 #[inline]
13178 pub fn vxorpd_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
13179 where
13180 Assembler<'a>: VxorpdMaskEmitter<A, B, C>,
13181 {
13182 <Self as VxorpdMaskEmitter<A, B, C>>::vxorpd_mask(self, op0, op1, op2);
13183 }
13184 #[inline]
13201 pub fn vxorpd_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
13202 where
13203 Assembler<'a>: VxorpdMaskzEmitter<A, B, C>,
13204 {
13205 <Self as VxorpdMaskzEmitter<A, B, C>>::vxorpd_maskz(self, op0, op1, op2);
13206 }
13207 #[inline]
13224 pub fn vxorps<A, B, C>(&mut self, op0: A, op1: B, op2: C)
13225 where
13226 Assembler<'a>: VxorpsEmitter<A, B, C>,
13227 {
13228 <Self as VxorpsEmitter<A, B, C>>::vxorps(self, op0, op1, op2);
13229 }
13230 #[inline]
13247 pub fn vxorps_mask<A, B, C>(&mut self, op0: A, op1: B, op2: C)
13248 where
13249 Assembler<'a>: VxorpsMaskEmitter<A, B, C>,
13250 {
13251 <Self as VxorpsMaskEmitter<A, B, C>>::vxorps_mask(self, op0, op1, op2);
13252 }
13253 #[inline]
13270 pub fn vxorps_maskz<A, B, C>(&mut self, op0: A, op1: B, op2: C)
13271 where
13272 Assembler<'a>: VxorpsMaskzEmitter<A, B, C>,
13273 {
13274 <Self as VxorpsMaskzEmitter<A, B, C>>::vxorps_maskz(self, op0, op1, op2);
13275 }
13276}