Lines Matching full:let

9 // dummies for outer let
50 let mayLoad = 0;
51 let mayStore = 0;
52 let hasSideEffects = 0;
53 let UseNamedOperandTable = 1;
54 let VALU = 1;
55 let Uses = !if(ReadsModeReg, [MODE, EXEC], [EXEC]);
63 let isPseudo = 1;
64 let isCodeGenOnly = 1;
65 let UseNamedOperandTable = 1;
85 let AddedComplexity = -1000;
87 let VOP3 = 1;
89 let AsmVariantName = AMDGPUAsmVariants.VOP3;
90 let AsmMatchConverter = !if(HasMods, "cvtVOP3", "");
92 let isCodeGenOnly = 0;
99 let hasPostISelHook = 1;
110 let VOP3_OPSEL = isVop3OpSel;
111 let IsPacked = P.IsPacked;
112 let IsMAI = P.IsMAI;
113 let IsWMMA = P.IsWMMA;
114 let IsSWMMAC = P.IsSWMMAC;
116 let AsmOperands = !if(isVop3OpSel,
120 let Size = 8;
121 let mayLoad = 0;
122 let mayStore = 0;
123 let hasSideEffects = 0;
128 let hasPostISelHook = 1;
134 let AddedComplexity = -1000;
136 let VOP3 = 1;
137 let VALU = 1;
138 let FPClamp = P.HasFPClamp;
139 let IntClamp = P.HasIntClamp;
140 let ClampLo = P.HasClampLo;
141 let ClampHi = P.HasClampHi;
143 let ReadsModeReg = !or(P.DstVT.isFP, P.Src0VT.isFP);
145 let mayRaiseFPException = ReadsModeReg;
146 let Uses = !if(ReadsModeReg, [MODE, EXEC], [EXEC]);
148 let AsmVariantName = AMDGPUAsmVariants.VOP3;
149 let AsmMatchConverter =
159 let VOP3P = 1;
160 let IsDOT = P.IsDOT;
175 let VALU = 1;
176 let VOP3 = 1;
177 let isPseudo = 0;
178 let isCodeGenOnly = 0;
179 let UseNamedOperandTable = 1;
182 let SubtargetPredicate = ps.SubtargetPredicate;
183 let WaveSizePredicate = ps.WaveSizePredicate;
184 let OtherPredicates = ps.OtherPredicates;
185 let AsmMatchConverter = ps.AsmMatchConverter;
186 let AsmVariantName = ps.AsmVariantName;
187 let Constraints = ps.Constraints;
188 let DisableEncoding = ps.DisableEncoding;
189 let TSFlags = ps.TSFlags;
190 let UseNamedOperandTable = ps.UseNamedOperandTable;
191 let Uses = ps.Uses;
192 let Defs = ps.Defs;
193 let SchedRW = ps.SchedRW;
194 let mayLoad = ps.mayLoad;
195 let mayStore = ps.mayStore;
196 let TRANS = ps.TRANS;
203 let AssemblerPredicate = Gen.AssemblerPredicate;
204 let True16Predicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts, NoTrue16Predicate);
205 let DecoderNamespace = Gen.DecoderNamespace#
215 let Constraints = !if(!eq(!substr(ps.Mnemonic,0,6), "v_wmma"), "", ps.Constraints);
220 let AssemblerPredicate = Gen.AssemblerPredicate;
221 let DecoderNamespace = Gen.DecoderNamespace;
234 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
235 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0);
236 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0);
238 let Inst{31-26} = 0x34; //encoding
239 let Inst{40-32} = !if(P.HasSrc0, src0, 0);
240 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
241 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
242 let Inst{60-59} = !if(P.HasOMod, omod, 0);
243 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
244 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
245 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
249 let Inst{11} = !if(p.HasClamp, clamp{0}, 0);
250 let Inst{25-17} = op;
254 let Inst{15} = !if(p.HasClamp, clamp{0}, 0);
255 let Inst{25-16} = op;
256 let Inst{31-26} = 0x35;
262 let Inst{25-16} = op;
263 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
268 let Inst{7-0} = !if(p.EmitDst, vdst{7-0}, 0);
273 let Inst{7-0} = !if(p.EmitDst, vdst{7-0}, 0);
280 let Inst{7-0} = !if(P.EmitDst, vdst{7-0}, 0);
284 let Inst{11} = !if(P.HasSrc0, src0_modifiers{2}, 0);
285 let Inst{12} = !if(P.HasSrc1, src1_modifiers{2}, 0);
286 let Inst{13} = !if(P.HasSrc2, src2_modifiers{2}, 0);
287 let Inst{14} = !if(P.HasDst, src0_modifiers{3}, 0);
291 let Inst{11} = !if(p.HasSrc0, src0_modifiers{2}, 0);
292 let Inst{12} = !if(p.HasSrc1, src1_modifiers{2}, 0);
293 let Inst{13} = !if(p.HasSrc2, src2_modifiers{2}, 0);
294 let Inst{14} = !if(p.HasDst, src0_modifiers{3}, 0);
301 let Inst{11-12} = byte_sel; // NB: bit order is intentionally reversed!
302 let Inst{14-13} = 0; // op_sel2/3
308 let Inst{11} = 0; // op_sel0
309 let Inst{12} = 0; // op_sel1
310 let Inst{14-13} = byte_sel; // op_sel2/3
314 let Inst{11} = ?;
315 let Inst{12} = ?;
324 let Inst{8} = 0; // No modifiers for src0
325 let Inst{61} = 0;
327 let Inst{9} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
328 let Inst{62} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
330 let Inst{37-32} = attr;
331 let Inst{39-38} = attrchan;
332 let Inst{40} = !if(P.HasHigh, high, 0);
334 let Inst{49-41} = src0;
342 let Inst{8} = 0;
343 let Inst{9} = !if(p.HasSrc0Mods, src0_modifiers{1}, 0);
344 let Inst{37-32} = attr;
345 let Inst{39-38} = attrchan;
346 let Inst{40} = !if(p.HasHigh, high, 0);
347 let Inst{49-41} = src0;
348 let Inst{61} = 0;
349 let Inst{62} = !if(p.HasSrc0Mods, src0_modifiers{0}, 0);
365 let Inst{7-0} = vdst;
366 let Inst{14-8} = sdst;
367 let Inst{31-26} = 0x34; //encoding
368 let Inst{40-32} = !if(P.HasSrc0, src0, 0);
369 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
370 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
371 let Inst{60-59} = !if(P.HasOMod, omod, 0);
372 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
373 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
374 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
389 let Inst{7-0} = vdst;
390 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0); // neg_hi src0
391 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0); // neg_hi src1
392 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0); // neg_hi src2
394 let Inst{11} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{2}, 0); // op_sel(0)
395 let Inst{12} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{2}, 0); // op_sel(1)
396 let Inst{13} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{2}, 0); // op_sel(2)
398let Inst{14} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_sel_…
400 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
402 let Inst{22-16} = op;
403 let Inst{31-23} = 0x1a7; //encoding
404 let Inst{40-32} = !if(P.HasSrc0, src0, 0);
405 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
406 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
407let Inst{59} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_s…
408let Inst{60} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_s…
409 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // neg (lo)
410 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // neg (lo)
411 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0); // neg (lo)
423 let Inst{7-0} = vdst;
425 let Inst{10-8} = !if(P.HasSrc1, cbsz, 0);
426 let Inst{14-11} = !if(P.HasSrc1, abid, 0);
428 let Inst{15} = acc_cd;
430 let Inst{22-16} = op;
431 let Inst{31-23} = 0x1a7; //encoding
432 let Inst{40-32} = !if(P.HasSrc0, src0{8-0}, 0);
433 let Inst{49-41} = !if(P.HasSrc1, src1{8-0}, 0);
434 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
436 let Inst{59} = !if(P.HasSrc0, src0{9}, 0); // acc(0)
437 let Inst{60} = !if(P.HasSrc1, src1{9}, 0); // acc(1)
439 let Inst{63-61} = !if(P.HasSrc1, blgp, 0);
451 let blgp = 0;
453 let Inst{7-0} = vdst{7-0};
455 let Inst{10-8} = cbsz;
456 let Inst{14-11} = abid;
458 let Inst{15} = vdst{9}; // acc(vdst)
460 let Inst{22-16} = op;
461 let Inst{31-23} = 0x1a7; // encoding
462 let Inst{40-32} = src0{8-0};
463 let Inst{49-41} = src1{8-0};
464 let Inst{58-50} = idx;
466 let Inst{59} = src0{9}; // acc(0)
467 let Inst{60} = src1{9}; // acc(1)
469 let Inst{63-61} = blgp;
473 let Inst{31-23} = 0x198; //encoding
479 let Inst{25-17} = op;
484 let Inst{15} = !if(p.HasClamp, clamp{0}, 0);
485 let Inst{25-16} = op;
486 let Inst{31-26} = 0x35;
493 let Inst{25-16} = op;
494 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
523 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
524 let Inst{42-40} = !if(P.EmitDstSel, dst_sel{2-0}, ?);
525 let Inst{44-43} = !if(P.EmitDstSel, dst_unused{1-0}, ?);
526 let Inst{45} = !if(P.HasSDWAClamp, clamp{0}, 0);
527 let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, 0);
528 let Inst{51} = !if(P.HasSrc0IntMods, src0_modifiers{0}, 0);
529 let Inst{53-52} = !if(P.HasSrc0FloatMods, src0_modifiers{1-0}, 0);
530 let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, 0);
531 let Inst{59} = !if(P.HasSrc1IntMods, src1_modifiers{0}, 0);
532 let Inst{61-60} = !if(P.HasSrc1FloatMods, src1_modifiers{1-0}, 0);
557 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
558 let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, 0);
559 let Inst{51} = !if(P.HasSrc0IntMods, src0_modifiers{0}, 0);
560 let Inst{53-52} = !if(P.HasSrc0FloatMods, src0_modifiers{1-0}, 0);
561 let Inst{55} = !if(P.HasSrc0, src0{8}, 0);
562 let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, 0);
563 let Inst{59} = !if(P.HasSrc1IntMods, src1_modifiers{0}, 0);
564 let Inst{61-60} = !if(P.HasSrc1FloatMods, src1_modifiers{1-0}, 0);
565 let Inst{63} = 0; // src1_sgpr - should be specified in subclass
575 let Inst{42-40} = !if(P.EmitDstSel, dst_sel{2-0}, ?);
576 let Inst{44-43} = !if(P.EmitDstSel, dst_unused{1-0}, ?);
577 let Inst{45} = !if(P.HasSDWAClamp, clamp{0}, 0);
578 let Inst{47-46} = !if(P.HasSDWAOMod, omod{1-0}, 0);
585 let Inst{46-40} = !if(P.EmitDst, sdst{6-0}, ?);
586 let Inst{47} = !if(P.EmitDst, sdst{7}, 0);
594 let isPseudo = 1;
595 let isCodeGenOnly = 1;
596 let UseNamedOperandTable = 1;
602 let Size = 8;
603 let mayLoad = 0;
604 let mayStore = 0;
605 let hasSideEffects = 0;
607 let VALU = 1;
608 let SDWA = 1;
610 let ReadsModeReg = !or(P.DstVT.isFP, P.Src0VT.isFP);
612 let mayRaiseFPException = ReadsModeReg;
613 let Uses = !if(ReadsModeReg, [MODE, EXEC], [EXEC]);
615 let SubtargetPredicate = HasSDWA;
616 let AssemblerPredicate = HasSDWA;
617 let AsmVariantName = !if(P.HasExtSDWA, AMDGPUAsmVariants.SDWA,
619 let DecoderNamespace = "GFX8";
628 let VALU = 1;
629 let SDWA = 1;
630 let isPseudo = 0;
631 let isCodeGenOnly = 0;
633 let Defs = ps.Defs;
634 let Uses = ps.Uses;
635 let hasSideEffects = ps.hasSideEffects;
637 let Constraints = ps.Constraints;
638 let DisableEncoding = ps.DisableEncoding;
641 let SubtargetPredicate = ps.SubtargetPredicate;
642 let AssemblerPredicate = ps.AssemblerPredicate;
643 let AsmMatchConverter = ps.AsmMatchConverter;
644 let AsmVariantName = ps.AsmVariantName;
645 let UseNamedOperandTable = ps.UseNamedOperandTable;
646 let DecoderNamespace = ps.DecoderNamespace;
647 let Constraints = ps.Constraints;
648 let DisableEncoding = ps.DisableEncoding;
649 let TSFlags = ps.TSFlags;
650 let Uses = ps.Uses;
651 let Defs = ps.Defs;
652 let SchedRW = ps.SchedRW;
653 let mayLoad = ps.mayLoad;
654 let mayStore = ps.mayStore;
655 let TRANS = ps.TRANS;
661 let VALU = 1;
662 let SDWA = 1;
663 let isPseudo = 0;
664 let isCodeGenOnly = 0;
666 let Defs = ps.Defs;
667 let Uses = ps.Uses;
668 let hasSideEffects = ps.hasSideEffects;
670 let Constraints = ps.Constraints;
671 let DisableEncoding = ps.DisableEncoding;
673 let SubtargetPredicate = HasSDWA9;
674 let AssemblerPredicate = HasSDWA9;
675 let OtherPredicates = ps.OtherPredicates;
676 let AsmVariantName = !if(ps.Pfl.HasExtSDWA9, AMDGPUAsmVariants.SDWA9,
678 let DecoderNamespace = "GFX9";
681 let AsmMatchConverter = ps.AsmMatchConverter;
682 let UseNamedOperandTable = ps.UseNamedOperandTable;
683 let Constraints = ps.Constraints;
684 let DisableEncoding = ps.DisableEncoding;
685 let TSFlags = ps.TSFlags;
686 let Uses = ps.Uses;
687 let Defs = ps.Defs;
688 let SchedRW = ps.SchedRW;
689 let mayLoad = ps.mayLoad;
690 let mayStore = ps.mayStore;
691 let TRANS = ps.TRANS;
699 let SubtargetPredicate = HasSDWA10;
700 let AssemblerPredicate = HasSDWA10;
701 let DecoderNamespace = "GFX10";
717 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
718 let Inst{48-40} = dpp_ctrl;
719 let Inst{50} = !if(IsDPP16, fi, ?);
720 let Inst{51} = bound_ctrl;
721 let Inst{52} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // src0_neg
722 let Inst{53} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0); // src0_abs
723 let Inst{54} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // src1_neg
724 let Inst{55} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0); // src1_abs
725 let Inst{59-56} = bank_mask;
726 let Inst{63-60} = row_mask;
749 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
750 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0);
751 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0);
753 let Inst{11} = !if(P.HasOpSel, !if(P.HasSrc0Mods, src0_modifiers{2}, 0),
755 let Inst{12} = !if(P.HasOpSel, !if(P.HasSrc1Mods, src1_modifiers{2}, 0),
757 let Inst{13} = !if(P.HasOpSel, !if(P.HasSrc2Mods, src2_modifiers{2}, 0),
759 let Inst{14} = !if(P.HasOpSel, !if(P.HasSrc0Mods, src0_modifiers{3}, 0),
761 let Inst{15} = !if(P.HasClamp, clamp, 0);
762 let Inst{25-16} = op;
763 let Inst{31-26} = 0x35;
765 let Inst{60-59} = !if(P.HasOMod, omod, 0);
766 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
767 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
768 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
776 let Inst{7-0} = !if(P.EmitDst, vdst{7-0}, 0);
777 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
778 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
787 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0); // neg_hi src0
788 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0); // neg_hi src1
789 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0); // neg_hi src2
790 let Inst{11} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{2}, 0); // op_sel(0)
791 let Inst{12} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{2}, 0); // op_sel(1)
792 let Inst{13} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{2}, 0); // op_sel(2)
793let Inst{14} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_sel_…
794 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
795 let Inst{22-16} = op;
796 let Inst{31-23} = 0x198; // encoding
797let Inst{59} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_s…
798let Inst{60} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_s…
799 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // neg (lo)
800 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // neg (lo)
801 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0); // neg (lo)
809 let Inst{7-0} = vdst;
810 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
811 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
818 let mayLoad = 0;
819 let mayStore = 0;
820 let hasSideEffects = 0;
822 let VALU = 1;
823 let DPP = 1;
824 let Size = 8;
825 let IsPacked = P.IsPacked;
827 let ReadsModeReg = !or(P.DstVT.isFP, P.Src0VT.isFP);
829 let mayRaiseFPException = ReadsModeReg;
830 let Uses = !if(ReadsModeReg, [MODE, EXEC], [EXEC]);
831 let isConvergent = 1;
835 let AsmMatchConverter = !if(P.HasModifiers, "cvtDPP", "");
836 let AssemblerPredicate = !if(P.HasExt64BitDPP, HasDPALU_DPP, HasDPP);
837 let AsmVariantName = !if(P.HasExtDPP, AMDGPUAsmVariants.DPP,
839 let Constraints = !if(P.NumSrcArgs, P.TieRegDPP # " = $vdst", "");
840 let DisableEncoding = !if(P.NumSrcArgs, P.TieRegDPP, "");
841 let DecoderNamespace = "GFX8";
843 let IsInvalidSingleUseConsumer = !not(VINTERP);
844 let IsInvalidSingleUseProducer = !not(VINTERP);
849 let PseudoInstr = OpName#"_e64"#"_dpp";
850 let OutOperandList = P.OutsVOP3DPP;
851 let Size = 12;
852 let VOP3 = 1;
853 let AsmMatchConverter = "cvtVOP3DPP";
854 let AsmVariantName = !if(P.HasExtVOP3DPP, AMDGPUAsmVariants.VOP3_DPP,
862 let VALU = 1;
863 let DPP = 1;
864 let isPseudo = 0;
865 let isCodeGenOnly = 0;
867 let Defs = ps.Defs;
868 let Uses = ps.Uses;
869 let hasSideEffects = ps.hasSideEffects;
871 let Constraints = ps.Constraints;
872 let DisableEncoding = ps.DisableEncoding;
875 let isConvergent = ps.isConvergent;
876 let SubtargetPredicate = ps.SubtargetPredicate;
877 let AssemblerPredicate = ps.AssemblerPredicate;
878 let OtherPredicates = ps.OtherPredicates;
879 let AsmMatchConverter = ps.AsmMatchConverter;
880 let AsmVariantName = ps.AsmVariantName;
881 let UseNamedOperandTable = ps.UseNamedOperandTable;
882 let DecoderNamespace = ps.DecoderNamespace;
883 let Constraints = ps.Constraints;
884 let DisableEncoding = ps.DisableEncoding;
885 let TSFlags = ps.TSFlags;
886 let Uses = ps.Uses;
887 let Defs = ps.Defs;
888 let SchedRW = ps.SchedRW;
889 let mayLoad = ps.mayLoad;
890 let mayStore = ps.mayStore;
891 let TRANS = ps.TRANS;
899 let mayLoad = 0;
900 let mayStore = 0;
901 let hasSideEffects = 0;
902 let UseNamedOperandTable = 1;
904 let VALU = 1;
905 let DPP = 1;
906 let Size = 8;
908 let AsmMatchConverter = !if(P.HasModifiers, "cvtDPP", "");
909 let AssemblerPredicate = !if(P.HasExt64BitDPP, HasDPALU_DPP, HasDPP);
910 let AsmVariantName = !if(P.HasExtDPP, AMDGPUAsmVariants.DPP,
912 let Constraints = !if(P.NumSrcArgs, P.TieRegDPP # " = $vdst", "");
913 let DisableEncoding = !if(P.NumSrcArgs, P.TieRegDPP, "");
914 let DecoderNamespace = "GFX8";
926 let OutOperandList = P.OutsVOP3DPP;
927 let AsmMatchConverter = "cvtVOP3DPP";
928 let VOP3 = 1;
929 let AsmVariantName = !if(P.HasExtVOP3DPP, AMDGPUAsmVariants.VOP3_DPP,
931 let Size = 12;
940 let Inst{40-32} = 0xfa;
941 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
942 let Inst{80-72} = dpp_ctrl;
943 let Inst{82} = !if(IsDPP16, fi, ?);
944 let Inst{83} = bound_ctrl;
947 let Inst{91-88} = bank_mask;
948 let Inst{95-92} = row_mask;
957 let VOP3P = 1;
959 let Inst{40-32} = 0xfa;
960 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
961 let Inst{80-72} = dpp_ctrl;
962 let Inst{82} = !if(IsDPP16, fi, ?);
963 let Inst{83} = bound_ctrl;
966 let Inst{91-88} = bank_mask;
967 let Inst{95-92} = row_mask;
975 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
976 let Inst{63-40} = dpp8{23-0};
988 let mayLoad = 0;
989 let mayStore = 0;
990 let hasSideEffects = 0;
991 let UseNamedOperandTable = 1;
993 let VALU = 1;
994 let DPP = 1;
995 let Size = 8;
997 let AsmMatchConverter = "cvtDPP8";
998 let AssemblerPredicate = HasDPP8;
999 let AsmVariantName = AMDGPUAsmVariants.DPP;
1000 let Constraints = !if(P.NumSrcArgs, P.TieRegDPP # " = $vdst", "");
1001 let DisableEncoding = !if(P.NumSrcArgs, P.TieRegDPP, "");
1009 let OutOperandList = P.OutsVOP3DPP8;
1010 let AsmMatchConverter = "cvtVOP3DPP8";
1011 let AsmVariantName = !if(P.HasExtVOP3DPP, AMDGPUAsmVariants.VOP3_DPP,
1013 let VOP3 = 1;
1014 let Size = 12;
1022 let Inst{40-32} = fi;
1023 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1024 let Inst{95-72} = dpp8{23-0};
1031 let VOP3P = 1;
1032 let Inst{40-32} = fi;
1033 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1034 let Inst{95-72} = dpp8{23-0};
1090 let GISelPredicateCode = [{return true;}];
1264 let HasClamp = !if(Features.HasClamp, 1, P.HasClamp);
1265 let HasOpSel = !if(Features.HasOpSel, 1, P.HasOpSel);
1266 let IsMAI = !if(Features.IsMAI, 1, P.IsMAI);
1267 let IsPacked = !if(Features.IsPacked, 1, P.IsPacked);
1269 let HasModifiers =
1275 let IsSingle = 1;
1301 let IntClamp = P.HasIntClamp;
1302 let AsmMatchConverter =
1312 let SubtargetPredicate = isGFX11Plus in {
1337 let VOP3_OPSEL = ps.Pfl.HasOpSel;
1338 let IsDOT = ps.IsDOT;
1339 let hasSideEffects = ps.hasSideEffects;
1340 let Defs = ps.Defs;
1341 let SchedRW = ps.SchedRW;
1342 let Uses = ps.Uses;
1343 let AssemblerPredicate = HasDPP16;
1344 let SubtargetPredicate = ps.SubtargetPredicate;
1345 let OtherPredicates = ps.OtherPredicates;
1355 let AssemblerPredicate = Gen.AssemblerPredicate;
1356 let True16Predicate = !if(ps.Pfl.IsRealTrue16, UseRealTrue16Insts, NoTrue16Predicate);
1357 let DecoderNamespace = Gen.DecoderNamespace#
1363 let VOP3_OPSEL = ps.Pfl.HasOpSel;
1364 let IsDOT = ps.IsDOT;
1365 let hasSideEffects = ps.hasSideEffects;
1366 let Defs = ps.Defs;
1367 let SchedRW = ps.SchedRW;
1368 let Uses = ps.Uses;
1370 let SubtargetPredicate = ps.SubtargetPredicate;
1371 let OtherPredicates = ps.OtherPredicates;
1378 let Inst{14 - 8} = sdst;
1384 let Inst{14 - 8} = sdst;
1394 let IsSingle = !or(isSingle, ps.Pfl.IsSingle) in {
1418 let IsSingle = !or(isSingle, ps.Pfl.IsSingle) in {
1428 let AsmString = asmName # ps.AsmOperands,
1449 let AssemblerPredicate = Gen.AssemblerPredicate;
1469 let Inst{11} = ?;
1470 let Inst{12} = ?;
1477 let AsmString = asmName # ps.Pfl.AsmVOP3DPP16 in {
1485 let DecoderNamespace = Gen.DecoderNamespace;
1486 let AssemblerPredicate = Gen.AssemblerPredicate;
1493 let Inst{11} = ?;
1494 let Inst{12} = ?;
1495 let DecoderNamespace = Gen.DecoderNamespace;
1496 let AssemblerPredicate = Gen.AssemblerPredicate;
1503 let AsmString = asmName # ps.Pfl.AsmVOP3DPP8,
1515 let IsSingle = !or(isSingle, ps.Pfl.IsSingle) in
1527 let DecoderNamespace = Gen.DecoderNamespace;
1528 let AssemblerPredicate = Gen.AssemblerPredicate;
1536 let DecoderNamespace = Gen.DecoderNamespace;
1537 let AssemblerPredicate = Gen.AssemblerPredicate;
1619 let AsmString = asmName # ps.AsmOperands,
1625 let AssemblerPredicate = GFX12Gen.AssemblerPredicate;
1657 let OtherPredicates = [NotHasTrue16BitInsts, Has16BitInsts];
1661 let OtherPredicates = [HasTrue16BitInsts];
1668 let FilterClass = Format # "_Real";
1669 let CppTypeName = "VOPInfo";
1670 let Fields = ["Opcode", "IsSingle"];
1672 let PrimaryKey = ["Opcode"];
1673 let PrimaryKeyName = "get" # Format # "OpcodeHelper";
1681 let FilterClass = "VOPC64_" # Format # "_Base";
1682 let CppTypeName = "VOPC64DPPInfo";
1683 let Fields = ["Opcode"];
1685 let PrimaryKey = ["Opcode"];
1686 let PrimaryKeyName = "isVOPC64" # Format # "OpcodeHelper";
1693 let FilterClass = Class;
1694 let FilterClassField = "isAsmParserOnly";
1695 let CppTypeName = Format # "DPPAsmOnlyInfo";
1696 let Fields = ["Opcode"];
1698 let PrimaryKey = ["Opcode"];
1699 let PrimaryKeyName = "is" # Format # "AsmOnlyOpcodeHelper";
1705 let FilterClass = "VOP_Pseudo";
1706 let CppTypeName = "VOPTrue16Info";
1707 let Fields = ["Opcode", "IsTrue16"];
1709 let PrimaryKey = ["Opcode"];
1710 let PrimaryKeyName = "getTrue16OpcodeHelper";
1714 let FilterClass = "VOP_Pseudo";
1715 let CppTypeName = "SingleUseExceptionInfo";
1716 let Fields = ["Opcode", "IsInvalidSingleUseConsumer", "IsInvalidSingleUseProducer"];
1718 let PrimaryKey = ["Opcode"];
1719 let PrimaryKeyName = "getSingleUseExceptionHelper";