The patch selects VSELECT_VL/VP_MERGE_VL that uses VF(N)M(ACC|SAC) as its
true operand and the adden of the true operand as its false operand.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
1472 | What about the VFMSAC, etc.? You can do them in a separate patch if you want but please give a roadmap of other patches you're planning. This is also valid for integer vmacc and vnmsac. |
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
1472 | Sure, I will add VFMSAC in this patch. And I will add another patch for vmccc and vnmsac. |
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
1472 |
Yes | |
1472 | I think it should still be valid for VFMSAC. The elements that are masked off or in the tail won't be negated. The other elements will be. |
Add vfnmsac patterns and constarin the selected VFMADD/VFNMSAC should have exactly one user.
Is it OK that I plan to add VFNMADD/VFMSAC in a seperated patch?
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
1472 |
Yeah, I got the idea. But I just express that VFMAC needs other patterns than VPatFPMulAccVL_VV_VF. |
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
1472 | Why does it need a different pattern? |
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
1472 | Sorry, I found that I were wrong. I will add VFMSAC and VFNMADD in the revision. |
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmsac-vp.ll | ||
---|---|---|
7 | These are scalable vector tests in a fixed vector file. |
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmsac-vp.ll | ||
---|---|---|
7 | Converted to fixed vector in dc2b8fb965d535cf3c7149b0e66db28b330c4c90 |
What about the VFMSAC, etc.? You can do them in a separate patch if you want but please give a roadmap of other patches you're planning.
This is also valid for integer vmacc and vnmsac.