Skip to content

Commit 36157f8

Browse files
author
Martien de Jong
committed
[AIE] Add config using LCDLatest & Critical
1 parent 522ddad commit 36157f8

File tree

2 files changed

+68
-36
lines changed

2 files changed

+68
-36
lines changed

llvm/lib/Target/AIE/AIEPostPipeliner.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,7 @@ static const struct {
630630
// a lower stage count, which benefits code size.
631631
{1, false, {ConfigStrategy::Latest}},
632632
{1, true, {ConfigStrategy::Critical}},
633+
{1, true, {ConfigStrategy::Critical, ConfigStrategy::LCDLatest}},
633634
};
634635

635636
bool PostPipeliner::tryHeuristics() {

llvm/test/CodeGen/AIE/aie2/schedule/postpipeliner/gemm-nooffset.mir

+67-36
Original file line numberDiff line numberDiff line change
@@ -24,65 +24,96 @@
2424
; CHECK-NEXT: nop // Delay Slot 2
2525
; CHECK-NEXT: nop // Delay Slot 1
2626
; CHECK-NEXT: // %bb.1: // %for.body.preheader
27-
; CHECK-NEXT: vldb wl8, [p0], #32; nopxm
27+
; CHECK-NEXT: nopa ; vldb wl11, [p1], m5; nopxm ; nops
28+
; CHECK-NEXT: vldb wh11, [p1], m6
29+
; CHECK-NEXT: vldb wl5, [p1], m5
30+
; CHECK-NEXT: vlda wh5, [p1], m6
31+
; CHECK-NEXT: vldb wl8, [p0], #32
2832
; CHECK-NEXT: vldb wh8, [p0], #32
29-
; CHECK-NEXT: vldb wl11, [p1], m5
3033
; CHECK-NEXT: vldb wl1, [p0], #32
3134
; CHECK-NEXT: vldb wh1, [p0], #32
3235
; CHECK-NEXT: paddb [p0], m4
3336
; CHECK-NEXT: vldb wl0, [p0], #32
34-
; CHECK-NEXT: vldb wh0, [p0], #32
35-
; CHECK-NEXT: vldb wh11, [p1], m6; add.nc lc, r0, #-1
36-
; CHECK-NEXT: vldb wl5, [p1], m5; movxm ls, #.LBB0_2
37-
; CHECK-NEXT: vlda wh5, [p1], m6; movxm le, #.L_LEnd0
38-
; CHECK-NEXT: vldb wl3, [p0], #32; nopa ; nops ; nopxm ; nopv
39-
; CHECK-NEXT: vldb.3d wh3, [p0], d0; nopa ; nops ; nopxm ; nopv
40-
; CHECK-NEXT: vldb wl0, [p1], m5; nopa ; nops ; nopxm ; nopv
41-
; CHECK-NEXT: vldb wh0, [p1], m6; nopa ; nops ; nopx ; vshuffle x6, x8, x0, r4; nopv
42-
; CHECK-NEXT: vldb wl7, [p1], m5; nopa ; nops ; nopx ; vshuffle x2, x8, x0, r16; nopv
43-
; CHECK-NEXT: vldb.3d wh7, [p1], d1; nopa ; nops ; nopxm ; nopv
44-
; CHECK-NEXT: nopb ; nopa ; nops ; nopx ; vshuffle x5, x5, x5, r2; nopv
37+
; CHECK-NEXT: vldb wh0, [p0], #32; vshuffle x5, x5, x5, r2
38+
; CHECK-NEXT: vldb wl3, [p0], #32
39+
; CHECK-NEXT: vldb.3d wh3, [p0], d0
40+
; CHECK-NEXT: vldb wl0, [p1], m5
41+
; CHECK-NEXT: vldb wh0, [p1], m6
42+
; CHECK-NEXT: vldb wl7, [p1], m5
43+
; CHECK-NEXT: vldb.3d wh7, [p1], d1
44+
; CHECK-NEXT: vldb wl11, [p1], m5; vshuffle x2, x8, x0, r16
45+
; CHECK-NEXT: vldb wh11, [p1], m6; vshuffle x6, x8, x0, r4
46+
; CHECK-NEXT: vldb wl5, [p1], m5; vshuffle x9, x1, x3, r16; vmac.f bmh5, bmh5, x2, x5, r3
47+
; CHECK-NEXT: vlda wh5, [p1], m6; vshuffle x10, x1, x3, r4; vmac.f bmh4, bmh4, x6, x5, r3
48+
; CHECK-NEXT: vldb wl8, [p0], #32; vshuffle x3, x11, x11, r2; vmac.f bmh7, bmh7, x9, x5, r3
49+
; CHECK-NEXT: vldb wh8, [p0], #32; vshuffle x0, x0, x0, r2; vmac.f bmh6, bmh6, x10, x5, r3
50+
; CHECK-NEXT: vldb wl1, [p0], #32; vshuffle x7, x7, x7, r2; vmac.f bmh0, bmh0, x6, x3, r3
51+
; CHECK-NEXT: vldb wh1, [p0], #32; add.nc lc, r0, #-2; vmac.f bml2, bml2, x9, x0, r3
52+
; CHECK-NEXT: paddb [p0], m4; movxm ls, #.LBB0_2; vmac.f bmh1, bmh1, x2, x3, r3
53+
; CHECK-NEXT: vldb wl0, [p0], #32; movxm le, #.L_LEnd0; vmac.f bmh2, bmh2, x10, x3, r3
54+
; CHECK-NEXT: vldb wh0, [p0], #32; nopa ; nops ; nopx ; vshuffle x5, x5, x5, r2; vmac.f bmh3, bmh3, x9, x3, r3
55+
; CHECK-NEXT: vldb wl3, [p0], #32; nopa ; nops ; nopxm ; vmac.f bmh8, bmh8, x6, x0, r3
56+
; CHECK-NEXT: vldb.3d wh3, [p0], d0; nopa ; nops ; nopxm ; vmac.f bml0, bml0, x2, x0, r3
57+
; CHECK-NEXT: vldb wl0, [p1], m5; nopa ; nops ; nopxm ; vmac.f bml1, bml1, x10, x0, r3
58+
; CHECK-NEXT: vldb wh0, [p1], m6; nopa ; nops ; nopxm ; vmac.f bml3, bml3, x6, x7, r3
59+
; CHECK-NEXT: vldb wl7, [p1], m5; nopa ; nops ; nopxm ; vmac.f bml5, bml5, x2, x7, r3
60+
; CHECK-NEXT: vldb.3d wh7, [p1], d1; nopa ; nops ; nopxm ; vmac.f bml6, bml6, x10, x7, r3
4561
; CHECK-NEXT: .p2align 4
4662
; CHECK-NEXT: .LBB0_2: // %for.body
4763
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
48-
; CHECK-NEXT: vldb wl8, [p0], #32; nopa ; nops ; nopxm ; nopv
49-
; CHECK-NEXT: vldb wh8, [p0], #32; nopx ; vshuffle x10, x1, x3, r4; vmac.f bmh4, bmh4, x6, x5, r3
50-
; CHECK-NEXT: vldb wl11, [p1], m5; vshuffle x9, x1, x3, r16; vmac.f bmh5, bmh5, x2, x5, r3
51-
; CHECK-NEXT: vldb wl1, [p0], #32; vshuffle x3, x11, x11, r2; vmac.f bmh6, bmh6, x10, x5, r3
52-
; CHECK-NEXT: vldb wh1, [p0], #32; vshuffle x0, x0, x0, r2; vmac.f bmh7, bmh7, x9, x5, r3
53-
; CHECK-NEXT: paddb [p0], m4; vshuffle x7, x7, x7, r2; vmac.f bmh0, bmh0, x6, x3, r3
54-
; CHECK-NEXT: vldb wl0, [p0], #32; vmac.f bmh1, bmh1, x2, x3, r3
55-
; CHECK-NEXT: vldb wh0, [p0], #32; vmac.f bmh2, bmh2, x10, x3, r3
56-
; CHECK-NEXT: vldb wh11, [p1], m6; vmac.f bmh3, bmh3, x9, x3, r3
57-
; CHECK-NEXT: vldb wl5, [p1], m5; vmac.f bmh8, bmh8, x6, x0, r3
58-
; CHECK-NEXT: vlda wh5, [p1], m6; vmac.f bml0, bml0, x2, x0, r3
59-
; CHECK-NEXT: vldb wl3, [p0], #32; vmac.f bml1, bml1, x10, x0, r3
60-
; CHECK-NEXT: vldb.3d wh3, [p0], d0; vmac.f bml2, bml2, x9, x0, r3
61-
; CHECK-NEXT: vldb wl0, [p1], m5; vmac.f bml3, bml3, x6, x7, r3
62-
; CHECK-NEXT: vldb wh0, [p1], m6; vshuffle x6, x8, x0, r4; vmac.f bml5, bml5, x2, x7, r3
63-
; CHECK-NEXT: vldb wl7, [p1], m5; vshuffle x2, x8, x0, r16; vmac.f bml6, bml6, x10, x7, r3
64-
; CHECK-NEXT: vldb.3d wh7, [p1], d1; vmac.f bml4, bml4, x9, x7, r3
64+
; CHECK-NEXT: nopa ; vldb wl11, [p1], m5; nopx ; vshuffle x2, x8, x0, r16; vmac.f bml4, bml4, x9, x7, r3
65+
; CHECK-NEXT: vldb wh11, [p1], m6; vshuffle x6, x8, x0, r4
66+
; CHECK-NEXT: vldb wl5, [p1], m5; vshuffle x9, x1, x3, r16; vmac.f bmh5, bmh5, x2, x5, r3
67+
; CHECK-NEXT: vlda wh5, [p1], m6; vshuffle x10, x1, x3, r4; vmac.f bmh4, bmh4, x6, x5, r3
68+
; CHECK-NEXT: vldb wl8, [p0], #32; vshuffle x3, x11, x11, r2; vmac.f bmh7, bmh7, x9, x5, r3
69+
; CHECK-NEXT: vldb wh8, [p0], #32; vshuffle x0, x0, x0, r2; vmac.f bmh6, bmh6, x10, x5, r3
70+
; CHECK-NEXT: vldb wl1, [p0], #32; vshuffle x7, x7, x7, r2; vmac.f bmh0, bmh0, x6, x3, r3
71+
; CHECK-NEXT: vldb wh1, [p0], #32; vmac.f bml2, bml2, x9, x0, r3
72+
; CHECK-NEXT: paddb [p0], m4; vmac.f bmh1, bmh1, x2, x3, r3
73+
; CHECK-NEXT: vldb wl0, [p0], #32; vmac.f bmh2, bmh2, x10, x3, r3
74+
; CHECK-NEXT: vldb wh0, [p0], #32; vshuffle x5, x5, x5, r2; vmac.f bmh3, bmh3, x9, x3, r3
75+
; CHECK-NEXT: vldb wl3, [p0], #32; vmac.f bmh8, bmh8, x6, x0, r3
76+
; CHECK-NEXT: vldb.3d wh3, [p0], d0; vmac.f bml0, bml0, x2, x0, r3
77+
; CHECK-NEXT: vldb wl0, [p1], m5; vmac.f bml1, bml1, x10, x0, r3
78+
; CHECK-NEXT: vldb wh0, [p1], m6; vmac.f bml3, bml3, x6, x7, r3
79+
; CHECK-NEXT: vldb wl7, [p1], m5; vmac.f bml5, bml5, x2, x7, r3
6580
; CHECK-NEXT: .L_LEnd0:
66-
; CHECK-NEXT: nopb ; nopa ; nops ; nopx ; vshuffle x5, x5, x5, r2; nopv
81+
; CHECK-NEXT: vldb.3d wh7, [p1], d1; nopa ; nops ; nopxm ; vmac.f bml6, bml6, x10, x7, r3
6782
; CHECK-NEXT: // %bb.3: // %for.cond.cleanup
68-
; CHECK-NEXT: nopa ; nopxm
69-
; CHECK-NEXT: vshuffle x10, x1, x3, r4; vmac.f bmh4, bmh4, x6, x5, r3
83+
; CHECK-NEXT: vshuffle x2, x8, x0, r16; vmac.f bml4, bml4, x9, x7, r3
84+
; CHECK-NEXT: vshuffle x6, x8, x0, r4
7085
; CHECK-NEXT: vshuffle x9, x1, x3, r16; vmac.f bmh5, bmh5, x2, x5, r3
71-
; CHECK-NEXT: vshuffle x3, x11, x11, r2; vmac.f bmh6, bmh6, x10, x5, r3
72-
; CHECK-NEXT: vshuffle x0, x0, x0, r2; vmac.f bmh7, bmh7, x9, x5, r3
86+
; CHECK-NEXT: vshuffle x10, x1, x3, r4; vmac.f bmh4, bmh4, x6, x5, r3
87+
; CHECK-NEXT: vshuffle x3, x11, x11, r2; vmac.f bmh7, bmh7, x9, x5, r3
88+
; CHECK-NEXT: vshuffle x0, x0, x0, r2; vmac.f bmh6, bmh6, x10, x5, r3
7389
; CHECK-NEXT: vshuffle x7, x7, x7, r2; vmac.f bmh0, bmh0, x6, x3, r3
90+
; CHECK-NEXT: vmac.f bml2, bml2, x9, x0, r3
7491
; CHECK-NEXT: vmac.f bmh1, bmh1, x2, x3, r3
7592
; CHECK-NEXT: vmac.f bmh2, bmh2, x10, x3, r3
7693
; CHECK-NEXT: vmac.f bmh3, bmh3, x9, x3, r3
7794
; CHECK-NEXT: vmac.f bmh8, bmh8, x6, x0, r3
7895
; CHECK-NEXT: vmac.f bml0, bml0, x2, x0, r3
7996
; CHECK-NEXT: vmac.f bml1, bml1, x10, x0, r3
80-
; CHECK-NEXT: vmac.f bml2, bml2, x9, x0, r3
8197
; CHECK-NEXT: vmac.f bml3, bml3, x6, x7, r3
8298
; CHECK-NEXT: vmac.f bml5, bml5, x2, x7, r3
8399
; CHECK-NEXT: vmac.f bml6, bml6, x10, x7, r3
84100
; CHECK-NEXT: vmac.f bml4, bml4, x9, x7, r3
85101
; CHECK-NEXT: nop
102+
; CHECK-NEXT: nop
103+
; CHECK-NEXT: nop
104+
; CHECK-NEXT: nop
105+
; CHECK-NEXT: nop
106+
; CHECK-NEXT: nop
107+
; CHECK-NEXT: nop
108+
; CHECK-NEXT: nop
109+
; CHECK-NEXT: nop
110+
; CHECK-NEXT: nop
111+
; CHECK-NEXT: nop
112+
; CHECK-NEXT: nop
113+
; CHECK-NEXT: nop
114+
; CHECK-NEXT: nop
115+
; CHECK-NEXT: nop
116+
; CHECK-NEXT: nop
86117
; CHECK-NEXT: .p2align 4
87118
; CHECK-NEXT: .LBB0_4: // %for.cond.cleanup
88119
; CHECK-NEXT: nopa ; ret lr

0 commit comments

Comments
 (0)