diff options
author | Jeff Law <jlaw@ventanamicro.com> | 2024-11-21 08:24:10 -0700 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2024-11-21 08:24:10 -0700 |
commit | 41fb3a5669d3a8c85f9103798f4e7502190cf969 (patch) | |
tree | d46ee9d200990c06ef2cdd44b92407e7ebd0bc2a /gcc/function.cc | |
parent | fbca864a7bfff9f848733f676c3c9df133fba4b0 (diff) | |
download | gcc-41fb3a5669d3a8c85f9103798f4e7502190cf969.zip gcc-41fb3a5669d3a8c85f9103798f4e7502190cf969.tar.gz gcc-41fb3a5669d3a8c85f9103798f4e7502190cf969.tar.bz2 |
[RISC-V][PR target/116590] Avoid emitting multiple instructions from fmacc patterns
So much like my patch from last week, this removes alternatives that
create multiple instructions that we really should have never needed.
In this case it fixes one of two bugs in pr116590. In particular we
don't want vmvNr instructions for thead-vector. Those instructions were
emitted as part of those two instruction sequences.
I've tested this in my tester and assuming the pre-commit tester is
happy, I'll push it to the trunk.
PR target/116590
gcc
* config/riscv/vector.md (pred_mul_<optab>mode_undef): Drop
unnecessary alternatives.
(pred_<madd_msub><mode>): Likewise.
(pred_<macc_msac><mode>): Likewise.
(pred_<madd_msub><mode>_scalar): Likewise.
(pred_<macc_msac><mode>_scalar): Likewise.
(pred_mul_neg_<optab><mode>_undef): Likewise.
(pred_<nmsub_nmadd><mode>): Likewise.
(pred_<nmsac_nmacc><mode>): Likewise.
(pred_<nmsub_nmadd><mode>_scalar): Likewise.
(pred_<nmsac_nmacc><mode>_scalar): Likewise.
gcc/testsuite
* gcc.target/riscv/pr116590.c: New test.
Diffstat (limited to 'gcc/function.cc')
0 files changed, 0 insertions, 0 deletions