Skip to content

Commit 94e6788

Browse files
committed
[wip] Create dummy 256-bit accumulator and compose it with 512-bit to mimic vector register hierarchy
1 parent a29f3d4 commit 94e6788

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

llvm/lib/Target/AIE/aie2p/AIE2PRegisterInfo.td

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)