Hi, This patch adds support for the XAndesperf ISA extension. The 32-bit AndeStar V5 extension includes branch instructions, load effective address instructions, and string processing instructions for performance improvement. New INSN patterns are added into the new file andes.md as a seprated vender extension.
gcc/ChangeLog: * config/riscv/constraints.md (ads_Bz07): New constraint. (ads_Bext): New constraint. * config/riscv/iterators.md (ANY32): New iterator. (sizen): New iterator. (sh_limit): New iterator. * config/riscv/predicates.md (branch_bbcs_operand): New predicate. (branch_bimm_operand): New predicate. (imm_extract_operand): New predicate. (extract_size_imm_si): New predicate. (extract_loc_imm_si): New predicate. (extract_size_imm_di): New predicate. (extract_loc_imm_di): New predicate. * config/riscv/riscv-builtins.cc: Add new AVAIL andesperf32 and andesperf64. Add new define RISCV_ATYPE_ULONG and RISCV_ATYPE_LONG. * config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE. * config/riscv/riscv.cc (riscv_extend_cost): Cost for pattern 'bfo'. (riscv_rtx_costs): Cost for XAndesperf extension. * config/riscv/riscv.md: Add support for XAndesperf to patterns zero_extendsidi2_internal, zero_extendhi2, extendsidi2_internal, extend<SHORT:mode><SUPERQI:mode>2, <any_extract:optab><GPR:mode>3 and branch_on_bit. * config/riscv/vector-iterators.md (sz): Add sign_extract and zero_extract. * config/riscv/andes.def: New file for vender Andes. * config/riscv/andes.md: New file for vender Andes. gcc/testsuite/ChangeLog: * gcc.target/riscv/xandesperf-1.c: New test. * gcc.target/riscv/xandesperf-10.c: New test. * gcc.target/riscv/xandesperf-2.c: New test. * gcc.target/riscv/xandesperf-3.c: New test. * gcc.target/riscv/xandesperf-4.c: New test. * gcc.target/riscv/xandesperf-5.c: New test. * gcc.target/riscv/xandesperf-6.c: New test. * gcc.target/riscv/xandesperf-7.c: New test. * gcc.target/riscv/xandesperf-8.c: New test. * gcc.target/riscv/xandesperf-9.c: New test. ---
0002-RISC-V-Add-support-for-the-XAndesperf-ISA-extension.patch
Description: Binary data