diff options
author | Luke Lau <luke@igalia.com> | 2025-07-31 10:15:12 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-31 10:15:12 +0800 |
commit | 596640a245e3ba05c3fe42745984fb4bb921ad75 (patch) | |
tree | b96e8b517b00bb605f5514cc97d1f2a1118d2d6f /llvm/lib/Object/ELFObjectFile.cpp | |
parent | 19f3aca7efc2f71c5210c182ea8a3ca01e5c1a10 (diff) | |
download | llvm-596640a245e3ba05c3fe42745984fb4bb921ad75.zip llvm-596640a245e3ba05c3fe42745984fb4bb921ad75.tar.gz llvm-596640a245e3ba05c3fe42745984fb4bb921ad75.tar.bz2 |
[RISCV] Fold vmv.v.v into vmerge (#151341)
We support folding vmv.v.v into its source via the foldVMV_V_V peephole,
but currently it requires that the source has a policy operand.
PseudoVMERGEs (as well as add-with-carry/subtract-with-borrow pseudos)
don't have a policy operand, and instead just seem to derive TA/TU from
whether or not the passthru is undef, since the mask policy doesn't
affect them.
This patch allows pseudos without policy operands, given that if there's
no policy operand then it will default to TU when the passthru is
undefined which should be conservatively correct.
I previously tried adding a policy operand to vmerge/vadc etc., but this
ended up being a lot of churn.
This removes a bunch of redundant vmv.v.vs that I noticed with EVL tail
folding on llvm-test-suite.
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions