[RISCV] Add isel patterns to form tail undisturbed vwadd(u).wv from vwadd(u)_vl+vp_merge.
authorCraig Topper <craig.topper@sifive.com>
Tue, 10 Jan 2023 00:35:44 +0000 (16:35 -0800)
committerCraig Topper <craig.topper@sifive.com>
Tue, 10 Jan 2023 00:44:11 +0000 (16:44 -0800)
commit64fae4d3b7837007b1cc836fbc9b6b7549f3a5f1
tree99b7fb2c302255ae6ec79c3a7cde1f1b0a96ff0d
parent3f191770fa7682347f150dd2c4c98cad4ae211f2
[RISCV] Add isel patterns to form tail undisturbed vwadd(u).wv from vwadd(u)_vl+vp_merge.

We use a special TIED instructions for vwadd(u).wv to avoid an
earlyclobber constraint preventing the first source and the destination
from being the same register.

This prevents our normal post process for forming TU instructions.
Add manual isel pattern instead. This matches what we do for FMA
for example.
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
llvm/test/CodeGen/RISCV/rvv/vwadd-vp.ll