https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124804
--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, the loop has exactly one iteration and in both cases all 8 MMA accumulators
are used, just in different orders, 0, 4, 5, 6, 7, 3, 1, 2 vs. 2, 4, 5, 6, 0,
7, 3, 1.
The first data difference is in $a5, I've put breakpoints on all the
xvbf16ger2pp insns with $a5 accumulator and compared the corresponding input
operands, and all have the same values except for the first input operand of
the last xvbf16ger2pp 5,...
insn.
Without any sched it is
0x0000000010000940 <BF16GEMV_T_MMA_8+336>: dmxvbf16ger2pp a5,vs44,vs48
and
(gdb) p $vs44
$30 = {float128 = 2.06407030886103794578927588781383601e-24, uint128 =
84656493874352150699656209585058496429, v2_double = {0.0084214899518711642,
0.063467398222425878},
v4_float = {0.915034115, 1.00974381, 1.45505536, 1.37693477}, v4_int32 =
{1063927725, 1065434953, 1069170497, 1068515174}, v8_int16 = {16301, 16234,
16201, 16257, 16193, 16314,
16230, 16304}, v16_int8 = {-83, 63, 106, 63, 73, 63, -127, 63, 65, 63, -70,
63, 102, 63, -80, 63}}
(gdb) p $vs48
$31 = {float128 = 7.3295531861735777086128282856791316e-39, uint128 =
84407260535250187022019119464265957292, v2_double = {0.015257703121079512,
0.0079331342057285276}, v4_float = {
0.836909056, 1.11912322, 1.49412739, 1.00193012}, v4_int32 = {1062617004,
1066352494, 1069498257, 1065369407}, v8_int16 = {16300, 16214, 16238, 16271,
16273, 16319, 16191,
16256}, v16_int8 = {-84, 63, 86, 63, 110, 63, -113, 63, -111, 63, -65, 63,
63, 63, -128, 63}}
while with early sched it is
0x00000000100009a4 <BF16GEMV_T_MMA_8+436>: dmxvbf16ger2pp a5,vs32,vs62
and
(gdb) p $vs32
$25 = {float128 = 3.84726360989932248572567852077824961e-33, uint128 =
84505921702154369525358723716408098729, v2_double = {0.019774068130402309,
0.018797371506081274}, v4_float = {
1.43163025, 1.15819252, 0.977525353, 1.15037894}, v4_int32 = {1068973993,
1066680231, 1064976154, 1066614686}, v8_int16 = {16297, 16311, 16295, 16276,
16154, 16250, 16286,
16275}, v16_int8 = {-87, 63, -73, 63, -89, 63, -108, 63, 26, 63, 122, 63,
-98, 63, -109, 63}}
(gdb) p $vs62
$26 = {float128 = 7.3295531861735777086128282856791316e-39, uint128 =
84407260535250187022019119464265957292, v2_double = {0.015257703121079512,
0.0079331342057285276}, v4_float = {
0.836909056, 1.11912322, 1.49412739, 1.00193012}, v4_int32 = {1062617004,
1066352494, 1069498257, 1065369407}, v8_int16 = {16300, 16214, 16238, 16271,
16273, 16319, 16191,
16256}, v16_int8 = {-84, 63, 86, 63, 110, 63, -113, 63, -111, 63, -65, 63,
63, 63, -128, 63}}