[RISCV] Add the policy operand for some masked RVV ternary IR intrinsics.
authorZakk Chen <zakk.chen@sifive.com>
Fri, 11 Feb 2022 12:24:37 +0000 (04:24 -0800)
committerZakk Chen <zakk.chen@sifive.com>
Fri, 11 Feb 2022 13:02:03 +0000 (05:02 -0800)
commitd224be3b999afb7c4daa9c0ca807dea8123a7593
tree69427cae889b740a7dc1f116c6c20c0211fe078e
parent2219f9f57cff2ecc0402b393630e0975f8873603
[RISCV] Add the policy operand for some masked RVV ternary IR intrinsics.

Masked reduction intrinsics are specical cases which don't need to have policy
operand. The mask only affects which elements are read. It doesn't effect the
destination register.
The reduction intrinsics have a dedicated destination operand. If it
is undef, we use tail agnostic. If it not undef we use tail
undisturbed.

Co-Authored-by: Craig Topper <craig.topper@sifive.com>
Differential Revision: https://reviews.llvm.org/D117681
74 files changed:
clang/include/clang/Basic/riscv_vector.td
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslidedown.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslideup.c
clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmacc.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vmadd.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsac.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsub.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vslidedown.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vslideup.c
clang/test/CodeGen/RISCV/rvv-intrinsics/vwmacc.c
llvm/include/llvm/IR/IntrinsicsRISCV.td
llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
llvm/test/CodeGen/RISCV/rvv/vfmacc.ll
llvm/test/CodeGen/RISCV/rvv/vfmadd.ll
llvm/test/CodeGen/RISCV/rvv/vfmsac.ll
llvm/test/CodeGen/RISCV/rvv/vfmsub.ll
llvm/test/CodeGen/RISCV/rvv/vfnmacc.ll
llvm/test/CodeGen/RISCV/rvv/vfnmadd.ll
llvm/test/CodeGen/RISCV/rvv/vfnmsac.ll
llvm/test/CodeGen/RISCV/rvv/vfnmsub.ll
llvm/test/CodeGen/RISCV/rvv/vfwmacc.ll
llvm/test/CodeGen/RISCV/rvv/vfwmsac.ll
llvm/test/CodeGen/RISCV/rvv/vfwnmacc.ll
llvm/test/CodeGen/RISCV/rvv/vfwnmsac.ll
llvm/test/CodeGen/RISCV/rvv/vmacc-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vmacc-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vmadd-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vmadd-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vnmsac-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vnmsac-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vnmsub-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vnmsub-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vslidedown-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vslidedown-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vslideup-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vslideup-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vwmacc-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vwmacc-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vwmaccsu-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vwmaccsu-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vwmaccu-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vwmaccu-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vwmaccus-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vwmaccus-rv64.ll