@@ -408,23 +408,43 @@ class AIE2PDim3DRegisterClass <dag reglist, RegAltNameIndex idx = NoRegAltName>
408408 srFifo_of, srFifo_uf,
409409 srSparse_of, srFPFlags, srF2IFlags, srF2FFlags,
410410 srF2BFlags, srFPNlf, srFPCnvFx2Fl, srFPCnvFl2Fx)>;
411+
412+ let isArtificial = 1 in {
413+ foreach i = 0 - 4 in {
414+ def dummy_acc256ll_l #i : AIE2P3BitReg<i, "dummy_acc256ll_l" #i>;
415+ def dummy_acc256ll_h #i : AIE2P3BitReg<i, "dummy_acc256ll_h" #i>;
416+ }
417+ foreach i = 0 - 4 in {
418+ def dummy_acc256lh_l #i : AIE2P3BitReg<i, "dummy_acc256lh_l" #i>;
419+ def dummy_acc256lh_h #i : AIE2P3BitReg<i, "dummy_acc256lh_h" #i>;
420+ }
421+ foreach i = 0 - 4 in {
422+ def dummy_acc256hl_l #i : AIE2P3BitReg<i, "dummy_acc256hl_l" #i>;
423+ def dummy_acc256hl_h #i : AIE2P3BitReg<i, "dummy_acc256hl_h" #i>;
424+ }
425+ foreach i = 0 - 4 in {
426+ def dummy_acc256hh_l #i : AIE2P3BitReg<i, "dummy_acc256hh_l" #i>;
427+ def dummy_acc256hh_h #i : AIE2P3BitReg<i, "dummy_acc256hh_h" #i>;
428+ }
429+ }
411430
412-
431+ let SubRegIndices = [sub_256_lo, sub_256_hi], CoveredBySubRegs = 1 in {
413432 foreach i = 0 - 4 in {
414- def bmll #i : AIE2P3BitReg<i, "bmll" #i>;
433+ def bmll #i : AIE2P3BitReg<i, "bmll" #i, [!cast<Register>("dummy_acc256ll_l" #i), !cast<Register>("dummy_acc256ll_h" #i)] >;
415434 }
416435
417436 foreach i = 0 - 4 in {
418- def bmlh #i : AIE2P3BitReg<i, "bmlh" #i>;
437+ def bmlh #i : AIE2P3BitReg<i, "bmlh" #i, [!cast<Register>("dummy_acc256lh_l" #i), !cast<Register>("dummy_acc256lh_h" #i)] >;
419438 }
420439
421440 foreach i = 0 - 4 in {
422- def bmhl #i : AIE2P3BitReg<i, "bmhl" #i>;
441+ def bmhl #i : AIE2P3BitReg<i, "bmhl" #i, [!cast<Register>("dummy_acc256hl_l" #i), !cast<Register>("dummy_acc256hl_h" #i)] >;
423442 }
424443
425444 foreach i = 0 - 4 in {
426- def bmhh #i : AIE2P3BitReg<i, "bmhh" #i>;
445+ def bmhh #i : AIE2P3BitReg<i, "bmhh" #i, [!cast<Register>("dummy_acc256hh_l" #i), !cast<Register>("dummy_acc256hh_h" #i)] >;
427446 }
447+ } // let SubRegIndices = [sub_256_lo, sub_256_hi], CoveredBySubRegs = 1
428448
429449 def eBMLL : AIE2PVector512RegisterClass<(add bmll0, bmll1, bmll2, bmll3, bmll4)>;
430450 def eBMLH : AIE2PVector512RegisterClass<(add bmlh0, bmlh1, bmlh2, bmlh3, bmlh4)>;
0 commit comments