[RISCV] Add support for matching .vx and .vi forms of binary instructions for fixed...
authorCraig Topper <craig.topper@sifive.com>
Fri, 12 Feb 2021 17:09:22 +0000 (09:09 -0800)
committerCraig Topper <craig.topper@sifive.com>
Fri, 12 Feb 2021 17:18:10 +0000 (09:18 -0800)
commit875c76de2b6ad67b10c027ed74422642cf4d1aed
treed8597a4804e8138ff0e660b0141f45d4f3f0c912
parent7590c0078dd53d9ad508725fc27d96705ac3a206
[RISCV] Add support for matching .vx and .vi forms of binary instructions for fixed vectors.

Unlike scalable vectors, I'm only using a ComplexPattern for
the immediate itself. The vmv_v_x is matched explicitly. We igore
the VL argument when matching a binary operator, but we do check
it when matching splat directly.

I left out tests for vXi64 as they fail on rv32 right now.

Reviewed By: frasercrmck

Differential Revision: https://reviews.llvm.org/D96365
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll