This complements the existing RVV ISel patterns for arithmetic, bitwise
and shifts with the remaining operations in those categories: sub, and,
xor, sra.
Details
Diff Detail
- Repository
 - rG LLVM Github Monorepo
 
Unit Tests
| Time | Test | |
|---|---|---|
| 1,360 ms | x64 debian > XRay-x86_64-linux.TestCases/Posix::fdr-mode.cpp | 
Event Timeline
| llvm/test/CodeGen/RISCV/rvv/vand-sdnode-rv32.ll | ||
|---|---|---|
| 30 | Should we pick a different value here so this test doesn't break if someone fixes DAG combine to optimize out and with -1 on scalable vectors.  | |
| llvm/test/CodeGen/RISCV/rvv/vand-sdnode-rv32.ll | ||
|---|---|---|
| 30 | Yes, good shout! I arbitrarily chose -10. Now that you mention it I'll push an NFC to fix the same flaw in the existing upstream vor-sdnode-* tests.  | |
| llvm/test/CodeGen/RISCV/rvv/vrsub-sdnode-rv32.ll | ||
|---|---|---|
| 21 | This constant should probably also change. sub -1, X is equivalent to xor x, -1. InstCombine knows this but I guess SelectionDAG doesn't yet.  | |
| llvm/test/CodeGen/RISCV/rvv/vrsub-sdnode-rv32.ll | ||
|---|---|---|
| 21 | Or rather it doesn't know it for SPLAT_VECTOR yet.  | |
| llvm/test/CodeGen/RISCV/rvv/vrsub-sdnode-rv32.ll | ||
|---|---|---|
| 21 | Yep good idea. I've updated the tests.  | |
Should we pick a different value here so this test doesn't break if someone fixes DAG combine to optimize out and with -1 on scalable vectors.