Skip to content

Commit 5a845ef

Browse files
authored
Merge pull request #4809 from penghongbo/reorder_gemm_gemvt
Change computational order in GEMV and GEMM Power6 kernel
2 parents ee87cb9 + db98f87 commit 5a845ef

File tree

3 files changed

+678
-832
lines changed

3 files changed

+678
-832
lines changed

kernel/power/gemm_kernel_power6.S

Lines changed: 46 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -864,15 +864,15 @@ LL(22):
864864
LFD f22, 10 * SIZE(BO)
865865
LFD f23, 11 * SIZE(BO)
866866

867-
FMADD f2, f18, f24, f2
868-
FMADD f3, f19, f24, f3
869-
FMADD f6, f18, f25, f6
870-
FMADD f7, f19, f25, f7
867+
FMADD f0, f18, f24, f0
868+
FMADD f1, f19, f24, f1
869+
FMADD f4, f18, f25, f4
870+
FMADD f5, f19, f25, f5
871871

872-
FMADD f10, f18, f26, f10
873-
FMADD f11, f19, f26, f11
874-
FMADD f14, f18, f27, f14
875-
FMADD f15, f19, f27, f15
872+
FMADD f8, f18, f26, f8
873+
FMADD f9, f19, f26, f9
874+
FMADD f12, f18, f27, f12
875+
FMADD f13, f19, f27, f13
876876

877877
LFD f16, 4 * SIZE(AO)
878878
LFD f17, 5 * SIZE(AO)
@@ -899,15 +899,15 @@ LL(22):
899899
LFD f22, 18 * SIZE(BO)
900900
LFD f23, 19 * SIZE(BO)
901901

902-
FMADD f2, f18, f24, f2
903-
FMADD f3, f19, f24, f3
904-
FMADD f6, f18, f25, f6
905-
FMADD f7, f19, f25, f7
902+
FMADD f0, f18, f24, f0
903+
FMADD f1, f19, f24, f1
904+
FMADD f4, f18, f25, f4
905+
FMADD f5, f19, f25, f5
906906

907-
FMADD f10, f18, f26, f10
908-
FMADD f11, f19, f26, f11
909-
FMADD f14, f18, f27, f14
910-
FMADD f15, f19, f27, f15
907+
FMADD f8, f18, f26, f8
908+
FMADD f9, f19, f26, f9
909+
FMADD f12, f18, f27, f12
910+
FMADD f13, f19, f27, f13
911911

912912
LFD f16, 8 * SIZE(AO)
913913
LFD f17, 9 * SIZE(AO)
@@ -923,14 +923,6 @@ LL(22):
923923
addi BO, BO, 16 * SIZE
924924
bdnz LL(22)
925925

926-
fadd f0, f2, f0
927-
fadd f1, f3, f1
928-
fadd f4, f6, f4
929-
fadd f5, f7, f5
930-
fadd f8, f10, f8
931-
fadd f9, f11, f9
932-
fadd f12, f14, f12
933-
fadd f13, f15, f13
934926
.align 4
935927

936928
LL(25):
@@ -1161,10 +1153,10 @@ LL(32):
11611153
LFD f22, 10 * SIZE(BO)
11621154
LFD f23, 11 * SIZE(BO)
11631155

1164-
FMADD f1, f17, f24, f1
1165-
FMADD f5, f17, f25, f5
1166-
FMADD f9, f17, f26, f9
1167-
FMADD f13, f17, f27, f13
1156+
FMADD f0, f17, f24, f0
1157+
FMADD f4, f17, f25, f4
1158+
FMADD f8, f17, f26, f8
1159+
FMADD f12, f17, f27, f12
11681160

11691161
LFD f24, 12 * SIZE(BO)
11701162
LFD f25, 13 * SIZE(BO)
@@ -1181,10 +1173,10 @@ LL(32):
11811173
LFD f22, 18 * SIZE(BO)
11821174
LFD f23, 19 * SIZE(BO)
11831175

1184-
FMADD f1, f19, f24, f1
1185-
FMADD f5, f19, f25, f5
1186-
FMADD f9, f19, f26, f9
1187-
FMADD f13, f19, f27, f13
1176+
FMADD f0, f19, f24, f0
1177+
FMADD f4, f19, f25, f4
1178+
FMADD f8, f19, f26, f8
1179+
FMADD f12, f19, f27, f12
11881180

11891181
LFD f16, 4 * SIZE(AO)
11901182
LFD f17, 5 * SIZE(AO)
@@ -1200,10 +1192,6 @@ LL(32):
12001192
addi BO, BO, 16 * SIZE
12011193
bdnz LL(32)
12021194

1203-
fadd f0, f1, f0
1204-
fadd f4, f5, f4
1205-
fadd f8, f9, f8
1206-
fadd f12, f13, f12
12071195
.align 4
12081196

12091197
LL(35):
@@ -1691,10 +1679,10 @@ LL(52):
16911679
FMADD f2, f16, f21, f2
16921680
FMADD f3, f17, f21, f3
16931681

1694-
FMADD f4, f18, f22, f4
1695-
FMADD f5, f19, f22, f5
1696-
FMADD f6, f18, f23, f6
1697-
FMADD f7, f19, f23, f7
1682+
FMADD f0, f18, f22, f0
1683+
FMADD f1, f19, f22, f1
1684+
FMADD f2, f18, f23, f2
1685+
FMADD f3, f19, f23, f3
16981686

16991687
LFD f16, 4 * SIZE(AO)
17001688
LFD f17, 5 * SIZE(AO)
@@ -1711,10 +1699,10 @@ LL(52):
17111699
FMADD f2, f16, f25, f2
17121700
FMADD f3, f17, f25, f3
17131701

1714-
FMADD f4, f18, f26, f4
1715-
FMADD f5, f19, f26, f5
1716-
FMADD f6, f18, f27, f6
1717-
FMADD f7, f19, f27, f7
1702+
FMADD f0, f18, f26, f0
1703+
FMADD f1, f19, f26, f1
1704+
FMADD f2, f18, f27, f2
1705+
FMADD f3, f19, f27, f3
17181706

17191707
LFD f16, 8 * SIZE(AO)
17201708
LFD f17, 9 * SIZE(AO)
@@ -1775,21 +1763,11 @@ LL(58):
17751763
LFD f18, 0 * SIZE(CO2)
17761764
LFD f19, 1 * SIZE(CO2)
17771765

1778-
FADD f0, f4, f0
1779-
FADD f1, f5, f1
1780-
FADD f2, f6, f2
1781-
FADD f3, f7, f3
1782-
17831766
FMADD f0, f0, f30, f16
17841767
FMADD f1, f1, f30, f17
17851768
FMADD f2, f2, f30, f18
17861769
FMADD f3, f3, f30, f19
17871770
#else
1788-
FADD f0, f4, f0
1789-
FADD f1, f5, f1
1790-
FADD f2, f6, f2
1791-
FADD f3, f7, f3
1792-
17931771
FMUL f0, f0, f30
17941772
FMUL f1, f1, f30
17951773
FMUL f2, f2, f30
@@ -1916,8 +1894,8 @@ LL(60):
19161894
LL(62):
19171895
FMADD f0, f16, f20, f0
19181896
FMADD f1, f16, f21, f1
1919-
FMADD f2, f17, f22, f2
1920-
FMADD f3, f17, f23, f3
1897+
FMADD f0, f17, f22, f0
1898+
FMADD f1, f17, f23, f1
19211899

19221900
LFD f20, 8 * SIZE(BO)
19231901
LFD f21, 9 * SIZE(BO)
@@ -1926,8 +1904,8 @@ LL(62):
19261904

19271905
FMADD f0, f18, f24, f0
19281906
FMADD f1, f18, f25, f1
1929-
FMADD f2, f19, f26, f2
1930-
FMADD f3, f19, f27, f3
1907+
FMADD f0, f19, f26, f0
1908+
FMADD f1, f19, f27, f1
19311909

19321910
LFD f16, 4 * SIZE(AO)
19331911
LFD f17, 5 * SIZE(AO)
@@ -1986,15 +1964,9 @@ LL(68):
19861964
LFD f16, 0 * SIZE(CO1)
19871965
LFD f18, 0 * SIZE(CO2)
19881966

1989-
FADD f0, f2, f0
1990-
FADD f1, f3, f1
1991-
19921967
FMADD f0, f0, f30, f16
19931968
FMADD f1, f1, f30, f18
19941969
#else
1995-
FADD f0, f2, f0
1996-
FADD f1, f3, f1
1997-
19981970
FMUL f0, f0, f30
19991971
FMUL f1, f1, f30
20001972
#endif
@@ -2007,7 +1979,6 @@ LL(68):
20071979
fmr f4, f0
20081980
fmr f5, f0
20091981

2010-
20111982
#ifdef TRMMKERNEL
20121983
#if ( defined(LEFT) && defined(TRANSA)) || \
20131984
(!defined(LEFT) && !defined(TRANSA))
@@ -2332,8 +2303,8 @@ LL(80):
23322303
LL(82):
23332304
FMADD f0, f16, f20, f0
23342305
FMADD f1, f17, f20, f1
2335-
FMADD f2, f18, f21, f2
2336-
FMADD f3, f19, f21, f3
2306+
FMADD f0, f18, f21, f0
2307+
FMADD f1, f19, f21, f1
23372308

23382309
LFD f16, 4 * SIZE(AO)
23392310
LFD f17, 5 * SIZE(AO)
@@ -2342,8 +2313,8 @@ LL(82):
23422313

23432314
FMADD f0, f16, f22, f0
23442315
FMADD f1, f17, f22, f1
2345-
FMADD f2, f18, f23, f2
2346-
FMADD f3, f19, f23, f3
2316+
FMADD f0, f18, f23, f0
2317+
FMADD f1, f19, f23, f1
23472318

23482319
LFD f16, 8 * SIZE(AO)
23492320
LFD f17, 9 * SIZE(AO)
@@ -2401,15 +2372,9 @@ LL(88):
24012372
LFD f16, 0 * SIZE(CO1)
24022373
LFD f17, 1 * SIZE(CO1)
24032374

2404-
FADD f0, f2, f0
2405-
FADD f1, f3, f1
2406-
24072375
FMADD f0, f0, f30, f16
24082376
FMADD f1, f1, f30, f17
24092377
#else
2410-
FADD f0, f2, f0
2411-
FADD f1, f3, f1
2412-
24132378
FMUL f0, f0, f30
24142379
FMUL f1, f1, f30
24152380
#endif
@@ -2418,9 +2383,6 @@ LL(88):
24182383
STFD f1, 1 * SIZE(CO1)
24192384

24202385
lfs f0, FZERO
2421-
fmr f1, f0
2422-
fmr f2, f0
2423-
fmr f3, f0
24242386

24252387
addi CO1, CO1, 2 * SIZE
24262388

@@ -2512,9 +2474,9 @@ LL(90):
25122474

25132475
LL(92):
25142476
FMADD f0, f16, f20, f0
2515-
FMADD f1, f17, f21, f1
2516-
FMADD f2, f18, f22, f2
2517-
FMADD f3, f19, f23, f3
2477+
FMADD f0, f17, f21, f0
2478+
FMADD f0, f18, f22, f0
2479+
FMADD f0, f19, f23, f0
25182480

25192481
LFD f16, 4 * SIZE(AO)
25202482
LFD f17, 5 * SIZE(AO)
@@ -2527,9 +2489,9 @@ LL(92):
25272489
LFD f23, 7 * SIZE(BO)
25282490

25292491
FMADD f0, f16, f20, f0
2530-
FMADD f1, f17, f21, f1
2531-
FMADD f2, f18, f22, f2
2532-
FMADD f3, f19, f23, f3
2492+
FMADD f0, f17, f21, f0
2493+
FMADD f0, f18, f22, f0
2494+
FMADD f0, f19, f23, f0
25332495

25342496
LFD f16, 8 * SIZE(AO)
25352497
LFD f17, 9 * SIZE(AO)
@@ -2583,16 +2545,8 @@ LL(98):
25832545
#ifndef TRMMKERNEL
25842546
LFD f16, 0 * SIZE(CO1)
25852547

2586-
FADD f0, f1, f0
2587-
FADD f2, f3, f2
2588-
FADD f0, f2, f0
2589-
25902548
FMADD f0, f0, f30, f16
25912549
#else
2592-
FADD f0, f1, f0
2593-
FADD f2, f3, f2
2594-
FADD f0, f2, f0
2595-
25962550
FMUL f0, f0, f30
25972551
#endif
25982552

0 commit comments

Comments
 (0)