cd6cd6aed1
The MATMUL intrinsic provided a wrong result for rank-1 times rank-2 array when a negative stride was used for addressing the elements of the rank-1 array, because a check on strides was erroneously placed before the check on the rank. Interchange order of checks. libgfortran/ChangeLog: * m4/matmul_internal.m4: Move check for rank-1 times rank-2 before checks on strides for rank-2 times rank-2. * generated/matmul_c10.c: Regenerated. * generated/matmul_c16.c: Likewise. * generated/matmul_c4.c: Likewise. * generated/matmul_c8.c: Likewise. * generated/matmul_i1.c: Likewise. * generated/matmul_i16.c: Likewise. * generated/matmul_i2.c: Likewise. * generated/matmul_i4.c: Likewise. * generated/matmul_i8.c: Likewise. * generated/matmul_r10.c: Likewise. * generated/matmul_r16.c: Likewise. * generated/matmul_r4.c: Likewise. * generated/matmul_r8.c: Likewise. * generated/matmulavx128_c10.c: Likewise. * generated/matmulavx128_c16.c: Likewise. * generated/matmulavx128_c4.c: Likewise. * generated/matmulavx128_c8.c: Likewise. * generated/matmulavx128_i1.c: Likewise. * generated/matmulavx128_i16.c: Likewise. * generated/matmulavx128_i2.c: Likewise. * generated/matmulavx128_i4.c: Likewise. * generated/matmulavx128_i8.c: Likewise. * generated/matmulavx128_r10.c: Likewise. * generated/matmulavx128_r16.c: Likewise. * generated/matmulavx128_r4.c: Likewise. * generated/matmulavx128_r8.c: Likewise. gcc/testsuite/ChangeLog: * gfortran.dg/matmul_20.f90: New test. |
||
---|---|---|
.. | ||
all.m4 | ||
any.m4 | ||
bessel.m4 | ||
count.m4 | ||
cshift0.m4 | ||
cshift1.m4 | ||
cshift1a.m4 | ||
eoshift1.m4 | ||
eoshift3.m4 | ||
findloc0.m4 | ||
findloc0s.m4 | ||
findloc1.m4 | ||
findloc1s.m4 | ||
findloc2s.m4 | ||
head.m4 | ||
iall.m4 | ||
iany.m4 | ||
ifindloc0.m4 | ||
ifindloc1.m4 | ||
ifindloc2.m4 | ||
iforeach-s2.m4 | ||
iforeach-s.m4 | ||
iforeach.m4 | ||
ifunction_logical.m4 | ||
ifunction-s2.m4 | ||
ifunction-s.m4 | ||
ifunction.m4 | ||
in_pack.m4 | ||
in_unpack.m4 | ||
iparity.m4 | ||
iparm.m4 | ||
matmul_internal.m4 | ||
matmul.m4 | ||
matmulavx128.m4 | ||
matmull.m4 | ||
maxloc0.m4 | ||
maxloc0s.m4 | ||
maxloc1.m4 | ||
maxloc1s.m4 | ||
maxloc2s.m4 | ||
maxval0s.m4 | ||
maxval1s.m4 | ||
maxval.m4 | ||
minloc0.m4 | ||
minloc0s.m4 | ||
minloc1.m4 | ||
minloc1s.m4 | ||
minloc2s.m4 | ||
minval0s.m4 | ||
minval1s.m4 | ||
minval.m4 | ||
misc_specifics.m4 | ||
mtype.m4 | ||
norm2.m4 | ||
pack.m4 | ||
parity.m4 | ||
pow.m4 | ||
product.m4 | ||
reshape.m4 | ||
shape.m4 | ||
specific2.m4 | ||
specific.m4 | ||
spread.m4 | ||
sum.m4 | ||
types.m4 | ||
unpack.m4 |