This patch series improves the support for the mips64r6 target in GCC. These patches are cherry-picked from the mips_rel/9_3_0/master branch from the MIPS' repository: https://github.com/MIPS/gcc . Further details on the individual changes are included in the respective patches.
Jaydeep Patil (1): MIPSR6: Fix ICE occurred in R6 target Simon Dardis (1): Inefficient scattered complex<float> load with MSA dragan.mladjenovic (3): Test float32-basic.c fails with -mabi=64 -EB Performance degradation for iDCT-4M example Add EHB after last load if branch within 16 inst. gcc/calls.cc | 7 +- gcc/config/aarch64/aarch64-protos.h | 2 +- gcc/config/aarch64/aarch64.cc | 8 +- gcc/config/aarch64/aarch64.h | 5 +- gcc/config/arm/arm-protos.h | 2 +- gcc/config/arm/arm.cc | 5 +- gcc/config/arm/arm.h | 4 +- gcc/config/c6x/c6x-protos.h | 2 +- gcc/config/c6x/c6x.cc | 5 +- gcc/config/c6x/c6x.h | 5 +- gcc/config/mips/mips-protos.h | 2 +- gcc/config/mips/mips.cc | 171 ++++++++++++++++-- gcc/config/mips/mips.h | 4 +- gcc/config/mips/mips.md | 34 +++- gcc/config/mips/mips.opt | 11 ++ gcc/config/pa/pa.h | 2 +- gcc/config/rs6000/aix.h | 2 +- gcc/config/rs6000/darwin.h | 2 +- gcc/config/rs6000/freebsd64.h | 2 +- gcc/config/rs6000/linux64.h | 2 +- gcc/doc/invoke.texi | 8 + gcc/expr.cc | 4 +- gcc/function.cc | 10 +- gcc/testsuite/gcc.target/mips/fix-i6500.c | 19 ++ .../gcc.target/mips/msa-fuse-vect-init.c | 18 ++ .../gcc.target/mips/msa-scattered-load.c | 20 ++ 26 files changed, 302 insertions(+), 54 deletions(-) create mode 100644 gcc/testsuite/gcc.target/mips/fix-i6500.c create mode 100644 gcc/testsuite/gcc.target/mips/msa-fuse-vect-init.c create mode 100644 gcc/testsuite/gcc.target/mips/msa-scattered-load.c -- 2.43.0
