Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gcc/ChangeLog: * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro. (RVV_TUPLE_PARTIAL_MODES): Ditto. * config/riscv/riscv-protos.h (riscv_v_ext_tuple_mode_p): New function. (get_nf): Ditto. (get_subpart_mode): Ditto. (get_tuple_mode): Ditto. (expand_tuple_move): Ditto. * config/riscv/riscv-v.cc (ENTRY): New macro. (TUPLE_ENTRY): Ditto. (get_nf): New function. (get_subpart_mode): Ditto. (get_tuple_mode): Ditto. (expand_tuple_move): Ditto. * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TUPLE_TYPE): New macro. (register_tuple_type): New function * config/riscv/riscv-vector-builtins.def (DEF_RVV_TUPLE_TYPE): New macro. (vint8mf8x2_t): New macro. (vuint8mf8x2_t): Ditto. (vint8mf8x3_t): Ditto. (vuint8mf8x3_t): Ditto. (vint8mf8x4_t): Ditto. (vuint8mf8x4_t): Ditto. (vint8mf8x5_t): Ditto. (vuint8mf8x5_t): Ditto. (vint8mf8x6_t): Ditto. (vuint8mf8x6_t): Ditto. (vint8mf8x7_t): Ditto. (vuint8mf8x7_t): Ditto. (vint8mf8x8_t): Ditto. (vuint8mf8x8_t): Ditto. (vint8mf4x2_t): Ditto. (vuint8mf4x2_t): Ditto. (vint8mf4x3_t): Ditto. (vuint8mf4x3_t): Ditto. (vint8mf4x4_t): Ditto. (vuint8mf4x4_t): Ditto. (vint8mf4x5_t): Ditto. (vuint8mf4x5_t): Ditto. (vint8mf4x6_t): Ditto. (vuint8mf4x6_t): Ditto. (vint8mf4x7_t): Ditto. (vuint8mf4x7_t): Ditto. (vint8mf4x8_t): Ditto. (vuint8mf4x8_t): Ditto. (vint8mf2x2_t): Ditto. (vuint8mf2x2_t): Ditto. (vint8mf2x3_t): Ditto. (vuint8mf2x3_t): Ditto. (vint8mf2x4_t): Ditto. (vuint8mf2x4_t): Ditto. (vint8mf2x5_t): Ditto. (vuint8mf2x5_t): Ditto. (vint8mf2x6_t): Ditto. (vuint8mf2x6_t): Ditto. (vint8mf2x7_t): Ditto. (vuint8mf2x7_t): Ditto. (vint8mf2x8_t): Ditto. (vuint8mf2x8_t): Ditto. (vint8m1x2_t): Ditto. (vuint8m1x2_t): Ditto. (vint8m1x3_t): Ditto. (vuint8m1x3_t): Ditto. (vint8m1x4_t): Ditto. (vuint8m1x4_t): Ditto. (vint8m1x5_t): Ditto. (vuint8m1x5_t): Ditto. (vint8m1x6_t): Ditto. (vuint8m1x6_t): Ditto. (vint8m1x7_t): Ditto. (vuint8m1x7_t): Ditto. (vint8m1x8_t): Ditto. (vuint8m1x8_t): Ditto. (vint8m2x2_t): Ditto. (vuint8m2x2_t): Ditto. (vint8m2x3_t): Ditto. (vuint8m2x3_t): Ditto. (vint8m2x4_t): Ditto. (vuint8m2x4_t): Ditto. (vint8m4x2_t): Ditto. (vuint8m4x2_t): Ditto. (vint16mf4x2_t): Ditto. (vuint16mf4x2_t): Ditto. (vint16mf4x3_t): Ditto. (vuint16mf4x3_t): Ditto. (vint16mf4x4_t): Ditto. (vuint16mf4x4_t): Ditto. (vint16mf4x5_t): Ditto. (vuint16mf4x5_t): Ditto. (vint16mf4x6_t): Ditto. (vuint16mf4x6_t): Ditto. (vint16mf4x7_t): Ditto. (vuint16mf4x7_t): Ditto. (vint16mf4x8_t): Ditto. (vuint16mf4x8_t): Ditto. (vint16mf2x2_t): Ditto. (vuint16mf2x2_t): Ditto. (vint16mf2x3_t): Ditto. (vuint16mf2x3_t): Ditto. (vint16mf2x4_t): Ditto. (vuint16mf2x4_t): Ditto. (vint16mf2x5_t): Ditto. (vuint16mf2x5_t): Ditto. (vint16mf2x6_t): Ditto. (vuint16mf2x6_t): Ditto. (vint16mf2x7_t): Ditto. (vuint16mf2x7_t): Ditto. (vint16mf2x8_t): Ditto. (vuint16mf2x8_t): Ditto. (vint16m1x2_t): Ditto. (vuint16m1x2_t): Ditto. (vint16m1x3_t): Ditto. (vuint16m1x3_t): Ditto. (vint16m1x4_t): Ditto. (vuint16m1x4_t): Ditto. (vint16m1x5_t): Ditto. (vuint16m1x5_t): Ditto. (vint16m1x6_t): Ditto. (vuint16m1x6_t): Ditto. (vint16m1x7_t): Ditto. (vuint16m1x7_t): Ditto. (vint16m1x8_t): Ditto. (vuint16m1x8_t): Ditto. (vint16m2x2_t): Ditto. (vuint16m2x2_t): Ditto. (vint16m2x3_t): Ditto. (vuint16m2x3_t): Ditto. (vint16m2x4_t): Ditto. (vuint16m2x4_t): Ditto. (vint16m4x2_t): Ditto. (vuint16m4x2_t): Ditto. (vint32mf2x2_t): Ditto. (vuint32mf2x2_t): Ditto. (vint32mf2x3_t): Ditto. (vuint32mf2x3_t): Ditto. (vint32mf2x4_t): Ditto. (vuint32mf2x4_t): Ditto. (vint32mf2x5_t): Ditto. (vuint32mf2x5_t): Ditto. (vint32mf2x6_t): Ditto. (vuint32mf2x6_t): Ditto. (vint32mf2x7_t): Ditto. (vuint32mf2x7_t): Ditto. (vint32mf2x8_t): Ditto. (vuint32mf2x8_t): Ditto. (vint32m1x2_t): Ditto. (vuint32m1x2_t): Ditto. (vint32m1x3_t): Ditto. (vuint32m1x3_t): Ditto. (vint32m1x4_t): Ditto. (vuint32m1x4_t): Ditto. (vint32m1x5_t): Ditto. (vuint32m1x5_t): Ditto. (vint32m1x6_t): Ditto. (vuint32m1x6_t): Ditto. (vint32m1x7_t): Ditto. (vuint32m1x7_t): Ditto. (vint32m1x8_t): Ditto. (vuint32m1x8_t): Ditto. (vint32m2x2_t): Ditto. (vuint32m2x2_t): Ditto. (vint32m2x3_t): Ditto. (vuint32m2x3_t): Ditto. (vint32m2x4_t): Ditto. (vuint32m2x4_t): Ditto. (vint32m4x2_t): Ditto. (vuint32m4x2_t): Ditto. (vint64m1x2_t): Ditto. (vuint64m1x2_t): Ditto. (vint64m1x3_t): Ditto. (vuint64m1x3_t): Ditto. (vint64m1x4_t): Ditto. (vuint64m1x4_t): Ditto. (vint64m1x5_t): Ditto. (vuint64m1x5_t): Ditto. (vint64m1x6_t): Ditto. (vuint64m1x6_t): Ditto. (vint64m1x7_t): Ditto. (vuint64m1x7_t): Ditto. (vint64m1x8_t): Ditto. (vuint64m1x8_t): Ditto. (vint64m2x2_t): Ditto. (vuint64m2x2_t): Ditto. (vint64m2x3_t): Ditto. (vuint64m2x3_t): Ditto. (vint64m2x4_t): Ditto. (vuint64m2x4_t): Ditto. (vint64m4x2_t): Ditto. (vuint64m4x2_t): Ditto. (vfloat32mf2x2_t): Ditto. (vfloat32mf2x3_t): Ditto. (vfloat32mf2x4_t): Ditto. (vfloat32mf2x5_t): Ditto. (vfloat32mf2x6_t): Ditto. (vfloat32mf2x7_t): Ditto. (vfloat32mf2x8_t): Ditto. (vfloat32m1x2_t): Ditto. (vfloat32m1x3_t): Ditto. (vfloat32m1x4_t): Ditto. (vfloat32m1x5_t): Ditto. (vfloat32m1x6_t): Ditto. (vfloat32m1x7_t): Ditto. (vfloat32m1x8_t): Ditto. (vfloat32m2x2_t): Ditto. (vfloat32m2x3_t): Ditto. (vfloat32m2x4_t): Ditto. (vfloat32m4x2_t): Ditto. (vfloat64m1x2_t): Ditto. (vfloat64m1x3_t): Ditto. (vfloat64m1x4_t): Ditto. (vfloat64m1x5_t): Ditto. (vfloat64m1x6_t): Ditto. (vfloat64m1x7_t): Ditto. (vfloat64m1x8_t): Ditto. (vfloat64m2x2_t): Ditto. (vfloat64m2x3_t): Ditto. (vfloat64m2x4_t): Ditto. (vfloat64m4x2_t): Ditto. * config/riscv/riscv-vector-builtins.h (DEF_RVV_TUPLE_TYPE): Ditto. * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto. * config/riscv/riscv.cc (riscv_v_ext_tuple_mode_p): New function. (TUPLE_ENTRY): Ditto. (riscv_v_ext_mode_p): New function. (riscv_v_adjust_nunits): Add tuple mode adjustment. (riscv_classify_address): Ditto. (riscv_binary_cost): Ditto. (riscv_rtx_costs): Ditto. (riscv_secondary_memory_needed): Ditto. (riscv_hard_regno_nregs): Ditto. (riscv_hard_regno_mode_ok): Ditto. (riscv_vector_mode_supported_p): Ditto. (riscv_regmode_natural_size): Ditto. (riscv_array_mode): New function. (TARGET_ARRAY_MODE): New target hook. * config/riscv/riscv.md: Add tuple modes. * config/riscv/vector-iterators.md: Ditto. * config/riscv/vector.md (mov<mode>): Add tuple modes data movement. (*mov<VT:mode>_<P:mode>): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/abi-10.c: New test. * gcc.target/riscv/rvv/base/abi-11.c: New test. * gcc.target/riscv/rvv/base/abi-12.c: New test. * gcc.target/riscv/rvv/base/abi-13.c: New test. * gcc.target/riscv/rvv/base/abi-14.c: New test. * gcc.target/riscv/rvv/base/abi-15.c: New test. * gcc.target/riscv/rvv/base/abi-16.c: New test. * gcc.target/riscv/rvv/base/abi-8.c: New test. * gcc.target/riscv/rvv/base/abi-9.c: New test. * gcc.target/riscv/rvv/base/tuple-1.c: New test. * gcc.target/riscv/rvv/base/tuple-10.c: New test. * gcc.target/riscv/rvv/base/tuple-11.c: New test. * gcc.target/riscv/rvv/base/tuple-12.c: New test. * gcc.target/riscv/rvv/base/tuple-13.c: New test. * gcc.target/riscv/rvv/base/tuple-14.c: New test. * gcc.target/riscv/rvv/base/tuple-15.c: New test. * gcc.target/riscv/rvv/base/tuple-16.c: New test. * gcc.target/riscv/rvv/base/tuple-17.c: New test. * gcc.target/riscv/rvv/base/tuple-18.c: New test. * gcc.target/riscv/rvv/base/tuple-19.c: New test. * gcc.target/riscv/rvv/base/tuple-2.c: New test. * gcc.target/riscv/rvv/base/tuple-20.c: New test. * gcc.target/riscv/rvv/base/tuple-21.c: New test. * gcc.target/riscv/rvv/base/tuple-22.c: New test. * gcc.target/riscv/rvv/base/tuple-23.c: New test. * gcc.target/riscv/rvv/base/tuple-24.c: New test. * gcc.target/riscv/rvv/base/tuple-25.c: New test. * gcc.target/riscv/rvv/base/tuple-26.c: New test. * gcc.target/riscv/rvv/base/tuple-27.c: New test. * gcc.target/riscv/rvv/base/tuple-3.c: New test. * gcc.target/riscv/rvv/base/tuple-4.c: New test. * gcc.target/riscv/rvv/base/tuple-5.c: New test. * gcc.target/riscv/rvv/base/tuple-6.c: New test. * gcc.target/riscv/rvv/base/tuple-7.c: New test. * gcc.target/riscv/rvv/base/tuple-8.c: New test. * gcc.target/riscv/rvv/base/tuple-9.c: New test. * gcc.target/riscv/rvv/base/user-10.c: New test. * gcc.target/riscv/rvv/base/user-11.c: New test. * gcc.target/riscv/rvv/base/user-12.c: New test. * gcc.target/riscv/rvv/base/user-13.c: New test. * gcc.target/riscv/rvv/base/user-14.c: New test. * gcc.target/riscv/rvv/base/user-15.c: New test. * gcc.target/riscv/rvv/base/user-7.c: New test. * gcc.target/riscv/rvv/base/user-8.c: New test. * gcc.target/riscv/rvv/base/user-9.c: New test. Signed-off-by: Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- Loading branch information