]>
gcc.gnu.org Git - gcc.git/commit
RISC-V: Add integer compare C/C++ intrinsic support
gcc/ChangeLog:
* config/riscv/predicates.md (vector_mask_operand): Refine the codes.
(vector_all_trues_mask_operand): New predicate.
(vector_undef_operand): New predicate.
(ltge_operator): New predicate.
(comparison_except_ltge_operator): New predicate.
(comparison_except_eqge_operator): New predicate.
(ge_operator): New predicate.
* config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
* config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
(vmsne): Ditto.
(vmslt): Ditto.
(vmsgt): Ditto.
(vmsle): Ditto.
(vmsge): Ditto.
(vmsltu): Ditto.
(vmsgtu): Ditto.
(vmsleu): Ditto.
(vmsgeu): Ditto.
* config/riscv/riscv-vector-builtins-shapes.cc
(struct return_mask_def): Adjust for compare support.
* config/riscv/riscv-vector-builtins.cc
(function_expander::use_compare_insn): New function.
* config/riscv/riscv-vector-builtins.h
(function_expander::add_integer_operand): Ditto.
* config/riscv/riscv.cc (riscv_print_operand): Add compare support.
* config/riscv/riscv.md: Add vector min/max attributes.
* config/riscv/vector-iterators.md (xnor): New iterator.
* config/riscv/vector.md (@pred_cmp<mode>): New pattern.
(*pred_cmp<mode>): Ditto.
(*pred_cmp<mode>_narrow): Ditto.
(@pred_ltge<mode>): Ditto.
(*pred_ltge<mode>): Ditto.
(*pred_ltge<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_cmp<mode>_extended_scalar): Ditto.
(*pred_cmp<mode>_extended_scalar_narrow): Ditto.
(*pred_eqne<mode>_extended_scalar): Ditto.
(*pred_eqne<mode>_extended_scalar_narrow): Ditto.
(@pred_ge<mode>_scalar): Ditto.
(@pred_<optab><mode>): Ditto.
(@pred_n<optab><mode>): Ditto.
(@pred_<optab>n<mode>): Ditto.
(@pred_not<mode>): Ditto.
12 files changed:
This page took 0.073543 seconds and 6 git commands to generate.