Lines Matching +full:0 +full:x1a7

3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
48 let mayLoad = 0;
49 let mayStore = 0;
50 let hasSideEffects = 0;
74 list<dag> pattern = [], bit HasMods = 0> :
88 let isCodeGenOnly = 0;
99 bit isVOP3P = 0, bit isVop3OpSel = 0> :
120 let mayLoad = 0;
121 let mayStore = 0;
122 let hasSideEffects = 0;
174 let isPseudo = 0;
175 let isCodeGenOnly = 0;
214 let Constraints = !if(!eq(!substr(ps.Mnemonic,0,6), "v_wmma"), "", ps.Constraints);
233 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
234 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0);
235 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0);
237 let Inst{31-26} = 0x34; //encoding
238 let Inst{40-32} = !if(P.HasSrc0, src0, 0);
239 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
240 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
241 let Inst{60-59} = !if(P.HasOMod, omod, 0);
242 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
243 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
244 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
261 let Inst{7-0} = !if(P.EmitDst, vdst{7-0}, 0);
262 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
263 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0);
264 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0);
266 let Inst{11} = !if(P.HasSrc0Mods, src0_modifiers{2}, 0);
267 let Inst{12} = !if(P.HasSrc1Mods, src1_modifiers{2}, 0);
268 let Inst{13} = !if(P.HasSrc2Mods, src2_modifiers{2}, 0);
269 let Inst{14} = !if(!and(P.HasDst, P.HasSrc0Mods), src0_modifiers{3}, 0);
270 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
272 let Inst{31-26} = 0x35;
273 let Inst{40-32} = !if(P.HasSrc0, src0{8-0}, 0);
274 let Inst{49-41} = !if(P.HasSrc1, src1{8-0}, 0);
275 let Inst{58-50} = !if(P.HasSrc2, src2{8-0}, 0);
276 let Inst{60-59} = !if(P.HasOMod, omod, 0);
277 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
278 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
279 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
283 let Inst{11} = !if(p.HasClamp, clamp{0}, 0);
288 let Inst{15} = !if(p.HasClamp, clamp{0}, 0);
290 let Inst{31-26} = 0x35;
297 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
302 let Inst{7-0} = !if(p.EmitDst, vdst{7-0}, 0);
307 let Inst{7-0} = !if(p.EmitDst, vdst{7-0}, 0);
318 let Inst{7-0} = !if(P.EmitDst, vdst{7-0}, 0);
322 let Inst{11} = !if(P.HasSrc0, src0_modifiers{2}, 0);
323 let Inst{12} = !if(P.HasSrc1, src1_modifiers{2}, 0);
324 let Inst{13} = !if(P.HasSrc2, src2_modifiers{2}, 0);
325 let Inst{14} = !if(P.HasDst, src0_modifiers{3}, 0);
329 // op_sel[0]/op_sel[1] are treated as bound_ctrl and fi dpp operands.
334 // OPSEL[0] specifies FI
341 let Inst{11} = !if(p.HasSrc0, src0_modifiers{2}, 0);
342 let Inst{12} = !if(p.HasSrc1, src1_modifiers{2}, 0);
343 let Inst{13} = !if(p.HasSrc2, src2_modifiers{2}, 0);
344 let Inst{14} = !if(p.HasDst, src0_modifiers{3}, 0);
352 let Inst{14-13} = 0; // op_sel2/3
358 let Inst{11} = 0; // op_sel0
359 let Inst{12} = 0; // op_sel1
367 let Inst{13} = !if(p.HasSrc2Mods, src2_modifiers{2}, 0);
368 let Inst{14} = !if(!and(p.HasDst, p.HasSrc0Mods), src0_modifiers{3}, 0);
377 let Inst{8} = 0; // No modifiers for src0
378 let Inst{61} = 0;
380 let Inst{9} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
381 let Inst{62} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
385 let Inst{40} = !if(P.HasHigh, high, 0);
395 let Inst{8} = 0;
396 let Inst{9} = !if(p.HasSrc0Mods, src0_modifiers{1}, 0);
399 let Inst{40} = !if(p.HasHigh, high, 0);
401 let Inst{61} = 0;
402 let Inst{62} = !if(p.HasSrc0Mods, src0_modifiers{0}, 0);
418 let Inst{7-0} = vdst;
420 let Inst{31-26} = 0x34; //encoding
421 let Inst{40-32} = !if(P.HasSrc0, src0, 0);
422 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
423 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
424 let Inst{60-59} = !if(P.HasOMod, omod, 0);
425 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
426 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
427 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
442 let Inst{7-0} = !if(P.HasDst, vdst, 0);
443 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0); // neg_hi src0
444 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0); // neg_hi src1
445 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0); // neg_hi src2
447 let Inst{11} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{2}, 0); // op_sel(0)
448 let Inst{12} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{2}, 0); // op_sel(1)
449 let Inst{13} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{2}, 0); // op_sel(2)
453 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
456 let Inst{31-23} = 0x1a7; //encoding
457 let Inst{40-32} = !if(P.HasSrc0, src0, 0);
458 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
459 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
460 let Inst{59} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_sel_hi(0)
462 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // neg (lo)
463 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // neg (lo)
464 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0); // neg (lo)
477 class VOP3Pe_MAI <bits<7> op, VOPProfile P, bit acc_cd = 0> : Enc64, VOP3Pe_MAI_Base {
478 let Inst{7-0} = vdst;
480 let Inst{10-8} = !if(P.HasSrc1, cbsz, 0);
481 let Inst{14-11} = !if(P.HasAbid, abid, 0);
486 let Inst{31-23} = 0x1a7; //encoding
487 let Inst{40-32} = !if(P.HasSrc0, src0{8-0}, 0);
488 let Inst{49-41} = !if(P.HasSrc1, src1{8-0}, 0);
489 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
491 let Inst{59} = !if(P.HasSrc0, src0{9}, 0); // acc(0)
492 let Inst{60} = !if(P.HasSrc1, src1{9}, 0); // acc(1)
494 let Inst{63-61} = !if(P.HasSrc1, blgp, 0);
506 let blgp = 0;
508 let Inst{7-0} = vdst{7-0};
516 let Inst{31-23} = 0x1a7; // encoding
517 let Inst{40-32} = src0{8-0};
518 let Inst{49-41} = src1{8-0};
521 let Inst{59} = src0{9}; // acc(0)
527 class VOP3PXe <bits<7> op, VOPProfile MFMAPfl, bit acc_cd = 0> : Enc128, VOP3Pe_MAI_Base {
534 // Inst{7-0} = unused
537 let Inst{11} = scale_src0_opsel{0};
538 let Inst{12} = scale_src1_opsel{0};
542 let Inst{31-16} = 0b1101001110101100;
554 // seems to not work, results in all 0 encoding, so replicate all
561 let Inst{74-72} = !if(MFMAPfl.HasSrc1, cbsz, 0);
564 let Inst{78-75} = 0b0001; // abid
569 let Inst{95-87} = 0x1a7; //encoding
570 let Inst{104-96} = !if(MFMAPfl.HasSrc0, src0{8-0}, 0);
571 let Inst{113-105} = !if(MFMAPfl.HasSrc1, src1{8-0}, 0);
572 let Inst{122-114} = !if(MFMAPfl.HasSrc2, src2, 0);
574 let Inst{123} = !if(MFMAPfl.HasSrc0, src0{9}, 0); // acc(0)
575 let Inst{124} = !if(MFMAPfl.HasSrc1, src1{9}, 0); // acc(1)
577 let Inst{127-125} = !if(MFMAPfl.HasSrc1, blgp, 0);
581 let Inst{31-23} = 0x198; //encoding
592 let Inst{15} = !if(p.HasClamp, clamp{0}, 0);
594 let Inst{31-26} = 0x35;
602 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
607 int BYTE_0 = 0;
616 int UNUSED_PAD = 0;
631 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
632 let Inst{42-40} = !if(P.EmitDstSel, dst_sel{2-0}, ?);
633 let Inst{44-43} = !if(P.EmitDstSel, dst_unused{1-0}, ?);
634 let Inst{45} = !if(P.HasSDWAClamp, clamp{0}, 0);
635 let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, 0);
636 let Inst{51} = !if(P.HasSrc0IntMods, src0_modifiers{0}, 0);
637 let Inst{53-52} = !if(P.HasSrc0FloatMods, src0_modifiers{1-0}, 0);
638 let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, 0);
639 let Inst{59} = !if(P.HasSrc1IntMods, src1_modifiers{0}, 0);
640 let Inst{61-60} = !if(P.HasSrc1FloatMods, src1_modifiers{1-0}, 0);
645 // a. S0 and S1 indicate that source 0 and 1 respectively are SGPRs rather
652 // b. When SD=0, VCC is used.
658 bits<9> src0; // {src0_sgpr{0}, src0{7-0}}
665 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
666 let Inst{50-48} = !if(P.HasSrc0, src0_sel{2-0}, 0);
667 let Inst{51} = !if(P.HasSrc0IntMods, src0_modifiers{0}, 0);
668 let Inst{53-52} = !if(P.HasSrc0FloatMods, src0_modifiers{1-0}, 0);
669 let Inst{55} = !if(P.HasSrc0, src0{8}, 0);
670 let Inst{58-56} = !if(P.HasSrc1, src1_sel{2-0}, 0);
671 let Inst{59} = !if(P.HasSrc1IntMods, src1_modifiers{0}, 0);
672 let Inst{61-60} = !if(P.HasSrc1FloatMods, src1_modifiers{1-0}, 0);
673 let Inst{63} = 0; // src1_sgpr - should be specified in subclass
683 let Inst{42-40} = !if(P.EmitDstSel, dst_sel{2-0}, ?);
684 let Inst{44-43} = !if(P.EmitDstSel, dst_unused{1-0}, ?);
685 let Inst{45} = !if(P.HasSDWAClamp, clamp{0}, 0);
686 let Inst{47-46} = !if(P.HasSDWAOMod, omod{1-0}, 0);
691 bits<8> sdst; // {vcc_sdst{0}, sdst{6-0}}
693 let Inst{46-40} = !if(P.EmitDst, sdst{6-0}, ?);
694 let Inst{47} = !if(P.EmitDst, sdst{7}, 0);
711 let mayLoad = 0;
712 let mayStore = 0;
713 let hasSideEffects = 0;
737 let isPseudo = 0;
738 let isCodeGenOnly = 0;
771 let isPseudo = 0;
772 let isCodeGenOnly = 0;
816 class VOP_DPPe<VOPProfile P, bit IsDPP16=0> : Enc64 {
826 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
830 let Inst{52} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // src0_neg
831 let Inst{53} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0); // src0_abs
832 let Inst{54} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // src1_neg
833 let Inst{55} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0); // src1_abs
863 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0);
864 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0);
865 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0);
867 let Inst{11} = !if(P.HasOpSel, !if(P.HasSrc0Mods, src0_modifiers{2}, 0),
869 let Inst{12} = !if(P.HasOpSel, !if(P.HasSrc1Mods, src1_modifiers{2}, 0),
870 !if(P.IsFP8SrcByteSel, byte_sel{0}, ?));
871 let Inst{13} = !if(P.HasOpSel, !if(P.HasSrc2Mods, src2_modifiers{2}, 0),
872 !if(P.IsFP8DstByteSel, byte_sel{0}, ?));
873 let Inst{14} = !if(P.HasOpSel, !if(P.HasSrc0Mods, src0_modifiers{3}, 0),
875 let Inst{15} = !if(P.HasClamp, clamp, 0);
877 let Inst{31-26} = 0x35;
879 let Inst{60-59} = !if(P.HasOMod, omod, 0);
880 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0);
881 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0);
882 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0);
890 let Inst{7-0} = !if(P.EmitDst, vdst{7-0}, 0);
891 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
892 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
900 let Inst{7-0} = !if(P.EmitDst, vdst{7-0}, 0);
901 let Inst{49-41} = !if(P.HasSrc1, src1{8-0}, 0);
902 let Inst{58-50} = !if(P.HasSrc2, src2{8-0}, 0);
911 let Inst{8} = !if(P.HasSrc0Mods, src0_modifiers{1}, 0); // neg_hi src0
912 let Inst{9} = !if(P.HasSrc1Mods, src1_modifiers{1}, 0); // neg_hi src1
913 let Inst{10} = !if(P.HasSrc2Mods, src2_modifiers{1}, 0); // neg_hi src2
915 let Inst{11} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{2}, 0); // op_sel(0)
916 let Inst{12} = !if(!and(P.HasSrc1, P.HasOpSel), src1_modifiers{2}, 0); // op_sel(1)
917 let Inst{13} = !if(!and(P.HasSrc2, P.HasOpSel), src2_modifiers{2}, 0); // op_sel(2)
919 let Inst{15} = !if(P.HasClamp, clamp{0}, 0);
921 let Inst{31-23} = 0x198; // encoding
922 let Inst{59} = !if(!and(P.HasSrc0, P.HasOpSel), src0_modifiers{3}, !if(P.IsDOT, 1, ?)); // op_sel_hi(0)
924 let Inst{61} = !if(P.HasSrc0Mods, src0_modifiers{0}, 0); // neg (lo)
925 let Inst{62} = !if(P.HasSrc1Mods, src1_modifiers{0}, 0); // neg (lo)
926 let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0); // neg (lo)
934 let Inst{7-0} = vdst;
935 let Inst{49-41} = !if(P.HasSrc1, src1, 0);
936 let Inst{58-50} = !if(P.HasSrc2, src2, 0);
944 let Inst{7-0} = vdst{7-0};
945 let Inst{49-41} = !if(P.HasSrc1, src1{8-0}, 0);
946 let Inst{58-50} = !if(P.HasSrc2, src2{8-0}, 0);
953 let mayLoad = 0;
954 let mayStore = 0;
955 let hasSideEffects = 0;
996 let isPseudo = 0;
997 let isCodeGenOnly = 0;
1033 let mayLoad = 0;
1034 let mayStore = 0;
1035 let hasSideEffects = 0;
1072 let Inst{40-32} = 0xfa;
1073 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1092 let Inst{40-32} = 0xfa;
1093 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1118 let Inst{40-32} = 0xfa;
1119 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1134 let Inst{39-32} = !if(P.HasSrc0, src0{7-0}, 0);
1135 let Inst{63-40} = dpp8{23-0};
1153 let mayLoad = 0;
1154 let mayStore = 0;
1155 let hasSideEffects = 0;
1186 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1187 let Inst{95-72} = dpp8{23-0};
1197 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1198 let Inst{95-72} = dpp8{23-0};
1210 let Inst{71-64} = !if(P.HasSrc0, src0{7-0}, 0);
1211 let Inst{95-72} = dpp8{23-0};
1215 int FI_0 = 0xE9;
1216 int FI_1 = 0xEA;
1318 bit IsDOT = 0,
1457 def VOP3_REGULAR : VOP3Features<0, 0, 0, 0>;
1458 def VOP3_CLAMP : VOP3Features<1, 0, 0, 0>;
1459 def VOP3_OPSEL : VOP3Features<1, 1, 0, 0>;
1460 def VOP3_PACKED : VOP3Features<1, 1, 1, 0>;
1461 def VOP3_PACKED_NO_OPSEL : VOP3Features<1, 0, 1, 0>;
1462 def VOP3_MAI : VOP3Features<0, 0, 0, 1>;
1463 def VOP3_OPSEL_ONLY : VOP3Features<0, 1, 0, 0>;
1467 def VOP3P_LD_SCALE : VOP3Features<0, 1, 1, 0>;
1477 !if (Features.IsMAI, 0,
1493 !if (Features.IsMAI, 0,
1505 !if (Features.IsMAI, 0,
1511 multiclass VOP3Inst_Pseudo_Wrapper<string opName, VOPProfile P, list<dag> pattern = [], bit VOP3Only = 0> {
1515 class VOP3InstBase<string OpName, VOPProfile P, SDPatternOperator node = null_frag, bit IsVOP2 = 0, bit MAIScaled = false> :
1530 0, P.HasOpSel> {
1691 bit isSingle = 0> {
1715 bit isSingle = 0> {
1727 string asmName, string pseudo_mnemonic = "", bit isSingle = 0> {
1836 bit isSingle = 0> {
1865 multiclass VOP3_Realtriple<GFXGen Gen, bits<10> op, bit isSingle = 0,
1871 multiclass VOP3Dot_Realtriple<GFXGen Gen, bits<10> op, string asmName, bit isSingle = 0,
1881 string asmName, string pseudo_mnemonic = "", bit isSingle = 0> :
1891 GFXGen Gen, bits<10> op, bit isSingle = 0, string opName = NAME,
1907 string pseudo_mnemonic = "", bit isSingle = 0> :
1911 string pseudo_mnemonic = "", bit isSingle = 0> {
1927 bit isSingle = 0> :
1931 bit isSingle = 0> :
1934 multiclass VOP3_Realtriple_gfx11<bits<10> op, bit isSingle = 0,
1942 multiclass VOP3Only_Realtriple_gfx12<bits<10> op, bit isSingle = 0> :
1951 string pseudo_mnemonic = "", bit isSingle = 0> :
1955 string pseudo_mnemonic = "", bit isSingle = 0> {
1971 string asmName, bit isSingle = 0> {
1984 string asmName, string pseudo_mnemonic = "", bit isSingle = 0> :
1992 multiclass VOP3Dot_Realtriple_gfx11_gfx12<bits<10> op, string asmName, bit isSingle = 0,