[RISCV] Use _TIED form of VWADD(U)_WX/VWSUB(U)_WX to avoid early clobber.
authorCraig Topper <craig.topper@sifive.com>
Sat, 1 Oct 2022 23:31:23 +0000 (16:31 -0700)
committerCraig Topper <craig.topper@sifive.com>
Sat, 1 Oct 2022 23:34:39 +0000 (16:34 -0700)
commit5bbc5eb55f0fbb508aeeab8d86a5051f5ac1849f
treee9315934916c7549975010a0a954f89617b3f13d
parent85db4f10e3d65c813d9086f77c1eb65a8abeaf72
[RISCV] Use _TIED form of VWADD(U)_WX/VWSUB(U)_WX to avoid early clobber.

One of the sources is the same size as the destination so that source
doesn't have an overlap with the destination register. By using the _TIED
form we avoid an early clobber contraint for that source.

This matches what was already done for instrinsics. ConvertToThreeAddress
will fix it if it can't stay tied.
llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwaddu.ll
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsubu.ll
llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
llvm/test/CodeGen/RISCV/rvv/vwsub-sdnode.ll