llvm-project/clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded
Hsiangkai Wang 7afa61e718 [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics.
Add the tail policy argument to Clang builtins. There
are two policies for tail elements. Tail agnostic means users do not
care about the values in the tail elements and tail undisturbed means
the values in the tail elements need to be kept after the operation. In
order to let users control the tail policy, we add an additional
argument at the end of the argument list.

For unmasked operations, we have no maskedoff and the tail policy is
always tail agnostic. If users want to keep tail elements under unmasked
operations, they could use all one mask in the masked operations to do
it. So, we only add the additional argument for masked operations for
most cases. There are exceptions listed below.

In this patch, we do not handle the following cases to reduce the
complexity of the patch. There could be two separate patches for them.

Use dest argument to control tail policy
vmerge.vvm/vmerge.vxm/vmerge.vim (add _t builtins with additional dest
argument)
vfmerge.vfm (add _t builtins with additional dest argument)
vmv.v.v (add _t builtins with additional dest argument)
vmv.v.x (add _t builtins with additional dest argument)
vmv.v.i (add _t builtins with additional dest argument)
vfmv.v.f (add _t builtins with additional dest argument)
vadc.vvm/vadc.vxm/vadc.vim (add _t builtins with additional dest
argument)
vsbc.vvm/vsbc.vxm (add _t builtins with additional dest argument)

Always has tail argument for masked/unmasked intrinsics
Vector Single-Width Integer Multiply-Add Instructions (add _t and _mt
builtins)
Vector Widening Integer Multiply-Add Instructions (add _t and _mt
builtins)
Vector Single-Width Floating-Point Fused Multiply-Add Instructions (add
_t and _mt builtins)
Vector Widening Floating-Point Fused Multiply-Add Instructions (add _t
and _mt builtins)
Vector Reduction Operations (add _t and _mt builtins)
Vector Slideup Instructions (add _t and _mt builtins)
Vector Slidedown Instructions (add _t and _mt builtins)

Discussion: https://github.com/riscv/rvv-intrinsic-doc/pull/101

Differential Revision: https://reviews.llvm.org/D109322
2021-09-24 17:09:50 +08:00
..
vaadd.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vadc.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vadd.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vamoadd.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vamoand.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vamomax.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vamomin.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vamoor.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vamoswap.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vamoxor.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vand.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vasub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vcompress.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vdiv.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfabs.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfadd.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfclass.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfcvt.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfdiv.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfirst.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfmacc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfmadd.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfmax.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfmerge.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfmin.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfmsac.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfmsub.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfmul.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfmv.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vfncvt.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfneg.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfnmacc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfnmadd.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfnmsac.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfnmsub.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfrdiv.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfrec7.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfredmax.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfredmin.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfredsum.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfrsqrt7.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfrsub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfsgnj.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfslide1down.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfslide1up.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfsqrt.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfsub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfwadd.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfwcvt.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfwmacc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfwmsac.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfwmul.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vfwnmacc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfwnmsac.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfwredsum.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vfwsub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vget.c [RISCV] Support overloading for RVV miscellaneous functions. 2021-07-13 21:35:37 -07:00
vid.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
viota.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vle.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vlmul.c [RISCV] Support overloading for RVV miscellaneous functions. 2021-07-13 21:35:37 -07:00
vloxei.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vloxseg.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vlse.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vlseg.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vlsegff.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vlsseg.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vluxei.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vluxseg.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vmacc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmadc.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmadd.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmand.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmax.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vmerge.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmfeq.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmfge.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmfgt.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmfle.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmflt.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmfne.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmin.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vmmv.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmnand.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmnor.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmnot.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmor.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmsbc.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmsbf.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmseq.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmsge.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmsgt.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmsif.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmsle.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmslt.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmsne.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmsof.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vmul.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vmv.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmxnor.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vmxor.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vnclip.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vncvt.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vneg.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vnmsac.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vnmsub.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vnot.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vnsra.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vnsrl.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vor.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vpopc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vredand.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vredmax.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vredmin.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vredor.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vredsum.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vredxor.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vreinterpret.c [RISCV] Support overloading for RVV miscellaneous functions. 2021-07-13 21:35:37 -07:00
vrem.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vrgather.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vrsub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsadd.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsbc.c [RISCV] Remove riscv32 test cases for vector intrinsics. 2021-04-28 15:54:25 +08:00
vse.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vset.c [RISCV] Support overloading for RVV miscellaneous functions. 2021-07-13 21:35:37 -07:00
vsext.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vslide1down.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vslide1up.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vslidedown.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vslideup.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vsll.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsmul.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsoxei.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsoxseg.c [Clang][RISCV] Implement vsoxseg and vsuxseg. 2021-07-22 09:24:41 +08:00
vsra.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsrl.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsse.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsseg.c [Clang][RISCV] Implement vsseg. 2021-07-22 09:24:39 +08:00
vssra.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vssrl.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vssseg.c [Clang][RISCV] Implement vssseg. 2021-07-22 09:24:40 +08:00
vssub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsuxei.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vsuxseg.c [Clang][RISCV] Implement vsoxseg and vsuxseg. 2021-07-22 09:24:41 +08:00
vwadd.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vwcvt.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vwmacc.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vwmul.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vwredsum.c [RISCV] Reorder masked builtin operands. Use clang_builtin_alias for all overloaded vector builtins. 2021-05-02 10:57:25 -07:00
vwsub.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vxor.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00
vzext.c [RISCV] (2/2) Add the tail policy argument to builtins/intrinsics. 2021-09-24 17:09:50 +08:00