aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve
diff options
context:
space:
mode:
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>2023-02-17 20:51:14 +0800
committerKito Cheng <kito.cheng@sifive.com>2023-02-22 20:29:16 +0800
commitdc244cdc05a0cc4a7c40c5c5027c12cc1dc6e4d3 (patch)
tree66a35c82701fbfbb33395525266a3eb5eabc773e /gcc/rust/resolve
parentc57fbdd6f11de2916fd0df6553e35117d3d12c5a (diff)
downloadgcc-dc244cdc05a0cc4a7c40c5c5027c12cc1dc6e4d3.zip
gcc-dc244cdc05a0cc4a7c40c5c5027c12cc1dc6e4d3.tar.gz
gcc-dc244cdc05a0cc4a7c40c5c5027c12cc1dc6e4d3.tar.bz2
RISC-V: Add floating-point RVV C/C++ api
Add RVV floating-point C/C++ api tests. The api unit-tests are all passed but not commit. They are located at RISC-V foundation repo: https://github.com/riscv-collab/riscv-gcc/tree/rvv-submission-v1 gcc/ChangeLog: * config/riscv/iterators.md: New iterator. * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class. (enum ternop_type): New enum. (class vmacc): New class. (class imac): Ditto. (class vnmsac): Ditto. (enum widen_ternop_type): New enum. (class vmadd): Ditto. (class vnmsub): Ditto. (class iwmac): Ditto. (class vwmacc): Ditto. (class vwmaccu): Ditto. (class vwmaccsu): Ditto. (class vwmaccus): Ditto. (class reverse_binop): Ditto. (class vfmacc): Ditto. (class vfnmsac): Ditto. (class vfmadd): Ditto. (class vfnmsub): Ditto. (class vfnmacc): Ditto. (class vfmsac): Ditto. (class vfnmadd): Ditto. (class vfmsub): Ditto. (class vfwmacc): Ditto. (class vfwnmacc): Ditto. (class vfwmsac): Ditto. (class vfwnmsac): Ditto. (class float_misc): Ditto. (class fcmp): Ditto. (class vfclass): Ditto. (class vfcvt_x): Ditto. (class vfcvt_rtz_x): Ditto. (class vfcvt_f): Ditto. (class vfwcvt_x): Ditto. (class vfwcvt_rtz_x): Ditto. (class vfwcvt_f): Ditto. (class vfncvt_x): Ditto. (class vfncvt_rtz_x): Ditto. (class vfncvt_f): Ditto. (class vfncvt_rod_f): Ditto. (BASE): Ditto. * config/riscv/riscv-vector-builtins-bases.h: * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto. (vsext): Ditto. (vfadd): Ditto. (vfsub): Ditto. (vfrsub): Ditto. (vfwadd): Ditto. (vfwsub): Ditto. (vfmul): Ditto. (vfdiv): Ditto. (vfrdiv): Ditto. (vfwmul): Ditto. (vfmacc): Ditto. (vfnmsac): Ditto. (vfmadd): Ditto. (vfnmsub): Ditto. (vfnmacc): Ditto. (vfmsac): Ditto. (vfnmadd): Ditto. (vfmsub): Ditto. (vfwmacc): Ditto. (vfwnmacc): Ditto. (vfwmsac): Ditto. (vfwnmsac): Ditto. (vfsqrt): Ditto. (vfrsqrt7): Ditto. (vfrec7): Ditto. (vfmin): Ditto. (vfmax): Ditto. (vfsgnj): Ditto. (vfsgnjn): Ditto. (vfsgnjx): Ditto. (vfneg): Ditto. (vfabs): Ditto. (vmfeq): Ditto. (vmfne): Ditto. (vmflt): Ditto. (vmfle): Ditto. (vmfgt): Ditto. (vmfge): Ditto. (vfclass): Ditto. (vfmerge): Ditto. (vfmv_v): Ditto. (vfcvt_x): Ditto. (vfcvt_xu): Ditto. (vfcvt_rtz_x): Ditto. (vfcvt_rtz_xu): Ditto. (vfcvt_f): Ditto. (vfwcvt_x): Ditto. (vfwcvt_xu): Ditto. (vfwcvt_rtz_x): Ditto. (vfwcvt_rtz_xu): Ditto. (vfwcvt_f): Ditto. (vfncvt_x): Ditto. (vfncvt_xu): Ditto. (vfncvt_rtz_x): Ditto. (vfncvt_rtz_xu): Ditto. (vfncvt_f): Ditto. (vfncvt_rod_f): Ditto. * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto. (struct move_def): Ditto. * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro. (DEF_RVV_CONVERT_I_OPS): Ditto. (DEF_RVV_CONVERT_U_OPS): Ditto. (DEF_RVV_WCONVERT_I_OPS): Ditto. (DEF_RVV_WCONVERT_U_OPS): Ditto. (DEF_RVV_WCONVERT_F_OPS): Ditto. (vfloat64m1_t): Ditto. (vfloat64m2_t): Ditto. (vfloat64m4_t): Ditto. (vfloat64m8_t): Ditto. (vint32mf2_t): Ditto. (vint32m1_t): Ditto. (vint32m2_t): Ditto. (vint32m4_t): Ditto. (vint32m8_t): Ditto. (vint64m1_t): Ditto. (vint64m2_t): Ditto. (vint64m4_t): Ditto. (vint64m8_t): Ditto. (vuint32mf2_t): Ditto. (vuint32m1_t): Ditto. (vuint32m2_t): Ditto. (vuint32m4_t): Ditto. (vuint32m8_t): Ditto. (vuint64m1_t): Ditto. (vuint64m2_t): Ditto. (vuint64m4_t): Ditto. (vuint64m8_t): Ditto. * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto. (DEF_RVV_CONVERT_U_OPS): Ditto. (DEF_RVV_WCONVERT_I_OPS): Ditto. (DEF_RVV_WCONVERT_U_OPS): Ditto. (DEF_RVV_WCONVERT_F_OPS): Ditto. (DEF_RVV_F_OPS): Ditto. (DEF_RVV_WEXTF_OPS): Ditto. (required_extensions_p): Adjust for floating-point support. (check_required_extensions): Ditto. (unsigned_base_type_p): Ditto. (get_mode_for_bitsize): Ditto. (rvv_arg_type_info::get_base_vector_type): Ditto. (rvv_arg_type_info::get_tree_type): Ditto. * config/riscv/riscv-vector-builtins.def (v_f): New define. (f): New define. (f_v): New define. (xu_v): New define. (f_w): New define. (xu_w): New define. * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum. (function_expander::arg_mode): New function. * config/riscv/vector-iterators.md (sof): New iterator. (vfrecp): Ditto. (copysign): Ditto. (n): Ditto. (msac): Ditto. (msub): Ditto. (fixuns_trunc): Ditto. (floatuns): Ditto. * config/riscv/vector.md (@pred_broadcast<mode>): New pattern. (@pred_<optab><mode>): Ditto. (@pred_<optab><mode>_scalar): Ditto. (@pred_<optab><mode>_reverse_scalar): Ditto. (@pred_<copysign><mode>): Ditto. (@pred_<copysign><mode>_scalar): Ditto. (@pred_mul_<optab><mode>): Ditto. (pred_mul_<optab><mode>_undef_merge): Ditto. (*pred_<madd_nmsub><mode>): Ditto. (*pred_<macc_nmsac><mode>): Ditto. (*pred_mul_<optab><mode>): Ditto. (@pred_mul_<optab><mode>_scalar): Ditto. (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto. (*pred_<madd_nmsub><mode>_scalar): Ditto. (*pred_<macc_nmsac><mode>_scalar): Ditto. (*pred_mul_<optab><mode>_scalar): Ditto. (@pred_neg_mul_<optab><mode>): Ditto. (pred_neg_mul_<optab><mode>_undef_merge): Ditto. (*pred_<nmadd_msub><mode>): Ditto. (*pred_<nmacc_msac><mode>): Ditto. (*pred_neg_mul_<optab><mode>): Ditto. (@pred_neg_mul_<optab><mode>_scalar): Ditto. (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto. (*pred_<nmadd_msub><mode>_scalar): Ditto. (*pred_<nmacc_msac><mode>_scalar): Ditto. (*pred_neg_mul_<optab><mode>_scalar): Ditto. (@pred_<misc_op><mode>): Ditto. (@pred_class<mode>): Ditto. (@pred_dual_widen_<optab><mode>): Ditto. (@pred_dual_widen_<optab><mode>_scalar): Ditto. (@pred_single_widen_<plus_minus:optab><mode>): Ditto. (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto. (@pred_widen_mul_<optab><mode>): Ditto. (@pred_widen_mul_<optab><mode>_scalar): Ditto. (@pred_widen_neg_mul_<optab><mode>): Ditto. (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto. (@pred_cmp<mode>): Ditto. (*pred_cmp<mode>): Ditto. (*pred_cmp<mode>_narrow): Ditto. (@pred_cmp<mode>_scalar): Ditto. (*pred_cmp<mode>_scalar): Ditto. (*pred_cmp<mode>_scalar_narrow): Ditto. (@pred_eqne<mode>_scalar): Ditto. (*pred_eqne<mode>_scalar): Ditto. (*pred_eqne<mode>_scalar_narrow): Ditto. (@pred_merge<mode>_scalar): Ditto. (@pred_fcvt_x<v_su>_f<mode>): Ditto. (@pred_<fix_cvt><mode>): Ditto. (@pred_<float_cvt><mode>): Ditto. (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto. (@pred_widen_<fix_cvt><mode>): Ditto. (@pred_widen_<float_cvt><mode>): Ditto. (@pred_extend<mode>): Ditto. (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto. (@pred_narrow_<fix_cvt><mode>): Ditto. (@pred_narrow_<float_cvt><mode>): Ditto. (@pred_trunc<mode>): Ditto. (@pred_rod_trunc<mode>): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/ternop_vv_constraint-3.c: New test. * gcc.target/riscv/rvv/base/ternop_vv_constraint-4.c: New test. * gcc.target/riscv/rvv/base/ternop_vv_constraint-5.c: New test. * gcc.target/riscv/rvv/base/ternop_vv_constraint-6.c: New test. * gcc.target/riscv/rvv/base/ternop_vx_constraint-8.c: New test. * gcc.target/riscv/rvv/base/ternop_vx_constraint-9.c: New test.
Diffstat (limited to 'gcc/rust/resolve')
0 files changed, 0 insertions, 0 deletions