Skip to content

Commit db98f87

Browse files
committed
Try to fix LAPACK testing failures on P7.
1. Remove the FADD insn from the GEMV Transpose code. 2. Remove the FADD insn from GEMM and ZGEMM code. 3. Reorder the compution of the Imaginary part in ZGEMM code.
1 parent ee87cb9 commit db98f87

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)