-2023-11-18 Xi Ruoyao <xry111@xry111.site>
+2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
+ Register these builtins with a pointer to uint64_t rather than unsigned
+ DI mode.
+
+2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/113615
+ * config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
+ Conditionalize on '!TARGET_RDNA2_PLUS'.
+ * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
+ (gcn_expand_reduc_scalar):
+ 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
+
+2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
+
+ * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
+ '__gfx90a__' target CPU definition. Add some safeguards for the future.
+
+2024-02-19 Richard Biener <rguenther@suse.de>
+
+ PR rtl-optimization/54052
+ * rtl-ssa/blocks.cc (function_info::place_phis): Filter
+ local defs by LR_OUT.
+
+2024-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113967
+ * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
+ in condition that @rpos is multiple of vector element size.
+
+2024-02-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/113696
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
+ Suppress vsetvl fusion.
+
+2024-02-18 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/113912
+ * config/i386/i386.cc (ix86_can_use_push2pop2): New.
+ (ix86_pro_and_epilogue_can_use_push2pop2): Use it.
+ (ix86_emit_save_regs): Don't generate push2 if
+ ix86_can_use_push2pop2 return false.
+ (ix86_expand_epilogue): Don't generate pop2 if
+ ix86_can_use_push2pop2 return false.
+
+2024-02-18 Georg-Johann Lay <avr@gjlay.de>
+
+ * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
+ Note on complete device support.
+
+2024-02-18 Georg-Johann Lay <avr@gjlay.de>
+
+ * doc/extend.texi (AVR Function Attributes): Fuse description
+ of "signal" and "interrupt" attribute. Link pseudo instruction.
+
+2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
+ symbol type conversions.
+ (__cacop_d): Likewise.
+ (__cpucfg): Likewise.
+ (__asrtle_d): Likewise.
+ (__asrtgt_d): Likewise.
+ (__lddir_d): Likewise.
+ (__ldpte_d): Likewise.
+ (__crc_w_b_w): Likewise.
+ (__crc_w_h_w): Likewise.
+ (__crc_w_w_w): Likewise.
+ (__crc_w_d_w): Likewise.
+ (__crcc_w_b_w): Likewise.
+ (__crcc_w_h_w): Likewise.
+ (__crcc_w_w_w): Likewise.
+ (__crcc_w_d_w): Likewise.
+ (__csrrd_w): Likewise.
+ (__csrwr_w): Likewise.
+ (__csrxchg_w): Likewise.
+ (__csrrd_d): Likewise.
+ (__csrwr_d): Likewise.
+ (__csrxchg_d): Likewise.
+ (__iocsrrd_b): Likewise.
+ (__iocsrrd_h): Likewise.
+ (__iocsrrd_w): Likewise.
+ (__iocsrrd_d): Likewise.
+ (__iocsrwr_b): Likewise.
+ (__iocsrwr_h): Likewise.
+ (__iocsrwr_w): Likewise.
+ (__iocsrwr_d): Likewise.
+ (__frecipe_s): Likewise.
+ (__frecipe_d): Likewise.
+ (__frsqrte_s): Likewise.
+ (__frsqrte_d): Likewise.
+
+2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
+ function return value type to unsigned short.
+
+2024-02-16 Edwin Lu <ewlu@rivosinc.com>
- * config/loongarch/predicates.md (const_call_insn_operand):
- Remove buggy "HAVE_AS_SUPPORT_CALL36" conditions. Change "1" to
- "true" to make the coding style consistent.
+ * doc/sourcebuild.texi: add scan-assembler-bound
+
+2024-02-16 Jason Merrill <jason@redhat.com>
-2023-11-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/genopts/isa-evolution.in: (lam-bh, lamcas):
- Add.
- * config/loongarch/loongarch-str.h: Regenerate.
- * config/loongarch/loongarch.opt: Regenerate.
- * config/loongarch/loongarch-cpucfg-map.h: Regenerate.
- * config/loongarch/loongarch-cpu.cc
- (ISA_BASE_LA64V110_FEATURES): Include OPTION_MASK_ISA_LAM_BH
- and OPTION_MASK_ISA_LAMCAS.
- * config/loongarch/sync.md (atomic_add<mode:SHORT>): Use
- TARGET_LAM_BH instead of ISA_BASE_IS_LA64V110. Remove empty
- lines from assembly output.
- (atomic_exchange<mode>_short): Likewise.
- (atomic_exchange<mode:SHORT>): Likewise.
- (atomic_fetch_add<mode>_short): Likewise.
- (atomic_fetch_add<mode:SHORT>): Likewise.
- (atomic_cas_value_strong<mode>_amcas): Use TARGET_LAMCAS instead
- of ISA_BASE_IS_LA64V110.
- (atomic_compare_and_swap<mode>): Likewise.
- (atomic_compare_and_swap<mode:GPR>): Likewise.
- (atomic_compare_and_swap<mode:SHORT>): Likewise.
- * config/loongarch/loongarch.cc (loongarch_asm_code_end): Dump
- status if -mlam-bh and -mlamcas if -fverbose-asm.
-
-2023-11-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.cc (loongarch_print_operand): Don't
- print dbar 0x700 if TARGET_LD_SEQ_SA.
- * config/loongarch/sync.md (atomic_load<mode>): Likewise.
-
-2023-11-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.md (DIV): New mode iterator.
- (<optab:ANY_DIV><mode:GPR>3): Don't expand if TARGET_DIV32.
- (<optab:ANY_DIV>di3_fake): Disable if TARGET_DIV32.
- (*<optab:ANY_DIV><mode:GPR>3): Allow SImode if TARGET_DIV32.
- (<optab:ANY_DIV>si3_extended): New insn if TARGET_DIV32.
-
-2023-11-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch-def.h:
- (loongarch_isa_base_features): Declare. Define it in ...
- * config/loongarch/loongarch-cpu.cc
- (loongarch_isa_base_features): ... here.
- (fill_native_cpu_config): If we know the base ISA of the CPU
- model from PRID, use it instead of la64 (v1.0). Check if all
- expected features of this base ISA is available, emit a warning
- if not.
- * config/loongarch/loongarch-opts.cc (config_target_isa): Enable
- the features implied by the base ISA if not -march=native.
-
-2023-11-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/genopts/isa-evolution.in: New data file.
- * config/loongarch/genopts/genstr.sh: Translate info in
- isa-evolution.in when generating loongarch-str.h, loongarch.opt,
- and loongarch-cpucfg-map.h.
- * config/loongarch/genopts/loongarch.opt.in (isa_evolution):
- New variable.
- * config/loongarch/t-loongarch: (loongarch-cpucfg-map.h): New
- rule.
- (loongarch-str.h): Depend on isa-evolution.in.
- (loongarch.opt): Depend on isa-evolution.in.
- (loongarch-cpu.o): Depend on loongarch-cpucfg-map.h.
- * config/loongarch/loongarch-str.h: Regenerate.
- * config/loongarch/loongarch-def.h (loongarch_isa): Add field
- for evolution features. Add helper function to enable features
- in this field.
- Probe native CPU capability and save the corresponding options
- into preset.
- * config/loongarch/loongarch-cpu.cc (fill_native_cpu_config):
- Probe native CPU capability and save the corresponding options
- into preset.
- (cache_cpucfg): Simplify with C++11-style for loop.
- (cpucfg_useful_idx, N_CPUCFG_WORDS): Move to ...
- * config/loongarch/loongarch.cc
- (loongarch_option_override_internal): Enable the ISA evolution
- feature options implied by -march and not explicitly disabled.
- (loongarch_asm_code_end): New function, print ISA information as
- comments in the assembly if -fverbose-asm. It makes easier to
- debug things like -march=native.
- (TARGET_ASM_CODE_END): Define.
- * config/loongarch/loongarch.opt: Regenerate.
- * config/loongarch/loongarch-cpucfg-map.h: Generate.
- (cpucfg_useful_idx, N_CPUCFG_WORDS) ... here.
-
-2023-11-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/genopts/loongarch-strings:
- (STR_ISA_BASE_LA64V110): Add.
- * config/loongarch/genopts/loongarch.opt.in:
- (ISA_BASE_LA64V110): Add.
- * config/loongarch/loongarch-def.c
- (loongarch_isa_base_strings): Initialize [ISA_BASE_LA64V110]
- to STR_ISA_BASE_LA64V110.
- * config/loongarch/loongarch.opt: Regenerate.
- * config/loongarch/loongarch-str.h: Regenerate.
-
-2023-11-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- * doc/invoke.texi (-fprofile-update): Clarify default method. Document
- the atomic method behaviour.
- * tree-profile.cc (enum counter_update_method): New.
- (counter_update): Likewise.
- (gen_counter_update): Use counter_update_method. Split the
- atomic counter update in two 32-bit atomic operations if
- necessary.
- (tree_profiling): Select counter_update_method.
-
-2023-11-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- * tree-profile.cc (gen_assign_counter_update): New.
- (gen_counter_update): Likewise.
- (gimple_gen_edge_profiler): Use gen_counter_update().
- (gimple_gen_time_profiler): Likewise.
-
-2023-11-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- * config/rtems.h (TARGET_HAVE_LIBATOMIC): Define.
- * doc/tm.texi: Regenerate.
- * doc/tm.texi.in (TARGET_HAVE_LIBATOMIC): Add.
- * target.def (have_libatomic): New.
-
-2023-11-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- Revert:
- 2023-11-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define.
- * config/sparc/sparc.c (sparc_gcov_type_size): New.
- (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined.
- * coverage.c (get_gcov_type): Use targetm.gcov_type_size().
- * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc".
- * doc/tm.texi.in: Regenerate.
- * target.def (gcov_type_size): New target hook.
- * targhooks.c (default_gcov_type_size): New.
- * targhooks.h (default_gcov_type_size): Declare.
- * tree-profile.c (gimple_gen_edge_profiler): Use precision of
- gcov_type_node.
- (gimple_gen_time_profiler): Likewise.
-
-2023-11-18 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-target-attr.cc
- (riscv_target_attr_parser::parse_arch): Use char[] for
- std::unique_ptr to prevent mismatched new delete issue.
- (riscv_process_one_target_attr): Ditto.
- (riscv_process_target_attr): Ditto.
-
-2023-11-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Refactor iterators.
-
-2023-11-18 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/sync.md (atomic_load<mode>): New template.
-
-2023-11-18 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch-def.h: Add comments.
- * config/loongarch/loongarch-opts.h (ISA_BASE_IS_LA64V110): Define macro.
- * config/loongarch/loongarch.cc (loongarch_memmodel_needs_rel_acq_fence):
- Remove redundant code implementations.
- * config/loongarch/sync.md (d): Added QI, HI support.
- (atomic_add<mode>): New template.
- (atomic_exchange<mode>_short): Likewise.
- (atomic_cas_value_strong<mode>_amcas): Likewise..
- (atomic_fetch_add<mode>_short): Likewise.
-
-2023-11-18 Lulu Cheng <chenglulu@loongson.cn>
-
- * config.gcc: Support LA664.
- * config/loongarch/genopts/loongarch-strings: Likewise.
- * config/loongarch/genopts/loongarch.opt.in: Likewise.
- * config/loongarch/loongarch-cpu.cc (fill_native_cpu_config): Likewise.
- * config/loongarch/loongarch-def.c: Likewise.
- * config/loongarch/loongarch-def.h (N_ISA_BASE_TYPES): Likewise.
- (ISA_BASE_LA64V110): Define macro.
- (N_ARCH_TYPES): Update value.
- (N_TUNE_TYPES): Update value.
- (CPU_LA664): New macro.
- * config/loongarch/loongarch-opts.cc (isa_default_abi): Likewise.
- (isa_base_compat_p): Likewise.
- * config/loongarch/loongarch-opts.h (TARGET_64BIT): This parameter is enabled
- when la_target.isa.base is equal to ISA_BASE_LA64V100 or ISA_BASE_LA64V110.
- (TARGET_uARCH_LA664): Define macro.
- * config/loongarch/loongarch-str.h (STR_CPU_LA664): Likewise.
- * config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width):
- Add LA664 support.
- * config/loongarch/loongarch.opt: Regenerate.
-
-2023-11-18 Lulu Cheng <chenglulu@loongson.cn>
- Xi Ruoyao <xry111@xry111.site>
-
- * config.in: Regenerate.
- * config/loongarch/loongarch-opts.h (HAVE_AS_SUPPORT_CALL36): Define macro.
- * config/loongarch/loongarch.cc (loongarch_legitimize_call_address):
- If binutils supports call36, the function call is not split over expand.
- * config/loongarch/loongarch.md: Add call36 generation code.
- * config/loongarch/predicates.md: Likewise.
- * configure: Regenerate.
- * configure.ac: Check whether binutils supports call36.
-
-2023-11-18 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/106147
- * Makefile.in (ANALYZER_OBJS): Add analyzer/infinite-loop.o.
- * doc/invoke.texi: Add -fdump-analyzer-infinite-loop and
- -Wanalyzer-infinite-loop. Add missing CWE link for
- -Wanalyzer-infinite-recursion.
- * timevar.def (TV_ANALYZER_INFINITE_LOOPS): New.
-
-2023-11-17 Robin Dapp <rdapp@ventanamicro.com>
-
- PR middle-end/112406
- PR middle-end/112552
- * tree-vect-loop.cc (vect_transform_reduction): Pass truth
- vectype for mask operand.
-
-2023-11-17 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/107571
- * gimplify.cc (expand_FALLTHROUGH_r): Use wi->removed_stmt after
- gsi_remove, change the way of passing fallthrough stmt at the end
- of sequence to expand_FALLTHROUGH. Diagnose IFN_FALLTHROUGH
- with GF_CALL_NOTHROW flag.
- (expand_FALLTHROUGH): Change loc into array of 2 location_t elts,
- don't test wi.callback_result, instead check whether first
- elt is not UNKNOWN_LOCATION and in that case pedwarn with the
- second location.
- * gimple-walk.cc (walk_gimple_seq_mod): Clear wi->removed_stmt
- after the flag has been used.
- * internal-fn.def (FALLTHROUGH): Mention in comment the special
- meaning of the TREE_NOTHROW/GF_CALL_NOTHROW flag on the calls.
-
-2023-11-17 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/112566
- PR tree-optimization/83171
- * match.pd (ctz(ext(X)) -> ctz(X), popcount(zext(X)) -> popcount(X),
- parity(ext(X)) -> parity(X), ffs(ext(X)) -> ffs(X)): New
- simplifications.
- ( __builtin_ffs (X) == 0 -> X == 0): Use FFS rather than
- BUILT_IN_FFS BUILT_IN_FFSL BUILT_IN_FFSLL BUILT_IN_FFSIMAX.
-
-2023-11-17 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/112374
- * tree-vect-loop.cc (check_reduction_path): Perform the cond_fn_p
- special case only if op_use_stmt == use_stmt, use as_a rather than
- dyn_cast in that case.
-
-2023-11-17 Richard Biener <rguenther@suse.de>
-
- Revert:
- 2023-11-14 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112281
- * tree-loop-distribution.cc (pg_add_dependence_edges):
- Preserve stmt order when the innermost loop has exact
- overlap.
-
-2023-11-17 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/53372
- * config/avr/avr.cc (avr_asm_named_section) [AVR_SECTION_PROGMEM]:
- Only return some .progmem*.data section if the user did not
- specify a section attribute.
- (avr_section_type_flags) [avr_progmem_p]: Unset SECTION_NOTYPE
- in returned section flags.
-
-2023-11-17 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/lsx.md (copysign<mode>3): Allow operand[2] to
- be an reg_or_vector_same_val_operand. If it's a const vector
- with same negative elements, expand the copysign with a bitset
- instruction. Otherwise, force it into an register.
- * config/loongarch/lasx.md (copysign<mode>3): Likewise.
-
-2023-11-17 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/111449
- * config/rs6000/vsx.md (*vsx_le_mem_to_mem_mov_ti): New.
-
-2023-11-17 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/111449
- * config/rs6000/altivec.md (cbranchv16qi4): New expand pattern.
- * config/rs6000/rs6000.cc (rs6000_generate_compare): Generate
- insn sequence for V16QImode equality compare.
- * config/rs6000/rs6000.h (MOVE_MAX_PIECES): Define.
- (STORE_MAX_PIECES): Define.
-
-2023-11-17 Li Wei <liwei@loongson.cn>
-
- * config/loongarch/loongarch.h (CLZ_DEFINED_VALUE_AT_ZERO):
- Implement.
- (CTZ_DEFINED_VALUE_AT_ZERO): Same.
-
-2023-11-17 Richard Biener <rguenther@suse.de>
-
- * dwarf2out.cc (add_AT_die_ref): Assert we do not add
- a self-ref DW_AT_abstract_origin or DW_AT_specification.
-
-2023-11-17 Jiahao Xu <xujiahao@loongson.cn>
-
- * config/loongarch/loongarch.cc
- (loongarch_builtin_vectorization_cost): Adjust.
-
-2023-11-16 Andrew Pinski <pinskia@gmail.com>
-
- PR rtl-optimization/112483
- * simplify-rtx.cc (simplify_binary_operation_1) <case COPYSIGN>:
- Call simplify_unary_operation for NEG instead of
- simplify_gen_unary.
-
-2023-11-16 Edwin Lu <ewlu@rivosinc.com>
-
- PR target/111557
- * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): update macro name
-
-2023-11-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/78904
- * config/i386/i386.md (*addqi_ext2<mode>_0):
- New define_insn_and_split pattern.
- (*subqi_ext2<mode>_0): Ditto.
- (*<code>qi_ext2<mode>_0): Ditto.
-
-2023-11-16 John David Anglin <danglin@gcc.gnu.org>
-
- PR rtl-optimization/112415
- * config/pa/pa.cc (pa_legitimate_address_p): Allow 14-bit
- displacements before reload. Simplify logic flow. Revise
- comments.
- * config/pa/pa.h (TARGET_ELF64): New define.
- (INT14_OK_STRICT): Update define and comment.
- * config/pa/pa64-linux.h (TARGET_ELF64): Define.
- * config/pa/predicates.md (base14_operand): Don't check
- alignment of short displacements.
- (integer_store_memory_operand): Don't return true when
- reload_in_progress is true. Remove INT_5_BITS check.
- (floating_point_store_memory_operand): Don't return true when
- reload_in_progress is true. Use INT14_OK_STRICT to check
- whether long displacements are always okay.
-
-2023-11-16 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/112567
- * config/i386/i386.md (*<any_logic:code>qi_ext<mode>_1_slp):
- Fix generation of invalid RTX in split pattern.
-
-2023-11-16 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_context::set_option_hooks): Add
- "lang_mask" param.
- * diagnostic.h (diagnostic_context::option_enabled_p): Update for
- move of m_lang_mask.
- (diagnostic_context::set_option_hooks): Add "lang_mask" param.
- (diagnostic_context::get_lang_mask): New.
- (diagnostic_context::m_lang_mask): Move into m_option_callbacks,
- thus making private.
- * lto-wrapper.cc (main): Update for new lang_mask param of
- set_option_hooks.
- * toplev.cc (init_asm_output): Use get_lang_mask.
- (general_init): Move initialization of global_dc's lang_mask to
- new lang_mask param of set_option_hooks.
-
-2023-11-16 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/111878
- * tree-vect-loop-manip.cc (find_loop_location): Skip edges check if
- latch incorrect.
-
-2023-11-16 Kito Cheng <kito.cheng@sifive.com>
-
- * config.gcc (riscv): Add riscv-target-attr.o.
- * config/riscv/riscv-protos.h (riscv_declare_function_size) New.
- (riscv_option_valid_attribute_p): New.
- (riscv_override_options_internal): New.
- (struct riscv_tune_info): New.
- (riscv_parse_tune): New.
- * config/riscv/riscv-target-attr.cc
- (class riscv_target_attr_parser): New.
- (struct riscv_attribute_info): New.
- (riscv_attributes): New.
- (riscv_target_attr_parser::parse_arch): New.
- (riscv_target_attr_parser::handle_arch): New.
- (riscv_target_attr_parser::handle_cpu): New.
- (riscv_target_attr_parser::handle_tune): New.
- (riscv_target_attr_parser::update_settings): New.
- (riscv_process_one_target_attr): New.
- (num_occurences_in_str): New.
- (riscv_process_target_attr): New.
- (riscv_option_valid_attribute_p): New.
- * config/riscv/riscv.cc: Include target-globals.h and
- riscv-subset.h.
- (struct riscv_tune_info): Move to riscv-protos.h.
- (get_tune_str): New.
- (riscv_parse_tune): New parameter null_p.
- (riscv_declare_function_size): New.
- (riscv_option_override): Build target_option_default_node and
- target_option_current_node.
- (riscv_save_restore_target_globals): New.
- (riscv_option_restore): New.
- (riscv_previous_fndecl): New.
- (riscv_set_current_function): Apply the target attribute.
- (TARGET_OPTION_RESTORE): Define.
- (TARGET_OPTION_VALID_ATTRIBUTE_P): Ditto.
- * config/riscv/riscv.h (SWITCHABLE_TARGET): Define to 1.
- (ASM_DECLARE_FUNCTION_SIZE) Define.
- * config/riscv/riscv.opt (mtune=): Add Save attribute.
- (mcpu=): Ditto.
- (mcmodel=): Ditto.
- * config/riscv/t-riscv: Add build rule for riscv-target-attr.o
- * doc/extend.texi: Add doc for target attribute.
-
-2023-11-16 Kito Cheng <kito.cheng@sifive.com>
-
- PR target/112478
- * config/riscv/riscv.cc (riscv_save_return_addr_reg_p): Check ra
- is ever lived.
-
-2023-11-16 liuhongt <hongtao.liu@intel.com>
-
- PR target/112532
- * config/i386/mmx.md (*vec_dup<mode>): Extend for V4HI and
- V2HI.
-
-2023-11-16 Jakub Jelinek <jakub@redhat.com>
-
- PR target/112526
- * config/i386/i386.md
- (mov imm,%rax; mov %rdi,%rdx; mulx %rax -> mov imm,%rdx; mulx %rdi):
- Verify in define_peephole2 that operands[2] dies or is overwritten
- at the end of multiplication.
-
-2023-11-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/112536
- * tree-vect-slp.cc (arg0_map): New variable.
- (vect_get_operand_map): For IFN_CLZ or IFN_CTZ, return arg0_map.
-
-2023-11-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR middle-end/112554
- * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
- Clear SELECT_VL_P for non-partial vectorization.
-
-2023-11-16 Hongyu Wang <hongyu.wang@intel.com>
-
- * config/i386/sse.md (vec_extract_hi_<mode>): Add noavx512vl
- alternative with attr addr gpr16 and "jm" constraint.
- (vec_extract_hi_<mode>): Likewise for SF vector modes.
- (@vec_extract_hi_<mode>): Likewise.
- (*vec_extractv2ti): Likewise.
- (vec_set_hi_<mode><mask_name>): Likewise.
- * config/i386/mmx.md (@sse4_1_insertps_<mode>): Correct gpr16 attr for
- each alternative.
-
-2023-11-15 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/78904
- * config/i386/i386.md (*movstrictqi_ext<mode>_1): New insn pattern.
- (*addqi_ext<mode>_2_slp): New define_insn_and_split pattern.
- (*subqi_ext<mode>_2_slp): Ditto.
- (*<any_logic:code>qi_ext<mode>_2_slp): Ditto.
-
-2023-11-15 Patrick O'Neill <patrick@rivosinc.com>
-
- * common/config/riscv/riscv-common.cc
- (riscv_subset_list::parse_std_ext): Emit an error and skip to
- the next extension when a non-canonical ordering is detected.
-
-2023-11-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
-
- * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text):
- Revert using the macro CAN_HAVE_LOCATION_P.
-
-2023-11-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/112447
- * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Insert
- local vsetvl info before LCM suggested one.
- Tested-by: Patrick O'Neill <patrick@rivosinc.com> # pre-commit-CI #679
- Co-developed-by: Vineet Gupta <vineetg@rivosinc.com>
-
-2023-11-15 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_sign_extend_if_not_subreg_prom): New.
- * (riscv_extend_comparands): Call New function on operands.
-
-2023-11-15 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*addqi_ext<mode>_1_slp):
- Add "&& " before "reload_completed" in split condition.
- (*subqi_ext<mode>_1_slp): Ditto.
- (*<any_logic:code>qi_ext<mode>_1_slp): Ditto.
-
-2023-11-15 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/112540
- * config/i386/i386.md (*addqi_ext<mode>_1_slp):
- Correct operand numbers in split pattern. Replace !Q constraint
- of operand 1 with !qm. Add insn constrain.
- (*subqi_ext<mode>_1_slp): Ditto.
- (*<any_logic:code>qi_ext<mode>_1_slp): Ditto.
-
-2023-11-15 Thomas Schwinge <thomas@codesourcery.com>
-
- * doc/extend.texi (Nvidia PTX Built-in Functions): Fix
- copy'n'paste-o in '__builtin_nvptx_brev' description.
-
-2023-11-15 Roger Sayle <roger@nextmovesoftware.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * config/nvptx/nvptx.md (UNSPEC_BITREV): Delete.
- (bitrev<mode>2): Represent using bitreverse.
-
-2023-11-15 Andrew Stubbs <ams@codesourcery.com>
- Andrew Jenner <andrew@codesourcery.com>
-
- * config/gcn/constraints.md: Add "a" AVGPR constraint.
- * config/gcn/gcn-valu.md (*mov<mode>): Add AVGPR alternatives.
- (*mov<mode>_4reg): Likewise.
- (@mov<mode>_sgprbase): Likewise.
- (gather<mode>_insn_1offset<exec>): Likewise.
- (gather<mode>_insn_1offset_ds<exec>): Likewise.
- (gather<mode>_insn_2offsets<exec>): Likewise.
- (scatter<mode>_expr<exec_scatter>): Likewise.
- (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
- (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
- * config/gcn/gcn.cc (MAX_NORMAL_AVGPR_COUNT): Define.
- (gcn_class_max_nregs): Handle AVGPR_REGS and ALL_VGPR_REGS.
- (gcn_hard_regno_mode_ok): Likewise.
- (gcn_regno_reg_class): Likewise.
- (gcn_spill_class): Allow spilling to AVGPRs on TARGET_CDNA1_PLUS.
- (gcn_sgpr_move_p): Handle AVGPRs.
- (gcn_secondary_reload): Reload AVGPRs via VGPRs.
- (gcn_conditional_register_usage): Handle AVGPRs.
- (gcn_vgpr_equivalent_register_operand): New function.
- (gcn_valid_move_p): Check for validity of AVGPR moves.
- (gcn_compute_frame_offsets): Handle AVGPRs.
- (gcn_memory_move_cost): Likewise.
- (gcn_register_move_cost): Likewise.
- (gcn_vmem_insn_p): Handle TYPE_VOP3P_MAI.
- (gcn_md_reorg): Handle AVGPRs.
- (gcn_hsa_declare_function_name): Likewise.
- (print_reg): Likewise.
- (gcn_dwarf_register_number): Likewise.
- * config/gcn/gcn.h (FIRST_AVGPR_REG): Define.
- (AVGPR_REGNO): Define.
- (LAST_AVGPR_REG): Define.
- (SOFT_ARG_REG): Update.
- (FRAME_POINTER_REGNUM): Update.
- (DWARF_LINK_REGISTER): Update.
- (FIRST_PSEUDO_REGISTER): Update.
- (AVGPR_REGNO_P): Define.
- (enum reg_class): Add AVGPR_REGS and ALL_VGPR_REGS.
- (REG_CLASS_CONTENTS): Add new register classes and add entries for
- AVGPRs to all classes.
- (REGISTER_NAMES): Add AVGPRs.
- * config/gcn/gcn.md (FIRST_AVGPR_REG, LAST_AVGPR_REG): Define.
- (AP_REGNUM, FP_REGNUM): Update.
- (define_attr "type"): Add vop3p_mai.
- (define_attr "unit"): Handle vop3p_mai.
- (define_attr "gcn_version"): Add "cdna2".
- (define_attr "enabled"): Handle cdna2.
- (*mov<mode>_insn): Add AVGPR alternatives.
- (*movti_insn): Likewise.
- * config/gcn/mkoffload.cc (isa_has_combined_avgprs): New.
- (process_asm): Process avgpr_count.
- * config/gcn/predicates.md (gcn_avgpr_register_operand): New.
- (gcn_avgpr_hard_register_operand): New.
- * doc/md.texi: Document the "a" constraint.
-
-2023-11-15 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (mov<mode>_sgprbase): Add @ modifier.
- (reload_in<mode>): Delete.
- (reload_out<mode>): Delete.
- * config/gcn/gcn.cc (CODE_FOR): Delete.
- (get_code_for_##PREFIX##vN##SUFFIX): Delete.
- (CODE_FOR_OP): Delete.
- (get_code_for_##PREFIX): Delete.
- (gcn_secondary_reload): Replace "get_code_for" with "code_for".
-
-2023-11-15 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/t-s390: Generate s390-gen-builtins.h without
- linemarkers.
-
-2023-11-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112282
- * tree-if-conv.cc (ifcvt_hoist_invariants): Only hoist from
- the loop header.
-
-2023-11-15 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_slp_region): Also clear visited flag when
- we skipped an instance due to -fdbg-cnt.
-
-2023-11-15 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.cc
- (loongarch_memmodel_needs_release_fence): Remove.
- (loongarch_cas_failure_memorder_needs_acquire): New static
- function.
- (loongarch_print_operand): Redefine 'G' for the barrier on CAS
- failure.
- * config/loongarch/sync.md (atomic_cas_value_strong<mode>):
- Remove the redundant barrier before the LL instruction, and
- emit an acquire barrier on failure if needed by
- failure_memorder.
- (atomic_cas_value_cmp_and_7_<mode>): Likewise.
- (atomic_cas_value_add_7_<mode>): Remove the unnecessary barrier
- before the LL instruction.
- (atomic_cas_value_sub_7_<mode>): Likewise.
- (atomic_cas_value_and_7_<mode>): Likewise.
- (atomic_cas_value_xor_7_<mode>): Likewise.
- (atomic_cas_value_or_7_<mode>): Likewise.
- (atomic_cas_value_nand_7_<mode>): Likewise.
- (atomic_cas_value_exchange_7_<mode>): Likewise.
-
-2023-11-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem): New function.
- (expand_vec_init): Add trailing optimization.
-
-2023-11-15 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
- Add inner_mode mask arg for mask int mode.
- (get_repeating_sequence_dup_machine_mode): Add mask_bit_mode arg
- to get the good enough vector int mode on precision.
- (expand_vector_init_merge_repeating_sequence): Pass required args
- to above func.
-
-2023-11-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/112535
- * config/riscv/riscv.cc (riscv_legitimate_address_p): Disallow RVV modes base address.
-
-2023-11-15 David Malcolm <dmalcolm@redhat.com>
-
- * json.cc (selftest::assert_print_eq): Add "loc" param and use
- ASSERT_STREQ_AT.
- (ASSERT_PRINT_EQ): New macro.
- (selftest::test_writing_objects): Use ASSERT_PRINT_EQ to capture
- source location of assertion.
- (selftest::test_writing_arrays): Likewise.
- (selftest::test_writing_float_numbers): Likewise.
- (selftest::test_writing_integer_numbers): Likewise.
- (selftest::test_writing_strings): Likewise.
- (selftest::test_writing_literals): Likewise.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/103533
- * doc/invoke.texi (Static Analyzer Options): Add the six
- -Wanalyzer-tainted-* warnings. Update documentation of each
- warning to reflect removed requirement to use
- -fanalyzer-checker=taint. Remove discussion of
- -fanalyzer-checker=taint.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-format-json.cc
- (json_output_format::on_end_diagnostic): Update calls to m_context
- callbacks to use member functions; tighten up scopes.
- * diagnostic-format-sarif.cc (sarif_builder::make_result_object):
- Likewise.
- (sarif_builder::make_reporting_descriptor_object_for_warning):
- Likewise.
- * diagnostic.cc (diagnostic_context::initialize): Update for
- callbacks being moved into m_option_callbacks and being renamed.
- (diagnostic_context::set_option_hooks): New.
- (diagnostic_option_classifier::classify_diagnostic): Update call
- to global_dc->m_option_enabled to use option_enabled_p.
- (diagnostic_context::print_option_information): Update calls to
- m_context callbacks to use member functions; tighten up scopes.
- (diagnostic_context::diagnostic_enabled): Likewise.
- * diagnostic.h (diagnostic_option_enabled_cb): New typedef.
- (diagnostic_make_option_name_cb): New typedef.
- (diagnostic_make_option_url_cb): New typedef.
- (diagnostic_context::option_enabled_p): New.
- (diagnostic_context::make_option_name): New.
- (diagnostic_context::make_option_url): New.
- (diagnostic_context::set_option_hooks): New decl.
- (diagnostic_context::m_option_enabled): Rename to
- m_option_enabled_cb and move within m_option_callbacks, using
- typedef.
- (diagnostic_context::m_option_state): Move within
- m_option_callbacks.
- (diagnostic_context::m_option_name): Rename to
- m_make_option_name_cb and move within m_option_callbacks, using
- typedef.
- (diagnostic_context::m_get_option_url): Likewise, renaming to
- m_make_option_url_cb.
- * lto-wrapper.cc (print_lto_docs_link): Update call to m_context
- callback to use member function.
- (main): Use diagnostic_context::set_option_hooks.
- * opts-diagnostic.h (option_name): Make context param const.
- (get_option_url): Likewise.
- * opts.cc (option_name): Likewise.
- (get_option_url): Likewise.
- * toplev.cc (general_init): Use
- diagnostic_context::set_option_hooks.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- * selftest-diagnostic.cc
- (test_diagnostic_context::test_diagnostic_context): Use
- diagnostic_start_span.
- * tree-diagnostic-path.cc (struct event_range): Likewise.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.cc (diagnostic_context::show_locus):
- Update for renaming of text callbacks fields.
- * diagnostic.cc (diagnostic_context::initialize): Likewise.
- * diagnostic.h (class diagnostic_context): Add "friend" for
- accessors to m_text_callbacks.
- (diagnostic_context::m_text_callbacks): Make private, and add an
- "m_" prefix to field names.
- (diagnostic_starter): Convert from macro to inline function.
- (diagnostic_start_span): New.
- (diagnostic_finalizer): Convert from macro to inline function.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.h (diagnostic_ready_p): Convert from macro to inline
- function.
-
-2023-11-14 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/78904
- * config/i386/i386.md (*addqi_ext<mode>_1_slp):
- New define_insn_and_split pattern.
- (*subqi_ext<mode>_1_slp): Ditto.
- (*<any_logic:code>qi_ext<mode>_1_slp): Ditto.
-
-2023-11-14 Andrew Stubbs <ams@codesourcery.com>
-
- PR target/112481
- * expr.cc (store_constructor): Use OPTAB_WIDEN for mask adjustment.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-format-sarif.cc (sarif_builder::get_sarif_column):
- Use m_context's file_cache.
- (sarif_builder::maybe_make_artifact_content_object): Likewise.
- (sarif_builder::get_source_lines): Likewise.
- * diagnostic-show-locus.cc
- (exploc_with_display_col::exploc_with_display_col): Add file_cache
- param.
- (layout::m_file_cache): New field.
- (make_range): Add file_cache param.
- (selftest::test_layout_range_for_single_point): Create and use a
- temporary file_cache.
- (selftest::test_layout_range_for_single_line): Likewise.
- (selftest::test_layout_range_for_multiple_lines): Likewise.
- (layout::layout): Initialize m_file_cache from the context and use it.
- (layout::maybe_add_location_range): Use m_file_cache.
- (layout::calculate_x_offset_display): Likewise.
- (get_affected_range): Add file_cache param.
- (get_printed_columns): Likewise.
- (line_corrections::line_corrections): Likewwise.
- (line_corrections::m_file_cache): New field.
- (source_line::source_line): Add file_cache param.
- (line_corrections::add_hint): Use m_file_cache.
- (layout::print_trailing_fixits): Likewise.
- (layout::print_line): Likewise.
- (selftest::test_layout_x_offset_display_utf8): Create and use a
- temporary file_cache.
- (selftest::test_layout_x_offset_display_tab): Likewise.
- (selftest::test_diagnostic_show_locus_one_liner_utf8): Likewise.
- (selftest::test_add_location_if_nearby): Pass global_dc's
- file_cache to temp_source_file ctor.
- (selftest::test_overlapped_fixit_printing): Create and use a
- temporary file_cache.
- (selftest::test_overlapped_fixit_printing_utf8): Likewise.
- (selftest::test_overlapped_fixit_printing_2): Use dc's file_cache.
- * diagnostic.cc (diagnostic_context::initialize): Always create a
- file_cache.
- (diagnostic_context::initialize_input_context): Assume
- m_file_cache has already been created.
- (diagnostic_context::create_edit_context): Pass m_file_cache to
- edit_context.
- (convert_column_unit): Add file_cache param.
- (diagnostic_context::converted_column): Use context's file_cache.
- (print_parseable_fixits): Add file_cache param.
- (diagnostic_context::report_diagnostic): Use context's file_cache.
- (selftest::test_print_parseable_fixits_none): Create and use a
- temporary file_cache.
- (selftest::test_print_parseable_fixits_insert): Likewise.
- (selftest::test_print_parseable_fixits_remove): Likewise.
- (selftest::test_print_parseable_fixits_replace): Likewise.
- (selftest::test_print_parseable_fixits_bytes_vs_display_columns):
- Likewise.
- * diagnostic.h (diagnostic_context::file_cache_init): Delete.
- (diagnostic_context::get_file_cache): Convert return type from
- pointer to reference.
- * edit-context.cc (edited_file::get_file_cache): New.
- (edited_file::m_edit_context): New.
- (edit_context::edit_context): Add file_cache param.
- (edit_context::get_or_insert_file): Pass this to edited_file's
- ctor.
- (edited_file::edited_file): Add edit_context param.
- (edited_file::print_content): Use get_file_cache.
- (edited_file::print_diff_hunk): Likewise.
- (edited_file::print_run_of_changed_lines): Likewise.
- (edited_file::get_or_insert_line): Likewise.
- (edited_file::get_num_lines): Likewise.
- (edited_line::edited_line): Pass in file_cache and use it.
- (selftest::test_get_content): Create and use a
- temporary file_cache.
- (selftest::test_applying_fixits_insert_before): Likewise.
- (selftest::test_applying_fixits_insert_after): Likewise.
- (selftest::test_applying_fixits_insert_after_at_line_end):
- Likewise.
- (selftest::test_applying_fixits_insert_after_failure): Likewise.
- (selftest::test_applying_fixits_insert_containing_newline):
- Likewise.
- (selftest::test_applying_fixits_growing_replace): Likewise.
- (selftest::test_applying_fixits_shrinking_replace): Likewise.
- (selftest::test_applying_fixits_replace_containing_newline):
- Likewise.
- (selftest::test_applying_fixits_remove): Likewise.
- (selftest::test_applying_fixits_multiple): Likewise.
- (selftest::test_applying_fixits_multiple_lines): Likewise.
- (selftest::test_applying_fixits_modernize_named_init): Likewise.
- (selftest::test_applying_fixits_modernize_named_init): Likewise.
- (selftest::test_applying_fixits_unreadable_file): Likewise.
- (selftest::test_applying_fixits_line_out_of_range): Likewise.
- (selftest::test_applying_fixits_column_validation): Likewise.
- (selftest::test_applying_fixits_column_validation): Likewise.
- (selftest::test_applying_fixits_column_validation): Likewise.
- (selftest::test_applying_fixits_column_validation): Likewise.
- * edit-context.h (edit_context::edit_context): Add file_cache
- param.
- (edit_context::get_file_cache): New.
- (edit_context::m_file_cache): New.
- * final.cc: Include "diagnostic.h".
- (asm_show_source): Use global_dc's file_cache.
- * gcc-rich-location.cc (blank_line_before_p): Add file_cache
- param.
- (use_new_line): Likewise.
- (gcc_rich_location::add_fixit_insert_formatted): Use global dc's
- file_cache.
- * input.cc (diagnostic_file_cache_init): Delete.
- (diagnostic_context::file_cache_init): Delete.
- (diagnostics_file_cache_forcibly_evict_file): Delete.
- (file_cache::missing_trailing_newline_p): New.
- (file_cache::evicted_cache_tab_entry): Don't call
- diagnostic_file_cache_init.
- (location_get_source_line): Delete.
- (get_source_text_between): Add file_cache param.
- (get_source_file_content): Delete.
- (location_missing_trailing_newline): Delete.
- (location_compute_display_column): Add file_cache param.
- (dump_location_info): Create and use temporary file_cache.
- (get_substring_ranges_for_loc): Add file_cache param.
- (get_location_within_string): Likewise.
- (get_source_range_for_char): Likewise.
- (get_num_source_ranges_for_substring): Likewise.
- (selftest::test_reading_source_line): Create and use temporary
- file_cache.
- (selftest::lexer_test::m_file_cache): New field.
- (selftest::assert_char_at_range): Use test.m_file_cache.
- (selftest::assert_num_substring_ranges): Likewise.
- (selftest::assert_has_no_substring_ranges): Likewise.
- (selftest::test_lexer_string_locations_concatenation_2): Likewise.
- * input.h (class file_cache): New forward decl.
- (location_compute_display_column): Add file_cache param.
- (location_get_source_line): Delete.
- (get_source_text_between): Add file_cache param.
- (get_source_file_content): Delete.
- (location_missing_trailing_newline): Delete.
- (file_cache::missing_trailing_newline_p): New decl.
- (diagnostics_file_cache_forcibly_evict_file): Delete.
- * selftest.cc (named_temp_file::named_temp_file): Add file_cache
- param.
- (named_temp_file::~named_temp_file): Optionally evict the file
- from the given file_cache.
- (temp_source_file::temp_source_file): Add file_cache param.
- * selftest.h (class file_cache): New forward decl.
- (named_temp_file::named_temp_file): Add file_cache param.
- (named_temp_file::m_file_cache): New field.
- (temp_source_file::temp_source_file): Add file_cache param.
- * substring-locations.h (get_location_within_string): Add
- file_cache param.
-
-2023-11-14 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-format-json.cc: Use type-specific "set_*" functions
- of json::object to avoid naked new of json value subclasses.
- * diagnostic-format-sarif.cc: Likewise.
- * gcov.cc: Likewise.
- * json.cc (object::set_string): New.
- (object::set_integer): New.
- (object::set_float): New.
- (object::set_bool): New.
- (selftest::test_writing_objects): Use object::set_string.
- * json.h (object::set_string): New decl.
- (object::set_integer): New decl.
- (object::set_float): New decl.
- (object::set_bool): New decl.
- * optinfo-emit-json.cc: Use type-specific "set_*" functions of
- json::object to avoid naked new of json value subclasses.
- * timevar.cc: Likewise.
- * tree-diagnostic-path.cc: Likewise.
-
-2023-11-14 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/112509
- * tree-vrp.cc (find_case_label_range): Create range from case labels.
-
-2023-11-14 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-builtin-types.def: Add/remove types.
- * config/s390/s390-builtins.def (s390_vec_scatter_element_flt):
- The type for the offset should be UV4SI instead of V4SF.
-
-2023-11-14 Saurabh Jha <saurabh.jha@arm.com>
-
- PR target/112337
- * config/arm/arm.cc (mve_vector_mem_operand): Add a REG_P check for INC
- and DEC operations.
-
-2023-11-14 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111233
- PR tree-optimization/111652
- PR tree-optimization/111727
- PR tree-optimization/111838
- PR tree-optimization/112113
- * tree-ssa-loop-split.cc (patch_loop_exit): Get the new
- guard code instead of the old guard stmt.
- (split_loop): Adjust.
-
-2023-11-14 Richard Biener <rguenther@suse.de>
-
- * tree-loop-distribution.cc (loop_distribution::data_dep_in_cycle_p):
- Consider all loops in the nest when looking for
- lambda_vector_zerop.
-
-2023-11-14 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112281
- * tree-loop-distribution.cc (pg_add_dependence_edges):
- Preserve stmt order when the innermost loop has exact
- overlap.
-
-2023-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR target/112523
- PR ada/112514
- * config/i386/i386.md (<insn><dwi>3_doubleword_lowpart): Move
- operands[1] aka low part of input rather than operands[3] aka high
- part of input to output if not the same register.
-
-2023-11-14 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config.gcc: Add s390-gen-builtins.h to target_gtfiles.
- * config/s390/s390-builtins.h (s390_builtin_types)
- (s390_builtin_fn_types, s390_builtin_decls): Add GTY marker.
- * config/s390/t-s390 (EXTRA_GTYPE_DEPS): Add s390-gen-builtins.h.
- Add build rule for s390-gen-builtins.h.
-
-2023-11-14 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390-c.cc (s390_fn_types_compatible): Add a check
- for error_mark_node.
-
-2023-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR c/111309
- * builtins.def (BUILT_IN_CLZG, BUILT_IN_CTZG, BUILT_IN_CLRSBG,
- BUILT_IN_FFSG, BUILT_IN_PARITYG, BUILT_IN_POPCOUNTG): New
- builtins.
- * builtins.cc (fold_builtin_bit_query): New function.
- (fold_builtin_1): Use it for
- BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
- (fold_builtin_2): Use it for BUILT_IN_{CLZ,CTZ}G.
- * fold-const-call.cc: Fix comment typo on tm.h inclusion.
- (fold_const_call_ss): Handle
- CFN_BUILT_IN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT}G.
- (fold_const_call_sss): New function.
- (fold_const_call_1): Call it for 2 argument functions returning
- scalar when passed 2 INTEGER_CSTs.
- * genmatch.cc (cmp_operand): For function calls also compare
- number of arguments.
- (fns_cmp): New function.
- (dt_node::gen_kids): Sort fns and generic_fns.
- (dt_node::gen_kids_1): Handle fns with the same id but different
- number of arguments.
- * match.pd (CLZ simplifications): Drop checks for defined behavior
- at zero. Add variant of simplifications for IFN_CLZ with 2 arguments.
- (CTZ simplifications): Drop checks for defined behavior at zero,
- don't optimize precisions above MAX_FIXED_MODE_SIZE. Add variant of
- simplifications for IFN_CTZ with 2 arguments.
- (a != 0 ? CLZ(a) : CST -> .CLZ(a)): Use TREE_TYPE (@3) instead of
- type, add BITINT_TYPE handling, create 2 argument IFN_CLZ rather than
- one argument. Add variant for matching CLZ with 2 arguments.
- (a != 0 ? CTZ(a) : CST -> .CTZ(a)): Similarly.
- * gimple-lower-bitint.cc (bitint_large_huge::lower_bit_query): New
- method.
- (bitint_large_huge::lower_call): Use it for IFN_{CLZ,CTZ,CLRSB,FFS}
- and IFN_{PARITY,POPCOUNT} calls.
- * gimple-range-op.cc (cfn_clz::fold_range): Don't check
- CLZ_DEFINED_VALUE_AT_ZERO for m_gimple_call_internal_p, instead
- assume defined value at zero if the call has 2 arguments and use
- second argument value for that case.
- (cfn_ctz::fold_range): Similarly.
- (gimple_range_op_handler::maybe_builtin_call): Use op_cfn_clz_internal
- or op_cfn_ctz_internal only if internal fn call has 2 arguments and
- set m_op2 in that case.
- * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern,
- vect_recog_popcount_clz_ctz_ffs_pattern): For value defined at zero
- use second argument of calls if present, otherwise assume UB at zero,
- create 2 argument .CLZ/.CTZ calls if needed.
- * tree-vect-stmts.cc (vectorizable_call): Handle 2 argument .CLZ/.CTZ
- calls.
- * tree-ssa-loop-niter.cc (build_cltz_expr): Create 2 argument
- .CLZ/.CTZ calls if needed.
- * tree-ssa-forwprop.cc (simplify_count_trailing_zeroes): Create 2
- argument .CTZ calls if needed.
- * tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Handle
- 2 argument .CLZ/.CTZ calls, handle BITINT_TYPE, create 2 argument
- .CLZ/.CTZ calls.
- * doc/extend.texi (__builtin_clzg, __builtin_ctzg, __builtin_clrsbg,
- __builtin_ffsg, __builtin_parityg, __builtin_popcountg): Document.
-
-2023-11-14 Xi Ruoyao <xry111@xry111.site>
-
- PR target/112330
- * config/loongarch/genopts/loongarch.opt.in: Add
- -m[no]-pass-relax-to-as. Change the default of -m[no]-relax to
- account conditional branch relaxation support status.
- * config/loongarch/loongarch.opt: Regenerate.
- * configure.ac (gcc_cv_as_loongarch_cond_branch_relax): Check if
- the assembler supports conditional branch relaxation.
- * configure: Regenerate.
- * config.in: Regenerate. Note that there are some unrelated
- changes introduced by r14-5424 (which does not contain a
- config.in regeneration).
- * config/loongarch/loongarch-opts.h
- (HAVE_AS_COND_BRANCH_RELAXATION): Define to 0 if not defined.
- * config/loongarch/loongarch-driver.h (ASM_MRELAX_DEFAULT):
- Define.
- (ASM_MRELAX_SPEC): Define.
- (ASM_SPEC): Use ASM_MRELAX_SPEC instead of "%{mno-relax}".
- * config/loongarch/loongarch.cc: Take the setting of
- -m[no-]relax into account when determining the default of
- -mexplicit-relocs=.
- * doc/invoke.texi: Document -m[no-]relax and
- -m[no-]pass-mrelax-to-as for LoongArch. Update the default
- value of -mexplicit-relocs=.
-
-2023-11-14 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/112496
- * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
- false when !tree_nop_conversion_p (TREE_TYPE (vectype),
- TREE_TYPE (init_expr)).
-
-2023-11-14 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/sync.md (mem_thread_fence): Remove redundant
- check.
- (mem_thread_fence_1): Emit finer-grained DBAR hints for
- different memory models, instead of 0.
-
-2023-11-14 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/112511
- * tree.cc (type_contains_placeholder_1): Handle BITINT_TYPE like
- INTEGER_TYPE.
-
-2023-11-14 Jakub Jelinek <jakub@redhat.com>
- Hu, Lin1 <lin1.hu@intel.com>
-
- PR target/112435
- * config/i386/sse.md (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
- <mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>): Add
- alternative with just x instead of v constraints and xjm instead of
- vm and use vblendps as optimization only with that alternative.
-
-2023-11-14 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/105735
- PR tree-optimization/111972
- * tree-scalar-evolution.cc
- (analyze_and_compute_bitop_with_inv_effect): Handle bitop with
- INTEGER_CST.
-
-2023-11-13 Arsen Arsenović <arsen@aarsen.me>
-
- * configure: Regenerate.
- * aclocal.m4: Regenerate.
- * Makefile.in (LIBDEPS): Remove (potential) ./ prefix from
- LIBINTL_DEP.
- * doc/install.texi: Document new (notable) flags added by the
- optional gettext tree and by AM_GNU_GETTEXT. Document libintl/libc
- with gettext dependency.
-
-2023-11-13 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.h (gen_pushfl): New prototype.
- (gen_popfl): Ditto.
- * config/i386/i386-expand.cc (ix86_expand_builtin)
- [case IX86_BUILTIN_READ_FLAGS]: Use gen_pushfl.
- [case IX86_BUILTIN_WRITE_FLAGS]: Use gen_popfl.
- * config/i386/i386.cc (gen_pushfl): New function.
- (gen_popfl): Ditto.
- * config/i386/i386.md (unspec): Add UNSPEC_PUSHFL and UNSPEC_POPFL.
- (@pushfl<mode>2): Rename from *pushfl<mode>2.
- Rewrite as unspec using UNSPEC_PUSHFL.
- (@popfl<mode>1): Rename from *popfl<mode>1.
- Rewrite as unspec using UNSPEC_POPFL.
-
-2023-11-13 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/112494
- * config/i386/i386.cc (ix86_cc_mode) [default]: Return CCmode.
-
-2023-11-13 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/riscv-vsetvl.cc (source_equal_p): Use pointer
- equality for REG_EQUAL.
-
-2023-11-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112495
- * tree-data-ref.cc (runtime_alias_check_p): Reject checks
- between different address spaces.
-
-2023-11-13 Richard Biener <rguenther@suse.de>
-
- PR middle-end/112487
- * tree-inline.cc (setup_one_parameter): When the parameter
- is unused only insert a debug bind when there's not a gross
- mismatch in value and declared parameter type. Do not assert
- there effectively isn't.
-
-2023-11-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc
- (rvv_builder::combine_sequence_use_merge_profitable_p): New function.
- (expand_vector_init_merge_combine_sequence): Ditto.
- (expand_vec_init): Adapt for new optimization.
-
-2023-11-13 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386-expand.cc
- (ix86_expand_vector_init_duplicate): Handle V4HF/V4BF and
- V2HF/V2BF.
- (ix86_expand_vector_init_one_nonzero): Ditto.
- (ix86_expand_vector_init_one_var): Ditto.
- (ix86_expand_vector_init_general): Ditto.
- (ix86_expand_vector_set_var): Ditto.
- (ix86_expand_vector_set): Ditto.
- (ix86_expand_vector_extract): Ditto.
- * config/i386/mmx.md
- (mmxdoublevecmode): Extend to V4HF/V4BF/V2HF/V2BF.
- (*mmx_pinsrw): Extend to V4FI_64, add a new alternative (&x,
- x, x), add a new define_split after the pattern.
- (*mmx_pextrw<mode>): New define_insn.
- (mmx_pshufw_1): Rename to ..
- (mmx_pshufw<mode>_1): .. this, extend to V4FI_64.
- (*mmx_pblendw64): Extend to V4FI_64.
- (*vec_dup<mode>): New define_insn.
- (vec_setv4hi): Rename to ..
- (vec_set<mode>): .. this, and extend to V4FI_64
- (vec_extractv4hihi): Rename to ..
- (vec_extract<mode><mmxscalarmodelower>): .. this, and extend
- to V4FI_64.
- (vec_init<mode><mmxscalarmodelower>): New define_insn.
- (*pinsrw): Extend to V2FI_32, add a new alternative (&x,
- x, x), and add a new define_split after it.
- (*pextrw<mode>): New define_insn.
- (vec_setv2hi): Rename to ..
- (vec_set<mode>): .. this, extend to V2FI_32.
- (vec_extractv2hihi): Rename to ..
- (vec_extract<mode><mmxscalarmodelower>): .. this, extend to
- V2FI_32.
- (*punpckwd): Extend to V2FI_32.
- (*pshufw_1): Rename to ..
- (*pshufw<mode>_1): .. this, extend to V2FI_32.
- (vec_initv2hihi): Rename to ..
- (vec_init<mode><mmxscalarmodelower>): .. this, and extend to
- V2FI_32.
- (*vec_dup<mode>): New define_insn.
- * config/i386/sse.md (*vec_extract<mode>): Refine constraint
- from v to Yw.
-
-2023-11-13 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.md (UNSPEC_ARC_CC_NEZ): New UNSPEC that
- represents the carry flag being set if the operand is non-zero.
- (adc_f): New define_insn representing adc with updated flags.
- (ashrdi3): New define_expand that only handles shifts by 1.
- (ashrdi3_cnt1): New pre-reload define_insn_and_split.
- (lshrdi3): New define_expand that only handles shifts by 1.
- (lshrdi3_cnt1): New pre-reload define_insn_and_split.
- (rrcsi2): New define_insn for rrc (SImode rotate right through carry).
- (rrcsi2_carry): Likewise for rrc.f, as above but updating flags.
- (rotldi3): New define_expand that only handles rotates by 1.
- (rotldi3_cnt1): New pre-reload define_insn_and_split.
- (rotrdi3): New define_expand that only handles rotates by 1.
- (rotrdi3_cnt1): New pre-reload define_insn_and_split.
- (lshrsi3_cnt1_carry): New define_insn for lsr.f.
- (ashrsi3_cnt1_carry): New define_insn for asr.f.
- (btst_0_carry): New define_insn for asr.f without result.
-
-2023-11-13 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.cc (TARGET_FOLD_BUILTIN): Define to
- arc_fold_builtin.
- (arc_fold_builtin): New function. Convert ARC_BUILTIN_SWAP
- into a rotate. Evaluate ARC_BUILTIN_NORM and
- ARC_BUILTIN_NORMW of constant arguments.
- * config/arc/arc.md (UNSPEC_ARC_SWAP): Delete.
- (normw): Make output template/assembler whitespace consistent.
- (swap): Remove define_insn, only use of SWAP UNSPEC.
- * config/arc/builtins.def: Tweak indentation.
- (SWAP): Expand using rotlsi2_cnt16 instead of using swap.
-
-2023-11-13 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (<insn><dwi>3_doubleword_lowpart): New
- define_insn_and_split to optimize register usage of doubleword
- right shifts followed by truncation.
-
-2023-11-13 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/constraints.md: Remove j constraint letter from list of
- unused letters.
-
-2023-11-13 Xi Ruoyao <xry111@xry111.site>
-
- PR rtl-optimization/112483
- * simplify-rtx.cc (simplify_binary_operation_1) <case COPYSIGN>:
- Fix the simplification of (fcopysign x, NEGATIVE_CONST).
-
-2023-11-13 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/111967
- * gimple-range-cache.cc (block_range_cache::set_bb_range): Grow
- m_ssa_ranges to num_ssa_names rather than num_ssa_names + 1.
- (block_range_cache::dump): Iterate from 1 rather than 0. Don't use
- ssa_name (x) unless m_ssa_ranges[x] is non-NULL. Iterate to
- m_ssa_ranges.length () rather than num_ssa_names.
-
-2023-11-13 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.md (LD_AT_LEAST_32_BIT): New mode
- iterator.
- (ST_ANY): New mode iterator.
- (define_peephole2): Use LD_AT_LEAST_32_BIT instead of GPR and
- ST_ANY instead of QHWD for applicable patterns.
-
-2023-11-13 Xi Ruoyao <xry111@xry111.site>
-
- PR target/112476
- * config/loongarch/loongarch.cc
- (loongarch_expand_vec_cond_mask_expr): Call simplify_gen_subreg
- instead of gen_rtx_SUBREG.
-
-2023-11-13 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Add bridge mode to lrint and lround
+ * gdbhooks.py: Fix regex syntax.
+
+2024-02-16 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/113895
+ * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
+ consistency checking when there are out-of-bound array
+ accesses. Allow -1 off when from an array reference with
+ constant index.
+
+2024-02-16 Kito Cheng <kito.cheng@sifive.com>
+
+ PR target/106543
+ * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
pattern.
- * config/riscv/riscv-protos.h (expand_vec_lrint): Add new arg
- bridge machine mode.
- (expand_vec_lround): Ditto.
- * config/riscv/riscv-v.cc (emit_vec_widden_cvt_f_f): New helper
- func impl to emit vfwcvt.f.f.
- (emit_vec_rounding_to_integer): Handle the HF to DI rounding
- with the bridge mode.
- (expand_vec_lrint): Reorder the args.
- (expand_vec_lround): Ditto.
- (expand_vec_lceil): Ditto.
- (expand_vec_lfloor): Ditto.
- * config/riscv/vector-iterators.md: Add vector HFmode and bridge
- mode for converting to DI.
-
-2023-11-12 Jeff Law <jlaw@ventanamicro.com>
-
- Revert:
- 2023-11-11 Jin Ma <jinma@linux.alibaba.com>
-
- * haifa-sched.cc (use_or_clobber_starts_range_p): New.
- (prune_ready_list): USE or CLOBBER should delay execution
- if it starts a new live range.
-
-2023-11-12 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*stack_protect_set_4s_<mode>_di):
- Remove alternative 0.
-
-2023-11-11 Eric Botcazou <ebotcazou@adacore.com>
-
- * ipa-cp.cc (print_ipcp_constant_value): Move to...
- (values_equal_for_ipcp_p): Deal with VAR_DECLs from the
- constant pool.
- * ipa-prop.cc (ipa_print_constant_value): ...here. Likewise.
- (ipa_print_node_jump_functions_for_edge): Call the function
- ipa_print_constant_value to print IPA_JF_CONST elements.
-
-2023-11-11 Jin Ma <jinma@linux.alibaba.com>
-
- * haifa-sched.cc (use_or_clobber_starts_range_p): New.
- (prune_ready_list): USE or CLOBBER should delay execution
- if it starts a new live range.
-
-2023-11-11 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/112430
- * tree-ssa-math-opts.cc (match_uaddc_usubc): Remove temp_stmts in the
- order they were pushed rather than in reverse order. Call
- release_defs after gsi_remove.
-
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
- * target.def (mode_switching.backprop): New hook.
- * doc/tm.texi.in (TARGET_MODE_BACKPROP): New @hook.
- * doc/tm.texi: Regenerate.
- * mode-switching.cc (struct bb_info): Add single_succ.
- (confluence_info): Add transp field.
- (single_succ_confluence_n, single_succ_transfer): New functions.
- (backprop_confluence_n, backprop_transfer): Likewise.
- (optimize_mode_switching): Use them. Push mode transitions onto
- a block's incoming edges, if the backprop hook requires it.
+2024-02-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ * doc/sourcebuild.texi (Effective-Target Keywords, Other
+ attribugs): Document linker_plugin.
+ (Require Support): Document dg-require-linker-plugin.
- * target.def (mode_switching.confluence): New hook.
- * doc/tm.texi (TARGET_MODE_CONFLUENCE): New @hook.
- * doc/tm.texi.in: Regenerate.
- * mode-switching.cc (confluence_info): New variable.
- (mode_confluence, forward_confluence_n, forward_transfer): New
- functions.
- (optimize_mode_switching): Use them to calculate mode_in when
- TARGET_MODE_CONFLUENCE is defined.
+2024-02-16 Kito Cheng <kito.cheng@sifive.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ PR target/109349
+ * common/config/riscv/riscv-common.cc (riscv_arch_help): New.
+ * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
+ (RISCV_MINOR_VERSION_BASE): Ditto.
+ (RISCV_REVISION_VERSION_BASE): Ditto.
+ * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
+ rather than magic number.
+ * config/riscv/riscv.h (riscv_arch_help): New.
+ (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
+ (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
+ --print-supported-extensions.
+ * config/riscv/riscv.opt (march=help): New.
+ (print-supported-extensions): New.
+ (-print-supported-extensions): New.
+ * doc/invoke.texi (RISC-V Options): Document -march=help.
- * mode-switching.cc (commit_mode_sets): Use 1-based edge aux values.
+2024-02-16 Tejas Belagod <tejas.belagod@arm.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ PR target/113780
+ * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
+ for indirect calls with 4 or more arguments in pac-enabled functions.
- * target.def (mode_switching.after): Add a regs_live parameter.
- * doc/tm.texi: Regenerate.
- * config/epiphany/epiphany-protos.h (epiphany_mode_after): Update
- accordingly.
- * config/epiphany/epiphany.cc (epiphany_mode_needed): Likewise.
- (epiphany_mode_after): Likewise.
- * config/i386/i386.cc (ix86_mode_after): Likewise.
- * config/riscv/riscv.cc (riscv_mode_after): Likewise.
- * config/sh/sh.cc (sh_mode_after): Likewise.
- * mode-switching.cc (optimize_mode_switching): Likewise.
-
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (mode_switching.needed): Add a regs_live parameter.
- * doc/tm.texi: Regenerate.
- * config/epiphany/epiphany-protos.h (epiphany_mode_needed): Update
- accordingly.
- * config/epiphany/epiphany.cc (epiphany_mode_needed): Likewise.
- * config/epiphany/mode-switch-use.cc (insert_uses): Likewise.
- * config/i386/i386.cc (ix86_mode_needed): Likewise.
- * config/riscv/riscv.cc (riscv_mode_needed): Likewise.
- * config/sh/sh.cc (sh_mode_needed): Likewise.
- * mode-switching.cc (optimize_mode_switching): Likewise.
- (create_pre_exit): Likewise, using the DF simulate functions
- to calculate the required information.
-
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
-
- * target.def (mode_switching.eh_handler): New hook.
- * doc/tm.texi.in (TARGET_MODE_EH_HANDLER): New @hook.
- * doc/tm.texi: Regenerate.
- * mode-switching.cc (optimize_mode_switching): Use eh_handler
- to get the mode on entry to an exception handler.
+2024-02-15 David Faust <david.faust@oracle.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
+ use ldxb instead of ldxh.
- * mode-switching.cc (optimize_mode_switching): Mark the exit
- block as nontransparent if it requires a specific mode.
- Handle the entry and exit mode as sibling rather than nested
- concepts. Remove outdated comment.
+2024-02-15 Jakub Jelinek <jakub@redhat.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
-
- * mode-switching.cc (optimize_mode_switching): Initially
- compute transparency in a bit-per-block bitmap.
-
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
-
- * mode-switching.cc (seginfo): Add a prev_mode field.
- (new_seginfo): Take and initialize the prev_mode.
- (optimize_mode_switching): Update calls accordingly.
- Use the recorded modes during the emit phase, rather than
- computing one on the fly.
+ PR middle-end/113921
+ * cfgrtl.h (prepend_insn_to_edge): New declaration.
+ * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
+ comment.
+ (prepend_insn_to_edge): New function.
+ * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
+ insert_insn_on_edge.
+
+2024-02-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111156
+ * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
+ at the pattern stmt if any.
+
+2024-02-15 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/113927
+ * config/avr/avr.h (AVR_HAVE_ADIW): New macro.
+ * config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
+ * config/avr/avr.cc (avr_adiw_reg_p): New function.
+ (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
+ Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
+ * config/avr/avr.md: Same.
+ (attr "isa") <tiny, no_tiny>: Remove.
+ <adiw, no_adiw>: Add.
+ (define_insn, define_insn_and_split): When an alternative has
+ constraint "w", then set attribute "isa" to "adiw".
+ * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
+ Built-in define __AVR_HAVE_ADIW__.
+ * doc/invoke.texi (AVR Options): Document it.
+
+2024-02-15 Andrew Stubbs <ams@baylibre.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ * config/gcn/gcn-valu.md
+ (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
+ * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
+ details are supported on RDNA devices.
- * mode-switching.cc (add_seginfo): Replace head pointer with
- a pointer to the tail pointer.
- (optimize_mode_switching): Update calls accordingly.
+2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ PR middle-end/113508
+ * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
+ usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
+ smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
+ Add sentence about what the mode m is.
- * mode-switching.cc (optimize_mode_switching): Call
- df_note_add_problem.
+2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
-2023-11-11 Richard Sandiford <richard.sandiford@arm.com>
+ * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
+ smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
+ var.
- * target.def: Tweak documentation of mode-switching hooks.
- * doc/tm.texi.in (OPTIMIZE_MODE_SWITCHING): Tweak documentation.
- (NUM_MODES_FOR_MODE_SWITCHING): Likewise.
- * doc/tm.texi: Regenerate.
+2024-02-15 Richard Biener <rguenther@suse.de>
-2023-11-11 Martin Uecker <uecker@tugraz.at>
+ * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
+ stmts.
- PR c/110815
- PR c/112428
- * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
- remove warning for parameters declared with `static`.
+2024-02-15 Jakub Jelinek <jakub@redhat.com>
-2023-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
+ PR tree-optimization/113567
+ * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
+ _BitInt multiplication, division or modulo with
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
+ force the affected inputs into a new SSA_NAME.
- * doc/sourcebuild.texi (Scan the assembly output): Document change.
+2024-02-14 Uros Bizjak <ubizjak@gmail.com>
-2023-11-10 Mao <sray@live.com>
+ PR target/113871
+ * config/i386/mmx.md (V248FI): New mode iterator.
+ (V24FI_32): DItto.
+ (vec_shl_<V248FI:mode>): New expander.
+ (vec_shl_<V24FI_32:mode>): Ditto.
+ (vec_shr_<V248FI:mode>): Ditto.
+ (vec_shr_<V24FI_32:mode>): Ditto.
+ * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
+ (vec_shr_<V248FI:mode>): Ditto.
- PR middle-end/110983
- * doc/invoke.texi (Option Summary): Add -fpatchable-function-entry.
+2024-02-14 Jan Hubicka <jh@suse.cz>
-2023-11-10 Maciej W. Rozycki <macro@embecosm.com>
+ PR tree-optimization/111054
+ * tree-ssa-loop-split.cc (split_loop): Check for profile being present.
- * config/riscv/riscv.md (length): Fix indentation for branch and
- jump length calculation expressions.
+2024-02-14 Tamar Christina <tamar.christina@arm.com>
-2023-11-10 Eric Botcazou <ebotcazou@adacore.com>
+ * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
- * fold-const.cc (operand_compare::operand_equal_p) <CONSTRUCTOR>:
- Deal with nonempty constant CONSTRUCTORs.
- (operand_compare::hash_operand) <CONSTRUCTOR>: Hash DECL_FIELD_OFFSET
- and DECL_FIELD_BIT_OFFSET for FIELD_DECLs.
+2024-02-14 Richard Biener <rguenther@suse.de>
-2023-11-10 Vladimir N. Makarov <vmakarov@redhat.com>
+ PR tree-optimization/113910
+ * bitmap.cc (bitmap_hash): Mix the full element "hash" to
+ the hashval_t hash.
- PR target/112337
- * ira-costs.cc: (validate_autoinc_and_mem_addr_p): New function.
- (equiv_can_be_consumed_p): Use it.
+2024-02-14 Jakub Jelinek <jakub@redhat.com>
-2023-11-10 Richard Sandiford <richard.sandiford@arm.com>
+ * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
+ (pp_integer_with_precision): For unsigned ptrdiff_t printing
+ with u, o or x print ptrdiff_t argument converted to
+ unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
- * read-rtl.cc (md_reader::read_mapping): Allow iterators to
- include other iterators.
- * doc/md.texi: Document the change.
- * config/aarch64/iterators.md (DREG2, VQ2, TX2, DX2, SX2): Include
- the iterator that is being duplicated, rather than reproducing it.
- (VSTRUCT_D): Redefine using VSTRUCT_[234]D.
- (VSTRUCT_Q): Likewise VSTRUCT_[234]Q.
- (VSTRUCT_2QD, VSTRUCT_3QD, VSTRUCT_4QD, VSTRUCT_QD): Redefine using
- the individual D and Q iterators.
+2024-02-14 Richard Biener <rguenther@suse.de>
-2023-11-10 Uros Bizjak <ubizjak@gmail.com>
+ PR middle-end/113576
+ * expr.cc (do_store_flag): For vector bool compares of vectors
+ with padding zero that.
+ * dojump.cc (do_compare_and_jump): Likewise.
- * config/i386/i386.md (stack_protect_set_1 peephole2):
- Explicitly check operand 2 for word_mode.
- (stack_protect_set_1 peephole2 #2): Ditto.
- (stack_protect_set_2 peephole2): Ditto.
- (stack_protect_set_3 peephole2): Ditto.
- (*stack_protect_set_4z_<mode>_di): New insn patter.
- (*stack_protect_set_4s_<mode>_di): Ditto.
- (stack_protect_set_4 peephole2): New peephole2 pattern to
- substitute stack protector scratch register clear with unrelated
- register initialization involving zero/sign-extend instruction.
+2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
-2023-11-10 Uros Bizjak <ubizjak@gmail.com>
+ * doc/install.texi (Prerequisites): Update gettext link.
- * config/i386/i386.md (shift): Use SAL insted of SLL
- for ashift insn mnemonic.
+2024-02-13 H.J. Lu <hjl.tools@gmail.com>
-2023-11-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+ PR target/113876
+ * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
+ Return false if the incoming stack isn't 16-byte aligned.
- PR tree-optimization/112438
- * tree-vect-loop.cc (vectorizable_induction): Bugfix when
- LOOP_VINFO_USING_SELECT_VL_P.
+2024-02-13 Tobias Burnus <tburnus@baylibre.com>
-2023-11-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+ PR middle-end/113904
+ * omp-general.cc (struct omp_ts_info): Update for splitting of
+ OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
+ * omp-selectors.h (enum omp_tp_type): Replace
+ OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- * config/riscv/riscv-v.cc
- (rvv_builder::combine_sequence_use_slideup_profitable_p): New function.
- (expand_vector_init_slideup_combine_sequence): Ditto.
- (expand_vec_init): Add slideup combine optimization.
+2024-02-13 Monk Chiang <monk.chiang@sifive.com>
-2023-11-10 Robin Dapp <rdapp@ventanamicro.com>
+ PR target/113742
+ * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
+ recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
- PR tree-optimization/112464
- * tree-vect-loop.cc (vectorize_fold_left_reduction): Use
- vect_orig_stmt on scalar_dest_def_info.
+2024-02-13 Richard Biener <rguenther@suse.de>
-2023-11-10 Jin Ma <jinma@linux.alibaba.com>
+ PR tree-optimization/113895
+ * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
+ offset to discover constant array indices in bits, handle
+ COMPONENT_REF to bitfields.
- * config/riscv/riscv.cc (riscv_for_each_saved_reg): Place the interrupt
- operation before the XTheadMemPair.
+2024-02-13 Richard Biener <rguenther@suse.de>
-2023-11-10 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113831
+ * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
+ typo in comment.
- PR tree-optimization/110221
- * tree-vect-slp.cc (vect_schedule_slp_node): When loop
- masking / len is applied make sure to not schedule
- intenal defs outside of the loop.
+2024-02-13 Richard Biener <rguenther@suse.de>
-2023-11-10 Andrew Stubbs <ams@codesourcery.com>
+ PR tree-optimization/113902
+ * tree-vect-loop.cc (move_early_exit_stmts): Track
+ last_seen_vuse for VUSE updating.
- * expr.cc (store_constructor): Add "and" operation to uniform mask
- generation.
+2024-02-13 Tamar Christina <tamar.christina@arm.com>
-2023-11-10 Andrew Stubbs <ams@codesourcery.com>
+ PR tree-optimization/113734
+ * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
+ an early break loop as partial.
- PR target/112308
- * config/gcn/gcn-valu.md (add<mode>3<exec_clobber>): Fix B constraint
- and switch to the new format.
- (add<mode>3_dup<exec_clobber>): Likewise.
- (add<mode>3_vcc<exec_vcc>): Likewise.
- (add<mode>3_vcc_dup<exec_vcc>): Likewise.
- (add<mode>3_vcc_zext_dup): Likewise.
- (add<mode>3_vcc_zext_dup_exec): Likewise.
- (add<mode>3_vcc_zext_dup2): Likewise.
- (add<mode>3_vcc_zext_dup2_exec): Likewise.
+2024-02-13 Richard Biener <rguenther@suse.de>
-2023-11-10 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113898
+ * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
+ missing accumulated off adjustment.
- PR middle-end/112469
- * match.pd (cond ? op a : b -> .COND_op (cond, a, b)): Add
- missing view_converts.
+2024-02-13 Jakub Jelinek <jakub@redhat.com>
-2023-11-10 Andrew Stubbs <ams@codesourcery.com>
+ * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
+ instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
+ it against UINT_MAX and ULONG_MAX.
- * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Add clobber to DImode
- min/max instructions.
+2024-02-13 David Malcolm <dmalcolm@redhat.com>
-2023-11-10 Chenghui Pan <panchenghui@loongson.cn>
+ * diagnostic-core.h (emit_diagnostic_valist): Rename overload
+ to...
+ (emit_diagnostic_valist_meta): ...this.
+ * diagnostic.cc (emit_diagnostic_valist): Likewise, to...
+ (emit_diagnostic_valist_meta): ...this.
- * config/loongarch/lsx.md: Fix instruction name typo in
- lsx_vreplgr2vr_<lsxfmt_f> template.
+2024-02-12 Jakub Jelinek <jakub@redhat.com>
-2023-11-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+ PR tree-optimization/113849
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
+ fast path for widening casts where !m_upwards_2limb and lhs_type
+ has precision which is a multiple of limb_prec.
- * config/riscv/autovec.md (vec_init<mode><vel>): Split patterns.
+2024-02-12 Jakub Jelinek <jakub@redhat.com>
-2023-11-10 Pan Li <pan2.li@intel.com>
+ PR c++/113674
+ * attribs.cc (extract_attribute_substring): Remove.
+ (lookup_scoped_attribute_spec): Don't call it.
- Revert:
- 2023-11-10 Pan Li <pan2.li@intel.com>
- * config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem):
- New fun impl to expand the insn when trailing same elements.
- (expand_vec_init): Try trailing same elements when vec_init.
-
-2023-11-10 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (expand_vector_init_trailing_same_elem):
- New fun impl to expand the insn when trailing same elements.
- (expand_vec_init): Try trailing same elements when vec_init.
-
-2023-11-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_copysign<mode>): Remove.
- * config/riscv/autovec.md (cond_copysign<mode>): New pattern.
-
-2023-11-10 Pan Li <pan2.li@intel.com>
-
- PR target/112432
- * internal-fn.def (LRINT): Add FLOATN support.
- (LROUND): Ditto.
- (LLRINT): Ditto.
- (LLROUND): Ditto.
-
-2023-11-10 Jeff Law <jlaw@ventanamicro.com>
-
- * config/h8300/combiner.md (single bit sign_extract): Avoid recently
- added patterns for H8/SX.
- (single bit zero_extract): New patterns.
-
-2023-11-10 liuhongt <hongtao.liu@intel.com>
-
- PR target/112443
- * config/i386/sse.md (*avx2_pcmp<mode>3_4): Fix swap condition
- from LT to GT since there's not in the pattern.
- (*avx2_pcmp<mode>3_5): Ditto.
-
-2023-11-10 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf.cc (bpf_print_register): Accept modifier code 'W'
- to force emitting register names using the wN form.
- * config/bpf/bpf.md (*mulsidi3_zeroextend): Force operands to
- always use wN written form in pseudo-C assembly syntax.
-
-2023-11-09 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.cc (layout::m_line_table): New field.
- (compatible_locations_p): Convert to...
- (layout::compatible_locations_p): ...this, replacing uses of
- line_table global with m_line_table.
- (layout::layout): Convert "richloc" param from a pointer to a
- const reference. Initialize m_line_table member.
- (layout::maybe_add_location_range): Replace uses of line_table
- global with m_line_table. Pass the latter to
- linemap_client_expand_location_to_spelling_point.
- (layout::print_leading_fixits): Pass m_line_table to
- affects_line_p.
- (layout::print_trailing_fixits): Likewise.
- (gcc_rich_location::add_location_if_nearby): Update for change
- to layout ctor params.
- (diagnostic_show_locus): Convert to...
- (diagnostic_context::maybe_show_locus): ...this, converting
- richloc param from a pointer to a const reference. Make "loc"
- const. Split out printing part of function to...
- (diagnostic_context::show_locus): ...this.
- (selftest::test_offset_impl): Update for change to layout ctor
- params.
- (selftest::test_layout_x_offset_display_utf8): Likewise.
- (selftest::test_layout_x_offset_display_tab): Likewise.
- (selftest::test_tab_expansion): Likewise.
- * diagnostic.h (diagnostic_context::maybe_show_locus): New decl.
- (diagnostic_context::show_locus): New decl.
- (diagnostic_show_locus): Convert from a decl to an inline function.
- * gdbinit.in (break-on-diagnostic): Update from a breakpoint
- on diagnostic_show_locus to one on
- diagnostic_context::maybe_show_locus.
- * genmatch.cc (linemap_client_expand_location_to_spelling_point):
- Add "set" param and use it in place of line_table global.
- * input.cc (expand_location_1): Likewise.
- (expand_location): Update for new param of expand_location_1.
- (expand_location_to_spelling_point): Likewise.
- (linemap_client_expand_location_to_spelling_point): Add "set"
- param and use it in place of line_table global.
- * tree-diagnostic-path.cc (event_range::print): Pass line_table
- for new param of linemap_client_expand_location_to_spelling_point.
-
-2023-11-09 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (@stack_protect_set_1_<PTR:mode>_<W:mode>):
- Use W mode iterator instead of SWI48. Output MOV instead of XOR
- for TARGET_USE_MOV0.
- (stack_protect_set_1 peephole2): Use integer modes with
- mode size <= word mode size for operand 3.
- (stack_protect_set_1 peephole2 #2): New peephole2 pattern to
- substitute stack protector scratch register clear with unrelated
- register initialization, originally in front of stack
- protector sequence.
- (*stack_protect_set_3_<PTR:mode>_<SWI48:mode>): New insn pattern.
- (stack_protect_set_1 peephole2): New peephole2 pattern to
- substitute stack protector scratch register clear with unrelated
- register initialization involving LEA instruction.
-
-2023-11-09 Vladimir N. Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/110215
- * ira-lives.cc: (add_conflict_from_region_landing_pads): New
- function.
- (process_bb_node_lives): Use it.
-
-2023-11-09 Alexandre Oliva <oliva@adacore.com>
-
- * config/i386/i386.cc (symbolic_base_address_p,
- base_address_p): New, factored out from...
- (extract_base_offset_in_addr): ... here and extended to
- recognize REG+GOTOFF, as in gcc.target/i386/sse2-load-multi.c
- and sse2-store-multi.c with PIE enabled by default.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * config/aarch64/aarch64-sve.md (cond_copysign<mode>): New.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * config/aarch64/aarch64.md (copysign<GPF:mode>3): Handle
- copysign (x, -1).
- * config/aarch64/aarch64-simd.md (copysign<mode>3): Likewise.
- * config/aarch64/aarch64-sve.md (copysign<mode>3): Likewise.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * config/aarch64/aarch64.md (<optab><mode>3): Add SVE split case.
- * config/aarch64/aarch64-simd.md (ior<mode>3<vczle><vczbe>): Likewise.
- * config/aarch64/predicates.md(aarch64_orr_imm_sve_advsimd): New.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * config/aarch64/aarch64.md (*mov<mode>_aarch64, *movsi_aarch64,
- *movdi_aarch64): Add new w -> Z case.
- * config/aarch64/iterators.md (Vbtype): Add QI and HI.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * config/aarch64/aarch64-protos.h (aarch64_simd_special_constant_p,
- aarch64_maybe_generate_simd_constant): New.
- * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VQMOV:mode>,
- *aarch64_simd_mov<VDMOV:mode>): Add new coden for special constants.
- * config/aarch64/aarch64.cc (aarch64_extract_vec_duplicate_wide_int):
- Take optional mode.
- (aarch64_simd_special_constant_p,
- aarch64_maybe_generate_simd_constant): New.
- * config/aarch64/aarch64.md (*movdi_aarch64): Add new codegen for
- special constants.
- * config/aarch64/constraints.md (Dx): new.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * internal-fn.def (COPYSIGN): New.
- * match.pd (UNCOND_BINARY, COND_BINARY): Map IFN_COPYSIGN to
- IFN_COND_COPYSIGN.
- * optabs.def (cond_copysign_optab, cond_len_copysign_optab): New.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * match.pd: Add new neg+abs rule, remove inverse copysign rule.
-
-2023-11-09 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * match.pd: expand existing copysign optimizations.
-
-2023-11-09 Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
-
- PR driver/111605
- * collect2.cc (main): Do not prepend target triple to
- -fuse-ld=lld,mold.
-
-2023-11-09 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111133
- * tree-vect-stmts.cc (vect_build_scatter_store_calls):
- Remove and refactor to ...
- (vect_build_one_scatter_store_call): ... this new function.
- (vectorizable_store): Use vect_check_scalar_mask to record
- the SLP node for the mask operand. Code generate scatters
- with builtin decls from the main scatter vectorization
- path and prepare that for SLP.
- * tree-vect-slp.cc (vect_get_operand_map): Do not look
- at the VDEF to decide between scatter or gather since that
- doesn't work for patterns. Use the LHS being an SSA_NAME
- or not instead.
+2024-02-12 Jakub Jelinek <jakub@redhat.com>
-2023-11-09 Pan Li <pan2.li@intel.com>
+ * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
+ and cast to fmt_size_t instead of %lu and cast to unsigned long.
- * config/riscv/riscv.cc (riscv_frm_emit_after_bb_end): Only
- perform once emit when at least one succ edge is abnormal.
+2024-02-12 Christophe Lyon <christophe.lyon@linaro.org>
-2023-11-09 Richard Biener <rguenther@suse.de>
+ * Makefile.in: Add no-info dependency.
+ * configure.ac: Set BUILD_INFO=no-info if makeinfo is not
+ available.
+ * configure: Regenerate.
- * tree-vect-loop.cc (vect_verify_full_masking_avx512):
- Check we have integer mode masks as required by
- vect_get_loop_mask.
+2024-02-12 Iain Sandoe <iain@sandoe.co.uk>
-2023-11-09 Richard Biener <rguenther@suse.de>
+ PR target/113855
+ * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
+ available to all sub-targets.
+ * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
+ * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
- PR tree-optimization/112444
- * tree-ssa-sccvn.cc (visit_phi): Avoid using not visited
- defs as undefined vals.
+2024-02-12 Richard Biener <rguenther@suse.de>
-2023-11-09 YunQiang Su <yunqiang.su@cipunited.com>
+ PR tree-optimization/113831
+ PR tree-optimization/108355
+ * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
+ we see variable array indices and get_ref_base_and_extent
+ can resolve those to constants fix up the ops to constants
+ as well.
+ (ao_ref_init_from_vn_reference): Use 'off' member for
+ ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
+ (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
+
+2024-02-12 Pan Li <pan2.li@intel.com>
+
+ * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
+ Replace args to arguments for misspelled term.
+
+2024-02-12 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/112944
+ * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
+ <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
+ when not linked with -mrodata-in-ram.
+
+2024-02-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/113863
+ * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ Record crossed virtual PHIs.
+ * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
+ virtual PHIs.
+
+2024-02-10 Marek Polacek <polacek@redhat.com>
+
+ DR 2237
+ PR c++/107126
+ PR c++/97202
+ * doc/invoke.texi: Document -Wtemplate-id-cdtor.
+
+2024-02-10 Jakub Jelinek <jakub@redhat.com>
+
+ * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
+ computation of idx for i == 4 of bitint_prec_huge.
+
+2024-02-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/110754
+ * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
+ decls create PARM_DECL with pointer to original type, set
+ TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
+ DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
+ (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
+ wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
+ (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
+ of the var as argument.
+
+2024-02-10 Jakub Jelinek <jakub@redhat.com>
+
+ * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
+ size_t and precision 4 for ptrdiff_t. Formatting fix.
+ (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers.
+ Formatting fixes.
+ (test_pp_format): Test t and z modifiers.
+ * gcc.cc (read_specs): Use %td instead of %ld and casts to long.
+
+2024-02-10 Jakub Jelinek <jakub@redhat.com>
+
+ * ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
+ sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
+ and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
+ * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
+ and casts to fmt_size_t instead of "%ld" and casts to long.
+ (print_value_expr_statistics, print_type_hash_statistics): Likewise.
+ * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
+ instead of "%lu" and casts to unsigned long.
+ * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
+ unsigned long.
+ * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
+ and casts to fmt_size_t instead of "%ld" and casts to long.
+ * cfgexpand.cc (dump_stack_var_partition): Use
+ HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
+ and casts to unsigned long.
+ * gengtype.cc (adjust_field_rtx_def): Likewise.
+ * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
+ and casts to fmt_size_t instead of "%ld" and casts to long.
+ * postreload-gcse.cc (dump_hash_table): Likewise.
+ * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
+ and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
+ (ggc_internal_alloc, ggc_free): Likewise.
+ * genpreds.cc (write_lookup_constraint_1): Likewise.
+ (write_insn_constraint_len): Likewise.
+ * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
+ and casts to fmt_size_t instead of "%ld" and casts to long.
+ * varasm.cc (output_constant_pool_contents): Use
+ HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
+ * var-tracking.cc (dump_var): Likewise.
+
+2024-02-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113783
+ * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
+ through VIEW_CONVERT_EXPR for final cast checks. Handle
+ VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
+ INTEGER_TYPEs.
+ (gimple_lower_bitint): Don't merge mergeable operations or other
+ casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
+ * expr.cc (expand_expr_real_1): Don't use convert_modes if either
+ mode is BLKmode.
+
+2024-02-09 Jakub Jelinek <jakub@redhat.com>
+
+ * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
+ HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
+ HOST_SIZE_T_PRINT_HEX_PURE): Define.
+ * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting
+ fixes.
- * config/mips/mips.cc(mips_option_override): Set mips_abs to
- 2008, if mips_abs is default and mips_nan is 2008.
-
-2023-11-09 Florian Weimer <fweimer@redhat.com>
-
- * doc/invoke.texi (Warning Options): Document
- -Wreturn-mismatch. Update -Wreturn-type documentation.
-
-2023-11-09 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.md: Remove UNSPEC_VEC_ELTSWAP.
- * config/s390/vector.md (eltswapv16qi): New expander.
- (*eltswapv16qi): New insn and splitter.
- (eltswapv8hi): New insn and splitter.
- (eltswap<mode>): New insn and splitter for modes V_HW_4 as well
- as V_HW_2.
- * config/s390/vx-builtins.md (eltswap<mode>): Remove.
- (*eltswapv16qi): Remove.
- (*eltswap<mode>): Remove.
- (*eltswap<mode>_emu): Remove.
-
-2023-11-09 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.cc (expand_perm_with_rot): Remove.
- (expand_perm_reverse_elements): New.
- (expand_perm_with_vster): Remove.
- (expand_perm_with_vstbrq): Remove.
- (vectorize_vec_perm_const_1): Replace removed functions with new
- one.
-
-2023-11-09 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.cc (expand_perm_with_merge): Deal with cases
- where vmr{l,h} are still applicable if the operands are swapped.
- (expand_perm_with_vpdi): Likewise for vpdi.
-
-2023-11-09 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.md (VX_CONV_INT): Remove iterator.
- (gf): Add float mappings.
- (TOINT, toint): New attribute.
- (*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13):
- Remove.
- (*fixuns_trunc<mode><toint>2_z13): Add.
- (*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13):
- Remove.
- (*fix_trunc<mode><toint>2_bfp_z13): Add.
- (*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13): Remove.
- (*floatuns<toint><mode>2_z13): Add.
- * config/s390/vector.md (VX_VEC_CONV_INT): Remove iterator.
- (float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2): Remove.
- (float<tointvec><mode>2): Add.
- (floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2): Remove.
- (floatuns<tointvec><mode>2): Add.
- (fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2):
- Remove.
- (fix_trunc<mode><tointvec>2): Add.
- (fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2):
- Remove.
- (fixuns_trunc<VX_VEC_CONV_BFP:mode><tointvec>2): Add.
-
-2023-11-09 Jakub Jelinek <jakub@redhat.com>
-
- PR c/112339
- * attribs.cc (attribute_ignored_p): Only return true for
- attr_namespace_ignored_p if as is NULL.
- (decl_attributes): Never add ignored attributes.
-
-2023-11-09 Jin Ma <jinma@linux.alibaba.com>
-
- * config/riscv/bitmanip.md: Avoid the conflict between
- zbb and xtheadmemidx in patterns.
-
-2023-11-09 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Record
- to the correct simd_clone_info.
-
-2023-11-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-costs.cc (costs::preferred_new_lmul_p): Fix ICE.
-
-2023-11-09 Alexandre Oliva <oliva@adacore.com>
-
- * tree-cfg.cc (assign_discriminators): Handle debug stmts.
-
-2023-11-08 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/82524
- * config/i386/i386.md (*add<mode>_1_slp):
- Split insn only for unmatched operand 0.
- (*sub<mode>_1_slp): Ditto.
- (*<any_logic:code><mode>_1_slp): Merge pattern from "*and<mode>_1_slp"
- and "*<any_logic:code><mode>_1_slp" using any_logic code iterator.
- Split insn only for unmatched operand 0.
- (*neg<mode>1_slp): Split insn only for unmatched operand 0.
- (*one_cmpl<mode>_1_slp): Ditto.
- (*ashl<mode>3_1_slp): Ditto.
- (*<any_shiftrt:insn><mode>_1_slp): Ditto.
- (*<any_rotate:insn><mode>_1_slp): Ditto.
- (*addqi_ext<mode>_1): Redefine as define_insn_and_split. Add
- alternative 1 and split insn after reload for unmatched operand 0.
- (*<plusminus:insn>qi_ext<mode>_2): Merge pattern from
- "*addqi_ext<mode>_2" and "*subqi_ext<mode>_2" using plusminus code
- iterator. Redefine as define_insn_and_split. Add alternative 1
- and split insn after reload for unmatched operand 0.
- (*subqi_ext<mode>_1): Redefine as define_insn_and_split. Add
- alternative 1 and split insn after reload for unmatched operand 0.
- (*<any_logic:code>qi_ext<mode>_0): Merge pattern from
- "*andqi_ext<mode>_0" and and "*<any_logic:code>qi_ext<mode>_0" using
- any_logic code iterator.
- (*<any_logic:code>qi_ext<mode>_1): Merge pattern from
- "*andqi_ext<mode>_1" and "*<any_logic:code>qi_ext<mode>_1" using
- any_logic code iterator. Redefine as define_insn_and_split. Add
- alternative 1 and split insn after reload for unmatched operand 0.
- (*<any_logic:code>qi_ext<mode>_1_cc): Merge pattern from
- "*andqi_ext<mode>_1_cc" and "*xorqi_ext<mode>_1_cc" using any_logic
- code iterator. Redefine as define_insn_and_split. Add alternative 1
- and split insn after reload for unmatched operand 0.
- (*<any_logic:code>qi_ext<mode>_2): Merge pattern from
- "*andqi_ext<mode>_2" and "*<any_or:code>qi_ext<mode>_2" using
- any_logic code iterator. Redefine as define_insn_and_split. Add
- alternative 1 and split insn after reload for unmatched operand 0.
- (*<any_logic:code>qi_ext<mode>_3): Redefine as define_insn_and_split.
- Add alternative 1 and split insn after reload for unmatched operand 0.
- (*negqi_ext<mode>_1): Rename from "*negqi_ext<mode>_2". Add
- alternative 1 and split insn after reload for unmatched operand 0.
- (*one_cmplqi_ext<mode>_1): Ditto.
- (*ashlqi_ext<mode>_1): Ditto.
- (*<any_shiftrt:insn>qi_ext<mode>_1): Ditto.
-
-2023-11-08 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vectorizable_load): Adjust offset
- vector gathering for SLP of emulated gathers.
-
-2023-11-08 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (vect_slp_child_index_for_operand):
- Add gatherscatter_p argument.
- * tree-vect-slp.cc (vect_slp_child_index_for_operand): Likewise.
- Pass it on.
- * tree-vect-stmts.cc (vect_check_store_rhs): Turn the rhs
- argument into an output, also output the SLP node associated
- with it.
- (vectorizable_simd_clone_call): Adjust.
- (vectorizable_store): Likewise.
- (vectorizable_load): Likewise.
-
-2023-11-08 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vectorizable_load): Use the correct
- vectorized mask operand.
-
-2023-11-08 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/vector.md (*vsetvldi_no_side_effects_si_extend):
- New combine pattern.
+2024-02-09 Jakub Jelinek <jakub@redhat.com>
-2023-11-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+ PR middle-end/113415
+ * cfgexpand.cc (expand_asm_stmt): For asm goto, use
+ duplicate_insn_chain to duplicate after_rtl_seq sequence instead
+ of hand written loop with emit_insn of copy_insn and emit original
+ after_rtl_seq on the last edge.
- * config/riscv/riscv-vsetvl.cc: Fix ICE.
+2024-02-09 Jakub Jelinek <jakub@redhat.com>
-2023-11-08 xuli <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-c.cc (riscv_check_builtin_call): Eliminate warning.
+ PR tree-optimization/113818
+ * gimple-lower-bitint.cc (add_eh_edge): New function.
+ (bitint_large_huge::handle_load,
+ bitint_large_huge::lower_mergeable_stmt,
+ bitint_large_huge::lower_muldiv_stmt): Use it.
-2023-11-08 Hongyu Wang <hongyu.wang@intel.com>
-
- PR target/112394
- * config/i386/constraints.md (jc): New constraint that prohibits
- EGPR on -mno-avx.
- * config/i386/i386.md (*movdi_internal): Change r constraint
- corresponds to Yd.
- (*movti_internal): Likewise.
-
-2023-11-08 Florian Weimer <fweimer@redhat.com>
-
- * doc/invoke.texi (Warning Options): Mention C diagnostics
- for -fpermissive.
-
-2023-11-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/112092
- * config/riscv/riscv-vector-builtins-bases.cc: Normalize the vsetvls.
-
-2023-11-08 Haochen Jiang <haochen.jiang@intel.com>
-
- PR target/111907
- * config/i386/i386.md (avx_noavx512vl): New definition for isa
- attribute.
- * config/i386/sse.md (*andnot<mode>3): Change isa attribute from
- avx_noavx512f to avx_noavx512vl.
-
-2023-11-07 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Remove the size check of lfloor.
- * config/riscv/riscv-v.cc (expand_vec_lfloor): Leverage
- emit_vec_rounding_to_integer for floor.
-
-2023-11-07 Robin Dapp <rdapp@ventanamicro.com>
-
- PR tree-optimization/112361
- PR target/112359
- PR middle-end/112406
- * tree-if-conv.cc (convert_scalar_cond_reduction): Remember if
- loop was versioned and only then create COND_OPs.
- (predicate_scalar_phi): Do not create COND_OP when not
- vectorizing.
- * tree-vect-loop.cc (vect_expand_fold_left): Re-create
- VEC_COND_EXPR.
- (vectorize_fold_left_reduction): Pass mask to
- vect_expand_fold_left.
+2024-02-09 Jakub Jelinek <jakub@redhat.com>
-2023-11-07 Uros Bizjak <ubizjak@gmail.com>
+ PR tree-optimization/113774
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
+ emit any comparison if m_first and low + 1 is equal to
+ m_upwards_2limb, simplify condition for that. If not
+ single_comparison, not m_first and we can prove that the idx <= low
+ comparison will be always true, emit instead of idx <= low
+ comparison low <= low such that cfg cleanup will optimize it at
+ the end of the pass.
- * config/i386/predicates.md ("flags_reg_operand"):
- Make predicate special to avoid automatic mode checks.
+2024-02-08 Aldy Hernandez <aldyh@redhat.com>
-2023-11-07 Martin Jambor <mjambor@suse.cz>
+ PR tree-optimization/113735
+ * value-relation.cc (equiv_oracle::add_equiv_to_block): Call
+ limit_check().
- * configure: Regenerate.
+2024-02-08 Georg-Johann Lay <avr@gjlay.de>
-2023-11-07 Kwok Cheung Yeung <kcy@codesourcery.com>
-
- * lto-cgraph.cc (enum LTO_symtab_tags): Add tag for indirect
- functions.
- (output_offload_tables): Write indirect functions.
- (input_offload_tables): read indirect functions.
- * lto-section-names.h (OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): New.
- * omp-builtins.def (BUILT_IN_GOMP_TARGET_MAP_INDIRECT_PTR): New.
- * omp-offload.cc (offload_ind_funcs): New.
- (omp_discover_implicit_declare_target): Add functions marked with
- 'omp declare target indirect' to indirect functions list.
- (omp_finish_file): Add indirect functions to section for offload
- indirect functions.
- (execute_omp_device_lower): Redirect indirect calls on target by
- passing function pointer to BUILT_IN_GOMP_TARGET_MAP_INDIRECT_PTR.
- (pass_omp_device_lower::gate): Run pass_omp_device_lower if
- indirect functions are present on an accelerator device.
- * omp-offload.h (offload_ind_funcs): New.
- * tree-core.h (omp_clause_code): Add OMP_CLAUSE_INDIRECT.
- * tree.cc (omp_clause_num_ops): Add entry for OMP_CLAUSE_INDIRECT.
- (omp_clause_code_name): Likewise.
- * tree.h (OMP_CLAUSE_INDIRECT_EXPR): New.
- * config/gcn/mkoffload.cc (process_asm): Process offload_ind_funcs
- section. Count number of indirect functions.
- (process_obj): Emit number of indirect functions.
- * config/nvptx/mkoffload.cc (ind_func_ids, ind_funcs_tail): New.
- (process): Emit offload_ind_func_table in PTX code. Emit indirect
- function names and count in image.
- * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Mark
- indirect functions in PTX code with IND_FUNC_MAP.
-
-2023-11-07 Tobias Burnus <tobias@codesourcery.com>
-
- * doc/invoke.texi (-fopenmp, -fopenmp-simd): Adjust wording for
- attribute syntax supported also in C.
-
-2023-11-07 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_print_operand): Add a %Z
- modifier for SVE registers.
-
-2023-11-07 Joseph Myers <joseph@codesourcery.com>
-
- * builtins.def (DEF_C2X_BUILTIN): Rename to DEF_C23_BUILTIN and
- use flag_isoc23 and function_c23_misc.
- * config/rl78/rl78.cc (rl78_option_override): Compare
- lang_hooks.name with "GNU C23" not "GNU C2X".
- * coretypes.h (function_c2x_misc): Rename to function_c23_misc.
- * doc/cpp.texi (@code{__has_attribute}): Refer to C23 instead of
- C2x.
- * doc/extend.texi: Likewise.
- * doc/invoke.texi: Likewise.
- * dwarf2out.cc (highest_c_language, gen_compile_unit_die): Compare
- against and return "GNU C23" language string instead of "GNU C2X".
- * ginclude/float.h: Refer to C23 instead of C2X in comments.
- * ginclude/stdint-gcc.h: Likewise.
- * glimits.h: Likewise.
- * tree.h: Likewise.
-
-2023-11-07 Alexandre Oliva <oliva@adacore.com>
-
- * doc/sourcebuild.texi (opt_mstrict_align): New target.
-
-2023-11-07 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_len_<optab><v_double_trunc><mode>):
- New combine pattern.
- (*cond_len_<optab><v_quad_trunc><mode>): Ditto.
- (*cond_len_<optab><v_oct_trunc><mode>): Ditto.
- (*cond_len_extend<v_double_trunc><mode>): Ditto.
- (*cond_len_widen_reduc_plus_scal_<mode>): Ditto.
-
-2023-11-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/112399
- * config/riscv/riscv-avlprop.cc
- (pass_avlprop::get_vlmax_ta_preferred_avl): Enhance AVL propagation.
- * config/riscv/t-riscv: Add new include.
-
-2023-11-07 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Remove the size check of lceil.l
- * config/riscv/riscv-v.cc (expand_vec_lceil): Leverage
- emit_vec_rounding_to_integer for ceil.
-
-2023-11-06 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.cc (pa_asm_trampoline_template): Fix typo.
-
-2023-11-06 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 1.
-
-2023-11-06 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.cc (class colorizer): Take just a
- pretty_printer rather than a diagnostic_context.
- (layout::layout): Make context param a const reference,
- and pretty_printer param non-optional.
- (layout::m_context): Drop field.
- (layout::m_options): New field.
- (layout::m_colorize_source_p): Drop field.
- (layout::m_show_labels_p): Drop field.
- (layout::m_show_line_numbers_p): Drop field.
- (layout::print_gap_in_line_numbering): Use m_options.
- (layout::calculate_line_spans): Likewise.
- (layout::calculate_linenum_width): Likewise.
- (layout::calculate_x_offset_display): Likewise.
- (layout::print_source_line): Likewise.
- (layout::start_annotation_line): Likewise.
- (layout::print_annotation_line): Likewise.
- (layout::print_line): Likewise.
- (gcc_rich_location::add_location_if_nearby): Update for changes to
- layout ctor.
- (diagnostic_show_locus): Likewise.
- (selftest::test_offset_impl): Likewise.
- (selftest::test_layout_x_offset_display_utf8): Likewise.
- (selftest::test_layout_x_offset_display_tab): Likewise.
- (selftest::test_tab_expansion): Likewise.
- * diagnostic.h (diagnostic_context::m_source_printing): Move
- declaration of struct outside diagnostic_context as...
- (struct diagnostic_source_printing_options)... this.
-
-2023-11-06 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_context::push_diagnostics): Convert
- to...
- (diagnostic_option_classifier::push): ...this.
- (diagnostic_context::pop_diagnostics): Convert to...
- (diagnostic_option_classifier::pop): ...this.
- (diagnostic_context::initialize): Move code to...
- (diagnostic_option_classifier::init): ...this new function.
- (diagnostic_context::finish): Move code to...
- (diagnostic_option_classifier::fini): ...this new function.
- (diagnostic_context::classify_diagnostic): Convert to...
- (diagnostic_option_classifier::classify_diagnostic): ...this.
- (diagnostic_context::update_effective_level_from_pragmas): Convert
- to...
- (diagnostic_option_classifier::update_effective_level_from_pragmas):
- ...this.
- (diagnostic_context::diagnostic_enabled): Update for refactoring.
- * diagnostic.h (struct diagnostic_classification_change_t): Move into...
- (class diagnostic_option_classifier): ...this new class.
- (diagnostic_context::option_unspecified_p): Update for move of
- fields into m_option_classifier.
- (diagnostic_context::classify_diagnostic): Likewise.
- (diagnostic_context::push_diagnostics): Likewise.
- (diagnostic_context::pop_diagnostics): Likewise.
- (diagnostic_context::update_effective_level_from_pragmas): Delete.
- (diagnostic_context::m_classify_diagnostic): Move into class
- diagnostic_option_classifier.
- (diagnostic_context::m_option_classifier): Likewise.
- (diagnostic_context::m_classification_history): Likewise.
- (diagnostic_context::m_n_classification_history): Likewise.
- (diagnostic_context::m_push_list): Likewise.
- (diagnostic_context::m_n_push): Likewise.
- (diagnostic_context::m_option_classifier): New.
-
-2023-11-06 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_context::set_urlifier): New.
- * diagnostic.h (diagnostic_context::set_urlifier): New decl.
- (diagnostic_context::m_urlifier): Make private.
- * gcc.cc (driver::global_initializations): Use set_urlifier rather
- than directly setting field.
- * toplev.cc (general_init): Likewise.
-
-2023-11-06 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_context::check_max_errors): Replace
- uses of diagnostic_kind_count with simple field acesss.
- (diagnostic_context::report_diagnostic): Likewise.
- (diagnostic_text_output_format::~diagnostic_text_output_format):
- Replace use of diagnostic_kind_count with
- diagnostic_context::diagnostic_count.
- * diagnostic.h (diagnostic_kind_count): Delete.
- (errorcount): Replace use of diagnostic_kind_count with
- diagnostic_context::diagnostic_count.
- (warningcount): Likewise.
- (werrorcount): Likewise.
- (sorrycount): Likewise.
-
-2023-11-06 Christophe Lyon <christophe.lyon@linaro.org>
-
- * doc/sourcebuild.texi (Other attributes): Document thread_fence
- effective-target.
-
-2023-11-06 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/constraints.md (Bc): Remove constraint.
- (Bn): Rewrite to use x86_extended_reg_mentioned_p predicate.
- * config/i386/i386.cc (ix86_memory_address_reg_class):
- Do not limit processing to TARGET_APX_EGPR. Exit early for
- NULL insn. Do not check recog_data.insn before calling
- extract_insn_cached.
- (ix86_insn_base_reg_class): Handle ADDR_GPR8.
- (ix86_regno_ok_for_insn_base_p): Ditto.
- (ix86_insn_index_reg_class): Ditto.
- * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64):
- Remove insn pattern and corresponding peephole2 pattern.
- (*cmpi_ext<mode>_1): Remove (m,Q) alternative.
- Change (QBc,Q) alternative to (QBn,Q). Add "addr" attribute.
- (*cmpqi_ext<mode>_3_mem_rex64): Remove insn pattern
- and corresponding peephole2 pattern.
- (*cmpi_ext<mode>_3): Remove (Q,m) alternative.
- Change (Q,QnBc) alternative to (Q,QnBn). Add "addr" attribute.
- (*extzvqi_mem_rex64): Remove insn pattern and
- corresponding peephole2 pattern.
- (*extzvqi): Remove (Q,m) alternative. Change (Q,QnBc)
- alternative to (Q,QnBn). Add "addr" attribute.
- (*insvqi_1_mem_rex64): Remove insn pattern and
- corresponding peephole2 pattern.
- (*insvqi_1): Remove (Q,m) alternative. Change (Q,QnBc)
- alternative to (Q,QnBn). Add "addr" attribute.
- (@insv<mode>_1): Ditto.
- (*addqi_ext<mode>_0): Remove (m,0,Q) alternative. Change (QBc,0,Q)
- alternative to (QBn,0,Q). Add "addr" attribute.
- (*subqi_ext<mode>_0): Ditto.
- (*andqi_ext<mode>_0): Ditto.
- (*<any_or:code>qi_ext<mode>_0): Ditto.
- (*addqi_ext<mode>_1): Remove (Q,0,m) alternative. Change (Q,0,QnBc)
- alternative to (Q,0,QnBn). Add "addr" attribute.
- (*andqi_ext<mode>_1): Ditto.
- (*andqi_ext<mode>_1_cc): Ditto.
- (*<any_or:code>qi_ext<mode>_1): Ditto.
- (*xorqi_ext<mode>_1_cc): Ditto.
- * config/i386/predicates.md (nonimm_x64constmem_operand):
- Remove predicate.
- (general_x64constmem_operand): Ditto.
- (norex_memory_operand): Ditto.
-
-2023-11-06 Joseph Myers <joseph@codesourcery.com>
-
- PR c/107954
- * doc/cpp.texi (__STDC_VERSION__): Refer to -std=c23 and
- -std=gnu23 instead of -std=c2x and -std=gnu2x.
- * doc/extend.texi (Attribute Syntax): Refer to C23 and -std=c23
- instead of C2x and -std=c2x.
- * doc/invoke.texi (-Wc11-c23-compat, -std=c23, -std=gnu23)
- (-std=iso9899:2024): Document, with -Wc11-c2x-compat, -std=c2x and
- -std=gnu2x as deprecated aliases. Update descriptions of C23.
- * doc/standards.texi (Standards): Describe C23 with C2X as an old
- name.
-
-2023-11-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * config/nvptx/nvptx.h (MAKE_DECL_ONE_ONLY): Define.
-
-2023-11-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112405
- * tree-vect-stmts.cc (vectorizable_simd_clone_call):
- Properly handle invariant and/or loop mask passing.
-
-2023-11-06 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Remove the size check of lround.
- * config/riscv/riscv-v.cc (expand_vec_lround): Leverage
- emit_vec_rounding_to_integer for round.
-
-2023-11-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/predicates.md: Adapt predicate.
- * config/riscv/riscv-protos.h (can_be_broadcasted_p): New function.
- * config/riscv/riscv-v.cc (can_be_broadcasted_p): Ditto.
- * config/riscv/vector.md (vec_duplicate<mode>): New pattern.
- (*vec_duplicate<mode>): Adapt vec_duplicate insn pattern.
-
-2023-11-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111950
- * tree-vect-loop-manip.cc (slpeel_duplicate_current_defs_from_edges):
- Remove.
- (find_guard_arg): Likewise.
- (slpeel_update_phi_nodes_for_guard2): Likewise.
- (slpeel_tree_duplicate_loop_to_edge_cfg): Remove calls to
- slpeel_duplicate_current_defs_from_edges, do not elide
- LC-PHIs for invariant values.
- (vect_do_peeling): Materialize PHI arguments for the edge
- around the epilog from the PHI defs of the main loop exit.
-
-2023-11-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112404
- * tree-vectorizer.h (get_mask_type_for_scalar_type): Declare
- overload with SLP node argument.
- * tree-vect-stmts.cc (get_mask_type_for_scalar_type): Implement it.
- (vect_check_scalar_mask): Use it.
- * tree-vect-slp.cc (vect_gather_slp_loads): Properly identify
- loads also for nodes with children, like .MASK_LOAD.
- * tree-vect-loop.cc (vect_analyze_loop_2): Look at the
- representative for load nodes and check whether it is a grouped
- access before looking for load-lanes support.
-
-2023-11-06 Robin Dapp <rdapp@ventanamicro.com>
-
- PR tree-optimization/111760
- * config/riscv/autovec.md (vcond_mask_len_<mode><vm>): Add
- expander.
- * config/riscv/riscv-protos.h (enum insn_type): Add.
- * config/riscv/riscv-v.cc (needs_fp_rounding): Add !pred_mov.
- * doc/md.texi: Add vcond_mask_len.
- * gimple-match-exports.cc (maybe_resimplify_conditional_op):
- Create VCOND_MASK_LEN when length masking.
- * gimple-match.h (gimple_match_op::gimple_match_op): Always
- initialize len and bias.
- * internal-fn.cc (vec_cond_mask_len_direct): Add.
- (direct_vec_cond_mask_len_optab_supported_p): Add.
- (internal_fn_len_index): Add VCOND_MASK_LEN.
- (internal_fn_mask_index): Ditto.
- * internal-fn.def (VCOND_MASK_LEN): New internal function.
- * match.pd: Combine unconditional unary, binary and ternary
- operations into the respective COND_LEN operations.
- * optabs.def (OPTAB_D): Add vcond_mask_len optab.
-
-2023-11-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * explow.cc (align_dynamic_address): Do nothing if the required
- alignment is a byte.
-
-2023-11-06 Richard Sandiford <richard.sandiford@arm.com>
-
- * function.h (get_stack_dynamic_offset): Declare.
- * function.cc (get_stack_dynamic_offset): New function,
- split out from...
- (get_stack_dynamic_offset): ...here.
- * explow.cc (allocate_dynamic_stack_space): Handle calls made
- after virtual registers have been instantiated.
-
-2023-11-06 liuhongt <hongtao.liu@intel.com>
-
- PR target/112393
- * config/i386/i386-expand.cc (ix86_expand_vec_perm_vpermt2):
- Avoid generating RTL code when d->testing_p.
-
-2023-11-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112369
- * tree.cc (strip_float_extensions): Use element_precision.
-
-2023-11-06 Richard Biener <rguenther@suse.de>
-
- PR middle-end/112296
- * doc/extend.texi (__builtin_constant_p): Clarify that
- side-effects are discarded.
-
-2023-11-06 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/111828
- * config.in: Regenerate.
- * config/rs6000/rs6000.cc (rs6000_update_ipa_fn_target_info): Guard
- inline asm handling under !HAVE_AS_POWER10_HTM.
- * configure: Regenerate.
- * configure.ac: Detect assembler support for HTM insns at power10.
-
-2023-11-06 xuli <xuli1@eswincomputing.com>
- Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): New function for the hook.
- (riscv_register_pragmas): Register the hook.
- * config/riscv/riscv-protos.h (resolve_overloaded_builtin): New decl.
- * config/riscv/riscv-vector-builtins-bases.cc: New function impl.
- * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Register overloaded function.
- * config/riscv/riscv-vector-builtins.cc (struct non_overloaded_registered_function_hasher):
- New hash table.
- (function_builder::add_function): Add overloaded arg.
- (function_builder::add_unique_function): Map overloaded function to non-overloaded function.
- (function_builder::add_overloaded_function): New API impl.
- (registered_function::overloaded_hash): Calculate hash value.
- (has_vxrm_or_frm_p): New function impl.
- (non_overloaded_registered_function_hasher::hash): Ditto.
- (non_overloaded_registered_function_hasher::equal): Ditto.
- (handle_pragma_vector): Allocate space for hash table.
- (resolve_overloaded_builtin): New function impl.
- * config/riscv/riscv-vector-builtins.h (function_base::may_require_frm_p): Ditto.
- (function_base::may_require_vxrm_p): Ditto.
-
-2023-11-06 Haochen Jiang <haochen.jiang@intel.com>
-
- PR target/111889
- * config/i386/avx512bf16intrin.h: Push no-evex512 target.
- * config/i386/avx512bf16vlintrin.h: Ditto.
- * config/i386/avx512bitalgvlintrin.h: Ditto.
- * config/i386/avx512bwintrin.h: Ditto.
- * config/i386/avx512dqintrin.h: Ditto.
- * config/i386/avx512fintrin.h: Ditto.
- * config/i386/avx512fp16intrin.h: Ditto.
- * config/i386/avx512fp16vlintrin.h: Ditto.
- * config/i386/avx512ifmavlintrin.h: Ditto.
- * config/i386/avx512vbmi2vlintrin.h: Ditto.
- * config/i386/avx512vbmivlintrin.h: Ditto.
- * config/i386/avx512vlbwintrin.h: Ditto.
- * config/i386/avx512vldqintrin.h: Ditto.
- * config/i386/avx512vlintrin.h: Ditto.
- * config/i386/avx512vnnivlintrin.h: Ditto.
- * config/i386/avx512vp2intersectvlintrin.h: Ditto.
- * config/i386/avx512vpopcntdqvlintrin.h: Ditto.
-
-2023-11-06 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512bf16vlintrin.h
- (_mm_avx512_castsi128_ps): New.
- (_mm256_avx512_castsi256_ps): Ditto.
- (_mm_avx512_slli_epi32): Ditto.
- (_mm256_avx512_slli_epi32): Ditto.
- (_mm_avx512_cvtepi16_epi32): Ditto.
- (_mm256_avx512_cvtepi16_epi32): Ditto.
- (__attribute__): Change intrin call.
- * config/i386/avx512bwintrin.h
- (_mm_avx512_set_epi32): New.
- (_mm_avx512_set_epi16): Ditto.
- (_mm_avx512_set_epi8): Ditto.
- (__attribute__): Change intrin call.
- * config/i386/avx512fp16intrin.h: Ditto.
- * config/i386/avx512fp16vlintrin.h
- (_mm_avx512_set1_ps): New.
- (_mm256_avx512_set1_ps): Ditto.
- (_mm_avx512_and_si128): Ditto.
- (_mm256_avx512_and_si256): Ditto.
- (__attribute__): Change intrin call.
- * config/i386/avx512vlbwintrin.h
- (_mm_avx512_set1_epi32): New.
- (_mm_avx512_set1_epi16): Ditto.
- (_mm_avx512_set1_epi8): Ditto.
- (_mm256_avx512_set_epi16): Ditto.
- (_mm256_avx512_set_epi8): Ditto.
- (_mm256_avx512_set1_epi16): Ditto.
- (_mm256_avx512_set1_epi32): Ditto.
- (_mm256_avx512_set1_epi8): Ditto.
- (_mm_avx512_max_epi16): Ditto.
- (_mm_avx512_min_epi16): Ditto.
- (_mm_avx512_max_epu16): Ditto.
- (_mm_avx512_min_epu16): Ditto.
- (_mm_avx512_max_epi8): Ditto.
- (_mm_avx512_min_epi8): Ditto.
- (_mm_avx512_max_epu8): Ditto.
- (_mm_avx512_min_epu8): Ditto.
- (_mm256_avx512_max_epi16): Ditto.
- (_mm256_avx512_min_epi16): Ditto.
- (_mm256_avx512_max_epu16): Ditto.
- (_mm256_avx512_min_epu16): Ditto.
- (_mm256_avx512_insertf128_ps): Ditto.
- (_mm256_avx512_extractf128_pd): Ditto.
- (_mm256_avx512_extracti128_si256): Ditto.
- (_MM256_AVX512_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
- (_MM256_AVX512_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
- (_MM256_AVX512_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
- (_MM256_AVX512_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
- (__attribute__): Change intrin call.
-
-2023-11-06 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512bf16vlintrin.h: Change intrin call.
- * config/i386/avx512fintrin.h
- (_mm_avx512_undefined_ps): New.
- (_mm_avx512_undefined_pd): Ditto.
- (__attribute__): Change intrin call.
- * config/i386/avx512vbmivlintrin.h: Ditto.
- * config/i386/avx512vlbwintrin.h: Ditto.
- * config/i386/avx512vldqintrin.h: Ditto.
- * config/i386/avx512vlintrin.h
- (_mm_avx512_undefined_si128): New.
- (_mm256_avx512_undefined_ps): Ditto.
- (_mm256_avx512_undefined_pd): Ditto.
- (_mm256_avx512_undefined_si256): Ditto.
- (__attribute__): Change intrin call.
-
-2023-11-06 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512bitalgvlintrin.h: Change intrin call.
- * config/i386/avx512dqintrin.h: Ditto.
- * config/i386/avx512fintrin.h:
- (_mm_avx512_setzero_ps): New.
- (_mm_avx512_setzero_pd): Ditto.
- (__attribute__): Change intrin call.
- * config/i386/avx512fp16intrin.h: Ditto.
- * config/i386/avx512fp16vlintrin.h: Ditto.
- * config/i386/avx512vbmi2vlintrin.h: Ditto.
- * config/i386/avx512vbmivlintrin.h: Ditto.
- * config/i386/avx512vlbwintrin.h: Ditto.
- * config/i386/avx512vldqintrin.h: Ditto.
- * config/i386/avx512vlintrin.h
- (_mm_avx512_setzero_si128): New.
- (_mm256_avx512_setzero_pd): Ditto.
- (_mm256_avx512_setzero_ps): Ditto.
- (_mm256_avx512_setzero_si256): Ditto.
- (__attribute__): Change intrin call.
- * config/i386/avx512vpopcntdqvlintrin.h: Ditto.
- * config/i386/gfniintrin.h: Ditto.
-
-2023-11-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.h (enum reg_class): Add LEGACY_INDEX_REGS.
- Rename LEGACY_REGS to LEGACY_GENERAL_REGS.
- (REG_CLASS_NAMES): Ditto.
- (REG_CLASS_CONTENTS): Ditto.
- * config/i386/constraints.md ("R"): Update for rename.
-
-2023-11-05 Richard Sandiford <richard.sandiford@arm.com>
-
- * mode-switching.cc: Remove unused forward references.
- (seginfo): Remove bbnum.
- (new_seginfo): Remove associated argument.
- (optimize_mode_switching): Update calls accordingly.
-
-2023-11-05 Richard Sandiford <richard.sandiford@arm.com>
-
- * read-rtl.cc (read_rtx_operand): Avoid spinning endlessly for
- invalid [...] operands.
-
-2023-11-05 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/112105
- * config/aarch64/aarch64.cc (aarch64_modes_compatible_p): New
- function, with the core logic extracted from...
- (aarch64_can_change_mode_class): ...here. Extend the previous rules
- to allow changes between partial SVE modes and other modes if
- the other mode is no bigger than an element, and if no other rule
- prevents it. Use the aarch64_modes_tieable_p handling of
- partial Advanced SIMD structure modes.
- (aarch64_modes_tieable_p): Use aarch64_modes_compatible_p.
- Allow all vector mode ties that it allows.
-
-2023-11-05 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Remove the size check of lrint.
- * config/riscv/riscv-v.cc (emit_vec_narrow_cvt_x_f): New help
- emit func impl.
- (emit_vec_widden_cvt_x_f): New help emit func impl.
- (emit_vec_rounding_to_integer): New func impl to emit the
- rounding from FP to integer.
- (expand_vec_lrint): Leverage emit_vec_rounding_to_integer.
- * config/riscv/vector.md: Take V_VLSF for vfncvt.
-
-2023-11-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix bug.
-
-2023-11-04 Sergei Trofimovich <siarheit@google.com>
-
- PR bootstrap/112379
- * gcc-urlifier.cc (get_url_suffix_for_quoted_text): Mark as
- ATTRIBUTE_UNUSED.
-
-2023-11-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector-iterators.md: Remove HF modes.
-
-2023-11-04 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc: Include "pretty-print-urlifier.h".
- (diagnostic_context::initialize): Initialize m_urlifier.
- (diagnostic_context::finish): Clean up m_urlifier
- (diagnostic_report::diagnostic): m_urlifier to pp_format.
- * diagnostic.h (diagnostic_context::m_urlifier): New field.
- * gcc-urlifier.cc: New file.
- * gcc-urlifier.def: New file.
- * gcc-urlifier.h: New file.
- * gcc.cc: Include "gcc-urlifier.h".
- (driver::global_initializations): Initialize global_dc->m_urlifier.
- * pretty-print-urlifier.h: New file.
- * pretty-print.cc: Include "pretty-print-urlifier.h".
- (obstack_append_string): New.
- (urlify_quoted_string): New.
- (pp_format): Add "urlifier" param and use it to implement optional
- urlification of quoted text strings.
- (pp_output_formatted_text): Make buffer a const pointer.
- (selftest::pp_printf_with_urlifier): New.
- (selftest::test_urlification): New.
- (selftest::pretty_print_cc_tests): Call it.
- * pretty-print.h (class urlifier): New forward declaration.
- (pp_format): Add optional urlifier param.
- * selftest-run-tests.cc (selftest::run_tests): Call
- selftest::gcc_urlifier_cc_tests .
- * selftest.h (selftest::gcc_urlifier_cc_tests): New decl.
- * toplev.cc: Include "gcc-urlifier.h".
- (general_init): Initialize global_dc->m_urlifier.
-
-2023-11-04 David Malcolm <dmalcolm@redhat.com>
-
- * Makefile.in (GCC_OBJS): Add gcc-urlifier.o.
- (OBJS): Likewise.
+ * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
+ (main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
-2023-11-04 David Malcolm <dmalcolm@redhat.com>
-
- * common.opt (fdiagnostics-text-art-charset=): Remove refererence
- to diagnostic-text-art.h.
- * coretypes.h (struct diagnostic_context): Replace forward decl
- with...
- (class diagnostic_context): ...this.
- * diagnostic-format-json.cc: Update for changes to
- diagnostic_context.
- * diagnostic-format-sarif.cc: Likewise.
- * diagnostic-show-locus.cc: Likewise.
- * diagnostic-text-art.h: Deleted file, moving content...
- (enum diagnostic_text_art_charset): ...to diagnostic.h,
- (DIAGNOSTICS_TEXT_ART_CHARSET_DEFAULT): ...deleting,
- (diagnostics_text_art_charset_init): ...deleting in favor of
- diagnostic_context::set_text_art_charset.
- * diagnostic.cc: Remove include of "diagnostic-text-art.h".
- (pedantic_warning_kind): Update for field renaming.
- (permissive_error_kind): Likewise.
- (permissive_error_option): Likewise.
- (diagnostic_initialize): Convert to...
- (diagnostic_context::initialize): ...this, updating for field
- renamings.
- (diagnostic_color_init): Convert to...
- (diagnostic_context::color_init): ...this.
- (diagnostic_urls_init): Convert to...
- (diagnostic_context::urls_init): ...this.
- (diagnostic_initialize_input_context): Convert to...
- (diagnostic_context::initialize_input_context): ...this.
- (diagnostic_finish): Convert to...
- (diagnostic_context::finish): ...this, updating for field
- renamings.
- (diagnostic_context::set_output_format): New.
- (diagnostic_context::set_client_data_hooks): New.
- (diagnostic_context::create_edit_context): New.
- (diagnostic_converted_column): Convert to...
- (diagnostic_context::converted_column): ...this.
- (diagnostic_get_location_text): Update for field renaming.
- (diagnostic_check_max_errors): Convert to...
- (diagnostic_context::check_max_errors): ...this, updating for
- field renamings.
- (diagnostic_action_after_output): Convert to...
- (diagnostic_context::action_after_output): ...this, updating for
- field renamings.
- (last_module_changed_p): Delete.
- (set_last_module): Delete.
- (includes_seen): Convert to...
- (diagnostic_context::includes_seen_p): ...this, updating for field
- renamings.
- (diagnostic_report_current_module): Convert to...
- (diagnostic_context::report_current_module): ...this, updating for
- field renamings, and replacing uses of last_module_changed_p and
- set_last_module to simple field accesses.
- (diagnostic_show_any_path): Convert to...
- (diagnostic_context::show_any_path): ...this.
- (diagnostic_classify_diagnostic): Convert to...
- (diagnostic_context::classify_diagnostic): ...this, updating for
- field renamings.
- (diagnostic_push_diagnostics): Convert to...
- (diagnostic_context::push_diagnostics): ...this, updating for field
- renamings.
- (diagnostic_pop_diagnostics): Convert to...
- (diagnostic_context::pop_diagnostics): ...this, updating for field
- renamings.
- (get_any_inlining_info): Convert to...
- (diagnostic_context::get_any_inlining_info): ...this, updating for
- field renamings.
- (update_effective_level_from_pragmas): Convert to...
- (diagnostic_context::update_effective_level_from_pragmas):
- ...this, updating for field renamings.
- (print_any_cwe): Convert to...
- (diagnostic_context::print_any_cwe): ...this.
- (print_any_rules): Convert to...
- (diagnostic_context::print_any_rules): ...this.
- (print_option_information): Convert to...
- (diagnostic_context::print_option_information): ...this, updating
- for field renamings.
- (diagnostic_enabled): Convert to...
- (diagnostic_context::diagnostic_enabled): ...this, updating for
- field renamings.
- (warning_enabled_at): Convert to...
- (diagnostic_context::warning_enabled_at): ...this.
- (diagnostic_report_diagnostic): Convert to...
- (diagnostic_context::report_diagnostic): ...this, updating for
- field renamings and conversions to member functions.
- (diagnostic_append_note): Update for field renaming.
- (diagnostic_impl): Use diagnostic_context::report_diagnostic
- directly.
- (diagnostic_n_impl): Likewise.
- (diagnostic_emit_diagram): Convert to...
- (diagnostic_context::emit_diagram): ...this, updating for field
- renamings.
- (error_recursion): Convert to...
- (diagnostic_context::error_recursion): ...this.
- (diagnostic_text_output_format::~diagnostic_text_output_format):
- Use accessor.
- (diagnostics_text_art_charset_init): Convert to...
- (diagnostic_context::set_text_art_charset): ...this.
- (assert_location_text): Update for field renamings.
- * diagnostic.h (enum diagnostic_text_art_charset): Move here from
- diagnostic-text-art.h.
- (struct diagnostic_context): Convert to...
- (class diagnostic_context): ...this.
- (diagnostic_context::ice_handler_callback_t): New typedef.
- (diagnostic_context::set_locations_callback_t): New typedef.
- (diagnostic_context::initialize): New decl.
- (diagnostic_context::color_init): New decl.
- (diagnostic_context::urls_init): New decl.
- (diagnostic_context::file_cache_init): New decl.
- (diagnostic_context::finish): New decl.
- (diagnostic_context::set_set_locations_callback): New.
- (diagnostic_context::initialize_input_context): New decl.
- (diagnostic_context::warning_enabled_at): New decl.
- (diagnostic_context::option_unspecified_p): New.
- (diagnostic_context::report_diagnostic): New decl.
- (diagnostic_context::report_current_module): New decl.
- (diagnostic_context::check_max_errors): New decl.
- (diagnostic_context::action_after_output): New decl.
- (diagnostic_context::classify_diagnostic): New decl.
- (diagnostic_context::push_diagnostics): New decl.
- (diagnostic_context::pop_diagnostics): New decl.
- (diagnostic_context::emit_diagram): New decl.
- (diagnostic_context::set_output_format): New decl.
- (diagnostic_context::set_text_art_charset): New decl.
- (diagnostic_context::set_client_data_hooks): New decl.
- (diagnostic_context::create_edit_context): New decl.
- (diagnostic_context::set_warning_as_error_requested): New.
- (diagnostic_context::set_report_bug): New.
- (diagnostic_context::set_extra_output_kind): New.
- (diagnostic_context::set_show_cwe): New.
- (diagnostic_context::set_show_rules): New.
- (diagnostic_context::set_path_format): New.
- (diagnostic_context::set_show_path_depths): New.
- (diagnostic_context::set_show_option_requested): New.
- (diagnostic_context::set_max_errors): New.
- (diagnostic_context::set_escape_format): New.
- (diagnostic_context::set_ice_handler_callback): New.
- (diagnostic_context::warning_as_error_requested_p): New.
- (diagnostic_context::show_path_depths_p): New.
- (diagnostic_context::get_path_format): New.
- (diagnostic_context::get_escape_format): New.
- (diagnostic_context::get_file_cache): New.
- (diagnostic_context::get_edit_context): New.
- (diagnostic_context::get_client_data_hooks): New.
- (diagnostic_context::get_diagram_theme): New.
- (diagnostic_context::converted_column): New decl.
- (diagnostic_context::diagnostic_count): New.
- (diagnostic_context::includes_seen_p): New decl.
- (diagnostic_context::print_any_cwe): New decl.
- (diagnostic_context::print_any_rules): New decl.
- (diagnostic_context::print_option_information): New decl.
- (diagnostic_context::show_any_path): New decl.
- (diagnostic_context::error_recursion): New decl.
- (diagnostic_context::diagnostic_enabled): New decl.
- (diagnostic_context::get_any_inlining_info): New decl.
- (diagnostic_context::update_effective_level_from_pragmas): New
- decl.
- (diagnostic_context::m_file_cache): Make private.
- (diagnostic_context::diagnostic_count): Rename to...
- (diagnostic_context::m_diagnostic_count): ...this and make
- private.
- (diagnostic_context::warning_as_error_requested): Rename to...
- (diagnostic_context::m_warning_as_error_requested): ...this and
- make private.
- (diagnostic_context::n_opts): Rename to...
- (diagnostic_context::m_n_opts): ...this and make private.
- (diagnostic_context::classify_diagnostic): Rename to...
- (diagnostic_context::m_classify_diagnostic): ...this and make
- private.
- (diagnostic_context::classification_history): Rename to...
- (diagnostic_context::m_classification_history): ...this and make
- private.
- (diagnostic_context::n_classification_history): Rename to...
- (diagnostic_context::m_n_classification_history): ...this and make
- private.
- (diagnostic_context::push_list): Rename to...
- (diagnostic_context::m_push_list): ...this and make private.
- (diagnostic_context::n_push): Rename to...
- (diagnostic_context::m_n_push): ...this and make private.
- (diagnostic_context::show_cwe): Rename to...
- (diagnostic_context::m_show_cwe): ...this and make private.
- (diagnostic_context::show_rules): Rename to...
- (diagnostic_context::m_show_rules): ...this and make private.
- (diagnostic_context::path_format): Rename to...
- (diagnostic_context::m_path_format): ...this and make private.
- (diagnostic_context::show_path_depths): Rename to...
- (diagnostic_context::m_show_path_depths): ...this and make
- private.
- (diagnostic_context::show_option_requested): Rename to...
- (diagnostic_context::m_show_option_requested): ...this and make
- private.
- (diagnostic_context::abort_on_error): Rename to...
- (diagnostic_context::m_abort_on_error): ...this.
- (diagnostic_context::show_column): Rename to...
- (diagnostic_context::m_show_column): ...this.
- (diagnostic_context::pedantic_errors): Rename to...
- (diagnostic_context::m_pedantic_errors): ...this.
- (diagnostic_context::permissive): Rename to...
- (diagnostic_context::m_permissive): ...this.
- (diagnostic_context::opt_permissive): Rename to...
- (diagnostic_context::m_opt_permissive): ...this.
- (diagnostic_context::fatal_errors): Rename to...
- (diagnostic_context::m_fatal_errors): ...this.
- (diagnostic_context::dc_inhibit_warnings): Rename to...
- (diagnostic_context::m_inhibit_warnings): ...this.
- (diagnostic_context::dc_warn_system_headers): Rename to...
- (diagnostic_context::m_warn_system_headers): ...this.
- (diagnostic_context::max_errors): Rename to...
- (diagnostic_context::m_max_errors): ...this and make private.
- (diagnostic_context::internal_error): Rename to...
- (diagnostic_context::m_internal_error): ...this.
- (diagnostic_context::option_enabled): Rename to...
- (diagnostic_context::m_option_enabled): ...this.
- (diagnostic_context::option_state): Rename to...
- (diagnostic_context::m_option_state): ...this.
- (diagnostic_context::option_name): Rename to...
- (diagnostic_context::m_option_name): ...this.
- (diagnostic_context::get_option_url): Rename to...
- (diagnostic_context::m_get_option_url): ...this.
- (diagnostic_context::print_path): Rename to...
- (diagnostic_context::m_print_path): ...this.
- (diagnostic_context::make_json_for_path): Rename to...
- (diagnostic_context::m_make_json_for_path): ...this.
- (diagnostic_context::x_data): Rename to...
- (diagnostic_context::m_client_aux_data): ...this.
- (diagnostic_context::last_location): Rename to...
- (diagnostic_context::m_last_location): ...this.
- (diagnostic_context::last_module): Rename to...
- (diagnostic_context::m_last_module): ...this and make private.
- (diagnostic_context::lock): Rename to...
- (diagnostic_context::m_lock): ...this and make private.
- (diagnostic_context::lang_mask): Rename to...
- (diagnostic_context::m_lang_mask): ...this.
- (diagnostic_context::inhibit_notes_p): Rename to...
- (diagnostic_context::m_inhibit_notes_p): ...this.
- (diagnostic_context::report_bug): Rename to...
- (diagnostic_context::m_report_bug): ...this and make private.
- (diagnostic_context::extra_output_kind): Rename to...
- (diagnostic_context::m_extra_output_kind): ...this and make
- private.
- (diagnostic_context::column_unit): Rename to...
- (diagnostic_context::m_column_unit): ...this and make private.
- (diagnostic_context::column_origin): Rename to...
- (diagnostic_context::m_column_origin): ...this and make private.
- (diagnostic_context::tabstop): Rename to...
- (diagnostic_context::m_tabstop): ...this and make private.
- (diagnostic_context::escape_format): Rename to...
- (diagnostic_context::m_escape_format): ...this and make private.
- (diagnostic_context::edit_context_ptr): Rename to...
- (diagnostic_context::m_edit_context_ptr): ...this and make
- private.
- (diagnostic_context::set_locations_cb): Rename to...
- (diagnostic_context::m_set_locations_cb): ...this and make
- private.
- (diagnostic_context::ice_handler_cb): Rename to...
- (diagnostic_context::m_ice_handler_cb): ...this and make private.
- (diagnostic_context::includes_seen): Rename to...
- (diagnostic_context::m_includes_seen): ...this and make private.
- (diagnostic_inhibit_notes): Update for field renaming.
- (diagnostic_context_auxiliary_data): Likewise.
- (diagnostic_abort_on_error): Convert from macro to inline function
- and update for field renaming.
- (diagnostic_kind_count): Convert from macro to inline function and
- use diagnostic_count accessor.
- (diagnostic_report_warnings_p): Update for field renaming.
- (diagnostic_initialize): Convert decl to inline function calling
- into diagnostic_context.
- (diagnostic_color_init): Likewise.
- (diagnostic_urls_init): Likewise.
- (diagnostic_urls_init): Likewise.
- (diagnostic_finish): Likewise.
- (diagnostic_report_current_module): Likewise.
- (diagnostic_show_any_path): Delete decl.
- (diagnostic_initialize_input_context): Convert decl to inline
- function calling into diagnostic_context.
- (diagnostic_classify_diagnostic): Likewise.
- (diagnostic_push_diagnostics): Likewise.
- (diagnostic_pop_diagnostics): Likewise.
- (diagnostic_report_diagnostic): Likewise.
- (diagnostic_action_after_output): Likewise.
- (diagnostic_check_max_errors): Likewise.
- (diagnostic_file_cache_fini): Delete decl.
- (diagnostic_converted_column): Delete decl.
- (warning_enabled_at): Convert decl to inline function calling into
- diagnostic_context.
- (option_unspecified_p): New.
- (diagnostic_emit_diagram): Delete decl.
- * gcc.cc: Remove include of "diagnostic-text-art.h".
- Update for changes to diagnostic_context.
- * input.cc (diagnostic_file_cache_init): Move implementation
- to...
- (diagnostic_context::file_cache_init): ...this new member
- function.
- (diagnostic_file_cache_fini): Delete.
- (diagnostics_file_cache_forcibly_evict_file): Update for
- m_file_cache becoming private.
- (location_get_source_line): Likewise.
- (get_source_file_content): Likewise.
- (location_missing_trailing_newline): Likewise.
- * input.h (diagnostics_file_cache_fini): Delete.
- * langhooks.cc: Update for changes to diagnostic_context.
- * lto-wrapper.cc: Likewise.
- * opts.cc: Remove include of "diagnostic-text-art.h".
- Update for changes to diagnostic_context.
- * selftest-diagnostic.cc: Update for changes to
- diagnostic_context.
- * toplev.cc: Likewise.
- * tree-diagnostic-path.cc: Likewise.
- * tree-diagnostic.cc: Likewise.
-
-2023-11-03 Martin Uecker <uecker@tugraz.at>
-
- PR c/98541
- * gimple-ssa-warn-access.cc
- (pass_waccess::maybe_check_access_sizes): For VLA bounds
- in parameters, only warn about null pointers with 'static'.
-
-2023-11-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow unmasked
- calls to use masked simdclones.
-
-2023-11-03 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_initialize): Update for consolidation
- of group-based fields.
- (diagnostic_report_diagnostic): Likewise.
- (diagnostic_context::begin_group): New, based on body of
- auto_diagnostic_group's ctor.
- (diagnostic_context::end_group): New, based on body of
- auto_diagnostic_group's dtor.
- (auto_diagnostic_group::auto_diagnostic_group): Convert to a call
- to begin_group.
- (auto_diagnostic_group::~auto_diagnostic_group): Convert to a call
- to end_group.
- * diagnostic.h (diagnostic_context::begin_group): New decl.
- (diagnostic_context::end_group): New decl.
- (diagnostic_context::diagnostic_group_nesting_depth): Rename to...
- (diagnostic_context::m_diagnostic_groups.m_nesting_depth):
- ...this.
- (diagnostic_context::diagnostic_group_emission_count): Rename
- to...
- (diagnostic_context::m_diagnostic_groups::m_emission_count):
- ...this.
-
-2023-11-03 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/111766
- * range-op.cc (operator_equal::fold_range): Check constants
- against the bitmask.
- (operator_not_equal::fold_range): Ditto.
- * value-range.h (irange_bitmask::member_p): New.
-
-2023-11-03 Andrew MacLeod <amacleod@redhat.com>
-
- * value-range.cc (irange_bitmask::adjust_range): New.
- (irange::intersect_bitmask): Call adjust_range.
- * value-range.h (irange_bitmask::adjust_range): New prototype.
-
-2023-11-03 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.cc (ix86_memory_address_use_extended_reg_class_p):
- Rename to ...
- (ix86_memory_address_reg_class): ... this. Generalize address
- register class handling to allow multiple address register classes.
- Return maximal class for unrecognized instructions. Improve comments.
- (ix86_insn_base_reg_class): Rewrite to handle
- multiple address register classes.
- (ix86_regno_ok_for_insn_base_p): Ditto.
- (ix86_insn_index_reg_class): Ditto.
- * config/i386/i386.md: Rename "gpr32" attribute to "addr"
- and substitute its values with "0" -> "gpr16", "1" -> "*".
- (addr): New attribute to limit allowed address register set.
- (gpr32): Remove.
- * config/i386/mmx.md: Rename "gpr32" attribute to "addr"
- and substitute its values with "0" -> "gpr16", "1" -> "*".
- * config/i386/sse.md: Ditto.
-
-2023-11-03 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.cc (vectorizable_live_operation): Simplify
- LC PHI replacement.
-
-2023-11-03 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.md (addsi3): Fix GNU-style code formatting.
- (adddi3): Change define_expand to generate a *adddi3.
- (*adddi3): New define_insn_and_split to lower DImode additions
- during the split1 pass (after combine and before reload).
- (ashldi3): New define_expand to (only) generate *ashldi3_cnt1
- for DImode left shifts by a single bit.
- (*ashldi3_cnt1): New define_insn_and_split to lower DImode
- left shifts by one bit to an *adddi3.
-
-2023-11-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.md (*cmov_uxtw_insn_insv): Remove
- can_create_pseudo_p condition.
-
-2023-11-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-slp.cc (vect_get_and_check_slp_defs): Support SLP for dummy mask -1.
- * tree-vect-stmts.cc (vectorizable_load): Ditto.
-
-2023-11-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112366
- * tree-vect-loop.cc (vectorizable_live_operation): Remove
- assert.
-
-2023-11-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112310
- * tree-ssa-pre.cc (do_hoist_insertion): Keep the union
- of expressions, validate dependences are contained within
- the hoistable set before hoisting.
-
-2023-11-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (lrint<mode><v_i_l_ll_convert>2): Remove.
- (lround<mode><v_i_l_ll_convert>2): Ditto.
- (lceil<mode><v_i_l_ll_convert>2): Ditto.
- (lfloor<mode><v_i_l_ll_convert>2): Ditto.
- (lrint<mode><v_f2si_convert>2): New pattern for cvt from
- FP to SI.
- (lround<mode><v_f2si_convert>2): Ditto.
- (lceil<mode><v_f2si_convert>2): Ditto.
- (lfloor<mode><v_f2si_convert>2): Ditto.
- (lrint<mode><v_f2di_convert>2): New pattern for cvt from
- FP to DI.
- (lround<mode><v_f2di_convert>2): Ditto.
- (lceil<mode><v_f2di_convert>2): Ditto.
- (lfloor<mode><v_f2di_convert>2): Ditto.
- * config/riscv/vector-iterators.md: Renew iterators for both
- the SI and DI.
-
-2023-11-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/112326
- * config/riscv/riscv-avlprop.cc (get_insn_vtype_mode): New function.
- (simplify_replace_vlmax_avl): Ditto.
- (pass_avlprop::execute): Add immediate AVL simplification.
- * config/riscv/riscv-protos.h (imm_avl_p): Rename.
- * config/riscv/riscv-v.cc (const_vlmax_p): Ditto.
- (imm_avl_p): Ditto.
- (emit_vlmax_insn): Adapt for new interface name.
- * config/riscv/vector.md (mode_idx): New attribute.
-
-2023-11-03 Pan Li <pan2.li@intel.com>
+2024-02-08 H.J. Lu <hjl.tools@gmail.com>
- Revert:
- 2023-11-02 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (lrint<mode><v_i_l_ll_convert>2): Remove.
- (lround<mode><v_i_l_ll_convert>2): Ditto.
- (lceil<mode><v_i_l_ll_convert>2): Ditto.
- (lfloor<mode><v_i_l_ll_convert>2): Ditto.
- (lrint<mode><v_f2si_convert>2): New pattern for cvt from
- FP to SI.
- (lround<mode><v_f2si_convert>2): Ditto.
- (lceil<mode><v_f2si_convert>2): Ditto.
- (lfloor<mode><v_f2si_convert>2): Ditto.
- (lrint<mode><v_f2di_convert>2): New pattern for cvt from
- FP to DI.
- (lround<mode><v_f2di_convert>2): Ditto.
- (lceil<mode><v_f2di_convert>2): Ditto.
- (lfloor<mode><v_f2di_convert>2): Ditto.
- * config/riscv/vector-iterators.md: Renew iterators for both
- the SI and DI.
-
-2023-11-02 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_sched_variable_issue): add disabled assert
-
-2023-11-02 Jeff Law <jlaw@ventanamicro.com>
-
- * config/h8300/combiner.md: Add new patterns for single bit
- sign extractions.
-
-2023-11-02 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (lrint<mode><v_i_l_ll_convert>2): Remove.
- (lround<mode><v_i_l_ll_convert>2): Ditto.
- (lceil<mode><v_i_l_ll_convert>2): Ditto.
- (lfloor<mode><v_i_l_ll_convert>2): Ditto.
- (lrint<mode><v_f2si_convert>2): New pattern for cvt from
- FP to SI.
- (lround<mode><v_f2si_convert>2): Ditto.
- (lceil<mode><v_f2si_convert>2): Ditto.
- (lfloor<mode><v_f2si_convert>2): Ditto.
- (lrint<mode><v_f2di_convert>2): New pattern for cvt from
- FP to DI.
- (lround<mode><v_f2di_convert>2): Ditto.
- (lceil<mode><v_f2di_convert>2): Ditto.
- (lfloor<mode><v_f2di_convert>2): Ditto.
- * config/riscv/vector-iterators.md: Renew iterators for both
- the SI and DI.
-
-2023-11-02 Sam James <sam@gentoo.org>
-
- * doc/passes.texi (Dead code elimination): Explicitly say 'lifetime'
- as this has become the standard term for what we're doing here.
-
-2023-11-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-avlprop.cc
- (pass_avlprop::get_vlmax_ta_preferred_avl): Don't allow
- non-real insn AVL propation.
-
-2023-11-02 Robin Dapp <rdapp@ventanamicro.com>
-
- PR middle-end/111401
- * internal-fn.cc (internal_fn_else_index): New function.
- * internal-fn.h (internal_fn_else_index): Define.
- * tree-if-conv.cc (convert_scalar_cond_reduction): Emit COND_OP
- if supported.
- (predicate_scalar_phi): Add whitespace.
- * tree-vect-loop.cc (fold_left_reduction_fn): Add IFN_COND_OP.
- (neutral_op_for_reduction): Return -0 for PLUS.
- (check_reduction_path): Don't count else operand in COND_OP.
- (vect_is_simple_reduction): Ditto.
- (vect_create_epilog_for_reduction): Fix whitespace.
- (vectorize_fold_left_reduction): Add COND_OP handling.
- (vectorizable_reduction): Don't count else operand in COND_OP.
- (vect_transform_reduction): Add COND_OP handling.
- * tree-vectorizer.h (neutral_op_for_reduction): Add default
- parameter.
-
-2023-11-02 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112320
- * gimple-fold.h (rewrite_to_defined_overflow): New overload
- for in-place operation.
- * gimple-fold.cc (rewrite_to_defined_overflow): Add stmt
- iterator argument to worker, define separate API for
- in-place and not in-place operation.
- * tree-if-conv.cc (predicate_statements): Simplify.
- * tree-scalar-evolution.cc (final_value_replacement_loop):
- Likewise.
- * tree-ssa-ifcombine.cc (pass_tree_ifcombine::execute): Adjust.
- * tree-ssa-reassoc.cc (update_range_test): Likewise.
+ PR target/113711
+ PR target/113733
+ * config/i386/constraints.md: List all constraints with j prefix.
+ (j>): Change auto-dec to auto-inc in documentation.
+ (je): Changed to a memory constraint with APX NDD TLS operand
+ check.
+ (jM): New memory constraint for APX NDD instructions.
+ (jO): Likewise.
+ * config/i386/i386-protos.h (x86_poff_operand_p): Removed.
+ * config/i386/i386.cc (x86_poff_operand_p): Likewise.
+ * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
+ (*add<mode>_1[SWI48]): Use je and jM.
+ (addsi_1_zext): Use jM.
+ (*addv<dwi>4_doubleword_1[DWI]): Likewise.
+ (*sub<mode>_1[SWI]): Use jM.
+ (@add<mode>3_cc_overflow_1[SWI]): Likewise.
+ (*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
+ (*and<dwi>3_doubleword): Likewise.
+ (*anddi_1): Use jM.
+ (*andsi_1_zext): Likewise.
+ (*and<mode>_1[SWI24]): Likewise.
+ (*<code><dwi>3_doubleword[any_or]): Use rjO
+ (*code<mode>_1[any_or SWI248]): Use jM.
+ (*<code>si_1_zext[zero_extend + any_or]): Likewise.
+ * config/i386/predicates.md (apx_ndd_memory_operand): New.
+ (apx_ndd_add_memory_operand): Likewise.
+
+2024-02-08 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/113824
+ * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
+ * doc/avr-mmcu.texi: Rebuild.
+
+2024-02-08 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/113808
+ * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
+ value cross iterations.
+
+2024-02-08 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
+ defines __AVR_PM_BASE_ADDRESS__ if the core has it.
+
+2024-02-08 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ Revert last change to dr_may_alias_p.
+
+2024-02-08 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
+ cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram.
+ Remove spec asm_misc.
+ * config/avr/specs.h: Same.
+
+2024-02-08 Pan Li <pan2.li@intel.com>
+
+ PR target/113766
+ * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
+ sure the c.arg_num is >= 2 before checking.
+ (struct build_frm_base): Ditto.
+ (struct narrow_alu_def): Ditto.
-2023-11-02 Uros Bizjak <ubizjak@gmail.com>
+2024-02-07 Richard Biener <rguenther@suse.de>
- * config/i386/i386.md: Move stack protector patterns
- above mov $0,%reg -> xor %reg,%reg peephole2 pattern.
+ PR tree-optimization/113796
+ * tree-if-conv.cc (combine_blocks): Wipe range-info before
+ replacing PHIs and inserting predicates.
-2023-11-02 liuhongt <hongtao.liu@intel.com>
+2024-02-07 Roger Sayle <roger@nextmovesoftware.com>
+ Uros Bizjak <ubizjak@gmail.com>
- * config/i386/mmx.md (cmlav4hf4): New expander.
- (cmla_conjv4hf4): Ditto.
- (cmulv4hf3): Ditto.
- (cmul_conjv4hf3): Ditto.
+ PR target/113690
+ * config/i386/i386-features.cc (timode_convert_cst): New helper
+ function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
+ CONST_VECTOR.
+ (timode_scalar_chain::convert_op): Use timode_convert_cst.
+ (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
+ Use timode_convert_cst.
+
+2024-02-07 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
+ * config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
+ (AARCH64_FL_DEBUGv8p9): Likewise.
+ (AARCH64_FL_FGT2): Likewise.Likewise.
+ (AARCH64_FL_ITE): Likewise.
+ (AARCH64_FL_PFAR): Likewise.
+ (AARCH64_FL_PMUv3_ICNTR): Likewise.
+ (AARCH64_FL_PMUv3_SS): Likewise.
+ (AARCH64_FL_PMUv3p9): Likewise.
+ (AARCH64_FL_RASv2): Likewise.
+ (AARCH64_FL_S1PIE): Likewise.
+ (AARCH64_FL_S1POE): Likewise.
+ (AARCH64_FL_S2PIE): Likewise.
+ (AARCH64_FL_S2POE): Likewise.
+ (AARCH64_FL_SCTLR2): Likewise.
+ (AARCH64_FL_SEBEP): Likewise.
+ (AARCH64_FL_SPE_FDS): Likewise.
+ (AARCH64_FL_TCR2): Likewise.
+
+2024-02-07 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ Only check whether reads are in-bound in places that are not safe.
+ Fix dependence check. Add missing newline. Clarify comments.
+
+2024-02-07 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/113750
+ * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
+ for single predecessor when doing early break vect.
+ * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
+ after labels.
+
+2024-02-07 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/113731
+ * gimple-iterator.cc (gsi_move_before): Take new parameter for update
+ method.
+ * gimple-iterator.h (gsi_move_before): Default new param to
+ GSI_SAME_STMT.
+ * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
+ GSI_NEW_STMT.
-2023-11-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-02-07 Jakub Jelinek <jakub@redhat.com>
- * config/riscv/vector.md: Fix redundant codes in attributes.
+ PR tree-optimization/113756
+ * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
+ use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
+ of lh_bits value and mask.
-2023-11-02 xuli <xuli1@eswincomputing.com>
+2024-02-07 Jakub Jelinek <jakub@redhat.com>
- * config/riscv/riscv-vector-builtins-bases.cc: Expand non-tuple intrinsics.
- * config/riscv/riscv-vector-builtins-functions.def (vcreate): Define non-tuple intrinsics.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct vcreate_def): Ditto.
- * config/riscv/riscv-vector-builtins.cc: Add arg types.
+ PR tree-optimization/113753
+ * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
+ UNSIGNED rather than SIGNED. If high or needs_overflow and prec is
+ not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
+ so that they start with r[half_blocks_needed] lowest bit. Fix up
+ computation of top mask for SIGNED.
-2023-11-02 Pan Li <pan2.li@intel.com>
+2024-02-07 Pan Li <pan2.li@intel.com>
- * tree-vect-stmts.cc (vectorizable_internal_function): Add type
- size check for vectype_out doesn't participating for optab query.
- (vectorizable_call): Remove the type size check.
+ PR target/113766
+ * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
+ the signature of func.
+ * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
+ * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
+ overloaded func with empty args error.
-2023-11-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-02-06 H.J. Lu <hjl.tools@gmail.com>
- PR target/112327
- * config/riscv/vector.md: Add '0'.
+ PR target/113689
+ * config/i386/i386.cc (x86_64_select_profile_regnum): Return
+ R10_REG after sorry.
-2023-11-01 Roger Sayle <roger@nextmovesoftware.com>
+2024-02-06 Andrew Carlotti <andrew.carlotti@arm.com>
- PR target/110551
- * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Tidy condition
- as operands[2] with predicate register_operand must be !MEM_P.
- (peephole2): Optimize a mulx followed by a register-to-register
- move, to place result in the correct destination if possible.
+ * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
+ Move before new caller, and add ".default" suffix.
+ (get_suffixed_assembler_name): New.
+ (make_resolver_func): Use get_suffixed_assembler_name.
+ (aarch64_generate_version_dispatcher_body): Redo name mangling.
-2023-11-01 Patrick O'Neill <patrick@rivosinc.com>
+2024-02-06 Jakub Jelinek <jakub@redhat.com>
- * config/riscv/sync.md: Use riscv_subword_address function to
- calculate the address and shift in atomic_test_and_set.
+ PR target/113763
+ * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
+ element from std::pair<unsigned int, char> to an unnamed struct.
+ Adjust uses of tile range variable.
-2023-11-01 Vineet Gupta <vineetg@rivosinc.com>
+2024-02-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/riscv/riscv.cc (riscv_promote_function_mode): Fix mode
- returned for libcall case.
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
+ (pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
-2023-11-01 Martin Uecker <uecker@tugraz.at>
+2024-02-06 Jakub Jelinek <jakub@redhat.com>
- PR c/71219
- * doc/invoke.texi: Document -Walloc-size option.
+ PR sanitizer/110676
+ * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
+ reset maxlen to sizetype maximum.
-2023-11-01 Edwin Lu <ewlu@rivosinc.com>
+2024-02-06 Jakub Jelinek <jakub@redhat.com>
- * genautomata.cc (write_automata): move endif
+ PR tree-optimization/113736
+ * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
+ var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
-2023-11-01 Andre Vieira <andre.simoesdiasvieira@arm.com>
+2024-02-06 Jakub Jelinek <jakub@redhat.com>
- * omp-simd-clone.cc (simd_clone_adjust_return_type): Hoist out code to
- create return array and don't return new type.
- (simd_clone_adjust_argument_types): Hoist out code that creates
- ipa_param_body_adjustments and don't return them.
- (simd_clone_adjust): Call TARGET_SIMD_CLONE_ADJUST after return and
- argument types have been vectorized, create adjustments and return array
- after the hook.
- (expand_simd_clones): Call TARGET_SIMD_CLONE_ADJUST after return and
- argument types have been vectorized.
+ PR tree-optimization/113759
+ * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
+ or from_unsignedN differs from properties of typeN, update typeN
+ to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not
+ uselessly convertible to typeN, convert it using fold_convert or
+ build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
+ (convert_plusminus_to_widen): Likewise.
-2023-11-01 Uros Bizjak <ubizjak@gmail.com>
+2024-02-06 Tejas Belagod <tejas.belagod@arm.com>
- PR target/112332
- * config/i386/i386.md (stack_protexct_set_2 peephole2):
- Use general_gr_operand as operand 4 predicate.
+ PR target/112577
+ * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
+ vector structure modes correctly.
-2023-11-01 Uros Bizjak <ubizjak@gmail.com>
+2024-02-05 Christoph Müllner <christoph.muellner@vrull.eu>
- * config/i386/i386.md (stack_protect_set): Explicitly
- generate scratch register in word mode.
- (@stack_protect_set_1_<mode>): Rename to ...
- (@stack_protect_set_1_<PTR:mode>_<SWI48:mode>): ... this.
- Use SWI48 mode iterator to match scratch register.
- (stack_protexct_set_1 peephole2): Use PTR, W and SWI48 mode
- iterators to match peephole sequence. Use general_operand
- predicate for operand 4. Allow different operand 2 and operand 3
- registers and use peep2_reg_dead_p to ensure new scratch
- register is dead before peephole seqeunce. Use peep2_reg_dead_p
- to ensure old scratch register is dead after peephole sequence.
- (*stack_protect_set_2_<mode>): Rename to ...
- (*stack_protect_set_2_<mode>_si): .. this.
- (*stack_protect_set_3): Rename to ...
- (*stack_protect_set_2_<mode>_di): ... this.
- Use PTR mode iterator to match stack protector memory move.
- Use earlyclobber for all alternatives of operand 1.
- (stack_protexct_set_2 peephole2): Use PTR, W and SWI48 mode
- iterators to match peephole sequence. Use general_operand
- predicate for operand 4. Allow different operand 2 and operand 3
- registers and use peep2_reg_dead_p to ensure new scratch
- register is dead before peephole seqeunce. Use peep2_reg_dead_p
- to ensure old scratch register is dead after peephole sequence.
+ * config/riscv/thead.cc (th_print_operand_address): Fix compiler
+ warning.
-2023-11-01 xuli <xuli1@eswincomputing.com>
+2024-02-05 H.J. Lu <hjl.tools@gmail.com>
- * config/riscv/riscv-vector-builtins-functions.def (vundefined): Add vundefine
- intrinsics for tuple types.
- * config/riscv/riscv-vector-builtins.cc: Ditto.
- * config/riscv/vector.md (@vundefined<mode>): Ditto.
+ PR target/113689
+ * config/i386/i386.cc (x86_64_select_profile_regnum): New.
+ (x86_function_profiler): Call x86_64_select_profile_regnum to
+ get a scratch register for large model profiling.
-2023-11-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-02-05 Richard Ball <richard.ball@arm.com>
- * tree-vect-slp.cc (vect_build_slp_tree_1): Fix whitespace.
+ * config/arm/arm.cc (arm_output_mi_thunk): Emit
+ insn for bti_c when bti is enabled.
-2023-10-31 David Malcolm <dmalcolm@redhat.com>
+2024-02-05 Xi Ruoyao <xry111@xry111.site>
- * Makefile.in (ANALYZER_OBJS): Add analyzer/record-layout.o.
+ * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
+ neg.
-2023-10-31 David Malcolm <dmalcolm@redhat.com>
+2024-02-05 Xi Ruoyao <xry111@xry111.site>
- * input.cc (dump_location_info): Update for removal of
- MACRO_MAP_EXPANSION_POINT_LOCATION.
- * tree-diagnostic.cc (maybe_unwind_expanded_macro_loc):
- Likewise.
+ * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
+ (neg<mode>2): Change the mode iterator from MSA to IMSA because
+ in FP arithmetic we cannot use (0 - x) for -x.
+ (neg<mode>2): New define_insn to implement FP vector negation,
+ using a bnegi instruction to negate the sign bit.
-2023-10-31 David Malcolm <dmalcolm@redhat.com>
-
- * opts.cc (get_option_url): Update comment; the requirement to
- pass DOCUMENTATION_ROOT_URL's value via -D was removed in
- r10-8065-ge33a1eae25b8a8.
-
-2023-10-31 David Malcolm <dmalcolm@redhat.com>
-
- * pretty-print.cc (pretty_printer::pretty_printer): Initialize
- m_skipping_null_url.
- (pp_begin_url): Handle URL being null.
- (pp_end_url): Likewise.
- (selftest::test_null_urls): New.
- (selftest::pretty_print_cc_tests): Call it.
- * pretty-print.h (pretty_printer::m_skipping_null_url): New.
-
-2023-10-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-slp.cc (vect_get_operand_map): Add MASK_LEN_GATHER_LOAD.
- (vect_build_slp_tree_1): Ditto.
- (vect_build_slp_tree_2): Ditto.
-
-2023-10-31 Cupertino Miranda <cupertino.miranda@oracle.com>
-
- * config/bpf/bpf-passes.def (pass_lower_bpf_core): Added pass.
- * config/bpf/bpf-protos.h: Added prototype for new pass.
- * config/bpf/bpf.cc (bpf_delegitimize_address): New function.
- * config/bpf/bpf.md (mov_reloc_core<MM:mode>): Prefixed
- name with '*'.
- * config/bpf/core-builtins.cc (cr_builtins) Added access_node to
- struct.
- (is_attr_preserve_access): Improved check.
- (core_field_info): Make use of root_for_core_field_info
- function.
- (process_field_expr): Adapted to new functions.
- (pack_type): Small improvement.
- (bpf_handle_plugin_finish_type): Adapted to GTY(()).
- (bpf_init_core_builtins): Changed to new function names.
- (construct_builtin_core_reloc): Improved implementation.
- (bpf_resolve_overloaded_core_builtin): Changed how
- __builtin_preserve_access_index is converted.
- (compute_field_expr): Corrected implementation. Added
- access_node argument.
- (bpf_core_get_index): Added valid argument.
- (root_for_core_field_info, pack_field_expr)
- (core_expr_with_field_expr_plus_base, make_core_safe_access_index)
- (replace_core_access_index_comp_expr, maybe_get_base_for_field_expr)
- (core_access_clean, core_is_access_index, core_mark_as_access_index)
- (make_gimple_core_safe_access_index, execute_lower_bpf_core)
- (make_pass_lower_bpf_core): Added functions.
- (pass_data_lower_bpf_core): New pass struct.
- (pass_lower_bpf_core): New gimple_opt_pass class.
- (pack_field_expr_for_preserve_field)
- (bpf_replace_core_move_operands): Removed function.
- (bpf_enum_value_kind): Added GTY(()).
- * config/bpf/core-builtins.h (bpf_field_info_kind, bpf_type_id_kind)
- (bpf_type_info_kind, bpf_enum_value_kind): New enum.
- * config/bpf/t-bpf: Added pass bpf-passes.def to PASSES_EXTRA.
-
-2023-10-31 Neal Frager <neal.frager@amd.com>
-
- * config/microblaze/microblaze.cc: Fix mcpu version check.
-
-2023-10-31 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/sync-rvwmo.md (atomic_load_rvwmo<mode>): Remove
- TARGET_ATOMIC constraint
- (atomic_store_rvwmo<mode>): Ditto.
- * config/riscv/sync-ztso.md (atomic_load_ztso<mode>): Ditto.
- (atomic_store_ztso<mode>): Ditto.
- * config/riscv/sync.md (atomic_load<mode>): Ditto.
- (atomic_store<mode>): Ditto.
-
-2023-10-31 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.cc (riscv_index_reg_class):
- Return GR_REGS for XTheadFMemIdx.
- (riscv_regno_ok_for_index_p): Add support for XTheadFMemIdx.
- * config/riscv/riscv.h (HARDFP_REG_P): New macro.
- * config/riscv/thead.cc (is_fmemidx_mode): New function.
- (th_memidx_classify_address_index): Add support for XTheadFMemIdx.
- (th_fmemidx_output_index): New function.
- (th_output_move): Add support for XTheadFMemIdx.
- * config/riscv/thead.md (TH_M_ANYF): New mode iterator.
- (TH_M_NOEXTF): Likewise.
- (*th_fmemidx_movsf_hardfloat): New INSN.
- (*th_fmemidx_movdf_hardfloat_rv64): Likewise.
- (*th_fmemidx_I_a): Likewise.
- (*th_fmemidx_I_c): Likewise.
- (*th_fmemidx_US_a): Likewise.
- (*th_fmemidx_US_c): Likewise.
- (*th_fmemidx_UZ_a): Likewise.
- (*th_fmemidx_UZ_c): Likewise.
-
-2023-10-31 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/constraints.md (th_m_mia): New constraint.
- (th_m_mib): Likewise.
- (th_m_mir): Likewise.
- (th_m_miu): Likewise.
- * config/riscv/riscv-protos.h (enum riscv_address_type):
- Add new address types ADDRESS_REG_REG, ADDRESS_REG_UREG,
- and ADDRESS_REG_WB and their documentation.
- (struct riscv_address_info): Add new field 'shift' and
- document the field usage for the new address types.
- (riscv_valid_base_register_p): New prototype.
- (th_memidx_legitimate_modify_p): Likewise.
- (th_memidx_legitimate_index_p): Likewise.
- (th_classify_address): Likewise.
- (th_output_move): Likewise.
- (th_print_operand_address): Likewise.
- * config/riscv/riscv.cc (riscv_index_reg_class):
- Return GR_REGS for XTheadMemIdx.
- (riscv_regno_ok_for_index_p): Add support for XTheadMemIdx.
- (riscv_classify_address): Call th_classify_address() on top.
- (riscv_output_move): Call th_output_move() on top.
- (riscv_print_operand_address): Call th_print_operand_address()
- on top.
- * config/riscv/riscv.h (HAVE_POST_MODIFY_DISP): New macro.
- (HAVE_PRE_MODIFY_DISP): Likewise.
- * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2): Disable
- for XTheadMemIdx.
- (*zero_extendqi<SUPERQI:mode>2_internal): Convert to expand,
- create INSN with same name and disable it for XTheadMemIdx.
- (extendsidi2): Likewise.
- (*extendsidi2_internal): Disable for XTheadMemIdx.
- * config/riscv/thead.cc (valid_signed_immediate): New helper
- function.
- (th_memidx_classify_address_modify): New function.
- (th_memidx_legitimate_modify_p): Likewise.
- (th_memidx_output_modify): Likewise.
- (is_memidx_mode): Likewise.
- (th_memidx_classify_address_index): Likewise.
- (th_memidx_legitimate_index_p): Likewise.
- (th_memidx_output_index): Likewise.
- (th_classify_address): Likewise.
- (th_output_move): Likewise.
- (th_print_operand_address): Likewise.
- * config/riscv/thead.md (*th_memidx_operand): New splitter.
- (*th_memidx_zero_extendqi<SUPERQI:mode>2): New INSN.
- (*th_memidx_extendsidi2): Likewise.
- (*th_memidx_zero_extendsidi2): Likewise.
- (*th_memidx_zero_extendhi<GPR:mode>2): Likewise.
- (*th_memidx_extend<SHORT:mode><SUPERQI:mode>2): Likewise.
- (*th_memidx_bb_zero_extendsidi2): Likewise.
- (*th_memidx_bb_zero_extendhi<GPR:mode>2): Likewise.
- (*th_memidx_bb_extendhi<GPR:mode>2): Likewise.
- (*th_memidx_bb_extendqi<SUPERQI:mode>2): Likewise.
- (TH_M_ANYI): New mode iterator.
- (TH_M_NOEXTI): Likewise.
- (*th_memidx_I_a): New combiner optimization.
- (*th_memidx_I_b): Likewise.
- (*th_memidx_I_c): Likewise.
- (*th_memidx_US_a): Likewise.
- (*th_memidx_US_b): Likewise.
- (*th_memidx_US_c): Likewise.
- (*th_memidx_UZ_a): Likewise.
- (*th_memidx_UZ_b): Likewise.
- (*th_memidx_UZ_c): Likewise.
-
-2023-10-31 Carl Love <cel@us.ibm.com>
-
- * doc/extend.texi (__builtin_bcdsub_le, __builtin_bcdsub_ge): Add
- documentation for the builti-ins.
-
-2023-10-31 Vladimir N. Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/111971
- * lra-constraints.cc: (process_alt_operands): Don't check start
- hard regs for regs originated from register variables.
-
-2023-10-31 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<ieee_fmaxmin_op><mode>3): fmax/fmin
- expanders.
- (cond_<ieee_fmaxmin_op><mode>): Ditto.
- (cond_len_<ieee_fmaxmin_op><mode>): Ditto.
- (reduc_fmax_scal_<mode>): Ditto.
- (reduc_fmin_scal_<mode>): Ditto.
- * config/riscv/riscv-v.cc (needs_fp_rounding): Add fmin/fmax.
- * config/riscv/vector-iterators.md (fmin): New UNSPEC.
- (UNSPEC_VFMIN): Ditto.
- * config/riscv/vector.md (@pred_<ieee_fmaxmin_op><mode>): Add
- UNSPEC insn patterns.
- (@pred_<ieee_fmaxmin_op><mode>_scalar): Ditto.
-
-2023-10-31 Robin Dapp <rdapp@ventanamicro.com>
-
- PR bootstrap/84402
- PR target/111600
- * Makefile.in: Handle split insn-emit.cc.
- * configure: Regenerate.
- * configure.ac: Add --with-insnemit-partitions.
- * genemit.cc (output_peephole2_scratches): Print to file instead
- of stdout.
- (print_code): Ditto.
- (gen_rtx_scratch): Ditto.
- (gen_exp): Ditto.
- (gen_emit_seq): Ditto.
- (emit_c_code): Ditto.
- (gen_insn): Ditto.
- (gen_expand): Ditto.
- (gen_split): Ditto.
- (output_add_clobbers): Ditto.
- (output_added_clobbers_hard_reg_p): Ditto.
- (print_overload_arguments): Ditto.
- (print_overload_test): Ditto.
- (handle_overloaded_code_for): Ditto.
- (handle_overloaded_gen): Ditto.
- (print_header): New function.
- (handle_arg): New function.
- (main): Split output into 10 files.
- * gensupport.cc (count_patterns): New function.
- * gensupport.h (count_patterns): Define.
- * read-md.cc (md_reader::print_md_ptr_loc): Add file argument.
- * read-md.h (class md_reader): Change definition.
-
-2023-10-31 Alexandre Oliva <oliva@adacore.com>
-
- PR tree-optimization/111943
- * gimple-harden-control-flow.cc: Adjust copyright year.
- (rt_bb_visited): Add vfalse and vtrue data members.
- Zero-initialize them in the ctor.
- (rt_bb_visited::insert_exit_check_on_edge): Upon encountering
- abnormal edges, insert initializers for vfalse and vtrue on
- entry, and insert the check sequence guarded by a conditional
- in the dest block.
-
-2023-10-31 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/112305
- * tree-scalar-evolution.h (expression_expensive): Adjust.
- * tree-scalar-evolution.cc (expression_expensive): Record
- when we see a COND_EXPR.
- (final_value_replacement_loop): When the replacement contains
- a COND_EXPR, rewrite it to defined overflow.
- * tree-ssa-loop-ivopts.cc (may_eliminate_iv): Adjust.
-
-2023-10-31 Xi Ruoyao <xry111@xry111.site>
-
- PR target/112299
- * config/loongarch/loongarch-opts.h (HAVE_AS_TLS): Define to 0
- if not defined yet.
-
-2023-10-31 Lehua Ding <lehua.ding@rivai.ai>
-
- * gimple-match.h (gimple_match_op::gimple_match_op):
- Add interfaces for more arguments.
- (gimple_match_op::set_op): Add interfaces for more arguments.
- * match.pd: Add support of combining cond_len_op + vec_cond
-
-2023-10-31 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512cdintrin.h (target): Push evex512 for
- avx512cd.
- * config/i386/avx512vlintrin.h (target): Split avx512cdvl part
- out from avx512vl.
- * config/i386/i386-builtin.def (BDESC): Do not check evex512
- for builtins not needed.
-
-2023-10-31 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec.md (<float_cvt><mode><vnnconvert>2):
- Change to define_expand.
-
-2023-10-31 liuhongt <hongtao.liu@intel.com>
-
- PR target/112276
- * config/i386/mmx.md (*mmx_pblendvb_v8qi_1): Change
- define_split to define_insn_and_split to handle
- immediate_operand for comparison.
- (*mmx_pblendvb_v8qi_2): Ditto.
- (*mmx_pblendvb_<mode>_1): Ditto.
- (*mmx_pblendvb_v4qi_2): Ditto.
- (<code><mode>3): Remove define_split after it.
- (<code>v8qi3): Ditto.
- (<code><mode>3): Ditto.
- (<ode>v2hi3): Ditto.
-
-2023-10-31 Andrew Pinski <pinskia@gmail.com>
-
- * match.pd (`a == 1 ? b : a OP b`): New pattern.
- (`a == -1 ? b : a & b`): New pattern.
-
-2023-10-31 Andrew Pinski <pinskia@gmail.com>
-
- * match.pd: (`a == 0 ? b : b + a`,
- `a == 0 ? b : b - a`): New patterns.
-
-2023-10-31 Neal Frager <neal.frager@amd.com>
-
- * config/microblaze/microblaze.cc: Fix mcpu version check.
-
-2023-10-30 Mayshao <mayshao-oc@zhaoxin.com>
-
- * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize yongfeng.
- * common/config/i386/i386-common.cc: Add yongfeng.
- * common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
- Add ZHAOXIN_FAM7H_YONGFENG.
- * config.gcc: Add yongfeng.
- * config/i386/driver-i386.cc (host_detect_local_cpu):
- Let -march=native recognize yongfeng processors.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Add yongfeng.
- * config/i386/i386-options.cc (m_YONGFENG): New definition.
- (m_ZHAOXIN): Ditto.
- * config/i386/i386.h (enum processor_type): Add PROCESSOR_YONGFENG.
- * config/i386/i386.md: Add yongfeng.
- * config/i386/lujiazui.md: Fix typo.
- * config/i386/x86-tune-costs.h (struct processor_costs):
- Add yongfeng costs.
- * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add yongfeng.
- (ix86_adjust_cost): Ditto.
- * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Replace
- m_LUJIAZUI with m_ZHAOXIN.
- (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
- (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
- (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
- (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
- (X86_TUNE_MOVX): Ditto.
- (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
- (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
- (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
- (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
- (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
- (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
- (X86_TUNE_USE_LEAVE): Ditto.
- (X86_TUNE_PUSH_MEMORY): Ditto.
- (X86_TUNE_LCP_STALL): Ditto.
- (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
- (X86_TUNE_OPT_AGU): Ditto.
- (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
- (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
- (X86_TUNE_USE_SAHF): Ditto.
- (X86_TUNE_USE_BT): Ditto.
- (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
- (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
- (X86_TUNE_AVOID_MFENCE): Ditto.
- (X86_TUNE_EXPAND_ABS): Ditto.
- (X86_TUNE_USE_SIMODE_FIOP): Ditto.
- (X86_TUNE_USE_FFREEP): Ditto.
- (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
- (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
- (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
- (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
- (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
- (X86_TUNE_USE_GATHER_2PARTS): Add m_YONGFENG.
- (X86_TUNE_USE_GATHER_4PARTS): Ditto.
- (X86_TUNE_USE_GATHER_8PARTS): Ditto.
- (X86_TUNE_AVOID_128FMA_CHAINS): Ditto.
- * doc/extend.texi: Add details about yongfeng.
- * doc/invoke.texi: Ditto.
- * config/i386/yongfeng.md: New file to describe yongfeng processor.
-
-2023-10-30 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/111157
- * ipa-prop.h (struct ipa_argagg_value): Newf flag killed.
- * ipa-modref.cc (ipcp_argagg_and_kill_overlap_p): New function.
- (update_signature): Mark any any IPA-CP aggregate constants at
- positions known to be killed as killed. Move check that there is
- clone_info after this pruning.
- * ipa-cp.cc (ipa_argagg_value_list::dump): Dump the killed flag.
- (ipa_argagg_value_list::push_adjusted_values): Clear the new flag.
- (push_agg_values_from_plats): Likewise.
- (ipa_push_agg_values_from_jfunc): Likewise.
- (estimate_local_effects): Likewise.
- (push_agg_values_for_index_from_edge): Likewise.
- * ipa-prop.cc (write_ipcp_transformation_info): Stream the killed
- flag.
- (read_ipcp_transformation_info): Likewise.
- (ipcp_get_aggregate_const): Update comment, assert that encountered
- record does not have killed flag set.
- (ipcp_transform_function): Prune all aggregate constants with killed
- set.
-
-2023-10-30 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/111157
- * ipa-prop.h (ipcp_transformation): New member function template
- remove_argaggs_if.
- * ipa-sra.cc (zap_useless_ipcp_results): Use remove_argaggs_if to
- filter aggreagate constants.
-
-2023-10-30 Roger Sayle <roger@nextmovesoftware.com>
-
- PR middle-end/101955
- * config/arc/arc.md (*extvsi_1_0): New define_insn_and_split
- to convert sign extract of the least significant bit into an
- AND $1 then a NEG when !TARGET_BARREL_SHIFTER.
-
-2023-10-30 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.cc (arc_rtx_costs): Improve cost estimates.
- Provide reasonable values for SHIFTS and ROTATES by constant
- bit counts depending upon TARGET_BARREL_SHIFTER.
- (arc_insn_cost): Use insn attributes if the instruction is
- recognized. Avoid calling get_attr_length for type "multi",
- i.e. define_insn_and_split patterns without explicit type.
- Fall-back to set_rtx_cost for single_set and pattern_cost
- otherwise.
- * config/arc/arc.h (COSTS_N_BYTES): Define helper macro.
- (BRANCH_COST): Improve/correct definition.
- (LOGICAL_OP_NON_SHORT_CIRCUIT): Preserve previous behavior.
-
-2023-10-30 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.cc (arc_split_ashl): Use lsl16 on TARGET_SWAP.
- (arc_split_ashr): Use swap and sign-extend on TARGET_SWAP.
- (arc_split_lshr): Use lsr16 on TARGET_SWAP.
- (arc_split_rotl): Use swap on TARGET_SWAP.
- (arc_split_rotr): Likewise.
- * config/arc/arc.md (ANY_ROTATE): New code iterator.
- (<ANY_ROTATE>si2_cnt16): New define_insn for alternate form of
- swap instruction on TARGET_SWAP.
- (ashlsi2_cnt16): Rename from *ashlsi16_cnt16 and move earlier.
- (lshrsi2_cnt16): New define_insn for LSR16 instruction.
- (*ashlsi2_cnt16): See above.
-
-2023-10-30 Richard Ball <richard.ball@arm.com>
-
- * config/arm/aout.h: Change to use the Lrtx label.
- * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Remove arm targets
- from (!target_pure_code) condition.
- (ADDR_VEC_ALIGN): Add align for tables in rodata section.
- * config/arm/arm.cc (arm_output_casesi): Alter the function to include
- .Lrtx label and remove adr instructions.
- * config/arm/arm.md
- (arm_casesi_internal): Use force_reg to generate ldr instructions that
- would otherwise be out of range, and change rtl to accommodate force reg.
- Additionally remove unnecessary register temp.
- (casesi): Remove pure code check for Arm.
- * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Remove arm
- targets from JUMP_TABLES_IN_TEXT_SECTION definition.
-
-2023-10-30 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
-
- PR target/106907
- * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Change bitwise
- xor to an equality and fix comment indentation.
-
-2023-10-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (sew64_scalar_helper): Fix bug.
- * config/riscv/riscv-v.cc (sew64_scalar_helper): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-10-30 liuhongt <hongtao.liu@intel.com>
-
- PR target/104610
- * config/i386/i386-expand.cc (ix86_expand_branch): Handle
- 512-bit vector with vpcmpeq + kortest.
- * config/i386/i386.md (cbranchxi4): New expander.
- * config/i386/sse.md: (cbranch<mode>4): Extend to V16SImode
- and V8DImode.
-
-2023-10-30 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/111449
- * expr.cc (qi_vector_mode_supported_p): Rename to...
- (by_pieces_mode_supported_p): ...this, and extends it to do
- the checking for both scalar and vector mode.
- (widest_fixed_size_mode_for_size): Call
- by_pieces_mode_supported_p to examine the mode.
- (op_by_pieces_d::smallest_fixed_size_mode_for_size): Likewise.
-
-2023-10-29 Martin Uecker <uecker@tugraz.at>
-
- PR tree-optimization/109334
- * tree-object-size.cc (parm_object_size): Allow size
- computation for implicit access attributes.
-
-2023-10-29 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/xtensa.h (TARGET_SALT): Change HW version from
- 260000 (which corresponds to RF-2014.0) to 270000 (which
- corresponds to RG-2015.0, the release where salt/saltu opcodes
- were introduced).
-
-2023-10-29 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Use
- reference type to prevent copying.
+2024-02-05 Richard Biener <rguenther@suse.de>
-2023-10-27 Vladimir N. Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/112107
- * ira-costs.cc: (calculate_equiv_gains): Use NONDEBUG_INSN_P
- instead of INSN_P.
-
-2023-10-27 Andrew Stubbs <ams@codesourcery.com>
-
- PR target/112088
- * config/gcn/gcn.cc (gcn_expand_epilogue): Fix kernel epilogue register
- conflict.
-
-2023-10-27 Andrew Stubbs <ams@codesourcery.com>
+ PR tree-optimization/113707
+ * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
+ checking the avail set treat out-of-region defines as
+ available.
- * config/gcn/gcn-valu.md
- (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): Mention "operands" in
- condition to silence the warnings.
- (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): Likewise.
- * config/gcn/gcn.md (*movti_insn): Likewise.
-
-2023-10-27 Richard Sandiford <richard.sandiford@arm.com>
-
- * recog.cc (insn_propagation::apply_to_pattern_1): Handle shared
- ASM_OPERANDS.
-
-2023-10-27 Yangyu Chen <chenyangyu@isrc.iscas.ac.cn>
-
- * config/riscv/riscv.cc (rocket_tune_info): Fix int_div cost.
- (sifive_7_tune_info, thead_c906_tune_info): Likewise.
-
-2023-10-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (rawmemchr<ANYI:mode>): New expander.
- * config/riscv/riscv-protos.h (gen_no_side_effects_vsetvl_rtx):
- Define.
- (expand_rawmemchr): Define.
- * config/riscv/riscv-v.cc (force_vector_length_operand): Remove
- static.
- (expand_block_move): Move from here...
- * config/riscv/riscv-string.cc (expand_block_move): ...to here.
- (expand_rawmemchr): Add vectorized expander.
- * internal-fn.cc (expand_RAWMEMCHR): Fix typo.
-
-2023-10-27 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira-costs.cc: (get_equiv_regno, calculate_equiv_gains):
- Process reg equivalence invariants.
-
-2023-10-27 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/x86-tune.def (X86_TUNE_PARTIAL_MEMORY_READ_STALL):
- i386: Fiy typo in "partial_memory_read_stall" tune option.
-
-2023-10-27 Victor Do Nascimento <victor.donascimento@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_print_operand): Add
- support for CONST_STRING.
-
-2023-10-27 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110551
- * config/i386/i386.md (<u>mul<mode><dwi>3): Make operands 1 and
- 2 take "regiser_operand" and "nonimmediate_operand" respectively.
- (<u>mulqihi3): Likewise.
- (*bmi2_umul<mode><dwi>3_1): Operand 2 needs to be register_operand
- matching the %d constraint. Use umul_highpart RTX to represent
- the highpart multiplication.
- (*umul<mode><dwi>3_1): Operand 2 should use regiser_operand
- predicate, and "a" rather than "0" as operands 0 and 2 have
- different modes.
- (define_split): For mul to mulx conversion, use the new
- umul_highpart RTX representation.
- (*mul<mode><dwi>3_1): Operand 1 should be register_operand
- and the constraint %a as operands 0 and 1 have different modes.
- (*<u>mulqihi3_1): Operand 1 should be register_operand matching
- the constraint %0.
- (define_peephole2): Providing widening multiplication variants
- of the peephole2s that tweak highpart multiplication register
- allocation.
-
-2023-10-27 Lewis Hyatt <lhyatt@gmail.com>
-
- PR preprocessor/87299
- * toplev.cc (no_backend): New static global.
- (finalize): Remove argument no_backend, which is now a
- static global.
- (process_options): Likewise.
- (do_compile): Likewise.
- (target_reinit): Don't do anything in preprocess-only mode.
- (toplev::main): Adapt to no_backend change.
- (toplev::finalize): Likewise.
-
-2023-10-27 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/101590
- PR tree-optimization/94884
- * match.pd (`(X BIT_OP Y) CMP X`): New pattern.
-
-2023-10-27 liuhongt <hongtao.liu@intel.com>
-
- PR target/103861
- * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle
- V2HF/V2BF/V4HF/V4BFmode.
- * config/i386/i386.cc (ix86_get_mask_mode): Return QImode when
- data_mode is V4HF/V2HFmode.
- * config/i386/mmx.md (vec_cmpv4hfqi): New expander.
- (vcond_mask_<mode>v4hi): Ditto.
- (vcond_mask_<mode>qi): Ditto.
- (vec_cmpv2hfqi): Ditto.
- (vcond_mask_<mode>v2hi): Ditto.
- (mmx_plendvb_<mode>): Add 2 combine splitters after the
- patterns.
- (mmx_pblendvb_v8qi): Ditto.
- (<code>v2hi3): Add a combine splitter after the pattern.
- (<code><mode>3): Ditto.
- (<code>v8qi3): Ditto.
- (<code><mode>3): Ditto.
- * config/i386/sse.md (vcond<mode><mode>): Merge this with ..
- (vcond<sseintvecmodelower><mode>): .. this into ..
- (vcond<VI2HFBF_AVX512VL:mode><VHF_AVX512VL:mode>): .. this,
- and extend to V8BF/V16BF/V32BFmode.
-
-2023-10-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-opts.h (TARGET_MAX_LMUL): New macro.
- * config/riscv/riscv-v.cc (preferred_simd_mode): Adapt macro.
- (autovectorize_vector_modes): Ditto.
- (can_find_related_mode_p): Ditto.
-
-2023-10-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111318
- PR target/111888
- * config.gcc: Add AVL propagation pass.
- * config/riscv/riscv-passes.def (INSERT_PASS_AFTER): Ditto.
- * config/riscv/riscv-protos.h (make_pass_avlprop): Ditto.
- * config/riscv/t-riscv: Ditto.
- * config/riscv/riscv-avlprop.cc: New file.
-
-2023-10-26 David Malcolm <dmalcolm@redhat.com>
-
- * doc/extend.texi (Common Function Attributes): Add
- null_terminated_string_arg.
-
-2023-10-26 Andrew Pinski <pinskia@gmail.com>
-
- PR tree-optimization/111957
- * match.pd (`a != C1 ? abs(a) : C2`): New pattern.
-
-2023-10-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (range_operator::fold_range): Delete unused
- variable.
-
-2023-10-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (range_operator::fold_range): Remove
- superfluous code.
- (range_operator::rv_fold): Remove unneeded arguments.
- (operator_plus::rv_fold): Same.
- (operator_minus::rv_fold): Same.
- (operator_mult::rv_fold): Same.
- (operator_div::rv_fold): Same.
- * range-op-mixed.h: Remove lb, ub, and maybe_nan arguments from
- rv_fold methods.
- * range-op.h: Same.
-
-2023-10-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (range_operator::fold_range): Pass frange
- argument to rv_fold.
- (range_operator::rv_fold): Add frange argument.
- (operator_plus::rv_fold): Same.
- (operator_minus::rv_fold): Same.
- (operator_mult::rv_fold): Same.
- (operator_div::rv_fold): Same.
- * range-op-mixed.h: Add frange argument to rv_fold methods.
- * range-op.h: Same.
-
-2023-10-26 Richard Ball <richard.ball@arm.com>
-
- * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Add table output
- for different machine modes for arm.
- * config/arm/arm-protos.h (arm_output_casesi): New prototype.
- * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Make arm use
- ASM_OUTPUT_ADDR_DIFF_ELT.
- (CASE_VECTOR_SHORTEN_MODE): Change table size calculation for
- TARGET_ARM.
- (LABEL_ALIGN_AFTER_BARRIER): Change to accommodate .p2align 2
- for TARGET_ARM.
- * config/arm/arm.cc (arm_output_casesi): New function.
- * config/arm/arm.md (arm_casesi_internal): Change casesi expand
- and insn.
- for arm to use new function arm_output_casesi.
-
-2023-10-26 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.h
- (darwin_label_is_anonymous_local_objc_name): Make metadata names
- linker-visibile for GNU objective C.
-
-2023-10-26 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * dwarf2out.cc (reg_loc_descriptor): Use lra_eliminate_regs when
- LRA is used.
- * ira-costs.cc: Include regset.h.
- (equiv_can_be_consumed_p, get_equiv_regno, calculate_equiv_gains):
- New functions.
- (find_costs_and_classes): Call calculate_equiv_gains and redefine
- mem_cost of pseudos with equivs when LRA is used.
- * var-tracking.cc: Include ira.h and lra.h.
- (vt_initialize): Use lra_eliminate_regs when LRA is used.
-
-2023-10-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * doc/md.texi: Adapt COND_LEN pseudo code.
-
-2023-10-26 Roger Sayle <roger@nextmovesoftware.com>
- Richard Biener <rguenther@suse.de>
+2024-02-05 Richard Biener <rguenther@suse.de>
- PR rtl-optimization/91865
- * combine.cc (make_compound_operation): Avoid creating a
- ZERO_EXTEND of a ZERO_EXTEND.
-
-2023-10-26 Jiahao Xu <xujiahao@loongson.cn>
-
- * config/loongarch/lasx.md (vcond_mask_<ILASX:mode><ILASX:mode>): Change to
- (vcond_mask_<mode><mode256_i>): this.
- * config/loongarch/lsx.md (vcond_mask_<ILSX:mode><ILSX:mode>): Change to
- (vcond_mask_<mode><mode_i>): this.
-
-2023-10-26 Thomas Schwinge <thomas@codesourcery.com>
-
- * ipa-icf.cc (sem_item::target_supports_symbol_aliases_p):
- 'gcc_checking_assert (TARGET_SUPPORTS_ALIASES);' before
- 'return true;'.
- * ipa-visibility.cc (function_and_variable_visibility): Change
- '#ifdef ASM_OUTPUT_DEF' to 'if (TARGET_SUPPORTS_ALIASES)'.
- * varasm.cc (output_constant_pool_contents)
- [#ifdef ASM_OUTPUT_DEF]:
- 'gcc_checking_assert (TARGET_SUPPORTS_ALIASES);'.
- (do_assemble_alias) [#ifdef ASM_OUTPUT_DEF]:
- 'if (!TARGET_SUPPORTS_ALIASES)',
- 'gcc_checking_assert (seen_error ());'.
- (assemble_alias): Change '#if !defined (ASM_OUTPUT_DEF)' to
- 'if (!TARGET_SUPPORTS_ALIASES)'.
- (default_asm_output_anchor):
- 'gcc_checking_assert (TARGET_SUPPORTS_ALIASES);'.
-
-2023-10-26 Alexandre Oliva <oliva@adacore.com>
-
- PR tree-optimization/111520
- * gimple-harden-conditionals.cc
- (pass_harden_compares::execute): Set EH edge probability and
- EH block execution count.
-
-2023-10-26 Alexandre Oliva <oliva@adacore.com>
-
- * tree-eh.h (make_eh_edges): Rename to...
- (make_eh_edge): ... this.
- * tree-eh.cc: Likewise. Adjust all callers...
- * gimple-harden-conditionals.cc: ... here, ...
- * gimple-harden-control-flow.cc: ... here, ...
- * tree-cfg.cc: ... here, ...
- * tree-inline.cc: ... and here.
-
-2023-10-25 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.cc (darwin_override_options): Handle fPIE.
-
-2023-10-25 Iain Sandoe <iain@sandoe.co.uk>
-
- * config.gcc: Use -E to to sed to indicate that we are using
- extended REs.
-
-2023-10-25 Jason Merrill <jason@redhat.com>
-
- * tree-core.h (struct tree_base): Update address_space comment.
-
-2023-10-25 Wilco Dijkstra <wilco.dijkstra@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
- Add support for immediates using MOV/EOR bitmask.
-
-2023-10-25 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/111698
- * config/i386/x86-tune.def (X86_TUNE_PARTIAL_MEMORY_READ_STALL):
- New tune.
- * config/i386/i386.h (TARGET_PARTIAL_MEMORY_READ_STALL): New macro.
- * config/i386/i386.md: New peephole pattern to narrow test
- instructions with immediate operands that test memory locations
- for zero.
-
-2023-10-25 Andrew MacLeod <amacleod@redhat.com>
-
- * value-range.cc (irange::union_append): New.
- (irange::union_): Call union_append when appropriate.
- * value-range.h (irange::union_append): New prototype.
-
-2023-10-25 Chenghui Pan <panchenghui@loongson.cn>
-
- * config/loongarch/lasxintrin.h (__lasx_xvftintrnel_l_s): Fix comments.
- (__lasx_xvfrintrne_s): Ditto.
- (__lasx_xvfrintrne_d): Ditto.
- (__lasx_xvfrintrz_s): Ditto.
- (__lasx_xvfrintrz_d): Ditto.
- (__lasx_xvfrintrp_s): Ditto.
- (__lasx_xvfrintrp_d): Ditto.
- (__lasx_xvfrintrm_s): Ditto.
- (__lasx_xvfrintrm_d): Ditto.
- * config/loongarch/lsxintrin.h (__lsx_vftintrneh_l_s): Ditto.
- (__lsx_vfrintrne_s): Ditto.
- (__lsx_vfrintrne_d): Ditto.
- (__lsx_vfrintrz_s): Ditto.
- (__lsx_vfrintrz_d): Ditto.
- (__lsx_vfrintrp_s): Ditto.
- (__lsx_vfrintrp_d): Ditto.
- (__lsx_vfrintrm_s): Ditto.
- (__lsx_vfrintrm_d): Ditto.
-
-2023-10-25 chenxiaolong <chenxiaolong@loongson.cn>
-
- * config/loongarch/loongarch.md (get_thread_pointer<mode>):Adds the
- instruction template corresponding to the __builtin_thread_pointer
- function.
- * doc/extend.texi:Add the __builtin_thread_pointer function support
- description to the documentation.
-
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * Makefile.in (OBJS): Add rtl-ssa/movement.o.
- * rtl-ssa/access-utils.h (accesses_include_nonfixed_hard_registers)
- (single_set_info): New functions.
- (remove_uses_of_def, accesses_reference_same_resource): Declare.
- (insn_clobbers_resources): Likewise.
- * rtl-ssa/accesses.cc (rtl_ssa::remove_uses_of_def): New function.
- (rtl_ssa::accesses_reference_same_resource): Likewise.
- (rtl_ssa::insn_clobbers_resources): Likewise.
- * rtl-ssa/movement.h (can_move_insn_p): Declare.
- * rtl-ssa/movement.cc: New file.
-
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl-ssa/functions.h (function_info::remains_available_at_insn):
- New member function.
- * rtl-ssa/accesses.cc (function_info::remains_available_at_insn):
- Likewise.
- (function_info::make_use_available): Avoid false negatives for
- queries within an EBB.
-
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl-ssa/changes.cc: Include sreal.h.
- (rtl_ssa::changes_are_worthwhile): When optimizing for speed,
- scale the cost of each instruction by its execution frequency.
-
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl-ssa/access-utils.h (next_call_clobbers): New function.
- (is_single_dominating_def, remains_available_on_exit): Replace with...
- * rtl-ssa/functions.h (function_info::is_single_dominating_def)
- (function_info::remains_available_on_exit): ...these new member
- functions.
- (function_info::m_clobbered_by_calls): New member variable.
- * rtl-ssa/functions.cc (function_info::function_info): Explicitly
- initialize m_clobbered_by_calls.
- * rtl-ssa/insns.cc (function_info::record_call_clobbers): Update
- m_clobbered_by_calls for each call-clobber note.
- * rtl-ssa/member-fns.inl (function_info::is_single_dominating_def):
- New function. Check for call clobbers.
- * rtl-ssa/accesses.cc (function_info::remains_available_on_exit):
- Likewise.
+ * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
+ the default mode when building a pointer.
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-05 Jakub Jelinek <jakub@redhat.com>
- * rtl-ssa/internals.h (build_info::exit_block_dominator): New
- member variable.
- * rtl-ssa/blocks.cc (build_info::build_info): Initialize it.
- (bb_walker::bb_walker): Use it, moving the computation of the
- dominator to...
- (function_info::process_all_blocks): ...here.
- (function_info::place_phis): Add dominance frontiers for the
- exit block.
+ PR tree-optimization/113737
+ * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
+ has just a single label, remove it and make single successor edge
+ EDGE_FALLTHRU.
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-05 Jakub Jelinek <jakub@redhat.com>
- * rtl-ssa/functions.h (function_info::process_uses_of_deleted_def):
- New member function.
- * rtl-ssa/changes.cc (function_info::process_uses_of_deleted_def):
- Likewise.
- (function_info::change_insns): Use it.
+ PR target/113059
+ * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
+ Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
+ df_analyze call.
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-05 Richard Biener <rguenther@suse.de>
- * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
- If a change describes a set of memory, ensure that that set
- is kept, regardless of the insn pattern.
-
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl-ssa/changes.cc (function_info::apply_changes_to_insn): Remove
- call to add_reg_unused_notes and instead...
- (function_info::change_insns): ...use a separate loop here.
-
-2023-10-25 Richard Sandiford <richard.sandiford@arm.com>
-
- * rtl-ssa/blocks.cc (function_info::add_artificial_accesses): Force
- global registers to be live on exit. Handle any block with zero
- successors like an exit block.
-
-2023-10-25 Thomas Schwinge <thomas@codesourcery.com>
-
- * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
- Handle 'OMP_CLAUSE_SELF' like 'OMP_CLAUSE_IF'.
- * omp-expand.cc (expand_omp_target): Handle 'OMP_CLAUSE_SELF' for
- 'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'.
-
-2023-10-25 Thomas Schwinge <thomas@codesourcery.com>
-
- * tree-core.h (omp_clause_code): Move 'OMP_CLAUSE_SELF' after
- 'OMP_CLAUSE_IF'.
- * tree-pretty-print.cc (dump_omp_clause): Adjust.
- * tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise.
- * tree.h: Likewise.
-
-2023-10-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (has_vl_op): Export from riscv-vsetvl to riscv-v
- (tail_agnostic_p): Ditto.
- (validate_change_or_fail): Ditto.
- (nonvlmax_avl_type_p): Ditto.
- (vlmax_avl_p): Ditto.
- (get_sew): Ditto.
- (enum vlmul_type): Ditto.
- (count_regno_occurrences): Ditto.
- * config/riscv/riscv-v.cc (has_vl_op): Ditto.
- (get_default_ta): Ditto.
- (tail_agnostic_p): Ditto.
- (validate_change_or_fail): Ditto.
- (nonvlmax_avl_type_p): Ditto.
- (vlmax_avl_p): Ditto.
- (get_sew): Ditto.
- (enum vlmul_type): Ditto.
- (get_vlmul): Ditto.
- (count_regno_occurrences): Ditto.
- * config/riscv/riscv-vsetvl.cc (vlmax_avl_p): Ditto.
- (has_vl_op): Ditto.
- (get_sew): Ditto.
- (get_vlmul): Ditto.
- (get_default_ta): Ditto.
- (tail_agnostic_p): Ditto.
- (count_regno_occurrences): Ditto.
- (validate_change_or_fail): Ditto.
-
-2023-10-25 Chung-Lin Tang <cltang@codesourcery.com>
-
- * gimplify.cc (gimplify_scan_omp_clauses): Add OMP_CLAUSE_SELF case.
- (gimplify_adjust_omp_clauses): Likewise.
- * omp-expand.cc (expand_omp_target): Add OMP_CLAUSE_SELF expansion code,
- * omp-low.cc (scan_sharing_clauses): Add OMP_CLAUSE_SELF case.
- * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_SELF enum.
- * tree-nested.cc (convert_nonlocal_omp_clauses): Add OMP_CLAUSE_SELF
- case.
- (convert_local_omp_clauses): Likewise.
- * tree-pretty-print.cc (dump_omp_clause): Add OMP_CLAUSE_SELF case.
- * tree.cc (omp_clause_num_ops): Add OMP_CLAUSE_SELF entry.
- (omp_clause_code_name): Likewise.
- * tree.h (OMP_CLAUSE_SELF_EXPR): New macro.
-
-2023-10-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (vlmax_avl_type_p): New function.
- * config/riscv/riscv-v.cc (vlmax_avl_type_p): Ditto.
- * config/riscv/riscv-vsetvl.cc (get_avl): Adapt function.
- * config/riscv/vector.md: Change avl_type into avl_type_idx.
-
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
-
- * recog.cc (constrain_operands): Remove UNARY_P handling.
- * reload.cc (find_reloads): Likewise.
-
-2023-10-24 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * gcov-io.h: Fix record length encoding in comment.
-
-2023-10-24 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-features.cc (compute_convert_gain): Provide
- more accurate values (sizes) for inter-unit moves with -Os.
+ PR target/113255
+ * config/i386/i386-expand.cc
+ (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
+ Use a new pseudo for the skipped number of bytes.
-2023-10-24 Roger Sayle <roger@nextmovesoftware.com>
- Claudiu Zissulescu <claziss@gmail.com>
+2024-02-05 Monk Chiang <monk.chiang@sifive.com>
- * config/arc/arc-protos.h (output_shift): Rename to...
- (output_shift_loop): Tweak API to take an explicit rtx_code.
- (arc_split_ashl): Prototype new function here.
- (arc_split_ashr): Likewise.
- (arc_split_lshr): Likewise.
- (arc_split_rotl): Likewise.
- (arc_split_rotr): Likewise.
- * config/arc/arc.cc (output_shift): Delete local prototype. Rename.
- (output_shift_loop): New function replacing output_shift to output
- a zero overheap loop for SImode shifts and rotates on ARC targets
- without barrel shifter (i.e. no hardware support for these insns).
- (arc_split_ashl): New helper function to split *ashlsi3_nobs.
- (arc_split_ashr): New helper function to split *ashrsi3_nobs.
- (arc_split_lshr): New helper function to split *lshrsi3_nobs.
- (arc_split_rotl): New helper function to split *rotlsi3_nobs.
- (arc_split_rotr): New helper function to split *rotrsi3_nobs.
- (arc_print_operand): Correct whitespace.
- (arc_rtx_costs): Likewise.
- (hwloop_optimize): Likewise.
- * config/arc/arc.md (ANY_SHIFT_ROTATE): New define_code_iterator.
- (define_code_attr insn): New code attribute to map to pattern name.
- (<ANY_SHIFT_ROTATE>si3): New expander unifying previous ashlsi3,
- ashrsi3 and lshrsi3 define_expands. Adds rotlsi3 and rotrsi3.
- (*<ANY_SHIFT_ROTATE>si3_nobs): New define_insn_and_split that
- unifies the previous *ashlsi3_nobs, *ashrsi3_nobs and *lshrsi3_nobs.
- We now call arc_split_<insn> in arc.cc to implement each split.
- (shift_si3): Delete define_insn, all shifts/rotates are now split.
- (shift_si3_loop): Rename to...
- (<insn>si3_loop): define_insn to handle loop implementations of
- SImode shifts and rotates, calling ouput_shift_loop for template.
- (rotrsi3): Rename to...
- (*rotrsi3_insn): define_insn for TARGET_BARREL_SHIFTER's ror.
- (*rotlsi3): New define_insn_and_split to transform left rotates
- into right rotates before reload.
- (rotlsi3_cnt1): New define_insn_and_split to implement a left
- rotate by one bit using an add.f followed by an adc.
- * config/arc/predicates.md (shiftr4_operator): Delete.
+ * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
+ * doc/invoke.texi (RISC-V Options): Add sifive-p450,
+ sifive-p670.
-2023-10-24 Claudiu Zissulescu <claziss@gmail.com>
+2024-02-05 Monk Chiang <monk.chiang@sifive.com>
- * config/arc/arc.md (mulsi3_700): Update pattern.
- (mulsi3_v2): Likewise.
- * config/arc/predicates.md (mpy_dest_reg_operand): Remove it.
+ * config/riscv/riscv.md: Include sifive-p400.md.
+ * config/riscv/sifive-p400.md: New file.
+ * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
+ * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
+ Add sifive_p400.
+ * config/riscv/riscv.cc (sifive_p400_tune_info): New.
+ * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
+ * doc/invoke.texi (RISC-V Options): Add sifive-p400-series
-2023-10-24 Andrew Pinski <pinskia@gmail.com>
+2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
- PR tree-optimization/104376
- PR tree-optimization/101541
- * tree-ssa-phiopt.cc (factor_out_conditional_operation):
- Allow nop conversions even if it is defined by a statement
- inside the conditional.
+ * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
+ Add missing ":SI" to the match_operator.
-2023-10-24 Andrew Pinski <pinskia@gmail.com>
+2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
- PR tree-optimization/111913
- * match.pd (`popcount(X&Y) + popcount(X|Y)`): Add the resulting
- type for popcount.
+ * config/xtensa/xtensa.md (SHI): New mode iterator.
+ (2 split patterns related to constsynth):
+ Change to also accept HImode operands.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-04 Jeff Law <jlaw@ventanamicro.com>
- * rtl-ssa/blocks.cc (function_info::create_degenerate_phi): Check
- whether the requested phi already exists.
+ * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
+ similarly.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-04 Xi Ruoyao <xry111@xry111.site>
- * rtl-ssa.h: Include cfgbuild.h.
- * rtl-ssa/movement.h (can_insert_after): Replace is_jump with the
- more comprehensive control_flow_insn_p.
+ * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
+ incorrect expand.
+ * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
+ (elmsgnbit): Likewise.
+ (neg<mode:FVEC>2): New define_insn.
+ * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
+ are now instantiated in simd.md.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-04 Xi Ruoyao <xry111@xry111.site>
- * rtl-ssa/changes.cc (function_info::perform_pending_updates): Check
- whether an insn has been replaced by a note.
+ * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
+ use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
+ MAX_MACHINE_MODE.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-04 Li Wei <liwei@loongson.cn>
- * rtl-ssa/member-fns.inl (first_any_insn_use): Handle null
- m_first_use.
+ * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
+ (loongarch_expand_vselect_vconcat): Ditto.
+ (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
+ all 128-bit constant permutation situations.
+ (loongarch_expand_lsx_shuffle): Adjust and rename function name.
+ (loongarch_is_imm_set_shuffle): Renamed function name.
+ (loongarch_expand_vec_perm_even_odd): Function forward declaration.
+ (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
+ extract-even and extract-odd permutations.
+ (loongarch_is_odd_extraction): Delete.
+ (loongarch_is_even_extraction): Ditto.
+ (loongarch_expand_vec_perm_const): Adjust.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-03 Jakub Jelinek <jakub@redhat.com>
- * config/i386/i386-expand.cc (ix86_split_mmx_punpck): Allow the
- destination to be wider than the sources. Take the mode from the
- first source.
- (ix86_expand_sse_extend): Pass the destination directly to
- ix86_split_mmx_punpck, rather than using a fresh register that
- is half the size.
+ PR middle-end/113722
+ * wide-int.cc (wi::bswap_large): Rename third argument from
+ len to xlen and adjust use in safe_uhwi. Add len variable, set
+ it to BLOCKS_NEEDED (precision) and use it for clearing of val
+ and as canonize argument. Clear val using memset instead of
+ a loop.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-03 Jakub Jelinek <jakub@redhat.com>
- * config/i386/predicates.md (aeswidekl_operation): Protect
- REGNO check with REG_P.
+ * ggc-common.cc (gt_pch_save): Allow addr to be equal to
+ mmi.preferred_base + mmi.size - sizeof (void *).
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-03 Xi Ruoyao <xry111@xry111.site>
- * config/aarch64/aarch64.cc (aarch64_insn_cost): New function.
- (TARGET_INSN_COST): Define.
+ * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
+ * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
+ the ODR-violating locale declaration.
-2023-10-24 Richard Sandiford <richard.sandiford@arm.com>
+2024-02-02 Tamar Christina <tamar.christina@arm.com>
- * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>): Require
- !TARGET_LSE.
+ PR tree-optimization/113588
+ PR tree-optimization/113467
+ * tree-vect-data-refs.cc
+ (vect_analyze_data_ref_dependence): Choose correct dest and fix checks.
+ (vect_analyze_early_break_dependences): Update comments.
-2023-10-24 xuli <xuli1@eswincomputing.com>
+2024-02-02 John David Anglin <danglin@gcc.gnu.org>
- PR target/111935
- * config/riscv/riscv-vector-builtins-bases.cc: fix bug.
+ PR target/59778
+ * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
+ and PA_BUILTIN_SET_FPSR builtins.
+ * (pa_builtins_icode): Declare.
+ * (def_builtin, pa_fpu_init_builtins): New.
+ * (pa_init_builtins): Initialize FPU builtins.
+ * (pa_builtin_decl, pa_expand_builtin_1): New.
+ * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
+ PA_BUILTIN_SET_FPSR builtins.
+ * (pa_atomic_assign_expand_fenv): New.
+ * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
+ UNSPECV constants.
+ (get_fpsr, put_fpsr): New expanders.
+ (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
+ insn patterns.
-2023-10-24 Mark Harmstone <mark@harmstone.com>
+2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * opts.cc (debug_type_names): Remove stabs and xcoff.
- (df_set_names): Adjust.
+ PR target/113697
+ * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
-2023-10-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-02-02 Jonathan Wakely <jwakely@redhat.com>
- PR target/111947
- * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Add REGNO check.
+ * doc/extend.texi (Common Type Attributes): Fix typo in
+ description of hardbool.
-2023-10-23 Lewis Hyatt <lhyatt@gmail.com>
+2024-02-02 Jakub Jelinek <jakub@redhat.com>
- PR preprocessor/36887
- * toplev.h (ident_hash_extra): Declare...
- * stringpool.cc (ident_hash_extra): ...this new global variable.
- (init_stringpool): Handle ident_hash_extra as well as ident_hash.
- (ggc_mark_stringpool): Likewise.
- (ggc_purge_stringpool): Likewise.
- (struct string_pool_data_extra): New struct.
- (spd2): New GC root variable.
- (gt_pch_save_stringpool): Use spd2 to handle ident_hash_extra,
- analogous to how spd is used to handle ident_hash.
- (gt_pch_restore_stringpool): Likewise.
+ PR tree-optimization/113692
+ * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
+ from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
+ final_cast_p.
-2023-10-23 Robin Dapp <rdapp@ventanamicro.com>
+2024-02-02 Jakub Jelinek <jakub@redhat.com>
- PR tree-optimization/111794
- * tree-vect-stmts.cc (vectorizable_assignment): Add
- same-precision exception for dest and source.
+ PR middle-end/113699
+ * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
+ uninitialized large/huge _BitInt SSA_NAME inputs.
-2023-10-23 Robin Dapp <rdapp@ventanamicro.com>
+2024-02-02 Jakub Jelinek <jakub@redhat.com>
- * config/riscv/autovec.md (popcount<mode>2): New expander.
- * config/riscv/riscv-protos.h (expand_popcount): Define.
- * config/riscv/riscv-v.cc (expand_popcount): Vectorize popcount
- with the WWG algorithm.
+ PR middle-end/113705
+ * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
+ around wi::to_wide in order to compare value in prec precision.
-2023-10-23 Richard Biener <rguenther@suse.de>
+2024-02-02 Lehua Ding <lehua.ding@rivai.ai>
- PR tree-optimization/111916
- * tree-sra.cc (sra_modify_assign): Do not lower all
- BIT_FIELD_REF reads that are sra_handled_bf_read_p.
+ Revert:
+ 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-10-23 Richard Biener <rguenther@suse.de>
+ * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
- PR tree-optimization/111915
- * tree-vect-slp.cc (vect_build_slp_tree_1): Check all
- accesses are either grouped or not.
+2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-10-23 Richard Biener <rguenther@suse.de>
+ * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
- PR ipa/111914
- * tree-inline.cc (setup_one_parameter): Move code emitting
- a dummy load when not optimizing ...
- (initialize_inlined_parameters): ... here to after when
- we remapped the parameter type.
+2024-02-02 Pan Li <pan2.li@intel.com>
-2023-10-23 Oleg Endo <olegendo@gcc.gnu.org>
+ * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
+ (riscv_pass_by_reference): Ditto.
+ (riscv_fntype_abi): Ditto.
- PR target/111001
- * config/sh/sh_treg_combine.cc (sh_treg_combine::record_set_of_reg):
- Skip over nop move insns.
+2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-10-23 Tamar Christina <tamar.christina@arm.com>
+ * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
+ (pre_vsetvl::cleaup): Remove vsetvl_pre.
+ (pre_vsetvl::remove_vsetvl_pre_insns): New function.
- PR tree-optimization/111860
- * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
- Drop .MEM nodes only.
+2024-02-02 Jiahao Xu <xujiahao@loongson.cn>
-2023-10-23 Andrew Pinski <apinski@marvell.com>
+ * config/loongarch/larchintrin.h
+ (__frecipe_s): Update function return type.
+ (__frecipe_d): Ditto.
+ (__frsqrte_s): Ditto.
+ (__frsqrte_d): Ditto.
- * match.pd (`(A - B) CMP 0 ? (A - B) : (B - A)`):
- New patterns.
+2024-02-02 Li Wei <liwei@loongson.cn>
-2023-10-23 Andrew Pinski <pinskia@gmail.com>
+ * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
+ (loongarch_vector_costs::add_stmt_cost): Adjust.
- * convert.cc (convert_to_pointer_1): Return error_mark_node
- after an error.
- (convert_to_real_1): Likewise.
- (convert_to_integer_1): Likewise.
- (convert_to_complex_1): Likewise.
+2024-02-02 Xi Ruoyao <xry111@xry111.site>
-2023-10-23 Andrew Pinski <pinskia@gmail.com>
+ * config/loongarch/loongarch.md (unspec): Add
+ UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
+ (la_pcrel64_two_parts): New define_insn.
+ * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
+ typo in the comment.
+ (loongarch_call_tls_get_addr): If -mcmodel=extreme
+ -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
+ addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL
+ note to allow CSE addressing __tls_get_addr.
+ (loongarch_legitimize_tls_address): If -mcmodel=extreme
+ -mexplicit-relocs={always,auto}, address TLS IE symbols with
+ la_pcrel64_two_parts.
+ (loongarch_split_symbol): If -mcmodel=extreme
+ -mexplicit-relocs={always,auto}, address symbols with
+ la_pcrel64_two_parts.
+ (loongarch_output_mi_thunk): Clean up unreachable code. If
+ -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
+ thunks with la_pcrel64_two_parts.
- PR c/111903
- * convert.cc (convert_to_complex_1): Return
- error_mark_node if either convert was an error
- when converting from a scalar.
+2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
-2023-10-23 Richard Biener <rguenther@suse.de>
+ * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
+ Add support for call36.
- PR tree-optimization/111917
- * tree-ssa-loop-unswitch.cc (hoist_guard): Always insert
- new conditional after last stmt.
+2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
-2023-10-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+ * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ When the code model of the symbol is extreme and -mexplicit-relocs=auto,
+ the macro instruction loading symbol address is not applicable.
+ (loongarch_call_tls_get_addr): Adjust code.
+ (loongarch_legitimize_tls_address): Likewise.
- PR target/111927
- * config/riscv/riscv-vsetvl.cc: Fix bug.
+2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
-2023-10-23 Pan Li <pan2.li@intel.com>
+ * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
+ Add function declaration.
+ * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
+ For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
+ is not allowed
+ (loongarch_load_tls): Added macro support in extreme mode.
+ (loongarch_call_tls_get_addr): Likewise.
+ (loongarch_legitimize_tls_address): Likewise.
+ (loongarch_force_address): Likewise.
+ (loongarch_legitimize_move): Likewise.
+ (loongarch_output_mi_thunk): Likewise.
+ (loongarch_option_override_internal): Remove the code that detects
+ explicit relocs status.
+ (loongarch_handle_model_attribute): Likewise.
+ * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
+ * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
+ (symbolic_off64_or_reg_operand): Likewise.
+
+2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config/loongarch/loongarch.cc (loongarch_load_tls):
+ Load all types of tls symbols through one function.
+ (loongarch_got_load_tls_gd): Delete.
+ (loongarch_got_load_tls_ld): Delete.
+ (loongarch_got_load_tls_ie): Delete.
+ (loongarch_got_load_tls_le): Delete.
+ (loongarch_call_tls_get_addr): Modify the called function name.
+ (loongarch_legitimize_tls_address): Likewise.
+ * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
+ (@load_tls<mode>): New template.
+ (@got_load_tls_ld<mode>): Delete.
+ (@got_load_tls_le<mode>): Delete.
+ (@got_load_tls_ie<mode>): Delete.
- * config/riscv/riscv-v.cc (emit_vec_cvt_x_f_rtz): Add insn type
- arg.
- (expand_vec_trunc): Take MA instead of MU for cvt_x_f_rtz.
+2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
-2023-10-23 Xi Ruoyao <xry111@xry111.site>
+ * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
+ (loongarch_legitimize_address): Add logical transformation code.
- * doc/invoke.texi (-mexplicit-relocs=style): Document.
- (-mexplicit-relocs): Document as an alias of
- -mexplicit-relocs=always.
- (-mno-explicit-relocs): Document as an alias of
- -mexplicit-relocs=none.
- (-mcmodel=extreme): Mention -mexplicit-relocs=always instead of
- -mexplicit-relocs.
+2024-02-01 Marek Polacek <polacek@redhat.com>
-2023-10-23 Xi Ruoyao <xry111@xry111.site>
+ * doc/invoke.texi: Update -Wdangling-reference documentation.
- * config/loongarch/predicates.md (symbolic_pcrel_operand): New
- predicate.
- * config/loongarch/loongarch.md (define_peephole2): Optimize
- la.local + ld/st to pcalau12i + ld/st if the address is only used
- once if -mexplicit-relocs=auto and -mcmodel=normal or medium.
+2024-02-01 Uros Bizjak <ubizjak@gmail.com>
-2023-10-23 Xi Ruoyao <xry111@xry111.site>
+ PR target/113701
+ * config/i386/i386.md (*cmp<dwi>_doubleword):
+ Do not force SUBREG pieces to pseudos.
- * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
- Return true for TLS symbol types if -mexplicit-relocs=auto.
- (loongarch_call_tls_get_addr): Replace TARGET_EXPLICIT_RELOCS
- with la_opt_explicit_relocs != EXPLICIT_RELOCS_NONE.
- (loongarch_legitimize_tls_address): Likewise.
- * config/loongarch/loongarch.md (@tls_low<mode>): Remove
- TARGET_EXPLICIT_RELOCS from insn condition.
+2024-02-01 John David Anglin <danglin@gcc.gnu.org>
-2023-10-23 Xi Ruoyao <xry111@xry111.site>
+ * config/pa/pa.md (atomic_storedi_1): Fix bug in
+ alternative 1.
- * config/loongarch/loongarch-protos.h
- (loongarch_explicit_relocs_p): Declare new function.
- * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
- Implement.
- (loongarch_symbol_insns): Call loongarch_explicit_relocs_p for
- SYMBOL_GOT_DISP, instead of using TARGET_EXPLICIT_RELOCS.
- (loongarch_split_symbol): Call loongarch_explicit_relocs_p for
- deciding if return early, instead of using
- TARGET_EXPLICIT_RELOCS.
- (loongarch_output_move): CAll loongarch_explicit_relocs_p
- instead of using TARGET_EXPLICIT_RELOCS.
- * config/loongarch/loongarch.md (*low<mode>): Remove
- TARGET_EXPLICIT_RELOCS from insn condition.
- (@ld_from_got<mode>): Likewise.
- * config/loongarch/predicates.md (move_operand): Call
- loongarch_explicit_relocs_p instead of using
- TARGET_EXPLICIT_RELOCS.
-
-2023-10-23 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/genopts/loongarch-strings: Add strings for
- -mexplicit-relocs={auto,none,always}.
- * config/loongarch/genopts/loongarch.opt.in: Add options for
- -mexplicit-relocs={auto,none,always}.
- * config/loongarch/loongarch-str.h: Regenerate.
- * config/loongarch/loongarch.opt: Regenerate.
- * config/loongarch/loongarch-def.h
- (EXPLICIT_RELOCS_AUTO): Define.
- (EXPLICIT_RELOCS_NONE): Define.
- (EXPLICIT_RELOCS_ALWAYS): Define.
- (N_EXPLICIT_RELOCS_TYPES): Define.
- * config/loongarch/loongarch.cc
- (loongarch_option_override_internal): Error out if the old-style
- -m[no-]explicit-relocs option is used with
- -mexplicit-relocs={auto,none,always} together. Map
- -mno-explicit-relocs to -mexplicit-relocs=none and
- -mexplicit-relocs to -mexplicit-relocs=always for backward
- compatibility. Set a proper default for -mexplicit-relocs=
- based on configure-time probed linker capability. Update a
- diagnostic message to mention -mexplicit-relocs=always instead
- of the old-style -mexplicit-relocs.
- (loongarch_handle_model_attribute): Update a diagnostic message
- to mention -mexplicit-relocs=always instead of the old-style
- -mexplicit-relocs.
- * config/loongarch/loongarch.h (TARGET_EXPLICIT_RELOCS): Define.
-
-2023-10-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info): Fix typo.
- (pre_vsetvl::pre_global_vsetvl_info): Ditto.
+2024-02-01 Georg-Johann Lay <avr@gjlay.de>
-2023-10-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix avl_type attribute of tuple mov<mode>.
-
-2023-10-23 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/111784
- * tree-vect-stmts.cc (vectorizable_store): Adjust costing way for
- adjacent vector stores, by costing them with the total number
- rather than costing them one by one.
- (vectorizable_load): Adjust costing way for adjacent vector
- loads, by costing them with the total number rather than costing
- them one by one.
-
-2023-10-23 Haochen Jiang <haochen.jiang@intel.com>
-
- PR target/111753
- * config/i386/i386.cc (ix86_standard_x87sse_constant_load_p):
- Do not split to xmm16+ when !TARGET_AVX512VL.
-
-2023-10-23 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-protos.h (enum insn_type): Add new type
- values.
- * config/riscv/riscv-v.cc (emit_vec_cvt_x_f): Add undef merge
- operand handling.
- (expand_vec_ceil): Take MA instead of MU for tmp register.
- (expand_vec_floor): Ditto.
- (expand_vec_nearbyint): Ditto.
- (expand_vec_rint): Ditto.
- (expand_vec_round): Ditto.
- (expand_vec_roundeven): Ditto.
-
-2023-10-23 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch.h (CLEAR_INSN_CACHE): New definition.
-
-2023-10-23 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/111449
- * expr.cc (can_use_qi_vectors): New function to return true if
- we know how to implement OP using vectors of bytes.
- (qi_vector_mode_supported_p): New function to check if optabs
- exists for the mode and certain by pieces operations.
- (widest_fixed_size_mode_for_size): Replace the second argument
- with the type of by pieces operations. Call can_use_qi_vectors
- and qi_vector_mode_supported_p to do the check. Call
- scalar_mode_supported_p to check if the scalar mode is supported.
- (by_pieces_ninsns): Pass the type of by pieces operation to
- widest_fixed_size_mode_for_size.
- (class op_by_pieces_d): Remove m_qi_vector_mode. Add m_op to
- record the type of by pieces operations.
- (op_by_pieces_d::op_by_pieces_d): Change last argument to the
- type of by pieces operations, initialize m_op with it. Pass
- m_op to function widest_fixed_size_mode_for_size.
- (op_by_pieces_d::get_usable_mode): Pass m_op to function
- widest_fixed_size_mode_for_size.
- (op_by_pieces_d::smallest_fixed_size_mode_for_size): Call
- can_use_qi_vectors and qi_vector_mode_supported_p to do the
- check.
- (op_by_pieces_d::run): Pass m_op to function
- widest_fixed_size_mode_for_size.
- (move_by_pieces_d::move_by_pieces_d): Set m_op to MOVE_BY_PIECES.
- (store_by_pieces_d::store_by_pieces_d): Set m_op with the op.
- (can_store_by_pieces): Pass the type of by pieces operations to
- widest_fixed_size_mode_for_size.
- (clear_by_pieces): Initialize class store_by_pieces_d with
- CLEAR_BY_PIECES.
- (compare_by_pieces_d::compare_by_pieces_d): Set m_op to
- COMPARE_BY_PIECES.
+ * config/avr/avr.cc: Tabify.
-2023-10-23 liuhongt <hongtao.liu@intel.com>
+2024-02-01 Richard Ball <richard.ball@arm.com>
- PR tree-optimization/111820
- PR tree-optimization/111833
- * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Give
- up vectorization for nonlinear iv vect_step_op_mul when
- step_expr is not exact_log2 and niters is greater than
- TYPE_PRECISION (TREE_TYPE (step_expr)). Also don't vectorize
- for nagative niters_skip which will be used by fully masked
- loop.
- (vect_can_advance_ivs_p): Pass whole phi_info to
- vect_can_peel_nonlinear_iv_p.
- * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Optimize
- init_expr * pow (step_expr, skipn) to init_expr
- << (log2 (step_expr) * skipn) when step_expr is exact_log2.
+ PR tree-optimization/111268
+ * tree-vect-slp.cc (vectorizable_slp_permutation_1):
+ Add variable-length check for vector input arguments
+ to a function.
-2023-10-23 liuhongt <hongtao.liu@intel.com>
+2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
- * config/i386/mmx.md (mmx_pinsrw): Remove.
+ * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
+ hard-code number of SGPR/VGPR/AVGPR registers.
+ * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
+ SGPR/VGPR/AVGPR registers.
-2023-10-22 Andrew Pinski <pinskia@gmail.com>
+2024-02-01 Monk Chiang <monk.chiang@sifive.com>
- PR target/110986
- * config/aarch64/aarch64.md (*cmov<mode>_insn_insv): New pattern.
- (*cmov_uxtw_insn_insv): Likewise.
+ * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
+ attribute, and include sifive-p600.md.
+ * config/riscv/generic-ooo.md: Update type attribute.
+ * config/riscv/generic.md: Update type attribute.
+ * config/riscv/sifive-7.md: Update type attribute.
+ * config/riscv/sifive-p600.md: New file.
+ * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
+ * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
+ Add sifive_p600.
+ * config/riscv/riscv.cc (sifive_p600_tune_info): New.
+ * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
+ * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
-2023-10-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+2024-02-01 Monk Chiang <monk.chiang@sifive.com>
- * doc/invoke.texi: Document the new -nodefaultrpaths option.
- * doc/install.texi: Document the new --with-darwin-extra-rpath
- option.
+ * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
+ Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
+ * config/riscv/riscv.opt: New macro for 7 new unprivileged
+ extensions.
+ * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
+ Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
-2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
+2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
- * Makefile.in: set ENABLE_DARWIN_AT_RPATH in site.tmp.
+ * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
+ -static-libasan. Add missing whitespace.
-2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
+2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
- * configure.ac: Add --with-darwin-extra-rpath option.
- * config/darwin.h: Handle DARWIN_EXTRA_RPATH.
- * config.in: Regenerate.
- * configure: Regenerate.
+ * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
+ (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
+ Don't 'define_constants'.
-2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
+2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
- * configure.ac: Handle Darwin rpaths.
- * config/darwin.h: Handle Darwin rpaths.
- * config/darwin.opt: Handle Darwin rpaths.
- * Makefile.in: Handle Darwin rpaths.
-
-2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
-
- * gcc.cc (RUNPATH_OPTION): New.
- (do_spec_1): Provide '%P' as a spec to insert rpaths for
- each compiler startfile path.
-
-2023-10-22 Andrew Burgess <andrew.burgess@embecosm.com>
- Maxim Blinov <maxim.blinov@embecosm.com>
- Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
- Iain Sandoe <iain@sandoe.co.uk>
-
- * config.gcc: Default to heap trampolines on macOS 11 and above.
- * config/i386/darwin.h: Define X86_CUSTOM_FUNCTION_TEST.
- * config/i386/i386.h: Define X86_CUSTOM_FUNCTION_TEST.
- * config/i386/i386.cc: Use X86_CUSTOM_FUNCTION_TEST.
-
-2023-10-22 Andrew Burgess <andrew.burgess@embecosm.com>
- Maxim Blinov <maxim.blinov@embecosm.com>
- Iain Sandoe <iain@sandoe.co.uk>
- Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * builtins.def (BUILT_IN_NESTED_PTR_CREATED): Define.
- (BUILT_IN_NESTED_PTR_DELETED): Ditto.
- * common.opt (ftrampoline-impl): Add option to control
- generation of trampoline instantiation (heap or stack).
- * coretypes.h: Define enum trampoline_impl.
- * tree-nested.cc (convert_tramp_reference_op): Don't bother calling
- __builtin_adjust_trampoline for heap trampolines.
- (finalize_nesting_tree_1): Emit calls to
- __builtin_nested_...{created,deleted} if we're generating with
- -ftrampoline-impl=heap.
- * tree.cc (build_common_builtin_nodes): Build
- __builtin_nested_...{created,deleted}.
- * doc/invoke.texi (-ftrampoline-impl): Document.
-
-2023-10-22 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
- Prohibit 'E' and 'H' combinations.
-
-2023-10-22 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
- Change version number of the 'Zfa' extension to 1.0.
-
-2023-10-21 Pan Li <pan2.li@intel.com>
-
- PR target/111857
- * config/riscv/riscv-opts.h (TARGET_VECTOR_VLS): Remove.
- * config/riscv/riscv-protos.h (vls_mode_valid_p): New func decl.
- * config/riscv/riscv-v.cc (autovectorize_vector_modes): Replace
- macro reference to func.
- (vls_mode_valid_p): New func impl for vls mode valid or not.
- * config/riscv/riscv-vector-switch.def (VLS_ENTRY): Replace
- macro reference to func.
- * config/riscv/vector-iterators.md: Ditto.
-
-2023-10-20 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
+ * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
- PR middle-end/101955
- PR tree-optimization/106245
- * config/i386/i386.md (*extv<mode>_1_0): New define_insn_and_split.
-
-2023-10-20 David Edelsohn <dje.gcc@gmail.com>
-
- * gimple-harden-control-flow.cc: Include memmodel.h.
-
-2023-10-20 David Edelsohn <dje.gcc@gmail.com>
-
- * gimple-harden-control-flow.cc: Include tm_p.h.
-
-2023-10-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/111882
- * tree-if-conv.cc (get_bitfield_rep): Return NULL_TREE for bitfields
- with non-constant offsets.
-
-2023-10-20 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/111866
- * tree-vect-loop-manip.cc (vect_do_peeling): Pass null as vinfo to
- vect_set_loop_condition during prolog peeling.
-
-2023-10-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111445
- * tree-scalar-evolution.cc (simple_iv_with_niters):
- Add missing check for a sign-conversion.
-
-2023-10-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110243
- PR tree-optimization/111336
- * tree-ssa-loop-ivopts.cc (strip_offset_1): Rewrite
- operations with undefined behavior on overflow to
- unsigned arithmetic.
-
-2023-10-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111891
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fix
- assert.
-
-2023-10-20 Andrew Stubbs <ams@codesourcery.com>
-
- * config.gcc: Allow --with-arch=gfx1030.
- * config/gcn/gcn-hsa.h (NO_XNACK): gfx1030 does not support xnack.
- (ASM_SPEC): gfx1030 needs -mattr=+wavefrontsize64 set.
- * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1030.
- (TARGET_GFX1030): New.
- (TARGET_RDNA2): New.
- * config/gcn/gcn-valu.md (@dpp_move<mode>): Disable for RDNA2.
- (addc<mode>3<exec_vcc>): Add RDNA2 syntax variant.
- (subc<mode>3<exec_vcc>): Likewise.
- (<convop><mode><vndi>2_exec): Add RDNA2 alternatives.
- (vec_cmp<mode>di): Likewise.
- (vec_cmp<u><mode>di): Likewise.
- (vec_cmp<mode>di_exec): Likewise.
- (vec_cmp<u><mode>di_exec): Likewise.
- (vec_cmp<mode>di_dup): Likewise.
- (vec_cmp<mode>di_dup_exec): Likewise.
- (reduc_<reduc_op>_scal_<mode>): Disable for RDNA2.
- (*<reduc_op>_dpp_shr_<mode>): Likewise.
- (*plus_carry_dpp_shr_<mode>): Likewise.
- (*plus_carry_in_dpp_shr_<mode>): Likewise.
- * config/gcn/gcn.cc (gcn_option_override): Recognise gfx1030.
- (gcn_global_address_p): RDNA2 only allows smaller offsets.
- (gcn_addr_space_legitimate_address_p): Likewise.
- (gcn_omp_device_kind_arch_isa): Recognise gfx1030.
- (gcn_expand_epilogue): Use VGPRs instead of SGPRs.
- (output_file_start): Configure gfx1030.
- * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __RDNA2__;
- (ASSEMBLER_DIALECT): New.
- * config/gcn/gcn.md (rdna): New define_attr.
- (enabled): Use "rdna" attribute.
- (gcn_return): Remove s_dcache_wb.
- (addcsi3_scalar): Add RDNA2 syntax variant.
- (addcsi3_scalar_zero): Likewise.
- (addptrdi3): Likewise.
- (mulsi3): v_mul_lo_i32 should be v_mul_lo_u32 on all ISA.
- (*memory_barrier): Add RDNA2 syntax variant.
- (atomic_load<mode>): Add RDNA2 cache control variants, and disable
- scalar atomics for RDNA2.
- (atomic_store<mode>): Likewise.
- (atomic_exchange<mode>): Likewise.
- * config/gcn/gcn.opt (gpu_type): Add gfx1030.
- * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1030): New.
- (main): Recognise -march=gfx1030.
- * config/gcn/t-omp-device: Add gfx1030 isa.
-
-2023-10-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111000
- * stor-layout.h (element_precision): Move ..
- * tree.h (element_precision): .. here.
- * tree-ssa-loop-im.cc (movement_possibility_1): Restrict
- motion of shifts and rotates.
-
-2023-10-20 Alexandre Oliva <oliva@adacore.com>
-
- * tree-core.h (ECF_XTHROW): New macro.
- * tree.cc (set_call_expr): Add expected_throw attribute when
- ECF_XTHROW is set.
- (build_common_builtin_node): Add ECF_XTHROW to
- __cxa_end_cleanup and _Unwind_Resume or _Unwind_SjLj_Resume.
- * calls.cc (flags_from_decl_or_type): Check for expected_throw
- attribute to set ECF_XTHROW.
- * gimple.cc (gimple_build_call_from_tree): Propagate
- ECF_XTHROW from decl flags to gimple call...
- (gimple_call_flags): ... and back.
- * gimple.h (GF_CALL_XTHROW): New gf_mask flag.
- (gimple_call_set_expected_throw): New.
- (gimple_call_expected_throw_p): New.
- * Makefile.in (OBJS): Add gimple-harden-control-flow.o.
- * builtins.def (BUILT_IN___HARDCFR_CHECK): New.
- * common.opt (fharden-control-flow-redundancy): New.
- (-fhardcfr-check-returning-calls): New.
- (-fhardcfr-check-exceptions): New.
- (-fhardcfr-check-noreturn-calls=*): New.
- (Enum hardcfr_check_noreturn_calls): New.
- (fhardcfr-skip-leaf): New.
- * doc/invoke.texi: Document them.
- (hardcfr-max-blocks, hardcfr-max-inline-blocks): New params.
- * flag-types.h (enum hardcfr_noret): New.
- * gimple-harden-control-flow.cc: New.
- * params.opt (-param=hardcfr-max-blocks=): New.
- (-param=hradcfr-max-inline-blocks=): New.
- * passes.def (pass_harden_control_flow_redundancy): Add.
- * tree-pass.h (make_pass_harden_control_flow_redundancy):
- Declare.
- * doc/extend.texi: Document expected_throw attribute.
+2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
-2023-10-20 Alex Coplan <alex.coplan@arm.com>
+ * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
+ [TARGET_RDNA3]: Adjust.
- * rtl-ssa/changes.cc (function_info::change_insns): Ensure we call
- ::remove_insn on deleted insns.
+2024-02-01 Richard Biener <rguenther@suse.de>
-2023-10-20 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113693
+ * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
+ data when available.
- * doc/generic.texi ({L,R}ROTATE_EXPR): Document.
+2024-02-01 Jakub Jelinek <jakub@redhat.com>
+ Jason Merrill <jason@redhat.com>
-2023-10-20 Oleg Endo <olegendo@gcc.gnu.org>
+ PR c++/113531
+ * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
+ on variables which were promoted to TREE_STATIC.
- PR target/101177
- * config/sh/sh.md (unnamed split pattern): Fix comparison of
- find_regno_note result.
+2024-02-01 Roger Sayle <roger@nextmovesoftware.com>
+ Richard Biener <rguenther@suse.de>
-2023-10-20 Richard Biener <rguenther@suse.de>
+ PR target/113560
+ * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
+ information via tree_non_zero_bits to check if this operand
+ is suitably extended for a widening (or highpart) multiplication.
+ (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
+ isn't already of the claimed type.
- * tree-vect-loop.cc (update_epilogue_loop_vinfo): Rewrite
- both STMT_VINFO_GATHER_SCATTER_P and VMAT_GATHER_SCATTER
- stmt refs.
+2024-02-01 Edwin Lu <ewlu@rivosinc.com>
-2023-10-20 Richard Biener <rguenther@suse.de>
+ Revert:
+ 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
- * tree-vect-slp.cc (off_map, off_op0_map, off_arg2_map,
- off_arg3_arg2_map): New.
- (vect_get_operand_map): Get flag whether the stmt was
- recognized as gather or scatter and use the above
- accordingly.
- (vect_get_and_check_slp_defs): Adjust.
- (vect_build_slp_tree_2): Likewise.
+ * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
+ (generic_ooo_branch): ditto
+ * config/riscv/generic.md (generic_sfb_alu): ditto
+ (generic_fmul_half): ditto
+ * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
+ * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
+ (sifive_7_popcount): ditto
+ * config/riscv/vector.md: change rdfrm to fmove
+ * config/riscv/zc.md: change pushpop to load/store
-2023-10-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-02-01 Edwin Lu <ewlu@rivosinc.com>
- * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info): Rename variables.
- (pre_vsetvl::pre_global_vsetvl_info): Ditto.
- (pre_vsetvl::emit_vsetvl): Ditto.
+ Revert:
+ 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
+ Robin Dapp <rdapp.gcc@gmail.com>
+
+ * config/riscv/generic-ooo.md (generic_ooo): Move reservation
+ (generic_ooo_vec_load): ditto
+ (generic_ooo_vec_store): ditto
+ (generic_ooo_vec_loadstore_seg): ditto
+ (generic_ooo_vec_alu): ditto
+ (generic_ooo_vec_fcmp): ditto
+ (generic_ooo_vec_imul): ditto
+ (generic_ooo_vec_fadd): ditto
+ (generic_ooo_vec_fmul): ditto
+ (generic_ooo_crypto): ditto
+ (generic_ooo_perm): ditto
+ (generic_ooo_vec_reduction): ditto
+ (generic_ooo_vec_ordered_reduction): ditto
+ (generic_ooo_vec_idiv): ditto
+ (generic_ooo_vec_float_divsqrt): ditto
+ (generic_ooo_vec_mask): ditto
+ (generic_ooo_vec_vesetvl): ditto
+ (generic_ooo_vec_setrm): ditto
+ (generic_ooo_vec_readlen): ditto
+ * config/riscv/riscv.md: include generic-vector-ooo
+ * config/riscv/generic-vector-ooo.md: New file. to here
+
+2024-02-01 Edwin Lu <ewlu@rivosinc.com>
-2023-10-20 Tamar Christina <tamar.christina@arm.com>
- Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-if-conv.cc (if_convertible_loop_p_1): Move check from here ...
- (get_loop_body_if_conv_order): ... to here.
- (if_convertible_loop_p): Remove single_exit check.
- (tree_if_conversion): Move single_exit check to if-conversion part and
- support multiple exits.
-
-2023-10-20 Tamar Christina <tamar.christina@arm.com>
- Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-patterns.cc (vect_init_pattern_stmt): Copy STMT_VINFO_TYPE
- from original statement.
- (vect_recog_bitfield_ref_pattern): Support bitfields in gcond.
-
-2023-10-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111848
- * config/riscv/riscv-selftests.cc (run_const_vector_selftests): Adapt selftest.
- * config/riscv/riscv-v.cc (expand_const_vector): Change it into vec_duplicate splitter.
-
-2023-10-20 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/111037
- PR target/111234
- PR target/111725
- * config/riscv/riscv-vsetvl.cc (bitmap_union_of_preds_with_entry): New.
- (debug): Removed.
- (compute_reaching_defintion): New.
- (enum vsetvl_type): Moved.
- (vlmax_avl_p): Moved.
- (enum emit_type): Moved.
- (vlmul_to_str): Moved.
- (vlmax_avl_insn_p): Removed.
- (policy_to_str): Moved.
- (loop_basic_block_p): Removed.
- (valid_sew_p): Removed.
- (vsetvl_insn_p): Moved.
- (vsetvl_vtype_change_only_p): Removed.
- (after_or_same_p): Removed.
- (before_p): Removed.
- (anticipatable_occurrence_p): Removed.
- (available_occurrence_p): Removed.
- (insn_should_be_added_p): Removed.
- (get_all_sets): Moved.
- (get_same_bb_set): Moved.
- (gen_vsetvl_pat): Removed.
- (calculate_vlmul): Moved.
- (get_max_int_sew): New.
- (emit_vsetvl_insn): Removed.
- (get_max_float_sew): New.
- (eliminate_insn): Removed.
- (insert_vsetvl): Removed.
- (count_regno_occurrences): Moved.
- (get_vl_vtype_info): Removed.
- (enum def_type): Moved.
- (validate_change_or_fail): Moved.
- (change_insn): Removed.
- (get_all_real_uses): Moved.
- (get_forward_read_vl_insn): Removed.
- (get_backward_fault_first_load_insn): Removed.
- (change_vsetvl_insn): Removed.
- (avl_source_has_vsetvl_p): Removed.
- (source_equal_p): Moved.
- (calculate_sew): Removed.
- (same_equiv_note_p): Moved.
- (get_expr_id): New.
- (incompatible_avl_p): Removed.
- (get_regno): New.
- (different_sew_p): Removed.
- (get_bb_index): New.
- (different_lmul_p): Removed.
- (has_no_uses): Moved.
- (different_ratio_p): Removed.
- (different_tail_policy_p): Removed.
- (different_mask_policy_p): Removed.
- (possible_zero_avl_p): Removed.
- (enum demand_flags): New.
- (second_ratio_invalid_for_first_sew_p): Removed.
- (second_ratio_invalid_for_first_lmul_p): Removed.
- (enum class): New.
- (float_insn_valid_sew_p): Removed.
- (second_sew_less_than_first_sew_p): Removed.
- (first_sew_less_than_second_sew_p): Removed.
- (class vsetvl_info): New.
- (compare_lmul): Removed.
- (second_lmul_less_than_first_lmul_p): Removed.
- (second_ratio_less_than_first_ratio_p): Removed.
- (DEF_INCOMPATIBLE_COND): Removed.
- (greatest_sew): Removed.
- (first_sew): Removed.
- (second_sew): Removed.
- (first_vlmul): Removed.
- (second_vlmul): Removed.
- (first_ratio): Removed.
- (second_ratio): Removed.
- (vlmul_for_first_sew_second_ratio): Removed.
- (vlmul_for_greatest_sew_second_ratio): Removed.
- (ratio_for_second_sew_first_vlmul): Removed.
- (class vsetvl_block_info): New.
- (DEF_SEW_LMUL_FUSE_RULE): New.
- (always_unavailable): Removed.
- (avl_unavailable_p): Removed.
- (class demand_system): New.
- (sew_unavailable_p): Removed.
- (lmul_unavailable_p): Removed.
- (ge_sew_unavailable_p): Removed.
- (ge_sew_lmul_unavailable_p): Removed.
- (ge_sew_ratio_unavailable_p): Removed.
- (DEF_UNAVAILABLE_COND): Removed.
- (same_sew_lmul_demand_p): Removed.
- (propagate_avl_across_demands_p): Removed.
- (reg_available_p): Removed.
- (support_relaxed_compatible_p): Removed.
- (demands_can_be_fused_p): Removed.
- (earliest_pred_can_be_fused_p): Removed.
- (vsetvl_dominated_by_p): Removed.
- (avl_info::avl_info): Removed.
- (avl_info::single_source_equal_p): Removed.
- (avl_info::multiple_source_equal_p): Removed.
- (DEF_SEW_LMUL_RULE): New.
- (avl_info::operator=): Removed.
- (avl_info::operator==): Removed.
- (DEF_POLICY_RULE): New.
- (avl_info::operator!=): Removed.
- (avl_info::has_non_zero_avl): Removed.
- (vl_vtype_info::vl_vtype_info): Removed.
- (vl_vtype_info::operator==): Removed.
- (DEF_AVL_RULE): New.
- (vl_vtype_info::operator!=): Removed.
- (vl_vtype_info::same_avl_p): Removed.
- (vl_vtype_info::same_vtype_p): Removed.
- (vl_vtype_info::same_vlmax_p): Removed.
- (vector_insn_info::operator>=): Removed.
- (vector_insn_info::operator==): Removed.
- (class pre_vsetvl): New.
- (vector_insn_info::parse_insn): Removed.
- (vector_insn_info::compatible_p): Removed.
- (vector_insn_info::skip_avl_compatible_p): Removed.
- (vector_insn_info::compatible_avl_p): Removed.
- (vector_insn_info::compatible_vtype_p): Removed.
- (vector_insn_info::available_p): Removed.
- (vector_insn_info::fuse_avl): Removed.
- (vector_insn_info::fuse_sew_lmul): Removed.
- (vector_insn_info::fuse_tail_policy): Removed.
- (vector_insn_info::fuse_mask_policy): Removed.
- (vector_insn_info::local_merge): Removed.
- (vector_insn_info::global_merge): Removed.
- (vector_insn_info::get_avl_or_vl_reg): Removed.
- (vector_insn_info::update_fault_first_load_avl): Removed.
- (vector_insn_info::dump): Removed.
- (vector_infos_manager::vector_infos_manager): Removed.
- (vector_infos_manager::create_expr): Removed.
- (vector_infos_manager::get_expr_id): Removed.
- (vector_infos_manager::all_same_ratio_p): Removed.
- (vector_infos_manager::all_avail_in_compatible_p): Removed.
- (vector_infos_manager::all_same_avl_p): Removed.
- (vector_infos_manager::expr_set_num): Removed.
- (vector_infos_manager::release): Removed.
- (vector_infos_manager::create_bitmap_vectors): Removed.
- (vector_infos_manager::free_bitmap_vectors): Removed.
- (vector_infos_manager::dump): Removed.
- (class pass_vsetvl): Adjust.
- (pass_vsetvl::get_vector_info): Removed.
- (pass_vsetvl::get_block_info): Removed.
- (pass_vsetvl::update_vector_info): Removed.
- (pass_vsetvl::update_block_info): Removed.
- (pre_vsetvl::compute_avl_def_data): New.
- (pass_vsetvl::simple_vsetvl): Removed.
- (pass_vsetvl::compute_local_backward_infos): Removed.
- (pass_vsetvl::need_vsetvl): Removed.
- (pass_vsetvl::transfer_before): Removed.
- (pass_vsetvl::transfer_after): Removed.
- (pre_vsetvl::compute_vsetvl_def_data): New.
- (pass_vsetvl::emit_local_forward_vsetvls): Removed.
- (pass_vsetvl::prune_expressions): Removed.
- (pass_vsetvl::compute_local_properties): Removed.
- (pre_vsetvl::compute_lcm_local_properties): New.
- (pass_vsetvl::earliest_fusion): Removed.
- (pre_vsetvl::fuse_local_vsetvl_info): New.
- (pass_vsetvl::vsetvl_fusion): Removed.
- (pass_vsetvl::can_refine_vsetvl_p): Removed.
- (pre_vsetvl::earliest_fuse_vsetvl_info): New.
- (pass_vsetvl::refine_vsetvls): Removed.
- (pass_vsetvl::cleanup_vsetvls): Removed.
- (pass_vsetvl::commit_vsetvls): Removed.
- (pass_vsetvl::pre_vsetvl): Removed.
- (pass_vsetvl::get_vsetvl_at_end): Removed.
- (local_avl_compatible_p): Removed.
- (pass_vsetvl::local_eliminate_vsetvl_insn): Removed.
- (pre_vsetvl::pre_global_vsetvl_info): New.
- (get_first_vsetvl_before_rvv_insns): Removed.
- (pass_vsetvl::global_eliminate_vsetvl_insn): Removed.
- (pre_vsetvl::emit_vsetvl): New.
- (pass_vsetvl::ssa_post_optimization): Removed.
- (pre_vsetvl::cleaup): New.
- (pre_vsetvl::remove_avl_operand): New.
- (pass_vsetvl::df_post_optimization): Removed.
- (pre_vsetvl::remove_unused_dest_operand): New.
- (pass_vsetvl::init): Removed.
- (pass_vsetvl::done): Removed.
- (pass_vsetvl::compute_probabilities): Removed.
- (pass_vsetvl::lazy_vsetvl): Adjust.
- (pass_vsetvl::execute): Adjust.
- * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Removed.
- (DEF_SEW_LMUL_RULE): New.
- (DEF_SEW_LMUL_FUSE_RULE): Removed.
- (DEF_POLICY_RULE): New.
- (DEF_UNAVAILABLE_COND): Removed
- (DEF_AVL_RULE): New demand type.
- (sew_lmul): New demand type.
- (ratio_only): New demand type.
- (sew_only): New demand type.
- (ge_sew): New demand type.
- (ratio_and_ge_sew): New demand type.
- (tail_mask_policy): New demand type.
- (tail_policy_only): New demand type.
- (mask_policy_only): New demand type.
- (ignore_policy): New demand type.
- (avl): New demand type.
- (non_zero_avl): New demand type.
- (ignore_avl): New demand type.
- * config/riscv/t-riscv: Removed riscv-vsetvl.h
- * config/riscv/riscv-vsetvl.h: Removed.
-
-2023-10-20 Alexandre Oliva <oliva@adacore.com>
-
- * tree-eh.cc (make_eh_edges): Return the new edge.
- * tree-eh.h (make_eh_edges): Likewise.
-
-2023-10-19 Marek Polacek <polacek@redhat.com>
-
- * doc/contrib.texi: Add entry for Patrick Palka.
-
-2023-10-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * omp-simd-clone.cc (simd_clone_adjust_argument_types): Make function
- compatible with mask parameters in clone.
- * tree-vect-stmts.cc (vect_build_all_ones_mask): Allow vector boolean
- typed masks.
- (vectorizable_simd_clone_call): Enable the use of masked clones in
- fully masked loops.
-
-2023-10-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/110485
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Disable partial
- vectors usage if a notinbranch simdclone has been selected.
-
-2023-10-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Special case
- simd clone calls and only use types that are mapped to vectors.
- (simd_clone_call_p): New helper function.
-
-2023-10-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-parloops.cc (try_transform_to_exit_first_loop_alt): Accept
- poly NIT and ALT_BOUND.
-
-2023-10-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-parloops.cc (create_loop_fn): Copy specific target and
- optimization options to clone.
-
-2023-10-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * omp-simd-clone.cc (simd_clone_subparts): Remove.
- (simd_clone_init_simd_arrays): Replace simd_clone_supbarts with
- TYPE_VECTOR_SUBPARTS.
- (ipa_simd_modify_function_body): Likewise.
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Likewise.
- (simd_clone_subparts): Remove.
-
-2023-10-19 Jason Merrill <jason@redhat.com>
-
- * ABOUT-GCC-NLS: Add usage guidance.
-
-2023-10-19 Jason Merrill <jason@redhat.com>
-
- * diagnostic-core.h (permerror): Rename new overloads...
- (permerror_opt): To this.
- * diagnostic.cc: Likewise.
-
-2023-10-19 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/111860
- * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
- Remove PHI nodes that dominate loop.
-
-2023-10-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111131
- * tree-vect-loop.cc (update_epilogue_loop_vinfo): Make
- sure to update all gather/scatter stmt DRs, not only those
- that eventually got VMAT_GATHER_SCATTER set.
- * tree-vect-slp.cc (_slp_oprnd_info::first_gs_info): Add.
- (vect_get_and_check_slp_defs): Handle gathers/scatters,
- adding the offset as SLP operand and comparing base and scale.
- (vect_build_slp_tree_1): Handle gathers.
- (vect_build_slp_tree_2): Likewise.
-
-2023-10-19 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vect_build_gather_load_calls): Rename
- to ...
- (vect_build_one_gather_load_call): ... this. Refactor,
- inline widening/narrowing support ...
- (vectorizable_load): ... here, do gather vectorization
- with builtin decls along other gather vectorization.
-
-2023-10-19 Alex Coplan <alex.coplan@arm.com>
-
- * config/aarch64/aarch64.md (load_pair_dw_tftf): Rename to ...
- (load_pair_dw_<TX:mode><TX2:mode>): ... this.
- (store_pair_dw_tftf): Rename to ...
- (store_pair_dw_<TX:mode><TX2:mode>): ... this.
- * config/aarch64/iterators.md (TX2): New.
-
-2023-10-19 Alex Coplan <alex.coplan@arm.com>
-
- * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add new
- parameter to give final insn position, infer use of mem if it isn't
- specified explicitly.
- (function_info::change_insns): Pass down final insn position to
- finalize_new_accesses.
- * rtl-ssa/functions.h: Add parameter to finalize_new_accesses.
-
-2023-10-19 Alex Coplan <alex.coplan@arm.com>
-
- * rtl-ssa/accesses.cc (function_info::reparent_use): New.
- * rtl-ssa/functions.h (function_info): Declare new member
- function reparent_use.
-
-2023-10-19 Alex Coplan <alex.coplan@arm.com>
-
- * rtl-ssa/access-utils.h (drop_memory_access): New.
-
-2023-10-19 Alex Coplan <alex.coplan@arm.com>
-
- * rtl-ssa/insns.cc (function_info::add_insn_after): Ensure we
- update the prev pointer on the following nondebug insn in the
- case that !insn->is_debug_insn () && next->is_debug_insn ().
-
-2023-10-19 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386.h: Correct the ISA enabled for Arrow Lake.
- Also make Clearwater Forest depends on Sierra Forest.
- * config/i386/i386-options.cc: Revise the order of the macro
- definition to avoid confusion.
- * doc/extend.texi: Revise documentation.
- * doc/invoke.texi: Correct documentation.
-
-2023-10-19 Andrew Stubbs <ams@codesourcery.com>
-
- * config.gcc (amdgcn): Switch default to --with-arch=gfx900.
- Implement support for --with-multilib-list.
- * config/gcn/t-gcn-hsa: Likewise.
- * doc/install.texi: Likewise.
- * doc/invoke.texi: Mark Fiji deprecated.
-
-2023-10-19 Jiahao Xu <xujiahao@loongson.cn>
-
- * config/loongarch/loongarch.cc (loongarch_vector_costs): Inherit from
- vector_costs. Add a constructor.
- (loongarch_vector_costs::add_stmt_cost): Use adjust_cost_for_freq to
- adjust the cost for inner loops.
- (loongarch_vector_costs::count_operations): New function.
- (loongarch_vector_costs::determine_suggested_unroll_factor): Ditto.
- (loongarch_vector_costs::finish_cost): Ditto.
- (loongarch_builtin_vectorization_cost): Adjust.
- * config/loongarch/loongarch.opt (loongarch-vect-unroll-limit): New parameter.
- (loongarcg-vect-issue-info): Ditto.
- (mmemvec-cost): Delete.
- * config/loongarch/genopts/loongarch.opt.in
- (loongarch-vect-unroll-limit): Ditto.
- (loongarcg-vect-issue-info): Ditto.
- (mmemvec-cost): Delete.
- * doc/invoke.texi (loongarcg-vect-unroll-limit): Document new option.
-
-2023-10-19 Jiahao Xu <xujiahao@loongson.cn>
-
- * config/loongarch/lasx.md
- (vec_widen_<su>mult_even_v8si): New patterns.
- (vec_widen_<su>add_hi_<mode>): Ditto.
- (vec_widen_<su>add_lo_<mode>): Ditto.
- (vec_widen_<su>sub_hi_<mode>): Ditto.
- (vec_widen_<su>sub_lo_<mode>): Ditto.
- (vec_widen_<su>mult_hi_<mode>): Ditto.
- (vec_widen_<su>mult_lo_<mode>): Ditto.
- * config/loongarch/loongarch.md (u_bool): New iterator.
- * config/loongarch/loongarch-protos.h
- (loongarch_expand_vec_widen_hilo): New prototype.
- * config/loongarch/loongarch.cc
- (loongarch_expand_vec_interleave): New function.
- (loongarch_expand_vec_widen_hilo): New function.
-
-2023-10-19 Jiahao Xu <xujiahao@loongson.cn>
-
- * config/loongarch/lasx.md
- (avg<mode>3_ceil): New patterns.
- (uavg<mode>3_ceil): Ditto.
- (avg<mode>3_floor): Ditto.
- (uavg<mode>3_floor): Ditto.
- (usadv32qi): Ditto.
- (ssadv32qi): Ditto.
- * config/loongarch/lsx.md
- (avg<mode>3_ceil): New patterns.
- (uavg<mode>3_ceil): Ditto.
- (avg<mode>3_floor): Ditto.
- (uavg<mode>3_floor): Ditto.
- (usadv16qi): Ditto.
- (ssadv16qi): Ditto.
+ Revert:
+ 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
-2023-10-18 Andrew Pinski <pinskia@gmail.com>
+ * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
- PR middle-end/111863
- * expr.cc (do_store_flag): Don't over write arg0
- when stripping off `& POW2`.
+2024-02-01 Edwin Lu <ewlu@rivosinc.com>
-2023-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+ * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
- PR tree-optimization/111648
- * fold-const.cc (valid_mask_for_fold_vec_perm_cst_p): If a1
- chooses base element from arg, ensure that it's a natural stepped
- sequence.
- (build_vec_cst_rand): New param natural_stepped and use it to
- construct a naturally stepped sequence.
- (test_nunits_min_2): Add new unit tests Case 6 and Case 7.
+2024-02-01 Edwin Lu <ewlu@rivosinc.com>
+ Robin Dapp <rdapp.gcc@gmail.com>
-2023-10-18 Dimitar Dimitrov <dimitar@dinux.eu>
+ * config/riscv/generic-ooo.md (generic_ooo): Move reservation
+ (generic_ooo_vec_load): ditto
+ (generic_ooo_vec_store): ditto
+ (generic_ooo_vec_loadstore_seg): ditto
+ (generic_ooo_vec_alu): ditto
+ (generic_ooo_vec_fcmp): ditto
+ (generic_ooo_vec_imul): ditto
+ (generic_ooo_vec_fadd): ditto
+ (generic_ooo_vec_fmul): ditto
+ (generic_ooo_crypto): ditto
+ (generic_ooo_perm): ditto
+ (generic_ooo_vec_reduction): ditto
+ (generic_ooo_vec_ordered_reduction): ditto
+ (generic_ooo_vec_idiv): ditto
+ (generic_ooo_vec_float_divsqrt): ditto
+ (generic_ooo_vec_mask): ditto
+ (generic_ooo_vec_vesetvl): ditto
+ (generic_ooo_vec_setrm): ditto
+ (generic_ooo_vec_readlen): ditto
+ * config/riscv/riscv.md: include generic-vector-ooo
+ * config/riscv/generic-vector-ooo.md: New file. to here
- * config/pru/pru.cc (pru_insn_cost): New function.
- (TARGET_INSN_COST): Define for PRU.
+2024-02-01 Edwin Lu <ewlu@rivosinc.com>
-2023-10-18 Andrew Carlotti <andrew.carlotti@arm.com>
+ * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
+ (generic_ooo_branch): ditto
+ * config/riscv/generic.md (generic_sfb_alu): ditto
+ (generic_fmul_half): ditto
+ * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
+ * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
+ (sifive_7_popcount): ditto
+ * config/riscv/vector.md: change rdfrm to fmove
+ * config/riscv/zc.md: change pushpop to load/store
- * config/aarch64/aarch64.cc (aarch64_test_fractional_cost):
- Test <= instead of testing < twice.
+2024-02-01 Andrew Pinski <quic_apinski@quicinc.com>
-2023-10-18 Jakub Jelinek <jakub@redhat.com>
+ PR target/113657
+ * config/aarch64/aarch64-simd.md (split for movv8di):
+ For strict aligned mode, use DImode instead of TImode.
- PR bootstrap/111852
- * cse.cc (cse_insn): Add workaround for GCC 4.8-4.9, instead of
- using rtx_def type for memory_extend_buf, use unsigned char
- arrayy with size of rtx_def and its alignment.
+2024-01-31 Robin Dapp <rdapp@ventanamicro.com>
-2023-10-18 Jason Merrill <jason@redhat.com>
+ PR middle-end/113607
+ * match.pd: Make sure else values match when folding a
+ vec_cond into a conditional operation.
- * doc/invoke.texi: Move -fpermissive to Warning Options.
- * diagnostic.cc (update_effective_level_from_pragmas): Remove
- redundant system header check.
- (diagnostic_report_diagnostic): Move down syshdr/-w check.
- (diagnostic_impl): Handle DK_PERMERROR with an option number.
- (permerror): Add new overloads.
- * diagnostic-core.h (permerror): Declare them.
+2024-01-31 Marek Polacek <polacek@redhat.com>
-2023-10-18 Tobias Burnus <tobias@codesourcery.com>
+ * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
- * gimplify.cc (gimplify_bind_expr): Remove "omp allocate" attribute
- to avoid that auxillary statement list reaches LTO.
+2024-01-31 Tamar Christina <tamar.christina@arm.com>
+ Matthew Malcomson <matthew.malcomson@arm.com>
-2023-10-18 Jakub Jelinek <jakub@redhat.com>
+ PR sanitizer/112644
+ * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
+ memcmp.
+ * builtins.cc (expand_builtin): Include HWASAN when checking for
+ builtin inlining.
- PR tree-optimization/111845
- * tree-ssa-math-opts.cc (match_uaddc_usubc): Remember temporary
- statements for the 4 operand addition or subtraction of 3 operands
- from 1 operand cases and remove them when successful. Look for
- nested additions even from rhs[2], not just rhs[1].
+2024-01-31 Richard Biener <rguenther@suse.de>
-2023-10-18 Tobias Burnus <tobias@codesourcery.com>
+ PR middle-end/110176
+ * match.pd (zext (bool) <= (int) 4294967295u): Make sure
+ to match INTEGER_CST only without outstanding conversion.
- PR target/111093
- * config/nvptx/nvptx.cc (nvptx_option_override): Issue fatal error
- instead of an assert ICE when no -march= has been specified.
+2024-01-31 Alex Coplan <alex.coplan@arm.com>
-2023-10-18 Iain Sandoe <iain@sandoe.co.uk>
+ PR target/111677
+ * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
+ V16QImode for the full 16-byte FPR saves in the vector PCS case.
- * config.in: Regenerate.
- * config/darwin.cc (darwin_file_start): Add assembler directives
- for the target OS version, where these are supported by the
- assembler.
- (darwin_override_options): Check for building >= macOS 10.14.
- * configure: Regenerate.
- * configure.ac: Check for assembler support of .build_version
- directives.
+2024-01-31 Richard Biener <rguenther@suse.de>
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
+ PR tree-optimization/111444
+ * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
+ vn_reference_lookup_2 when optimistically skipping may-defs.
- PR tree-optimization/109154
- * tree-if-conv.cc (INCLUDE_ALGORITHM): Remove.
- (typedef struct ifcvt_arg_entry): New.
- (cmp_arg_entry): New.
- (gen_phi_arg_condition, gen_phi_nest_statement,
- predicate_scalar_phi): Use them.
+2024-01-31 Richard Biener <rguenther@suse.de>
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
+ PR tree-optimization/113630
+ * tree-ssa-pre.cc (compute_avail): Avoid registering a
+ reference with a representation with not matching base
+ access size.
- PR tree-optimization/109154
- * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
- Rewrite to new syntax.
- (*aarch64_simd_mov<VQMOV:mode): Rewrite to new syntax and merge in
- splits.
+2024-01-31 Jakub Jelinek <jakub@redhat.com>
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
+ PR rtl-optimization/113656
+ * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
+ <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
- PR tree-optimization/109154
- * tree-if-conv.cc (if_convertible_stmt_p): Allow any const IFN.
+2024-01-31 Jakub Jelinek <jakub@redhat.com>
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
+ PR debug/113637
+ * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
+ with BLKmode are larger than DWARF2_ADDR_SIZE.
- PR tree-optimization/109154
- * match.pd: Add new cond_op rule.
+2024-01-31 Jakub Jelinek <jakub@redhat.com>
-2023-10-18 Xi Ruoyao <xry111@xry111.site>
+ PR tree-optimization/113639
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
+ For VIEW_CONVERT_EXPR set rhs1 to its operand.
- * config/loongarch/loongarch.md (movfcc): Use fcmp.caf.s for
- zeroing a fcc.
+2024-01-31 Richard Biener <rguenther@suse.de>
-2023-10-18 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113670
+ * tree-vect-data-refs.cc (vect_check_gather_scatter):
+ Make sure we can take the address of the reference base.
- * tree-vect-stmts.cc (vectorizable_simd_clone_call):
- Relax check to again allow passing integer mode masks
- as traditional vectors.
+2024-01-31 Georg-Johann Lay <avr@gjlay.de>
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
+ * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
+ ATA5835, ATtiny64AUTO, ATA5700M322.
+ * doc/avr-mmcu.texi: Rebuild.
- * tree-loop-distribution.cc (copy_loop_before): Request no LCSSA.
- * tree-vect-loop-manip.cc (adjust_phi_and_debug_stmts): Add additional
- asserts.
- (slpeel_tree_duplicate_loop_to_edge_cfg): Keep LCSSA during peeling.
- (find_guard_arg): Look value up through explicit edge and original defs.
- (vect_do_peeling): Use it.
- (slpeel_update_phi_nodes_for_guard2): Take explicit exit edge.
- (slpeel_update_phi_nodes_for_lcssa, slpeel_update_phi_nodes_for_loops):
- Remove.
- * tree-vect-loop.cc (vect_create_epilog_for_reduction): Initialize phi.
- * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg): Add
- optional param to turn off LCSSA mode.
+2024-01-31 Alexandre Oliva <oliva@adacore.com>
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
+ PR debug/113394
+ * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
+ caller.
- * tree-if-conv.cc (tree_if_conversion): Record exits in aux.
- * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
- it.
- * tree-vect-loop.cc (vect_get_loop_niters): Determine main exit.
- (vec_init_loop_exit_info): Extend analysis when multiple exits.
- (vect_analyze_loop_form): Record conds and determine main cond.
- (vect_create_loop_vinfo): Extend bookkeeping of conds.
- (vect_analyze_loop): Release conds.
- * tree-vectorizer.h (LOOP_VINFO_LOOP_CONDS,
- LOOP_VINFO_LOOP_IV_COND): New.
- (struct vect_loop_form_info): Add conds, alt_loop_conds;
- (struct loop_vec_info): Add conds, loop_iv_cond.
-
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
-
- * tree-loop-distribution.cc (copy_loop_before): Pass exit explicitly.
- (loop_distribution::distribute_loop): Bail out of not single exit.
- * tree-scalar-evolution.cc (get_loop_exit_condition): New.
- * tree-scalar-evolution.h (get_loop_exit_condition): New.
- * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): Pass exit
- explicitly.
- * tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors,
- vect_set_loop_condition_partial_vectors_avx512,
- vect_set_loop_condition_normal, vect_set_loop_condition): Explicitly
- take exit.
- (slpeel_tree_duplicate_loop_to_edge_cfg): Explicitly take exit and
- return new peeled corresponding peeled exit.
- (slpeel_can_duplicate_loop_p): Explicitly take exit.
- (find_loop_location): Handle not knowing an explicit exit.
- (vect_update_ivs_after_vectorizer, vect_gen_vector_loop_niters_mult_vf,
- find_guard_arg, slpeel_update_phi_nodes_for_loops,
- slpeel_update_phi_nodes_for_guard2): Use new exits.
- (vect_do_peeling): Update bookkeeping to keep track of exits.
- * tree-vect-loop.cc (vect_get_loop_niters): Explicitly take exit to
- analyze.
- (vec_init_loop_exit_info): New.
- (_loop_vec_info::_loop_vec_info): Initialize vec_loop_iv,
- vec_epilogue_loop_iv, scalar_loop_iv.
- (vect_analyze_loop_form): Initialize exits.
- (vect_create_loop_vinfo): Set main exit.
- (vect_create_epilog_for_reduction, vectorizable_live_operation,
- vect_transform_loop): Use it.
- (scale_profile_for_vect_loop): Explicitly take exit to scale.
- * tree-vectorizer.cc (set_uid_loop_bbs): Initialize loop exit.
- * tree-vectorizer.h (LOOP_VINFO_IV_EXIT, LOOP_VINFO_EPILOGUE_IV_EXIT,
- LOOP_VINFO_SCALAR_IV_EXIT): New.
- (struct loop_vec_info): Add vec_loop_iv, vec_epilogue_loop_iv,
- scalar_loop_iv.
- (vect_set_loop_condition, slpeel_can_duplicate_loop_p,
- slpeel_tree_duplicate_loop_to_edge_cfg): Take explicit exits.
- (vec_init_loop_exit_info): New.
- (struct vect_loop_form_info): Add loop_exit.
-
-2023-10-18 Tamar Christina <tamar.christina@arm.com>
-
- * tree-vect-stmts.cc (vectorizable_comparison): Refactor, splitting body
- to ...
- (vectorizable_comparison_1): ...This.
-
-2023-10-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (shuffle_consecutive_patterns): New function.
- (expand_vec_perm_const_1): Add consecutive pattern recognition.
-
-2023-10-18 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_intel_cpu): Add Panther
- Lake.
- * common/config/i386/i386-common.cc (processor_name):
- Ditto.
- (processor_alias_table): Ditto.
- * common/config/i386/i386-cpuinfo.h (enum processor_types):
- Add INTEL_PANTHERLAKE.
- * config.gcc: Add -march=pantherlake.
- * config/i386/driver-i386.cc (host_detect_local_cpu): Refactor
- the if clause. Handle pantherlake.
- * config/i386/i386-c.cc (ix86_target_macros_internal):
- Handle pantherlake.
- * config/i386/i386-options.cc (processor_cost_table): Ditto.
- (m_PANTHERLAKE): New.
- (m_CORE_HYBRID): Add pantherlake.
- * config/i386/i386.h (enum processor_type): Ditto.
- * doc/extend.texi: Ditto.
- * doc/invoke.texi: Ditto.
+2024-01-31 Alexandre Oliva <oliva@adacore.com>
-2023-10-18 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-options.cc (m_CORE_HYBRID): New.
- * config/i386/x86-tune.def: Replace hybrid client tune to
- m_CORE_HYBRID.
-
-2023-10-18 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h
- (get_intel_cpu): Handle Clearwater Forest.
- * common/config/i386/i386-common.cc (processor_name):
- Add Clearwater Forest.
- (processor_alias_table): Ditto.
- * common/config/i386/i386-cpuinfo.h (enum processor_types):
- Add INTEL_CLEARWATERFOREST.
- * config.gcc: Add -march=clearwaterforest.
- * config/i386/driver-i386.cc (host_detect_local_cpu): Handle
- clearwaterforest.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
- * config/i386/i386-options.cc (processor_cost_table): Ditto.
- (m_CLEARWATERFOREST): New.
- (m_CORE_ATOM): Add clearwaterforest.
- * config/i386/i386.h (enum processor_type): Ditto.
- * doc/extend.texi: Ditto.
- * doc/invoke.texi: Ditto.
+ PR middle-end/112917
+ PR middle-end/113100
+ * builtins.cc (expand_builtin_stack_address): Use
+ STACK_ADDRESS_OFFSET.
+ * doc/extend.texi (__builtin_stack_address): Adjust.
+ * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
+ * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
+ * doc/tm.texi: Rebuilt.
-2023-10-18 liuhongt <hongtao.liu@intel.com>
+2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/i386/mmx.md (fma<mode>4): New expander.
- (fms<mode>4): Ditto.
- (fnma<mode>4): Ditto.
- (fnms<mode>4): Ditto.
- (vec_fmaddsubv4hf4): Ditto.
- (vec_fmsubaddv4hf4): Ditto.
+ PR target/113495
+ * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
+ (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
+ (pre_vsetvl::compute_transparent): New function.
+ (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
-2023-10-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-01-30 Fangrui Song <maskray@google.com>
- PR target/111832
- * config/riscv/riscv-vector-costs.cc (get_biggest_mode): New function.
+ PR target/105576
+ * config/i386/constraints.md: Define constraint "Ws".
+ * doc/md.texi: Document it.
-2023-10-17 Richard Sandiford <richard.sandiford@arm.com>
+2024-01-30 Marek Polacek <polacek@redhat.com>
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Don't make
- the position of the LR save slot dependent on stack clash
- protection unless shadow call stacks are enabled.
+ PR c++/110358
+ PR c++/109640
+ * doc/invoke.texi: Update -Wdangling-reference description.
-2023-10-17 Richard Sandiford <richard.sandiford@arm.com>
+2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
- * config/aarch64/aarch64.h (aarch64_frame): Add vectors that
- store the list saved GPRs, FPRs and predicate registers.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize
- the lists of saved registers. Use them to choose push candidates.
- Invalidate pop candidates if we're not going to do a pop.
- (aarch64_next_callee_save): Delete.
- (aarch64_save_callee_saves): Take a list of registers,
- rather than a range. Make !skip_wb select only write-back
- candidates.
- (aarch64_expand_prologue): Update calls accordingly.
- (aarch64_restore_callee_saves): Take a list of registers,
- rather than a range. Always skip pop candidates. Also skip
- LR if shadow call stacks are enabled.
- (aarch64_expand_epilogue): Update calls accordingly.
+ * config/xtensa/constraints.md (R, T, U):
+ Change define_constraint to define_memory_constraint.
+ * config/xtensa/predicates.md (move_operand): Don't check that a
+ constant pool operand size is a multiple of UNITS_PER_WORD.
+ * config/xtensa/xtensa.cc
+ (xtensa_lra_p, TARGET_LRA_P): Remove.
+ (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
+ clause as it can no longer be true.
+ (fixup_subreg_mem): Drop function.
+ (xtensa_output_integer_literal_parts): Consider 16-bit wide
+ constants.
+ (xtensa_legitimate_constant_p): Add short-circuit path for
+ integer load instructions. Don't check that mode size is
+ at least UNITS_PER_WORD.
+ * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
+ rather reload_in_progress and reload_completed.
+ (doloop_end): Drop operand 2.
+ (movhi_internal): Add alternative loading constant from a
+ literal pool.
+ (define_split for DI register_operand): Don't limit to
+ !TARGET_AUTO_LITPOOLS.
+ * config/xtensa/xtensa.opt (mlra): Change to no effect.
+
+2024-01-30 Pan Li <pan2.li@intel.com>
+
+ * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
+ calculate the gpr count required by vls mode.
+ (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
+ (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
+ for vls mode.
+ (riscv_get_arg_info): Add vls mode handling.
+ (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
+
+2024-01-30 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/113659
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Handle main exit without virtual use.
-2023-10-17 Richard Sandiford <richard.sandiford@arm.com>
+2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu>
- * cfgbuild.h (find_sub_basic_blocks): Declare.
- * cfgbuild.cc (update_profile_for_new_sub_basic_block): New function,
- split out from...
- (find_many_sub_basic_blocks): ...here.
- (find_sub_basic_blocks): New function.
- * function.cc (thread_prologue_and_epilogue_insns): Handle
- epilogues that contain jumps.
+ * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
-2023-10-17 Andrew Pinski <apinski@marvell.com>
+2024-01-30 Iain Sandoe <iain@sandoe.co.uk>
- PR tree-optimization/110817
- * tree-ssanames.cc (ssa_name_has_boolean_range): Remove the
- check for boolean type as they don't have "[0,1]" range.
+ PR libgcc/113403
+ * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
+ (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
+ * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
+ * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
+ * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
+ * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
-2023-10-17 Andrew Pinski <pinskia@gmail.com>
+2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
- PR tree-optimization/111432
- * match.pd (`a & (x | CST)`): New pattern.
+ PR target/113623
+ * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
+ Mark all registers that occur in addresses as needing a GPR.
-2023-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
+2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
- * tree-cfg.cc (move_sese_region_to_fn): Initialize profile_count for
- new basic block.
+ PR target/113636
+ * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
+ the containing insn as an extra parameter. Reset debug instructions
+ if they reference a register that is no longer used by real insns.
+ (early_ra::apply_allocation): Update calls accordingly.
-2023-10-17 Richard Biener <rguenther@suse.de>
+2024-01-30 Jakub Jelinek <jakub@redhat.com>
- PR tree-optimization/111846
- * tree-vectorizer.h (_slp_tree::simd_clone_info): Add.
- (SLP_TREE_SIMD_CLONE_INFO): New.
- * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
- SLP_TREE_SIMD_CLONE_INFO.
- (_slp_tree::~_slp_tree): Release it.
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
- SLP_TREE_SIMD_CLONE_INFO or STMT_VINFO_SIMD_CLONE_INFO
- dependent on if we're doing SLP.
+ PR tree-optimization/113603
+ * tree-ssa-strlen.cc (strlen_pass::handle_store): After
+ count_nonzero_bytes call refetch si using get_strinfo in case it
+ has been unshared in the meantime.
-2023-10-17 Jakub Jelinek <jakub@redhat.com>
+2024-01-30 Jakub Jelinek <jakub@redhat.com>
- * wide-int-print.h (print_dec_buf_size): For length, divide number
- of bits by 3 and add 3 instead of division by 4 and adding 4.
- * wide-int-print.cc (print_decs): Remove superfluous ()s. Don't call
- print_hex, instead call print_decu on either negated value after
- printing - or on wi itself.
- (print_decu): Don't call print_hex, instead print even large numbers
- decimally.
- (pp_wide_int_large): Assume len from print_dec_buf_size is big enough
- even if it returns false.
- * pretty-print.h (pp_wide_int): Use print_dec_buf_size to check if
- pp_wide_int_large should be used.
- * tree-pretty-print.cc (dump_generic_node): Use print_hex_buf_size
- to compute needed buffer size.
+ PR middle-end/101195
+ * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
+ fit into unsigned HOST_WIDE_INT, return constm1_rtx.
-2023-10-17 Richard Biener <rguenther@suse.de>
+2024-01-30 Jin Ma <jinma@linux.alibaba.com>
- PR middle-end/111818
- * tree-ssa.cc (maybe_optimize_var): When clearing
- DECL_NOT_GIMPLE_REG_P always rewrite into SSA.
+ * config/riscv/thead.cc (th_print_operand_address): Change %ld
+ to %lld.
-2023-10-17 Richard Biener <rguenther@suse.de>
+2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
+ Manolis Tsamis <manolis.tsamis@vrull.eu>
+ Philipp Tomsich <philipp.tomsich@vrull.eu>
- PR tree-optimization/111807
- * tree-sra.cc (build_ref_for_model): Only call
- build_reconstructed_reference when the offsets are the same.
+ * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
+ * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
+ Likewise.
+ * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
+ Call on framework moved later.
-2023-10-17 Vineet Gupta <vineetg@rivosinc.com>
+2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
- PR target/111466
- * expr.cc (expand_expr_real_2): Do not clear SUBREG_PROMOTED_VAR_P.
+ * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
+ instruction in naked function epilogues.
-2023-10-17 Chenghui Pan <panchenghui@loongson.cn>
+2024-01-29 YunQiang Su <syq@gcc.gnu.org>
- * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
- fix impl related to vec_initv32qiv16qi template to avoid ICE.
+ PR target/113655
+ * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
+ gcc_cv_as_mips_explicit_relocs.
+ * configure: Regnerated.
-2023-10-17 Lulu Cheng <chenglulu@loongson.cn>
- Chenghua Xu <xuchenghua@loongson.cn>
+2024-01-29 Matthieu Longo <matthieu.longo@arm.com>
- * config/loongarch/loongarch.h (ASM_OUTPUT_ALIGN_WITH_NOP):
- Delete.
+ PR target/108933
+ * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
+ Correct generated RTL.
+ (arm_rev16si2_alt1): Correctly handle conditional execution.
+ (arm_rev16si2_alt2): Likewise.
-2023-10-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+2024-01-29 Richard Biener <rguenther@suse.de>
- * config/riscv/riscv-vector-costs.cc (max_number_of_live_regs): Fix big LMUL issue.
- (get_store_value): New function.
+ PR middle-end/113622
+ * expr.cc (expand_assignment): Spill hard registers if
+ we index them with a variable offset.
-2023-10-16 Jeff Law <jlaw@ventanamicro.com>
+2024-01-29 Richard Biener <rguenther@suse.de>
- * explow.cc (probe_stack_range): Handle case when expand_binop
- does not construct its result in the expected location.
+ PR middle-end/113622
+ * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
+ Also allow DECL_HARD_REGISTER variables.
-2023-10-16 David Malcolm <dmalcolm@redhat.com>
+2024-01-29 Alex Coplan <alex.coplan@arm.com>
- * diagnostic.cc (diagnostic_initialize): When LANG=C, update
- default for -fdiagnostics-text-art-charset from emoji to ascii.
- * doc/invoke.texi (fdiagnostics-text-art-charset): Document the above.
+ PR target/113616
+ * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
+ Use iterate_safely when iterating over debug uses.
+ (fixup_debug_uses): Likewise.
+ (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
+ over nondebug insns instead of manually maintaining the next insn.
+ * iterator-utils.h (class safe_iterator): New.
+ (iterate_safely): New.
-2023-10-16 David Malcolm <dmalcolm@redhat.com>
+2024-01-29 H.J. Lu <hjl.tools@gmail.com>
- * diagnostic.cc (diagnostic_initialize): Ensure
- context->extra_output_kind is initialized.
+ PR target/38534
+ * config/i386/i386-options.cc (ix86_set_func_type): Save
+ callee-saved registers in noreturn functions for -O0/-Og.
-2023-10-16 Uros Bizjak <ubizjak@gmail.com>
+2024-01-29 Tobias Burnus <tburnus@baylibre.com>
- * config/i386/i386.cc (ix86_can_inline_p):
- Handle CM_LARGE and CM_LARGE_PIC.
- (x86_elf_aligned_decl_common): Ditto.
- (x86_output_aligned_bss): Ditto.
- * config/i386/i386.opt: Update doc for -mlarge-data-threshold=.
- * doc/invoke.texi: Update doc for -mlarge-data-threshold=.
-
-2023-10-16 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv-protos.h (emit_block_move): Remove redundant
- prototype. Improve comment.
- * config/riscv/riscv.cc (riscv_block_move_straight): Move from riscv.cc
- into riscv-string.cc.
- (riscv_adjust_block_mem, riscv_block_move_loop): Likewise.
- (riscv_expand_block_move): Likewise.
- * config/riscv/riscv-string.cc (riscv_block_move_straight): Add moved
- function.
- (riscv_adjust_block_mem, riscv_block_move_loop): Likewise.
- (riscv_expand_block_move): Likewise.
+ PR target/113615
+ * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
+ define for !TARGET_RDNA2_PLUS.
+
+2024-01-29 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/113281
+ * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
+ workaround for right shifts.
+ (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
+ (vect_determine_precisions_from_range): Be more selective about
+ which codes can be narrowed based on their input and output ranges.
+ For shifts, require at least one more bit of precision than the
+ maximum shift amount.
+
+2024-01-29 Tobias Burnus <tburnus@baylibre.com>
+
+ * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
+
+2024-01-29 Tobias Burnus <tburnus@baylibre.com>
+
+ * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
+ but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
+ LLVM 13.0.1+.
+
+2024-01-29 Tobias Burnus <tburnus@baylibre.com>
+
+ PR other/111966
+ * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
+ (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
+ (SET_SRAM_ECC_UNSET): ... this.
+ (copy_early_debug_info): Remove gfx900 special case, now handled as
+ part of the generic handling.
+ (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
+
+2024-01-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/110603
+ * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
+ setting of pdata->maxlen to vr.upper_bound (which is unconditionally
+ overwritten anyway). Avoid creating invalid range with minlen
+ larger than maxlen. Formatting fix.
+
+2024-01-29 Richard Biener <rguenther@suse.de>
+
+ PR debug/103047
+ * tree-inline.cc (initialize_inlined_parameters): Reverse
+ the decl chain of inlined parameters.
+
+2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
+ alignment of CFString constants by setting DECL_USER_ALIGN.
+
+2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR libgcc/113402
+ * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
+ and BUILT_IN_GCC_NESTED_PTR_DELETED.
+ * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
+ BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
+ rename the library fallbacks to __gcc_nested_func_ptr_created and
+ __gcc_nested_func_ptr_deleted.
+ * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
+ and __gcc_nested_func_ptr_deleted.
+ * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
+ BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
+ * tree.cc (build_common_builtin_nodes): Build the
+ BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
+ builtins only for non-explicit.
+
+2024-01-28 YunQiang Su <syq@gcc.gnu.org>
+
+ * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
+
+2024-01-27 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/38534
+ * config/i386/i386-options.cc (ix86_set_func_type): Don't
+ save and restore callee saved registers for a noreturn function
+ with nothrow or compiled with -fno-exceptions.
+
+2024-01-27 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/103503
+ PR target/113312
+ * config/i386/i386-expand.cc (ix86_expand_call): Replace
+ no_caller_saved_registers check with call_saved_registers check.
+ Clobber all registers that are not used by the callee with
+ no_callee_saved_registers attribute.
+ * config/i386/i386-options.cc (ix86_set_func_type): Set
+ call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
+ noreturn function. Disallow no_callee_saved_registers with
+ interrupt or no_caller_saved_registers attributes together.
+ (ix86_set_current_function): Replace no_caller_saved_registers
+ check with call_saved_registers check.
+ (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
+ (ix86_handle_call_saved_registers_attribute): This.
+ (ix86_gnu_attributes): Add
+ ix86_handle_call_saved_registers_attribute.
+ * config/i386/i386.cc (ix86_conditional_register_usage): Replace
+ no_caller_saved_registers check with call_saved_registers check.
+ (ix86_function_ok_for_sibcall): Don't allow callee with
+ no_callee_saved_registers attribute when the calling function
+ has callee-saved registers.
+ (ix86_comp_type_attributes): Also check
+ no_callee_saved_registers.
+ (ix86_epilogue_uses): Replace no_caller_saved_registers check
+ with call_saved_registers check.
+ (ix86_hard_regno_scratch_ok): Likewise.
+ (ix86_save_reg): Replace no_caller_saved_registers check with
+ call_saved_registers check. Don't save any registers for
+ TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with
+ TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
+ no_callee_saved_registers attribute is called.
+ (find_drap_reg): Replace no_caller_saved_registers check with
+ call_saved_registers check.
+ * config/i386/i386.h (call_saved_registers_type): New enum.
+ (machine_function): Replace no_caller_saved_registers with
+ call_saved_registers.
+ * doc/extend.texi: Document no_callee_saved_registers attribute.
+
+2024-01-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113614
+ * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
+ widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
+ TRUNC_MOD_EXPR or FLOAT_EXPR uses.
+
+2024-01-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113568
+ * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
+ For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
+ in the widening extension checks.
+
+2024-01-27 Jakub Jelinek <jakub@redhat.com>
+
+ * gimple-lower-bitint.cc (gimple_lower_bitint): For
+ TDF_DETAILS dump mapping of SSA_NAMEs to decls.
+
+2024-01-26 Hans-Peter Nilsson <hp@axis.com>
+
+ * cgraphunit.cc (process_function_and_variable_attributes): Tweak
+ the warning for an attribute-always_inline without inline declaration.
+
+2024-01-26 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR other/113575
+ * genopinit.cc (main): Split init_all_optabs into functions
+ of 1000 patterns each.
+
+2024-01-26 Tobias Burnus <tburnus@baylibre.com>
+
+ * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
+ TM_MULTILIB_CONFIG.
+ * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
+ * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
+ -march/-mtune.
+
+2024-01-26 Andrew Stubbs <ams@baylibre.com>
+
+ * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
+ * config/gcn/gcn-valu.md (all_convert): New iterator.
+ (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
+ define_expand, and rename the old one to ...
+ (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
+ (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
+ (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
+ (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
+ * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
+ (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
+ * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
+ (<u>mulqihi3_scalar): Likewise.
+
+2024-01-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/113602
+ * tree-data-ref.cc (dr_analyze_innermost): Fail when
+ the base object isn't addressable.
+
+2024-01-26 Tobias Burnus <tburnus@baylibre.com>
+
+ * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
+ "--amdhsa-code-object-version=" argument.
+ (ASM_SPEC): Use it; replace previous version of it.
+
+2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
+ (pre_vsetvl::emit_vsetvl): Ditto.
-2023-10-16 Manolis Tsamis <manolis.tsamis@vrull.eu>
+2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
- * Makefile.in: Add fold-mem-offsets.o.
- * passes.def: Schedule a new pass.
- * tree-pass.h (make_pass_fold_mem_offsets): Declare.
- * common.opt: New options.
- * doc/invoke.texi: Document new option.
- * fold-mem-offsets.cc: New file.
-
-2023-10-16 Andrew Pinski <pinskia@gmail.com>
-
- PR tree-optimization/101541
- * match.pd (A CMP 0 ? A : -A): Improve
- using bitwise_equal_p.
-
-2023-10-16 Andrew Pinski <pinskia@gmail.com>
-
- PR tree-optimization/31531
- * match.pd (~X op ~Y): Allow for an optional nop convert.
- (~X op C): Likewise.
-
-2023-10-16 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.md (*ashlsi3_1): New pre-reload splitter to
- use bset dst,0,src to implement 1<<x on !TARGET_BARREL_SHIFTER.
-
-2023-10-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/vector.md (popcountv8hi2_vx): Sign extend each
- unsigned vector element.
-
-2023-10-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-costs.cc (costs::preferred_new_lmul_p): Use VLS modes.
-
-2023-10-16 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * fold-const.cc (expr_not_equal_to): Replace get_global_range_query
- by get_range_query.
- * gimple-fold.cc (size_must_be_zero_p): Likewise.
- * gimple-range-fold.cc (fur_source::fur_source): Likewise.
- * gimple-ssa-warn-access.cc (check_nul_terminated_array): Likewise.
- * tree-dfa.cc (get_ref_base_and_extent): Likewise.
-
-2023-10-16 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/mmx.md (V2FI_32): New mode iterator
- (movd_v2hf_to_sse): Rename to ..
- (movd_<mode>_to_sse): .. this.
- (movd_v2hf_to_sse_reg): Rename to ..
- (movd_<mode>_to_sse_reg): .. this.
- (fix<fixunssuffix>_trunc<mode><mmxintvecmodelower>2): New
- expander.
- (fix<fixunssuffix>_truncv2hfv2si2): Ditto.
- (float<floatunssuffix><mmxintvecmodelower><mode>2): Ditto.
- (float<floatunssuffix>v2siv2hf2): Ditto.
- (extendv2hfv2sf2): Ditto.
- (truncv2sfv2hf2): Ditto.
- * config/i386/sse.md (*vec_concatv8hf_movss): Rename to ..
- (*vec_concat<mode>_movss): .. this.
-
-2023-10-16 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386-expand.cc (ix86_sse_copysign_to_positive):
- Handle HFmode.
- (ix86_expand_round_sse4): Ditto.
- * config/i386/i386.md (roundhf2): New expander.
- (lroundhf<mode>2): Ditto.
- (lrinthf<mode>2): Ditto.
- (l<rounding_insn>hf<mode>2): Ditto.
- * config/i386/mmx.md (sqrt<mode>2): Ditto.
- (btrunc<mode>2): Ditto.
- (nearbyint<mode>2): Ditto.
- (rint<mode>2): Ditto.
- (lrint<mode><mmxintvecmodelower>2): Ditto.
- (floor<mode>2): Ditto.
- (lfloor<mode><mmxintvecmodelower>2): Ditto.
- (ceil<mode>2): Ditto.
- (lceil<mode><mmxintvecmodelower>2): Ditto.
- (round<mode>2): Ditto.
- (lround<mode><mmxintvecmodelower>2): Ditto.
- * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): Ditto.
- (lfloor<mode><sseintvecmodelower>2): Ditto.
- (lceil<mode><sseintvecmodelower>2): Ditto.
- (lround<mode><sseintvecmodelower>2): Ditto.
- (sse4_1_round<ssescalarmodesuffix>): Extend to V8HF.
- (round<mode>2): Extend to V8HF/V16HF/V32HF.
-
-2023-10-15 Tobias Burnus <tobias@codesourcery.com>
-
- * doc/invoke.texi (-fopenacc, -fopenmp, -fopenmp-simd): Use @samp not
- @code; document more completely the supported Fortran sentinels.
-
-2023-10-15 Roger Sayle <roger@nextmovesoftware.com>
-
- * optabs.cc (expand_subword_shift): Call simplify_expand_binop
- instead of expand_binop. Optimize cases (i.e. avoid generating
- RTL) when CARRIES or INTO_INPUT is zero. Use one_cmpl_optab
- (i.e. NOT) instead of xor_optab with ~0 to calculate ~OP1.
-
-2023-10-15 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/111800
- * wide-int-print.h (print_dec_buf_size, print_decs_buf_size,
- print_decu_buf_size, print_hex_buf_size): New inline functions.
- * wide-int.cc (assert_deceq): Use print_dec_buf_size.
- (assert_hexeq): Use print_hex_buf_size.
- * wide-int-print.cc (print_decs): Use print_decs_buf_size.
- (print_decu): Use print_decu_buf_size.
- (print_hex): Use print_hex_buf_size.
- (pp_wide_int_large): Use print_dec_buf_size.
- * value-range.cc (irange_bitmask::dump): Use print_hex_buf_size.
- * value-range-pretty-print.cc (vrange_printer::print_irange_bitmasks):
- Likewise.
- * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations): Use
- print_dec_buf_size. Use TYPE_SIGN macro in print_dec call argument.
+ * config/loongarch/lasx.md (vec_extract<mode>_0):
+ New define_insn_and_split patten.
-2023-10-15 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
- * combine.cc (simplify_compare_const): Fix handling of unsigned
- constants.
+ * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
-2023-10-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Fix vsingle incorrect attribute for RVVM2x2QI.
-
-2023-10-14 Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.cc (gimplify_bind_expr): Handle Fortran's
- 'omp allocate' for stack variables.
-
-2023-10-14 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * tree-core.h (struct tree_base): Remove int_length.offset
- member, change type of int_length.unextended and int_length.extended
- from unsigned char to unsigned short.
- * tree.h (TREE_INT_CST_OFFSET_NUNITS): Remove.
- (wi::extended_tree <N>::get_len): Don't use TREE_INT_CST_OFFSET_NUNITS,
- instead compute it at runtime from TREE_INT_CST_EXT_NUNITS and
- TREE_INT_CST_NUNITS.
- * tree.cc (wide_int_to_tree_1): Don't assert
- TREE_INT_CST_OFFSET_NUNITS value.
- (make_int_cst): Don't initialize TREE_INT_CST_OFFSET_NUNITS.
- * wide-int.h (WIDE_INT_MAX_ELTS): Change from 255 to 1024.
- (WIDEST_INT_MAX_ELTS): Change from 510 to 2048, adjust comment.
- (trailing_wide_int_storage): Change m_len type from unsigned char *
- to unsigned short *.
- (trailing_wide_int_storage::trailing_wide_int_storage): Change second
- argument from unsigned char * to unsigned short *.
- (trailing_wide_ints): Change m_max_len type from unsigned char to
- unsigned short. Change m_len element type from
- struct{unsigned char len;} to unsigned short.
- (trailing_wide_ints <N>::operator []): Remove .len from m_len
- accesses.
- * value-range-storage.h (irange_storage::lengths_address): Change
- return type from const unsigned char * to const unsigned short *.
- (irange_storage::write_lengths_address): Change return type from
- unsigned char * to unsigned short *.
- * value-range-storage.cc (irange_storage::write_lengths_address):
- Likewise.
- (irange_storage::lengths_address): Change return type from
- const unsigned char * to const unsigned short *.
- (write_wide_int): Change len argument type from unsigned char *&
- to unsigned short *&.
- (irange_storage::set_irange): Change len variable type from
- unsigned char * to unsigned short *.
- (read_wide_int): Change len argument type from unsigned char to
- unsigned short. Use trailing_wide_int_storage <unsigned short>
- instead of trailing_wide_int_storage and
- trailing_wide_int <unsigned short> instead of trailing_wide_int.
- (irange_storage::get_irange): Change len variable type from
- unsigned char * to unsigned short *.
- (irange_storage::size): Multiply n by sizeof (unsigned short)
- in len_size variable initialization.
- (irange_storage::dump): Change len variable type from
- unsigned char * to unsigned short *.
-
-2023-10-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Remove redundant iterators.
-
-2023-10-13 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/111622
- * value-relation.cc (equiv_oracle::add_partial_equiv): Do not
- register a partial equivalence if an operand has no uses.
-
-2023-10-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111795
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
- integer mode mask arguments.
-
-2023-10-13 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (mask_call_maps): New.
- (vect_get_operand_map): Handle IFN_MASK_CALL.
- (vect_build_slp_tree_1): Likewise.
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
- SLP.
-
-2023-10-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111779
- * tree-sra.cc (sra_handled_bf_read_p): New function.
- (build_access_from_expr_1): Handle some BIT_FIELD_REFs.
- (sra_modify_expr): Likewise.
- (make_fancy_name_1): Skip over BIT_FIELD_REF.
-
-2023-10-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111773
- * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do
- not elide noreturn calls that are reflected to the IL.
-
-2023-10-13 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv.cc (riscv_legitimize_poly_move): Bump
- max_power to 64.
- * config/riscv/riscv.h (MAX_POLY_VARIANT): New.
-
-2023-10-13 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (lfloor<mode><v_i_l_ll_convert>2): New
- pattern for lfloor/lfloorf.
- * config/riscv/riscv-protos.h (enum insn_type): New enum value.
- (expand_vec_lfloor): New func decl for expanding lfloor.
- * config/riscv/riscv-v.cc (expand_vec_lfloor): New func impl
- for expanding lfloor.
-
-2023-10-13 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (lceil<mode><v_i_l_ll_convert>2): New
- pattern] for lceil/lceilf.
- * config/riscv/riscv-protos.h (enum insn_type): New enum value.
- (expand_vec_lceil): New func decl for expanding lceil.
- * config/riscv/riscv-v.cc (expand_vec_lceil): New func impl
- for expanding lceil.
-
-2023-10-12 Michael Meissner <meissner@linux.ibm.com>
-
- PR target/111778
- * config/rs6000/rs6000.cc (can_be_built_by_li_lis_and_rldicl): Protect
- code from shifts that are undefined.
- (can_be_built_by_li_lis_and_rldicr): Likewise.
- (can_be_built_by_li_and_rldic): Protect code from shifts that
- undefined. Also replace uses of 1ULL with HOST_WIDE_INT_1U.
-
-2023-10-12 Alex Coplan <alex.coplan@arm.com>
-
- * reg-notes.def (NOALIAS): Correct comment.
-
-2023-10-12 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/111787
- * tree.h (wi::int_traits <unextended_tree>::needs_write_val_arg): New
- static data member.
- (int_traits <extended_tree <N>>::needs_write_val_arg): Likewise.
- (wi::ints_for): Provide separate partial specializations for
- generic_wide_int <extended_tree <N>> and INL_CONST_PRECISION or that
- and CONST_PRECISION, rather than using
- int_traits <extended_tree <N> >::precision_type as the second template
- argument.
- * rtl.h (wi::int_traits <rtx_mode_t>::needs_write_val_arg): New
- static data member.
- * double-int.h (wi::int_traits <double_int>::needs_write_val_arg):
- Likewise.
+2024-01-26 Li Wei <liwei@loongson.cn>
-2023-10-12 Mary Bennett <mary.bennett@embecosm.com>
-
- PR middle-end/111777
- * doc/extend.texi: Change subsubsection to subsection for
- CORE-V built-ins.
-
-2023-10-12 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add undef.
-
-2023-10-12 Jakub Jelinek <jakub@redhat.com>
-
- * wide-int.h (widest_int_storage <N>::write_val): If l is small
- and there is space in u.val array, store a canary value at the
- end when checking.
- (widest_int_storage <N>::set_len): Check the canary hasn't been
- overwritten.
-
-2023-10-12 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * wide-int.h: Adjust file comment.
- (WIDE_INT_MAX_INL_ELTS): Define to former value of WIDE_INT_MAX_ELTS.
- (WIDE_INT_MAX_INL_PRECISION): Define.
- (WIDE_INT_MAX_ELTS): Change to 255. Assert that WIDE_INT_MAX_INL_ELTS
- is smaller than WIDE_INT_MAX_ELTS.
- (RWIDE_INT_MAX_ELTS, RWIDE_INT_MAX_PRECISION, WIDEST_INT_MAX_ELTS,
- WIDEST_INT_MAX_PRECISION): Define.
- (WI_BINARY_RESULT_VAR, WI_UNARY_RESULT_VAR): Change write_val callers
- to pass 0 as a new argument.
- (class widest_int_storage): Likewise.
- (widest_int, widest2_int): Change typedefs to use widest_int_storage
- rather than fixed_wide_int_storage.
- (enum wi::precision_type): Add INL_CONST_PRECISION enumerator.
- (struct binary_traits): Add partial specializations for
- INL_CONST_PRECISION.
- (generic_wide_int): Add needs_write_val_arg static data member.
- (int_traits): Likewise.
- (wide_int_storage): Replace val non-static data member with a union
- u of it and HOST_WIDE_INT *valp. Declare copy constructor, copy
- assignment operator and destructor. Add unsigned int argument to
- write_val.
- (wide_int_storage::wide_int_storage): Initialize precision to 0
- in the default ctor. Remove unnecessary {}s around STATIC_ASSERTs.
- Assert in non-default ctor T's precision_type is not
- INL_CONST_PRECISION and allocate u.valp for large precision. Add
- copy constructor.
- (wide_int_storage::~wide_int_storage): New.
- (wide_int_storage::operator=): Add copy assignment operator. In
- assignment operator remove unnecessary {}s around STATIC_ASSERTs,
- assert ctor T's precision_type is not INL_CONST_PRECISION and
- if precision changes, deallocate and/or allocate u.valp.
- (wide_int_storage::get_val): Return u.valp rather than u.val for
- large precision.
- (wide_int_storage::write_val): Likewise. Add an unused unsigned int
- argument.
- (wide_int_storage::set_len): Use write_val instead of writing val
- directly.
- (wide_int_storage::from, wide_int_storage::from_array): Adjust
- write_val callers.
- (wide_int_storage::create): Allocate u.valp for large precisions.
- (wi::int_traits <wide_int_storage>::get_binary_precision): New.
- (fixed_wide_int_storage::fixed_wide_int_storage): Make default
- ctor defaulted.
- (fixed_wide_int_storage::write_val): Add unused unsigned int argument.
- (fixed_wide_int_storage::from, fixed_wide_int_storage::from_array):
- Adjust write_val callers.
- (wi::int_traits <fixed_wide_int_storage>::get_binary_precision): New.
- (WIDEST_INT): Define.
- (widest_int_storage): New template class.
- (wi::int_traits <widest_int_storage>): New.
- (trailing_wide_int_storage::write_val): Add unused unsigned int
- argument.
- (wi::get_binary_precision): Use
- wi::int_traits <WI_BINARY_RESULT (T1, T2)>::get_binary_precision
- rather than get_precision on get_binary_result.
- (wi::copy): Adjust write_val callers. Don't call set_len if
- needs_write_val_arg.
- (wi::bit_not): If result.needs_write_val_arg, call write_val
- again with upper bound estimate of len.
- (wi::sext, wi::zext, wi::set_bit): Likewise.
- (wi::bit_and, wi::bit_and_not, wi::bit_or, wi::bit_or_not,
- wi::bit_xor, wi::add, wi::sub, wi::mul, wi::mul_high, wi::div_trunc,
- wi::div_floor, wi::div_ceil, wi::div_round, wi::divmod_trunc,
- wi::mod_trunc, wi::mod_floor, wi::mod_ceil, wi::mod_round,
- wi::lshift, wi::lrshift, wi::arshift): Likewise.
- (wi::bswap, wi::bitreverse): Assert result.needs_write_val_arg
- is false.
- (gt_ggc_mx, gt_pch_nx): Remove generic template for all
- generic_wide_int, instead add functions and templates for each
- storage of generic_wide_int. Make functions for
- generic_wide_int <wide_int_storage> and templates for
- generic_wide_int <widest_int_storage <N>> deleted.
- (wi::mask, wi::shifted_mask): Adjust write_val calls.
- * wide-int.cc (zeros): Decrease array size to 1.
- (BLOCKS_NEEDED): Use CEIL.
- (canonize): Use HOST_WIDE_INT_M1.
- (wi::from_buffer): Pass 0 to write_val.
- (wi::to_mpz): Use CEIL.
- (wi::from_mpz): Likewise. Pass 0 to write_val. Use
- WIDE_INT_MAX_INL_ELTS instead of WIDE_INT_MAX_ELTS.
- (wi::mul_internal): Use WIDE_INT_MAX_INL_PRECISION instead of
- MAX_BITSIZE_MODE_ANY_INT in automatic array sizes, for prec
- above WIDE_INT_MAX_INL_PRECISION estimate precision from
- lengths of operands. Use XALLOCAVEC allocated buffers for
- prec above WIDE_INT_MAX_INL_PRECISION.
- (wi::divmod_internal): Likewise.
- (wi::lshift_large): For len > WIDE_INT_MAX_INL_ELTS estimate
- it from xlen and skip.
- (rshift_large_common): Remove xprecision argument, add len
- argument with len computed in caller. Don't return anything.
- (wi::lrshift_large, wi::arshift_large): Compute len here
- and pass it to rshift_large_common, for lengths above
- WIDE_INT_MAX_INL_ELTS using estimations from xlen if possible.
- (assert_deceq, assert_hexeq): For lengths above
- WIDE_INT_MAX_INL_ELTS use XALLOCAVEC allocated buffer.
- (test_printing): Use WIDE_INT_MAX_INL_PRECISION instead of
- WIDE_INT_MAX_PRECISION.
- * wide-int-print.h (WIDE_INT_PRINT_BUFFER_SIZE): Use
- WIDE_INT_MAX_INL_PRECISION instead of WIDE_INT_MAX_PRECISION.
- * wide-int-print.cc (print_decs, print_decu, print_hex): For
- lengths above WIDE_INT_MAX_INL_ELTS use XALLOCAVEC allocated buffer.
- * tree.h (wi::int_traits<extended_tree <N>>): Change precision_type
- to INL_CONST_PRECISION for N == ADDR_MAX_PRECISION.
- (widest_extended_tree): Use WIDEST_INT_MAX_PRECISION instead of
- WIDE_INT_MAX_PRECISION.
- (wi::ints_for): Use int_traits <extended_tree <N> >::precision_type
- instead of hard coded CONST_PRECISION.
- (widest2_int_cst): Use WIDEST_INT_MAX_PRECISION instead of
- WIDE_INT_MAX_PRECISION.
- (wi::extended_tree <N>::get_len): Use WIDEST_INT_MAX_PRECISION rather
- than WIDE_INT_MAX_PRECISION.
- (wi::ints_for::zero): Use
- wi::int_traits <wi::extended_tree <N> >::precision_type instead of
- wi::CONST_PRECISION.
- * tree.cc (build_replicated_int_cst): Formatting fix. Use
- WIDE_INT_MAX_INL_ELTS rather than WIDE_INT_MAX_ELTS.
- * print-tree.cc (print_node): Don't print TREE_UNAVAILABLE on
- INTEGER_CSTs, TREE_VECs or SSA_NAMEs.
- * double-int.h (wi::int_traits <double_int>::precision_type): Change
- to INL_CONST_PRECISION from CONST_PRECISION.
- * poly-int.h (struct poly_coeff_traits): Add partial specialization
- for wi::INL_CONST_PRECISION.
- * cfgloop.h (bound_wide_int): New typedef.
- (struct nb_iter_bound): Change bound type from widest_int to
- bound_wide_int.
- (struct loop): Change nb_iterations_upper_bound,
- nb_iterations_likely_upper_bound and nb_iterations_estimate type from
- widest_int to bound_wide_int.
- * cfgloop.cc (record_niter_bound): Return early if wi::min_precision
- of i_bound is too large for bound_wide_int. Adjustments for the
- widest_int to bound_wide_int type change in non-static data members.
- (get_estimated_loop_iterations, get_max_loop_iterations,
- get_likely_max_loop_iterations): Adjustments for the widest_int to
- bound_wide_int type change in non-static data members.
- * tree-vect-loop.cc (vect_transform_loop): Likewise.
- * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations): Use
- XALLOCAVEC allocated buffer for i_bound len above
- WIDE_INT_MAX_INL_ELTS.
- (record_estimate): Return early if wi::min_precision of i_bound is too
- large for bound_wide_int. Adjustments for the widest_int to
- bound_wide_int type change in non-static data members.
- (wide_int_cmp): Use bound_wide_int instead of widest_int.
- (bound_index): Use bound_wide_int instead of widest_int.
- (discover_iteration_bound_by_body_walk): Likewise. Use
- widest_int::from to convert it to widest_int when passed to
- record_niter_bound.
- (maybe_lower_iteration_bound): Use widest_int::from to convert it to
- widest_int when passed to record_niter_bound.
- (estimate_numbers_of_iteration): Don't record upper bound if
- loop->nb_iterations has too large precision for bound_wide_int.
- (n_of_executions_at_most): Use widest_int::from.
- * tree-ssa-loop-ivcanon.cc (remove_redundant_iv_tests): Adjust for
- the widest_int to bound_wide_int changes.
- * match.pd (fold_sign_changed_comparison simplification): Use
- wide_int::from on wi::to_wide instead of wi::to_widest.
- * value-range.h (irange::maybe_resize): Avoid using memcpy on
- non-trivially copyable elements.
- * value-range.cc (irange_bitmask::dump): Use XALLOCAVEC allocated
- buffer for mask or value len above WIDE_INT_PRINT_BUFFER_SIZE.
- * fold-const.cc (fold_convert_const_int_from_int, fold_unary_loc):
- Use wide_int::from on wi::to_wide instead of wi::to_widest.
- * tree-ssa-ccp.cc (bit_value_binop): Zero extend r1max from width
- before calling wi::udiv_trunc.
- * lto-streamer-out.cc (output_cfg): Adjustments for the widest_int to
- bound_wide_int type change in non-static data members.
- * lto-streamer-in.cc (input_cfg): Likewise.
- (lto_input_tree_1): Use WIDE_INT_MAX_INL_ELTS rather than
- WIDE_INT_MAX_ELTS. For length above WIDE_INT_MAX_INL_ELTS use
- XALLOCAVEC allocated buffer. Formatting fix.
- * data-streamer-in.cc (streamer_read_wide_int,
- streamer_read_widest_int): Likewise.
- * tree-affine.cc (aff_combination_expand): Use placement new to
- construct name_expansion.
- (free_name_expansion): Destruct name_expansion.
- * gimple-ssa-strength-reduction.cc (struct slsr_cand_d): Change
- index type from widest_int to offset_int.
- (class incr_info_d): Change incr type from widest_int to offset_int.
- (alloc_cand_and_find_basis, backtrace_base_for_ref,
- restructure_reference, slsr_process_ref, create_mul_ssa_cand,
- create_mul_imm_cand, create_add_ssa_cand, create_add_imm_cand,
- slsr_process_add, cand_abs_increment, replace_mult_candidate,
- replace_unconditional_candidate, incr_vec_index,
- create_add_on_incoming_edge, create_phi_basis_1,
- replace_conditional_candidate, record_increment,
- record_phi_increments_1, phi_incr_cost_1, phi_incr_cost,
- lowest_cost_path, total_savings, ncd_with_phi, ncd_of_cand_and_phis,
- nearest_common_dominator_for_cands, insert_initializers,
- all_phi_incrs_profitable_1, replace_one_candidate,
- replace_profitable_candidates): Use offset_int rather than widest_int
- and wi::to_offset rather than wi::to_widest.
- * real.cc (real_to_integer): Use WIDE_INT_MAX_INL_ELTS rather than
- 2 * WIDE_INT_MAX_ELTS and for words above that use XALLOCAVEC
- allocated buffer.
- * tree-ssa-loop-ivopts.cc (niter_for_exit): Use placement new
- to construct tree_niter_desc and destruct it on failure.
- (free_tree_niter_desc): Destruct tree_niter_desc if value is non-NULL.
- * gengtype.cc (main): Remove widest_int handling.
- * graphite-isl-ast-to-gimple.cc (widest_int_from_isl_expr_int): Use
- WIDEST_INT_MAX_ELTS instead of WIDE_INT_MAX_ELTS.
- * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Use
- WIDE_INT_MAX_INL_PRECISION instead of WIDE_INT_MAX_PRECISION and
- assert get_len () fits into it.
- * value-range-pretty-print.cc (vrange_printer::print_irange_bitmasks):
- For mask or value lengths above WIDE_INT_MAX_INL_ELTS use XALLOCAVEC
- allocated buffer.
- * gimple-ssa-sprintf.cc (adjust_range_for_overflow): Use
- wide_int::from on wi::to_wide instead of wi::to_widest.
- * omp-general.cc (score_wide_int): New typedef.
- (omp_context_compute_score): Use score_wide_int instead of widest_int
- and adjust for those changes.
- (struct omp_declare_variant_entry): Change score and
- score_in_declare_simd_clone non-static data member type from widest_int
- to score_wide_int.
- (omp_resolve_late_declare_variant, omp_resolve_declare_variant): Use
- score_wide_int instead of widest_int and adjust for those changes.
- (omp_lto_output_declare_variant_alt): Likewise.
- (omp_lto_input_declare_variant_alt): Likewise.
- * godump.cc (go_output_typedef): Assert get_len () is smaller than
- WIDE_INT_MAX_INL_ELTS.
-
-2023-10-12 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (lround<mode><v_i_l_ll_convert>2): New
- pattern for lround/lroundf.
- * config/riscv/riscv-protos.h (enum insn_type): New enum value.
- (expand_vec_lround): New func decl for expanding lround.
- * config/riscv/riscv-v.cc (expand_vec_lround): New func impl
- for expanding lround.
-
-2023-10-12 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2out.h (wide_int_ptr): Remove.
- (dw_wide_int_ptr): New typedef.
- (struct dw_val_node): Change type of val_wide from wide_int_ptr
- to dw_wide_int_ptr.
- (struct dw_wide_int): New type.
- (dw_wide_int::elt): New method.
- (dw_wide_int::operator ==): Likewise.
- * dwarf2out.cc (get_full_len): Change argument type to
- const dw_wide_int & from const wide_int &. Use CEIL. Call
- get_precision method instead of calling wi::get_precision.
- (alloc_dw_wide_int): New function.
- (add_AT_wide): Change w argument type to const wide_int_ref &
- from const wide_int &. Use alloc_dw_wide_int.
- (mem_loc_descriptor, loc_descriptor): Use alloc_dw_wide_int.
- (insert_wide_int): Change val argument type to const wide_int_ref &
- from const wide_int &.
- (add_const_value_attribute): Pass rtx_mode_t temporary directly to
- add_AT_wide instead of using a temporary variable.
-
-2023-10-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111764
- * tree-vect-loop.cc (check_reduction_path): Remove the attempt
- to allow x + x via special-casing of assigns.
-
-2023-10-12 Hu, Lin1 <lin1.hu@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Detect USER_MSR.
- * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_USER_MSR_SET): New.
- (OPTION_MASK_ISA2_USER_MSR_UNSET): Ditto.
- (ix86_handle_option): Handle -musermsr.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_USER_MSR.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for usermsr.
- * config.gcc: Add usermsrintrin.h
- * config/i386/cpuid.h (bit_USER_MSR): New.
- * config/i386/i386-builtin-types.def:
- Add DEF_FUNCTION_TYPE (VOID, UINT64, UINT64).
- * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
- Add __builtin_urdmsr and __builtin_uwrmsr.
- * config/i386/i386-builtins.h (ix86_builtins):
- Add IX86_BUILTIN_URDMSR and IX86_BUILTIN_UWRMSR.
- * config/i386/i386-c.cc (ix86_target_macros_internal):
- Define __USER_MSR__.
- * config/i386/i386-expand.cc (ix86_expand_builtin):
- Handle new builtins.
- * config/i386/i386-isa.def (USER_MSR): Add DEF_PTA(USER_MSR).
- * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
- Handle usermsr.
- * config/i386/i386.md (urdmsr): New define_insn.
- (uwrmsr): Ditto.
- * config/i386/i386.opt: Add option -musermsr.
- * config/i386/x86gprintrin.h: Include usermsrintrin.h
- * doc/extend.texi: Document usermsr.
- * doc/invoke.texi: Document -musermsr.
- * doc/sourcebuild.texi: Document target usermsr.
- * config/i386/usermsrintrin.h: New file.
-
-2023-10-12 Yang Yujie <yangyujie@loongson.cn>
-
- * config.gcc: Add loongarch-driver.h to tm_files.
- * config/loongarch/loongarch.h: Do not include loongarch-driver.h.
- * config/loongarch/t-loongarch: Append loongarch-multilib.h to $(GTM_H)
- instead of $(TM_H) for building generator programs.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/111367
- * config/rs6000/rs6000.md (stack_protect_setsi): Support prefixed
- instruction emission and incorporate to stack_protect_set<mode>.
- (stack_protect_setdi): Rename to ...
- (stack_protect_set<mode>): ... this, adjust constraint.
- (stack_protect_testsi): Support prefixed instruction emission and
- incorporate to stack_protect_test<mode>.
- (stack_protect_testdi): Rename to ...
- (stack_protect_test<mode>): ... this, adjust constraint.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Consider generated
- VEC_PERM_EXPR stmt for VMAT_CONTIGUOUS_REVERSE in costing as
- vec_perm.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_store_cost): Remove.
- (vectorizable_store): Adjust the costing for the remaining memory
- access types VMAT_CONTIGUOUS{, _DOWN, _REVERSE}.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_store_cost): Assert it will never
- get VMAT_CONTIGUOUS_PERMUTE and remove VMAT_CONTIGUOUS_PERMUTE related
- handlings.
- (vectorizable_store): Adjust the cost handling on
- VMAT_CONTIGUOUS_PERMUTE without calling vect_model_store_cost.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_store_cost): Assert it will never
- get VMAT_LOAD_STORE_LANES.
- (vectorizable_store): Adjust the cost handling on VMAT_LOAD_STORE_LANES
- without calling vect_model_store_cost. Factor out new lambda function
- update_prologue_cost.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_store_cost): Assert it won't get
- VMAT_ELEMENTWISE and VMAT_STRIDED_SLP any more, and remove their
- related handlings.
- (vectorizable_store): Adjust the cost handling on VMAT_ELEMENTWISE
- and VMAT_STRIDED_SLP without calling vect_model_store_cost.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Adjust costing on
- vectorizable_scan_store without calling vect_model_store_cost
- any more.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_store_cost): Assert it won't get
- VMAT_GATHER_SCATTER any more, remove VMAT_GATHER_SCATTER related
- handlings and the related parameter gs_info.
- (vect_build_scatter_store_calls): Add the handlings on costing with
- one more argument cost_vec.
- (vectorizable_store): Adjust the cost handling on VMAT_GATHER_SCATTER
- without calling vect_model_store_cost any more.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Move and duplicate the call
- to vect_model_store_cost down to some different transform paths
- according to the handlings of different vect_memory_access_types
- or some special handling need.
-
-2023-10-12 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Ensure the generated
- vector store for some case of VMAT_ELEMENTWISE is supported.
-
-2023-10-12 Mo, Zewei <zewei.mo@intel.com>
- Hu Lin1 <lin1.hu@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
-
- * config/i386/i386.cc (gen_push2): New function to emit push2
- and adjust cfa offset.
- (ix86_pro_and_epilogue_can_use_push2_pop2): New function to
- determine whether push2/pop2 can be used.
- (ix86_compute_frame_layout): Adjust preferred stack boundary
- and stack alignment needed for push2/pop2.
- (ix86_emit_save_regs): Emit push2 when available.
- (ix86_emit_restore_reg_using_pop2): New function to emit pop2
- and adjust cfa info.
- (ix86_emit_restore_regs_using_pop2): New function to loop
- through the saved regs and call above.
- (ix86_expand_epilogue): Call ix86_emit_restore_regs_using_pop2
- when push2pop2 available.
- * config/i386/i386.md (push2_di): New pattern for push2.
- (pop2_di): Likewise for pop2.
+ * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
-2023-10-12 Pan Li <pan2.li@intel.com>
+2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/riscv/autovec.md (lrint<mode><vlconvert>2): Rename from.
- (lrint<mode><v_i_l_ll_convert>2): Rename to.
- * config/riscv/vector-iterators.md: Rename and remove TARGET_64BIT.
+ PR target/113469
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
-2023-10-11 Kito Cheng <kito.cheng@sifive.com>
+2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
- * config/riscv/riscv-opts.h (TARGET_MIN_VLEN_OPTS): New.
+ PR target/100212
+ * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
+ undefined shift after the call to exact_log2.
-2023-10-11 Jeff Law <jlaw@ventanamicro.com>
+2024-01-25 Andrew Pinski <quic_apinski@quicinc.com>
- * config/riscv/riscv.md (jump): Adjust sequence to use a "jump"
- pseudo op instead of a "call" pseudo op.
+ PR target/100204
+ * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
+ before taking the negative of it.
-2023-10-11 Kito Cheng <kito.cheng@sifive.com>
+2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com>
- * config/riscv/riscv-subset.h (riscv_subset_list::parse_single_std_ext):
- New.
- (riscv_subset_list::parse_single_multiletter_ext): Ditto.
- (riscv_subset_list::clone): Ditto.
- (riscv_subset_list::parse_single_ext): Ditto.
- (riscv_subset_list::set_loc): Ditto.
- (riscv_set_arch_by_subset_list): Ditto.
- * common/config/riscv/riscv-common.cc
- (riscv_subset_list::parse_single_std_ext): New.
- (riscv_subset_list::parse_single_multiletter_ext): Ditto.
- (riscv_subset_list::clone): Ditto.
- (riscv_subset_list::parse_single_ext): Ditto.
- (riscv_subset_list::set_loc): Ditto.
- (riscv_set_arch_by_subset_list): Ditto.
+ PR target/113526
+ * lra-constraints.cc (curr_insn_transform): Change class even for
+ spilled pseudo successfully matched with with NO_REGS.
-2023-10-11 Kito Cheng <kito.cheng@sifive.com>
+2024-01-25 Georg-Johann Lay <avr@gjlay.de>
- * config/riscv/riscv.cc (riscv_convert_vector_bits): Get setting
- from argument rather than get setting from global setting.
- (riscv_override_options_internal): New, splited from
- riscv_override_options, also take a gcc_options argument.
- (riscv_option_override): Splited most part to
- riscv_override_options_internal.
+ PR target/113601
+ * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
-2023-10-11 Kito Cheng <kito.cheng@sifive.com>
+2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
- * doc/options.texi (Mask): Document TARGET_<NAME>_P and
- TARGET_<NAME>_OPTS_P.
- (InverseMask): Ditto.
- * opth-gen.awk (Mask): Generate TARGET_<NAME>_P and
- TARGET_<NAME>_OPTS_P macro.
- (InverseMask): Ditto.
+ PR target/112987
+ * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
+ (aarch64_expand_epilogue): Use the new function.
+ (aarch64_split_compare_and_swap): Likewise.
+ (aarch64_split_atomic_op): Likewise.
-2023-10-11 Andrew Pinski <pinskia@gmail.com>
+2024-01-25 Robin Dapp <rdapp.gcc@gmail.com>
- PR tree-optimization/111282
- * match.pd (`a & ~(a ^ b)`, `a & (a == b)`,
- `a & ((~a) ^ b)`): New patterns.
+ PR middle-end/112971
+ * fold-const.cc (simplify_const_binop): New function for binop
+ simplification of two constant vectors when element-wise
+ handling is not necessary.
+ (const_binop): Call new function.
-2023-10-11 Mary Bennett <mary.bennett@embecosm.com>
+2024-01-25 Mary Bennett <mary.bennett@embecosm.com>
- * common/config/riscv/riscv-common.cc: Add the XCValu
- extension.
- * config/riscv/constraints.md: Add builtins for the XCValu
- extension.
- * config/riscv/predicates.md (immediate_register_operand):
- Likewise.
+ * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
+ * config/riscv/constraints.md: Likewise.
* config/riscv/corev.def: Likewise.
* config/riscv/corev.md: Likewise.
+ * config/riscv/predicates.md: Likewise.
* config/riscv/riscv-builtins.cc (AVAIL): Likewise.
- (RISCV_ATYPE_UHI): Likewise.
* config/riscv/riscv-ftypes.def: Likewise.
* config/riscv/riscv.opt: Likewise.
- * config/riscv/riscv.cc (riscv_print_operand): Likewise.
- * doc/extend.texi: Add XCValu documentation.
+ * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
+ * doc/extend.texi: Add XCVbitmanip builtin documentation.
* doc/sourcebuild.texi: Likewise.
-2023-10-11 Mary Bennett <mary.bennett@embecosm.com>
+2024-01-25 Tobias Burnus <tburnus@baylibre.com>
- * common/config/riscv/riscv-common.cc: Add XCVmac.
- * config/riscv/riscv-ftypes.def: Add XCVmac builtins.
- * config/riscv/riscv-builtins.cc: Likewise.
- * config/riscv/riscv.md: Likewise.
- * config/riscv/riscv.opt: Likewise.
- * doc/extend.texi: Add XCVmac builtin documentation.
- * doc/sourcebuild.texi: Likewise.
- * config/riscv/corev.def: New file.
- * config/riscv/corev.md: New file.
-
-2023-10-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Fix index bug.
- * config/riscv/riscv-protos.h (gather_scatter_valid_offset_mode_p): New function.
- * config/riscv/riscv-v.cc (expand_gather_scatter): Fix index bug.
- (gather_scatter_valid_offset_mode_p): New function.
+ * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
-2023-10-11 Pan Li <pan2.li@intel.com>
+2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com>
- * config/riscv/autovec.md (lrint<mode><vlconvert>2): New pattern
- for lrint/lintf.
- * config/riscv/riscv-protos.h (expand_vec_lrint): New func decl
- for expanding lint.
- * config/riscv/riscv-v.cc (emit_vec_cvt_x_f): New helper func impl
- for vfcvt.x.f.v.
- (expand_vec_lrint): New function impl for expanding lint.
- * config/riscv/vector-iterators.md: New mode attr and iterator.
+ PR target/113538
+ * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
+ (riscv_fntype_abi): Ditto.
+ * config/riscv/riscv.opt: Ditto.
-2023-10-11 Richard Biener <rguenther@suse.de>
- Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/111519
- * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): Add vuse
- argument and pass it through to recursive calls and
- count_nonzero_bytes_addr calls. Don't shadow the stmt argument, but
- change stmt for gimple_assign_single_p statements for which we don't
- immediately punt.
- (strlen_pass::count_nonzero_bytes_addr): Add vuse argument and pass
- it through to recursive calls and count_nonzero_bytes calls. Don't
- use get_strinfo if gimple_vuse (stmt) is different from vuse. Don't
- shadow the stmt argument.
+2024-01-25 Jakub Jelinek <jakub@redhat.com>
-2023-10-11 Roger Sayle <roger@nextmovesoftware.com>
+ PR middle-end/113574
+ * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
+ count against TYPE_PRECISION rather than TYPE_SIZE.
- PR middle-end/101955
- PR tree-optimization/106245
- * simplify-rtx.cc (simplify_relational_operation_1): Simplify
- the RTL (ne:SI (subreg:QI (ashift:SI x 7) 0) 0) to (and:SI x 1).
+2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
-2023-10-11 liuhongt <hongtao.liu@intel.com>
+ PR target/113572
+ * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
+ Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
- PR target/111745
- * config/i386/mmx.md (divv4hf3): Refine predicate of
- operands[2] with register_operand.
+2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
-2023-10-10 Andrew Waterman <andrew@sifive.com>
- Philipp Tomsich <philipp.tomsich@vrull.eu>
- Jeff Law <jlaw@ventanamicro.com>
+ PR target/113550
+ * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
+ whether each split instruction is a load that clobbers the source
+ address. Emit that instruction last if so.
- * config/riscv/riscv.cc (struct machine_function): Track if a
- far-branch/jump is used within a function (and $ra needs to be
- saved).
- (riscv_print_operand): Implement 'N' (inverse integer branch).
- (riscv_far_jump_used_p): Implement.
- (riscv_save_return_addr_reg_p): New function.
- (riscv_save_reg_p): Use riscv_save_return_addr_reg_p.
- * config/riscv/riscv.h (FIXED_REGISTERS): Update $ra.
- (CALL_USED_REGISTERS): Update $ra.
- * config/riscv/riscv.md: Add new types "ret" and "jalr".
- (length attribute): Handle long conditional and unconditional
- branches.
- (conditional branch pattern): Handle case where jump can not
- reach the intended target.
- (indirect_jump, tablejump): Use new "jalr" type.
- (simple_return): Use new "ret" type.
- (simple_return_internal, eh_return_internal): Likewise.
- (gpr_restore_return, riscv_mret): Likewise.
- (riscv_uret, riscv_sret): Likewise.
- * config/riscv/generic.md (generic_branch): Also recognize jalr & ret
- types.
- * config/riscv/sifive-7.md (sifive_7_jump): Likewise.
-
-2023-10-10 Andrew Pinski <pinskia@gmail.com>
-
- PR tree-optimization/111679
- * match.pd (`a | ((~a) ^ b)`): New pattern.
-
-2023-10-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111751
- * config/riscv/autovec.md: Add VLS BOOL modes.
-
-2023-10-10 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111751
- * fold-const.cc (fold_view_convert_expr): Up the buffer size
- to 128 bytes.
- * tree-ssa-sccvn.cc (visit_reference_op_load): Special case
- constants, giving up when re-interpretation to the target type
- fails.
-
-2023-10-10 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111751
- * tree-ssa-sccvn.cc (visit_reference_op_load): Exempt
- BLKmode result from the padding bits check.
-
-2023-10-10 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc.cc (arc_select_cc_mode): Match NEG code with
- the first operand.
- * config/arc/arc.md (addsi_compare): Make pattern canonical.
- (addsi_compare_2): Fix identation, constraint letters.
- (addsi_compare_3): Likewise.
-
-2023-10-09 Eugene Rozenfeld <erozen@microsoft.com>
-
- * auto-profile.cc (afdo_calculate_branch_prob): Fix count comparisons
- * tree-vect-loop-manip.cc (vect_do_peeling): Guard against zero count
- when scaling loop profile
-
-2023-10-09 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/111694
- * gimple-range-cache.cc (ranger_cache::fill_block_cache): Adjust
- equivalence range.
- * value-relation.cc (adjust_equivalence_range): New.
- * value-relation.h (adjust_equivalence_range): New prototype.
-
-2023-10-09 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (gori_compute::compute_operand1_range): Do
- not call get_identity_relation.
- (gori_compute::compute_operand2_range): Ditto.
- * value-relation.cc (get_identity_relation): Remove.
- * value-relation.h (get_identity_relation): Remove protyotype.
-
-2023-10-09 Robin Dapp <rdapp@ventanamicro.com>
+2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
- * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
- * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
- Add generic_ooo.
- * config/riscv/riscv.cc (riscv_sched_adjust_cost): Implement
- scheduler hook.
- (TARGET_SCHED_ADJUST_COST): Define.
- * config/riscv/riscv.md (no,yes"): Include generic-ooo.md
- * config/riscv/riscv.opt: Add -madjust-lmul-cost.
- * config/riscv/generic-ooo.md: New file.
- * config/riscv/vector.md: Add vsetvl_pre.
-
-2023-10-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED): New macro.
- * config/riscv/riscv.cc (riscv_support_vector_misalignment): Depend on movmisalign pattern.
- * config/riscv/vector.md (movmisalign<mode>): New pattern.
-
-2023-10-09 Xianmiao Qu <cooper.qu@linux.alibaba.com>
-
- * config/riscv/thead.cc (th_mempair_save_regs): Fix missing CFI
- directives for store-pair instruction.
-
-2023-10-09 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111715
- * alias.cc (reference_alias_ptr_type_1): When we have
- a type-punning ref at the base search for the access
- path part that's still semantically valid.
-
-2023-10-09 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (shuffle_bswap_pattern): New func impl
- for shuffle bswap.
- (expand_vec_perm_const_1): Add handling for shuffle bswap pattern.
-
-2023-10-09 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_split_ashr): Split shifts by
- one into ashr[sd]i3_carry followed by rcr[sd]i2, if TARGET_USE_RCR
- or -Oz.
- (ix86_split_lshr): Likewise, split shifts by one bit into
- lshr[sd]i3_carry followed by rcr[sd]i2, if TARGET_USE_RCR or -Oz.
- * config/i386/i386.h (TARGET_USE_RCR): New backend macro.
- * config/i386/i386.md (rcrsi2): New define_insn for rcrl.
- (rcrdi2): New define_insn for rcrq.
- (<anyshiftrt><mode>3_carry): New define_insn for right shifts that
- set the carry flag from the least significant bit, modelled using
- UNSPEC_CC_NE.
- * config/i386/x86-tune.def (X86_TUNE_USE_RCR): New tuning parameter
- controlling use of rcr 1 vs. shrd, which is significantly faster on
- AMD processors.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386.opt: Allow -mno-evex512.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
- Hu, Lin1 <lin1.hu@intel.com>
-
- * config/i386/sse.md (V48H_AVX512VL): Add TARGET_EVEX512.
- (VFH): Ditto.
- (VF2H): Ditto.
- (VFH_AVX512VL): Ditto.
- (VHFBF): Ditto.
- (VHF_AVX512VL): Ditto.
- (VI2H_AVX512VL): Ditto.
- (VI2F_256_512): Ditto.
- (VF48_I1248): Remove unused iterator.
- (VF48H_AVX512VL): Add TARGET_EVEX512.
- (VF_AVX512): Remove unused iterator.
- (REDUC_PLUS_MODE): Add TARGET_EVEX512.
- (REDUC_SMINMAX_MODE): Ditto.
- (FMAMODEM): Ditto.
- (VFH_SF_AVX512VL): Ditto.
- (VEC_PERM_AVX2): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
- Hu, Lin1 <lin1.hu@intel.com>
-
- * config/i386/sse.md (VI1_AVX512VL): Add TARGET_EVEX512.
- (VI8_FVL): Ditto.
- (VI1_AVX512F): Ditto.
- (VI1_AVX512VNNI): Ditto.
- (VI1_AVX512VL_F): Ditto.
- (VI12_VI48F_AVX512VL): Ditto.
- (*avx512f_permvar_truncv32hiv32qi_1): Ditto.
- (sdot_prod<mode>): Ditto.
- (VEC_PERM_AVX2): Ditto.
- (VPERMI2): Ditto.
- (VPERMI2I): Ditto.
- (vpmadd52<vpmadd52type>v8di): Ditto.
- (usdot_prod<mode>): Ditto.
- (vpdpbusd_v16si): Ditto.
- (vpdpbusds_v16si): Ditto.
- (vpdpwssd_v16si): Ditto.
- (vpdpwssds_v16si): Ditto.
- (VI48_AVX512VP2VL): Ditto.
- (avx512vp2intersect_2intersectv16si): Ditto.
- (VF_AVX512BF16VL): Ditto.
- (VF1_AVX512_256): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
- Make sure there is EVEX512 enabled.
- (ix86_expand_vecop_qihi2): Refuse V32QI->V32HI when no EVEX512.
- * config/i386/i386.cc (ix86_hard_regno_mode_ok): Disable 64 bit mask
- when !TARGET_EVEX512.
- * config/i386/i386.md (avx512bw_512): New.
- (SWI1248_AVX512BWDQ_64): Add TARGET_EVEX512.
- (*zero_extendsidi2): Change isa to avx512bw_512.
- (kmov_isa): Ditto.
- (*anddi_1): Ditto.
- (*andn<mode>_1): Change isa to kmov_isa.
- (*<code><mode>_1): Ditto.
- (*notxor<mode>_1): Ditto.
- (*one_cmpl<mode>2_1): Ditto.
- (*one_cmplsi2_1_zext): Change isa to avx512bw_512.
- (*ashl<mode>3_1): Change isa to kmov_isa.
- (*lshr<mode>3_1): Ditto.
- * config/i386/sse.md (VI12HFBF_AVX512VL): Add TARGET_EVEX512.
- (VI1248_AVX512VLBW): Ditto.
- (VHFBF_AVX512VL): Ditto.
- (VI): Ditto.
- (VIHFBF): Ditto.
- (VI_AVX2): Ditto.
- (VI1_AVX512): Ditto.
- (VI12_256_512_AVX512VL): Ditto.
- (VI2_AVX2_AVX512BW): Ditto.
- (VI2_AVX512VNNIBW): Ditto.
- (VI2_AVX512VL): Ditto.
- (VI2HFBF_AVX512VL): Ditto.
- (VI8_AVX2_AVX512BW): Ditto.
- (VIMAX_AVX2_AVX512BW): Ditto.
- (VIMAX_AVX512VL): Ditto.
- (VI12_AVX2_AVX512BW): Ditto.
- (VI124_AVX2_24_AVX512F_1_AVX512BW): Ditto.
- (VI248_AVX512VL): Ditto.
- (VI248_AVX512VLBW): Ditto.
- (VI248_AVX2_8_AVX512F_24_AVX512BW): Ditto.
- (VI248_AVX512BW): Ditto.
- (VI248_AVX512BW_AVX512VL): Ditto.
- (VI248_512): Ditto.
- (VI124_256_AVX512F_AVX512BW): Ditto.
- (VI_AVX512BW): Ditto.
- (VIHFBF_AVX512BW): Ditto.
- (SWI1248_AVX512BWDQ): Ditto.
- (SWI1248_AVX512BW): Ditto.
- (SWI1248_AVX512BWDQ2): Ditto.
- (*knotsi_1_zext): Ditto.
- (define_split for zero_extend + not): Ditto.
- (kunpckdi): Ditto.
- (REDUC_SMINMAX_MODE): Ditto.
- (VEC_EXTRACT_MODE): Ditto.
- (*avx512bw_permvar_truncv16siv16hi_1): Ditto.
- (*avx512bw_permvar_truncv16siv16hi_1_hf): Ditto.
- (truncv32hiv32qi2): Ditto.
- (avx512bw_<code>v32hiv32qi2): Ditto.
- (avx512bw_<code>v32hiv32qi2_mask): Ditto.
- (avx512bw_<code>v32hiv32qi2_mask_store): Ditto.
- (usadv64qi): Ditto.
- (VEC_PERM_AVX2): Ditto.
- (AVX512ZEXTMASK): Ditto.
- (SWI24_MASK): New.
- (vec_pack_trunc_<mode>): Change iterator to SWI24_MASK.
- (avx512bw_packsswb<mask_name>): Add TARGET_EVEX512.
- (avx512bw_packssdw<mask_name>): Ditto.
- (avx512bw_interleave_highv64qi<mask_name>): Ditto.
- (avx512bw_interleave_lowv64qi<mask_name>): Ditto.
- (<mask_codefor>avx512bw_pshuflwv32hi<mask_name>): Ditto.
- (<mask_codefor>avx512bw_pshufhwv32hi<mask_name>): Ditto.
- (vec_unpacks_lo_di): Ditto.
- (SWI48x_MASK): New.
- (vec_unpacks_hi_<mode>): Change iterator to SWI48x_MASK.
- (avx512bw_umulhrswv32hi3<mask_name>): Add TARGET_EVEX512.
- (VI1248_AVX512VL_AVX512BW): Ditto.
- (avx512bw_<code>v32qiv32hi2<mask_name>): Ditto.
- (*avx512bw_zero_extendv32qiv32hi2_1): Ditto.
- (*avx512bw_zero_extendv32qiv32hi2_2): Ditto.
- (<insn>v32qiv32hi2): Ditto.
- (pbroadcast_evex_isa): Change isa attribute to avx512bw_512.
- (VPERMI2): Add TARGET_EVEX512.
- (VPERMI2I): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-expand.cc (ix86_expand_sse2_mulvxdi3):
- Add TARGET_EVEX512 for 512 bit usage.
- * config/i386/i386.cc (standard_sse_constant_opcode): Ditto.
- * config/i386/sse.md (VF1_VF2_AVX512DQ): Ditto.
- (VF1_128_256VL): Ditto.
- (VF2_AVX512VL): Ditto.
- (VI8_256_512): Ditto.
- (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
- Ditto.
- (AVX512_VEC): Ditto.
- (AVX512_VEC_2): Ditto.
- (VI4F_BRCST32x2): Ditto.
- (VI8F_BRCST64x2): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtins.cc
- (ix86_vectorize_builtin_gather): Disable 512 bit gather
- when !TARGET_EVEX512.
- * config/i386/i386-expand.cc (ix86_valid_mask_cmp_mode):
- Add TARGET_EVEX512.
- (ix86_expand_int_sse_cmp): Ditto.
- (ix86_expand_vector_init_one_nonzero): Disable subroutine
- when !TARGET_EVEX512.
- (ix86_emit_swsqrtsf): Add TARGET_EVEX512.
- (ix86_vectorize_vec_perm_const): Disable subroutine when
- !TARGET_EVEX512.
- * config/i386/i386.cc
- (standard_sse_constant_p): Add TARGET_EVEX512.
- (standard_sse_constant_opcode): Ditto.
- (ix86_get_ssemov): Ditto.
- (ix86_legitimate_constant_p): Ditto.
- (ix86_vectorize_builtin_scatter): Diable 512 bit scatter
- when !TARGET_EVEX512.
- * config/i386/i386.md (avx512f_512): New.
- (movxi): Add TARGET_EVEX512.
- (*movxi_internal_avx512f): Ditto.
- (*movdi_internal): Change alternative 12 to ?Yv. Adjust mode
- for alternative 13.
- (*movsi_internal): Change alternative 8 to ?Yv. Adjust mode for
- alternative 9.
- (*movhi_internal): Change alternative 11 to *Yv.
- (*movdf_internal): Change alternative 12 to Yv.
- (*movsf_internal): Change alternative 5 to Yv. Adjust mode for
- alternative 5 and 6.
- (*mov<mode>_internal): Change alternative 4 to Yv.
- (define_split for convert SF to DF): Add TARGET_EVEX512.
- (extendbfsf2_1): Ditto.
- * config/i386/predicates.md (bcst_mem_operand): Disable predicate
- for 512 bit when !TARGET_EVEX512.
- * config/i386/sse.md (VMOVE): Add TARGET_EVEX512.
- (V48_AVX512VL): Ditto.
- (V48_256_512_AVX512VL): Ditto.
- (V48H_AVX512VL): Ditto.
- (VI12_AVX512VL): Ditto.
- (V): Ditto.
- (V_512): Ditto.
- (V_256_512): Ditto.
- (VF): Ditto.
- (VF1_VF2_AVX512DQ): Ditto.
- (VFH): Ditto.
- (VFB): Ditto.
- (VF1): Ditto.
- (VF1_AVX2): Ditto.
- (VF2): Ditto.
- (VF2H): Ditto.
- (VF2_512_256): Ditto.
- (VF2_512_256VL): Ditto.
- (VF_512): Ditto.
- (VFB_512): Ditto.
- (VI48_AVX512VL): Ditto.
- (VI1248_AVX512VLBW): Ditto.
- (VF_AVX512VL): Ditto.
- (VFH_AVX512VL): Ditto.
- (VF1_AVX512VL): Ditto.
- (VI): Ditto.
- (VIHFBF): Ditto.
- (VI_AVX2): Ditto.
- (VI8): Ditto.
- (VI8_AVX512VL): Ditto.
- (VI2_AVX512F): Ditto.
- (VI4_AVX512F): Ditto.
- (VI4_AVX512VL): Ditto.
- (VI48_AVX512F_AVX512VL): Ditto.
- (VI8_AVX2_AVX512F): Ditto.
- (VI8_AVX_AVX512F): Ditto.
- (V8FI): Ditto.
- (V16FI): Ditto.
- (VI124_AVX2_24_AVX512F_1_AVX512BW): Ditto.
- (VI248_AVX512VLBW): Ditto.
- (VI248_AVX2_8_AVX512F_24_AVX512BW): Ditto.
- (VI248_AVX512BW): Ditto.
- (VI248_AVX512BW_AVX512VL): Ditto.
- (VI48_AVX512F): Ditto.
- (VI48_AVX_AVX512F): Ditto.
- (VI12_AVX_AVX512F): Ditto.
- (VI148_512): Ditto.
- (VI124_256_AVX512F_AVX512BW): Ditto.
- (VI48_512): Ditto.
- (VI_AVX512BW): Ditto.
- (VIHFBF_AVX512BW): Ditto.
- (VI4F_256_512): Ditto.
- (VI48F_256_512): Ditto.
- (VI48F): Ditto.
- (VI12_VI48F_AVX512VL): Ditto.
- (V32_512): Ditto.
- (AVX512MODE2P): Ditto.
- (STORENT_MODE): Ditto.
- (REDUC_PLUS_MODE): Ditto.
- (REDUC_SMINMAX_MODE): Ditto.
- (*andnot<mode>3): Change isa attribute to avx512f_512.
- (*andnot<mode>3): Ditto.
- (<code><mode>3): Ditto.
- (<code>tf3): Ditto.
- (FMAMODEM): Add TARGET_EVEX512.
- (FMAMODE_AVX512): Ditto.
- (VFH_SF_AVX512VL): Ditto.
- (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): Ditto.
- (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):
- Ditto.
- (avx512f_cvtdq2pd512_2): Ditto.
- (avx512f_cvtpd2dq512<mask_name><round_name>): Ditto.
- (fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
- Ditto.
- (<mask_codefor>avx512f_cvtpd2ps512<mask_name><round_name>): Ditto.
- (vec_unpacks_lo_v16sf): Ditto.
- (vec_unpacks_hi_v16sf): Ditto.
- (vec_unpacks_float_hi_v16si): Ditto.
- (vec_unpacks_float_lo_v16si): Ditto.
- (vec_unpacku_float_hi_v16si): Ditto.
- (vec_unpacku_float_lo_v16si): Ditto.
- (vec_pack_sfix_trunc_v8df): Ditto.
- (avx512f_vec_pack_sfix_v8df): Ditto.
- (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
- (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
- (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
- (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
- (AVX512_VEC): Ditto.
- (AVX512_VEC_2): Ditto.
- (vec_extract_lo_v64qi): Ditto.
- (vec_extract_hi_v64qi): Ditto.
- (VEC_EXTRACT_MODE): Ditto.
- (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
- (avx512f_movddup512<mask_name>): Ditto.
- (avx512f_unpcklpd512<mask_name>): Ditto.
- (*<avx512>_vternlog<mode>_all): Ditto.
- (*<avx512>_vpternlog<mode>_1): Ditto.
- (*<avx512>_vpternlog<mode>_2): Ditto.
- (*<avx512>_vpternlog<mode>_3): Ditto.
- (avx512f_shufps512_mask): Ditto.
- (avx512f_shufps512_1<mask_name>): Ditto.
- (avx512f_shufpd512_mask): Ditto.
- (avx512f_shufpd512_1<mask_name>): Ditto.
- (<mask_codefor>avx512f_interleave_highv8di<mask_name>): Ditto.
- (<mask_codefor>avx512f_interleave_lowv8di<mask_name>): Ditto.
- (vec_dupv2df<mask_name>): Ditto.
- (trunc<pmov_src_lower><mode>2): Ditto.
- (*avx512f_<code><pmov_src_lower><mode>2): Ditto.
- (*avx512f_vpermvar_truncv8div8si_1): Ditto.
- (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
- (avx512f_<code><pmov_src_lower><mode>2_mask_store): Ditto.
- (truncv8div8qi2): Ditto.
- (avx512f_<code>v8div16qi2): Ditto.
- (*avx512f_<code>v8div16qi2_store_1): Ditto.
- (*avx512f_<code>v8div16qi2_store_2): Ditto.
- (avx512f_<code>v8div16qi2_mask): Ditto.
- (*avx512f_<code>v8div16qi2_mask_1): Ditto.
- (*avx512f_<code>v8div16qi2_mask_store_1): Ditto.
- (avx512f_<code>v8div16qi2_mask_store_2): Ditto.
- (vec_widen_umult_even_v16si<mask_name>): Ditto.
- (*vec_widen_umult_even_v16si<mask_name>): Ditto.
- (vec_widen_smult_even_v16si<mask_name>): Ditto.
- (*vec_widen_smult_even_v16si<mask_name>): Ditto.
- (VEC_PERM_AVX2): Ditto.
- (one_cmpl<mode>2): Ditto.
- (<mask_codefor>one_cmpl<mode>2<mask_name>): Ditto.
- (*one_cmpl<mode>2_pternlog_false_dep): Ditto.
- (define_split to xor): Ditto.
- (*andnot<mode>3): Ditto.
- (define_split for ior): Ditto.
- (*iornot<mode>3): Ditto.
- (*xnor<mode>3): Ditto.
- (*<nlogic><mode>3): Ditto.
- (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
- (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
- (avx512f_pshufdv3_mask): Ditto.
- (avx512f_pshufd_1<mask_name>): Ditto.
- (*vec_extractv4ti): Ditto.
- (VEXTRACTI128_MODE): Ditto.
- (define_split to vec_extract): Ditto.
- (VI1248_AVX512VL_AVX512BW): Ditto.
- (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
- (<insn>v16qiv16si2): Ditto.
- (avx512f_<code>v16hiv16si2<mask_name>): Ditto.
- (<insn>v16hiv16si2): Ditto.
- (avx512f_zero_extendv16hiv16si2_1): Ditto.
- (avx512f_<code>v8qiv8di2<mask_name>): Ditto.
- (*avx512f_<code>v8qiv8di2<mask_name>_1): Ditto.
- (*avx512f_<code>v8qiv8di2<mask_name>_2): Ditto.
- (<insn>v8qiv8di2): Ditto.
- (avx512f_<code>v8hiv8di2<mask_name>): Ditto.
- (<insn>v8hiv8di2): Ditto.
- (avx512f_<code>v8siv8di2<mask_name>): Ditto.
- (*avx512f_zero_extendv8siv8di2_1): Ditto.
- (*avx512f_zero_extendv8siv8di2_2): Ditto.
- (<insn>v8siv8di2): Ditto.
- (avx512f_roundps512_sfix): Ditto.
- (vashrv8di3): Ditto.
- (vashrv16si3): Ditto.
- (pbroadcast_evex_isa): Change isa attribute to avx512f_512.
- (vec_dupv4sf): Add TARGET_EVEX512.
- (*vec_dupv4si): Ditto.
- (*vec_dupv2di): Ditto.
- (vec_dup<mode>): Change isa attribute to avx512f_512.
- (VPERMI2): Add TARGET_EVEX512.
- (VPERMI2I): Ditto.
- (VEC_INIT_MODE): Ditto.
- (VEC_INIT_HALF_MODE): Ditto.
- (<mask_codefor>avx512f_vcvtph2ps512<mask_name><round_saeonly_name>):
- Ditto.
- (avx512f_vcvtps2ph512_mask_sae): Ditto.
- (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>):
- Ditto.
- (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
- (INT_BROADCAST_MODE): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-expand.cc (ix86_broadcast_from_constant):
- Disable zmm broadcast for !TARGET_EVEX512.
- * config/i386/i386-options.cc (ix86_option_override_internal):
- Do not use PVW_512 when no-evex512.
- (ix86_simd_clone_adjust): Add evex512 target into string.
- * config/i386/i386.cc (type_natural_mode): Report ABI warning
- when using zmm register w/o evex512.
- (ix86_return_in_memory): Do not allow zmm when !TARGET_EVEX512.
- (ix86_hard_regno_mode_ok): Ditto.
- (ix86_set_reg_reg_cost): Ditto.
- (ix86_rtx_costs): Ditto.
- (ix86_vector_mode_supported_p): Ditto.
- (ix86_preferred_simd_mode): Ditto.
- (ix86_get_mask_mode): Ditto.
- (ix86_simd_clone_compute_vecsize_and_simdlen): Disable 512 bit
- libmvec call when !TARGET_EVEX512.
- (ix86_simd_clone_usable): Ditto.
- * config/i386/i386.h (BIGGEST_ALIGNMENT): Disable 512 alignment
- when !TARGET_EVEX512
- (MOVE_MAX): Do not use PVW_512 when !TARGET_EVEX512.
- (STORE_MAX_PIECES): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtin.def (BDESC): Add
- OPTION_MASK_ISA2_EVEX512.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtin.def (BDESC): Add
- OPTION_MASK_ISA2_EVEX512.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtin.def (BDESC): Add
- OPTION_MASK_ISA2_EVEX512.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtin.def (BDESC): Add
- OPTION_MASK_ISA2_EVEX512.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtin.def (BDESC): Add
- OPTION_MASK_ISA2_EVEX512.
- * config/i386/i386-builtins.cc
- (ix86_init_mmx_sse_builtins): Ditto.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
- Hu, Lin1 <lin1.hu@intel.com>
-
- * config/i386/avx512fp16intrin.h: Add evex512 target for 512 bit
- intrins.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config.gcc: Add avx512bitalgvlintrin.h.
- * config/i386/avx5124fmapsintrin.h: Add evex512 target for 512 bit
- intrins.
- * config/i386/avx5124vnniwintrin.h: Ditto.
- * config/i386/avx512bf16intrin.h: Ditto.
- * config/i386/avx512bitalgintrin.h: Add evex512 target for 512 bit
- intrins. Split 128/256 bit intrins to avx512bitalgvlintrin.h.
- * config/i386/avx512erintrin.h: Add evex512 target for 512 bit
- intrins
- * config/i386/avx512ifmaintrin.h: Ditto
- * config/i386/avx512pfintrin.h: Ditto
- * config/i386/avx512vbmi2intrin.h: Ditto.
- * config/i386/avx512vbmiintrin.h: Ditto.
- * config/i386/avx512vnniintrin.h: Ditto.
- * config/i386/avx512vp2intersectintrin.h: Ditto.
- * config/i386/avx512vpopcntdqintrin.h: Ditto.
- * config/i386/gfniintrin.h: Ditto.
- * config/i386/immintrin.h: Add avx512bitalgvlintrin.h.
- * config/i386/vaesintrin.h: Add evex512 target for 512 bit intrins.
- * config/i386/vpclmulqdqintrin.h: Ditto.
- * config/i386/avx512bitalgvlintrin.h: New.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512bwintrin.h: Add evex512 target for 512 bit
- intrins.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512dqintrin.h: Add evex512 target for 512 bit
- intrins.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512fintrin.h: Add evex512 target for 512 bit intrins.
-
-2023-10-09 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA2_EVEX512_SET): New.
- (OPTION_MASK_ISA2_EVEX512_UNSET): Ditto.
- (ix86_handle_option): Handle EVEX512.
- * config/i386/i386-c.cc
- (ix86_target_macros_internal): Handle EVEX512. Add __EVEX256__
- when AVX512VL is set.
- * config/i386/i386-options.cc: (isa2_opts): Handle EVEX512.
- (ix86_valid_target_attribute_inner_p): Ditto.
- (ix86_option_override_internal): Set EVEX512 target if it is not
- explicitly set when AVX512 is enabled. Disable
- AVX512{PF,ER,4VNNIW,4FAMPS} for -mno-evex512.
- * config/i386/i386.opt: Add mevex512. Temporaily RejectNegative.
-
-2023-10-09 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/88558
- * config/rs6000/rs6000.md (lrint<mode>di2): Remove TARGET_FPRND
- from insn condition.
- (lrint<mode>si2): New insn pattern for 32bit lrint.
-
-2023-10-09 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/88558
- * config/rs6000/rs6000.cc (rs6000_hard_regno_mode_ok_uncached):
- Enable SImode on FP registers for P7.
- * config/rs6000/rs6000.md (*movsi_internal1): Add fmr for SImode
- move between FP registers. Set attribute isa of stfiwx to "*"
- and attribute of stxsiwx to "p7".
-
-2023-10-09 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.md: Make use of new copysign RTL.
-
-2023-10-09 Hongyu Wang <hongyu.wang@intel.com>
-
- * config/i386/sse.md (vec_concatv2di): Replace constraint "m"
- with "jm" for alternative 0 and 1 of operand 2.
- (sse4_1_<code><mode>3<mask_name>): Replace constraint "Bm" with
- "ja" for alternative 0 and 1 of operand2.
-
-2023-10-08 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/111155
- * text-art/table.cc (table::maybe_set_cell_span): New.
- (table::add_other_table): New.
- * text-art/table.h (class table::cell_placement): Add class table
- as a friend.
- (table::add_rows): New.
- (table::add_row): Reimplement in terms of add_rows.
- (table::maybe_set_cell_span): New decl.
- (table::add_other_table): New decl.
- * text-art/types.h (operator+): New operator for rect + coord.
-
-2023-10-08 David Malcolm <dmalcolm@redhat.com>
-
- * genmatch.cc (main): Update for "m_" prefix of some fields of
- line_maps.
- * input.cc (make_location): Update for removal of
- COMBINE_LOCATION_DATA.
- (dump_line_table_statistics): Update for "m_" prefix of some
- fields of line_maps.
- (location_with_discriminator): Update for removal of
- COMBINE_LOCATION_DATA.
- (line_table_test::line_table_test): Update for "m_" prefix of some
- fields of line_maps.
- * toplev.cc (general_init): Likewise.
- * tree.cc (set_block): Update for removal of
- COMBINE_LOCATION_DATA.
- (set_source_range): Likewise.
-
-2023-10-08 David Malcolm <dmalcolm@redhat.com>
-
- * input.cc (make_location): Move implementation to
- line_maps::make_location.
-
-2023-10-08 David Malcolm <dmalcolm@redhat.com>
-
- PR driver/111700
- * input.cc (file_cache::add_file): Update leading comment to
- clarify that it can fail.
- (file_cache::lookup_or_add_file): Likewise.
- (file_cache::get_source_file_content): Gracefully handle
- lookup_or_add_file failing.
-
-2023-10-08 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386.cc (ix86_build_const_vector): Handle V2HF
- and V4HFmode.
- (ix86_build_signbit_mask): Ditto.
- * config/i386/mmx.md (mmxintvecmode): Ditto.
- (<code><mode>2): New define_expand.
- (*mmx_<code><mode>): New define_insn_and_split.
- (*mmx_nabs<mode>2): Ditto.
- (*mmx_andnot<mode>3): New define_insn.
- (<code><mode>3): Ditto.
- (copysign<mode>3): New define_expand.
- (xorsign<mode>3): Ditto.
- (signbit<mode>2): Ditto.
-
-2023-10-08 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/mmx.md (VHF_32_64): New mode iterator.
- (<insn><mode>3): New define_expand, merged from ..
- (<insn>v4hf3): .. this and
- (<insn>v2hf3): .. this.
- (movd_v2hf_to_sse_reg): New define_expand, splitted from ..
- (movd_v2hf_to_sse): .. this.
- (<code><mode>3): New define_expand.
-
-2023-10-08 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (can_be_built_by_li_and_rldic): New function.
- (rs6000_emit_set_long_const): Call can_be_built_by_li_and_rldic.
-
-2023-10-08 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (can_be_built_by_li_lis_and_rldicl): New
- function.
- (can_be_built_by_li_lis_and_rldicr): New function.
- (rs6000_emit_set_long_const): Call can_be_built_by_li_lis_and_rldicr and
- can_be_built_by_li_lis_and_rldicl.
-
-2023-10-08 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): New
- function.
- (can_be_built_by_li_and_rotldi): Rename to ...
- (can_be_built_by_li_lis_and_rotldi): ... this function.
- (rs6000_emit_set_long_const): Call can_be_built_by_li_lis_and_rotldi.
-
-2023-10-08 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (can_be_built_by_li_and_rotldi): New function.
- (rs6000_emit_set_long_const): Call can_be_built_by_li_and_rotldi.
-
-2023-10-08 Yanzhang Wang <yanzhang.wang@intel.com>
-
- * config/riscv/linux.h: Pass the static-pie specific options to
- the linker.
-
-2023-10-07 Saurabh Jha <saurabh.jha@arm.com>
-
- * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add support for
- cortex-x4 core.
- * config/aarch64/aarch64-tune.md: Regenerated.
- * doc/invoke.texi: Add command-line option for cortex-x4 core.
+ PR target/113485
+ * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
+ pattern.
+ (<optab><Vnarrowq><mode>2): Use it instead of generating a
+ paradoxical subreg for the input.
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/i386/constraints.md (jb): New constraint for vsib memory
- that does not allow gpr32.
- * config/i386/i386.md: (setcc_<mode>_sse): Replace m to jm for avx
- alternative and set attr_gpr32 to 0.
- (movmsk_df): Split avx/noavx alternatives and replace "r" to "jr" for
- avx alternative.
- (<sse>_rcp<mode>2): Split avx/noavx alternatives and replace
- "m/Bm" to "jm/ja" for avx alternative, set its gpr32 attr to 0.
- (*rsqrtsf2_sse): Likewise.
- * config/i386/mmx.md (mmx_pmovmskb): Split alternative 1 to
- avx/noavx and assign jr/r constraint to dest.
- * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxsizesuffix>):
- Split avx/noavx alternatives and replace "r" to "jr" for avx alternative.
- (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): Likewise.
- (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt): Likewise.
- (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): Likewise.
- (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_shift): Likewise.
- (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): Likewise.
- (<sse2_avx2>_pmovmskb): Likewise.
- (*<sse2_avx2>_pmovmskb_zext): Likewise.
- (*sse2_pmovmskb_ext): Likewise.
- (*<sse2_avx2>_pmovmskb_lt): Likewise.
- (*<sse2_avx2>_pmovmskb_zext_lt): Likewise.
- (*sse2_pmovmskb_ext_lt): Likewise.
- (<sse>_rcp<mode>2): Split avx/noavx alternatives and replace
- "m/Bm" to "jm/ja" for avx alternative, set its attr_gpr32 to 0.
- (sse_vmrcpv4sf2): Likewise.
- (*sse_vmrcpv4sf2): Likewise.
- (rsqrt<mode>2): Likewise.
- (sse_vmrsqrtv4sf2): Likewise.
- (*sse_vmrsqrtv4sf2): Likewise.
- (avx_h<insn>v4df3): Likewise.
- (sse3_hsubv2df3): Likewise.
- (avx_h<insn>v8sf3): Likewise.
- (sse3_h<insn>v4sf3): Likewise.
- (<sse3>_lddqu<avxsizesuffix>): Likewise.
- (avx_cmp<mode>3): Likewise.
- (avx_vmcmp<mode>3): Likewise.
- (*sse2_gt<mode>3): Likewise.
- (sse_ldmxcsr): Likewise.
- (sse_stmxcsr): Likewise.
- (avx_vtest<ssemodesuffix><avxsizesuffix>): Replace m to jm for
- avx alternative and set attr_gpr32 to 0.
- (avx2_permv2ti): Likewise.
- (*avx_vperm2f128<mode>_full): Likewise.
- (*avx_vperm2f128<mode>_nozero): Likewise.
- (vec_set_lo_v32qi): Likewise.
- (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Likewise.
- (<avx_avx2>_maskstore<ssemodesuffix><avxsi)zesuffix>: Likewise.
- (avx_cmp<mode>3): Likewise.
- (avx_vmcmp<mode>3): Likewise.
- (*<sse>_maskcmp<mode>3_comm): Likewise.
- (*avx2_gathersi<VEC_GATHER_MODE:mode>): Replace Tv to jb and set
- attr_gpr32 to 0.
- (*avx2_gathersi<VEC_GATHER_MODE:mode>_2): Likewise.
- (*avx2_gatherdi<VEC_GATHER_MODE:mode>): Likewise.
- (*avx2_gatherdi<VEC_GATHER_MODE:mode>_2): Likewise.
- (*avx2_gatherdi<VI4F_256:mode>_3): Likewise.
- (*avx2_gatherdi<VI4F_256:mode>_4): Likewise.
- (avx_vbroadcastf128_<mode>): Restrict non-egpr alternative to
- noavx512vl, set its constraint to jm and set attr_gpr32 to 0.
- (vec_set_lo_<mode><mask_name>): Likewise.
- (vec_set_lo_<mode><mask_name>): Likewise for SF/SI modes.
- (vec_set_hi_<mode><mask_name>): Likewise.
- (vec_set_hi_<mode><mask_name>): Likewise for SF/SI modes.
- (vec_set_hi_<mode>): Likewise.
- (vec_set_lo_<mode>): Likewise.
- (avx2_set_hi_v32qi): Likewise.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+ * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
+ (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
+ predecessors dump information.
- * config/i386/i386.md (*movhi_internal): Split out non-gpr
- supported pextrw with mem constraint to avx/noavx alternatives,
- set jm and attr gpr32 0 to the noavx alternative.
- (*mov<mode>_internal): Likewise.
- * config/i386/mmx.md (mmx_pshufbv8qi3): Change "r/m/Bm" to
- "jr/jm/ja" and set_attr gpr32 0 for noavx alternative.
- (mmx_pshufbv4qi3): Likewise.
- (*mmx_pinsrd): Likewise.
- (*mmx_pinsrb): Likewise.
- (*pinsrb): Likewise.
- (mmx_pshufbv8qi3): Likewise.
- (mmx_pshufbv4qi3): Likewise.
- (@sse4_1_insertps_<mode>): Likewise.
- (*mmx_pextrw): Split altrenatives and map non-EGPR
- constraints, attr_gpr32 and attr_isa to noavx mnemonics.
- (*movv2qi_internal): Likewise.
- (*pextrw): Likewise.
- (*mmx_pextrb): Likewise.
- (*mmx_pextrb_zext): Likewise.
- (*pextrb): Likewise.
- (*pextrb_zext): Likewise.
- (vec_extractv2si_1): Likewise.
- (vec_extractv2si_1_zext): Likewise.
- * config/i386/sse.md: (vi128_h_r): New mode attr for
- pinsr{bw}/pextr{bw} with reg operand.
- (*abs<mode>2): Split altrenatives and %v in mnemonics, map
- non-EGPR constraints, gpr32 and isa attrs to noavx mnemonics.
- (*vec_extract<mode>): Likewise.
- (*vec_extract<mode>): Likewise for HFBF pattern.
- (*vec_extract<PEXTR_MODE12:mode>_zext): Likewise.
- (*vec_extractv4si_1): Likewise.
- (*vec_extractv4si_zext): Likewise.
- (*vec_extractv2di_1): Likewise.
- (*vec_concatv2si_sse4_1): Likewise.
- (<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
- (vec_concatv2di): Likewise.
- (*sse4_1_<code>v2qiv2di2<mask_name>_1): Likewise.
- (ssse3_avx2>_pshufb<mode>3<mask_name>): Change "r/m/Bm" to
- "jr/jm/ja" and set_attr gpr32 0 for noavx alternative, split
- %v for avx/noavx alternatives if necessary.
- (*vec_concatv2sf_sse4_1): Likewise.
- (*sse4_1_extractps): Likewise.
- (vec_set<mode>_0): Likewise for VI4F_128.
- (*vec_setv4sf_sse4_1): Likewise.
- (@sse4_1_insertps<mode>): Likewise.
- (ssse3_pmaddubsw128): Likewise.
- (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Likewise.
- (<sse4_1_avx2>_packusdw<mask_name>): Likewise.
- (<ssse3_avx2>_palignr<mode>): Likewise.
- (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
- (<sse4_1_avx2>_mpsadbw): Likewise.
- (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
- (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
- (*sse4_1_<code><mode>3<mask_name>): Likewise.
- (*<code>v8hi3): Likewise.
- (*<code>v16qi3): Likewise.
- (*sse4_1_<code>v8qiv8hi2<mask_name>_1): Likewise.
- (*sse4_1_zero_extendv8qiv8hi2_3): Likewise.
- (*sse4_1_zero_extendv8qiv8hi2_4): Likewise.
- (*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise.
- (*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise.
- (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
- (*sse4_1_zero_extendv4hiv4si2_4): Likewise.
- (*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise.
- (*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise.
- (*sse4_1_zero_extendv2siv2di2_3): Likewise.
- (*sse4_1_zero_extendv2siv2di2_4): Likewise.
- (aesdec): Likewise.
- (aesdeclast): Likewise.
- (aesenc): Likewise.
- (aesenclast): Likewise.
- (pclmulqdq): Likewise.
- (vgf2p8affineinvqb_<mode><mask_name>): Likewise.
- (vgf2p8affineqb_<mode><mask_name>): Likewise.
- (vgf2p8mulb_<mode><mask_name>): Likewise.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/i386/i386-protos.h (x86_evex_reg_mentioned_p): New
- prototype.
- * config/i386/i386.cc (x86_evex_reg_mentioned_p): New
- function.
- * config/i386/i386.md (sse4_1_round<mode>2): Set attr gpr32 0
- and constraint jm to all non-evex alternatives, adjust
- alternative outputs if evex reg is mentioned.
- * config/i386/sse.md (<sse4_1>_ptest<mode>): Set attr gpr32 0
- and constraint jm/ja to all non-evex alternatives.
- (ptesttf2): Likewise.
- (<sse4_1>_round<ssemodesuffix><avxsizesuffix): Likewise.
- (sse4_1_round<ssescalarmodesuffix>): Likewise.
- (sse4_2_pcmpestri): Likewise.
- (sse4_2_pcmpestrm): Likewise.
- (sse4_2_pcmpestr_cconly): Likewise.
- (sse4_2_pcmpistr): Likewise.
- (sse4_2_pcmpistri): Likewise.
- (sse4_2_pcmpistrm): Likewise.
- (sse4_2_pcmpistr_cconly): Likewise.
- (aesimc): Likewise.
- (aeskeygenassist): Likewise.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
+ redundant full available computation.
+ (pre_vsetvl::pre_global_vsetvl_info): Ditto.
- * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3): Set
- attr gpr32 0 and constraint jm/ja to all mem alternatives.
- (ssse3_ph<plusminus_mnemonic>wv8hi3): Likewise.
- (ssse3_ph<plusminus_mnemonic>wv4hi3): Likewise.
- (avx2_ph<plusminus_mnemonic>dv8si3): Likewise.
- (ssse3_ph<plusminus_mnemonic>dv4si3): Likewise.
- (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
- (<ssse3_avx2>_psign<mode>3): Likewise.
- (ssse3_psign<mode>3): Likewise.
- (<sse4_1>_blend<ssemodesuffix><avxsizesuffix): Likewise.
- (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix): Likewise.
- (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt): Likewise.
- (*<sse4_1>_blendv<ssefltmodesuff)ix><avxsizesuffix>_not_ltint: Likewise.
- (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
- (<sse4_1_avx2>_mpsadbw): Likewise.
- (<sse4_1_avx2>_pblendvb): Likewise.
- (*<sse4_1_avx2>_pblendvb_lt): Likewise.
- (sse4_1_pblend<ssemodesuffix>): Likewise.
- (*avx2_pblend<ssemodesuffix>): Likewise.
- (avx2_permv2ti): Likewise.
- (*avx_vperm2f128<mode>_nozero): Likewise.
- (*avx2_eq<mode>3): Likewise.
- (*sse4_1_eqv2di3): Likewise.
- (sse4_2_gtv2di3): Likewise.
- (avx2_gt<mode>3): Likewise.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Jakub Jelinek <jakub@redhat.com>
- * config/i386/i386.md (<xsave>): Set attr gpr32 0 and constraint
- jm.
- (<xsave>_rex64): Likewise.
- (<xrstor>_rex64): Likewise.
- (<xrstor>64): Likewise.
- (fxsave64): Likewise.
- (fxstore64): Likewise.
+ * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
+ * doc/rtl.texi (CONST_VECTOR): Likewise.
-2023-10-07 Hongyu Wang <hongyu.wang@intel.com>
- Kong Lingling <lingling.kong@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/i386/i386.cc (ix86_get_ssemov): Check if egpr is used,
- adjust mnemonic for vmovduq/vmovdqa.
- * config/i386/sse.md (*<extract_type>_vinsert<shuffletype><extract_suf>_0):
- Check if egpr is used, adjust mnemonic for vmovdqu/vmovdqa.
- (avx_vec_concat<mode>): Likewise, and separate alternative 0 to
- avx_noavx512f.
+ * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
+ * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
+ (pass_vsetvl::execute): Ditto.
+ * config/riscv/riscv.opt: Ditto.
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Jiahao Xu <xujiahao@loongson.cn>
- * config/i386/i386.cc (map_egpr_constraints): New funciton to
- map common constraints to EGPR prohibited constraints.
- (ix86_md_asm_adjust): Calls map_egpr_constraints.
- * config/i386/i386.opt: Add option mapx-inline-asm-use-gpr32.
+ * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
+ * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Richard Biener <rguenther@suse.de>
- * config/i386/i386-protos.h (ix86_insn_base_reg_class): New
- prototype.
- (ix86_regno_ok_for_insn_base_p): Likewise.
- (ix86_insn_index_reg_class): Likewise.
- * config/i386/i386.cc (ix86_memory_address_use_extended_reg_class_p):
- New helper function to scan the insn.
- (ix86_insn_base_reg_class): New function to choose BASE_REG_CLASS.
- (ix86_regno_ok_for_insn_base_p): Likewise for base regno.
- (ix86_insn_index_reg_class): Likewise for INDEX_REG_CLASS.
- * config/i386/i386.h (INSN_BASE_REG_CLASS): Define.
- (REGNO_OK_FOR_INSN_BASE_P): Likewise.
- (INSN_INDEX_REG_CLASS): Likewise.
- (enum reg_class): Add INDEX_GPR16.
- (GENERAL_GPR16_REGNO_P): Define.
- * config/i386/i386.md (gpr32): New attribute.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+ PR tree-optimization/113576
+ * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
+ exits with may_be_zero niters when its the last one.
- * config/i386/constraints.md (jr): New register constraint
- that prohibits EGPR.
- (jR): Constraint that force usage of EGPR.
- (jm): New memory constraint that prohibits EGPR.
- (ja): Likewise for Bm constraint.
- (jb): Likewise for Tv constraint.
- (j<): New auto-dec memory constraint that prohibits EGPR.
- (j>): Likewise for ">" constraint.
- (jo): Likewise for "o" constraint.
- (jv): Likewise for "V" constraint.
- (jp): Likewise for "p" constraint.
- * config/i386/i386.h (enum reg_class): Add new reg class
- GENERAL_GPR16.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Lulu Cheng <chenglulu@loongson.cn>
- * config/i386/i386-protos.h (x86_extended_rex2reg_mentioned_p):
- New function prototype.
- * config/i386/i386.cc (regclass_map): Add mapping for 16 new
- general registers.
- (debugger64_register_map): Likewise.
- (ix86_conditional_register_usage): Clear REX2 register when APX
- disabled.
- (ix86_code_end): Add handling for REX2 reg.
- (print_reg): Likewise.
- (ix86_output_jmp_thunk_or_indirect): Likewise.
- (ix86_output_indirect_branch_via_reg): Likewise.
- (ix86_attr_length_vex_default): Likewise.
- (ix86_emit_save_regs): Adjust to allow saving r31.
- (ix86_register_priority): Set REX2 reg priority same as REX.
- (x86_extended_reg_mentioned_p): Add check for REX2 regs.
- (x86_extended_rex2reg_mentioned_p): New function.
- * config/i386/i386.h (CALL_USED_REGISTERS): Add new extended
- registers.
- (REG_ALLOC_ORDER): Likewise.
- (FIRST_REX2_INT_REG): Define.
- (LAST_REX2_INT_REG): Ditto.
- (GENERAL_REGS): Add 16 new registers.
- (INT_SSE_REGS): Likewise.
- (FLOAT_INT_REGS): Likewise.
- (FLOAT_INT_SSE_REGS): Likewise.
- (INT_MASK_REGS): Likewise.
- (ALL_REGS):Likewise.
- (REX2_INT_REG_P): Define.
- (REX2_INT_REGNO_P): Ditto.
- (GENERAL_REGNO_P): Add REX2_INT_REGNO_P.
- (REGNO_OK_FOR_INDEX_P): Ditto.
- (REG_OK_FOR_INDEX_NONSTRICT_P): Add new extended registers.
- * config/i386/i386.md: Add 16 new integer general
- registers.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+ * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
+ For symbols of type tls, non-zero Offset is not generated.
- * common/config/i386/cpuinfo.h (XSTATE_APX_F): New macro.
- (XCR_APX_F_ENABLED_MASK): Likewise.
- (get_available_features): Detect APX_F under
- * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_APX_F_SET): New.
- (OPTION_MASK_ISA2_APX_F_UNSET): Likewise.
- (ix86_handle_option): Handle -mapxf.
- * common/config/i386/i386-cpuinfo.h (FEATURE_APX_F): New.
- * common/config/i386/i386-isas.h: Add entry for APX_F.
- * config/i386/cpuid.h (bit_APX_F): New.
- * config/i386/i386.h (bit_APX_F): (TARGET_APX_EGPR,
- TARGET_APX_PUSH2POP2, TARGET_APX_NDD): New define.
- * config/i386/i386-opts.h (enum apx_features): New enum.
- * config/i386/i386-isa.def (APX_F): New DEF_PTA.
- * config/i386/i386-options.cc (ix86_function_specific_save):
- Save ix86_apx_features.
- (ix86_function_specific_restore): Restore it.
- (ix86_valid_target_attribute_inner_p): Add mapxf.
- (ix86_option_override_internal): Set ix86_apx_features for PTA
- and TARGET_APX_F. Also reports error when APX_F is set but not
- having TARGET_64BIT.
- * config/i386/i386.opt: (-mapxf): New ISA flag option.
- (-mapx=): New enumeration option.
- (apx_features): New enum type.
- (apx_none): New enum value.
- (apx_egpr): Likewise.
- (apx_push2pop2): Likewise.
- (apx_ndd): Likewise.
- (apx_all): Likewise.
- * doc/invoke.texi: Document mapxf.
-
-2023-10-07 Hongyu Wang <hongyu.wang@intel.com>
- Kong Lingling <lingling.kong@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org>
- * addresses.h (index_reg_class): New wrapper function like
- base_reg_class.
- * doc/tm.texi: Document INSN_INDEX_REG_CLASS.
- * doc/tm.texi.in: Ditto.
- * lra-constraints.cc (index_part_to_reg): Pass index_class.
- (process_address_1): Calls index_reg_class with curr_insn and
- replace INDEX_REG_CLASS with its return value index_cl.
- * reload.cc (find_reloads_address): Likewise.
- (find_reloads_address_1): Likewise.
-
-2023-10-07 Kong Lingling <lingling.kong@intel.com>
- Hongyu Wang <hongyu.wang@intel.com>
- Hongtao Liu <hongtao.liu@intel.com>
+ * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
+ P9 with m32 and mpowerpc64.
- * addresses.h (base_reg_class): Add insn argument and new macro
- INSN_BASE_REG_CLASS.
- (regno_ok_for_base_p_1): Add insn argument and new macro
- REGNO_OK_FOR_INSN_BASE_P.
- (regno_ok_for_base_p): Add insn argument and parse to ok_for_base_p_1.
- * doc/tm.texi: Document INSN_BASE_REG_CLASS and
- REGNO_OK_FOR_INSN_BASE_P.
- * doc/tm.texi.in: Ditto.
- * lra-constraints.cc (process_address_1): Pass insn to
- base_reg_class.
- (curr_insn_transform): Ditto.
- * reload.cc (find_reloads): Ditto.
- (find_reloads_address): Ditto.
- (find_reloads_address_1): Ditto.
- (find_reloads_subreg_address): Ditto.
- * reload1.cc (maybe_fix_stack_asms): Ditto.
-
-2023-10-07 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR target/108338
- * config/rs6000/rs6000.md (movsf_from_si): Update to generate mtvsrws
- for P9.
-
-2023-10-07 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR target/108338
- * config/rs6000/predicates.md (lowpart_subreg_operator): New
- define_predicate.
- * config/rs6000/rs6000.md (any_rshift): New code_iterator.
- (movsf_from_si2): Rename to ...
- (movsf_from_si2_<code>): ... this.
-
-2023-10-07 Pan Li <pan2.li@intel.com>
-
- PR target/111634
- * config/riscv/riscv.cc (riscv_legitimize_address): Ensure
- object is a REG before extracting its' REGNO.
-
-2023-10-06 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_split_ashl): Split shifts by
- one into add3_cc_overflow_1 followed by add3_carry.
- * config/i386/i386.md (@add<mode>3_cc_overflow_1): Renamed from
- "*add<mode>3_cc_overflow_1" to provide generator function.
-
-2023-10-06 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
+2024-01-25 liuhongt <hongtao.liu@intel.com>
- * config/i386/i386.cc (ix86_avoid_lea_for_addr): Split LEAs used
- to perform left shifts into shorter instructions with -Oz.
-
-2023-10-06 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.md (mvconst_internal): Add !ira_in_progress.
-
-2023-10-06 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/extend.texi (Function Attributes): Mention standard attribute
- syntax.
- (Variable Attributes): Likewise.
- (Type Attributes): Likewise.
- (Attribute Syntax): Likewise.
-
-2023-10-06 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (*mov<mode>): Convert to compact syntax.
- (mov<mode>_exec): Likewise.
- (mov<mode>_sgprbase): Likewise.
- * config/gcn/gcn.md (*mov<mode>_insn): Likewise.
- (*movti_insn): Likewise.
-
-2023-10-06 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn.cc (print_operand): Adjust xcode type to fix warning.
-
-2023-10-06 Andrew Pinski <pinskia@gmail.com>
-
- PR middle-end/111699
- * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e),
- (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Enable only for GIMPLE.
-
-2023-10-06 Jakub Jelinek <jakub@redhat.com>
-
- * ipa-prop.h (ipa_bits): Remove.
- (struct ipa_jump_func): Remove bits member.
- (struct ipcp_transformation): Remove bits member, adjust
- ctor and dtor.
- (ipa_get_ipa_bits_for_value): Remove.
- * ipa-prop.cc (struct ipa_bit_ggc_hash_traits): Remove.
- (ipa_bits_hash_table): Remove.
- (ipa_print_node_jump_functions_for_edge): Don't print bits.
- (ipa_get_ipa_bits_for_value): Remove.
- (ipa_set_jfunc_bits): Remove.
- (ipa_compute_jump_functions_for_edge): For pointers query
- pointer alignment before ipa_set_jfunc_vr and update_bitmask
- in there. For integral types, just rely on bitmask already
- being handled in value ranges.
- (ipa_check_create_edge_args): Don't create ipa_bits_hash_table.
- (ipcp_transformation_initialize): Neither here.
- (ipcp_transformation_t::duplicate): Don't copy bits vector.
- (ipa_write_jump_function): Don't stream bits here.
- (ipa_read_jump_function): Neither here.
- (useful_ipcp_transformation_info_p): Don't test bits vec.
- (write_ipcp_transformation_info): Don't stream bits here.
- (read_ipcp_transformation_info): Neither here.
- (ipcp_get_parm_bits): Get mask and value from m_vr rather
- than bits.
- (ipcp_update_bits): Remove.
- (ipcp_update_vr): For pointers, set_ptr_info_alignment from
- bitmask stored in value range.
- (ipcp_transform_function): Don't test bits vector, don't call
- ipcp_update_bits.
- * ipa-cp.cc (propagate_bits_across_jump_function): Don't use
- jfunc->bits, instead get mask and value from jfunc->m_vr.
- (ipcp_store_bits_results): Remove.
- (ipcp_store_vr_results): Incorporate parts of
- ipcp_store_bits_results here, merge the bitmasks with value
- range if both are supplied.
- (ipcp_driver): Don't call ipcp_store_bits_results.
- * ipa-sra.cc (zap_useless_ipcp_results): Remove *ts->bits
- clearing.
-
-2023-10-06 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Update comments.
-
-2023-10-05 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete.
-
-2023-10-05 Andrew MacLeod <amacleod@redhat.com>
-
- * timevar.def (TV_TREE_FAST_VRP): New.
- * tree-pass.h (make_pass_fast_vrp): New prototype.
- * tree-vrp.cc (class fvrp_folder): New.
- (fvrp_folder::fvrp_folder): New.
- (fvrp_folder::~fvrp_folder): New.
- (fvrp_folder::value_of_expr): New.
- (fvrp_folder::value_on_edge): New.
- (fvrp_folder::value_of_stmt): New.
- (fvrp_folder::pre_fold_bb): New.
- (fvrp_folder::post_fold_bb): New.
- (fvrp_folder::pre_fold_stmt): New.
- (fvrp_folder::fold_stmt): New.
- (execute_fast_vrp): New.
- (pass_data_fast_vrp): New.
- (pass_vrp:execute): Check for fast VRP pass.
- (make_pass_fast_vrp): New.
-
-2023-10-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range.cc (dom_ranger::dom_ranger): New.
- (dom_ranger::~dom_ranger): New.
- (dom_ranger::range_of_expr): New.
- (dom_ranger::edge_range): New.
- (dom_ranger::range_on_edge): New.
- (dom_ranger::range_in_bb): New.
- (dom_ranger::range_of_stmt): New.
- (dom_ranger::maybe_push_edge): New.
- (dom_ranger::pre_bb): New.
- (dom_ranger::post_bb): New.
- * gimple-range.h (class dom_ranger): New.
-
-2023-10-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (gori_stmt_info::gori_stmt_info): New.
- (gori_calc_operands): New.
- (gori_on_edge): New.
- (gori_name_helper): New.
- (gori_name_on_edge): New.
- * gimple-range-gori.h (gori_on_edge): New prototype.
- (gori_name_on_edge): New prototype.
-
-2023-10-05 Sergei Trofimovich <siarheit@google.com>
-
- PR ipa/111283
- PR gcov-profile/111559
- * ipa-utils.cc (ipa_merge_profiles): Avoid producing
- uninitialized probabilities when merging counters with zero
- denominators.
-
-2023-10-05 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/111657
- * config/i386/i386-expand.cc (alg_usable_p): Reject libcall
- strategy for non-default address spaces.
- (decide_alg): Use loop strategy as a fallback strategy for
- non-default address spaces.
-
-2023-10-05 Jakub Jelinek <jakub@redhat.com>
-
- * sreal.cc (verify_aritmetics): Rename to ...
- (verify_arithmetics): ... this.
- (sreal_verify_arithmetics): Adjust caller.
-
-2023-10-05 Martin Jambor <mjambor@suse.cz>
+ * config/i386/i386-options.cc (ix86_option_override_internal):
+ Enable -mlam=u57 by default when compiled with
+ -fsanitize=hwaddress.
- Revert:
- 2023-10-03 Martin Jambor <mjambor@suse.cz>
+2024-01-25 Palmer Dabbelt <palmer@rivosinc.com>
- PR ipa/108007
- * cgraph.h (cgraph_edge): Add a parameter to
- redirect_call_stmt_to_callee.
- * ipa-param-manipulation.h (ipa_param_adjustments): Add a
- parameter to modify_call.
- * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
- parameter killed_ssas, pass it to padjs->modify_call.
- * ipa-param-manipulation.cc (purge_transitive_uses): New function.
- (ipa_param_adjustments::modify_call): New parameter killed_ssas.
- Instead of substituting uses, invoke purge_transitive_uses. If
- hash of killed SSAs has not been provided, create a temporary one
- and release SSAs that have been added to it.
- * tree-inline.cc (redirect_all_calls): Create
- id->killed_new_ssa_names earlier, pass it to edge redirection,
- adjust a comment.
- (copy_body): Release SSAs in id->killed_new_ssa_names.
+ * common/config/riscv/riscv-common.cc (riscv_implied_info):
+ Remove {"ztso", "a"}.
-2023-10-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (@vec_series<mode>): Remove @.
- (vec_series<mode>): Ditto.
- * config/riscv/riscv-v.cc (expand_const_vector): Ditto.
- (shuffle_decompress_patterns): Ditto.
-
-2023-10-05 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc-passes.def: Remove arc_ifcvt pass.
- * config/arc/arc-protos.h (arc_ccfsm_branch_deleted_p): Remove.
- (arc_ccfsm_record_branch_deleted): Likewise.
- (arc_ccfsm_cond_exec_p): Likewise.
- (arc_ccfsm): Likewise.
- (arc_ccfsm_record_condition): Likewise.
- (make_pass_arc_ifcvt): Likewise.
- * config/arc/arc.cc (arc_ccfsm): Remove.
- (arc_ccfsm_current): Likewise.
- (ARC_CCFSM_BRANCH_DELETED_P): Likewise.
- (ARC_CCFSM_RECORD_BRANCH_DELETED): Likewise.
- (ARC_CCFSM_COND_EXEC_P): Likewise.
- (CCFSM_ISCOMPACT): Likewise.
- (CCFSM_DBR_ISCOMPACT): Likewise.
- (machine_function): Remove ccfsm related fields.
- (arc_ifcvt): Remove pass.
- (arc_print_operand): Remove `#` punct operand and other ccfsm
- related code.
- (arc_ccfsm_advance): Remove.
- (arc_ccfsm_at_label): Likewise.
- (arc_ccfsm_record_condition): Likewise.
- (arc_ccfsm_post_advance): Likewise.
- (arc_ccfsm_branch_deleted_p): Likewise.
- (arc_ccfsm_record_branch_deleted): Likewise.
- (arc_ccfsm_cond_exec_p): Likewise.
- (arc_get_ccfsm_cond): Likewise.
- (arc_final_prescan_insn): Remove ccfsm references.
- (arc_internal_label): Likewise.
- (arc_reorg): Likewise.
- (arc_output_libcall): Likewise.
- * config/arc/arc.md: Remove ccfsm references and update related
- instruction patterns.
-
-2023-10-05 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc.cc (arc_init): Remove '^' punct char.
- (arc_print_operand): Remove related code.
- * config/arc/arc.md: Update patterns which uses '%&'.
-
-2023-10-05 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc-protos.h (arc_clear_unalign): Remove.
- (arc_toggle_unalign): Likewise.
- * config/arc/arc.cc (machine_function) Remove unalign.
- (arc_init): Remove `&` punct character.
- (arc_print_operand): Remove `&` related functions.
- (arc_verify_short): Update function's number of parameters.
- (output_short_suffix): Update function.
- (arc_short_long): Likewise.
- (arc_clear_unalign): Remove.
- (arc_toggle_unalign): Likewise.
- * config/arc/arc.h (ASM_OUTPUT_CASE_END): Remove.
- (ASM_OUTPUT_ALIGN): Update.
- * config/arc/arc.md: Remove all `%&` references.
- * config/arc/arc.opt (mannotate-align): Ignore option.
- * doc/invoke.texi (mannotate-align): Update description.
-
-2023-10-05 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_build_slp_tree_1): Do not
- ask for internal_fn_p (CFN_LAST).
-
-2023-10-05 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Not
- visited value numbers are available itself.
-
-2023-10-05 Richard Biener <rguenther@suse.de>
-
- PR ipa/111643
- * doc/extend.texi (attribute flatten): Clarify.
-
-2023-10-04 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc-protos.h (emit_shift): Delete prototype.
- (arc_pre_reload_split): New function prototype.
- * config/arc/arc.cc (emit_shift): Delete function.
- (arc_pre_reload_split): New predicate function, copied from i386,
- to schedule define_insn_and_split splitters to the split1 pass.
- * config/arc/arc.md (ashlsi3): Expand RTL template unconditionally.
- (ashrsi3): Likewise.
- (lshrsi3): Likewise.
- (shift_si3): Move after other shift patterns, and disable when
- operands[2] is one (which is handled by its own define_insn).
- Use shiftr4_operator, instead of shift4_operator, as this is no
- longer used for left shifts.
- (shift_si3_loop): Likewise. Additionally remove match_scratch.
- (*ashlsi3_nobs): New pre-reload define_insn_and_split.
- (*ashrsi3_nobs): Likewise.
- (*lshrsi3_nobs): Likewise.
- (rotrsi3_cnt1): Rename define_insn from *rotrsi3_cnt1.
- (add_shift): Rename define_insn from *add_shift.
- * config/arc/predicates.md (shiftl4_operator): Delete.
- (shift4_operator): Delete.
-
-2023-10-04 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.md (ashlsi3_cnt1): Rename define_insn *ashlsi2_cnt1.
- Change type attribute to "unary", as this doesn't have operands[2].
- Change length attribute to "*,4" to allow compact representation.
- (lshrsi3_cnt1): Rename define_insn from *lshrsi3_cnt1. Change
- insn type attribute to "unary", as this doesn't have operands[2].
- (ashrsi3_cnt1): Rename define_insn from *ashrsi3_cnt1. Change
- insn type attribute to "unary", as this doesn't have operands[2].
-
-2023-10-04 Roger Sayle <roger@nextmovesoftware.com>
-
- PR rtl-optimization/110701
- * combine.cc (record_dead_and_set_regs_1): Split comment into
- pieces placed before the relevant clauses. When the SET_DEST
- is a partial_subreg_p, mark the bits outside of the updated
- portion of the destination as undefined.
-
-2023-10-04 Kito Cheng <kito.cheng@sifive.com>
-
- PR bootstrap/111664
- * opt-read.awk: Drop multidimensional arrays.
- * opth-gen.awk: Ditto.
-
-2023-10-04 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.md (UNSPEC_FCOPYSIGN): Delete.
- (copysign<mode>3): Use copysign RTL instead of UNSPEC.
-
-2023-10-04 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/111369
- * match.pd (x == cstN ? cst4 : cst3): Use
- build_nonstandard_integer_type only if type1 is BOOLEAN_TYPE.
- Fix comment typo. Formatting fix.
- (a?~t:t -> (-(a))^t): Always convert to type rather
- than using build_nonstandard_integer_type. Perform negation
- only if type has precision > 1 and is not signed BOOLEAN_TYPE.
-
-2023-10-04 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/111668
- * match.pd (a ? CST1 : CST2): Handle the a ? -1 : 0 and
- a ? 0 : -1 cases before the powerof2cst cases and differentiate
- between 1-bit precision types, larger precision boolean types
- and other integral types. Fix comment pastos and formatting.
-
-2023-10-03 Andrew MacLeod <amacleod@redhat.com>
-
- * tree-ssanames.cc (set_range_info): Use get_ptr_info for
- pointers rather than range_info_get_range.
-
-2023-10-03 Martin Jambor <mjambor@suse.cz>
-
- * ipa-modref.h (modref_summary::dump): Make const.
- * ipa-modref.cc (modref_summary::dump): Likewise.
- (dump_lto_records): Dump to out instead of dump_file.
-
-2023-10-03 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/110378
- * ipa-param-manipulation.cc
- (ipa_param_body_adjustments::mark_dead_statements): Verify that any
- return uses of PARAM will be removed.
- (ipa_param_body_adjustments::mark_clobbers_dead): Likewise.
- * ipa-sra.cc (isra_param_desc): New fields
- remove_only_when_retval_removed and split_only_when_retval_removed.
- (struct gensum_param_desc): Likewise. Fix comment long line.
- (ipa_sra_function_summaries::duplicate): Copy the new flags.
- (dump_gensum_param_descriptor): Dump the new flags.
- (dump_isra_param_descriptor): Likewise.
- (isra_track_scalar_value_uses): New parameter desc. Set its flag
- remove_only_when_retval_removed when encountering a simple return.
- (isra_track_scalar_param_local_uses): Replace parameter call_uses_p
- with desc. Pass it to isra_track_scalar_value_uses and set its
- call_uses.
- (ptr_parm_has_nonarg_uses): Accept parameter descriptor as a
- parameter. If there is a direct return use, mark any..
- (create_parameter_descriptors): Pass the whole parameter descriptor to
- isra_track_scalar_param_local_uses and ptr_parm_has_nonarg_uses.
- (process_scan_results): Copy the new flags.
- (isra_write_node_summary): Stream the new flags.
- (isra_read_node_info): Likewise.
- (adjust_parameter_descriptions): Check that transformations
- requring return removal only happen when return value is removed.
- Restructure main loop. Adjust dump message.
-
-2023-10-03 Martin Jambor <mjambor@suse.cz>
+2024-01-24 Martin Jambor <mjambor@suse.cz>
PR ipa/108007
+ PR ipa/112616
* cgraph.h (cgraph_edge): Add a parameter to
redirect_call_stmt_to_callee.
* ipa-param-manipulation.h (ipa_param_adjustments): Add a
parameter to modify_call.
+ (ipa_release_ssas_in_hash): Declare.
* cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
parameter killed_ssas, pass it to padjs->modify_call.
- * ipa-param-manipulation.cc (purge_transitive_uses): New function.
+ * ipa-param-manipulation.cc (purge_all_uses): New function.
(ipa_param_adjustments::modify_call): New parameter killed_ssas.
- Instead of substituting uses, invoke purge_transitive_uses. If
+ Instead of substituting uses, invoke purge_all_uses. If
hash of killed SSAs has not been provided, create a temporary one
and release SSAs that have been added to it.
+ (compare_ssa_versions): New function.
+ (ipa_release_ssas_in_hash): Likewise.
* tree-inline.cc (redirect_all_calls): Create
id->killed_new_ssa_names earlier, pass it to edge redirection,
adjust a comment.
- (copy_body): Release SSAs in id->killed_new_ssa_names.
-
-2023-10-03 Andrew MacLeod <amacleod@redhat.com>
-
- * passes.def (pass_vrp): Pass "final pass" flag as parameter.
- * tree-vrp.cc (vrp_pass_num): Remove.
- (pass_vrp::my_pass): Remove.
- (pass_vrp::pass_vrp): Add warn_p as a parameter.
- (pass_vrp::final_p): New.
- (pass_vrp::set_pass_param): Set final_p param.
- (pass_vrp::execute): Call execute_range_vrp with no conditions.
- (make_pass_vrp): Pass additional parameter.
- (make_pass_early_vrp): Ditto.
-
-2023-10-03 Andrew MacLeod <amacleod@redhat.com>
-
- * tree-ssanames.cc (set_range_info): Return true only if the
- current value changes.
-
-2023-10-03 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_set_info_translated): Update for "m_"
- prefixes to text_info fields.
- (diagnostic_report_diagnostic): Likewise.
- (verbatim): Use text_info ctor.
- (simple_diagnostic_path::add_event): Likewise.
- (simple_diagnostic_path::add_thread_event): Likewise.
- * dumpfile.cc (dump_pretty_printer::decode_format): Update for
- "m_" prefixes to text_info fields.
- (dump_context::dump_printf_va): Use text_info ctor.
- * graphviz.cc (graphviz_out::graphviz_out): Use text_info ctor.
- (graphviz_out::print): Likewise.
- * opt-problem.cc (opt_problem::opt_problem): Likewise.
- * pretty-print.cc (pp_format): Update for "m_" prefixes to
- text_info fields.
- (pp_printf): Use text_info ctor.
- (pp_verbatim): Likewise.
- (assert_pp_format_va): Likewise.
- * pretty-print.h (struct text_info): Add ctors. Add "m_" prefix
- to all fields.
- * text-art/styled-string.cc (styled_string::from_fmt_va): Use
- text_info ctor.
- * tree-diagnostic.cc (default_tree_printer): Update for "m_"
- prefixes to text_info fields.
- * tree-pretty-print.h (pp_ti_abstract_origin): Likewise.
-
-2023-10-03 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/arc/arc.md (CC_ltu): New mode iterator for CC and CC_C.
- (scc_ltu_<mode>): New define_insn to handle LTU form of scc_insn.
- (*scc_insn): Don't split to a conditional move sequence for LTU.
-
-2023-10-03 Andrea Corallo <andrea.corallo@arm.com>
-
- * config/aarch64/aarch64.md (@ccmp<CC_ONLY:mode><GPI:mode>)
- (@ccmp<CC_ONLY:mode><GPI:mode>_rev, *call_insn, *call_value_insn)
- (*mov<mode>_aarch64, load_pair_sw_<SX:mode><SX2:mode>)
- (load_pair_dw_<DX:mode><DX2:mode>)
- (store_pair_sw_<SX:mode><SX2:mode>)
- (store_pair_dw_<DX:mode><DX2:mode>, *extendsidi2_aarch64)
- (*zero_extendsidi2_aarch64, *load_pair_zero_extendsidi2_aarch64)
- (*extend<SHORT:mode><GPI:mode>2_aarch64)
- (*zero_extend<SHORT:mode><GPI:mode>2_aarch64)
- (*extendqihi2_aarch64, *zero_extendqihi2_aarch64)
- (*add<mode>3_aarch64, *addsi3_aarch64_uxtw, *add<mode>3_poly_1)
- (add<mode>3_compare0, *addsi3_compare0_uxtw)
- (*add<mode>3_compareC_cconly, add<mode>3_compareC)
- (*add<mode>3_compareV_cconly_imm, add<mode>3_compareV_imm)
- (*add<mode>3nr_compare0, subdi3, subv<GPI:mode>_imm)
- (*cmpv<GPI:mode>_insn, sub<mode>3_compare1_imm, neg<mode>2)
- (cmp<mode>, fcmp<mode>, fcmpe<mode>, *cmov<mode>_insn)
- (*cmovsi_insn_uxtw, <optab><mode>3, *<optab>si3_uxtw)
- (*and<mode>3_compare0, *andsi3_compare0_uxtw, one_cmpl<mode>2)
- (*<NLOGICAL:optab>_one_cmpl<mode>3, *and<mode>3nr_compare0)
- (*aarch64_ashl_sisd_or_int_<mode>3)
- (*aarch64_lshr_sisd_or_int_<mode>3)
- (*aarch64_ashr_sisd_or_int_<mode>3, *ror<mode>3_insn)
- (*<optab>si3_insn_uxtw, <optab>_trunc<fcvt_target><GPI:mode>2)
- (<optab><fcvt_target><GPF:mode>2)
- (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3)
- (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3)
- (*aarch64_<optab><mode>3_cssc, copysign<GPF:mode>3_insn): Update
- to new syntax.
- * config/aarch64/aarch64-sve2.md (@aarch64_scatter_stnt<mode>)
- (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
- (*aarch64_mul_unpredicated_<mode>)
- (@aarch64_pred_<sve_int_op><mode>, *cond_<sve_int_op><mode>_2)
- (*cond_<sve_int_op><mode>_3, *cond_<sve_int_op><mode>_any)
- (*cond_<sve_int_op><mode>_z, @aarch64_pred_<sve_int_op><mode>)
- (*cond_<sve_int_op><mode>_2, *cond_<sve_int_op><mode>_3)
- (*cond_<sve_int_op><mode>_any, @aarch64_sve_<sve_int_op><mode>)
- (@aarch64_sve_<sve_int_op>_lane_<mode>)
- (@aarch64_sve_add_mul_lane_<mode>)
- (@aarch64_sve_sub_mul_lane_<mode>, @aarch64_sve2_xar<mode>)
- (*aarch64_sve2_bcax<mode>, @aarch64_sve2_eor3<mode>)
- (*aarch64_sve2_nor<mode>, *aarch64_sve2_nand<mode>)
- (*aarch64_sve2_bsl<mode>, *aarch64_sve2_nbsl<mode>)
- (*aarch64_sve2_bsl1n<mode>, *aarch64_sve2_bsl2n<mode>)
- (*aarch64_sve2_sra<mode>, @aarch64_sve_add_<sve_int_op><mode>)
- (*aarch64_sve2_<su>aba<mode>, @aarch64_sve_add_<sve_int_op><mode>)
- (@aarch64_sve_add_<sve_int_op>_lane_<mode>)
- (@aarch64_sve_qadd_<sve_int_op><mode>)
- (@aarch64_sve_qadd_<sve_int_op>_lane_<mode>)
- (@aarch64_sve_sub_<sve_int_op><mode>)
- (@aarch64_sve_sub_<sve_int_op>_lane_<mode>)
- (@aarch64_sve_qsub_<sve_int_op><mode>)
- (@aarch64_sve_qsub_<sve_int_op>_lane_<mode>)
- (@aarch64_sve_<sve_fp_op><mode>, @aarch64_<sve_fp_op>_lane_<mode>)
- (@aarch64_pred_<sve_int_op><mode>)
- (@aarch64_pred_<sve_fp_op><mode>, *cond_<sve_int_op><mode>_2)
- (*cond_<sve_int_op><mode>_z, @aarch64_sve_<optab><mode>)
- (@aarch64_<optab>_lane_<mode>, @aarch64_sve_<optab><mode>)
- (@aarch64_<optab>_lane_<mode>, @aarch64_pred_<sve_fp_op><mode>)
- (*cond_<sve_fp_op><mode>_any_relaxed)
- (*cond_<sve_fp_op><mode>_any_strict)
- (@aarch64_pred_<sve_int_op><mode>, *cond_<sve_int_op><mode>)
- (@aarch64_pred_<sve_fp_op><mode>, *cond_<sve_fp_op><mode>)
- (*cond_<sve_fp_op><mode>_strict): Update to new syntax.
- * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_ldr_str)
- (*aarch64_sve_mov<mode>_no_ldr_str, @aarch64_pred_mov<mode>)
- (*aarch64_sve_mov<mode>, aarch64_wrffr)
- (mask_scatter_store<mode><v_int_container>)
- (*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked)
- (*mask_scatter_store<mode><v_int_container>_sxtw)
- (*mask_scatter_store<mode><v_int_container>_uxtw)
- (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
- (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
- (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
- (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw)
- (*vec_duplicate<mode>_reg, vec_shl_insert_<mode>)
- (vec_series<mode>, @extract_<last_op>_<mode>)
- (@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2)
- (*cond_<optab><mode>_any, @aarch64_pred_<optab><mode>)
- (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>)
- (@cond_<optab><mode>)
- (*<optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2)
- (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>)
- (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>)
- (*cond_uxt<mode>_2, *cond_uxt<mode>_any, *cnot<mode>)
- (*cond_cnot<mode>_2, *cond_cnot<mode>_any)
- (@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2_relaxed)
- (*cond_<optab><mode>_2_strict, *cond_<optab><mode>_any_relaxed)
- (*cond_<optab><mode>_any_strict, @aarch64_pred_<optab><mode>)
- (*cond_<optab><mode>_2, *cond_<optab><mode>_3)
- (*cond_<optab><mode>_any, add<mode>3, sub<mode>3)
- (@aarch64_pred_<su>abd<mode>, *aarch64_cond_<su>abd<mode>_2)
- (*aarch64_cond_<su>abd<mode>_3, *aarch64_cond_<su>abd<mode>_any)
- (@aarch64_sve_<optab><mode>, @aarch64_pred_<optab><mode>)
- (*cond_<optab><mode>_2, *cond_<optab><mode>_z)
- (@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2)
- (*cond_<optab><mode>_3, *cond_<optab><mode>_any, <optab><mode>3)
- (*cond_bic<mode>_2, *cond_bic<mode>_any)
- (@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2_const)
- (*cond_<optab><mode>_any_const, *cond_<sve_int_op><mode>_m)
- (*cond_<sve_int_op><mode>_z, *sdiv_pow2<mode>3)
- (*cond_<sve_int_op><mode>_2, *cond_<sve_int_op><mode>_any)
- (@aarch64_pred_<optab><mode>, *cond_<optab><mode>_2_relaxed)
- (*cond_<optab><mode>_2_strict, *cond_<optab><mode>_any_relaxed)
- (*cond_<optab><mode>_any_strict, @aarch64_pred_<optab><mode>)
- (*cond_<optab><mode>_2_relaxed, *cond_<optab><mode>_2_strict)
- (*cond_<optab><mode>_2_const_relaxed)
- (*cond_<optab><mode>_2_const_strict)
- (*cond_<optab><mode>_3_relaxed, *cond_<optab><mode>_3_strict)
- (*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
- (*cond_<optab><mode>_any_const_relaxed)
- (*cond_<optab><mode>_any_const_strict)
- (@aarch64_pred_<optab><mode>, *cond_add<mode>_2_const_relaxed)
- (*cond_add<mode>_2_const_strict)
- (*cond_add<mode>_any_const_relaxed)
- (*cond_add<mode>_any_const_strict, @aarch64_pred_<optab><mode>)
- (*cond_<optab><mode>_2_relaxed, *cond_<optab><mode>_2_strict)
- (*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
- (@aarch64_pred_<optab><mode>, *cond_sub<mode>_3_const_relaxed)
- (*cond_sub<mode>_3_const_strict, *cond_sub<mode>_const_relaxed)
- (*cond_sub<mode>_const_strict, *aarch64_pred_abd<mode>_relaxed)
- (*aarch64_pred_abd<mode>_strict)
- (*aarch64_cond_abd<mode>_2_relaxed)
- (*aarch64_cond_abd<mode>_2_strict)
- (*aarch64_cond_abd<mode>_3_relaxed)
- (*aarch64_cond_abd<mode>_3_strict)
- (*aarch64_cond_abd<mode>_any_relaxed)
- (*aarch64_cond_abd<mode>_any_strict, @aarch64_pred_<optab><mode>)
- (@aarch64_pred_fma<mode>, *cond_fma<mode>_2, *cond_fma<mode>_4)
- (*cond_fma<mode>_any, @aarch64_pred_fnma<mode>)
- (*cond_fnma<mode>_2, *cond_fnma<mode>_4, *cond_fnma<mode>_any)
- (<sur>dot_prod<vsi2qi>, @aarch64_<sur>dot_prod_lane<vsi2qi>)
- (@<sur>dot_prod<vsi2qi>, @aarch64_<sur>dot_prod_lane<vsi2qi>)
- (@aarch64_sve_add_<optab><vsi2qi>, @aarch64_pred_<optab><mode>)
- (*cond_<optab><mode>_2_relaxed, *cond_<optab><mode>_2_strict)
- (*cond_<optab><mode>_4_relaxed, *cond_<optab><mode>_4_strict)
- (*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
- (@aarch64_<optab>_lane_<mode>, @aarch64_pred_<optab><mode>)
- (*cond_<optab><mode>_4_relaxed, *cond_<optab><mode>_4_strict)
- (*cond_<optab><mode>_any_relaxed, *cond_<optab><mode>_any_strict)
- (@aarch64_<optab>_lane_<mode>, @aarch64_sve_tmad<mode>)
- (@aarch64_sve_<sve_fp_op>vnx4sf)
- (@aarch64_sve_<sve_fp_op>_lanevnx4sf)
- (@aarch64_sve_<sve_fp_op><mode>, *vcond_mask_<mode><vpred>)
- (@aarch64_sel_dup<mode>, @aarch64_pred_cmp<cmp_op><mode>)
- (*cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest)
- (@aarch64_pred_fcm<cmp_op><mode>, @fold_extract_<last_op>_<mode>)
- (@aarch64_fold_extract_vector_<last_op>_<mode>)
- (@aarch64_sve_splice<mode>)
- (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>)
- (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>)
- (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed)
- (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict)
- (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>)
- (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>)
- (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>)
- (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed)
- (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict)
- (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>)
- (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>)
- (*cond_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>)
- (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
- (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
- (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>)
- (*cond_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>)
- (@aarch64_brk<brk_op>, *aarch64_sve_<inc_dec><mode>_cntp): Update
- to new syntax.
- * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>)
- (load_pair<DREG:mode><DREG2:mode>)
- (vec_store_pair<DREG:mode><DREG2:mode>, aarch64_simd_stp<mode>)
- (aarch64_simd_mov_from_<mode>low)
- (aarch64_simd_mov_from_<mode>high, and<mode>3<vczle><vczbe>)
- (ior<mode>3<vczle><vczbe>, aarch64_simd_ashr<mode><vczle><vczbe>)
- (aarch64_simd_bsl<mode>_internal<vczle><vczbe>)
- (*aarch64_simd_bsl<mode>_alt<vczle><vczbe>)
- (aarch64_simd_bsldi_internal, aarch64_simd_bsldi_alt)
- (store_pair_lanes<mode>, *aarch64_combine_internal<mode>)
- (*aarch64_combine_internal_be<mode>, *aarch64_combinez<mode>)
- (*aarch64_combinez_be<mode>)
- (aarch64_cm<optab><mode><vczle><vczbe>, *aarch64_cm<optab>di)
- (aarch64_cm<optab><mode><vczle><vczbe>, *aarch64_mov<mode>)
- (*aarch64_be_mov<mode>, *aarch64_be_movoi): Update to new syntax.
-
-2023-10-03 Andrea Corallo <andrea.corallo@arm.com>
-
- * gensupport.cc (convert_syntax): Skip spaces before "cons:"
- in new compact pattern syntax.
-
-2023-10-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * gensupport.cc (convert_syntax): Updated to support unordered
- constraints in compact syntax.
-
-2023-10-02 Michael Meissner <meissner@linux.ibm.com>
-
- * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): Delete.
- (copysign<mode>3_fcpsg): Use copysign RTL instead of UNSPEC.
- (copysign<mode>3_hard): Likewise.
- (copysign<mode>3_soft): Likewise.
- * config/rs6000/vector.md (vector_copysign<mode>3): Use copysign RTL
- instead of UNSPEC.
- * config/rs6000/vsx.md (vsx_copysign<mode>3): Use copysign RTL instead
- of UNSPEC.
-
-2023-10-02 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-format-json.cc (toplevel_array): Remove global in
- favor of json_output_format::m_top_level_array.
- (cur_group): Likewise, for json_output_format::m_cur_group.
- (cur_children_array): Likewise, for
- json_output_format::m_cur_children_array.
- (class json_output_format): New.
- (json_begin_diagnostic): Remove, in favor of
- json_output_format::on_begin_diagnostic.
- (json_end_diagnostic): Convert to...
- (json_output_format::on_end_diagnostic): ...this.
- (json_begin_group): Remove, in favor of
- json_output_format::on_begin_group.
- (json_end_group): Remove, in favor of
- json_output_format::on_end_group.
- (json_flush_to_file): Remove, in favor of
- json_output_format::flush_to_file.
- (json_stderr_final_cb): Remove, in favor of json_output_format
- dtor.
- (json_output_base_file_name): Remove global.
- (class json_stderr_output_format): New.
- (json_file_final_cb): Remove.
- (class json_file_output_format): New.
- (json_emit_diagram): Remove.
- (diagnostic_output_format_init_json): Update.
- (diagnostic_output_format_init_json_file): Update.
- * diagnostic-format-sarif.cc (the_builder): Remove this global,
- moving to a field of the sarif_output_format.
- (sarif_builder::maybe_make_artifact_content_object): Use the
- context's m_file_cache.
- (get_source_lines): Convert to...
- (sarif_builder::get_source_lines): ...this, using context's
- m_file_cache.
- (sarif_begin_diagnostic): Remove, in favor of
- sarif_output_format::on_begin_diagnostic.
- (sarif_end_diagnostic): Remove, in favor of
- sarif_output_format::on_end_diagnostic.
- (sarif_begin_group): Remove, in favor of
- sarif_output_format::on_begin_group.
- (sarif_end_group): Remove, in favor of
- sarif_output_format::on_end_group.
- (sarif_flush_to_file): Delete.
- (sarif_stderr_final_cb): Delete.
- (sarif_output_base_file_name): Delete.
- (sarif_file_final_cb): Delete.
- (class sarif_output_format): New.
- (sarif_emit_diagram): Delete.
- (class sarif_stream_output_format): New.
- (class sarif_file_output_format): New.
- (diagnostic_output_format_init_sarif): Update.
- (diagnostic_output_format_init_sarif_stderr): Update.
- (diagnostic_output_format_init_sarif_file): Update.
- (diagnostic_output_format_init_sarif_stream): Update.
- * diagnostic-show-locus.cc (diagnostic_show_locus): Update.
- * diagnostic.cc (default_diagnostic_final_cb): Delete, moving to
- diagnostic_text_output_format's dtor.
- (diagnostic_initialize): Update, making a new instance of
- diagnostic_text_output_format.
- (diagnostic_finish): Delete m_output_format, rather than calling
- final_cb.
- (diagnostic_report_diagnostic): Assert that m_output_format is
- non-NULL. Replace call to begin_group_cb with call to
- m_output_format->on_begin_group. Replace call to
- diagnostic_starter with call to
- m_output_format->on_begin_diagnostic. Replace call to
- diagnostic_finalizer with call to
- m_output_format->on_end_diagnostic.
- (diagnostic_emit_diagram): Replace both optional call to
- m_diagrams.m_emission_cb and default implementation with call to
- m_output_format->on_diagram. Move default implementation to
- diagnostic_text_output_format::on_diagram.
- (auto_diagnostic_group::~auto_diagnostic_group): Replace call to
- end_group_cb with call to m_output_format->on_end_group.
- (diagnostic_text_output_format::~diagnostic_text_output_format):
- New, based on default_diagnostic_final_cb.
- (diagnostic_text_output_format::on_begin_diagnostic): New, based
- on code from diagnostic_report_diagnostic.
- (diagnostic_text_output_format::on_end_diagnostic): Likewise.
- (diagnostic_text_output_format::on_diagram): New, based on code
- from diagnostic_emit_diagram.
- * diagnostic.h (class diagnostic_output_format): New.
- (class diagnostic_text_output_format): New.
- (diagnostic_context::begin_diagnostic): Move to...
- (diagnostic_context::m_text_callbacks::begin_diagnostic): ...here.
- (diagnostic_context::start_span): Move to...
- (diagnostic_context::m_text_callbacks::start_span): ...here.
- (diagnostic_context::end_diagnostic): Move to...
- (diagnostic_context::m_text_callbacks::end_diagnostic): ...here.
- (diagnostic_context::begin_group_cb): Remove, in favor of
- m_output_format->on_begin_group.
- (diagnostic_context::end_group_cb): Remove, in favor of
- m_output_format->on_end_group.
- (diagnostic_context::final_cb): Remove, in favor of
- m_output_format's dtor.
- (diagnostic_context::m_output_format): New field.
- (diagnostic_context::m_diagrams.m_emission_cb): Remove, in favor
- of m_output_format->on_diagram.
- (diagnostic_starter): Update.
- (diagnostic_finalizer): Update.
- (diagnostic_output_format_init_sarif_stream): New.
- * input.cc (location_get_source_line): Move implementation apart from
- call to diagnostic_file_cache_init to...
- (file_cache::get_source_line): ...this new function...
- (location_get_source_line): ...and reintroduce, rewritten in terms of
- file_cache::get_source_line.
- (get_source_file_content): Likewise, refactor into...
- (file_cache::get_source_file_content): ...this new function.
- * input.h (file_cache::get_source_line): New decl.
- (file_cache::get_source_file_content): New decl.
- * selftest-diagnostic.cc
- (test_diagnostic_context::test_diagnostic_context): Update.
- * tree-diagnostic-path.cc (event_range::print): Update for
- change to diagnostic_context's start_span callback.
-
-2023-10-02 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-show-locus.cc: Update for reorganization of
- source-printing fields of diagnostic_context.
- * diagnostic.cc (diagnostic_set_caret_max_width): Likewise.
- (diagnostic_initialize): Likewise.
- * diagnostic.h (diagnostic_context::show_caret): Move to...
- (diagnostic_context::m_source_printing::enabled): ...here.
- (diagnostic_context::caret_max_width): Move to...
- (diagnostic_context::m_source_printing::max_width): ...here.
- (diagnostic_context::caret_chars): Move to...
- (diagnostic_context::m_source_printing::caret_chars): ...here.
- (diagnostic_context::colorize_source_p): Move to...
- (diagnostic_context::m_source_printing::colorize_source_p): ...here.
- (diagnostic_context::show_labels_p): Move to...
- (diagnostic_context::m_source_printing::show_labels_p): ...here.
- (diagnostic_context::show_line_numbers_p): Move to...
- (diagnostic_context::m_source_printing::show_line_numbers_p): ...here.
- (diagnostic_context::min_margin_width): Move to...
- (diagnostic_context::m_source_printing::min_margin_width): ...here.
- (diagnostic_context::show_ruler_p): Move to...
- (diagnostic_context::m_source_printing::show_ruler_p): ...here.
- (diagnostic_same_line): Update for above changes.
- * opts.cc (common_handle_option): Update for reorganization of
- source-printing fields of diagnostic_context.
- * selftest-diagnostic.cc
- (test_diagnostic_context::test_diagnostic_context): Likewise.
- * toplev.cc (general_init): Likewise.
- * tree-diagnostic-path.cc (struct event_range): Likewise.
-
-2023-10-02 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic.cc (diagnostic_initialize): Initialize
- set_locations_cb to nullptr.
-
-2023-10-02 Wilco Dijkstra <wilco.dijkstra@arm.com>
-
- PR target/111235
- * config/arm/constraints.md: Remove Pf constraint.
- * config/arm/sync.md (arm_atomic_load<mode>): Add new pattern.
- (arm_atomic_load_acquire<mode>): Likewise.
- (arm_atomic_store<mode>): Likewise.
- (arm_atomic_store_release<mode>): Likewise.
- (atomic_load<mode>): Switch patterns to define_expand.
- (atomic_store<mode>): Likewise.
- (arm_atomic_loaddi2_ldrd): Remove predication.
- (arm_load_exclusive<mode>): Likewise.
- (arm_load_acquire_exclusive<mode>): Likewise.
- (arm_load_exclusivesi): Likewise.
- (arm_load_acquire_exclusivesi): Likewise.
- (arm_load_exclusivedi): Likewise.
- (arm_load_acquire_exclusivedi): Likewise.
- (arm_store_exclusive<mode>): Likewise.
- (arm_store_release_exclusivedi): Likewise.
- (arm_store_release_exclusive<mode>): Likewise.
- * config/arm/unspecs.md: Add VUNSPEC_LDR and VUNSPEC_STR.
-
-2023-10-02 Tamar Christina <tamar.christina@arm.com>
-
- Revert:
- 2023-10-02 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * tree-if-conv.cc (INCLUDE_ALGORITHM): Remove.
- (cmp_arg_entry): New.
- (predicate_scalar_phi): Use it.
-
-2023-10-02 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64-simd.md (xorsign<mode>3): Renamed to..
- (@xorsign<mode>3): ...This.
- * config/aarch64/aarch64.md (xorsign<mode>3): Renamed to...
- (@xorsign<mode>3): ..This and emit vectors directly
- * config/aarch64/iterators.md (VCONQ): Add SF and DF.
-
-2023-10-02 Tamar Christina <tamar.christina@arm.com>
-
- * emit-rtl.cc (validate_subreg): Relax subreg rule.
-
-2023-10-02 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * tree-if-conv.cc (INCLUDE_ALGORITHM): Remove.
- (cmp_arg_entry): New.
- (predicate_scalar_phi): Use it.
-
-2023-10-02 Richard Sandiford <richard.sandiford@arm.com>
-
- PR bootstrap/111642
- * rtl-tests.cc (const_poly_int_tests<N>::run): Use a local
- poly_int64 typedef.
- * simplify-rtx.cc (simplify_const_poly_int_tests<N>::run): Likewise.
-
-2023-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (riscv_vector::expand_block_move):
- Declare.
- * config/riscv/riscv-v.cc (riscv_vector::expand_block_move):
- New function.
- * config/riscv/riscv.md (cpymemsi): Use riscv_vector::expand_block_move.
- Change to ..
- (cpymem<P:mode>) .. this.
-
-2023-10-01 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * combine.cc (simplify_compare_const): Properly handle unsigned
- constants while narrowing comparison of memory and constants.
-
-2023-10-01 Feng Wang <wangfeng@eswincomputing.com>
-
- * config/riscv/riscv-opts.h (MASK_ZICSR): Delete.
- (MASK_ZIFENCEI): Delete;
- (MASK_ZIHINTNTL): Ditto.
- (MASK_ZIHINTPAUSE): Ditto.
- (TARGET_ZICSR): Ditto.
- (TARGET_ZIFENCEI): Ditto.
- (TARGET_ZIHINTNTL): Ditto.
- (TARGET_ZIHINTPAUSE): Ditto.
- (MASK_ZAWRS): Ditto.
- (TARGET_ZAWRS): Ditto.
- (MASK_ZBA): Ditto.
- (MASK_ZBB): Ditto.
- (MASK_ZBC): Ditto.
- (MASK_ZBS): Ditto.
- (TARGET_ZBA): Ditto.
- (TARGET_ZBB): Ditto.
- (TARGET_ZBC): Ditto.
- (TARGET_ZBS): Ditto.
- (MASK_ZFINX): Ditto.
- (MASK_ZDINX): Ditto.
- (MASK_ZHINX): Ditto.
- (MASK_ZHINXMIN): Ditto.
- (TARGET_ZFINX): Ditto.
- (TARGET_ZDINX): Ditto.
- (TARGET_ZHINX): Ditto.
- (TARGET_ZHINXMIN): Ditto.
- (MASK_ZBKB): Ditto.
- (MASK_ZBKC): Ditto.
- (MASK_ZBKX): Ditto.
- (MASK_ZKNE): Ditto.
- (MASK_ZKND): Ditto.
- (MASK_ZKNH): Ditto.
- (MASK_ZKR): Ditto.
- (MASK_ZKSED): Ditto.
- (MASK_ZKSH): Ditto.
- (MASK_ZKT): Ditto.
- (TARGET_ZBKB): Ditto.
- (TARGET_ZBKC): Ditto.
- (TARGET_ZBKX): Ditto.
- (TARGET_ZKNE): Ditto.
- (TARGET_ZKND): Ditto.
- (TARGET_ZKNH): Ditto.
- (TARGET_ZKR): Ditto.
- (TARGET_ZKSED): Ditto.
- (TARGET_ZKSH): Ditto.
- (TARGET_ZKT): Ditto.
- (MASK_ZTSO): Ditto.
- (TARGET_ZTSO): Ditto.
- (MASK_VECTOR_ELEN_32): Ditto.
- (MASK_VECTOR_ELEN_64): Ditto.
- (MASK_VECTOR_ELEN_FP_32): Ditto.
- (MASK_VECTOR_ELEN_FP_64): Ditto.
- (MASK_VECTOR_ELEN_FP_16): Ditto.
- (TARGET_VECTOR_ELEN_32): Ditto.
- (TARGET_VECTOR_ELEN_64): Ditto.
- (TARGET_VECTOR_ELEN_FP_32): Ditto.
- (TARGET_VECTOR_ELEN_FP_64): Ditto.
- (TARGET_VECTOR_ELEN_FP_16): Ditto.
- (MASK_ZVBB): Ditto.
- (MASK_ZVBC): Ditto.
- (TARGET_ZVBB): Ditto.
- (TARGET_ZVBC): Ditto.
- (MASK_ZVKG): Ditto.
- (MASK_ZVKNED): Ditto.
- (MASK_ZVKNHA): Ditto.
- (MASK_ZVKNHB): Ditto.
- (MASK_ZVKSED): Ditto.
- (MASK_ZVKSH): Ditto.
- (MASK_ZVKN): Ditto.
- (MASK_ZVKNC): Ditto.
- (MASK_ZVKNG): Ditto.
- (MASK_ZVKS): Ditto.
- (MASK_ZVKSC): Ditto.
- (MASK_ZVKSG): Ditto.
- (MASK_ZVKT): Ditto.
- (TARGET_ZVKG): Ditto.
- (TARGET_ZVKNED): Ditto.
- (TARGET_ZVKNHA): Ditto.
- (TARGET_ZVKNHB): Ditto.
- (TARGET_ZVKSED): Ditto.
- (TARGET_ZVKSH): Ditto.
- (TARGET_ZVKN): Ditto.
- (TARGET_ZVKNC): Ditto.
- (TARGET_ZVKNG): Ditto.
- (TARGET_ZVKS): Ditto.
- (TARGET_ZVKSC): Ditto.
- (TARGET_ZVKSG): Ditto.
- (TARGET_ZVKT): Ditto.
- (MASK_ZVL32B): Ditto.
- (MASK_ZVL64B): Ditto.
- (MASK_ZVL128B): Ditto.
- (MASK_ZVL256B): Ditto.
- (MASK_ZVL512B): Ditto.
- (MASK_ZVL1024B): Ditto.
- (MASK_ZVL2048B): Ditto.
- (MASK_ZVL4096B): Ditto.
- (MASK_ZVL8192B): Ditto.
- (MASK_ZVL16384B): Ditto.
- (MASK_ZVL32768B): Ditto.
- (MASK_ZVL65536B): Ditto.
- (TARGET_ZVL32B): Ditto.
- (TARGET_ZVL64B): Ditto.
- (TARGET_ZVL128B): Ditto.
- (TARGET_ZVL256B): Ditto.
- (TARGET_ZVL512B): Ditto.
- (TARGET_ZVL1024B): Ditto.
- (TARGET_ZVL2048B): Ditto.
- (TARGET_ZVL4096B): Ditto.
- (TARGET_ZVL8192B): Ditto.
- (TARGET_ZVL16384B): Ditto.
- (TARGET_ZVL32768B): Ditto.
- (TARGET_ZVL65536B): Ditto.
- (MASK_ZICBOZ): Ditto.
- (MASK_ZICBOM): Ditto.
- (MASK_ZICBOP): Ditto.
- (TARGET_ZICBOZ): Ditto.
- (TARGET_ZICBOM): Ditto.
- (TARGET_ZICBOP): Ditto.
- (MASK_ZICOND): Ditto.
- (TARGET_ZICOND): Ditto.
- (MASK_ZFA): Ditto.
- (TARGET_ZFA): Ditto.
- (MASK_ZFHMIN): Ditto.
- (MASK_ZFH): Ditto.
- (MASK_ZVFHMIN): Ditto.
- (MASK_ZVFH): Ditto.
- (TARGET_ZFHMIN): Ditto.
- (TARGET_ZFH): Ditto.
- (TARGET_ZVFHMIN): Ditto.
- (TARGET_ZVFH): Ditto.
- (MASK_ZMMUL): Ditto.
- (TARGET_ZMMUL): Ditto.
- (MASK_ZCA): Ditto.
- (MASK_ZCB): Ditto.
- (MASK_ZCE): Ditto.
- (MASK_ZCF): Ditto.
- (MASK_ZCD): Ditto.
- (MASK_ZCMP): Ditto.
- (MASK_ZCMT): Ditto.
- (TARGET_ZCA): Ditto.
- (TARGET_ZCB): Ditto.
- (TARGET_ZCE): Ditto.
- (TARGET_ZCF): Ditto.
- (TARGET_ZCD): Ditto.
- (TARGET_ZCMP): Ditto.
- (TARGET_ZCMT): Ditto.
- (MASK_SVINVAL): Ditto.
- (MASK_SVNAPOT): Ditto.
- (TARGET_SVINVAL): Ditto.
- (TARGET_SVNAPOT): Ditto.
- (MASK_XTHEADBA): Ditto.
- (MASK_XTHEADBB): Ditto.
- (MASK_XTHEADBS): Ditto.
- (MASK_XTHEADCMO): Ditto.
- (MASK_XTHEADCONDMOV): Ditto.
- (MASK_XTHEADFMEMIDX): Ditto.
- (MASK_XTHEADFMV): Ditto.
- (MASK_XTHEADINT): Ditto.
- (MASK_XTHEADMAC): Ditto.
- (MASK_XTHEADMEMIDX): Ditto.
- (MASK_XTHEADMEMPAIR): Ditto.
- (MASK_XTHEADSYNC): Ditto.
- (TARGET_XTHEADBA): Ditto.
- (TARGET_XTHEADBB): Ditto.
- (TARGET_XTHEADBS): Ditto.
- (TARGET_XTHEADCMO): Ditto.
- (TARGET_XTHEADCONDMOV): Ditto.
- (TARGET_XTHEADFMEMIDX): Ditto.
- (TARGET_XTHEADFMV): Ditto.
- (TARGET_XTHEADINT): Ditto.
- (TARGET_XTHEADMAC): Ditto.
- (TARGET_XTHEADMEMIDX): Ditto.
- (TARGET_XTHEADMEMPAIR): Ditto.
- (TARGET_XTHEADSYNC): Ditto.
- (MASK_XVENTANACONDOPS): Ditto.
- (TARGET_XVENTANACONDOPS): Ditto.
- * config/riscv/riscv.opt: Add new Mask defination.
- * doc/options.texi: Add explanation for this new usage.
- * opt-functions.awk: Add new function to find the index
- of target variable from extra_target_vars.
- * opt-read.awk: Add new function to store the Mask flags.
- * opth-gen.awk: Add new function to output the defination of
- Mask Macro and Target Macro.
-
-2023-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111566
- * config/riscv/riscv-protos.h (riscv_vector::legitimize_move):
- Change second parameter to rtx *.
- * config/riscv/riscv-v.cc (risv_vector::legitimize_move): Likewise.
- * config/riscv/vector.md: Changed callers of
- riscv_vector::legitimize_move.
- (*mov<mode>_mem_to_mem): Remove.
-
-2023-09-30 Jakub Jelinek <jakub@redhat.com>
-
- PR target/111649
- * config/riscv/riscv-vsetvl.cc (vector_infos_manager::vector_infos_manager):
- Replace safe_grow with safe_grow_cleared.
-
-2023-09-30 Jakub Jelinek <jakub@redhat.com>
-
- * gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Fix a pasto
- in function comment.
-
-2023-09-30 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/111625
- PR middle-end/111637
- * gimple-lower-bitint.cc (range_to_prec): Use prec or -prec if
- r.undefined_p ().
- (bitint_large_huge::handle_operand_addr): For uninitialized operands
- use limb_prec or -limb_prec precision.
-
-2023-09-30 Jakub Jelinek <jakub@redhat.com>
-
- * vec.h (quick_grow): Uncomment static_assert.
-
-2023-09-30 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/bitmanip.md (*<optab>_not_const<mode>): Added type attribute
-
-2023-09-29 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_rtx_costs): Better handle costing
- SETs when the outer code is INSN.
-
-2023-09-29 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/bitmanip.md (*<optab>_not_const<mode>): New split
- pattern.
-
-2023-09-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * poly-int.h (poly_int_pod): Delete.
- (poly_coeff_traits::init_cast): New type.
- (poly_int_full, poly_int_hungry, poly_int_fullness): New structures.
- (poly_int): Replace constructors that take 1 and 2 coefficients with
- a general one that takes an arbitrary number of coefficients.
- Delegate initialization to two new private constructors, one of
- which uses the coefficients as-is and one of which adds an extra
- zero of the appropriate type (and precision, where applicable).
- (gt_ggc_mx, gt_pch_nx): Operate on poly_ints rather than poly_int_pods.
- * poly-int-types.h (poly_uint16_pod, poly_int64_pod, poly_uint64_pod)
- (poly_offset_int_pod, poly_wide_int_pod, poly_widest_int_pod): Delete.
- * gengtype.cc (main): Don't register poly_int64_pod.
- * calls.cc (initialize_argument_information): Use poly_int rather
- than poly_int_pod.
- (combine_pending_stack_adjustment_and_call): Likewise.
- * config/aarch64/aarch64.cc (pure_scalable_type_info): Likewise.
- * data-streamer.h (bp_unpack_poly_value): Likewise.
- * dwarf2cfi.cc (struct dw_trace_info): Likewise.
- (struct queued_reg_save): Likewise.
- * dwarf2out.h (struct dw_cfa_location): Likewise.
- * emit-rtl.h (struct incoming_args): Likewise.
- (struct rtl_data): Likewise.
- * expr.cc (get_bit_range): Likewise.
- (get_inner_reference): Likewise.
- * expr.h (get_bit_range): Likewise.
- * fold-const.cc (split_address_to_core_and_offset): Likewise.
- (ptr_difference_const): Likewise.
- * fold-const.h (ptr_difference_const): Likewise.
- * function.cc (try_fit_stack_local): Likewise.
- (instantiate_new_reg): Likewise.
- * function.h (struct expr_status): Likewise.
- (struct args_size): Likewise.
- * genmodes.cc (ZERO_COEFFS): Likewise.
- (mode_size_inline): Likewise.
- (mode_nunits_inline): Likewise.
- (emit_mode_precision): Likewise.
- (emit_mode_size): Likewise.
- (emit_mode_nunits): Likewise.
- * gimple-fold.cc (get_base_constructor): Likewise.
- * gimple-ssa-store-merging.cc (struct symbolic_number): Likewise.
- * inchash.h (class hash): Likewise.
- * ipa-modref-tree.cc (modref_access_node::dump): Likewise.
- * ipa-modref.cc (modref_access_analysis::merge_call_side_effects):
- Likewise.
- * ira-int.h (ira_spilled_reg_stack_slot): Likewise.
- * lra-eliminations.cc (self_elim_offsets): Likewise.
- * machmode.h (mode_size, mode_precision, mode_nunits): Likewise.
- * omp-low.cc (omplow_simd_context): Likewise.
- * pretty-print.cc (pp_wide_integer): Likewise.
- * pretty-print.h (pp_wide_integer): Likewise.
- * reload.cc (struct decomposition): Likewise.
- * reload.h (struct reload): Likewise.
- * reload1.cc (spill_stack_slot_width): Likewise.
- (struct elim_table): Likewise.
- (offsets_at): Likewise.
- (init_eliminable_invariants): Likewise.
- * rtl.h (union rtunion): Likewise.
- (poly_int_rtx_p): Likewise.
- (strip_offset): Likewise.
- (strip_offset_and_add): Likewise.
- * rtlanal.cc (strip_offset): Likewise.
- * tree-dfa.cc (get_ref_base_and_extent): Likewise.
- (get_addr_base_and_unit_offset_1): Likewise.
- (get_addr_base_and_unit_offset): Likewise.
- * tree-dfa.h (get_ref_base_and_extent): Likewise.
- (get_addr_base_and_unit_offset_1): Likewise.
- (get_addr_base_and_unit_offset): Likewise.
- * tree-ssa-loop-ivopts.cc (struct iv_use): Likewise.
- (strip_offset): Likewise.
- * tree-ssa-sccvn.h (struct vn_reference_op_struct): Likewise.
- * tree.cc (ptrdiff_tree_p): Likewise.
- * tree.h (poly_int_tree_p): Likewise.
- (ptrdiff_tree_p): Likewise.
- (get_inner_reference): Likewise.
-
-2023-09-29 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.md (memory_barrier): Revise comment.
- (memory_barrier_64, memory_barrier_32): Use ldcw,co on PA 2.0.
- * config/pa/pa.opt (coherent-ldcw): Change default to disabled.
-
-2023-09-29 Jakub Jelinek <jakub@redhat.com>
-
- * vec.h (quick_insert, ordered_remove, unordered_remove,
- block_remove, qsort, sort, stablesort, quick_grow): Guard
- std::is_trivially_{copyable,default_constructible} and
- vec_detail::is_trivially_copyable_or_pair static assertions
- with GCC_VERSION >= 5000.
- (vec_detail::is_trivially_copyable_or_pair): Guard definition
- with GCC_VERSION >= 5000.
-
-2023-09-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
-
- * config/aarch64/aarch64-opts.h (enum aarch64_ldp_policy): Removed.
- (enum aarch64_ldp_stp_policy): Merged enums aarch64_ldp_policy
- and aarch64_stp_policy to aarch64_ldp_stp_policy.
- (enum aarch64_stp_policy): Removed.
- * config/aarch64/aarch64-protos.h (struct tune_params): Removed
- aarch64_ldp_policy_model and aarch64_stp_policy_model enum types
- and left only the definitions to the aarch64-opts one.
- * config/aarch64/aarch64.cc (aarch64_parse_ldp_policy): Removed.
- (aarch64_parse_stp_policy): Removed.
- (aarch64_override_options_internal): Removed calls to parsing
- functions and added obvious direct assignments.
- (aarch64_mem_ok_with_ldpstp_policy_model): Improved
- code quality based on the new changes.
- * config/aarch64/aarch64.opt: Use single enum type
- aarch64_ldp_stp_policy for both ldp and stp options.
-
-2023-09-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111583
- * tree-loop-distribution.cc (find_single_drs): Ensure the
- load/store are always executed.
-
-2023-09-29 Jakub Jelinek <jakub@redhat.com>
-
- * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Use
- quick_grow_cleared method on unprom rather than quick_grow.
-
-2023-09-29 Sergei Trofimovich <siarheit@google.com>
-
- PR middle-end/111505
- * ggc-common.cc (ggc_zero_out_root_pointers, ggc_common_finalize):
- Add new helper. Use helper instead of memset() to wipe out pointers.
-
-2023-09-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * builtins.h (c_readstr): Take a fixed_size_mode rather than a
- scalar_int_mode.
- * builtins.cc (c_readstr): Likewise. Build a local array of
- bytes and use native_decode_rtx to get the rtx image.
- (builtin_memcpy_read_str): Simplify accordingly.
- (builtin_strncpy_read_str): Likewise.
- (builtin_memset_read_str): Likewise.
- (builtin_memset_gen_str): Likewise.
- * expr.cc (string_cst_read_str): Likewise.
-
-2023-09-29 Jakub Jelinek <jakub@redhat.com>
-
- * tree-ssa-loop-im.cc (tree_ssa_lim_initialize): Use quick_grow_cleared
- instead of quick_grow on vec<bitmap_head> members.
- * cfganal.cc (control_dependences::control_dependences): Likewise.
- * rtl-ssa/blocks.cc (function_info::build_info::build_info): Likewise.
- (function_info::place_phis): Use safe_grow_cleared instead of safe_grow
- on auto_vec<bitmap_head> vars.
- * tree-ssa-live.cc (compute_live_vars): Use quick_grow_cleared instead
- of quick_grow on vec<bitmap_head> var.
-
-2023-09-28 Vladimir N. Makarov <vmakarov@redhat.com>
-
- Revert:
- 2023-09-14 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira-costs.cc (find_costs_and_classes): Decrease memory cost
- by equiv savings.
-
-2023-09-28 Wilco Dijkstra <wilco.dijkstra@arm.com>
-
- PR target/111121
- * config/aarch64/aarch64.md (aarch64_movmemdi): Add new expander.
- (movmemdi): Call aarch64_expand_cpymem_mops for correct expansion.
- * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Add support
- for memmove.
- * config/aarch64/aarch64-protos.h (aarch64_expand_cpymem_mops): Add new
- function.
-
-2023-09-28 Pan Li <pan2.li@intel.com>
-
- PR target/111506
- * config/riscv/autovec.md (<float_cvt><mode><vnnconvert>2):
- New pattern.
- * config/riscv/vector-iterators.md: New iterator.
-
-2023-09-28 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * rtl.h (lra_in_progress): Change type to bool.
- (ira_in_progress): Add new extern.
- * ira.cc (ira_in_progress): New global.
- (pass_ira::execute): Set up ira_in_progress.
- * lra.cc: (lra_in_progress): Change type to bool and initialize.
- (lra): Use bool values for lra_in_progress.
- * lra-eliminations.cc (init_elim_table): Ditto.
-
-2023-09-28 Richard Biener <rguenther@suse.de>
-
- PR target/111600
- * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
- Use a heap allocated worklist for CFG traversal instead of
- recursion.
-
-2023-09-28 Jakub Jelinek <jakub@redhat.com>
- Jonathan Wakely <jwakely@redhat.com>
-
- * vec.h: Mention in file comment limited support for non-POD types
- in some operations.
- (vec_destruct): New function template.
- (release): Use it for non-trivially destructible T.
- (truncate): Likewise.
- (quick_push): Perform a placement new into slot
- instead of assignment.
- (pop): For non-trivially destructible T return void
- rather than T & and destruct the popped element.
- (quick_insert, ordered_remove): Note that they aren't suitable
- for non-trivially copyable types. Add static_asserts for that.
- (block_remove): Assert T is trivially copyable.
- (vec_detail::is_trivially_copyable_or_pair): New trait.
- (qsort, sort, stablesort): Assert T is trivially copyable or
- std::pair with both trivally copyable types.
- (quick_grow): Add assert T is trivially default constructible,
- for now commented out.
- (quick_grow_cleared): Don't call quick_grow, instead inline it
- by hand except for the new static_assert.
- (gt_ggc_mx): Assert T is trivially destructable.
- (auto_vec::operator=): Formatting fixes.
- (auto_vec::auto_vec): Likewise.
- (vec_safe_grow_cleared): Don't call vec_safe_grow, instead inline
- it manually and call quick_grow_cleared method rather than quick_grow.
- (safe_grow_cleared): Likewise.
- * edit-context.cc (class line_event): Move definition earlier.
- * tree-ssa-loop-im.cc (seq_entry::seq_entry): Make default ctor
- defaulted.
- * ipa-fnsummary.cc (evaluate_properties_for_edge): Use
- safe_grow_cleared instead of safe_grow followed by placement new
- constructing the elements.
-
-2023-09-28 Richard Sandiford <richard.sandiford@arm.com>
-
- * dwarf2out.cc (mem_loc_descriptor): Remove unused variables.
- * tree-affine.cc (expr_to_aff_combination): Likewise.
-
-2023-09-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111614
- * tree-ssa-reassoc.cc (undistribute_bitref_for_vector): Properly
- convert the first vector when required.
-
-2023-09-28 xuli <xuli1@eswincomputing.com>
-
- PR target/111533
- * config/riscv/riscv-v.cc (expand_const_vector): Fix bug.
- * config/riscv/riscv-vsetvl.cc (anticipatable_occurrence_p): Fix bug.
-
-2023-09-27 Sandra Loosemore <sandra@codesourcery.com>
-
- * gimple.cc (gimple_copy): Add case GIMPLE_OMP_STRUCTURED_BLOCK.
-
-2023-09-27 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/111610
- * configure: Regenerate.
- * configure.ac: Rename the missing dsymutil case to "DET_UNKNOWN".
-
-2023-09-27 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
- Philipp Tomsich <philipp.tomsich@vrull.eu>
- Manolis Tsamis <manolis.tsamis@vrull.eu>
-
- * config/aarch64/aarch64-opts.h (enum aarch64_ldp_policy): New
- enum type.
- (enum aarch64_stp_policy): New enum type.
- * config/aarch64/aarch64-protos.h (struct tune_params): Add
- appropriate enums for the policies.
- (aarch64_mem_ok_with_ldpstp_policy_model): New declaration.
- * config/aarch64/aarch64-tuning-flags.def
- (AARCH64_EXTRA_TUNING_OPTION): Remove superseded tuning
- options.
- * config/aarch64/aarch64.cc (aarch64_parse_ldp_policy): New
- function to parse ldp-policy parameter.
- (aarch64_parse_stp_policy): New function to parse stp-policy parameter.
- (aarch64_override_options_internal): Call parsing functions.
- (aarch64_mem_ok_with_ldpstp_policy_model): New function.
- (aarch64_operands_ok_for_ldpstp): Add call to
- aarch64_mem_ok_with_ldpstp_policy_model for parameter-value
- check and alignment check and remove superseded ones.
- (aarch64_operands_adjust_ok_for_ldpstp): Add call to
- aarch64_mem_ok_with_ldpstp_policy_model for parameter-value
- check and alignment check and remove superseded ones.
- * config/aarch64/aarch64.opt (aarch64-ldp-policy): New param.
- (aarch64-stp-policy): New param.
- * doc/invoke.texi: Document the parameters accordingly.
-
-2023-09-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- * tree-data-ref.cc (include calls.h): Add new include.
- (get_references_in_stmt): Correctly handle IFN_MASK_CALL.
-
-2023-09-27 Richard Biener <rguenther@suse.de>
-
- * match.pd (abs (copysign (x, y)) -> abs (x)): New pattern.
-
-2023-09-27 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/105606
- * system.h (BROKEN_VALUE_INITIALIZATION): Don't define.
- * vec.h (vec_default_construct): Remove BROKEN_VALUE_INITIALIZATION
- workaround.
- * function.cc (assign_parm_find_data_types): Likewise.
-
-2023-09-27 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (roundeven<mode>2): New pattern.
- * config/riscv/riscv-protos.h (enum insn_flags): New enum type.
- (enum insn_type): Ditto.
- (expand_vec_roundeven): New func decl.
- * config/riscv/riscv-v.cc (expand_vec_roundeven): New func impl.
-
-2023-09-27 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111590
- * dse.cc (find_shift_sequence): Check the mode with access_size exist on the target.
-
-2023-09-27 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-if-conv.cc (is_cond_scalar_reduction): Fix comments.
-
-2023-09-27 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (btrunc<mode>2): New pattern.
- * config/riscv/riscv-protos.h (expand_vec_trunc): New func decl.
- * config/riscv/riscv-v.cc (emit_vec_cvt_x_f_rtz): New func impl.
- (expand_vec_trunc): Ditto.
-
-2023-09-26 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/107567
- PR target/109166
- * builtins.cc (expand_builtin) <case BUILT_IN_ATOMIC_TEST_AND_SET>:
- Handle failure from expand_builtin_atomic_test_and_set.
- * optabs.cc (expand_atomic_test_and_set): When all attempts fail to
- generate atomic code through target support, return NULL
- instead of emitting non-atomic code. Also, for code handling
- targetm.atomic_test_and_set_trueval != 1, gcc_assert result
- from calling emit_store_flag_force instead of returning NULL.
-
-2023-09-26 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/111599
- * value-relation.cc (relation_oracle::valid_equivs): Ensure
- ssa_name is valid.
-
-2023-09-26 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/106164
- PR tree-optimization/111456
- * match.pd (`(A ==/!= B) & (A CMP C)`):
- Support an optional cast on the second A.
- (`(A ==/!= B) | (A CMP C)`): Likewise.
-
-2023-09-26 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111469
- * tree-ssa-phiopt.cc (minmax_replacement): Fix
- the assumption for the `non-diamond` handling cases
- of diamond code.
-
-2023-09-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * match.pd: Optimize COND_ADD reduction pattern.
-
-2023-09-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR tree-optimization/111594
- PR tree-optimization/110660
- * match.pd: Optimize COND_LEN_ADD reduction.
-
-2023-09-26 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (round<mode>2): New pattern.
- * config/riscv/riscv-protos.h (enum insn_flags): New enum type.
- (enum insn_type): Ditto.
- (expand_vec_round): New function decl.
- * config/riscv/riscv-v.cc (expand_vec_round): New function impl.
-
-2023-09-26 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.h (DARWIN_CC1_SPEC): Remove -dynamiclib.
-
-2023-09-26 Tobias Burnus <tobias@codesourcery.com>
-
- PR middle-end/111547
- * doc/invoke.texi (-fopenmp): Mention C++11 [[omp::decl(...)]] syntax.
- (-fopenmp-simd): Likewise. Clarify 'loop' directive semantic.
-
-2023-09-26 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (rint<mode>2): New pattern.
- * config/riscv/riscv-protos.h (expand_vec_rint): New function decl.
- * config/riscv/riscv-v.cc (expand_vec_rint): New function impl.
-
-2023-09-26 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (nearbyint<mode>2): New pattern.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (expand_vec_nearbyint): New function decl.
- * config/riscv/riscv-v.cc (expand_vec_nearbyint): New func impl.
-
-2023-09-26 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (gen_ceil_const_fp): Remove.
- (get_fp_rounding_coefficient): Rename.
- (gen_floor_const_fp): Remove.
- (expand_vec_ceil): Take renamed func.
- (expand_vec_floor): Ditto.
-
-2023-09-25 Vladimir N. Makarov <vmakarov@redhat.com>
-
- PR middle-end/111497
- * lra-constraints.cc (lra_constraints): Copy substituted
- equivalence.
- * lra.cc (lra): Change comment for calling unshare_all_rtl_again.
-
-2023-09-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * gimple-range-gori.cc (gori_compute::logical_combine): Add missing
- return statement in the varying case.
-
-2023-09-25 Xi Ruoyao <xry111@xry111.site>
-
- * doc/invoke.texi: Update -m[no-]explicit-relocs for r14-4160.
-
-2023-09-25 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110386
- * gimple-ssa-backprop.cc (strip_sign_op_1): Remove ABSU_EXPR.
-
-2023-09-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111548
- * config/riscv/riscv-vsetvl.cc (earliest_pred_can_be_fused_p): Bugfix
-
-2023-09-25 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/111366
- * config/rs6000/rs6000.cc (rs6000_update_ipa_fn_target_info): Skip
- empty inline asm.
-
-2023-09-25 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/111380
- * config/rs6000/rs6000.cc (rs6000_can_inline_p): Adopt
- target_option_default_node when the callee has no option
- attributes, also simplify the existing code accordingly.
-
-2023-09-25 Guo Jie <guojie@loongson.cn>
-
- * config/loongarch/lasx.md (lasx_vecinit_merge_<LASX:mode>): New
- pattern for vector construction.
- (vec_set<mode>_internal): Ditto.
- (lasx_xvinsgr2vr_<mode256_i_half>_internal): Ditto.
- (lasx_xvilvl_<lasxfmt_f>_internal): Ditto.
- * config/loongarch/loongarch.cc (loongarch_expand_vector_init):
- Optimized the implementation of vector construction.
- (loongarch_expand_vector_init_same): New function.
- * config/loongarch/lsx.md (lsx_vilvl_<lsxfmt_f>_internal): New
- pattern for vector construction.
- (lsx_vreplvei_mirror_<lsxfmt_f>): New pattern for vector
- construction.
- (vec_concatv2df): Ditto.
- (vec_concatv4sf): Ditto.
-
-2023-09-24 Pan Li <pan2.li@intel.com>
-
- PR target/111546
- * config/riscv/riscv-v.cc
- (expand_vector_init_merge_repeating_sequence): Bugfix
-
-2023-09-24 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111543
- * match.pd (`(X & ~Y) & Y`, `(X | ~Y) | Y`): New patterns.
-
-2023-09-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md: Extend VLS modes
- * config/riscv/vector-iterators.md: Ditto.
-
-2023-09-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md: Add VLS modes for conditional ABS/SQRT.
-
-2023-09-23 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (floor<mode>2): New pattern.
- * config/riscv/riscv-protos.h (enum insn_flags): New enum type.
- (enum insn_type): Ditto.
- (expand_vec_floor): New function decl.
- * config/riscv/riscv-v.cc (gen_floor_const_fp): New function impl.
- (expand_vec_floor): Ditto.
-
-2023-09-22 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (expand_vec_float_cmp_mask): Refactor.
- (emit_vec_float_cmp_mask): Rename.
- (expand_vec_copysign): Ditto.
- (emit_vec_copysign): Ditto.
- (emit_vec_abs): New function impl.
- (emit_vec_cvt_x_f): Ditto.
- (emit_vec_cvt_f_x): Ditto.
- (expand_vec_ceil): Ditto.
-
-2023-09-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Extend VLS modes.
-
-2023-09-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (gen_const_vector_dup): Use global expand function.
- * config/riscv/vector.md (@vec_duplicate<mode>): Remove @.
- (vec_duplicate<mode>): Ditto.
-
-2023-09-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Add VLS conditional patterns.
- * config/riscv/riscv-protos.h (expand_cond_unop): Ditto.
- (expand_cond_binop): Ditto.
- (expand_cond_ternop): Ditto.
- * config/riscv/riscv-v.cc (expand_cond_unop): Ditto.
- (expand_cond_binop): Ditto.
- (expand_cond_ternop): Ditto.
-
-2023-09-22 xuli <xuli1@eswincomputing.com>
-
- PR target/111451
- * config/riscv/riscv-v.cc (emit_vlmax_gather_insn): Optimization of vrgather.vv
- into vrgatherei16.vv.
-
-2023-09-22 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_widen_reduc_plus_scal_<mode>):
- New combine patterns.
- * config/riscv/riscv-protos.h (enum insn_type): New insn_type.
-
-2023-09-22 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum avl_type): New VLS avl_type.
- * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Move comments.
-
-2023-09-22 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md (ceil<mode>2): New pattern.
- * config/riscv/riscv-protos.h (enum insn_flags): New enum type.
- (enum insn_type): Ditto.
- (expand_vec_ceil): New function decl.
- * config/riscv/riscv-v.cc (gen_ceil_const_fp): New function impl.
- (expand_vec_float_cmp_mask): Ditto.
- (expand_vec_copysign): Ditto.
- (expand_vec_ceil): Ditto.
- * config/riscv/vector.md: Add VLS mode support.
-
-2023-09-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Extend VLS modes.
-
-2023-09-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Extend VLS modes.
-
-2023-09-21 Lehua Ding <lehua.ding@rivai.ai>
- Robin Dapp <rdapp.gcc@gmail.com>
-
- * config/riscv/riscv-v.cc (emit_vlmax_insn): Adjust comments.
- (emit_nonvlmax_insn): Adjust comments.
- (emit_vlmax_insn_lra): Adjust comments.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*linux*): Set rust target_objs, and
- target_has_targetrustm,
- * config/t-linux (linux-rust.o): New rule.
- * config/linux-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
- rust_target_objs and target_has_targetrustm.
- * config/t-winnt (winnt-rust.o): New rule.
- * config/winnt-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-fuchsia): Set tmake_rule, rust_target_objs,
- and target_has_targetrustm.
- * config/fuchsia-rust.cc: New file.
- * config/t-fuchsia: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-vxworks*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-vxworks (vxworks-rust.o): New rule.
- * config/vxworks-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-dragonfly*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-dragonfly (dragonfly-rust.o): New rule.
- * config/dragonfly-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-solaris2*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-sol2 (sol2-rust.o): New rule.
- * config/sol2-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-openbsd*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-openbsd (openbsd-rust.o): New rule.
- * config/openbsd-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-netbsd*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-netbsd (netbsd-rust.o): New rule.
- * config/netbsd-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-freebsd*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-freebsd (freebsd-rust.o): New rule.
- * config/freebsd-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config.gcc (*-*-darwin*): Set rust_target_objs and
- target_has_targetrustm.
- * config/t-darwin (darwin-rust.o): New rule.
- * config/darwin-rust.cc: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * config/i386/t-i386 (i386-rust.o): New rule.
- * config/i386/i386-rust.cc: New file.
- * config/i386/i386-rust.h: New file.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * doc/tm.texi: Regenerate.
- * doc/tm.texi.in: Document TARGET_RUST_OS_INFO.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * doc/tm.texi: Regenerate.
- * doc/tm.texi.in: Add @node for Rust language and ABI, and document
- TARGET_RUST_CPU_INFO.
-
-2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
-
- * Makefile.in (tm_rust_file_list, tm_rust_include_list, TM_RUST_H,
- RUST_TARGET_DEF, RUST_TARGET_H, RUST_TARGET_OBJS): New variables.
- (tm_rust.h, cs-tm_rust.h, default-rust.o,
- rust/rust-target-hooks-def.h, s-rust-target-hooks-def-h): New rules.
- (s-tm-texi): Also check timestamp on rust-target.def.
- (generated_files): Add TM_RUST_H and rust-target-hooks-def.h.
- (build/genhooks.o): Also depend on RUST_TARGET_DEF.
- * config.gcc (tm_rust_file, rust_target_objs, target_has_targetrustm):
- New variables.
- * configure: Regenerate.
- * configure.ac (tm_rust_file_list, tm_rust_include_list,
- rust_target_objs): Add substitutes.
- * doc/tm.texi: Regenerate.
- * doc/tm.texi.in (targetrustm): Document.
- (target_has_targetrustm): Document.
- * genhooks.cc: Include rust/rust-target.def.
- * config/default-rust.cc: New file.
-
-2023-09-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110751
- * config/riscv/autovec.md: Enable scratch rtx in ELSE operand.
- * config/riscv/predicates.md (autovec_else_operand): New predicate.
- * config/riscv/riscv-v.cc (get_else_operand): New function.
- (expand_cond_len_unop): Adapt ELSE value.
- (expand_cond_len_binop): Ditto.
- (expand_cond_len_ternop): Ditto.
- * config/riscv/riscv.cc (riscv_preferred_else_value): New function.
- (TARGET_PREFERRED_ELSE_VALUE): New targethook.
-
-2023-09-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111486
- * config/riscv/riscv.cc (riscv_legitimize_move): Fix bug.
-
-2023-09-21 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR tree-optimization/111355
- * match.pd ((X + C) / N): Update pattern.
-
-2023-09-21 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * match.pd ((t * 2) / 2): Update to use overflow_free_p.
-
-2023-09-21 xuli <xuli1@eswincomputing.com>
-
- PR target/111450
- * config/riscv/constraints.md (c01): const_int 1.
- (c02): const_int 2.
- (c04): const_int 4.
- (c08): const_int 8.
- * config/riscv/predicates.md (vector_eew8_stride_operand): New predicate for stride operand.
- (vector_eew16_stride_operand): Ditto.
- (vector_eew32_stride_operand): Ditto.
- (vector_eew64_stride_operand): Ditto.
- * config/riscv/vector-iterators.md: New iterator for stride operand.
- * config/riscv/vector.md: Add stride = element width constraint.
-
-2023-09-21 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/predicates.md (const_1_or_2_operand): Rename.
- (const_1_or_4_operand): Ditto.
- (vector_gs_scale_operand_16): Ditto.
- (vector_gs_scale_operand_32): Ditto.
- * config/riscv/vector-iterators.md: Adjust.
-
-2023-09-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Extend VLS modes.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-09-20 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-cache.cc (ssa_cache::merge_range): Change meaning
- of the return value.
- (ssa_cache::dump): Don't print GLOBAL RANGE header.
- (ssa_lazy_cache::merge_range): Adjust return value meaning.
- (ranger_cache::dump): Print GLOBAL RANGE header.
-
-2023-09-20 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (foperator_unordered_ge::fold_range): Remove
- special casing.
- (foperator_unordered_gt::fold_range): Same.
- (foperator_unordered_lt::fold_range): Same.
- (foperator_unordered_le::fold_range): Same.
-
-2023-09-20 Jakub Jelinek <jakub@redhat.com>
-
- * builtins.h (type_to_class): Declare.
- * builtins.cc (type_to_class): No longer static. Return
- int rather than enum.
- * doc/extend.texi (__builtin_classify_type): Document.
-
-2023-09-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110751
- * internal-fn.cc (expand_fn_using_insn): Support undefined rtx value.
- * optabs.cc (maybe_legitimize_operand): Ditto.
- (can_reuse_operands_p): Ditto.
- * optabs.h (enum expand_operand_type): Ditto.
- (create_undefined_input_operand): Ditto.
-
-2023-09-20 Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.cc (gimplify_bind_expr): Call GOMP_alloc/free for
- 'omp allocate' variables; move stack cleanup after other
- cleanup.
- (omp_notice_variable): Process original decl when decl
- of the value-expression for a 'omp allocate' variable is passed.
- * omp-low.cc (scan_omp_1_op): Handle 'omp allocate' variables
-
-2023-09-20 Yanzhang Wang <yanzhang.wang@intel.com>
-
- * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
- support simplifying vector int not only scalar int.
-
-2023-09-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Extend VLS floating-point.
-
-2023-09-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Fix bug.
-
-2023-09-20 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.h:
- (SUBTARGET_DRIVER_SELF_SPECS): Move handling of 'shared' into the same
- specs as 'dynamiclib'. (STARTFILE_SPEC): Handle 'shared'.
-
-2023-09-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111489
- * params.opt (-param uninit-max-chain-len=): Raise default to 8.
-
-2023-09-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111489
- * doc/invoke.texi (--param uninit-max-chain-len): Document.
- (--param uninit-max-num-chains): Likewise.
- * params.opt (-param=uninit-max-chain-len=): New.
- (-param=uninit-max-num-chains=): Likewise.
- * gimple-predicate-analysis.cc (MAX_NUM_CHAINS): Define to
- param_uninit_max_num_chains.
- (MAX_CHAIN_LEN): Define to param_uninit_max_chain_len.
- (uninit_analysis::init_use_preds): Avoid VLA.
- (uninit_analysis::init_from_phi_def): Likewise.
- (compute_control_dep_chain): Avoid using MAX_CHAIN_LEN in
- template parameter.
-
-2023-09-20 Jakub Jelinek <jakub@redhat.com>
-
- * match.pd ((x << c) >> c): Use MAX_FIXED_MODE_SIZE instead of
- GET_MODE_PRECISION of TImode or DImode depending on whether
- TImode is supported scalar mode.
- * gimple-lower-bitint.cc (bitint_precision_kind): Likewise.
- * expr.cc (expand_expr_real_1): Likewise.
- * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
- * ubsan.cc (ubsan_encode_value, ubsan_type_descriptor): Likewise.
-
-2023-09-20 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*<optab>not<mode>): Move and rename.
- (*n<optab><mode>): Ditto.
- (*v<any_shiftrt:optab><any_extend:optab>trunc<mode>): Ditto.
- (*<any_shiftrt:optab>trunc<mode>): Ditto.
- (*narrow_<any_shiftrt:optab><any_extend:optab><mode>): Ditto.
- (*narrow_<any_shiftrt:optab><mode>_scalar): Ditto.
- (*single_widen_mult<any_extend:su><mode>): Ditto.
- (*single_widen_mul<any_extend:su><mode>): Ditto.
- (*single_widen_mult<mode>): Ditto.
- (*single_widen_mul<mode>): Ditto.
- (*dual_widen_fma<mode>): Ditto.
- (*dual_widen_fma<su><mode>): Ditto.
- (*single_widen_fma<mode>): Ditto.
- (*single_widen_fma<su><mode>): Ditto.
- (*dual_fma<mode>): Ditto.
- (*single_fma<mode>): Ditto.
- (*dual_fnma<mode>): Ditto.
- (*dual_widen_fnma<mode>): Ditto.
- (*single_fnma<mode>): Ditto.
- (*single_widen_fnma<mode>): Ditto.
- (*dual_fms<mode>): Ditto.
- (*dual_widen_fms<mode>): Ditto.
- (*single_fms<mode>): Ditto.
- (*single_widen_fms<mode>): Ditto.
- (*dual_fnms<mode>): Ditto.
- (*dual_widen_fnms<mode>): Ditto.
- (*single_fnms<mode>): Ditto.
- (*single_widen_fnms<mode>): Ditto.
-
-2023-09-20 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/111392
- * attribs.cc (decl_attributes): Don't warn on omp::directive attribute
- on vars or function decls if -fopenmp or -fopenmp-simd.
-
-2023-09-20 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/111488
- * config/riscv/autovec-opt.md: Add missed operand.
-
-2023-09-20 Omar Sandoval <osandov@osandov.com>
-
- PR debug/111409
- * dwarf2out.cc (output_macinfo): Don't call optimize_macinfo_range if
- dwarf_split_debug_info.
-
-2023-09-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (can_find_related_mode_p): New function.
- (vectorize_related_mode): Add VLS related modes.
- * config/riscv/vector-iterators.md: Extend VLS modes.
-
-2023-09-20 Surya Kumari Jangala <jskumari@linux.ibm.com>
-
- PR rtl-optimization/110071
- * ira-color.cc (improve_allocation): Consider cost of callee
- save registers.
-
-2023-09-20 mengqinggang <mengqinggang@loongson.cn>
- Xi Ruoyao <xry111@xry111.site>
-
- * configure: Regenerate.
- * configure.ac: Checking assembler for -mno-relax support.
- Disable relaxation when probing leb128 support.
-
-2023-09-20 Lulu Cheng <chenglulu@loongson.cn>
-
- * config.in: Regenerate.
- * config/loongarch/genopts/loongarch.opt.in: Add compilation option
- mrelax. And set the initial value of explicit-relocs according to the
- detection status.
- * config/loongarch/gnu-user.h: When compiling with -mno-relax, pass the
- --no-relax option to the linker.
- * config/loongarch/loongarch-driver.h (ASM_SPEC): When compiling with
- -mno-relax, pass the -mno-relax option to the assembler.
- * config/loongarch/loongarch-opts.h (HAVE_AS_MRELAX_OPTION): Define macro.
- * config/loongarch/loongarch.opt: Regenerate.
- * configure: Regenerate.
- * configure.ac: Add detection of support for binutils relax function.
-
-2023-09-19 Ben Boeckel <ben.boeckel@kitware.com>
-
- * doc/invoke.texi: Document -fdeps-format=, -fdeps-file=, and
- -fdeps-target= flags.
- * gcc.cc: add defaults for -fdeps-target= and -fdeps-file= when
- only -fdeps-format= is specified.
- * json.h: Add a TODO item to refactor out to share with
- `libcpp/mkdeps.cc`.
-
-2023-09-19 Ben Boeckel <ben.boeckel@kitware.com>
- Jason Merrill <jason@redhat.com>
-
- * gcc.cc (join_spec_func): Add a spec function to join all
- arguments.
-
-2023-09-19 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_legitimize_const_move): Eliminate
- src_op_0 var to avoid rtl check error.
-
-2023-09-19 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (frelop_early_resolve): Clean-up and remove
- special casing.
- (operator_not_equal::fold_range): Handle VREL_EQ.
- (operator_lt::fold_range): Remove special casing for VREL_EQ.
- (operator_gt::fold_range): Same.
- (foperator_unordered_equal::fold_range): Same.
-
-2023-09-19 Javier Martinez <javier.martinez.bugzilla@gmail.com>
-
- * doc/extend.texi: Document attributes hot, cold on C++ types.
-
-2023-09-19 Pat Haugen <pthaugen@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (rs6000_rtx_costs): Check whether the
- modulo instruction is disabled.
- * config/rs6000/rs6000.h (RS6000_DISABLE_SCALAR_MODULO): New.
- * config/rs6000/rs6000.md (mod<mode>3, *mod<mode>3): Check it.
- (define_expand umod<mode>3): New.
- (define_insn umod<mode>3): Rename to *umod<mode>3 and check if the modulo
- instruction is disabled.
- (umodti3, modti3): Check if the modulo instruction is disabled.
-
-2023-09-19 Gaius Mulley <gaiusmod2@gmail.com>
-
- * doc/gm2.texi (fdebug-builtins): Correct description.
-
-2023-09-19 Jeff Law <jlaw@ventanamicro.com>
-
- * config/iq2000/predicates.md (uns_arith_constant): New predicate.
- * config/iq2000/iq2000.md (rotrsi3): Use it.
-
-2023-09-19 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (operator_lt::op1_range): Remove known_isnan check.
- (operator_lt::op2_range): Same.
- (operator_le::op1_range): Same.
- (operator_le::op2_range): Same.
- (operator_gt::op1_range): Same.
- (operator_gt::op2_range): Same.
- (operator_ge::op1_range): Same.
- (operator_ge::op2_range): Same.
- (foperator_unordered_lt::op1_range): Same.
- (foperator_unordered_lt::op2_range): Same.
- (foperator_unordered_le::op1_range): Same.
- (foperator_unordered_le::op2_range): Same.
- (foperator_unordered_gt::op1_range): Same.
- (foperator_unordered_gt::op2_range): Same.
- (foperator_unordered_ge::op1_range): Same.
- (foperator_unordered_ge::op2_range): Same.
-
-2023-09-19 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (frange::update_nan): New.
-
-2023-09-19 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (operator_not_equal::op2_range): New.
- * range-op-mixed.h: Add operator_not_equal::op2_range.
-
-2023-09-19 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/110080
- PR tree-optimization/110249
- * tree-vrp.cc (remove_unreachable::final_p): New.
- (remove_unreachable::maybe_register): Rename from
- maybe_register_block and call early or final routine.
- (fully_replaceable): New.
- (remove_unreachable::handle_early): New.
- (remove_unreachable::remove_and_update_globals): Remove
- non-final processing.
- (rvrp_folder::rvrp_folder): Add final flag to constructor.
- (rvrp_folder::post_fold_bb): Remove unreachable registration.
- (rvrp_folder::pre_fold_stmt): Move unreachable processing to here.
- (execute_ranger_vrp): Adjust some call parameters.
-
-2023-09-19 Richard Biener <rguenther@suse.de>
-
- PR c/111468
- * tree-pretty-print.h (op_symbol_code): Add defaulted flags
- argument.
- * tree-pretty-print.cc (op_symbol): Likewise.
- (op_symbol_code): Print TDF_GIMPLE variant if requested.
- * gimple-pretty-print.cc (dump_binary_rhs): Pass flags to
- op_symbol_code.
- (dump_gimple_cond): Likewise.
-
-2023-09-19 Thomas Schwinge <thomas@codesourcery.com>
- Pan Li <pan2.li@intel.com>
-
- * tree-streamer.h (bp_unpack_machine_mode): If
- 'ib->file_data->mode_table' not available, apply 1-to-1 mapping.
-
-2023-09-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_can_change_mode_class): Block unordered VLA and VLS modes.
-
-2023-09-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Extend VLS modes.
- * config/riscv/vector.md: Ditto.
-
-2023-09-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111465
- * tree-ssa-threadupdate.cc (fwd_jt_path_registry::thread_block_1):
- Cancel the path when a EDGE_NO_COPY_SRC_BLOCK became non-empty.
-
-2023-09-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Extend VLS floating-point modes.
- * config/riscv/vector.md: Ditto.
-
-2023-09-19 Jakub Jelinek <jakub@redhat.com>
-
- * match.pd ((x << c) >> c): Don't call build_nonstandard_integer_type
- nor check type_has_mode_precision_p for width larger than [TD]Imode
- precision.
- (a ? CST1 : CST2): Don't use build_nonstandard_type, just convert
- to type. Use boolean_true_node instead of
- constant_boolean_node (true, boolean_type_node). Formatting fixes.
-
-2023-09-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Add VLS modes.
- * config/riscv/vector.md: Ditto.
-
-2023-09-19 Jakub Jelinek <jakub@redhat.com>
-
- * tree.cc (build_bitint_type): Assert precision is not 0, or
- for signed types 1.
- (signed_or_unsigned_type_for): Return INTEGER_TYPE for signed variant
- of unsigned _BitInt(1).
-
-2023-09-19 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*<optab>_fma<mode>):
- Removed old combine patterns.
- (*single_<optab>mult_plus<mode>): Ditto.
- (*double_<optab>mult_plus<mode>): Ditto.
- (*sign_zero_extend_fma): Ditto.
- (*zero_sign_extend_fma): Ditto.
- (*double_widen_fma<mode>): Ditto.
- (*single_widen_fma<mode>): Ditto.
- (*double_widen_fnma<mode>): Ditto.
- (*single_widen_fnma<mode>): Ditto.
- (*double_widen_fms<mode>): Ditto.
- (*single_widen_fms<mode>): Ditto.
- (*double_widen_fnms<mode>): Ditto.
- (*single_widen_fnms<mode>): Ditto.
- (*reduc_plus_scal_<mode>): Adjust name.
- (*widen_reduc_plus_scal_<mode>): Adjust name.
- (*dual_widen_fma<mode>): New combine pattern.
- (*dual_widen_fmasu<mode>): Ditto.
- (*dual_widen_fmaus<mode>): Ditto.
- (*dual_fma<mode>): Ditto.
- (*single_fma<mode>): Ditto.
- (*dual_fnma<mode>): Ditto.
- (*single_fnma<mode>): Ditto.
- (*dual_fms<mode>): Ditto.
- (*single_fms<mode>): Ditto.
- (*dual_fnms<mode>): Ditto.
- (*single_fnms<mode>): Ditto.
- * config/riscv/autovec.md (fma<mode>4):
- Reafctor fma pattern.
- (*fma<VI:mode><P:mode>): Removed.
- (fnma<mode>4): Reafctor.
- (*fnma<VI:mode><P:mode>): Removed.
- (*fma<VF:mode><P:mode>): Removed.
- (*fnma<VF:mode><P:mode>): Removed.
- (fms<mode>4): Reafctor.
- (*fms<VF:mode><P:mode>): Removed.
- (fnms<mode>4): Reafctor.
- (*fnms<VF:mode><P:mode>): Removed.
- * config/riscv/riscv-protos.h (prepare_ternary_operands):
- Adjust prototype.
- * config/riscv/riscv-v.cc (prepare_ternary_operands): Refactor.
- * config/riscv/vector.md (*pred_mul_plus<mode>_undef): New pattern.
- (*pred_mul_plus<mode>): Removed.
- (*pred_mul_plus<mode>_scalar): Removed.
- (*pred_mul_plus<mode>_extended_scalar): Removed.
- (*pred_minus_mul<mode>_undef): New pattern.
- (*pred_minus_mul<mode>): Removed.
- (*pred_minus_mul<mode>_scalar): Removed.
- (*pred_minus_mul<mode>_extended_scalar): Removed.
- (*pred_mul_<optab><mode>_undef): New pattern.
- (*pred_mul_<optab><mode>): Removed.
- (*pred_mul_<optab><mode>_scalar): Removed.
- (*pred_mul_neg_<optab><mode>_undef): New pattern.
- (*pred_mul_neg_<optab><mode>): Removed.
- (*pred_mul_neg_<optab><mode>_scalar): Removed.
-
-2023-09-19 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * config/riscv/riscv-vector-builtins.cc
- (builtin_decl, expand_builtin): Replace SVE with RVV.
-
-2023-09-19 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * config/riscv/t-riscv: Add dependencies for riscv-builtins.cc,
- riscv-cmo.def and riscv-scalar-crypto.def.
-
-2023-09-18 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Extend to vls mode.
-
-2023-09-18 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Bugfix.
- * config/riscv/riscv-protos.h (SCALAR_MOVE_MERGED_OP): New enum.
-
-2023-09-18 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111442
- * match.pd (zero_one_valued_p): Have the bit_and match not be
- recursive.
-
-2023-09-18 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111435
- * match.pd (zero_one_valued_p): Don't do recursion
- on converts.
-
-2023-09-18 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin-protos.h (enum darwin_external_toolchain): New.
- * config/darwin.cc (DSYMUTIL_VERSION): New.
- (darwin_override_options): Choose the default debug DWARF version
- depending on the configured dsymutil version.
-
-2023-09-18 Iain Sandoe <iain@sandoe.co.uk>
-
- * configure: Regenerate.
- * configure.ac: Handle explict disable of stdlib option, set
- defaults for Darwin.
-
-2023-09-18 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111431
- * match.pd (`(a == CST) & a`): New pattern.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-selftests.cc (run_broadcast_selftests): Adapt selftests.
- * config/riscv/vector.md (@vec_duplicate<mode>): Remove.
-
-2023-09-18 Wilco Dijkstra <wilco.dijkstra@arm.com>
-
- PR target/105928
- * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
- Add support for immediates using shifted ORR/BIC.
- (aarch64_split_dimode_const_store): Apply if we save one instruction.
- * config/aarch64/aarch64.md (<LOGICAL:optab>_<SHIFT:optab><mode>3):
- Make pattern global.
-
-2023-09-18 Wilco Dijkstra <wilco.dijkstra@arm.com>
-
- * config/aarch64/aarch64-cores.def (neoverse-n1): Place before ares.
- (neoverse-v1): Place before zeus.
- (neoverse-v2): Place before demeter.
- * config/aarch64/aarch64-tune.md: Regenerate.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Add VLS modes.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (vlmul_for_greatest_sew_second_ratio): New function.
- * config/riscv/riscv-vsetvl.def (DEF_SEW_LMUL_FUSE_RULE): Fix bug.
-
-2023-09-18 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111294
- * tree-ssa-threadbackward.cc (back_threader_profitability::m_name):
- Remove
- (back_threader::find_paths_to_names): Adjust.
- (back_threader::maybe_thread_block): Likewise.
- (back_threader_profitability::possibly_profitable_path_p): Remove
- code applying extra costs to copies PHIs.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Extend VLS modes.
- * config/riscv/vector.md: Ditto.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md (mov<mode>): New pattern.
- (*mov<mode>_mem_to_mem): Ditto.
- (*mov<mode>): Ditto.
- (@mov<VLS_AVL_REG:mode><P:mode>_lra): Ditto.
- (*mov<VLS_AVL_REG:mode><P:mode>_lra): Ditto.
- (*mov<mode>_vls): Ditto.
- (movmisalign<mode>): Ditto.
- (@vec_duplicate<mode>): Ditto.
- * config/riscv/autovec-vls.md: Removed.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111153
- * config/riscv/autovec.md: Add VLS modes.
-
-2023-09-18 Jason Merrill <jason@redhat.com>
-
- * doc/gty.texi: Add discussion of cache vs. deletable.
-
-2023-09-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md (<optab><mode>3): Deleted.
- (copysign<mode>3): Ditto.
- (xorsign<mode>3): Ditto.
- (<optab><mode>2): Ditto.
- * config/riscv/autovec.md: Extend VLS modes.
-
-2023-09-18 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR middle-end/111303
- * match.pd ((t * 2) / 2): Update pattern.
-
-2023-09-17 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
-
- * config/rs6000/vsx.md (*vctzlsbb_zext_<mode>): New define_insn.
-
-2023-09-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111391
- * config/riscv/autovec.md (@vec_extract<mode><vel>): Remove @.
- (vec_extract<mode><vel>): Ditto.
- * config/riscv/riscv-vsetvl.cc (emit_vsetvl_insn): Fix bug.
- (pass_vsetvl::local_eliminate_vsetvl_insn): Fix bug.
- * config/riscv/riscv.cc (riscv_legitimize_move): Expand VLS mode to scalar mode move.
-
-2023-09-16 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * config/riscv/crypto.md (riscv_sha256sig0_<mode>,
- riscv_sha256sig1_<mode>, riscv_sha256sum0_<mode>,
- riscv_sha256sum1_<mode>, riscv_sm3p0_<mode>, riscv_sm3p1_<mode>,
- riscv_sm4ed_<mode>, riscv_sm4ks_<mode>): Remove and replace with
- new insn/expansions.
- (SHA256_OP, SM3_OP, SM4_OP): New iterators.
- (sha256_op, sm3_op, sm4_op): New attributes for iteration.
- (*riscv_<sha256_op>_si): New raw instruction for RV32.
- (*riscv_<sm3_op>_si): Ditto.
- (*riscv_<sm4_op>_si): Ditto.
- (riscv_<sha256_op>_di_extended): New base instruction for RV64.
- (riscv_<sm3_op>_di_extended): Ditto.
- (riscv_<sm4_op>_di_extended): Ditto.
- (riscv_<sha256_op>_si): New common instruction expansion.
- (riscv_<sm3_op>_si): Ditto.
- (riscv_<sm4_op>_si): Ditto.
- * config/riscv/riscv-builtins.cc: Add availability "crypto_zknh",
- "crypto_zksh" and "crypto_zksed". Remove availability
- "crypto_zksh{32,64}" and "crypto_zksed{32,64}".
- * config/riscv/riscv-ftypes.def: Remove unused function type.
- * config/riscv/riscv-scalar-crypto.def: Make SHA-256, SM3 and SM4
- intrinsics to operate on uint32_t.
-
-2023-09-16 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * config/riscv/riscv-builtins.cc (RISCV_ATYPE_UQI): New for
- uint8_t. (RISCV_ATYPE_UHI): New for uint16_t.
- (RISCV_ATYPE_QI, RISCV_ATYPE_HI, RISCV_ATYPE_SI, RISCV_ATYPE_DI):
- Removed as no longer used.
- (RISCV_ATYPE_UDI): New for uint64_t.
- * config/riscv/riscv-cmo.def: Make types unsigned for not working
- "zicbop_cbo_prefetchi" and working bit manipulation clmul builtin
- argument/return types.
- * config/riscv/riscv-ftypes.def: Make bit manipulation, round
- number and shift amount types unsigned.
- * config/riscv/riscv-scalar-crypto.def: Ditto.
-
-2023-09-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-vls.md (xorsign<mode>3): New pattern.
-
-2023-09-15 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/predicates.md: Restrict predicate
- to allow 'reg' only.
-
-2023-09-15 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (zero_one_valued_p): Match a cast from a zero_one_valued_p.
- Also match `a & zero_one_valued_p` too.
-
-2023-09-15 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111414
- * match.pd (`(1 >> X) != 0`): Check to see if
- the integer_onep was an integral type (not a vector type).
-
-2023-09-15 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-fold.cc (fold_using_range::range_of_phi): Always
- run phi analysis, and do it before loop analysis.
-
-2023-09-15 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-fold.cc (fold_using_range::range_of_phi): Fix
- indentation.
-
-2023-09-15 Qing Zhao <qing.zhao@oracle.com>
-
- PR tree-optimization/111407
- * tree-ssa-math-opts.cc (convert_mult_to_widen): Avoid the transform
- when one of the operands is subject to abnormal coalescing.
-
-2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum insn_flags): Change name.
- (enum insn_type): Ditto.
- * config/riscv/riscv-v.cc (get_mask_mode_from_insn_flags): Removed.
- (emit_vlmax_insn): Adjust.
- (emit_nonvlmax_insn): Adjust.
- (emit_vlmax_insn_lra): Adjust.
-
-2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md: Adjust.
- * config/riscv/autovec.md: Ditto.
- * config/riscv/riscv-protos.h (enum class): Delete enum reduction_type.
- (expand_reduction): Adjust expand_reduction prototype.
- * config/riscv/riscv-v.cc (need_mask_operand_p): New helper function.
- (expand_reduction): Refactor expand_reduction.
-
-2023-09-15 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/111411
- * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): Require
- the lower memory access to a mem-pair operand.
-
-2023-09-15 Yang Yujie <yangyujie@loongson.cn>
-
- * config.gcc: Pass the default ABI via TM_MULTILIB_CONFIG.
- * config/loongarch/loongarch-driver.h: Invoke MLIB_SELF_SPECS
- before the driver canonicalization routines.
- * config/loongarch/loongarch.h: Move definitions of CC1_SPEC etc.
- to loongarch-driver.h
- * config/loongarch/t-linux: Move multilib-related definitions to
- t-multilib.
- * config/loongarch/t-multilib: New file. Inject library build
- options obtained from --with-multilib-list.
- * config/loongarch/t-loongarch: Same.
-
-2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/111381
- * config/riscv/autovec-opt.md (*reduc_plus_scal_<mode>):
- New combine pattern.
- (*fold_left_widen_plus_<mode>): Ditto.
- (*mask_len_fold_left_widen_plus_<mode>): Ditto.
- * config/riscv/autovec.md (reduc_plus_scal_<mode>):
- Change from define_expand to define_insn_and_split.
- (fold_left_plus_<mode>): Ditto.
- (mask_len_fold_left_plus_<mode>): Ditto.
- * config/riscv/riscv-v.cc (expand_reduction):
- Support widen reduction.
- * config/riscv/vector-iterators.md (UNSPEC_WREDUC_SUM):
- Add new iterators and attrs.
-
-2023-09-14 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-event-id.h (diagnostic_thread_id_t): New typedef.
- * diagnostic-format-sarif.cc (class sarif_thread_flow): New.
- (sarif_thread_flow::sarif_thread_flow): New.
- (sarif_builder::make_code_flow_object): Reimplement, creating
- per-thread threadFlow objects, populating them with the relevant
- events.
- (sarif_builder::make_thread_flow_object): Delete, moving the
- code into sarif_builder::make_code_flow_object.
- (sarif_builder::make_thread_flow_location_object): Add
- "path_event_idx" param. Use it to set "executionOrder"
- property.
- * diagnostic-path.h (diagnostic_event::get_thread_id): New
- pure-virtual vfunc.
- (class diagnostic_thread): New.
- (diagnostic_path::num_threads): New pure-virtual vfunc.
- (diagnostic_path::get_thread): New pure-virtual vfunc.
- (diagnostic_path::multithreaded_p): New decl.
- (simple_diagnostic_event::simple_diagnostic_event): Add optional
- thread_id param.
- (simple_diagnostic_event::get_thread_id): New accessor.
- (simple_diagnostic_event::m_thread_id): New.
- (class simple_diagnostic_thread): New.
- (simple_diagnostic_path::simple_diagnostic_path): Move definition
- to diagnostic.cc.
- (simple_diagnostic_path::num_threads): New.
- (simple_diagnostic_path::get_thread): New.
- (simple_diagnostic_path::add_thread): New.
- (simple_diagnostic_path::add_thread_event): New.
- (simple_diagnostic_path::m_threads): New.
- * diagnostic-show-locus.cc (layout::layout): Add pretty_printer
- param for overriding the context's printer.
- (diagnostic_show_locus): Likwise.
- * diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path):
- Move here from diagnostic-path.h. Add main thread.
- (simple_diagnostic_path::num_threads): New.
- (simple_diagnostic_path::get_thread): New.
- (simple_diagnostic_path::add_thread): New.
- (simple_diagnostic_path::add_thread_event): New.
- (simple_diagnostic_event::simple_diagnostic_event): Add thread_id
- param and use it to initialize m_thread_id. Reformat.
- * diagnostic.h: Add pretty_printer param for overriding the
- context's printer.
- * tree-diagnostic-path.cc: Add #define INCLUDE_VECTOR.
- (can_consolidate_events): Compare thread ids.
- (class per_thread_summary): New.
- (event_range::event_range): Add per_thread_summary arg.
- (event_range::print): Add "pp" param and use it rather than dc's
- printer.
- (event_range::m_thread_id): New field.
- (event_range::m_per_thread_summary): New field.
- (path_summary::multithreaded_p): New.
- (path_summary::get_events_for_thread_id): New.
- (path_summary::m_per_thread_summary): New field.
- (path_summary::m_thread_id_to_events): New field.
- (path_summary::get_or_create_events_for_thread_id): New.
- (path_summary::path_summary): Create per_thread_summary instances
- as needed and associate the event_range instances with them.
- (base_indent): Move here from print_path_summary_as_text.
- (per_frame_indent): Likewise.
- (class thread_event_printer): New, adapted from parts of
- print_path_summary_as_text.
- (print_path_summary_as_text): Make static. Reimplement to
- moving most of existing code to class thread_event_printer,
- capturing state as per-thread as appropriate.
- (default_tree_diagnostic_path_printer): Add missing 'break' on
- final case.
-
-2023-09-14 David Malcolm <dmalcolm@redhat.com>
-
- * dwarf2cfi.cc (dwarf2cfi_cc_finalize): New.
- * dwarf2out.h (dwarf2cfi_cc_finalize): New decl.
- * ggc-common.cc (ggc_mark_roots): Multiply by rti->nelt when
- clearing the deletable gcc_root_tab_t.
- (ggc_common_finalize): New.
- * ggc.h (ggc_common_finalize): New decl.
- * toplev.cc (toplev::finalize): Call dwarf2cfi_cc_finalize and
- ggc_common_finalize.
-
-2023-09-14 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/predicates.md (xtensa_cstoresi_operator): Add
- unsigned comparisons.
- * config/xtensa/xtensa.cc (xtensa_expand_scc): Add code
- generation of salt/saltu instructions.
- * config/xtensa/xtensa.h (TARGET_SALT): New macro.
- * config/xtensa/xtensa.md (salt, saltu): New instruction
- patterns.
-
-2023-09-14 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira-costs.cc (find_costs_and_classes): Decrease memory cost
- by equiv savings.
-
-2023-09-14 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec.md: Change rtx code to unspec.
- * config/riscv/riscv-protos.h (expand_reduction): Change prototype.
- * config/riscv/riscv-v.cc (expand_reduction): Change prototype.
- * config/riscv/riscv-vector-builtins-bases.cc (class widen_reducop):
- Removed.
- (class widen_freducop): Removed.
- * config/riscv/vector-iterators.md (minu): Add reduc unspec, iterators, attrs.
- * config/riscv/vector.md (@pred_reduc_<reduc><mode>): Change name.
- (@pred_<reduc_op><mode>): New name.
- (@pred_widen_reduc_plus<v_su><mode>): Change name.
- (@pred_reduc_plus<order><mode>): Change name.
- (@pred_widen_reduc_plus<order><mode>): Change name.
-
-2023-09-14 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_reduction): Adjust call.
- * config/riscv/riscv-vector-builtins-bases.cc: Adjust call.
- * config/riscv/vector-iterators.md: New iterators and attrs.
- * config/riscv/vector.md (@pred_reduc_<reduc><VQI:mode><VQI_LMUL1:mode>):
- Removed.
- (@pred_reduc_<reduc><VHI:mode><VHI_LMUL1:mode>): Removed.
- (@pred_reduc_<reduc><VSI:mode><VSI_LMUL1:mode>): Removed.
- (@pred_reduc_<reduc><VDI:mode><VDI_LMUL1:mode>): Removed.
- (@pred_reduc_<reduc><mode>): Added.
- (@pred_widen_reduc_plus<v_su><VQI:mode><VHI_LMUL1:mode>): Removed.
- (@pred_widen_reduc_plus<v_su><VHI:mode><VSI_LMUL1:mode>): Removed.
- (@pred_widen_reduc_plus<v_su><mode>): Added.
- (@pred_widen_reduc_plus<v_su><VSI:mode><VDI_LMUL1:mode>): Removed.
- (@pred_reduc_<reduc><VHF:mode><VHF_LMUL1:mode>): Removed.
- (@pred_reduc_<reduc><VSF:mode><VSF_LMUL1:mode>): Removed.
- (@pred_reduc_<reduc><VDF:mode><VDF_LMUL1:mode>): Removed.
- (@pred_reduc_plus<order><VHF:mode><VHF_LMUL1:mode>): Removed.
- (@pred_reduc_plus<order><VSF:mode><VSF_LMUL1:mode>): Removed.
- (@pred_reduc_plus<order><mode>): Added.
- (@pred_reduc_plus<order><VDF:mode><VDF_LMUL1:mode>): Removed.
- (@pred_widen_reduc_plus<order><VHF:mode><VSF_LMUL1:mode>): Removed.
- (@pred_widen_reduc_plus<order><VSF:mode><VDF_LMUL1:mode>): Removed.
- (@pred_widen_reduc_plus<order><mode>): Added.
-
-2023-09-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_vector_costs::analyze_loop_info):
- Move WHILELO handling to...
- (aarch64_vector_costs::finish_cost): ...here. Check whether the
- vectorizer has decided to use a predicated loop.
-
-2023-09-14 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/106164
- * match.pd (`(X CMP1 CST1) AND/IOR (X CMP2 CST2)`):
- Expand to support constants that are off by one.
-
-2023-09-14 Andrew Pinski <apinski@marvell.com>
-
- * genmatch.cc (parser::parse_result): For an else clause
- of an if statement inside a switch, error out explictly.
-
-2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md: Add VLS mask modes.
- * config/riscv/autovec.md (@vcond_mask_<mode><vm>): Remove @.
- (vcond_mask_<mode><vm>): Add VLS mask modes.
- * config/riscv/vector.md: Ditto.
-
-2023-09-14 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111294
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
- operands that eventually become dead and use simple_dce_from_worklist
- to remove their definitions if they did so.
-
-2023-09-14 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-sve.md (@aarch64_vec_duplicate_vq<mode>_le):
- Accept all nonimmediate_operands, but keep the existing constraints.
- If the instruction is split before RA, load invalid addresses into
- a temporary register.
- * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): Delete.
-
-2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111395
- * config/riscv/riscv-vsetvl.cc (avl_info::operator==): Fix ICE.
- (vector_insn_info::global_merge): Ditto.
- (vector_insn_info::get_avl_or_vl_reg): Ditto.
-
-2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn): Format it.
-
-2023-09-14 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch-def.c: Modify the default value of
- branch_cost.
-
-2023-09-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.cc (xtensa_expand_scc):
- Revert the changes from the last patch, as the work in the RTL
- expansion pass is too far to determine the physical registers.
- * config/xtensa/xtensa.md (*eqne_INT_MIN): Ditto.
- (eq_zero_NSA, eqne_zero, *eqne_zero_masked_bits): New patterns.
-
-2023-09-14 Lulu Cheng <chenglulu@loongson.cn>
-
- PR target/111334
- * config/loongarch/loongarch.md: Fix bug of '<optab>di3_fake'.
-
-2023-09-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (vec_extract<mode><vel>): Add VLS modes.
- (@vec_extract<mode><vel>): Ditto.
- * config/riscv/vector.md: Ditto
-
-2023-09-13 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`X <= MAX(X, Y)`):
- Move before `MIN (X, C1) < C2` pattern.
-
-2023-09-13 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111364
- * match.pd (`MIN (X, Y) == X`): Extend
- to min/lt, min/ge, max/gt, max/le.
-
-2023-09-13 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111345
- * match.pd (`Y > (X % Y)`): Merge
- into ...
- (`(X % Y) < Y`): Pattern by adding `:c`
- on the comparison.
-
-2023-09-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111387
- * tree-vect-slp.cc (vect_get_and_check_slp_defs): Check
- EDGE_DFS_BACK when doing BB vectorization.
- (vect_slp_function): Use rev_post_order_and_mark_dfs_back_seme
- to compute RPO and mark backedges.
-
-2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_<mulh_table><mode>3_highpart):
- New combine pattern.
- * config/riscv/autovec.md (smul<mode>3_highpart): Mrege smul and umul.
- (<mulh_table><mode>3_highpart): Merged pattern.
- (umul<mode>3_highpart): Mrege smul and umul.
- * config/riscv/vector-iterators.md (umul): New iterators.
- (UNSPEC_VMULHU): New iterators.
-
-2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_v<any_shiftrt:optab><any_extend:optab>trunc<mode>):
- New combine pattern.
- (*cond_<any_shiftrt:optab>trunc<mode>): Ditto.
-
-2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*copysign<mode>_neg): Move.
- (*cond_copysign<mode>): New combine pattern.
- * config/riscv/riscv-v.cc (needs_fp_rounding): Extend.
-
-2023-09-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111397
- * tree-ssa-propagate.cc (may_propagate_copy): Change optional
- argument to specify whether the PHI destination doesn't flow in
- from an abnormal PHI.
- (propagate_value): Adjust.
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Indicate abnormal
- PHI dest.
- * tree-ssa-sccvn.cc (eliminate_dom_walker::before_dom_children):
- Likewise.
- (process_bb): Likewise.
-
-2023-09-13 Pan Li <pan2.li@intel.com>
-
- PR target/111362
- * config/riscv/riscv.cc (riscv_emit_frm_mode_set): Bugfix.
-
-2023-09-13 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR tree-optimization/111303
- * match.pd ((X - N * M) / N): Add undefined_p checking.
- ((X + N * M) / N): Likewise.
- ((X + C) div_rshift N): Likewise.
-
-2023-09-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111337
- * config/riscv/autovec.md (vcond_mask_<mode><mode>): New pattern.
-
-2023-09-12 Martin Jambor <mjambor@suse.cz>
-
- * dbgcnt.def (form_fma): New.
- * tree-ssa-math-opts.cc: Include dbgcnt.h.
- (convert_mult_to_fma): Bail out if the debug counter say so.
-
-2023-09-12 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/autovec-opt.md: Update type
- * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_save_regs_above_locals_p):
- New function.
- (aarch64_layout_frame): Use it to decide whether locals should
- go above or below the saved registers.
- (aarch64_expand_prologue): Update stack layout comment.
- Emit a stack tie after the final adjustment.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::saved_regs_size)
- (aarch64_frame::below_hard_fp_saved_regs_size): Delete.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Update accordingly.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::sve_save_and_probe)
- (aarch64_frame::hard_fp_save_and_probe): New fields.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize them.
- Rather than asserting that a leaf function saves LR, instead assert
- that a leaf function saves something.
- (aarch64_get_separate_components): Prevent the chosen probe
- registers from being individually shrink-wrapped.
- (aarch64_allocate_and_probe_stack_space): Remove workaround for
- probe registers that aren't at the bottom of the previous allocation.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
- Always probe the residual allocation at offset 1024, asserting
- that that is in range.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Ensure that
- the LR save slot is in the first 16 bytes of the register save area.
- Only form STP/LDP push/pop candidates if both registers are valid.
- (aarch64_allocate_and_probe_stack_space): Remove workaround for
- when LR was not in the first 16 bytes.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
- Don't probe final allocations that are exactly 1KiB in size (after
- unprobed space above the final allocation has been deducted).
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Tweak
- calculation of initial_adjust for frames in which all saves
- are SVE saves.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Simplify
- the allocation of the top of the frame.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame): Add comment above
- reg_offset.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Walk offsets
- from the bottom of the frame, rather than the bottom of the saved
- register area. Measure reg_offset from the bottom of the frame
- rather than the bottom of the saved register area.
- (aarch64_save_callee_saves): Update accordingly.
- (aarch64_restore_callee_saves): Likewise.
- (aarch64_get_separate_components): Likewise.
- (aarch64_process_components): Likewise.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::frame_size): Tweak comment.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::hard_fp_offset): Rename
- to...
- (aarch64_frame::bytes_above_hard_fp): ...this.
- * config/aarch64/aarch64.cc (aarch64_layout_frame)
- (aarch64_expand_prologue): Update accordingly.
- (aarch64_initial_elimination_offset): Likewise.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::locals_offset): Rename to...
- (aarch64_frame::bytes_above_locals): ...this.
- * config/aarch64/aarch64.cc (aarch64_layout_frame)
- (aarch64_initial_elimination_offset): Update accordingly.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_expand_prologue): Move the
- calculation of chain_offset into the emit_frame_chain block.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::callee_offset): Delete.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Remove
- callee_offset handling.
- (aarch64_save_callee_saves): Replace the start_offset parameter
- with a bytes_below_sp parameter.
- (aarch64_restore_callee_saves): Likewise.
- (aarch64_expand_prologue): Update accordingly.
- (aarch64_expand_epilogue): Likewise.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::bytes_below_hard_fp): New
- field.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it.
- (aarch64_expand_epilogue): Use it instead of
- below_hard_fp_saved_regs_size.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.h (aarch64_frame::bytes_below_saved_regs): New
- field.
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it,
- and use it instead of crtl->outgoing_args_size.
- (aarch64_get_separate_components): Use bytes_below_saved_regs instead
- of outgoing_args_size.
- (aarch64_process_components): Likewise.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_layout_frame): Explicitly
- allocate the frame in one go if there are no saved registers.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_expand_prologue): Use
- chain_offset rather than callee_offset.
-
-2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
- a local shorthand for cfun->machine->frame.
- (aarch64_restore_callee_saves, aarch64_get_separate_components):
- (aarch64_process_components): Likewise.
- (aarch64_allocate_and_probe_stack_space): Likewise.
- (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
- (aarch64_layout_frame): Use existing shorthand for one more case.
-
-2023-09-12 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/107881
- * match.pd (`(a CMP1 b) ^ (a CMP2 b)`): New pattern.
- (`(a CMP1 b) == (a CMP2 b)`): New pattern.
-
-2023-09-12 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-costs.h (struct range): Removed.
-
-2023-09-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-costs.cc (get_last_live_range): New function.
- (compute_nregs_for_mode): Ditto.
- (live_range_conflict_p): Ditto.
- (max_number_of_live_regs): Ditto.
- (compute_lmul): Ditto.
- (costs::prefer_new_lmul_p): Ditto.
- (costs::better_main_loop_than_p): Ditto.
- * config/riscv/riscv-vector-costs.h (struct stmt_point): New struct.
- (struct var_live_range): Ditto.
- (struct autovec_info): Ditto.
- * config/riscv/t-riscv: Update makefile for COST model.
-
-2023-09-12 Jakub Jelinek <jakub@redhat.com>
-
- * fold-const.cc (range_check_type): Handle BITINT_TYPE like
- OFFSET_TYPE.
-
-2023-09-12 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/111338
- * tree-ssa-sccvn.cc (struct vn_walk_cb_data): Add bufsize non-static
- data member.
- (vn_walk_cb_data::push_partial_def): Remove bufsize variable.
- (visit_nary_op): Avoid the BIT_AND_EXPR with constant rhs2
- optimization if type's precision is too large for
- vn_walk_cb_data::bufsize.
-
-2023-09-12 Gaius Mulley <gaiusmod2@gmail.com>
-
- * doc/gm2.texi (Compiler options): Document new option
- -Wcase-enum.
-
-2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
-
- * doc/sourcebuild.texi (stack_size): Update.
-
-2023-09-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/bitmanip.md (*<optab>_not<mode>): Export INSN name.
- (<optab>_not<mode>3): Likewise.
- * config/riscv/riscv-protos.h (riscv_expand_strcmp): New
- prototype.
- * config/riscv/riscv-string.cc (GEN_EMIT_HELPER3): New helper
- macros.
- (GEN_EMIT_HELPER2): Likewise.
- (emit_strcmp_scalar_compare_byte): New function.
- (emit_strcmp_scalar_compare_subword): Likewise.
- (emit_strcmp_scalar_compare_word): Likewise.
- (emit_strcmp_scalar_load_and_compare): Likewise.
- (emit_strcmp_scalar_call_to_libc): Likewise.
- (emit_strcmp_scalar_result_calculation_nonul): Likewise.
- (emit_strcmp_scalar_result_calculation): Likewise.
- (riscv_expand_strcmp_scalar): Likewise.
- (riscv_expand_strcmp): Likewise.
- * config/riscv/riscv.md (*slt<u>_<X:mode><GPR:mode>): Export
- INSN name.
- (@slt<u>_<X:mode><GPR:mode>3): Likewise.
- (cmpstrnsi): Invoke expansion function for str(n)cmp.
- (cmpstrsi): Likewise.
- * config/riscv/riscv.opt: Add new parameter
- '-mstring-compare-inline-limit'.
- * doc/invoke.texi: Document new parameter
- '-mstring-compare-inline-limit'.
-
-2023-09-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config.gcc: Add new object riscv-string.o.
- riscv-string.cc.
- * config/riscv/riscv-protos.h (riscv_expand_strlen):
- New function.
- * config/riscv/riscv.md (strlen<mode>): New expand INSN.
- * config/riscv/riscv.opt: New flag 'minline-strlen'.
- * config/riscv/t-riscv: Add new object riscv-string.o.
- * config/riscv/thead.md (th_rev<mode>2): Export INSN name.
- (th_rev<mode>2): Likewise.
- (th_tstnbz<mode>2): New INSN.
- * doc/invoke.texi: Document '-minline-strlen'.
- * emit-rtl.cc (emit_likely_jump_insn): New helper function.
- (emit_unlikely_jump_insn): Likewise.
- * rtl.h (emit_likely_jump_insn): New prototype.
- (emit_unlikely_jump_insn): Likewise.
- * config/riscv/riscv-string.cc: New file.
-
-2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
-
- * config/nvptx/nvptx.h (TARGET_USE_LOCAL_THUNK_ALIAS_P)
- (TARGET_SUPPORTS_ALIASES): Define.
-
-2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
-
- * doc/sourcebuild.texi (check-function-bodies): Update.
-
-2023-09-12 Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.cc (gimplify_bind_expr): Check for
- insertion after variable cleanup. Convert 'omp allocate'
- var-decl attribute to GOMP_alloc/GOMP_free calls.
-
-2023-09-12 xuli <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: remove unused
- parameter e and replace NULL_RTX with gcc_unreachable.
-
-2023-09-12 xuli <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc (class vcreate): New class.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vcreate): Add vcreate support.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct vcreate_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc: Add args type.
-
-2023-09-12 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc
- (riscv_avoid_shrink_wrapping_separate): wrap the condition check in
- riscv_avoid_shrink_wrapping_separate.
- (riscv_avoid_multi_push):avoid multi push if shrink_wrapping_separate
- is active.
- (riscv_get_separate_components):call riscv_avoid_shrink_wrapping_separate
-
-2023-09-12 Fei Gao <gaofei@eswincomputing.com>
-
- * shrink-wrap.cc (try_shrink_wrapping_separate):call
- use_shrink_wrapping_separate.
- (use_shrink_wrapping_separate): wrap the condition
- check in use_shrink_wrapping_separate.
- * shrink-wrap.h (use_shrink_wrapping_separate): add to extern
-
-2023-09-11 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111348
- * match.pd (`(a CMP b) ? minmax<a, c> : minmax<b, c>`): Add :c on
- the cmp part of the pattern.
-
-2023-09-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/111340
- * config/i386/i386.cc (output_pic_addr_const): Handle CONST_WIDE_INT.
- Call output_addr_const for CASE_CONST_SCALAR_INT.
-
-2023-09-11 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/thead.md: Update types
-
-2023-09-11 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/riscv.md: Update types
-
-2023-09-11 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/riscv.md: Add "zicond" type
- * config/riscv/zicond.md: Update types
-
-2023-09-11 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/riscv.md: Add "pushpop" and "mvpair" types
- * config/riscv/zc.md: Update types
-
-2023-09-11 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/autovec-opt.md: Update types
- * config/riscv/autovec.md: likewise
-
-2023-09-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-builtins.def (s390_vec_signed_flt): Fix
- builtin flag.
- (s390_vec_unsigned_flt): Ditto.
- (s390_vec_revb_flt): Ditto.
- (s390_vec_reve_flt): Ditto.
- (s390_vclfnhs): Fix operand flags.
- (s390_vclfnls): Ditto.
- (s390_vcrnfs): Ditto.
- (s390_vcfn): Ditto.
- (s390_vcnf): Ditto.
-
-2023-09-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-builtins.def (O_U64): New.
- (O1_U64): Ditto.
- (O2_U64): Ditto.
- (O3_U64): Ditto.
- (O4_U64): Ditto.
- (O_M12): Change bit position.
- (O_S2): Ditto.
- (O_S3): Ditto.
- (O_S4): Ditto.
- (O_S5): Ditto.
- (O_S8): Ditto.
- (O_S12): Ditto.
- (O_S16): Ditto.
- (O_S32): Ditto.
- (O_ELEM): Ditto.
- (O_LIT): Ditto.
- (OB_DEF_VAR): Add operand constraints.
- (B_DEF): Ditto.
- * config/s390/s390.cc (s390_const_operand_ok): Honour 64 bit
- operands.
-
-2023-09-11 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111349
- * match.pd (`(a CMP CST1) ? max<a,CST2> : a`): Add :c on
- the cmp part of the pattern.
-
-2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111311
- * config/riscv/riscv.opt: Set default as scalable vectorization.
-
-2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (get_all_predecessors): Remove.
- (get_all_successors): Ditto.
- * config/riscv/riscv-v.cc (get_all_predecessors): Ditto.
- (get_all_successors): Ditto.
-
-2023-09-11 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/111329
- * pretty-print.h (pp_wide_int): Rewrite from macro into inline
- function. For printing values which don't fit into digit_buffer
- use out-of-line function.
- * wide-int-print.h (pp_wide_int_large): Declare.
- * wide-int-print.cc: Include pretty-print.h.
- (pp_wide_int_large): Define.
-
-2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn):
- Use dominance analysis.
- (pass_vsetvl::init): Ditto.
- (pass_vsetvl::done): Ditto.
-
-2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111311
- * config/riscv/autovec.md: Add VLS modes.
- * config/riscv/riscv-protos.h (cmp_lmul_le_one): New function.
- (cmp_lmul_gt_one): Ditto.
- * config/riscv/riscv-v.cc (cmp_lmul_le_one): Ditto.
- (cmp_lmul_gt_one): Ditto.
- * config/riscv/riscv.cc (riscv_print_operand): Add VLS modes.
- (riscv_vectorize_vec_perm_const): Ditto.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md (*mov<mode>_vls): New pattern.
- * config/riscv/vector-iterators.md: New iterator
-
-2023-09-11 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111346
- * match.pd (`X CMP MINMAX`): Add `:c` on the cmp part
- of the pattern
-
-2023-09-11 liuhongt <hongtao.liu@intel.com>
-
- PR target/111306
- PR target/111335
- * config/i386/sse.md (int_comm): New int_attr.
- (fma_<complexopname>_<mode><sdc_maskz_name><round_name>):
- Remove % for Complex conjugate operations since they're not
- commutative.
- (fma_<complexpairopname>_<mode>_pair): Ditto.
- (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto.
- (cmul<conj_op><mode>3): Ditto.
-
-2023-09-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (shuffle_generic_patterns): Expand
- fixed-vlmax/vls vector permutation.
-
-2023-09-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (shuffle_compress_patterns): Avoid unnecessary slideup.
-
-2023-09-10 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111331
- * match.pd (`(a CMP CST1) ? max<a,CST2> : a`):
- Fix the LE/GE comparison to the correct value.
- * tree-ssa-phiopt.cc (minmax_replacement):
- Fix the LE/GE comparison for the
- `(a CMP CST1) ? max<a,CST2> : a` optimization.
-
-2023-09-10 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.cc (darwin_function_section): Place unlikely
- executed global init code into the standard cold section.
-
-2023-09-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111311
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::vsetvl_fusion): Add TDF_DETAILS.
- (pass_vsetvl::pre_vsetvl): Ditto.
- (pass_vsetvl::init): Ditto.
- (pass_vsetvl::lazy_vsetvl): Ditto.
-
-2023-09-09 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch.md (mulsidi3_64bit):
- Field unsigned extension support.
- (<u>muldi3_highpart): Modify template name.
- (<u>mulsi3_highpart): Likewise.
- (<u>mulsidi3_64bit): Field unsigned extension support.
- (<su>muldi3_highpart): Modify muldi3_highpart to
- smuldi3_highpart.
- (<su>mulsi3_highpart): Modify mulsi3_highpart to
- smulsi3_highpart.
-
-2023-09-09 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.cc (loongarch_block_move_straight):
- Check precondition (delta must be a power of 2) and use
- popcount_hwi instead of a homebrew loop.
-
-2023-09-09 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.h (LARCH_MAX_MOVE_PER_INSN):
- Define to the maximum amount of bytes able to be loaded or
- stored with one machine instruction.
- * config/loongarch/loongarch.cc (loongarch_mode_for_move_size):
- New static function.
- (loongarch_block_move_straight): Call
- loongarch_mode_for_move_size for machine_mode to be moved.
- (loongarch_expand_block_move): Use LARCH_MAX_MOVE_PER_INSN
- instead of UNITS_PER_WORD.
-
-2023-09-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Fix floating-point operations predicate.
-
-2023-09-09 Lehua Ding <lehua.ding@rivai.ai>
-
- * fold-const.cc (can_min_p): New function.
- (poly_int_binop): Try fold MIN_EXPR.
-
-2023-09-08 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (foperator_ltgt::fold_range): Do not special
- case VREL_EQ nor call frelop_early_resolve.
-
-2023-09-08 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/thead.md (*extend<SHORT:mode><SUPERQI:mode>2_th_ext):
- Remove broken INSN.
- (*extendhi<SUPERQI:mode>2_th_ext): New INSN.
- (*extendqi<SUPERQI:mode>2_th_ext): New INSN.
-
-2023-09-08 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/thead.md: Use more appropriate mode attributes
- for extensions.
-
-2023-09-08 Guo Jie <guojie@loongson.cn>
-
- * common/config/loongarch/loongarch-common.cc:
- (default_options loongarch_option_optimization_table):
- Default to -fsched-pressure.
-
-2023-09-08 Yang Yujie <yangyujie@loongson.cn>
-
- * config.gcc: remove non-POSIX syntax "<<<".
-
-2023-09-08 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/bitmanip.md (*extend<SHORT:mode><SUPERQI:mode>2_zbb):
- Rename postfix to _bitmanip.
- (*extend<SHORT:mode><SUPERQI:mode>2_bitmanip): Renamed pattern.
- (*zero_extendhi<GPR:mode>2_zbb): Remove duplicated pattern.
-
-2023-09-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_pass_in_vector_p): Only allow RVV type.
-
-2023-09-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_hard_regno_nregs): Fix bug.
-
-2023-09-07 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/sse.md
- (<avx512>_vpermt2var<mode>3<sd_maskz_name>): New define_insn.
- (VHFBF_AVX512VL): New mode iterator.
- (VI2HFBF_AVX512VL): New mode iterator.
-
-2023-09-07 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (contains_zero_p): Return false for undefined ranges.
- * range-op-float.cc (operator_gt::op1_op2_relation): Adjust for
- contains_zero_p change above.
- (operator_ge::op1_op2_relation): Same.
- (operator_equal::op1_op2_relation): Same.
- (operator_not_equal::op1_op2_relation): Same.
- (operator_lt::op1_op2_relation): Same.
- (operator_le::op1_op2_relation): Same.
- (operator_ge::op1_op2_relation): Same.
- * range-op.cc (operator_equal::op1_op2_relation): Same.
- (operator_not_equal::op1_op2_relation): Same.
- (operator_lt::op1_op2_relation): Same.
- (operator_le::op1_op2_relation): Same.
- (operator_cast::op1_range): Same.
- (set_nonzero_range_from_mask): Same.
- (operator_bitwise_xor::op1_range): Same.
- (operator_addr_expr::fold_range): Same.
- (operator_addr_expr::op1_range): Same.
-
-2023-09-07 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/110875
- * gimple-range.cc (gimple_ranger::prefill_name): Only invoke
- cache-prefilling routine when the ssa-name has no global value.
-
-2023-09-07 Vladimir N. Makarov <vmakarov@redhat.com>
-
- PR target/111225
- * lra-constraints.cc (goal_reuse_alt_p): New global flag.
- (process_alt_operands): Set up the flag. Clear flag for chosen
- alternative with special memory constraints.
- (process_alt_operands): Set up used insn alternative depending on the flag.
-
-2023-09-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md: Add VLS mask modes mov patterns.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-09-07 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-core.h (error_meta): New decl.
- * diagnostic.cc (error_meta): New.
-
-2023-09-07 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * expr.cc (expand_expr_real_1): Don't call targetm.c.bitint_type_info
- inside gcc_assert, as later code relies on it filling info variable.
- * gimple-fold.cc (clear_padding_bitint_needs_padding_p,
- clear_padding_type): Likewise.
- * varasm.cc (output_constant): Likewise.
- * fold-const.cc (native_encode_int, native_interpret_int): Likewise.
- * stor-layout.cc (finish_bitfield_representative, layout_type):
- Likewise.
- * gimple-lower-bitint.cc (bitint_precision_kind): Likewise.
-
-2023-09-07 Xi Ruoyao <xry111@xry111.site>
-
- PR target/111252
- * config/loongarch/loongarch-protos.h
- (loongarch_pre_reload_split): Declare new function.
- (loongarch_use_bstrins_for_ior_with_mask): Likewise.
- * config/loongarch/loongarch.cc
- (loongarch_pre_reload_split): Implement.
- (loongarch_use_bstrins_for_ior_with_mask): Likewise.
- * config/loongarch/predicates.md (ins_zero_bitmask_operand):
- New predicate.
- * config/loongarch/loongarch.md (bstrins_<mode>_for_mask):
- New define_insn_and_split.
- (bstrins_<mode>_for_ior_mask): Likewise.
- (define_peephole2): Further optimize code sequence produced by
- bstrins_<mode>_for_ior_mask if possible.
-
-2023-09-07 Richard Sandiford <richard.sandiford@arm.com>
-
- * lra-eliminations.cc (lra_eliminate_regs_1): Use simplify_gen_binary
- rather than gen_rtx_PLUS.
-
-2023-09-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111313
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_earliest_vsetvls): Remove.
- (pass_vsetvl::df_post_optimization): Remove incorrect function.
-
-2023-09-07 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
- Parse 'XVentanaCondOps' extension.
- * config/riscv/riscv-opts.h (MASK_XVENTANACONDOPS): New.
- (TARGET_XVENTANACONDOPS): Ditto.
- (TARGET_ZICOND_LIKE): New to represent targets with conditional
- moves like 'Zicond'. It includes RV64 + 'XVentanaCondOps'.
- * config/riscv/riscv.cc (riscv_rtx_costs): Replace TARGET_ZICOND
- with TARGET_ZICOND_LIKE.
- (riscv_expand_conditional_move): Ditto.
- * config/riscv/riscv.md (mov<mode>cc): Replace TARGET_ZICOND with
- TARGET_ZICOND_LIKE.
- * config/riscv/riscv.opt: Add new riscv_xventana_subext.
- * config/riscv/zicond.md: Modify description.
- (eqz_ventana): New to match corresponding czero instructions.
- (nez_ventana): Ditto.
- (*czero.<eqz>.<GPR><X>): Emit a 'XVentanaCondOps' instruction if
- 'Zicond' is not available but 'XVentanaCondOps' + RV64 is.
- (*czero.<eqz>.<GPR><X>): Ditto.
- (*czero.eqz.<GPR><X>.opt1): Ditto.
- (*czero.nez.<GPR><X>.opt2): Ditto.
-
-2023-09-06 Ian Lance Taylor <iant@golang.org>
-
- PR go/111310
- * godump.cc (go_format_type): Handle BITINT_TYPE.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * tree.cc (build_one_cst, build_minus_one_cst): Handle BITINT_TYPE
- like INTEGER_TYPE.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * gimple-lower-bitint.cc (bitint_large_huge::if_then_else,
- bitint_large_huge::if_then_if_then_else): Use make_single_succ_edge
- rather than make_edge, initialize bb->count.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * doc/libgcc.texi (Bit-precise integer arithmetic functions):
- Document general rules for _BitInt support library functions
- and document __mulbitint3 and __divmodbitint4.
- (Conversion functions): Document __fix{s,d,x,t}fbitint,
- __floatbitint{s,d,x,t,h,b}f, __bid_fix{s,d,t}dbitint and
- __bid_floatbitint{s,d,t}d.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * glimits.h (BITINT_MAXWIDTH): Define if __BITINT_MAXWIDTH__ is
- predefined.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * internal-fn.cc (expand_ubsan_result_store): Add LHS, MODE and
- DO_ERROR arguments. For non-mode precision BITINT_TYPE results
- check if all padding bits up to mode precision are zeros or sign
- bit copies and if not, jump to DO_ERROR.
- (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
- Adjust expand_ubsan_result_store callers.
- * ubsan.cc: Include target.h and langhooks.h.
- (ubsan_encode_value): Pass BITINT_TYPE values which fit into pointer
- size converted to pointer sized integer, pass BITINT_TYPE values
- which fit into TImode (if supported) or DImode as those integer types
- or otherwise for now punt (pass 0).
- (ubsan_type_descriptor): Handle BITINT_TYPE. For pstyle of
- UBSAN_PRINT_FORCE_INT use TK_Integer (0x0000) mode with a
- TImode/DImode precision rather than TK_Unknown used otherwise for
- large/huge BITINT_TYPEs.
- (instrument_si_overflow): Instrument BITINT_TYPE operations even when
- they don't have mode precision.
- * ubsan.h (enum ubsan_print_style): New enumerator.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * config/i386/i386.cc (classify_argument): Handle BITINT_TYPE.
- (ix86_bitint_type_info): New function.
- (TARGET_C_BITINT_TYPE_INFO): Redefine.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * Makefile.in (OBJS): Add gimple-lower-bitint.o.
- * passes.def: Add pass_lower_bitint after pass_lower_complex and
- pass_lower_bitint_O0 after pass_lower_complex_O0.
- * tree-pass.h (PROP_gimple_lbitint): Define.
- (make_pass_lower_bitint_O0, make_pass_lower_bitint): Declare.
- * gimple-lower-bitint.h: New file.
- * tree-ssa-live.h (struct _var_map): Add bitint member.
- (init_var_map): Adjust declaration.
- (region_contains_p): Handle map->bitint like map->outofssa_p.
- * tree-ssa-live.cc (init_var_map): Add BITINT argument, initialize
- map->bitint and set map->outofssa_p to false if it is non-NULL.
- * tree-ssa-coalesce.cc: Include gimple-lower-bitint.h.
- (build_ssa_conflict_graph): Call build_bitint_stmt_ssa_conflicts if
- map->bitint.
- (create_coalesce_list_for_region): For map->bitint ignore SSA_NAMEs
- not in that bitmap, and allow res without default def.
- (compute_optimized_partition_bases): In map->bitint mode try hard to
- coalesce any SSA_NAMEs with the same size.
- (coalesce_bitint): New function.
- (coalesce_ssa_name): In map->bitint mode, or map->bitmap into
- used_in_copies and call coalesce_bitint.
- * gimple-lower-bitint.cc: New file.
-
-2023-09-06 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * tree.def (BITINT_TYPE): New type.
- * tree.h (TREE_CHECK6, TREE_NOT_CHECK6): Define.
- (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Include
- BITINT_TYPE.
- (BITINT_TYPE_P): Define.
- (CONSTRUCTOR_BITFIELD_P): Return true even for BLKmode bit-fields if
- they have BITINT_TYPE type.
- (tree_check6, tree_not_check6): New inline functions.
- (any_integral_type_check): Include BITINT_TYPE.
- (build_bitint_type): Declare.
- * tree.cc (tree_code_size, wide_int_to_tree_1, cache_integer_cst,
- build_zero_cst, type_hash_canon_hash, type_cache_hasher::equal,
- type_hash_canon): Handle BITINT_TYPE.
- (bitint_type_cache): New variable.
- (build_bitint_type): New function.
- (signed_or_unsigned_type_for, verify_type_variant, verify_type):
- Handle BITINT_TYPE.
- (tree_cc_finalize): Free bitint_type_cache.
- * builtins.cc (type_to_class): Handle BITINT_TYPE.
- (fold_builtin_unordered_cmp): Handle BITINT_TYPE like INTEGER_TYPE.
- * cfgexpand.cc (expand_debug_expr): Punt on BLKmode BITINT_TYPE
- INTEGER_CSTs.
- * convert.cc (convert_to_pointer_1, convert_to_real_1,
- convert_to_complex_1): Handle BITINT_TYPE like INTEGER_TYPE.
- (convert_to_integer_1): Likewise. For BITINT_TYPE don't check
- GET_MODE_PRECISION (TYPE_MODE (type)).
- * doc/generic.texi (BITINT_TYPE): Document.
- * doc/tm.texi.in (TARGET_C_BITINT_TYPE_INFO): New.
- * doc/tm.texi: Regenerated.
- * dwarf2out.cc (base_type_die, is_base_type, modified_type_die,
- gen_type_die_with_usage): Handle BITINT_TYPE.
- (rtl_for_decl_init): Punt on BLKmode BITINT_TYPE INTEGER_CSTs or
- handle those which fit into shwi.
- * expr.cc (expand_expr_real_1): Define EXTEND_BITINT macro, reduce
- to bitfield precision reads from BITINT_TYPE vars, parameters or
- memory locations. Expand large/huge BITINT_TYPE INTEGER_CSTs into
- memory.
- * fold-const.cc (fold_convert_loc, make_range_step): Handle
- BITINT_TYPE.
- (extract_muldiv_1): For BITINT_TYPE use TYPE_PRECISION rather than
- GET_MODE_SIZE (SCALAR_INT_TYPE_MODE).
- (native_encode_int, native_interpret_int, native_interpret_expr):
- Handle BITINT_TYPE.
- * gimple-expr.cc (useless_type_conversion_p): Make BITINT_TYPE
- to some other integral type or vice versa conversions non-useless.
- * gimple-fold.cc (gimple_fold_builtin_memset): Punt for BITINT_TYPE.
- (clear_padding_unit): Mention in comment that _BitInt types don't need
- to fit either.
- (clear_padding_bitint_needs_padding_p): New function.
- (clear_padding_type_may_have_padding_p): Handle BITINT_TYPE.
- (clear_padding_type): Likewise.
- * internal-fn.cc (expand_mul_overflow): For unsigned non-mode
- precision operands force pos_neg? to 1.
- (expand_MULBITINT, expand_DIVMODBITINT, expand_FLOATTOBITINT,
- expand_BITINTTOFLOAT): New functions.
- * internal-fn.def (MULBITINT, DIVMODBITINT, FLOATTOBITINT,
- BITINTTOFLOAT): New internal functions.
- * internal-fn.h (expand_MULBITINT, expand_DIVMODBITINT,
- expand_FLOATTOBITINT, expand_BITINTTOFLOAT): Declare.
- * match.pd (non-equality compare simplifications from fold_binary):
- Punt if TYPE_MODE (arg1_type) is BLKmode.
- * pretty-print.h (pp_wide_int): Handle printing of large precision
- wide_ints which would buffer overflow digit_buffer.
- * stor-layout.cc (finish_bitfield_representative): For bit-fields
- with BITINT_TYPE, prefer representatives with precisions in
- multiple of limb precision.
- (layout_type): Handle BITINT_TYPE. Handle COMPLEX_TYPE with BLKmode
- element type and assert it is BITINT_TYPE.
- * target.def (bitint_type_info): New C target hook.
- * target.h (struct bitint_info): New type.
- * targhooks.cc (default_bitint_type_info): New function.
- * targhooks.h (default_bitint_type_info): Declare.
- * tree-pretty-print.cc (dump_generic_node): Handle BITINT_TYPE.
- Handle printing large wide_ints which would buffer overflow
- digit_buffer.
- * tree-ssa-sccvn.cc: Include target.h.
- (eliminate_dom_walker::eliminate_stmt): Punt for large/huge
- BITINT_TYPE.
- * tree-switch-conversion.cc (jump_table_cluster::emit): For more than
- 64-bit BITINT_TYPE subtract low bound from expression and cast to
- 64-bit integer type both the controlling expression and case labels.
- * typeclass.h (enum type_class): Add bitint_type_class enumerator.
- * varasm.cc (output_constant): Handle BITINT_TYPE INTEGER_CSTs.
- * vr-values.cc (check_for_binary_op_overflow): Use widest2_int rather
- than widest_int.
- (simplify_using_ranges::simplify_internal_call_using_ranges): Use
- unsigned_type_for rather than build_nonstandard_integer_type.
-
-2023-09-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111296
- * config/riscv/riscv.cc (riscv_modes_tieable_p): Fix incorrect mode
- tieable for RVV modes.
-
-2023-09-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111295
- * config/riscv/riscv-vsetvl.cc (insert_vsetvl): Bug fix.
-
-2023-09-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-switch.def (VLS_ENTRY): Remove TARGET_64BIT
-
-2023-09-06 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.cc (xtensa_expand_scc):
- Add code for particular constants (only 0 and INT_MIN for now)
- for EQ/NE boolean evaluation in SImode.
- * config/xtensa/xtensa.md (*eqne_INT_MIN): Remove because its
- implementation has been integrated into the above.
-
-2023-09-06 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/111232
- * config/riscv/autovec-opt.md (@pred_single_widen_mul<any_extend:su><mode>):
- Delete.
- (*pred_widen_mulsu<mode>): Delete.
- (*pred_single_widen_mul<mode>): Delete.
- (*dual_widen_<any_widen_binop:optab><any_extend:su><mode>):
- Add new combine patterns.
- (*single_widen_sub<any_extend:su><mode>): Ditto.
- (*single_widen_add<any_extend:su><mode>): Ditto.
- (*single_widen_mult<any_extend:su><mode>): Ditto.
- (*dual_widen_mulsu<mode>): Ditto.
- (*dual_widen_mulus<mode>): Ditto.
- (*dual_widen_<optab><mode>): Ditto.
- (*single_widen_add<mode>): Ditto.
- (*single_widen_sub<mode>): Ditto.
- (*single_widen_mult<mode>): Ditto.
- * config/riscv/autovec.md (<optab><mode>3):
- Change define_expand to define_insn_and_split.
- (<optab><mode>2): Ditto.
- (abs<mode>2): Ditto.
- (smul<mode>3_highpart): Ditto.
- (umul<mode>3_highpart): Ditto.
-
-2023-09-06 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-protos.h (riscv_declare_function_name): Add protos.
- (riscv_asm_output_alias): Ditto.
- (riscv_asm_output_external): Ditto.
- * config/riscv/riscv.cc (riscv_asm_output_variant_cc):
- Output .variant_cc directive for vector function.
- (riscv_declare_function_name): Ditto.
- (riscv_asm_output_alias): Ditto.
- (riscv_asm_output_external): Ditto.
- * config/riscv/riscv.h (ASM_DECLARE_FUNCTION_NAME):
- Implement ASM_DECLARE_FUNCTION_NAME.
- (ASM_OUTPUT_DEF_FROM_DECLS): Implement ASM_OUTPUT_DEF_FROM_DECLS.
- (ASM_OUTPUT_EXTERNAL): Implement ASM_OUTPUT_EXTERNAL.
-
-2023-09-06 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls): Pass riscv_cc.
- * config/riscv/riscv.cc (struct riscv_frame_info): Add new fileds.
- (riscv_frame_info::reset): Reset new fileds.
- (riscv_call_tls_get_addr): Pass riscv_cc.
- (riscv_function_arg): Return riscv_cc for call patterm.
- (get_riscv_cc): New function return riscv_cc from rtl call_insn.
- (riscv_insn_callee_abi): Implement TARGET_INSN_CALLEE_ABI.
- (riscv_save_reg_p): Add vector callee-saved check.
- (riscv_stack_align): Add vector save area comment.
- (riscv_compute_frame_info): Ditto.
- (riscv_restore_reg): Update for type change.
- (riscv_for_each_saved_v_reg): New function save vector registers.
- (riscv_first_stack_step): Handle funciton with vector callee-saved registers.
- (riscv_expand_prologue): Ditto.
- (riscv_expand_epilogue): Ditto.
- (riscv_output_mi_thunk): Pass riscv_cc.
- (TARGET_INSN_CALLEE_ABI): Implement TARGET_INSN_CALLEE_ABI.
- * config/riscv/riscv.h (get_riscv_cc): Export get_riscv_cc function.
- * config/riscv/riscv.md: Add CALLEE_CC operand for call pattern.
-
-2023-09-06 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-protos.h (builtin_type_p): New function for checking vector type.
- * config/riscv/riscv-vector-builtins.cc (builtin_type_p): Ditto.
- * config/riscv/riscv.cc (struct riscv_arg_info): New fields.
- (riscv_init_cumulative_args): Setup variant_cc field.
- (riscv_vector_type_p): New function for checking vector type.
- (riscv_hard_regno_nregs): Hoist declare.
- (riscv_get_vector_arg): Subroutine of riscv_get_arg_info.
- (riscv_get_arg_info): Support vector cc.
- (riscv_function_arg_advance): Update cum.
- (riscv_pass_by_reference): Handle vector args.
- (riscv_v_abi): New function return vector abi.
- (riscv_return_value_is_vector_type_p): New function for check vector arguments.
- (riscv_arguments_is_vector_type_p): New function for check vector returns.
- (riscv_fntype_abi): Implement TARGET_FNTYPE_ABI.
- (TARGET_FNTYPE_ABI): Implement TARGET_FNTYPE_ABI.
- * config/riscv/riscv.h (GCC_RISCV_H): Define macros for vector abi.
- (MAX_ARGS_IN_VECTOR_REGISTERS): Ditto.
- (MAX_ARGS_IN_MASK_REGISTERS): Ditto.
- (V_ARG_FIRST): Ditto.
- (V_ARG_LAST): Ditto.
- (enum riscv_cc): Define all RISCV_CC variants.
- * config/riscv/riscv.opt: Add --param=riscv-vector-abi.
-
-2023-09-06 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_<optab><mode>):
- Add sqrt + vcond_mask combine pattern.
- * config/riscv/autovec.md (<optab><mode>2):
- Change define_expand to define_insn_and_split.
-
-2023-09-06 Jason Merrill <jason@redhat.com>
-
- * common.opt: Update -fabi-version=19.
-
-2023-09-06 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * config/riscv/zicond.md: Add closing parent to a comment.
-
-2023-09-06 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move): Force
- large constant cons/alt into a register.
-
-2023-09-05 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.cc (riscv_build_integer_1): Don't
- require one zero bit in the upper 32 bits for LI+RORI synthesis.
-
-2023-09-05 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/bitmanip.md (bswapsi2): Expose for TARGET_64BIT.
-
-2023-09-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/98710
- * match.pd (`(x | c) & ~(y | c)`, `(x & c) | ~(y & c)`): New pattern.
- (`x & ~(y | x)`, `x | ~(y & x)`): New patterns.
-
-2023-09-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/103536
- * match.pd (`(x | y) & (x & z)`,
- `(x & y) | (x | z)`): New patterns.
-
-2023-09-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/107137
- * match.pd (`(nop_convert)-(convert)a`): New pattern.
-
-2023-09-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/96694
- * match.pd (`~MAX(~X, Y)`, `~MIN(~X, Y)`): New patterns.
-
-2023-09-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/105832
- * match.pd (`(1 >> X) != 0`): New pattern
-
-2023-09-05 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/riscv.md: Update/Add types
-
-2023-09-05 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/pic.md: Update types
-
-2023-09-05 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.cc (riscv_build_integer_1): Enable constant
- synthesis with rotate-right for XTheadBb.
-
-2023-09-05 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/zicond.md: Fix op2 pattern.
-
-2023-09-05 Szabolcs Nagy <szabolcs.nagy@arm.com>
-
- * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): Remove dup.
-
-2023-09-05 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
- Define to 0 if not defined yet.
-
-2023-09-05 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/linux.h (TARGET_ASM_FILE_END): Move ...
- * config/riscv/riscv.cc (TARGET_ASM_FILE_END): to here.
-
-2023-09-05 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-vls.md (copysign<mode>3): New pattern.
- * config/riscv/vector.md: Extend iterator for VLS.
-
-2023-09-05 Lulu Cheng <chenglulu@loongson.cn>
-
- * config.gcc: Export the header file lasxintrin.h.
- * config/loongarch/loongarch-builtins.cc (enum loongarch_builtin_type):
- Add Loongson ASX builtin functions support.
- (AVAIL_ALL): Ditto.
- (LASX_BUILTIN): Ditto.
- (LASX_NO_TARGET_BUILTIN): Ditto.
- (LASX_BUILTIN_TEST_BRANCH): Ditto.
- (CODE_FOR_lasx_xvsadd_b): Ditto.
- (CODE_FOR_lasx_xvsadd_h): Ditto.
- (CODE_FOR_lasx_xvsadd_w): Ditto.
- (CODE_FOR_lasx_xvsadd_d): Ditto.
- (CODE_FOR_lasx_xvsadd_bu): Ditto.
- (CODE_FOR_lasx_xvsadd_hu): Ditto.
- (CODE_FOR_lasx_xvsadd_wu): Ditto.
- (CODE_FOR_lasx_xvsadd_du): Ditto.
- (CODE_FOR_lasx_xvadd_b): Ditto.
- (CODE_FOR_lasx_xvadd_h): Ditto.
- (CODE_FOR_lasx_xvadd_w): Ditto.
- (CODE_FOR_lasx_xvadd_d): Ditto.
- (CODE_FOR_lasx_xvaddi_bu): Ditto.
- (CODE_FOR_lasx_xvaddi_hu): Ditto.
- (CODE_FOR_lasx_xvaddi_wu): Ditto.
- (CODE_FOR_lasx_xvaddi_du): Ditto.
- (CODE_FOR_lasx_xvand_v): Ditto.
- (CODE_FOR_lasx_xvandi_b): Ditto.
- (CODE_FOR_lasx_xvbitsel_v): Ditto.
- (CODE_FOR_lasx_xvseqi_b): Ditto.
- (CODE_FOR_lasx_xvseqi_h): Ditto.
- (CODE_FOR_lasx_xvseqi_w): Ditto.
- (CODE_FOR_lasx_xvseqi_d): Ditto.
- (CODE_FOR_lasx_xvslti_b): Ditto.
- (CODE_FOR_lasx_xvslti_h): Ditto.
- (CODE_FOR_lasx_xvslti_w): Ditto.
- (CODE_FOR_lasx_xvslti_d): Ditto.
- (CODE_FOR_lasx_xvslti_bu): Ditto.
- (CODE_FOR_lasx_xvslti_hu): Ditto.
- (CODE_FOR_lasx_xvslti_wu): Ditto.
- (CODE_FOR_lasx_xvslti_du): Ditto.
- (CODE_FOR_lasx_xvslei_b): Ditto.
- (CODE_FOR_lasx_xvslei_h): Ditto.
- (CODE_FOR_lasx_xvslei_w): Ditto.
- (CODE_FOR_lasx_xvslei_d): Ditto.
- (CODE_FOR_lasx_xvslei_bu): Ditto.
- (CODE_FOR_lasx_xvslei_hu): Ditto.
- (CODE_FOR_lasx_xvslei_wu): Ditto.
- (CODE_FOR_lasx_xvslei_du): Ditto.
- (CODE_FOR_lasx_xvdiv_b): Ditto.
- (CODE_FOR_lasx_xvdiv_h): Ditto.
- (CODE_FOR_lasx_xvdiv_w): Ditto.
- (CODE_FOR_lasx_xvdiv_d): Ditto.
- (CODE_FOR_lasx_xvdiv_bu): Ditto.
- (CODE_FOR_lasx_xvdiv_hu): Ditto.
- (CODE_FOR_lasx_xvdiv_wu): Ditto.
- (CODE_FOR_lasx_xvdiv_du): Ditto.
- (CODE_FOR_lasx_xvfadd_s): Ditto.
- (CODE_FOR_lasx_xvfadd_d): Ditto.
- (CODE_FOR_lasx_xvftintrz_w_s): Ditto.
- (CODE_FOR_lasx_xvftintrz_l_d): Ditto.
- (CODE_FOR_lasx_xvftintrz_wu_s): Ditto.
- (CODE_FOR_lasx_xvftintrz_lu_d): Ditto.
- (CODE_FOR_lasx_xvffint_s_w): Ditto.
- (CODE_FOR_lasx_xvffint_d_l): Ditto.
- (CODE_FOR_lasx_xvffint_s_wu): Ditto.
- (CODE_FOR_lasx_xvffint_d_lu): Ditto.
- (CODE_FOR_lasx_xvfsub_s): Ditto.
- (CODE_FOR_lasx_xvfsub_d): Ditto.
- (CODE_FOR_lasx_xvfmul_s): Ditto.
- (CODE_FOR_lasx_xvfmul_d): Ditto.
- (CODE_FOR_lasx_xvfdiv_s): Ditto.
- (CODE_FOR_lasx_xvfdiv_d): Ditto.
- (CODE_FOR_lasx_xvfmax_s): Ditto.
- (CODE_FOR_lasx_xvfmax_d): Ditto.
- (CODE_FOR_lasx_xvfmin_s): Ditto.
- (CODE_FOR_lasx_xvfmin_d): Ditto.
- (CODE_FOR_lasx_xvfsqrt_s): Ditto.
- (CODE_FOR_lasx_xvfsqrt_d): Ditto.
- (CODE_FOR_lasx_xvflogb_s): Ditto.
- (CODE_FOR_lasx_xvflogb_d): Ditto.
- (CODE_FOR_lasx_xvmax_b): Ditto.
- (CODE_FOR_lasx_xvmax_h): Ditto.
- (CODE_FOR_lasx_xvmax_w): Ditto.
- (CODE_FOR_lasx_xvmax_d): Ditto.
- (CODE_FOR_lasx_xvmaxi_b): Ditto.
- (CODE_FOR_lasx_xvmaxi_h): Ditto.
- (CODE_FOR_lasx_xvmaxi_w): Ditto.
- (CODE_FOR_lasx_xvmaxi_d): Ditto.
- (CODE_FOR_lasx_xvmax_bu): Ditto.
- (CODE_FOR_lasx_xvmax_hu): Ditto.
- (CODE_FOR_lasx_xvmax_wu): Ditto.
- (CODE_FOR_lasx_xvmax_du): Ditto.
- (CODE_FOR_lasx_xvmaxi_bu): Ditto.
- (CODE_FOR_lasx_xvmaxi_hu): Ditto.
- (CODE_FOR_lasx_xvmaxi_wu): Ditto.
- (CODE_FOR_lasx_xvmaxi_du): Ditto.
- (CODE_FOR_lasx_xvmin_b): Ditto.
- (CODE_FOR_lasx_xvmin_h): Ditto.
- (CODE_FOR_lasx_xvmin_w): Ditto.
- (CODE_FOR_lasx_xvmin_d): Ditto.
- (CODE_FOR_lasx_xvmini_b): Ditto.
- (CODE_FOR_lasx_xvmini_h): Ditto.
- (CODE_FOR_lasx_xvmini_w): Ditto.
- (CODE_FOR_lasx_xvmini_d): Ditto.
- (CODE_FOR_lasx_xvmin_bu): Ditto.
- (CODE_FOR_lasx_xvmin_hu): Ditto.
- (CODE_FOR_lasx_xvmin_wu): Ditto.
- (CODE_FOR_lasx_xvmin_du): Ditto.
- (CODE_FOR_lasx_xvmini_bu): Ditto.
- (CODE_FOR_lasx_xvmini_hu): Ditto.
- (CODE_FOR_lasx_xvmini_wu): Ditto.
- (CODE_FOR_lasx_xvmini_du): Ditto.
- (CODE_FOR_lasx_xvmod_b): Ditto.
- (CODE_FOR_lasx_xvmod_h): Ditto.
- (CODE_FOR_lasx_xvmod_w): Ditto.
- (CODE_FOR_lasx_xvmod_d): Ditto.
- (CODE_FOR_lasx_xvmod_bu): Ditto.
- (CODE_FOR_lasx_xvmod_hu): Ditto.
- (CODE_FOR_lasx_xvmod_wu): Ditto.
- (CODE_FOR_lasx_xvmod_du): Ditto.
- (CODE_FOR_lasx_xvmul_b): Ditto.
- (CODE_FOR_lasx_xvmul_h): Ditto.
- (CODE_FOR_lasx_xvmul_w): Ditto.
- (CODE_FOR_lasx_xvmul_d): Ditto.
- (CODE_FOR_lasx_xvclz_b): Ditto.
- (CODE_FOR_lasx_xvclz_h): Ditto.
- (CODE_FOR_lasx_xvclz_w): Ditto.
- (CODE_FOR_lasx_xvclz_d): Ditto.
- (CODE_FOR_lasx_xvnor_v): Ditto.
- (CODE_FOR_lasx_xvor_v): Ditto.
- (CODE_FOR_lasx_xvori_b): Ditto.
- (CODE_FOR_lasx_xvnori_b): Ditto.
- (CODE_FOR_lasx_xvpcnt_b): Ditto.
- (CODE_FOR_lasx_xvpcnt_h): Ditto.
- (CODE_FOR_lasx_xvpcnt_w): Ditto.
- (CODE_FOR_lasx_xvpcnt_d): Ditto.
- (CODE_FOR_lasx_xvxor_v): Ditto.
- (CODE_FOR_lasx_xvxori_b): Ditto.
- (CODE_FOR_lasx_xvsll_b): Ditto.
- (CODE_FOR_lasx_xvsll_h): Ditto.
- (CODE_FOR_lasx_xvsll_w): Ditto.
- (CODE_FOR_lasx_xvsll_d): Ditto.
- (CODE_FOR_lasx_xvslli_b): Ditto.
- (CODE_FOR_lasx_xvslli_h): Ditto.
- (CODE_FOR_lasx_xvslli_w): Ditto.
- (CODE_FOR_lasx_xvslli_d): Ditto.
- (CODE_FOR_lasx_xvsra_b): Ditto.
- (CODE_FOR_lasx_xvsra_h): Ditto.
- (CODE_FOR_lasx_xvsra_w): Ditto.
- (CODE_FOR_lasx_xvsra_d): Ditto.
- (CODE_FOR_lasx_xvsrai_b): Ditto.
- (CODE_FOR_lasx_xvsrai_h): Ditto.
- (CODE_FOR_lasx_xvsrai_w): Ditto.
- (CODE_FOR_lasx_xvsrai_d): Ditto.
- (CODE_FOR_lasx_xvsrl_b): Ditto.
- (CODE_FOR_lasx_xvsrl_h): Ditto.
- (CODE_FOR_lasx_xvsrl_w): Ditto.
- (CODE_FOR_lasx_xvsrl_d): Ditto.
- (CODE_FOR_lasx_xvsrli_b): Ditto.
- (CODE_FOR_lasx_xvsrli_h): Ditto.
- (CODE_FOR_lasx_xvsrli_w): Ditto.
- (CODE_FOR_lasx_xvsrli_d): Ditto.
- (CODE_FOR_lasx_xvsub_b): Ditto.
- (CODE_FOR_lasx_xvsub_h): Ditto.
- (CODE_FOR_lasx_xvsub_w): Ditto.
- (CODE_FOR_lasx_xvsub_d): Ditto.
- (CODE_FOR_lasx_xvsubi_bu): Ditto.
- (CODE_FOR_lasx_xvsubi_hu): Ditto.
- (CODE_FOR_lasx_xvsubi_wu): Ditto.
- (CODE_FOR_lasx_xvsubi_du): Ditto.
- (CODE_FOR_lasx_xvpackod_d): Ditto.
- (CODE_FOR_lasx_xvpackev_d): Ditto.
- (CODE_FOR_lasx_xvpickod_d): Ditto.
- (CODE_FOR_lasx_xvpickev_d): Ditto.
- (CODE_FOR_lasx_xvrepli_b): Ditto.
- (CODE_FOR_lasx_xvrepli_h): Ditto.
- (CODE_FOR_lasx_xvrepli_w): Ditto.
- (CODE_FOR_lasx_xvrepli_d): Ditto.
- (CODE_FOR_lasx_xvandn_v): Ditto.
- (CODE_FOR_lasx_xvorn_v): Ditto.
- (CODE_FOR_lasx_xvneg_b): Ditto.
- (CODE_FOR_lasx_xvneg_h): Ditto.
- (CODE_FOR_lasx_xvneg_w): Ditto.
- (CODE_FOR_lasx_xvneg_d): Ditto.
- (CODE_FOR_lasx_xvbsrl_v): Ditto.
- (CODE_FOR_lasx_xvbsll_v): Ditto.
- (CODE_FOR_lasx_xvfmadd_s): Ditto.
- (CODE_FOR_lasx_xvfmadd_d): Ditto.
- (CODE_FOR_lasx_xvfmsub_s): Ditto.
- (CODE_FOR_lasx_xvfmsub_d): Ditto.
- (CODE_FOR_lasx_xvfnmadd_s): Ditto.
- (CODE_FOR_lasx_xvfnmadd_d): Ditto.
- (CODE_FOR_lasx_xvfnmsub_s): Ditto.
- (CODE_FOR_lasx_xvfnmsub_d): Ditto.
- (CODE_FOR_lasx_xvpermi_q): Ditto.
- (CODE_FOR_lasx_xvpermi_d): Ditto.
- (CODE_FOR_lasx_xbnz_v): Ditto.
- (CODE_FOR_lasx_xbz_v): Ditto.
- (CODE_FOR_lasx_xvssub_b): Ditto.
- (CODE_FOR_lasx_xvssub_h): Ditto.
- (CODE_FOR_lasx_xvssub_w): Ditto.
- (CODE_FOR_lasx_xvssub_d): Ditto.
- (CODE_FOR_lasx_xvssub_bu): Ditto.
- (CODE_FOR_lasx_xvssub_hu): Ditto.
- (CODE_FOR_lasx_xvssub_wu): Ditto.
- (CODE_FOR_lasx_xvssub_du): Ditto.
- (CODE_FOR_lasx_xvabsd_b): Ditto.
- (CODE_FOR_lasx_xvabsd_h): Ditto.
- (CODE_FOR_lasx_xvabsd_w): Ditto.
- (CODE_FOR_lasx_xvabsd_d): Ditto.
- (CODE_FOR_lasx_xvabsd_bu): Ditto.
- (CODE_FOR_lasx_xvabsd_hu): Ditto.
- (CODE_FOR_lasx_xvabsd_wu): Ditto.
- (CODE_FOR_lasx_xvabsd_du): Ditto.
- (CODE_FOR_lasx_xvavg_b): Ditto.
- (CODE_FOR_lasx_xvavg_h): Ditto.
- (CODE_FOR_lasx_xvavg_w): Ditto.
- (CODE_FOR_lasx_xvavg_d): Ditto.
- (CODE_FOR_lasx_xvavg_bu): Ditto.
- (CODE_FOR_lasx_xvavg_hu): Ditto.
- (CODE_FOR_lasx_xvavg_wu): Ditto.
- (CODE_FOR_lasx_xvavg_du): Ditto.
- (CODE_FOR_lasx_xvavgr_b): Ditto.
- (CODE_FOR_lasx_xvavgr_h): Ditto.
- (CODE_FOR_lasx_xvavgr_w): Ditto.
- (CODE_FOR_lasx_xvavgr_d): Ditto.
- (CODE_FOR_lasx_xvavgr_bu): Ditto.
- (CODE_FOR_lasx_xvavgr_hu): Ditto.
- (CODE_FOR_lasx_xvavgr_wu): Ditto.
- (CODE_FOR_lasx_xvavgr_du): Ditto.
- (CODE_FOR_lasx_xvmuh_b): Ditto.
- (CODE_FOR_lasx_xvmuh_h): Ditto.
- (CODE_FOR_lasx_xvmuh_w): Ditto.
- (CODE_FOR_lasx_xvmuh_d): Ditto.
- (CODE_FOR_lasx_xvmuh_bu): Ditto.
- (CODE_FOR_lasx_xvmuh_hu): Ditto.
- (CODE_FOR_lasx_xvmuh_wu): Ditto.
- (CODE_FOR_lasx_xvmuh_du): Ditto.
- (CODE_FOR_lasx_xvssran_b_h): Ditto.
- (CODE_FOR_lasx_xvssran_h_w): Ditto.
- (CODE_FOR_lasx_xvssran_w_d): Ditto.
- (CODE_FOR_lasx_xvssran_bu_h): Ditto.
- (CODE_FOR_lasx_xvssran_hu_w): Ditto.
- (CODE_FOR_lasx_xvssran_wu_d): Ditto.
- (CODE_FOR_lasx_xvssrarn_b_h): Ditto.
- (CODE_FOR_lasx_xvssrarn_h_w): Ditto.
- (CODE_FOR_lasx_xvssrarn_w_d): Ditto.
- (CODE_FOR_lasx_xvssrarn_bu_h): Ditto.
- (CODE_FOR_lasx_xvssrarn_hu_w): Ditto.
- (CODE_FOR_lasx_xvssrarn_wu_d): Ditto.
- (CODE_FOR_lasx_xvssrln_bu_h): Ditto.
- (CODE_FOR_lasx_xvssrln_hu_w): Ditto.
- (CODE_FOR_lasx_xvssrln_wu_d): Ditto.
- (CODE_FOR_lasx_xvssrlrn_bu_h): Ditto.
- (CODE_FOR_lasx_xvssrlrn_hu_w): Ditto.
- (CODE_FOR_lasx_xvssrlrn_wu_d): Ditto.
- (CODE_FOR_lasx_xvftint_w_s): Ditto.
- (CODE_FOR_lasx_xvftint_l_d): Ditto.
- (CODE_FOR_lasx_xvftint_wu_s): Ditto.
- (CODE_FOR_lasx_xvftint_lu_d): Ditto.
- (CODE_FOR_lasx_xvsllwil_h_b): Ditto.
- (CODE_FOR_lasx_xvsllwil_w_h): Ditto.
- (CODE_FOR_lasx_xvsllwil_d_w): Ditto.
- (CODE_FOR_lasx_xvsllwil_hu_bu): Ditto.
- (CODE_FOR_lasx_xvsllwil_wu_hu): Ditto.
- (CODE_FOR_lasx_xvsllwil_du_wu): Ditto.
- (CODE_FOR_lasx_xvsat_b): Ditto.
- (CODE_FOR_lasx_xvsat_h): Ditto.
- (CODE_FOR_lasx_xvsat_w): Ditto.
- (CODE_FOR_lasx_xvsat_d): Ditto.
- (CODE_FOR_lasx_xvsat_bu): Ditto.
- (CODE_FOR_lasx_xvsat_hu): Ditto.
- (CODE_FOR_lasx_xvsat_wu): Ditto.
- (CODE_FOR_lasx_xvsat_du): Ditto.
- (loongarch_builtin_vectorized_function): Ditto.
- (loongarch_expand_builtin_insn): Ditto.
- (loongarch_expand_builtin): Ditto.
- * config/loongarch/loongarch-ftypes.def (1): Ditto.
- (2): Ditto.
- (3): Ditto.
- (4): Ditto.
- * config/loongarch/lasxintrin.h: New file.
-
-2023-09-05 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch-modes.def
- (VECTOR_MODES): Add Loongson ASX instruction support.
- * config/loongarch/loongarch-protos.h (loongarch_split_256bit_move): Ditto.
- (loongarch_split_256bit_move_p): Ditto.
- (loongarch_expand_vector_group_init): Ditto.
- (loongarch_expand_vec_perm_1): Ditto.
- * config/loongarch/loongarch.cc (loongarch_symbol_insns): Ditto.
- (loongarch_valid_offset_p): Ditto.
- (loongarch_address_insns): Ditto.
- (loongarch_const_insns): Ditto.
- (loongarch_legitimize_move): Ditto.
- (loongarch_builtin_vectorization_cost): Ditto.
- (loongarch_split_move_p): Ditto.
- (loongarch_split_move): Ditto.
- (loongarch_output_move_index_float): Ditto.
- (loongarch_split_256bit_move_p): Ditto.
- (loongarch_split_256bit_move): Ditto.
- (loongarch_output_move): Ditto.
- (loongarch_print_operand_reloc): Ditto.
- (loongarch_print_operand): Ditto.
- (loongarch_hard_regno_mode_ok_uncached): Ditto.
- (loongarch_hard_regno_nregs): Ditto.
- (loongarch_class_max_nregs): Ditto.
- (loongarch_can_change_mode_class): Ditto.
- (loongarch_mode_ok_for_mov_fmt_p): Ditto.
- (loongarch_vector_mode_supported_p): Ditto.
- (loongarch_preferred_simd_mode): Ditto.
- (loongarch_autovectorize_vector_modes): Ditto.
- (loongarch_lsx_output_division): Ditto.
- (loongarch_expand_lsx_shuffle): Ditto.
- (loongarch_expand_vec_perm): Ditto.
- (loongarch_expand_vec_perm_interleave): Ditto.
- (loongarch_try_expand_lsx_vshuf_const): Ditto.
- (loongarch_expand_vec_perm_even_odd_1): Ditto.
- (loongarch_expand_vec_perm_even_odd): Ditto.
- (loongarch_expand_vec_perm_1): Ditto.
- (loongarch_expand_vec_perm_const_2): Ditto.
- (loongarch_is_quad_duplicate): Ditto.
- (loongarch_is_double_duplicate): Ditto.
- (loongarch_is_odd_extraction): Ditto.
- (loongarch_is_even_extraction): Ditto.
- (loongarch_is_extraction_permutation): Ditto.
- (loongarch_is_center_extraction): Ditto.
- (loongarch_is_reversing_permutation): Ditto.
- (loongarch_is_di_misalign_extract): Ditto.
- (loongarch_is_si_misalign_extract): Ditto.
- (loongarch_is_lasx_lowpart_interleave): Ditto.
- (loongarch_is_lasx_lowpart_interleave_2): Ditto.
- (COMPARE_SELECTOR): Ditto.
- (loongarch_is_lasx_lowpart_extract): Ditto.
- (loongarch_is_lasx_highpart_interleave): Ditto.
- (loongarch_is_lasx_highpart_interleave_2): Ditto.
- (loongarch_is_elem_duplicate): Ditto.
- (loongarch_is_op_reverse_perm): Ditto.
- (loongarch_is_single_op_perm): Ditto.
- (loongarch_is_divisible_perm): Ditto.
- (loongarch_is_triple_stride_extract): Ditto.
- (loongarch_vectorize_vec_perm_const): Ditto.
- (loongarch_cpu_sched_reassociation_width): Ditto.
- (loongarch_expand_vector_extract): Ditto.
- (emit_reduc_half): Ditto.
- (loongarch_expand_vec_unpack): Ditto.
- (loongarch_expand_vector_group_init): Ditto.
- (loongarch_expand_vector_init): Ditto.
- (loongarch_expand_lsx_cmp): Ditto.
- (loongarch_builtin_support_vector_misalignment): Ditto.
- * config/loongarch/loongarch.h (UNITS_PER_LASX_REG): Ditto.
- (BITS_PER_LASX_REG): Ditto.
- (STRUCTURE_SIZE_BOUNDARY): Ditto.
- (LASX_REG_FIRST): Ditto.
- (LASX_REG_LAST): Ditto.
- (LASX_REG_NUM): Ditto.
- (LASX_REG_P): Ditto.
- (LASX_REG_RTX_P): Ditto.
- (LASX_SUPPORTED_MODE_P): Ditto.
- * config/loongarch/loongarch.md: Ditto.
- * config/loongarch/lasx.md: New file.
-
-2023-09-05 Lulu Cheng <chenglulu@loongson.cn>
-
- * config.gcc: Export the header file lsxintrin.h.
- * config/loongarch/loongarch-builtins.cc (LARCH_FTYPE_NAME4): Add builtin function support.
- (enum loongarch_builtin_type): Ditto.
- (AVAIL_ALL): Ditto.
- (LARCH_BUILTIN): Ditto.
- (LSX_BUILTIN): Ditto.
- (LSX_BUILTIN_TEST_BRANCH): Ditto.
- (LSX_NO_TARGET_BUILTIN): Ditto.
- (CODE_FOR_lsx_vsadd_b): Ditto.
- (CODE_FOR_lsx_vsadd_h): Ditto.
- (CODE_FOR_lsx_vsadd_w): Ditto.
- (CODE_FOR_lsx_vsadd_d): Ditto.
- (CODE_FOR_lsx_vsadd_bu): Ditto.
- (CODE_FOR_lsx_vsadd_hu): Ditto.
- (CODE_FOR_lsx_vsadd_wu): Ditto.
- (CODE_FOR_lsx_vsadd_du): Ditto.
- (CODE_FOR_lsx_vadd_b): Ditto.
- (CODE_FOR_lsx_vadd_h): Ditto.
- (CODE_FOR_lsx_vadd_w): Ditto.
- (CODE_FOR_lsx_vadd_d): Ditto.
- (CODE_FOR_lsx_vaddi_bu): Ditto.
- (CODE_FOR_lsx_vaddi_hu): Ditto.
- (CODE_FOR_lsx_vaddi_wu): Ditto.
- (CODE_FOR_lsx_vaddi_du): Ditto.
- (CODE_FOR_lsx_vand_v): Ditto.
- (CODE_FOR_lsx_vandi_b): Ditto.
- (CODE_FOR_lsx_bnz_v): Ditto.
- (CODE_FOR_lsx_bz_v): Ditto.
- (CODE_FOR_lsx_vbitsel_v): Ditto.
- (CODE_FOR_lsx_vseqi_b): Ditto.
- (CODE_FOR_lsx_vseqi_h): Ditto.
- (CODE_FOR_lsx_vseqi_w): Ditto.
- (CODE_FOR_lsx_vseqi_d): Ditto.
- (CODE_FOR_lsx_vslti_b): Ditto.
- (CODE_FOR_lsx_vslti_h): Ditto.
- (CODE_FOR_lsx_vslti_w): Ditto.
- (CODE_FOR_lsx_vslti_d): Ditto.
- (CODE_FOR_lsx_vslti_bu): Ditto.
- (CODE_FOR_lsx_vslti_hu): Ditto.
- (CODE_FOR_lsx_vslti_wu): Ditto.
- (CODE_FOR_lsx_vslti_du): Ditto.
- (CODE_FOR_lsx_vslei_b): Ditto.
- (CODE_FOR_lsx_vslei_h): Ditto.
- (CODE_FOR_lsx_vslei_w): Ditto.
- (CODE_FOR_lsx_vslei_d): Ditto.
- (CODE_FOR_lsx_vslei_bu): Ditto.
- (CODE_FOR_lsx_vslei_hu): Ditto.
- (CODE_FOR_lsx_vslei_wu): Ditto.
- (CODE_FOR_lsx_vslei_du): Ditto.
- (CODE_FOR_lsx_vdiv_b): Ditto.
- (CODE_FOR_lsx_vdiv_h): Ditto.
- (CODE_FOR_lsx_vdiv_w): Ditto.
- (CODE_FOR_lsx_vdiv_d): Ditto.
- (CODE_FOR_lsx_vdiv_bu): Ditto.
- (CODE_FOR_lsx_vdiv_hu): Ditto.
- (CODE_FOR_lsx_vdiv_wu): Ditto.
- (CODE_FOR_lsx_vdiv_du): Ditto.
- (CODE_FOR_lsx_vfadd_s): Ditto.
- (CODE_FOR_lsx_vfadd_d): Ditto.
- (CODE_FOR_lsx_vftintrz_w_s): Ditto.
- (CODE_FOR_lsx_vftintrz_l_d): Ditto.
- (CODE_FOR_lsx_vftintrz_wu_s): Ditto.
- (CODE_FOR_lsx_vftintrz_lu_d): Ditto.
- (CODE_FOR_lsx_vffint_s_w): Ditto.
- (CODE_FOR_lsx_vffint_d_l): Ditto.
- (CODE_FOR_lsx_vffint_s_wu): Ditto.
- (CODE_FOR_lsx_vffint_d_lu): Ditto.
- (CODE_FOR_lsx_vfsub_s): Ditto.
- (CODE_FOR_lsx_vfsub_d): Ditto.
- (CODE_FOR_lsx_vfmul_s): Ditto.
- (CODE_FOR_lsx_vfmul_d): Ditto.
- (CODE_FOR_lsx_vfdiv_s): Ditto.
- (CODE_FOR_lsx_vfdiv_d): Ditto.
- (CODE_FOR_lsx_vfmax_s): Ditto.
- (CODE_FOR_lsx_vfmax_d): Ditto.
- (CODE_FOR_lsx_vfmin_s): Ditto.
- (CODE_FOR_lsx_vfmin_d): Ditto.
- (CODE_FOR_lsx_vfsqrt_s): Ditto.
- (CODE_FOR_lsx_vfsqrt_d): Ditto.
- (CODE_FOR_lsx_vflogb_s): Ditto.
- (CODE_FOR_lsx_vflogb_d): Ditto.
- (CODE_FOR_lsx_vmax_b): Ditto.
- (CODE_FOR_lsx_vmax_h): Ditto.
- (CODE_FOR_lsx_vmax_w): Ditto.
- (CODE_FOR_lsx_vmax_d): Ditto.
- (CODE_FOR_lsx_vmaxi_b): Ditto.
- (CODE_FOR_lsx_vmaxi_h): Ditto.
- (CODE_FOR_lsx_vmaxi_w): Ditto.
- (CODE_FOR_lsx_vmaxi_d): Ditto.
- (CODE_FOR_lsx_vmax_bu): Ditto.
- (CODE_FOR_lsx_vmax_hu): Ditto.
- (CODE_FOR_lsx_vmax_wu): Ditto.
- (CODE_FOR_lsx_vmax_du): Ditto.
- (CODE_FOR_lsx_vmaxi_bu): Ditto.
- (CODE_FOR_lsx_vmaxi_hu): Ditto.
- (CODE_FOR_lsx_vmaxi_wu): Ditto.
- (CODE_FOR_lsx_vmaxi_du): Ditto.
- (CODE_FOR_lsx_vmin_b): Ditto.
- (CODE_FOR_lsx_vmin_h): Ditto.
- (CODE_FOR_lsx_vmin_w): Ditto.
- (CODE_FOR_lsx_vmin_d): Ditto.
- (CODE_FOR_lsx_vmini_b): Ditto.
- (CODE_FOR_lsx_vmini_h): Ditto.
- (CODE_FOR_lsx_vmini_w): Ditto.
- (CODE_FOR_lsx_vmini_d): Ditto.
- (CODE_FOR_lsx_vmin_bu): Ditto.
- (CODE_FOR_lsx_vmin_hu): Ditto.
- (CODE_FOR_lsx_vmin_wu): Ditto.
- (CODE_FOR_lsx_vmin_du): Ditto.
- (CODE_FOR_lsx_vmini_bu): Ditto.
- (CODE_FOR_lsx_vmini_hu): Ditto.
- (CODE_FOR_lsx_vmini_wu): Ditto.
- (CODE_FOR_lsx_vmini_du): Ditto.
- (CODE_FOR_lsx_vmod_b): Ditto.
- (CODE_FOR_lsx_vmod_h): Ditto.
- (CODE_FOR_lsx_vmod_w): Ditto.
- (CODE_FOR_lsx_vmod_d): Ditto.
- (CODE_FOR_lsx_vmod_bu): Ditto.
- (CODE_FOR_lsx_vmod_hu): Ditto.
- (CODE_FOR_lsx_vmod_wu): Ditto.
- (CODE_FOR_lsx_vmod_du): Ditto.
- (CODE_FOR_lsx_vmul_b): Ditto.
- (CODE_FOR_lsx_vmul_h): Ditto.
- (CODE_FOR_lsx_vmul_w): Ditto.
- (CODE_FOR_lsx_vmul_d): Ditto.
- (CODE_FOR_lsx_vclz_b): Ditto.
- (CODE_FOR_lsx_vclz_h): Ditto.
- (CODE_FOR_lsx_vclz_w): Ditto.
- (CODE_FOR_lsx_vclz_d): Ditto.
- (CODE_FOR_lsx_vnor_v): Ditto.
- (CODE_FOR_lsx_vor_v): Ditto.
- (CODE_FOR_lsx_vori_b): Ditto.
- (CODE_FOR_lsx_vnori_b): Ditto.
- (CODE_FOR_lsx_vpcnt_b): Ditto.
- (CODE_FOR_lsx_vpcnt_h): Ditto.
- (CODE_FOR_lsx_vpcnt_w): Ditto.
- (CODE_FOR_lsx_vpcnt_d): Ditto.
- (CODE_FOR_lsx_vxor_v): Ditto.
- (CODE_FOR_lsx_vxori_b): Ditto.
- (CODE_FOR_lsx_vsll_b): Ditto.
- (CODE_FOR_lsx_vsll_h): Ditto.
- (CODE_FOR_lsx_vsll_w): Ditto.
- (CODE_FOR_lsx_vsll_d): Ditto.
- (CODE_FOR_lsx_vslli_b): Ditto.
- (CODE_FOR_lsx_vslli_h): Ditto.
- (CODE_FOR_lsx_vslli_w): Ditto.
- (CODE_FOR_lsx_vslli_d): Ditto.
- (CODE_FOR_lsx_vsra_b): Ditto.
- (CODE_FOR_lsx_vsra_h): Ditto.
- (CODE_FOR_lsx_vsra_w): Ditto.
- (CODE_FOR_lsx_vsra_d): Ditto.
- (CODE_FOR_lsx_vsrai_b): Ditto.
- (CODE_FOR_lsx_vsrai_h): Ditto.
- (CODE_FOR_lsx_vsrai_w): Ditto.
- (CODE_FOR_lsx_vsrai_d): Ditto.
- (CODE_FOR_lsx_vsrl_b): Ditto.
- (CODE_FOR_lsx_vsrl_h): Ditto.
- (CODE_FOR_lsx_vsrl_w): Ditto.
- (CODE_FOR_lsx_vsrl_d): Ditto.
- (CODE_FOR_lsx_vsrli_b): Ditto.
- (CODE_FOR_lsx_vsrli_h): Ditto.
- (CODE_FOR_lsx_vsrli_w): Ditto.
- (CODE_FOR_lsx_vsrli_d): Ditto.
- (CODE_FOR_lsx_vsub_b): Ditto.
- (CODE_FOR_lsx_vsub_h): Ditto.
- (CODE_FOR_lsx_vsub_w): Ditto.
- (CODE_FOR_lsx_vsub_d): Ditto.
- (CODE_FOR_lsx_vsubi_bu): Ditto.
- (CODE_FOR_lsx_vsubi_hu): Ditto.
- (CODE_FOR_lsx_vsubi_wu): Ditto.
- (CODE_FOR_lsx_vsubi_du): Ditto.
- (CODE_FOR_lsx_vpackod_d): Ditto.
- (CODE_FOR_lsx_vpackev_d): Ditto.
- (CODE_FOR_lsx_vpickod_d): Ditto.
- (CODE_FOR_lsx_vpickev_d): Ditto.
- (CODE_FOR_lsx_vrepli_b): Ditto.
- (CODE_FOR_lsx_vrepli_h): Ditto.
- (CODE_FOR_lsx_vrepli_w): Ditto.
- (CODE_FOR_lsx_vrepli_d): Ditto.
- (CODE_FOR_lsx_vsat_b): Ditto.
- (CODE_FOR_lsx_vsat_h): Ditto.
- (CODE_FOR_lsx_vsat_w): Ditto.
- (CODE_FOR_lsx_vsat_d): Ditto.
- (CODE_FOR_lsx_vsat_bu): Ditto.
- (CODE_FOR_lsx_vsat_hu): Ditto.
- (CODE_FOR_lsx_vsat_wu): Ditto.
- (CODE_FOR_lsx_vsat_du): Ditto.
- (CODE_FOR_lsx_vavg_b): Ditto.
- (CODE_FOR_lsx_vavg_h): Ditto.
- (CODE_FOR_lsx_vavg_w): Ditto.
- (CODE_FOR_lsx_vavg_d): Ditto.
- (CODE_FOR_lsx_vavg_bu): Ditto.
- (CODE_FOR_lsx_vavg_hu): Ditto.
- (CODE_FOR_lsx_vavg_wu): Ditto.
- (CODE_FOR_lsx_vavg_du): Ditto.
- (CODE_FOR_lsx_vavgr_b): Ditto.
- (CODE_FOR_lsx_vavgr_h): Ditto.
- (CODE_FOR_lsx_vavgr_w): Ditto.
- (CODE_FOR_lsx_vavgr_d): Ditto.
- (CODE_FOR_lsx_vavgr_bu): Ditto.
- (CODE_FOR_lsx_vavgr_hu): Ditto.
- (CODE_FOR_lsx_vavgr_wu): Ditto.
- (CODE_FOR_lsx_vavgr_du): Ditto.
- (CODE_FOR_lsx_vssub_b): Ditto.
- (CODE_FOR_lsx_vssub_h): Ditto.
- (CODE_FOR_lsx_vssub_w): Ditto.
- (CODE_FOR_lsx_vssub_d): Ditto.
- (CODE_FOR_lsx_vssub_bu): Ditto.
- (CODE_FOR_lsx_vssub_hu): Ditto.
- (CODE_FOR_lsx_vssub_wu): Ditto.
- (CODE_FOR_lsx_vssub_du): Ditto.
- (CODE_FOR_lsx_vabsd_b): Ditto.
- (CODE_FOR_lsx_vabsd_h): Ditto.
- (CODE_FOR_lsx_vabsd_w): Ditto.
- (CODE_FOR_lsx_vabsd_d): Ditto.
- (CODE_FOR_lsx_vabsd_bu): Ditto.
- (CODE_FOR_lsx_vabsd_hu): Ditto.
- (CODE_FOR_lsx_vabsd_wu): Ditto.
- (CODE_FOR_lsx_vabsd_du): Ditto.
- (CODE_FOR_lsx_vftint_w_s): Ditto.
- (CODE_FOR_lsx_vftint_l_d): Ditto.
- (CODE_FOR_lsx_vftint_wu_s): Ditto.
- (CODE_FOR_lsx_vftint_lu_d): Ditto.
- (CODE_FOR_lsx_vandn_v): Ditto.
- (CODE_FOR_lsx_vorn_v): Ditto.
- (CODE_FOR_lsx_vneg_b): Ditto.
- (CODE_FOR_lsx_vneg_h): Ditto.
- (CODE_FOR_lsx_vneg_w): Ditto.
- (CODE_FOR_lsx_vneg_d): Ditto.
- (CODE_FOR_lsx_vshuf4i_d): Ditto.
- (CODE_FOR_lsx_vbsrl_v): Ditto.
- (CODE_FOR_lsx_vbsll_v): Ditto.
- (CODE_FOR_lsx_vfmadd_s): Ditto.
- (CODE_FOR_lsx_vfmadd_d): Ditto.
- (CODE_FOR_lsx_vfmsub_s): Ditto.
- (CODE_FOR_lsx_vfmsub_d): Ditto.
- (CODE_FOR_lsx_vfnmadd_s): Ditto.
- (CODE_FOR_lsx_vfnmadd_d): Ditto.
- (CODE_FOR_lsx_vfnmsub_s): Ditto.
- (CODE_FOR_lsx_vfnmsub_d): Ditto.
- (CODE_FOR_lsx_vmuh_b): Ditto.
- (CODE_FOR_lsx_vmuh_h): Ditto.
- (CODE_FOR_lsx_vmuh_w): Ditto.
- (CODE_FOR_lsx_vmuh_d): Ditto.
- (CODE_FOR_lsx_vmuh_bu): Ditto.
- (CODE_FOR_lsx_vmuh_hu): Ditto.
- (CODE_FOR_lsx_vmuh_wu): Ditto.
- (CODE_FOR_lsx_vmuh_du): Ditto.
- (CODE_FOR_lsx_vsllwil_h_b): Ditto.
- (CODE_FOR_lsx_vsllwil_w_h): Ditto.
- (CODE_FOR_lsx_vsllwil_d_w): Ditto.
- (CODE_FOR_lsx_vsllwil_hu_bu): Ditto.
- (CODE_FOR_lsx_vsllwil_wu_hu): Ditto.
- (CODE_FOR_lsx_vsllwil_du_wu): Ditto.
- (CODE_FOR_lsx_vssran_b_h): Ditto.
- (CODE_FOR_lsx_vssran_h_w): Ditto.
- (CODE_FOR_lsx_vssran_w_d): Ditto.
- (CODE_FOR_lsx_vssran_bu_h): Ditto.
- (CODE_FOR_lsx_vssran_hu_w): Ditto.
- (CODE_FOR_lsx_vssran_wu_d): Ditto.
- (CODE_FOR_lsx_vssrarn_b_h): Ditto.
- (CODE_FOR_lsx_vssrarn_h_w): Ditto.
- (CODE_FOR_lsx_vssrarn_w_d): Ditto.
- (CODE_FOR_lsx_vssrarn_bu_h): Ditto.
- (CODE_FOR_lsx_vssrarn_hu_w): Ditto.
- (CODE_FOR_lsx_vssrarn_wu_d): Ditto.
- (CODE_FOR_lsx_vssrln_bu_h): Ditto.
- (CODE_FOR_lsx_vssrln_hu_w): Ditto.
- (CODE_FOR_lsx_vssrln_wu_d): Ditto.
- (CODE_FOR_lsx_vssrlrn_bu_h): Ditto.
- (CODE_FOR_lsx_vssrlrn_hu_w): Ditto.
- (CODE_FOR_lsx_vssrlrn_wu_d): Ditto.
- (loongarch_builtin_vector_type): Ditto.
- (loongarch_build_cvpointer_type): Ditto.
- (LARCH_ATYPE_CVPOINTER): Ditto.
- (LARCH_ATYPE_BOOLEAN): Ditto.
- (LARCH_ATYPE_V2SF): Ditto.
- (LARCH_ATYPE_V2HI): Ditto.
- (LARCH_ATYPE_V2SI): Ditto.
- (LARCH_ATYPE_V4QI): Ditto.
- (LARCH_ATYPE_V4HI): Ditto.
- (LARCH_ATYPE_V8QI): Ditto.
- (LARCH_ATYPE_V2DI): Ditto.
- (LARCH_ATYPE_V4SI): Ditto.
- (LARCH_ATYPE_V8HI): Ditto.
- (LARCH_ATYPE_V16QI): Ditto.
- (LARCH_ATYPE_V2DF): Ditto.
- (LARCH_ATYPE_V4SF): Ditto.
- (LARCH_ATYPE_V4DI): Ditto.
- (LARCH_ATYPE_V8SI): Ditto.
- (LARCH_ATYPE_V16HI): Ditto.
- (LARCH_ATYPE_V32QI): Ditto.
- (LARCH_ATYPE_V4DF): Ditto.
- (LARCH_ATYPE_V8SF): Ditto.
- (LARCH_ATYPE_UV2DI): Ditto.
- (LARCH_ATYPE_UV4SI): Ditto.
- (LARCH_ATYPE_UV8HI): Ditto.
- (LARCH_ATYPE_UV16QI): Ditto.
- (LARCH_ATYPE_UV4DI): Ditto.
- (LARCH_ATYPE_UV8SI): Ditto.
- (LARCH_ATYPE_UV16HI): Ditto.
- (LARCH_ATYPE_UV32QI): Ditto.
- (LARCH_ATYPE_UV2SI): Ditto.
- (LARCH_ATYPE_UV4HI): Ditto.
- (LARCH_ATYPE_UV8QI): Ditto.
- (loongarch_builtin_vectorized_function): Ditto.
- (LARCH_GET_BUILTIN): Ditto.
- (loongarch_expand_builtin_insn): Ditto.
- (loongarch_expand_builtin_lsx_test_branch): Ditto.
- (loongarch_expand_builtin): Ditto.
- * config/loongarch/loongarch-ftypes.def (1): Ditto.
- (2): Ditto.
- (3): Ditto.
- (4): Ditto.
- * config/loongarch/lsxintrin.h: New file.
-
-2023-09-05 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/constraints.md (M): Add Loongson LSX base instruction support.
- (N): Ditto.
- (O): Ditto.
- (P): Ditto.
- (R): Ditto.
- (S): Ditto.
- (YG): Ditto.
- (YA): Ditto.
- (YB): Ditto.
- (Yb): Ditto.
- (Yh): Ditto.
- (Yw): Ditto.
- (YI): Ditto.
- (YC): Ditto.
- (YZ): Ditto.
- (Unv5): Ditto.
- (Uuv5): Ditto.
- (Usv5): Ditto.
- (Uuv6): Ditto.
- (Urv8): Ditto.
- * config/loongarch/genopts/loongarch.opt.in: Ditto.
- * config/loongarch/loongarch-builtins.cc (loongarch_gen_const_int_vector): Ditto.
- * config/loongarch/loongarch-modes.def (VECTOR_MODES): Ditto.
- (VECTOR_MODE): Ditto.
- (INT_MODE): Ditto.
- * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p): Ditto.
- (loongarch_split_move_insn): Ditto.
- (loongarch_split_128bit_move): Ditto.
- (loongarch_split_128bit_move_p): Ditto.
- (loongarch_split_lsx_copy_d): Ditto.
- (loongarch_split_lsx_insert_d): Ditto.
- (loongarch_split_lsx_fill_d): Ditto.
- (loongarch_expand_vec_cmp): Ditto.
- (loongarch_const_vector_same_val_p): Ditto.
- (loongarch_const_vector_same_bytes_p): Ditto.
- (loongarch_const_vector_same_int_p): Ditto.
- (loongarch_const_vector_shuffle_set_p): Ditto.
- (loongarch_const_vector_bitimm_set_p): Ditto.
- (loongarch_const_vector_bitimm_clr_p): Ditto.
- (loongarch_lsx_vec_parallel_const_half): Ditto.
- (loongarch_gen_const_int_vector): Ditto.
- (loongarch_lsx_output_division): Ditto.
- (loongarch_expand_vector_init): Ditto.
- (loongarch_expand_vec_unpack): Ditto.
- (loongarch_expand_vec_perm): Ditto.
- (loongarch_expand_vector_extract): Ditto.
- (loongarch_expand_vector_reduc): Ditto.
- (loongarch_ldst_scaled_shift): Ditto.
- (loongarch_expand_vec_cond_expr): Ditto.
- (loongarch_expand_vec_cond_mask_expr): Ditto.
- (loongarch_builtin_vectorized_function): Ditto.
- (loongarch_gen_const_int_vector_shuffle): Ditto.
- (loongarch_build_signbit_mask): Ditto.
- * config/loongarch/loongarch.cc (loongarch_pass_aggregate_num_fpr): Ditto.
- (loongarch_setup_incoming_varargs): Ditto.
- (loongarch_emit_move): Ditto.
- (loongarch_const_vector_bitimm_set_p): Ditto.
- (loongarch_const_vector_bitimm_clr_p): Ditto.
- (loongarch_const_vector_same_val_p): Ditto.
- (loongarch_const_vector_same_bytes_p): Ditto.
- (loongarch_const_vector_same_int_p): Ditto.
- (loongarch_const_vector_shuffle_set_p): Ditto.
- (loongarch_symbol_insns): Ditto.
- (loongarch_cannot_force_const_mem): Ditto.
- (loongarch_valid_offset_p): Ditto.
- (loongarch_valid_index_p): Ditto.
- (loongarch_classify_address): Ditto.
- (loongarch_address_insns): Ditto.
- (loongarch_ldst_scaled_shift): Ditto.
- (loongarch_const_insns): Ditto.
- (loongarch_split_move_insn_p): Ditto.
- (loongarch_subword_at_byte): Ditto.
- (loongarch_legitimize_move): Ditto.
- (loongarch_builtin_vectorization_cost): Ditto.
- (loongarch_split_move_p): Ditto.
- (loongarch_split_move): Ditto.
- (loongarch_split_move_insn): Ditto.
- (loongarch_output_move_index_float): Ditto.
- (loongarch_split_128bit_move_p): Ditto.
- (loongarch_split_128bit_move): Ditto.
- (loongarch_split_lsx_copy_d): Ditto.
- (loongarch_split_lsx_insert_d): Ditto.
- (loongarch_split_lsx_fill_d): Ditto.
- (loongarch_output_move): Ditto.
- (loongarch_extend_comparands): Ditto.
- (loongarch_print_operand_reloc): Ditto.
- (loongarch_print_operand): Ditto.
- (loongarch_hard_regno_mode_ok_uncached): Ditto.
- (loongarch_hard_regno_call_part_clobbered): Ditto.
- (loongarch_hard_regno_nregs): Ditto.
- (loongarch_class_max_nregs): Ditto.
- (loongarch_can_change_mode_class): Ditto.
- (loongarch_mode_ok_for_mov_fmt_p): Ditto.
- (loongarch_secondary_reload): Ditto.
- (loongarch_vector_mode_supported_p): Ditto.
- (loongarch_preferred_simd_mode): Ditto.
- (loongarch_autovectorize_vector_modes): Ditto.
- (loongarch_lsx_output_division): Ditto.
- (loongarch_option_override_internal): Ditto.
- (loongarch_hard_regno_caller_save_mode): Ditto.
- (MAX_VECT_LEN): Ditto.
- (loongarch_spill_class): Ditto.
- (struct expand_vec_perm_d): Ditto.
- (loongarch_promote_function_mode): Ditto.
- (loongarch_expand_vselect): Ditto.
- (loongarch_starting_frame_offset): Ditto.
- (loongarch_expand_vselect_vconcat): Ditto.
- (TARGET_ASM_ALIGNED_DI_OP): Ditto.
- (TARGET_OPTION_OVERRIDE): Ditto.
- (TARGET_LEGITIMIZE_ADDRESS): Ditto.
- (TARGET_ASM_SELECT_RTX_SECTION): Ditto.
- (TARGET_ASM_FUNCTION_RODATA_SECTION): Ditto.
- (loongarch_expand_lsx_shuffle): Ditto.
- (TARGET_SCHED_INIT): Ditto.
- (TARGET_SCHED_REORDER): Ditto.
- (TARGET_SCHED_REORDER2): Ditto.
- (TARGET_SCHED_VARIABLE_ISSUE): Ditto.
- (TARGET_SCHED_ADJUST_COST): Ditto.
- (TARGET_SCHED_ISSUE_RATE): Ditto.
- (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Ditto.
- (TARGET_FUNCTION_OK_FOR_SIBCALL): Ditto.
- (TARGET_VALID_POINTER_MODE): Ditto.
- (TARGET_REGISTER_MOVE_COST): Ditto.
- (TARGET_MEMORY_MOVE_COST): Ditto.
- (TARGET_RTX_COSTS): Ditto.
- (TARGET_ADDRESS_COST): Ditto.
- (TARGET_IN_SMALL_DATA_P): Ditto.
- (TARGET_PREFERRED_RELOAD_CLASS): Ditto.
- (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Ditto.
- (TARGET_EXPAND_BUILTIN_VA_START): Ditto.
- (loongarch_expand_vec_perm): Ditto.
- (TARGET_PROMOTE_FUNCTION_MODE): Ditto.
- (TARGET_RETURN_IN_MEMORY): Ditto.
- (TARGET_FUNCTION_VALUE): Ditto.
- (TARGET_LIBCALL_VALUE): Ditto.
- (loongarch_try_expand_lsx_vshuf_const): Ditto.
- (TARGET_ASM_OUTPUT_MI_THUNK): Ditto.
- (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Ditto.
- (TARGET_PRINT_OPERAND): Ditto.
- (TARGET_PRINT_OPERAND_ADDRESS): Ditto.
- (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Ditto.
- (TARGET_SETUP_INCOMING_VARARGS): Ditto.
- (TARGET_STRICT_ARGUMENT_NAMING): Ditto.
- (TARGET_MUST_PASS_IN_STACK): Ditto.
- (TARGET_PASS_BY_REFERENCE): Ditto.
- (TARGET_ARG_PARTIAL_BYTES): Ditto.
- (TARGET_FUNCTION_ARG): Ditto.
- (TARGET_FUNCTION_ARG_ADVANCE): Ditto.
- (TARGET_FUNCTION_ARG_BOUNDARY): Ditto.
- (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
- (TARGET_INIT_BUILTINS): Ditto.
- (loongarch_expand_vec_perm_const_1): Ditto.
- (loongarch_expand_vec_perm_const_2): Ditto.
- (loongarch_vectorize_vec_perm_const): Ditto.
- (loongarch_cpu_sched_reassociation_width): Ditto.
- (loongarch_sched_reassociation_width): Ditto.
- (loongarch_expand_vector_extract): Ditto.
- (emit_reduc_half): Ditto.
- (loongarch_expand_vector_reduc): Ditto.
- (loongarch_expand_vec_unpack): Ditto.
- (loongarch_lsx_vec_parallel_const_half): Ditto.
- (loongarch_constant_elt_p): Ditto.
- (loongarch_gen_const_int_vector_shuffle): Ditto.
- (loongarch_expand_vector_init): Ditto.
- (loongarch_expand_lsx_cmp): Ditto.
- (loongarch_expand_vec_cond_expr): Ditto.
- (loongarch_expand_vec_cond_mask_expr): Ditto.
- (loongarch_expand_vec_cmp): Ditto.
- (loongarch_case_values_threshold): Ditto.
- (loongarch_build_const_vector): Ditto.
- (loongarch_build_signbit_mask): Ditto.
- (loongarch_builtin_support_vector_misalignment): Ditto.
- (TARGET_ASM_ALIGNED_HI_OP): Ditto.
- (TARGET_ASM_ALIGNED_SI_OP): Ditto.
- (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Ditto.
- (TARGET_VECTOR_MODE_SUPPORTED_P): Ditto.
- (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Ditto.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Ditto.
- (TARGET_VECTORIZE_VEC_PERM_CONST): Ditto.
- (TARGET_SCHED_REASSOCIATION_WIDTH): Ditto.
- (TARGET_CASE_VALUES_THRESHOLD): Ditto.
- (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Ditto.
- (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
- * config/loongarch/loongarch.h (TARGET_SUPPORTS_WIDE_INT): Ditto.
- (UNITS_PER_LSX_REG): Ditto.
- (BITS_PER_LSX_REG): Ditto.
- (BIGGEST_ALIGNMENT): Ditto.
- (LSX_REG_FIRST): Ditto.
- (LSX_REG_LAST): Ditto.
- (LSX_REG_NUM): Ditto.
- (LSX_REG_P): Ditto.
- (LSX_REG_RTX_P): Ditto.
- (IMM13_OPERAND): Ditto.
- (LSX_SUPPORTED_MODE_P): Ditto.
- * config/loongarch/loongarch.md (unknown,add,sub,not,nor,and,or,xor): Ditto.
- (unknown,add,sub,not,nor,and,or,xor,simd_add): Ditto.
- (unknown,none,QI,HI,SI,DI,TI,SF,DF,TF,FCC): Ditto.
- (mode" ): Ditto.
- (DF): Ditto.
- (SF): Ditto.
- (sf): Ditto.
- (DI): Ditto.
- (SI): Ditto.
- * config/loongarch/loongarch.opt: Ditto.
- * config/loongarch/predicates.md (const_lsx_branch_operand): Ditto.
- (const_uimm3_operand): Ditto.
- (const_8_to_11_operand): Ditto.
- (const_12_to_15_operand): Ditto.
- (const_uimm4_operand): Ditto.
- (const_uimm6_operand): Ditto.
- (const_uimm7_operand): Ditto.
- (const_uimm8_operand): Ditto.
- (const_imm5_operand): Ditto.
- (const_imm10_operand): Ditto.
- (const_imm13_operand): Ditto.
- (reg_imm10_operand): Ditto.
- (aq8b_operand): Ditto.
- (aq8h_operand): Ditto.
- (aq8w_operand): Ditto.
- (aq8d_operand): Ditto.
- (aq10b_operand): Ditto.
- (aq10h_operand): Ditto.
- (aq10w_operand): Ditto.
- (aq10d_operand): Ditto.
- (aq12b_operand): Ditto.
- (aq12h_operand): Ditto.
- (aq12w_operand): Ditto.
- (aq12d_operand): Ditto.
- (const_m1_operand): Ditto.
- (reg_or_m1_operand): Ditto.
- (const_exp_2_operand): Ditto.
- (const_exp_4_operand): Ditto.
- (const_exp_8_operand): Ditto.
- (const_exp_16_operand): Ditto.
- (const_exp_32_operand): Ditto.
- (const_0_or_1_operand): Ditto.
- (const_0_to_3_operand): Ditto.
- (const_0_to_7_operand): Ditto.
- (const_2_or_3_operand): Ditto.
- (const_4_to_7_operand): Ditto.
- (const_8_to_15_operand): Ditto.
- (const_16_to_31_operand): Ditto.
- (qi_mask_operand): Ditto.
- (hi_mask_operand): Ditto.
- (si_mask_operand): Ditto.
- (d_operand): Ditto.
- (db4_operand): Ditto.
- (db7_operand): Ditto.
- (db8_operand): Ditto.
- (ib3_operand): Ditto.
- (sb4_operand): Ditto.
- (sb5_operand): Ditto.
- (sb8_operand): Ditto.
- (sd8_operand): Ditto.
- (ub4_operand): Ditto.
- (ub8_operand): Ditto.
- (uh4_operand): Ditto.
- (uw4_operand): Ditto.
- (uw5_operand): Ditto.
- (uw6_operand): Ditto.
- (uw8_operand): Ditto.
- (addiur2_operand): Ditto.
- (addiusp_operand): Ditto.
- (andi16_operand): Ditto.
- (movep_src_register): Ditto.
- (movep_src_operand): Ditto.
- (fcc_reload_operand): Ditto.
- (muldiv_target_operand): Ditto.
- (const_vector_same_val_operand): Ditto.
- (const_vector_same_simm5_operand): Ditto.
- (const_vector_same_uimm5_operand): Ditto.
- (const_vector_same_ximm5_operand): Ditto.
- (const_vector_same_uimm6_operand): Ditto.
- (par_const_vector_shf_set_operand): Ditto.
- (reg_or_vector_same_val_operand): Ditto.
- (reg_or_vector_same_simm5_operand): Ditto.
- (reg_or_vector_same_uimm5_operand): Ditto.
- (reg_or_vector_same_ximm5_operand): Ditto.
- (reg_or_vector_same_uimm6_operand): Ditto.
- * doc/md.texi: Ditto.
- * config/loongarch/lsx.md: New file.
-
-2023-09-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (lookup_vector_type_attribute): Export global.
- (get_all_predecessors): New function.
- (get_all_successors): Ditto.
- * config/riscv/riscv-v.cc (get_all_predecessors): Ditto.
- (get_all_successors): Ditto.
- * config/riscv/riscv-vector-builtins.cc (sizeless_type_p): Export global.
- * config/riscv/riscv-vsetvl.cc (get_all_predecessors): Remove it.
-
-2023-09-05 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc-protos.h (arc_output_addsi): Remove declaration.
- (split_addsi): Likewise.
- * config/arc/arc.cc (arc_print_operand): Add/repurpose 's', 'S',
- 'N', 'x', and 'J' code letters.
- (arc_output_addsi): Make it static.
- (split_addsi): Remove it.
- * config/arc/arc.h (UNSIGNED_INT*): New defines.
- (SINNED_INT*): Likewise.
- * config/arc/arc.md (type): Add add, sub, bxor types.
- (tst_movb): Change code letter from 's' to 'x'.
- (andsi3_i): Likewise.
- (addsi3_mixed): Refurbish the pattern.
- (call_i): Change code letter from 'S' to 'J'.
- * config/arc/arc700.md: Add newly introduced types.
- * config/arc/arcHS.md: Likewsie.
- * config/arc/arcHS4x.md: Likewise.
- * config/arc/constraints.md (Cca, CL2, Csp, C2a): Remove it.
- (CM4): Update description.
- (CP4, C6u, C6n, CIs, C4p): New constraint.
-
-2023-09-05 Claudiu Zissulescu <claziss@gmail.com>
-
- * common/config/arc/arc-common.cc (arc_option_optimization_table):
- Remove mbbit_peephole.
- * config/arc/arc.md (UNSPEC_ARC_DIRECT): Remove.
- (store_direct): Likewise.
- (BBIT peephole2): Likewise.
- * config/arc/arc.opt (mbbit-peephole): Ignore option.
- * doc/invoke.texi (mbbit-peephole): Update document.
-
-2023-09-05 Jakub Jelinek <jakub@redhat.com>
-
- * tree-ssa-tail-merge.cc (replace_block_by): Fix a comment typo:
- avreage -> average.
-
-2023-09-05 Yang Yujie <yangyujie@loongson.cn>
-
- * config/loongarch/loongarch.h (CC1_SPEC): Mark normalized
- options passed from driver to gnat1 as explicit for multilib.
-
-2023-09-05 Yang Yujie <yangyujie@loongson.cn>
-
- * config.gcc: add loongarch*-elf target.
- * config/loongarch/elf.h: New file.
- Link against newlib by default.
-
-2023-09-05 Yang Yujie <yangyujie@loongson.cn>
-
- * config.gcc: use -mstrict-align for building libraries
- if --with-strict-align-lib is given.
- * doc/install.texi: likewise.
-
-2023-09-05 Yang Yujie <yangyujie@loongson.cn>
-
- * config/loongarch/loongarch-c.cc: Export macros
- "__loongarch_{arch,tune}" in the preprocessor.
-
-2023-09-05 Yang Yujie <yangyujie@loongson.cn>
-
- * config.gcc: Make --with-abi= obsolete, decide the default ABI
- with target triplet. Allow specifying multilib library build
- options with --with-multilib-list and --with-multilib-default.
- * config/loongarch/t-linux: Likewise.
- * config/loongarch/genopts/loongarch-strings: Likewise.
- * config/loongarch/loongarch-str.h: Likewise.
- * doc/install.texi: Likewise.
- * config/loongarch/genopts/loongarch.opt.in: Introduce
- -m[no-]l[a]sx options. Only process -m*-float and
- -m[no-]l[a]sx in the GCC driver.
- * config/loongarch/loongarch.opt: Likewise.
- * config/loongarch/la464.md: Likewise.
- * config/loongarch/loongarch-c.cc: Likewise.
- * config/loongarch/loongarch-cpu.cc: Likewise.
- * config/loongarch/loongarch-cpu.h: Likewise.
- * config/loongarch/loongarch-def.c: Likewise.
- * config/loongarch/loongarch-def.h: Likewise.
- * config/loongarch/loongarch-driver.cc: Likewise.
- * config/loongarch/loongarch-driver.h: Likewise.
- * config/loongarch/loongarch-opts.cc: Likewise.
- * config/loongarch/loongarch-opts.h: Likewise.
- * config/loongarch/loongarch.cc: Likewise.
- * doc/invoke.texi: Likewise.
-
-2023-09-05 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/sse.md: (V8BFH_128): Renamed to ..
- (VHFBF_128): .. this.
- (V16BFH_256): Renamed to ..
- (VHFBF_256): .. this.
- (avx512f_mov<mode>): Extend to V_128.
- (vcvtnee<bf16_ph>2ps_<mode>): Changed to VHFBF_128.
- (vcvtneo<bf16_ph>2ps_<mode>): Ditto.
- (vcvtnee<bf16_ph>2ps_<mode>): Changed to VHFBF_256.
- (vcvtneo<bf16_ph>2ps_<mode>): Ditto.
- * config/i386/i386-expand.cc (expand_vec_perm_blend):
- Canonicalize vec_merge.
-
-2023-09-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Fix Dynamic status.
- * config/riscv/riscv-v.cc (preferred_simd_mode): Ditto.
- (autovectorize_vector_modes): Ditto.
- (vectorize_related_mode): Ditto.
-
-2023-09-04 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/rs6000/darwin.h (LIB_SPEC): Include libSystemStubs for
- all 32b Darwin PowerPC cases.
-
-2023-09-04 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin-sections.def (static_init_section): Add the
- __TEXT,__StaticInit section.
- * config/darwin.cc (darwin_function_section): Use the static init
- section for global initializers, to match other platform toolchains.
-
-2023-09-04 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin-sections.def (darwin_exception_section): Move to
- the __TEXT segment.
- * config/darwin.cc (darwin_emit_except_table_label): Align before
- the exception table label.
- * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use indirect PC-
- relative 4byte relocs.
-
-2023-09-04 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.cc (dump_machopic_symref_flags): New.
- (debug_machopic_symref_flags): New.
-
-2023-09-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat16mf4_t): Add FP16 intrinsic def.
- (vfloat16mf2_t): Ditto.
- (vfloat16m1_t): Ditto.
- (vfloat16m2_t): Ditto.
- (vfloat16m4_t): Ditto.
- (vfloat16m8_t): Ditto.
-
-2023-09-04 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR tree-optimization/108757
- * match.pd ((X - N * M) / N): New pattern.
- ((X + N * M) / N): New pattern.
- ((X + C) div_rshift N): New pattern.
-
-2023-09-04 Guo Jie <guojie@loongson.cn>
-
- * config/loongarch/loongarch.md: Support 'G' -> 'k' in
- movsf_hardfloat and movdf_hardfloat.
-
-2023-09-04 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch.cc (loongarch_extend_comparands):
- In unsigned QImode test, check for sign extended subreg and/or
- constant operands, and do a sign extension in that case.
- * config/loongarch/loongarch.md (TARGET_64BIT): Define
- template cbranchqi4.
-
-2023-09-04 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch.md: Allows fixed-point values to be loaded
- from memory into floating-point registers.
-
-2023-09-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-vls.md (<optab><mode>3): New pattern for
- fmax/fmin
- * config/riscv/vector.md: Add VLS modes to vfmax/vfmin.
-
-2023-09-02 Mikael Morin <mikael@gcc.gnu.org>
-
- * tree-diagnostic.cc (tree_diagnostics_defaults): Delete allocated
- pointer before overwriting it.
-
-2023-09-02 chenxiaolong <chenxiaolong@loongson.cn>
-
- * config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
- Associate the __float128 type to float128_type_node so that it can
- be recognized by the compiler.
- * config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
- Add the flag "FLOAT128_TYPE" to gcc and associate a function
- with the suffix "q" to "f128".
- * doc/extend.texi:Added support for 128-bit floating-point functions on
- the LoongArch architecture.
-
-2023-09-01 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/111069
- * common.opt (fabi-version=): Document version 19.
- * doc/invoke.texi (-fabi-version=): Likewise.
-
-2023-09-01 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_<optab><mode><vconvert>):
- New combine pattern.
- (*cond_<float_cvt><vconvert><mode>): Ditto.
- (*cond_<optab><vnconvert><mode>): Ditto.
- (*cond_<float_cvt><vnconvert><mode>): Ditto.
- (*cond_<optab><mode><vnconvert>): Ditto.
- (*cond_<float_cvt><mode><vnconvert>2): Ditto.
- * config/riscv/autovec.md (<optab><mode><vconvert>2): Adjust.
- (<float_cvt><vconvert><mode>2): Adjust.
- (<optab><vnconvert><mode>2): Adjust.
- (<float_cvt><vnconvert><mode>2): Adjust.
- (<optab><mode><vnconvert>2): Adjust.
- (<float_cvt><mode><vnconvert>2): Adjust.
- * config/riscv/riscv-v.cc (needs_fp_rounding): Add INT->FP extend.
-
-2023-09-01 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_extend<v_double_trunc><mode>):
- New combine pattern.
- (*cond_trunc<mode><v_double_trunc>): Ditto.
- * config/riscv/autovec.md: Adjust.
- * config/riscv/riscv-v.cc (needs_fp_rounding): Add FP extend.
-
-2023-09-01 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_<optab><v_double_trunc><mode>):
- New combine pattern.
- (*cond_<optab><v_quad_trunc><mode>): Ditto.
- (*cond_<optab><v_oct_trunc><mode>): Ditto.
- (*cond_trunc<mode><v_double_trunc>): Ditto.
- * config/riscv/autovec.md (<optab><v_quad_trunc><mode>2): Adjust.
- (<optab><v_oct_trunc><mode>2): Ditto.
-
-2023-09-01 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec.md: Adjust.
- * config/riscv/riscv-protos.h (expand_cond_len_unop): Ditto.
- (expand_cond_len_binop): Ditto.
- * config/riscv/riscv-v.cc (needs_fp_rounding): Ditto.
- (expand_cond_len_op): Ditto.
- (expand_cond_len_unop): Ditto.
- (expand_cond_len_binop): Ditto.
- (expand_cond_len_ternop): Ditto.
-
-2023-09-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (autovectorize_vector_modes): Enable
- VECT_COMPARE_COSTS by default.
-
-2023-09-01 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (vec_extract<mode>qi): New expander.
-
-2023-09-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Add
- dynamic enum.
- * config/riscv/riscv.opt: Add dynamic compile option.
-
-2023-09-01 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-vls.md (<optab><mode>3): New pattern for
- vls floating-point autovec.
- * config/riscv/vector-iterators.md: New iterator for
- floating-point V and VLS.
- * config/riscv/vector.md: Add VLS to floating-point binop.
-
-2023-09-01 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/19832
- * match.pd: Add pattern to optimize
- `(a != b) ? a OP b : c`.
-
-2023-09-01 Lulu Cheng <chenglulu@loongson.cn>
- Guo Jie <guojie@loongson.cn>
-
- PR target/110484
- * config/loongarch/loongarch.cc (loongarch_emit_stack_tie): Use the
- frame_pointer_needed to determine whether to use the $fp register.
-
-2023-08-31 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110915
- * match.pd (min_value, max_value): Extend to vector constants.
-
-2023-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * config.in: Regenerate.
- * config/darwin-c.cc: Change spelling to macOS.
- * config/darwin-driver.cc: Likewise.
- * config/darwin.h: Likewise.
- * configure.ac: Likewise.
- * doc/contrib.texi: Likewise.
- * doc/extend.texi: Likewise.
- * doc/invoke.texi: Likewise.
- * doc/plugins.texi: Likewise.
- * doc/tm.texi: Regenerate.
- * doc/tm.texi.in: Change spelling to macOS.
- * plugin.cc: Likewise.
-
-2023-08-31 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-opt.md: Add FRM_REGNUM to vfnmadd/vfnmacc.
- * config/riscv/autovec.md: Ditto.
-
-2023-08-31 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-opt.md: Add FRM_REGNUM to vfnmsac/vfnmsub
- * config/riscv/autovec.md: Ditto.
-
-2023-08-31 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.md (untyped_call): Emit a call_value
- rather than a call. List each possible destination register
- in the call pattern.
-
-2023-08-31 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-opt.md: Add FRM_REGNUM to vfmsac/vfmsub
- * config/riscv/autovec.md: Ditto.
-
-2023-08-31 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md: Add FRM_REGNUM to vfmadd/vfmacc.
- * config/riscv/autovec.md: Ditto.
- * config/riscv/vector-iterators.md: Add UNSPEC_VFFMA.
-
-2023-08-31 Palmer Dabbelt <palmer@rivosinc.com>
-
- * config/riscv/autovec.md (shifts): Use
- vector_scalar_shift_operand.
- * config/riscv/predicates.md (vector_scalar_shift_operand): New
- predicate.
-
-2023-08-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config.gcc: Add vector cost model framework for RVV.
- * config/riscv/riscv.cc (riscv_vectorize_create_costs): Ditto.
- (TARGET_VECTORIZE_CREATE_COSTS): Ditto.
- * config/riscv/t-riscv: Ditto.
- * config/riscv/riscv-vector-costs.cc: New file.
- * config/riscv/riscv-vector-costs.h: New file.
-
-2023-08-31 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
-
- PR target/110411
- * config/rs6000/mma.md (define_insn_and_split movoo): Disallow
- AltiVec address operands.
- (define_insn_and_split movxo): Likewise.
- * config/rs6000/predicates.md (vsx_quad_dform_memory_operand): Remove
- redundant mode size check.
-
-2023-08-31 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-protos.h (IS_AGNOSTIC): Move to here.
- * config/riscv/riscv-v.cc (gen_no_side_effects_vsetvl_rtx):
- Change to default policy.
- * config/riscv/riscv-vector-builtins-bases.cc: Change to default policy.
- * config/riscv/riscv-vsetvl.h (IS_AGNOSTIC): Delete.
- * config/riscv/riscv.cc (riscv_print_operand): Use IS_AGNOSTIC to test.
-
-2023-08-31 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md: Adjust.
- * config/riscv/autovec-vls.md: Ditto.
- * config/riscv/autovec.md: Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): Add insn_type.
- (enum insn_flags): Add insn flags.
- (emit_vlmax_insn): Adjust.
- (emit_vlmax_fp_insn): Delete.
- (emit_vlmax_ternary_insn): Delete.
- (emit_vlmax_fp_ternary_insn): Delete.
- (emit_nonvlmax_insn): Adjust.
- (emit_vlmax_slide_insn): Delete.
- (emit_nonvlmax_slide_tu_insn): Delete.
- (emit_vlmax_merge_insn): Delete.
- (emit_vlmax_cmp_insn): Delete.
- (emit_vlmax_cmp_mu_insn): Delete.
- (emit_vlmax_masked_mu_insn): Delete.
- (emit_scalar_move_insn): Delete.
- (emit_nonvlmax_integer_move_insn): Delete.
- (emit_vlmax_insn_lra): Add.
- * config/riscv/riscv-v.cc (get_mask_mode_from_insn_flags): New.
- (emit_vlmax_insn): Adjust.
- (emit_nonvlmax_insn): Adjust.
- (emit_vlmax_insn_lra): Add.
- (emit_vlmax_fp_insn): Delete.
- (emit_vlmax_ternary_insn): Delete.
- (emit_vlmax_fp_ternary_insn): Delete.
- (emit_vlmax_slide_insn): Delete.
- (emit_nonvlmax_slide_tu_insn): Delete.
- (emit_nonvlmax_slide_insn): Delete.
- (emit_vlmax_merge_insn): Delete.
- (emit_vlmax_cmp_insn): Delete.
- (emit_vlmax_cmp_mu_insn): Delete.
- (emit_vlmax_masked_insn): Delete.
- (emit_nonvlmax_masked_insn): Delete.
- (emit_vlmax_masked_store_insn): Delete.
- (emit_nonvlmax_masked_store_insn): Delete.
- (emit_vlmax_masked_mu_insn): Delete.
- (emit_vlmax_masked_fp_mu_insn): Delete.
- (emit_nonvlmax_tu_insn): Delete.
- (emit_nonvlmax_fp_tu_insn): Delete.
- (emit_nonvlmax_tumu_insn): Delete.
- (emit_nonvlmax_fp_tumu_insn): Delete.
- (emit_scalar_move_insn): Delete.
- (emit_cpop_insn): Delete.
- (emit_vlmax_integer_move_insn): Delete.
- (emit_nonvlmax_integer_move_insn): Delete.
- (emit_vlmax_gather_insn): Delete.
- (emit_vlmax_masked_gather_mu_insn): Delete.
- (emit_vlmax_compress_insn): Delete.
- (emit_nonvlmax_compress_insn): Delete.
- (emit_vlmax_reduction_insn): Delete.
- (emit_vlmax_fp_reduction_insn): Delete.
- (emit_nonvlmax_fp_reduction_insn): Delete.
- (expand_vec_series): Adjust.
- (expand_const_vector): Adjust.
- (legitimize_move): Adjust.
- (sew64_scalar_helper): Adjust.
- (expand_tuple_move): Adjust.
- (expand_vector_init_insert_elems): Adjust.
- (expand_vector_init_merge_repeating_sequence): Adjust.
- (expand_vec_cmp): Adjust.
- (expand_vec_cmp_float): Adjust.
- (expand_vec_perm): Adjust.
- (shuffle_merge_patterns): Adjust.
- (shuffle_compress_patterns): Adjust.
- (shuffle_decompress_patterns): Adjust.
- (expand_load_store): Adjust.
- (expand_cond_len_op): Adjust.
- (expand_cond_len_unop): Adjust.
- (expand_cond_len_binop): Adjust.
- (expand_gather_scatter): Adjust.
- (expand_cond_len_ternop): Adjust.
- (expand_reduction): Adjust.
- (expand_lanes_load_store): Adjust.
- (expand_fold_extract_last): Adjust.
- * config/riscv/riscv.cc (vector_zero_call_used_regs): Adjust.
- * config/riscv/vector.md: Adjust.
-
-2023-08-31 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/96762
- * config/rs6000/rs6000-string.cc (expand_block_move): Call vector
- load/store with length only on 64-bit Power10.
-
-2023-08-31 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc.cc (arc_split_mov_const): Use LSL16 only when
- SWAP option is enabled.
- * config/arc/arc.md (ashlsi2_cnt16): Likewise.
-
-2023-08-31 Stamatis Markianos-Wright <stam.markianos-wright@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vcaddq_rot90, vcaddq_rot270):
- Use common insn for signed and unsigned front-end definitions.
- * config/arm/arm_mve_builtins.def
- (vcaddq_rot90_m_u, vcaddq_rot270_m_u): Make common.
- (vcaddq_rot90_m_s, vcaddq_rot270_m_s): Remove.
- * config/arm/iterators.md (mve_insn): Merge signed and unsigned defs.
- (isu): Likewise.
- (rot): Likewise.
- (mve_rot): Likewise.
- (supf): Likewise.
- (VxCADDQ_M): Likewise.
- * config/arm/unspecs.md (unspec): Likewise.
- * config/arm/mve.md: Fix minor typo.
-
-2023-08-31 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/sse.md (<avx512>_blendm<mode>): Merge
- VF_AVX512HFBFVL into VI12HFBF_AVX512VL.
- (VF_AVX512HFBF16): Renamed to VHFBF.
- (VF_AVX512FP16VL): Renamed to VHF_AVX512VL.
- (VF_AVX512FP16): Removed.
- (div<mode>3): Adjust VF_AVX512FP16VL to VHF_AVX512VL.
- (avx512fp16_rcp<mode>2<mask_name>): Ditto.
- (rsqrt<mode>2): Ditto.
- (<sse>_rsqrt<mode>2<mask_name>): Ditto.
- (vcond<mode><code>): Ditto.
- (vcond<sseintvecmodelower><mode>): Ditto.
- (<avx512>_fmaddc_<mode>_mask1<round_expand_name>): Ditto.
- (<avx512>_fmaddc_<mode>_maskz<round_expand_name>): Ditto.
- (<avx512>_fcmaddc_<mode>_mask1<round_expand_name>): Ditto.
- (<avx512>_fcmaddc_<mode>_maskz<round_expand_name>): Ditto.
- (cmla<conj_op><mode>4): Ditto.
- (fma_<mode>_fadd_fmul): Ditto.
- (fma_<mode>_fadd_fcmul): Ditto.
- (fma_<complexopname>_<mode>_fma_zero): Ditto.
- (fma_<mode>_fmaddc_bcst): Ditto.
- (fma_<mode>_fcmaddc_bcst): Ditto.
- (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto.
- (cmul<conj_op><mode>3): Ditto.
- (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
- Ditto.
- (vec_unpacks_lo_<mode>): Ditto.
- (vec_unpacks_hi_<mode>): Ditto.
- (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
- (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
- (*vec_extract<mode>_0): Ditto.
- (*<avx512>_cmp<mode>3): Extend to V48H_AVX512VL.
-
-2023-08-31 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/111234
- * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Remove condition.
-
-2023-08-31 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * range-op-mixed.h (operator_plus::overflow_free_p): New declare.
- (operator_minus::overflow_free_p): New declare.
- (operator_mult::overflow_free_p): New declare.
- * range-op.cc (range_op_handler::overflow_free_p): New function.
- (range_operator::overflow_free_p): New default function.
- (operator_plus::overflow_free_p): New function.
- (operator_minus::overflow_free_p): New function.
- (operator_mult::overflow_free_p): New function.
- * range-op.h (range_op_handler::overflow_free_p): New declare.
- (range_operator::overflow_free_p): New declare.
- * value-range.cc (irange::nonnegative_p): New function.
- (irange::nonpositive_p): New function.
- * value-range.h (irange::nonnegative_p): New declare.
- (irange::nonpositive_p): New declare.
-
-2023-08-30 Dimitar Dimitrov <dimitar@dinux.eu>
-
- PR target/106562
- * config/pru/predicates.md (const_0_operand): New predicate.
- (pru_cstore_comparison_operator): Ditto.
- * config/pru/pru.md (cstore<mode>4): New pattern.
- (cstoredi4): Ditto.
-
-2023-08-30 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111228
- * match.pd ((vec_perm (vec_perm ..) @5 ..) -> (vec_perm @x @5 ..)):
- New simplifications.
-
-2023-08-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (movmisalign<mode>): Delete.
-
-2023-08-30 Die Li <lidie@eswincomputing.com>
- Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/peephole.md: New pattern.
- * config/riscv/predicates.md (a0a1_reg_operand): New predicate.
- (zcmp_mv_sreg_operand): New predicate.
- * config/riscv/riscv.md: New predicate.
- * config/riscv/zc.md (*mva01s<X:mode>): New pattern.
- (*mvsa01<X:mode>): New pattern.
-
-2023-08-30 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc
- (riscv_zcmp_can_use_popretz): true if popretz can be used
- (riscv_gen_multi_pop_insn): interface to generate cm.pop[ret][z]
- (riscv_expand_epilogue): expand cm.pop[ret][z] in epilogue
- * config/riscv/riscv.md: define A0_REGNUM
- * config/riscv/zc.md
- (@gpr_multi_popretz_up_to_ra_<mode>): md for popretz ra
- (@gpr_multi_popretz_up_to_s0_<mode>): md for popretz ra, s0
- (@gpr_multi_popretz_up_to_s1_<mode>): likewise
- (@gpr_multi_popretz_up_to_s2_<mode>): likewise
- (@gpr_multi_popretz_up_to_s3_<mode>): likewise
- (@gpr_multi_popretz_up_to_s4_<mode>): likewise
- (@gpr_multi_popretz_up_to_s5_<mode>): likewise
- (@gpr_multi_popretz_up_to_s6_<mode>): likewise
- (@gpr_multi_popretz_up_to_s7_<mode>): likewise
- (@gpr_multi_popretz_up_to_s8_<mode>): likewise
- (@gpr_multi_popretz_up_to_s9_<mode>): likewise
- (@gpr_multi_popretz_up_to_s11_<mode>): likewise
-
-2023-08-30 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/iterators.md
- (slot0_offset): slot 0 offset in stack GPRs area in bytes
- (slot1_offset): slot 1 offset in stack GPRs area in bytes
- (slot2_offset): likewise
- (slot3_offset): likewise
- (slot4_offset): likewise
- (slot5_offset): likewise
- (slot6_offset): likewise
- (slot7_offset): likewise
- (slot8_offset): likewise
- (slot9_offset): likewise
- (slot10_offset): likewise
- (slot11_offset): likewise
- (slot12_offset): likewise
- * config/riscv/predicates.md
- (stack_push_up_to_ra_operand): predicates of stack adjust pushing ra
- (stack_push_up_to_s0_operand): predicates of stack adjust pushing ra, s0
- (stack_push_up_to_s1_operand): likewise
- (stack_push_up_to_s2_operand): likewise
- (stack_push_up_to_s3_operand): likewise
- (stack_push_up_to_s4_operand): likewise
- (stack_push_up_to_s5_operand): likewise
- (stack_push_up_to_s6_operand): likewise
- (stack_push_up_to_s7_operand): likewise
- (stack_push_up_to_s8_operand): likewise
- (stack_push_up_to_s9_operand): likewise
- (stack_push_up_to_s11_operand): likewise
- (stack_pop_up_to_ra_operand): predicates of stack adjust poping ra
- (stack_pop_up_to_s0_operand): predicates of stack adjust poping ra, s0
- (stack_pop_up_to_s1_operand): likewise
- (stack_pop_up_to_s2_operand): likewise
- (stack_pop_up_to_s3_operand): likewise
- (stack_pop_up_to_s4_operand): likewise
- (stack_pop_up_to_s5_operand): likewise
- (stack_pop_up_to_s6_operand): likewise
- (stack_pop_up_to_s7_operand): likewise
- (stack_pop_up_to_s8_operand): likewise
- (stack_pop_up_to_s9_operand): likewise
- (stack_pop_up_to_s11_operand): likewise
- * config/riscv/riscv-protos.h
- (riscv_zcmp_valid_stack_adj_bytes_p):declaration
- * config/riscv/riscv.cc (struct riscv_frame_info): comment change
- (riscv_avoid_multi_push): helper function of riscv_use_multi_push
- (riscv_use_multi_push): true if multi push is used
- (riscv_multi_push_sregs_count): num of sregs in multi-push
- (riscv_multi_push_regs_count): num of regs in multi-push
- (riscv_16bytes_align): align to 16 bytes
- (riscv_stack_align): moved to a better place
- (riscv_save_libcall_count): no functional change
- (riscv_compute_frame_info): add zcmp frame info
- (riscv_for_each_saved_reg): save or restore fprs in specified slot for zcmp
- (riscv_adjust_multi_push_cfi_prologue): adjust cfi for cm.push
- (riscv_gen_multi_push_pop_insn): gen function for multi push and pop
- (get_multi_push_fpr_mask): get mask for the fprs pushed by cm.push
- (riscv_expand_prologue): allocate stack by cm.push
- (riscv_adjust_multi_pop_cfi_epilogue): adjust cfi for cm.pop[ret]
- (riscv_expand_epilogue): allocate stack by cm.pop[ret]
- (zcmp_base_adj): calculate stack adjustment base size
- (zcmp_additional_adj): calculate stack adjustment additional size
- (riscv_zcmp_valid_stack_adj_bytes_p): check if stack adjustment valid
- * config/riscv/riscv.h (RETURN_ADDR_MASK): mask of ra
- (S0_MASK): likewise
- (S1_MASK): likewise
- (S2_MASK): likewise
- (S3_MASK): likewise
- (S4_MASK): likewise
- (S5_MASK): likewise
- (S6_MASK): likewise
- (S7_MASK): likewise
- (S8_MASK): likewise
- (S9_MASK): likewise
- (S10_MASK): likewise
- (S11_MASK): likewise
- (MULTI_PUSH_GPR_MASK): GPR_MASK that cm.push can cover at most
- (ZCMP_MAX_SPIMM): max spimm value
- (ZCMP_SP_INC_STEP): zcmp sp increment step
- (ZCMP_INVALID_S0S10_SREGS_COUNTS): num of s0-s10
- (ZCMP_S0S11_SREGS_COUNTS): num of s0-s11
- (ZCMP_MAX_GRP_SLOTS): max slots of pushing and poping in zcmp
- (CALLEE_SAVED_FREG_NUMBER): get x of fsx(fs0 ~ fs11)
- * config/riscv/riscv.md: include zc.md
- * config/riscv/zc.md: New file. machine description for zcmp
-
-2023-08-30 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/110914
- * tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcpy): Don't call
- adjust_last_stmt unless len is known constant.
-
-2023-08-30 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/111015
- * gimple-ssa-store-merging.cc
- (imm_store_chain_info::output_merged_store): Use wi::mask and
- wide_int_to_tree instead of unsigned HOST_WIDE_INT shift and
- build_int_cst to build BIT_AND_EXPR mask.
-
-2023-08-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Add MASK_LEN_ variant.
- (call_may_clobber_ref_p_1): Ditto.
- * tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn): Ditto.
- (get_alias_ptr_type_for_ptr_address): Ditto.
-
-2023-08-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc
- (vector_insn_info::get_avl_or_vl_reg): Fix bug.
-
-2023-08-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md (movmisalign<mode>): New pattern.
- * config/riscv/riscv.cc (riscv_support_vector_misalignment): Support
- VLS misalign.
-
-2023-08-29 Philipp Tomsich <philipp.tomsich@vrull.eu>
-
- * config/riscv/zicond.md: New splitters to rewrite single bit
- sign extension as the condition to a czero in the desired form.
-
-2023-08-29 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/99860
- * doc/invoke.texi: Add -Wanalyzer-overlapping-buffers.
-
-2023-08-29 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/99860
- * Makefile.in (ANALYZER_OBJS): Add analyzer/ranges.o.
-
-2023-08-29 Jin Ma <jinma@linux.alibaba.com>
-
- * config/riscv/riscv.cc (riscv_float_const_rtx_index_for_fli):
- zvfh can generate zfa extended instruction fli.h, just like zfh.
-
-2023-08-29 Edwin Lu <ewlu@rivosinc.com>
- Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Generate
- __riscv_unaligned_avoid with value 1 or
- __riscv_unaligned_slow with value 1 or
- __riscv_unaligned_fast with value 1
- * config/riscv/riscv.cc (riscv_option_override): Define
- riscv_user_wants_strict_align. Set
- riscv_user_wants_strict_align to TARGET_STRICT_ALIGN
- * config/riscv/riscv.h: Declare riscv_user_wants_strict_align
-
-2023-08-29 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/autovec-vls.md: Update types
- * config/riscv/riscv.md: Add vector placeholder type
- * config/riscv/vector.md: Update types
-
-2023-08-29 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/dfp.md (UNSPEC_DQUAN): New unspec.
- (dfp_dqua_<mode>, dfp_dquai_<mode>): New define_insn.
- * config/rs6000/rs6000-builtins.def (__builtin_dfp_dqua,
- __builtin_dfp_dquai, __builtin_dfp_dquaq, __builtin_dfp_dquaqi):
- New buit-in definitions.
- * config/rs6000/rs6000-overload.def (__builtin_dfp_quantize): New
- overloaded definition.
- * doc/extend.texi: Add documentation for __builtin_dfp_quantize.
-
-2023-08-29 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_legitimize_poly_move): New declaration.
- (riscv_legitimize_const_move): Handle ref plus const poly.
-
-2023-08-29 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc
- (riscv_implied_info): Add implications from unprivileged extensions.
- (riscv_ext_version_table): Add stub support for all unprivileged
- extensions supported by Binutils as well as 'Zce', 'Zcmp', 'Zcmt'.
-
-2023-08-29 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
- Add stub support for all vendor extensions supported by Binutils.
-
-2023-08-29 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc
- (riscv_implied_info): Add implications from privileged extensions.
- (riscv_ext_version_table): Add stub support for all privileged
- extensions supported by Binutils.
-
-2023-08-29 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec.md: Adjust
- * config/riscv/riscv-protos.h (RVV_VUNDEF): Clean.
- (get_vlmax_rtx): Exported.
- * config/riscv/riscv-v.cc (emit_nonvlmax_fp_ternary_tu_insn): Deleted.
- (emit_vlmax_masked_gather_mu_insn): Adjust.
- (get_vlmax_rtx): New func.
- (expand_load_store): Adjust.
- (expand_cond_len_unop): Call expand_cond_len_op.
- (expand_cond_len_op): New subroutine.
- (expand_cond_len_binop): Call expand_cond_len_op.
- (expand_cond_len_ternop): Call expand_cond_len_op.
- (expand_lanes_load_store): Adjust.
-
-2023-08-29 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/79173
- PR middle-end/111209
- * tree-ssa-math-opts.cc (match_uaddc_usubc): Match also
- just 2 limb uaddc/usubc with 0 carry-in on lower limb and ignored
- carry-out on higher limb. Don't match it though if it could be
- matched later on 4 argument addition/subtraction.
-
-2023-08-29 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111147
- * match.pd (`(x | y) & (~x ^ y)`) Use bitwise_inverted_equal_p
- instead of matching bit_not.
-
-2023-08-29 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins.cc (type_suffixes): Add missing
- initializer.
-
-2023-08-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (vector_insn_info::get_avl_or_vl_reg): New function.
- (pass_vsetvl::compute_local_properties): Fix bug.
- (pass_vsetvl::commit_vsetvls): Ditto.
- * config/riscv/riscv-vsetvl.h: New function.
-
-2023-08-29 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/110943
- * config/riscv/predicates.md (vector_const_int_or_double_0_operand):
- New predicate.
- * config/riscv/riscv-vector-builtins.cc (function_expander::function_expander):
- force_reg mem target operand.
- * config/riscv/vector.md (@pred_mov<mode>): Wrapper.
- (*pred_mov<mode>): Remove imm -> reg pattern.
- (*pred_broadcast<mode>_imm): Add imm -> reg pattern.
-
-2023-08-29 Lulu Cheng <chenglulu@loongson.cn>
-
- * common/config/loongarch/loongarch-common.cc:
- Enable '-free' on O2 and above.
- * doc/invoke.texi: Modify the description information
- of the '-free' compilation option and add the LoongArch
- description.
-
-2023-08-28 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * doc/extend.texi: Fix the description of __builtin_riscv_pause.
-
-2023-08-28 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
- Implement the 'Zihintpause' extension, version 2.0.
- (riscv_ext_flag_table) Add 'Zihintpause' handling.
- * config/riscv/riscv-builtins.cc: Remove availability predicate
- "always" and add "hint_pause".
- (riscv_builtins) : Add "pause" extension.
- * config/riscv/riscv-opts.h (MASK_ZIHINTPAUSE, TARGET_ZIHINTPAUSE): New.
- * config/riscv/riscv.md (riscv_pause): Adjust output based on
- TARGET_ZIHINTPAUSE.
-
-2023-08-28 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`(X & ~Y) | (~X & Y)`): Use bitwise_inverted_equal_p
- instead of specifically checking for ~X.
-
-2023-08-28 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111146
- * match.pd (`(x | y) & ~x`, `(x & y) | ~x`): Remove
- redundant pattern.
-
-2023-08-28 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Add dump information
- when resimplify returns true.
- (match_simplify_replacement): Print only if accepted the match-and-simplify
- result rather than the full sequence.
-
-2023-08-28 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::earliest_fusion): Skip
- never probability.
- (pass_vsetvl::compute_probabilities): Fix unitialized probability.
-
-2023-08-28 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::earliest_fusion): Fix bug.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-base.cc (vmullbq_poly)
- (vmulltq_poly): New.
- * config/arm/arm-mve-builtins-base.def (vmullbq_poly)
- (vmulltq_poly): New.
- * config/arm/arm-mve-builtins-base.h (vmullbq_poly)
- (vmulltq_poly): New.
- * config/arm/arm_mve.h (vmulltq_poly): Remove.
- (vmullbq_poly): Remove.
- (vmullbq_poly_m): Remove.
- (vmulltq_poly_m): Remove.
- (vmullbq_poly_x): Remove.
- (vmulltq_poly_x): Remove.
- (vmulltq_poly_p8): Remove.
- (vmullbq_poly_p8): Remove.
- (vmulltq_poly_p16): Remove.
- (vmullbq_poly_p16): Remove.
- (vmullbq_poly_m_p8): Remove.
- (vmullbq_poly_m_p16): Remove.
- (vmulltq_poly_m_p8): Remove.
- (vmulltq_poly_m_p16): Remove.
- (vmullbq_poly_x_p8): Remove.
- (vmullbq_poly_x_p16): Remove.
- (vmulltq_poly_x_p8): Remove.
- (vmulltq_poly_x_p16): Remove.
- (__arm_vmulltq_poly_p8): Remove.
- (__arm_vmullbq_poly_p8): Remove.
- (__arm_vmulltq_poly_p16): Remove.
- (__arm_vmullbq_poly_p16): Remove.
- (__arm_vmullbq_poly_m_p8): Remove.
- (__arm_vmullbq_poly_m_p16): Remove.
- (__arm_vmulltq_poly_m_p8): Remove.
- (__arm_vmulltq_poly_m_p16): Remove.
- (__arm_vmullbq_poly_x_p8): Remove.
- (__arm_vmullbq_poly_x_p16): Remove.
- (__arm_vmulltq_poly_x_p8): Remove.
- (__arm_vmulltq_poly_x_p16): Remove.
- (__arm_vmulltq_poly): Remove.
- (__arm_vmullbq_poly): Remove.
- (__arm_vmullbq_poly_m): Remove.
- (__arm_vmulltq_poly_m): Remove.
- (__arm_vmullbq_poly_x): Remove.
- (__arm_vmulltq_poly_x): Remove.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_mve_function_exact_insn_vmull_poly): New.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_widen_poly): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_widen_poly): New.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-shapes.cc (parse_element_type): Add
- support for 'U' and 'p' format specifiers.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins.cc (type_suffixes): Handle poly_p
- field..
- (TYPES_poly_8_16): New.
- (poly_8_16): New.
- * config/arm/arm-mve-builtins.def (p8): New type suffix.
- (p16): Likewise.
- * config/arm/arm-mve-builtins.h (enum type_class_index): Add
- TYPE_poly.
- (struct type_suffix_info): Add poly_p field.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-base.cc (vmullbq_int, vmulltq_int):
- New.
- * config/arm/arm-mve-builtins-base.def (vmullbq_int, vmulltq_int):
- New.
- * config/arm/arm-mve-builtins-base.h (vmullbq_int, vmulltq_int):
- New.
- * config/arm/arm_mve.h (vmulltq_int): Remove.
- (vmullbq_int): Remove.
- (vmullbq_int_m): Remove.
- (vmulltq_int_m): Remove.
- (vmullbq_int_x): Remove.
- (vmulltq_int_x): Remove.
- (vmulltq_int_u8): Remove.
- (vmullbq_int_u8): Remove.
- (vmulltq_int_s8): Remove.
- (vmullbq_int_s8): Remove.
- (vmulltq_int_u16): Remove.
- (vmullbq_int_u16): Remove.
- (vmulltq_int_s16): Remove.
- (vmullbq_int_s16): Remove.
- (vmulltq_int_u32): Remove.
- (vmullbq_int_u32): Remove.
- (vmulltq_int_s32): Remove.
- (vmullbq_int_s32): Remove.
- (vmullbq_int_m_s8): Remove.
- (vmullbq_int_m_s32): Remove.
- (vmullbq_int_m_s16): Remove.
- (vmullbq_int_m_u8): Remove.
- (vmullbq_int_m_u32): Remove.
- (vmullbq_int_m_u16): Remove.
- (vmulltq_int_m_s8): Remove.
- (vmulltq_int_m_s32): Remove.
- (vmulltq_int_m_s16): Remove.
- (vmulltq_int_m_u8): Remove.
- (vmulltq_int_m_u32): Remove.
- (vmulltq_int_m_u16): Remove.
- (vmullbq_int_x_s8): Remove.
- (vmullbq_int_x_s16): Remove.
- (vmullbq_int_x_s32): Remove.
- (vmullbq_int_x_u8): Remove.
- (vmullbq_int_x_u16): Remove.
- (vmullbq_int_x_u32): Remove.
- (vmulltq_int_x_s8): Remove.
- (vmulltq_int_x_s16): Remove.
- (vmulltq_int_x_s32): Remove.
- (vmulltq_int_x_u8): Remove.
- (vmulltq_int_x_u16): Remove.
- (vmulltq_int_x_u32): Remove.
- (__arm_vmulltq_int_u8): Remove.
- (__arm_vmullbq_int_u8): Remove.
- (__arm_vmulltq_int_s8): Remove.
- (__arm_vmullbq_int_s8): Remove.
- (__arm_vmulltq_int_u16): Remove.
- (__arm_vmullbq_int_u16): Remove.
- (__arm_vmulltq_int_s16): Remove.
- (__arm_vmullbq_int_s16): Remove.
- (__arm_vmulltq_int_u32): Remove.
- (__arm_vmullbq_int_u32): Remove.
- (__arm_vmulltq_int_s32): Remove.
- (__arm_vmullbq_int_s32): Remove.
- (__arm_vmullbq_int_m_s8): Remove.
- (__arm_vmullbq_int_m_s32): Remove.
- (__arm_vmullbq_int_m_s16): Remove.
- (__arm_vmullbq_int_m_u8): Remove.
- (__arm_vmullbq_int_m_u32): Remove.
- (__arm_vmullbq_int_m_u16): Remove.
- (__arm_vmulltq_int_m_s8): Remove.
- (__arm_vmulltq_int_m_s32): Remove.
- (__arm_vmulltq_int_m_s16): Remove.
- (__arm_vmulltq_int_m_u8): Remove.
- (__arm_vmulltq_int_m_u32): Remove.
- (__arm_vmulltq_int_m_u16): Remove.
- (__arm_vmullbq_int_x_s8): Remove.
- (__arm_vmullbq_int_x_s16): Remove.
- (__arm_vmullbq_int_x_s32): Remove.
- (__arm_vmullbq_int_x_u8): Remove.
- (__arm_vmullbq_int_x_u16): Remove.
- (__arm_vmullbq_int_x_u32): Remove.
- (__arm_vmulltq_int_x_s8): Remove.
- (__arm_vmulltq_int_x_s16): Remove.
- (__arm_vmulltq_int_x_s32): Remove.
- (__arm_vmulltq_int_x_u8): Remove.
- (__arm_vmulltq_int_x_u16): Remove.
- (__arm_vmulltq_int_x_u32): Remove.
- (__arm_vmulltq_int): Remove.
- (__arm_vmullbq_int): Remove.
- (__arm_vmullbq_int_m): Remove.
- (__arm_vmulltq_int_m): Remove.
- (__arm_vmullbq_int_x): Remove.
- (__arm_vmulltq_int_x): Remove.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_widen): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_widen): New.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_mve_function_exact_insn_vmull): New.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/iterators.md (mve_insn): Add vmullb, vmullt.
- (isu): Add VMULLBQ_INT_S, VMULLBQ_INT_U, VMULLTQ_INT_S,
- VMULLTQ_INT_U.
- (supf): Add VMULLBQ_POLY_P, VMULLTQ_POLY_P, VMULLBQ_POLY_M_P,
- VMULLTQ_POLY_M_P.
- (VMULLBQ_INT, VMULLTQ_INT, VMULLBQ_INT_M, VMULLTQ_INT_M): Delete.
- (VMULLxQ_INT, VMULLxQ_POLY, VMULLxQ_INT_M, VMULLxQ_POLY_M): New.
- * config/arm/mve.md (mve_vmullbq_int_<supf><mode>)
- (mve_vmulltq_int_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_int_<supf><mode>) ... this.
- (mve_vmulltq_poly_p<mode>, mve_vmullbq_poly_p<mode>): Merge into ...
- (@mve_<mve_insn>q_poly_<supf><mode>): ... this.
- (mve_vmullbq_int_m_<supf><mode>, mve_vmulltq_int_m_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_int_m_<supf><mode>): ... this.
- (mve_vmullbq_poly_m_p<mode>, mve_vmulltq_poly_m_p<mode>): Merge into ...
- (@mve_<mve_insn>q_poly_m_<supf><mode>): ... this.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-shapes.cc (parse_element_type):
- Remove dead check.
-
-2023-08-28 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): Fix loop bound.
- (binary_acca_int64): Likewise.
-
-2023-08-28 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (fold_range): Handle relations.
-
-2023-08-28 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
- Optimize the function implementation.
-
-2023-08-28 liuhongt <hongtao.liu@intel.com>
-
- PR target/111119
- * config/i386/sse.md (V48_AVX2): Rename to ..
- (V48_128_256): .. this.
- (ssefltmodesuffix): Extend to V4SF/V8SF/V2DF/V4DF.
- (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Change
- V48_AVX2 to V48_128_256, also generate vmaskmov{ps,pd} for
- integral modes when TARGET_AVX2 is not available.
- (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
- (maskload<mode><sseintvecmodelower>): Change V48_AVX2 to
- V48_128_256.
- (maskstore<mode><sseintvecmodelower>): Ditto.
-
-2023-08-28 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (vsetvl_vtype_change_only_p):
- New function.
- (after_or_same_p): Ditto.
- (find_reg_killed_by): Delete.
- (has_vsetvl_killed_avl_p): Ditto.
- (anticipatable_occurrence_p): Refactor.
- (any_set_in_bb_p): Delete.
- (count_regno_occurrences): Ditto.
- (backward_propagate_worthwhile_p): Ditto.
- (demands_can_be_fused_p): Ditto.
- (earliest_pred_can_be_fused_p): New function.
- (vsetvl_dominated_by_p): Ditto.
- (vector_insn_info::parse_insn): Refactor.
- (vector_insn_info::merge): Refactor.
- (vector_insn_info::dump): Refactor.
- (vector_infos_manager::vector_infos_manager): Refactor.
- (vector_infos_manager::all_empty_predecessor_p): Delete.
- (vector_infos_manager::all_same_avl_p): Ditto.
- (vector_infos_manager::create_bitmap_vectors): Refactor.
- (vector_infos_manager::free_bitmap_vectors): Refactor.
- (vector_infos_manager::dump): Refactor.
- (pass_vsetvl::update_block_info): New function.
- (enum fusion_type): Ditto.
- (pass_vsetvl::get_backward_fusion_type): Delete.
- (pass_vsetvl::hard_empty_block_p): Ditto.
- (pass_vsetvl::backward_demand_fusion): Ditto.
- (pass_vsetvl::forward_demand_fusion): Ditto.
- (pass_vsetvl::demand_fusion): Ditto.
- (pass_vsetvl::cleanup_illegal_dirty_blocks): Ditto.
- (pass_vsetvl::compute_local_properties): Ditto.
- (pass_vsetvl::earliest_fusion): New function.
- (pass_vsetvl::vsetvl_fusion): Ditto.
- (pass_vsetvl::commit_vsetvls): Refactor.
- (get_first_vsetvl_before_rvv_insns): Ditto.
- (pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
- (pass_vsetvl::cleanup_earliest_vsetvls): New function.
- (pass_vsetvl::df_post_optimization): Refactor.
- (pass_vsetvl::lazy_vsetvl): Ditto.
- * config/riscv/riscv-vsetvl.h: Ditto.
-
-2023-08-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (len_fold_extract_last_<mode>): New pattern.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (expand_fold_extract_last): New function.
- * config/riscv/riscv-v.cc (emit_nonvlmax_slide_insn): Ditto.
- (emit_cpop_insn): Ditto.
- (emit_nonvlmax_compress_insn): Ditto.
- (expand_fold_extract_last): Ditto.
- * config/riscv/vector.md: Fix vcpop.m ratio demand.
-
-2023-08-25 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/sync-rvwmo.md: updated types to "multi" or
- "atomic" based on number of assembly lines generated
- * config/riscv/sync-ztso.md: likewise
- * config/riscv/sync.md: likewise
-
-2023-08-25 Jin Ma <jinma@linux.alibaba.com>
-
- * common/config/riscv/riscv-common.cc: Add zfa extension version, which depends on
- the F extension.
- * config/riscv/constraints.md (zfli): Constrain the floating point number that the
- instructions FLI.H/S/D can load.
- * config/riscv/iterators.md (ceil): New.
- * config/riscv/riscv-opts.h (MASK_ZFA): New.
- (TARGET_ZFA): New.
- * config/riscv/riscv-protos.h (riscv_float_const_rtx_index_for_fli): New.
- * config/riscv/riscv.cc (riscv_float_const_rtx_index_for_fli): New.
- (riscv_cannot_force_const_mem): If instruction FLI.H/S/D can be used, memory is
- not applicable.
- (riscv_const_insns): Likewise.
- (riscv_legitimize_const_move): Likewise.
- (riscv_split_64bit_move_p): If instruction FLI.H/S/D can be used, no split is
- required.
- (riscv_split_doubleword_move): Likewise.
- (riscv_output_move): Output the mov instructions in zfa extension.
- (riscv_print_operand): Output the floating-point value of the FLI.H/S/D immediate
- in assembly.
- (riscv_secondary_memory_needed): Likewise.
- * config/riscv/riscv.md (fminm<mode>3): New.
- (fmaxm<mode>3): New.
- (movsidf2_low_rv32): New.
- (movsidf2_high_rv32): New.
- (movdfsisi3_rv32): New.
- (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_zfa): New.
- * config/riscv/riscv.opt: New.
-
-2023-08-25 Sandra Loosemore <sandra@codesourcery.com>
-
- * omp-api.h: New.
- * omp-general.cc (omp_runtime_api_procname): New.
- (omp_runtime_api_call): Moved here from omp-low.cc, and make
- non-static.
- * omp-general.h: Include omp-api.h.
- * omp-low.cc (omp_runtime_api_call): Delete this copy.
-
-2023-08-25 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/generic.texi (OpenMP): Document OMP_STRUCTURED_BLOCK.
- * doc/gimple.texi (GIMPLE instruction set): Add
- GIMPLE_OMP_STRUCTURED_BLOCK.
- (GIMPLE_OMP_STRUCTURED_BLOCK): New subsection.
- * gimple-low.cc (lower_stmt): Error on GIMPLE_OMP_STRUCTURED_BLOCK.
- * gimple-pretty-print.cc (dump_gimple_omp_block): Handle
- GIMPLE_OMP_STRUCTURED_BLOCK.
- (pp_gimple_stmt_1): Likewise.
- * gimple-walk.cc (walk_gimple_stmt): Likewise.
- * gimple.cc (gimple_build_omp_structured_block): New.
- * gimple.def (GIMPLE_OMP_STRUCTURED_BLOCK): New.
- * gimple.h (gimple_build_omp_structured_block): Declare.
- (gimple_has_substatements): Handle GIMPLE_OMP_STRUCTURED_BLOCK.
- (CASE_GIMPLE_OMP): Likewise.
- * gimplify.cc (is_gimple_stmt): Handle OMP_STRUCTURED_BLOCK.
- (gimplify_expr): Likewise.
- * omp-expand.cc (GIMPLE_OMP_STRUCTURED_BLOCK): Error on
- GIMPLE_OMP_STRUCTURED_BLOCK.
- * omp-low.cc (scan_omp_1_stmt): Handle GIMPLE_OMP_STRUCTURED_BLOCK.
- (lower_omp_1): Likewise.
- (diagnose_sb_1): Likewise.
- (diagnose_sb_2): Likewise.
- * tree-inline.cc (remap_gimple_stmt): Handle
- GIMPLE_OMP_STRUCTURED_BLOCK.
- (estimate_num_insns): Likewise.
- * tree-nested.cc (convert_nonlocal_reference_stmt): Likewise.
- (convert_local_reference_stmt): Likewise.
- (convert_gimple_call): Likewise.
- * tree-pretty-print.cc (dump_generic_node): Handle
- OMP_STRUCTURED_BLOCK.
- * tree.def (OMP_STRUCTURED_BLOCK): New.
- * tree.h (OMP_STRUCTURED_BLOCK_BODY): New.
-
-2023-08-25 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_rtx_costs): Adjust const_int
- cost. Add some comments about different constants handling.
-
-2023-08-25 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`a ? one_zero : one_zero`): Move
- below detection of minmax.
-
-2023-08-25 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`a | C -> C`): New pattern.
-
-2023-08-25 Uros Bizjak <ubizjak@gmail.com>
-
- * caller-save.cc (new_saved_hard_reg):
- Rename TRUE/FALSE to true/false.
- (setup_save_areas): Ditto.
- * gcc.cc (set_collect_gcc_options): Ditto.
- (driver::build_multilib_strings): Ditto.
- (print_multilib_info): Ditto.
- * genautomata.cc (gen_cpu_unit): Ditto.
- (gen_query_cpu_unit): Ditto.
- (gen_bypass): Ditto.
- (gen_excl_set): Ditto.
- (gen_presence_absence_set): Ditto.
- (gen_presence_set): Ditto.
- (gen_final_presence_set): Ditto.
- (gen_absence_set): Ditto.
- (gen_final_absence_set): Ditto.
- (gen_automaton): Ditto.
- (gen_regexp_repeat): Ditto.
- (gen_regexp_allof): Ditto.
- (gen_regexp_oneof): Ditto.
- (gen_regexp_sequence): Ditto.
- (process_decls): Ditto.
- (reserv_sets_are_intersected): Ditto.
- (initiate_excl_sets): Ditto.
- (form_reserv_sets_list): Ditto.
- (check_presence_pattern_sets): Ditto.
- (check_absence_pattern_sets): Ditto.
- (check_regexp_units_distribution): Ditto.
- (check_unit_distributions_to_automata): Ditto.
- (create_ainsns): Ditto.
- (output_insn_code_cases): Ditto.
- (output_internal_dead_lock_func): Ditto.
- (form_important_insn_automata_lists): Ditto.
- * gengtype-state.cc (read_state_files_list): Ditto.
- * gengtype.cc (main): Ditto.
- * gimple-array-bounds.cc (array_bounds_checker::check_array_bounds):
- Ditto.
- * gimple.cc (gimple_build_call_from_tree): Ditto.
- (preprocess_case_label_vec_for_gimple): Ditto.
- * gimplify.cc (gimplify_call_expr): Ditto.
- * ordered-hash-map-tests.cc (test_map_of_int_to_strings): Ditto.
-
-2023-08-25 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111137
- * tree-vect-data-refs.cc (vect_slp_analyze_load_dependences):
- Properly handle grouped stores from other SLP instances.
-
-2023-08-25 Richard Biener <rguenther@suse.de>
-
- * tree-vect-data-refs.cc (vect_slp_analyze_store_dependences):
- Split out from vect_slp_analyze_node_dependences, remove
- dead code.
- (vect_slp_analyze_load_dependences): Split out from
- vect_slp_analyze_node_dependences, adjust comments. Process
- queued stores before any disambiguation.
- (vect_slp_analyze_node_dependences): Remove.
- (vect_slp_analyze_instance_dependence): Adjust.
-
-2023-08-25 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-float.cc (frelop_early_resolve): Rewrite for better NAN
- handling.
- (operator_not_equal::fold_range): Adjust for relations.
- (operator_lt::fold_range): Same.
- (operator_gt::fold_range): Same.
- (foperator_unordered_equal::fold_range): Same.
- (foperator_unordered_lt::fold_range): Same.
- (foperator_unordered_le::fold_range): Same.
- (foperator_unordered_gt::fold_range): Same.
- (foperator_unordered_ge::fold_range): Same.
-
-2023-08-25 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111136
- * tree-vect-loop.cc (vect_dissolve_slp_only_groups): For
- stores force STMT_VINFO_STRIDED_P and also duplicate that
- to all elements.
-
-2023-08-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_local_properties):
- Add early continue.
-
-2023-08-25 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/sse.md (vec_set<mode>): Removed.
- (V_128H): Merge into ..
- (V_128): .. this.
- (V_256H): Merge into ..
- (V_256): .. this.
- (V_512): Add V32HF, V32BF.
- (*ssse3_palignr<mode>_perm): Adjust mode iterator from V_128H
- to V_128.
- (vcond<mode><sseintvecmodelower>): Removed
- (vcondu<mode><sseintvecmodelower>): Removed.
- (avx_vbroadcastf128_<mode>): Refator from V_256H to V_256.
-
-2023-08-25 Hongyu Wang <hongyu.wang@intel.com>
-
- PR target/111127
- * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode>_maskz):
- Adjust paramter order.
-
-2023-08-24 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/94866
- * config/i386/sse.md (*sse2_movq128_<mode>_1): New insn pattern.
-
-2023-08-24 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/105899
- * doc/invoke.texi (Static Analyzer Options): Add "strcat" to the
- list of functions known to the analyzer.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111123
- * tree-ssa-ccp.cc (pass_fold_builtins::execute): Do not
- remove indirect clobbers here ...
- * tree-outof-ssa.cc (rewrite_out_of_ssa): ... but here.
- (remove_indirect_clobbers): New function.
-
-2023-08-24 Jan Hubicka <jh@suse.cz>
-
- * cfg.h (struct control_flow_graph): New field full_profile.
- * auto-profile.cc (afdo_annotate_cfg): Set full_profile to true.
- * cfg.cc (init_flow): Set full_profile to false.
- * graphite.cc (graphite_transform_loops): Set full_profile to false.
- * lto-streamer-in.cc (input_cfg): Initialize full_profile flag.
- * predict.cc (pass_profile::execute): Set full_profile to true.
- * symtab-thunks.cc (expand_thunk): Set full_profile to true.
- * tree-cfg.cc (gimple_verify_flow_info): Verify that profile is full
- if full_profile is set.
- * tree-inline.cc (initialize_cfun): Initialize full_profile.
- (expand_call_inline): Combine full_profile.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_build_slp_tree_1): Rename
- load_p to ldst_p, fix mistakes and rely on
- STMT_VINFO_DATA_REF.
-
-2023-08-24 Jan Hubicka <jh@suse.cz>
-
- * gimple-harden-conditionals.cc (insert_check_and_trap): Set count
- of newly build trap bb.
-
-2023-08-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_preferred_else_value): Remove it since
- it forbid COND_LEN_FMS/COND_LEN_FNMS STMT fold.
- (TARGET_PREFERRED_ELSE_VALUE): Ditto.
-
-2023-08-24 Robin Dapp <rdapp.gcc@gmail.com>
-
- * common/config/riscv/riscv-common.cc: Add -fsched-pressure.
- * config/riscv/riscv.cc (riscv_option_override): Set sched
- pressure algorithm.
-
-2023-08-24 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_print_operand): Allow vk operand.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111125
- * tree-vect-slp.cc (vect_slp_function): Split at novector
- loop entry, do not push blocks in novector loops.
-
-2023-08-24 Richard Sandiford <richard.sandiford@arm.com>
-
- * doc/extend.texi: Document the C [[__extension__ ...]] construct.
-
-2023-08-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * genmatch.cc (decision_tree::gen): Support
- COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS gimple fold.
- * gimple-match-exports.cc (gimple_simplify): Ditto.
- (gimple_resimplify6): New function.
- (gimple_resimplify7): New function.
- (gimple_match_op::resimplify): Support
- COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS gimple fold.
- (convert_conditional_op): Ditto.
- (build_call_internal): Ditto.
- (try_conditional_simplification): Ditto.
- (gimple_extract): Ditto.
- * gimple-match.h (gimple_match_cond::gimple_match_cond): Ditto.
- * internal-fn.cc (CASE): Ditto.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111115
- * tree-vectorizer.h (vect_slp_child_index_for_operand): New.
- * tree-vect-data-refs.cc (can_group_stmts_p): Also group
- .MASK_STORE.
- * tree-vect-slp.cc (arg3_arg2_map): New.
- (vect_get_operand_map): Handle IFN_MASK_STORE.
- (vect_slp_child_index_for_operand): New function.
- (vect_build_slp_tree_1): Handle statements with no LHS,
- masked store ifns.
- (vect_remove_slp_scalar_calls): Likewise.
- * tree-vect-stmts.cc (vect_check_store_rhs): Lookup the
- SLP child corresponding to the ifn value index.
- (vectorizable_store): Likewise for the mask index. Support
- masked stores.
- (vectorizable_load): Lookup the SLP child corresponding to the
- ifn mask index.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111125
- * tree-vect-slp.cc (vectorizable_bb_reduc_epilogue): Account
- for the remain_defs processing.
-
-2023-08-24 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.cc: Include ssa.h.
- (aarch64_multiply_add_p): Require the second operand of an
- Advanced SIMD subtraction to be a multiplication. Assume that
- such an operation won't be fused if the second operand is used
- multiple times and if the first operand is also a multiplication.
-
-2023-08-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-loop.cc (vectorizable_reduction): Apply
- LEN_FOLD_EXTRACT_LAST.
- * tree-vect-stmts.cc (vectorizable_condition): Ditto.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111128
- * tree-vect-patterns.cc (vect_recog_over_widening_pattern):
- Emit external shift operand inline if we promoted it with
- another pattern stmt.
-
-2023-08-24 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec.md: Fix typo.
-
-2023-08-24 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class binop_frm): Removed.
- (class reverse_binop_frm): Ditto.
- (class widen_binop_frm): Ditto.
- (class vfmacc_frm): Ditto.
- (class vfnmacc_frm): Ditto.
- (class vfmsac_frm): Ditto.
- (class vfnmsac_frm): Ditto.
- (class vfmadd_frm): Ditto.
- (class vfnmadd_frm): Ditto.
- (class vfmsub_frm): Ditto.
- (class vfnmsub_frm): Ditto.
- (class vfwmacc_frm): Ditto.
- (class vfwnmacc_frm): Ditto.
- (class vfwmsac_frm): Ditto.
- (class vfwnmsac_frm): Ditto.
- (class unop_frm): Ditto.
- (class vfrec7_frm): Ditto.
- (class binop): Add frm_op_type template arg.
- (class unop): Ditto.
- (class widen_binop): Ditto.
- (class widen_binop_fp): 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.
-
-2023-08-24 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111109
- * match.pd (ior(cond,cond), ior(vec_cond,vec_cond)):
- Add check to make sure cmp and icmp are inverse.
-
-2023-08-24 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/95929
- * match.pd (convert?(-a)): New pattern
- for 1bit integer types.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Add avx10_set and version and detect avx10.1.
- (cpu_indicator_init): Handle avx10.1-512.
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA2_AVX10_512BIT_SET): New.
- (OPTION_MASK_ISA2_AVX10_1_SET): Ditto.
- (OPTION_MASK_ISA2_AVX10_512BIT_UNSET): Ditto.
- (OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto.
- (OPTION_MASK_ISA2_AVX2_UNSET): Modify for AVX10_1.
- (ix86_handle_option): Handle -mavx10.1, -mavx10.1-256 and
- -mavx10.1-512.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_AVX10_512BIT, FEATURE_AVX10_1 and
- FEATURE_AVX10_512BIT.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- AVX10_512BIT, AVX10_1 and AVX10_1_512.
- * config/i386/constraints.md (Yk): Add AVX10_1.
- (Yv): Ditto.
- (k): Ditto.
- * config/i386/cpuid.h (bit_AVX10): New.
- (bit_AVX10_256): Ditto.
- (bit_AVX10_512): Ditto.
- * config/i386/i386-c.cc (ix86_target_macros_internal):
- Define AVX10_512BIT and AVX10_1.
- * config/i386/i386-isa.def
- (AVX10_512BIT): Add DEF_PTA(AVX10_512BIT).
- (AVX10_1): Add DEF_PTA(AVX10_1).
- * config/i386/i386-options.cc (isa2_opts): Add -mavx10.1.
- (ix86_valid_target_attribute_inner_p): Handle avx10-512bit, avx10.1
- and avx10.1-512.
- (ix86_option_override_internal): Enable AVX512{F,VL,BW,DQ,CD,BF16,
- FP16,VBMI,VBMI2,VNNI,IFMA,BITALG,VPOPCNTDQ} features for avx10.1-512.
- (ix86_valid_target_attribute_inner_p): Handle AVX10_1.
- * config/i386/i386.cc (ix86_get_ssemov): Add AVX10_1.
- (ix86_conditional_register_usage): Ditto.
- (ix86_hard_regno_mode_ok): Ditto.
- (ix86_rtx_costs): Ditto.
- * config/i386/i386.h (VALID_MASK_AVX10_MODE): New macro.
- * config/i386/i386.opt: Add option -mavx10.1, -mavx10.1-256 and
- -mavx10.1-512.
- * doc/extend.texi: Document avx10.1, avx10.1-256 and avx10.1-512.
- * doc/invoke.texi: Document -mavx10.1, -mavx10.1-256 and -mavx10.1-512.
- * doc/sourcebuild.texi: Document target avx10.1, avx10.1-256
- and avx10.1-512.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (ix86_check_avx10): New function to check isa_flags and
- isa_flags_explicit to emit warning when AVX10 is enabled
- by "-m" option.
- (ix86_check_avx512): New function to check isa_flags and
- isa_flags_explicit to emit warning when AVX512 is enabled
- by "-m" option.
- (ix86_handle_option): Do not change the flags when warning
- is emitted.
- * config/i386/driver-i386.cc (host_detect_local_cpu):
- Do not append -mno-avx10.1 for -march=native.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (ix86_check_avx10_vector_width): New function to check isa_flags
- to emit a warning when there is a conflict in AVX10 options for
- vector width.
- (ix86_handle_option): Add check for avx10.1-256 and avx10.1-512.
- * config/i386/driver-i386.cc (host_detect_local_cpu):
- Do not append -mno-avx10-max-512bit for -march=native.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vldqintrin.h: Remove target attribute.
- * config/i386/i386-builtin.def (BDESC):
- Add OPTION_MASK_ISA2_AVX10_1.
- * config/i386/i386-builtins.cc (def_builtin): Handle AVX10_1.
- * config/i386/i386-expand.cc
- (ix86_check_builtin_isa_match): Ditto.
- (ix86_expand_sse2_mulvxdi3): Add TARGET_AVX10_1.
- * config/i386/i386.md: Add new isa attribute avx10_1_or_avx512dq
- and avx10_1_or_avx512vl.
- * config/i386/sse.md: (VF2_AVX512VLDQ_AVX10_1): New.
- (VF1_128_256VLDQ_AVX10_1): Ditto.
- (VI8_AVX512VLDQ_AVX10_1): Ditto.
- (<sse>_andnot<mode>3<mask_name>):
- Add TARGET_AVX10_1 and change isa attr from avx512dq to
- avx10_1_or_avx512dq.
- (*andnot<mode>3): Add TARGET_AVX10_1 and change isa attr from
- avx512vl to avx10_1_or_avx512vl.
- (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
- Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
- (fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
- Ditto.
- (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
- Ditto.
- (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
- Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
- (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
- Add TARGET_AVX10_1.
- (fix<fixunssuffix>_truncv2sfv2di2): Ditto.
- (cond_mul<mode>): Change iterator to VI8_AVX10_1_AVX512DQVL.
- Remove target check.
- (avx512dq_mul<mode>3<mask_name>): Ditto.
- (*avx512dq_mul<mode>3<mask_name>): Ditto.
- (VI4F_BRCST32x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
- (<mask_codefor>avx512dq_broadcast<mode><mask_name>):
- Remove target check.
- (VI8F_BRCST64x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
- (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1):
- Remove target check.
- * config/i386/subst.md (mask_mode512bit_condition): Add TARGET_AVX10_1.
- (mask_avx512vl_condition): Ditto.
- (mask): Ditto.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vldqintrin.h: Remove target attribute.
- * config/i386/i386-builtin.def (BDESC):
- Add OPTION_MASK_ISA2_AVX10_1.
- * config/i386/i386.cc (standard_sse_constant_opcode): Add TARGET_AVX10_1.
- * config/i386/sse.md: (VI48_AVX512VL_AVX10_1): New.
- (VI48_AVX512VLDQ_AVX10_1): Ditto.
- (VF2_AVX512VL): Remove.
- (VI8_256_512VLDQ_AVX10_1): Rename from VI8_256_512.
- Add TARGET_AVX10_1.
- (*<code><mode>3<mask_name>): Change isa attribute to
- avx10_1_or_avx512dq. Add TARGET_AVX10_1.
- (<code><mode>3): Add TARGET_AVX10_1. Change isa attr
- to avx10_1_or_avx512vl.
- (<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>):
- Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
- (<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>):
- Add TARGET_AVX10_1.
- (<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>):
- Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
- (<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>):
- Add TARGET_AVX10_1.
- (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
- Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
- (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
- Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
- (float<floatunssuffix>v4div4sf2<mask_name>):
- Add TARGET_AVX10_1.
- (avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
- (*avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
- (float<floatunssuffix>v2div2sf2): Ditto.
- (float<floatunssuffix>v2div2sf2_mask): Ditto.
- (*float<floatunssuffix>v2div2sf2_mask): Ditto.
- (*float<floatunssuffix>v2div2sf2_mask_1): Ditto.
- (<avx512>_cvt<ssemodesuffix>2mask<mode>):
- Change iterator to VI48_AVX512VLDQ_AVX10_1. Remove target check.
- (<avx512>_cvtmask2<ssemodesuffix><mode>): Ditto.
- (*<avx512>_cvtmask2<ssemodesuffix><mode>):
- Change iterator to VI48_AVX512VL_AVX10_1. Remove target check.
- Change when constraint is enabled.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vldqintrin.h: Remove target attribute.
- * config/i386/i386-builtin.def (BDESC):
- Add OPTION_MASK_ISA2_AVX10_1.
- * config/i386/sse.md (VF_AVX512VLDQ_AVX10_1): New.
- (VFH_AVX512VLDQ_AVX10_1): Ditto.
- (VF1_AVX512VLDQ_AVX10_1): Ditto.
- (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
- Change iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
- (vec_pack<floatprefix>_float_<mode>): Change iterator to
- VI8_AVX512VLDQ_AVX10_1. Remove target check.
- (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Change iterator to
- VF1_AVX512VLDQ_AVX10_1. Remove target check.
- (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
- (VI48F_256_DQVL_AVX10_1): Rename from VI48F_256_DQ.
- (avx512vl_vextractf128<mode>): Change iterator to
- VI48F_256_DQVL_AVX10_1. Remove target check.
- (vec_extract_hi_<mode>_mask): Add TARGET_AVX10_1.
- (vec_extract_hi_<mode>): Ditto.
- (avx512vl_vinsert<mode>): Ditto.
- (vec_set_lo_<mode><mask_name>): Ditto.
- (vec_set_hi_<mode><mask_name>): Ditto.
- (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Change
- iterator to VF_AVX512VLDQ_AVX10_1. Remove target check.
- (avx512dq_fpclass<mode><mask_scalar_merge_name>): Change
- iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
- * config/i386/subst.md (mask_avx512dq_condition): Add
- TARGET_AVX10_1.
- (mask_scalar_merge): Ditto.
-
-2023-08-24 Haochen Jiang <haochen.jiang@intel.com>
-
- Revert:
- 2023-08-18 Haochen Jiang <haochen.jiang@intel.com>
-
- PR target/111051
- * config/i386/avx512vldqintrin.h: Push AVX2 when AVX2 is
- disabled.
-
-2023-08-24 Richard Biener <rguenther@suse.de>
-
- PR debug/111080
- * dwarf2out.cc (prune_unused_types_walk): Handle
- DW_TAG_restrict_type, DW_TAG_shared_type, DW_TAG_atomic_type,
- DW_TAG_immutable_type, DW_TAG_coarray_type, DW_TAG_unspecified_type
- and DW_TAG_dynamic_type as to only output them when referenced.
-
-2023-08-24 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386.cc (ix86_invalid_conversion): Adjust GCC
- V13 to GCC 13.1.
-
-2023-08-24 liuhongt <hongtao.liu@intel.com>
-
- * common/config/i386/i386-common.cc (processor_names): Add new
- member graniterapids-s and arrowlake-s.
- * config/i386/i386-options.cc (processor_alias_table): Update
- table with PROCESSOR_ARROWLAKE_S and
- PROCESSOR_GRANITERAPIDS_D.
- (m_GRANITERAPID_D): New macro.
- (m_ARROWLAKE_S): Ditto.
- (m_CORE_AVX512): Add m_GRANITERAPIDS_D.
- (processor_cost_table): Add icelake_cost for
- PROCESSOR_GRANITERAPIDS_D and alderlake_cost for
- PROCESSOR_ARROWLAKE_S.
- * config/i386/x86-tune.def: Hanlde m_ARROWLAKE_S same as
- m_ARROWLAKE.
- * config/i386/i386.h (enum processor_type): Add new member
- PROCESSOR_GRANITERAPIDS_D and PROCESSOR_ARROWLAKE_S.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Handle
- PROCESSOR_GRANITERAPIDS_D and PROCESSOR_ARROWLAKE_S
-
-2023-08-23 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * lra-eliminations.cc (eliminate_regs_in_insn): Use equivalences to
- to help simplify code further.
-
-2023-08-23 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-fold.cc (fold_using_range::range_of_phi): Tweak output.
- * gimple-range-phi.cc (phi_group::phi_group): Remove unused members.
- Initialize using a range instead of value and edge.
- (phi_group::calculate_using_modifier): Use initializer value and
- process for relations after trying for iteration convergence.
- (phi_group::refine_using_relation): Use initializer range.
- (phi_group::dump): Rework the dump output.
- (phi_analyzer::process_phi): Allow multiple constant initilizers.
- Dump groups immediately as created.
- (phi_analyzer::dump): Tweak output.
- * gimple-range-phi.h (phi_group::phi_group): Adjust prototype.
- (phi_group::initial_value): Delete.
- (phi_group::refine_using_relation): Adjust prototype.
- (phi_group::m_initial_value): Delete.
- (phi_group::m_initial_edge): Delete.
- (phi_group::m_vr): Use int_range_max.
- * tree-vrp.cc (execute_ranger_vrp): Don't dump phi groups.
-
-2023-08-23 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-phi.cc (phi_analyzer::operator[]): Return NULL if
- no group was created.
- (phi_analyzer::process_phi): Do not create groups of one phi node.
-
-2023-08-23 Richard Earnshaw <rearnsha@arm.com>
-
- * target.def (gen_ccmp_first, gen_ccmp_next): Use rtx_code for
- CODE, CMP_CODE and BIT_CODE arguments.
- * config/aarch64/aarch64.cc (aarch64_gen_ccmp_first): Likewise.
- (aarch64_gen_ccmp_next): Likewise.
- * doc/tm.texi: Regenerated.
-
-2023-08-23 Richard Earnshaw <rearnsha@arm.com>
-
- * coretypes.h (rtx_code): Add forward declaration.
- * rtl.h (rtx_code): Make compatible with forward declaration.
-
-2023-08-23 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/111010
- * config/i386/i386.md (*concat<any_or_plus:mode><dwi>3_3):
- Merge pattern from *concatditi3_3 and *concatsidi3_3 using
- DWIH mode iterator. Disable (=&r,m,m) alternative for
- 32-bit targets.
- (*concat<any_or_plus:mode><dwi>3_3): Disable (=&r,m,m)
- alternative for 32-bit targets.
-
-2023-08-23 Zhangjin Liao <liaozhangjin@eswincomputing.com>
-
- * config/riscv/bitmanip.md (*<bitmanip_optab>disi2_sext): Add a more
- appropriate type attribute.
-
-2023-08-23 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/autovec-opt.md (*cond_abs<mode>): New combine pattern.
- (*copysign<mode>_neg): Ditto.
- * config/riscv/autovec.md (@vcond_mask_<mode><vm>): Adjust.
- (<optab><mode>2): Ditto.
- (cond_<optab><mode>): New.
- (cond_len_<optab><mode>): Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): New.
- (expand_cond_len_unop): New helper func.
- * config/riscv/riscv-v.cc (shuffle_merge_patterns): Adjust.
- (expand_cond_len_unop): New helper func.
-
-2023-08-23 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.cc (enum ch_decision): Fix comment.
- (should_duplicate_loop_header_p): Fix return value for static exits.
- (ch_base::copy_headers): Improve handling of ch_possible_zero_cost.
-
-2023-08-23 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Move the handlings on
- VMAT_GATHER_SCATTER in the final loop nest to its own loop,
- and update the final nest accordingly.
-
-2023-08-23 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Move the handlings on
- VMAT_LOAD_STORE_LANES in the final loop nest to its own loop,
- and update the final nest accordingly.
-
-2023-08-23 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_store): Remove vec oprnds,
- adjust vec result_chain, vec_oprnd with auto_vec, and adjust
- gvec_oprnds with auto_delete_vec.
-
-2023-08-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc
- (pass_vsetvl::global_eliminate_vsetvl_insn): Fix potential ICE.
-
-2023-08-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (ge_sew_ratio_unavailable_p):
- Fix fuse rule bug.
- * config/riscv/riscv-vsetvl.def (DEF_SEW_LMUL_FUSE_RULE): Ditto.
-
-2023-08-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Add attribute.
-
-2023-08-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (change_insn): Clang format.
- (vector_infos_manager::all_same_ratio_p): Ditto.
- (vector_infos_manager::all_same_avl_p): Ditto.
- (pass_vsetvl::refine_vsetvls): Ditto.
- (pass_vsetvl::cleanup_vsetvls): Ditto.
- (pass_vsetvl::commit_vsetvls): Ditto.
- (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
- (pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
- (pass_vsetvl::compute_probabilities): Ditto.
-
-2023-08-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/t-riscv: Add riscv-vsetvl.def
-
-2023-08-22 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.opt: Add --param names
- riscv-autovec-preference and riscv-autovec-lmul
-
-2023-08-22 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
-
- * config/riscv/t-linux: Add MULTIARCH_DIRNAME.
-
-2023-08-22 Tobias Burnus <tobias@codesourcery.com>
-
- * tree-core.h (enum omp_clause_defaultmap_kind): Add
- OMP_CLAUSE_DEFAULTMAP_CATEGORY_ALL.
- * gimplify.cc (gimplify_scan_omp_clauses): Handle it.
- * tree-pretty-print.cc (dump_omp_clause): Likewise.
-
-2023-08-22 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/106652
- * doc/extend.texi (_Float<n>): Drop obsolete sentence that the
- types aren't supported in C++.
-
-2023-08-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * doc/md.texi: Add LEN_FOLD_EXTRACT_LAST pattern.
- * internal-fn.cc (fold_len_extract_direct): Ditto.
- (expand_fold_len_extract_optab_fn): Ditto.
- (direct_fold_len_extract_optab_supported_p): Ditto.
- * internal-fn.def (LEN_FOLD_EXTRACT_LAST): Ditto.
- * optabs.def (OPTAB_D): Ditto.
-
-2023-08-22 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vectorizable_store): Do not bump
- DR_GROUP_STORE_COUNT here. Remove early out.
- (vect_transform_stmt): Only call vectorizable_store on
- the last element of an interleaving chain.
-
-2023-08-22 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/94864
- PR tree-optimization/94865
- PR tree-optimization/93080
- * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): New pattern
- for vector insertion from vector extraction.
-
-2023-08-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- Kewen.Lin <linkw@linux.ibm.com>
-
- * tree-vect-loop.cc (vect_verify_loop_lens): Add exists check.
- (vectorizable_live_operation): Add live vectorization for length loop
- control.
-
-2023-08-22 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/105899
- * doc/invoke.texi: Remove -Wanalyzer-unterminated-string.
-
-2023-08-22 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (vfwredusum_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwredusum_frm): New intrinsic function def.
-
-2023-08-21 David Faust <david.faust@oracle.com>
-
- * config/bpf/bpf.md (neg): Second operand must be a register.
-
-2023-08-21 Edwin Lu <ewlu@rivosinc.com>
-
- * config/riscv/bitmanip.md: Added bitmanip type to insns
- that are missing types.
-
-2023-08-21 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/sync-ztso.md (atomic_load_ztso<mode>): Avoid extraenous
- newline.
-
-2023-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * config/aarch64/falkor-tag-collision-avoidance.cc (dump_insn_list):
- Fix format specifier.
-
-2023-08-21 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (frange::union_nans): Return false if nothing
- changed.
- (range_tests_floats): New test.
-
-2023-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR tree-optimization/111048
- * fold-const.cc (valid_mask_for_fold_vec_perm_cst_p): Set arg_npatterns
- correctly.
- (fold_vec_perm_cst): Remove workaround and again call
- valid_mask_fold_vec_perm_cst_p for both VLS and VLA vectors.
- (test_fold_vec_perm_cst::test_nunits_min_4): Add test-case.
-
-2023-08-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111082
- * tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Only
- pun operations that can overflow.
-
-2023-08-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * lcm.cc (compute_antinout_edge): Export as global use.
- (compute_earliest): Ditto.
- (compute_rev_insert_delete): Ditto.
- * lcm.h (compute_antinout_edge): Ditto.
- (compute_earliest): Ditto.
-
-2023-08-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111070
- * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check we have
- an SSA name before checking SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
-
-2023-08-21 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111002
- * match.pd (view_convert(vec_cond(a,b,c))): New pattern.
-
-2023-08-21 liuhongt <hongtao.liu@intel.com>
-
- * common/config/i386/cpuinfo.h (get_intel_cpu): Detect
- Alderlake-N.
- * common/config/i386/i386-common.cc (alias_table): Support
- -march=gracemont as an alias of -march=alderlake.
-
-2023-08-20 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_sse_extend): Use ops[1]
- instead of src in the call to ix86_expand_sse_cmp.
- * config/i386/sse.md (<any_extend:insn>v8qiv8hi2): Do not
- force operands[1] to a register.
- (<any_extend:insn>v4hiv4si2): Ditto.
- (<any_extend:insn>v2siv2di2): Ditto.
-
-2023-08-20 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/111006
- PR tree-optimization/110986
- * match.pd: (op(vec_cond(a,b,c))): Handle convert for op.
-
-2023-08-20 Eric Gallager <egallager@gcc.gnu.org>
-
- PR target/90835
- * Makefile.in: improve error message when /usr/include is
- missing
-
-2023-08-19 Tobias Burnus <tobias@codesourcery.com>
-
- PR middle-end/111017
- * omp-expand.cc (expand_omp_for_init_vars): Pass after=true
- to expand_omp_build_cond for 'factor != 0' condition, resulting
- in pre-r12-5295-g47de0b56ee455e code for the gimple insert.
-
-2023-08-19 Guo Jie <guojie@loongson.cn>
- Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/t-loongarch: Add loongarch-driver.h into
- TM_H. Add loongarch-def.h and loongarch-tune.h into
- OPTIONS_H_EXTRA.
-
-2023-08-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/111023
- * config/i386/i386-expand.cc (ix86_split_mmx_punpck):
- Also handle V2QImode.
- (ix86_expand_sse_extend): New function.
- * config/i386/i386-protos.h (ix86_expand_sse_extend): New prototype.
- * config/i386/mmx.md (<any_extend:insn>v4qiv4hi2): Enable for
- TARGET_SSE2. Expand through ix86_expand_sse_extend for !TARGET_SSE4_1.
- (<any_extend:insn>v2hiv2si2): Ditto.
- (<any_extend:insn>v2qiv2hi2): Ditto.
- * config/i386/sse.md (<any_extend:insn>v8qiv8hi2): Ditto.
- (<any_extend:insn>v4hiv4si2): Ditto.
- (<any_extend:insn>v2siv2di2): Ditto.
-
-2023-08-18 Aldy Hernandez <aldyh@redhat.com>
-
- PR ipa/110753
- * value-range.cc (irange::union_bitmask): Return FALSE if updated
- bitmask is semantically equivalent to the original mask.
- (irange::intersect_bitmask): Same.
- (irange::get_bitmask): Add comment.
-
-2023-08-18 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111019
- * tree-ssa-loop-im.cc (gather_mem_refs_stmt): When canonicalizing
- also scrap base and offset in case the ref is indirect.
-
-2023-08-18 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf.opt (mframe-limit): Set default to 32767.
-
-2023-08-18 Kewen Lin <linkw@linux.ibm.com>
-
- PR bootstrap/111021
- * Makefile.in (TM_P_H): Add $(TREE_H) as dependence.
-
-2023-08-18 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_build_scatter_store_calls): New, factor
- out from ...
- (vectorizable_store): ... here.
-
-2023-08-18 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111048
- * fold-const.cc (fold_vec_perm_cst): Check for non-VLA
- vectors first.
-
-2023-08-18 Haochen Jiang <haochen.jiang@intel.com>
-
- PR target/111051
- * config/i386/avx512vldqintrin.h: Push AVX2 when AVX2 is
- disabled.
-
-2023-08-18 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Move the handlings on
- VMAT_GATHER_SCATTER in the final loop nest to its own loop,
- and update the final nest accordingly.
-
-2023-08-18 Andrew Pinski <apinski@marvell.com>
-
- * doc/md.texi (Standard patterns): Document cond_neg, cond_one_cmpl,
- cond_len_neg and cond_len_one_cmpl.
-
-2023-08-18 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/iterators.md (TARGET_HARD_FLOAT || TARGET_ZFINX): New.
- * config/riscv/pic.md (*local_pic_load<ANYF:mode>): Change ANYF.
- (*local_pic_load<ANYLSF:mode>): To ANYLSF.
- (*local_pic_load_32d<ANYF:mode>): Ditto.
- (*local_pic_load_32d<ANYLSF:mode>): Ditto.
- (*local_pic_store<ANYF:mode>): Ditto.
- (*local_pic_store<ANYLSF:mode>): Ditto.
- (*local_pic_store_32d<ANYF:mode>): Ditto.
- (*local_pic_store_32d<ANYLSF:mode>): Ditto.
-
-2023-08-18 Lehua Ding <lehua.ding@rivai.ai>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/predicates.md (vector_const_0_operand): New.
- * config/riscv/vector.md (*pred_broadcast<mode>_zero): Ditto.
-
-2023-08-18 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion):
- Forbidden.
-
-2023-08-17 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/111009
- * range-op.cc (operator_addr_expr::op1_range): Be more restrictive.
-
-2023-08-17 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Moving
- slots_num initialization from here ...
- (lra_spill): ... to here before the 1st call of
- assign_stack_slot_num_and_sort_pseudos. Add the 2nd call after
- fp->sp elimination.
-
-2023-08-17 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- PR c/106537
- * doc/invoke.texi (Option Summary): Mention
- -Wcompare-distinct-pointer-types under `Warning Options'.
- (Warning Options): Document -Wcompare-distinct-pointer-types.
-
-2023-08-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
-
- * recog.cc (memory_address_addr_space_p): Mark possibly unused
- argument as unused.
-
-2023-08-17 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/111039
- * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
- SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
-
-2023-08-17 Alex Coplan <alex.coplan@arm.com>
-
- * doc/rtl.texi: Fix up sample code for RTL-SSA insn changes.
-
-2023-08-17 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- PR target/111046
- * config/bpf/bpf.cc (bpf_attribute_table): Add entry for the
- `naked' function attribute.
- (bpf_warn_func_return): New function.
- (TARGET_WARN_FUNC_RETURN): Define.
- (bpf_expand_prologue): Add preventive comment.
- (bpf_expand_epilogue): Likewise.
- * doc/extend.texi (BPF Function Attributes): Document the `naked'
- function attribute.
-
-2023-08-17 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_slp_check_for_roots): Use
- !needs_fold_left_reduction_p to decide whether we can
- handle the reduction with association.
- (vectorize_slp_instance_root_stmt): For TYPE_OVERFLOW_UNDEFINED
- reductions perform all arithmetic in an unsigned type.
-
-2023-08-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * configure.ac (gcc_cv_ld64_version): Allow for dyld in ld -v
- output.
- * configure: Regenerate.
-
-2023-08-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (widen_freducop): Add frm_opt_type template arg.
- (vfwredosum_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwredosum_frm): New intrinsic function def.
-
-2023-08-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (vfredosum_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfredosum_frm): New intrinsic function def.
-
-2023-08-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class freducop): Add frm_op_type template arg.
- (vfredusum_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfredusum_frm): New intrinsic function def.
- * config/riscv/riscv-vector-builtins-shapes.cc
- (struct reduc_alu_frm_def): New class for frm shape.
- (SHAPE): New declaration.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
-
-2023-08-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfncvt_f): Add frm_op_type template arg.
- (vfncvt_f_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfncvt_f_frm): New intrinsic function def.
-
-2023-08-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (vfncvt_xu_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfncvt_xu_frm): New intrinsic function def.
-
-2023-08-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfncvt_x): Add frm_op_type template arg.
- (BASE): New declaration.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfncvt_x_frm): New intrinsic function def.
- * config/riscv/riscv-vector-builtins-shapes.cc
- (struct narrow_alu_frm_def): New shape function for frm.
- (SHAPE): New declaration.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
-
-2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vldqintrin.h: Remove target attribute.
- * config/i386/i386-builtin.def (BDESC):
- Add OPTION_MASK_ISA2_AVX10_1.
- * config/i386/sse.md (VF_AVX512VLDQ_AVX10_1): New.
- (VFH_AVX512VLDQ_AVX10_1): Ditto.
- (VF1_AVX512VLDQ_AVX10_1): Ditto.
- (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
- Change iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
- (vec_pack<floatprefix>_float_<mode>): Change iterator to
- VI8_AVX512VLDQ_AVX10_1. Remove target check.
- (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Change iterator to
- VF1_AVX512VLDQ_AVX10_1. Remove target check.
- (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
- (VI48F_256_DQVL_AVX10_1): Rename from VI48F_256_DQ.
- (avx512vl_vextractf128<mode>): Change iterator to
- VI48F_256_DQVL_AVX10_1. Remove target check.
- (vec_extract_hi_<mode>_mask): Add TARGET_AVX10_1.
- (vec_extract_hi_<mode>): Ditto.
- (avx512vl_vinsert<mode>): Ditto.
- (vec_set_lo_<mode><mask_name>): Ditto.
- (vec_set_hi_<mode><mask_name>): Ditto.
- (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Change
- iterator to VF_AVX512VLDQ_AVX10_1. Remove target check.
- (avx512dq_fpclass<mode><mask_scalar_merge_name>): Change
- iterator to VFH_AVX512VLDQ_AVX10_1. Remove target check.
- * config/i386/subst.md (mask_avx512dq_condition): Add
- TARGET_AVX10_1.
- (mask_scalar_merge): Ditto.
-
-2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vldqintrin.h: Remove target attribute.
- * config/i386/i386-builtin.def (BDESC):
- Add OPTION_MASK_ISA2_AVX10_1.
- * config/i386/i386.cc (standard_sse_constant_opcode): Add TARGET_AVX10_1.
- * config/i386/sse.md: (VI48_AVX512VL_AVX10_1): New.
- (VI48_AVX512VLDQ_AVX10_1): Ditto.
- (VF2_AVX512VL): Remove.
- (VI8_256_512VLDQ_AVX10_1): Rename from VI8_256_512.
- Add TARGET_AVX10_1.
- (*<code><mode>3<mask_name>): Change isa attribute to
- avx10_1_or_avx512dq. Add TARGET_AVX10_1.
- (<code><mode>3): Add TARGET_AVX10_1. Change isa attr
- to avx10_1_or_avx512vl.
- (<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>):
- Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
- (<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>):
- Add TARGET_AVX10_1.
- (<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>):
- Change iterator to VI8_256_512VLDQ_AVX10_1. Remove target check.
- (<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>):
- Add TARGET_AVX10_1.
- (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
- Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
- (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
- Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
- (float<floatunssuffix>v4div4sf2<mask_name>):
- Add TARGET_AVX10_1.
- (avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
- (*avx512dq_float<floatunssuffix>v2div2sf2): Ditto.
- (float<floatunssuffix>v2div2sf2): Ditto.
- (float<floatunssuffix>v2div2sf2_mask): Ditto.
- (*float<floatunssuffix>v2div2sf2_mask): Ditto.
- (*float<floatunssuffix>v2div2sf2_mask_1): Ditto.
- (<avx512>_cvt<ssemodesuffix>2mask<mode>):
- Change iterator to VI48_AVX512VLDQ_AVX10_1. Remove target check.
- (<avx512>_cvtmask2<ssemodesuffix><mode>): Ditto.
- (*<avx512>_cvtmask2<ssemodesuffix><mode>):
- Change iterator to VI48_AVX512VL_AVX10_1. Remove target check.
- Change when constraint is enabled.
-
-2023-08-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/111037
- * config/riscv/riscv-vsetvl.cc (float_insn_valid_sew_p): New function.
- (second_sew_less_than_first_sew_p): Fix bug.
- (first_sew_less_than_second_sew_p): Ditto.
-
-2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vldqintrin.h: Remove target attribute.
- * config/i386/i386-builtin.def (BDESC):
- Add OPTION_MASK_ISA2_AVX10_1.
- * config/i386/i386-builtins.cc (def_builtin): Handle AVX10_1.
- * config/i386/i386-expand.cc
- (ix86_check_builtin_isa_match): Ditto.
- (ix86_expand_sse2_mulvxdi3): Add TARGET_AVX10_1.
- * config/i386/i386.md: Add new isa attribute avx10_1_or_avx512dq
- and avx10_1_or_avx512vl.
- * config/i386/sse.md: (VF2_AVX512VLDQ_AVX10_1): New.
- (VF1_128_256VLDQ_AVX10_1): Ditto.
- (VI8_AVX512VLDQ_AVX10_1): Ditto.
- (<sse>_andnot<mode>3<mask_name>):
- Add TARGET_AVX10_1 and change isa attr from avx512dq to
- avx10_1_or_avx512dq.
- (*andnot<mode>3): Add TARGET_AVX10_1 and change isa attr from
- avx512vl to avx10_1_or_avx512vl.
- (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
- Change iterator to VF2_AVX512VLDQ_AVX10_1. Remove target check.
- (fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
- Ditto.
- (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
- Ditto.
- (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
- Change iterator to VF1_128_256VLDQ_AVX10_1. Remove target check.
- (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>):
- Add TARGET_AVX10_1.
- (fix<fixunssuffix>_truncv2sfv2di2): Ditto.
- (cond_mul<mode>): Change iterator to VI8_AVX10_1_AVX512DQVL.
- Remove target check.
- (avx512dq_mul<mode>3<mask_name>): Ditto.
- (*avx512dq_mul<mode>3<mask_name>): Ditto.
- (VI4F_BRCST32x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
- (<mask_codefor>avx512dq_broadcast<mode><mask_name>):
- Remove target check.
- (VI8F_BRCST64x2): Add TARGET_AVX512DQ and TARGET_AVX10_1.
- (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1):
- Remove target check.
- * config/i386/subst.md (mask_mode512bit_condition): Add TARGET_AVX10_1.
- (mask_avx512vl_condition): Ditto.
- (mask): Ditto.
-
-2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (ix86_check_avx10_vector_width): New function to check isa_flags
- to emit a warning when there is a conflict in AVX10 options for
- vector width.
- (ix86_handle_option): Add check for avx10.1-256 and avx10.1-512.
- * config/i386/driver-i386.cc (host_detect_local_cpu):
- Do not append -mno-avx10-max-512bit for -march=native.
-
-2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (ix86_check_avx10): New function to check isa_flags and
- isa_flags_explicit to emit warning when AVX10 is enabled
- by "-m" option.
- (ix86_check_avx512): New function to check isa_flags and
- isa_flags_explicit to emit warning when AVX512 is enabled
- by "-m" option.
- (ix86_handle_option): Do not change the flags when warning
- is emitted.
- * config/i386/driver-i386.cc (host_detect_local_cpu):
- Do not append -mno-avx10.1 for -march=native.
-
-2023-08-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Add avx10_set and version and detect avx10.1.
- (cpu_indicator_init): Handle avx10.1-512.
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA2_AVX10_512BIT_SET): New.
- (OPTION_MASK_ISA2_AVX10_1_SET): Ditto.
- (OPTION_MASK_ISA2_AVX10_512BIT_UNSET): Ditto.
- (OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto.
- (OPTION_MASK_ISA2_AVX2_UNSET): Modify for AVX10_1.
- (ix86_handle_option): Handle -mavx10.1, -mavx10.1-256 and
- -mavx10.1-512.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_AVX10_512BIT, FEATURE_AVX10_1 and
- FEATURE_AVX10_512BIT.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- AVX10_512BIT, AVX10_1 and AVX10_1_512.
- * config/i386/constraints.md (Yk): Add AVX10_1.
- (Yv): Ditto.
- (k): Ditto.
- * config/i386/cpuid.h (bit_AVX10): New.
- (bit_AVX10_256): Ditto.
- (bit_AVX10_512): Ditto.
- * config/i386/i386-c.cc (ix86_target_macros_internal):
- Define AVX10_512BIT and AVX10_1.
- * config/i386/i386-isa.def
- (AVX10_512BIT): Add DEF_PTA(AVX10_512BIT).
- (AVX10_1): Add DEF_PTA(AVX10_1).
- * config/i386/i386-options.cc (isa2_opts): Add -mavx10.1.
- (ix86_valid_target_attribute_inner_p): Handle avx10-512bit, avx10.1
- and avx10.1-512.
- (ix86_option_override_internal): Enable AVX512{F,VL,BW,DQ,CD,BF16,
- FP16,VBMI,VBMI2,VNNI,IFMA,BITALG,VPOPCNTDQ} features for avx10.1-512.
- (ix86_valid_target_attribute_inner_p): Handle AVX10_1.
- * config/i386/i386.cc (ix86_get_ssemov): Add AVX10_1.
- (ix86_conditional_register_usage): Ditto.
- (ix86_hard_regno_mode_ok): Ditto.
- (ix86_rtx_costs): Ditto.
- * config/i386/i386.h (VALID_MASK_AVX10_MODE): New macro.
- * config/i386/i386.opt: Add option -mavx10.1, -mavx10.1-256 and
- -mavx10.1-512.
- * doc/extend.texi: Document avx10.1, avx10.1-256 and avx10.1-512.
- * doc/invoke.texi: Document -mavx10.1, -mavx10.1-256 and -mavx10.1-512.
- * doc/sourcebuild.texi: Document target avx10.1, avx10.1-256
- and avx10.1-512.
-
-2023-08-17 Sergei Trofimovich <siarheit@google.com>
-
- * flag-types.h (vrp_mode): Remove unused.
-
-2023-08-17 Yanzhang Wang <yanzhang.wang@intel.com>
-
- * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Use
- CONSTM1_RTX.
-
-2023-08-17 Andrew Pinski <apinski@marvell.com>
-
- * internal-fn.def (COND_NOT): New internal function.
- * match.pd (UNCOND_UNARY, COND_UNARY): Add bit_not/not
- to the lists.
- (`vec (a ? -1 : 0) ^ b`): New pattern to convert
- into conditional not.
- * optabs.def (cond_one_cmpl): New optab.
- (cond_len_one_cmpl): Likewise.
-
-2023-08-16 Surya Kumari Jangala <jskumari@linux.ibm.com>
-
- PR rtl-optimization/110254
- * ira-color.cc (improve_allocation): Update array
- allocated_hard_reg_p.
-
-2023-08-16 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-int.h (lra_update_fp2sp_elimination): Change the prototype.
- * lra-eliminations.cc (spill_pseudos): Record spilled pseudos.
- (lra_update_fp2sp_elimination): Ditto.
- (update_reg_eliminate): Adjust spill_pseudos call.
- * lra-spills.cc (lra_spill): Assign stack slots to pseudos spilled
- in lra_update_fp2sp_elimination.
-
-2023-08-16 Richard Ball <richard.ball@arm.com>
-
- * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A720 CPU.
- * config/aarch64/aarch64-tune.md: Regenerate.
- * doc/invoke.texi: Document Cortex-A720 CPU.
-
-2023-08-16 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor):
- Implement expander.
- (<u>avg<v_double_trunc>3_ceil): Ditto.
- * config/riscv/vector-iterators.md (ashiftrt): New iterator.
- (ASHIFTRT): Ditto.
-
-2023-08-16 Robin Dapp <rdapp@ventanamicro.com>
-
- * internal-fn.cc (vec_extract_direct): Change type argument
- numbers.
- (expand_vec_extract_optab_fn): Call convert_optab_fn.
- (direct_vec_extract_optab_supported_p): Use
- convert_optab_supported_p.
-
-2023-08-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
- Richard Sandiford <richard.sandiford@arm.com>
-
- * fold-const.cc (INCLUDE_ALGORITHM): Add Include.
- (valid_mask_for_fold_vec_perm_cst_p): New function.
- (fold_vec_perm_cst): Likewise.
- (fold_vec_perm): Adjust assert and call fold_vec_perm_cst.
- (test_fold_vec_perm_cst): New namespace.
- (test_fold_vec_perm_cst::build_vec_cst_rand): New function.
- (test_fold_vec_perm_cst::validate_res): Likewise.
- (test_fold_vec_perm_cst::validate_res_vls): Likewise.
- (test_fold_vec_perm_cst::builder_push_elems): Likewise.
- (test_fold_vec_perm_cst::test_vnx4si_v4si): Likewise.
- (test_fold_vec_perm_cst::test_v4si_vnx4si): Likewise.
- (test_fold_vec_perm_cst::test_all_nunits): Likewise.
- (test_fold_vec_perm_cst::test_nunits_min_2): Likewise.
- (test_fold_vec_perm_cst::test_nunits_min_4): Likewise.
- (test_fold_vec_perm_cst::test_nunits_min_8): Likewise.
- (test_fold_vec_perm_cst::test_nunits_max_4): Likewise.
- (test_fold_vec_perm_cst::is_simple_vla_size): Likewise.
- (test_fold_vec_perm_cst::test): Likewise.
- (fold_const_cc_tests): Call test_fold_vec_perm_cst::test.
-
-2023-08-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (BASE): New declaration.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwcvt_xu_frm): New intrinsic function def.
-
-2023-08-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Use explicit argument.
-
-2023-08-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (BASE): New declaration.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwcvt_x_frm): New intrinsic function def.
-
-2023-08-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc (BASE): New declaration.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfcvt_f_frm): New intrinsic function def.
-
-2023-08-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (BASE): New declaration.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfcvt_xu_frm): New intrinsic function def..
-
-2023-08-16 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/110429
- * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Skip vector
- extract when the element is 7 on BE while 8 on LE for byte or 3 on
- BE while 4 on LE for halfword.
-
-2023-08-16 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/106769
- * config/rs6000/vsx.md (expand vsx_extract_<mode>): Set it only
- for V8HI and V16QI.
- (vsx_extract_v4si): New expand for V4SI extraction.
- (vsx_extract_v4si_w1): New insn pattern for V4SI extraction on
- word 1 from BE order.
- (*mfvsrwz): New insn pattern for mfvsrwz.
- (*vsx_extract_<mode>_di_p9): Assert that it won't be generated on
- word 1 from BE order.
- (*vsx_extract_si): Remove.
- (*vsx_extract_v4si_w023): New insn and split pattern on word 0, 2,
- 3 from BE order.
-
-2023-08-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (vec_mask_len_load_lanes<mode><vsingle>):
- New pattern.
- (vec_mask_len_store_lanes<mode><vsingle>): Ditto.
- * config/riscv/riscv-protos.h (expand_lanes_load_store): New function.
- * config/riscv/riscv-v.cc (get_mask_mode): Add tuple mask mode.
- (expand_lanes_load_store): New function.
- * config/riscv/vector-iterators.md: New iterator.
-
-2023-08-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.cc (internal_load_fn_p): Apply
- MASK_LEN_{LOAD_LANES,STORE_LANES} into vectorizer.
- (internal_store_fn_p): Ditto.
- (internal_fn_len_index): Ditto.
- (internal_fn_mask_index): Ditto.
- (internal_fn_stored_value_index): Ditto.
- * tree-vect-data-refs.cc (vect_store_lanes_supported): Ditto.
- (vect_load_lanes_supported): Ditto.
- * tree-vect-loop.cc: Ditto.
- * tree-vect-slp.cc (vect_slp_prefer_store_lanes_p): Ditto.
- * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
- (get_group_load_store_type): Ditto.
- (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
- * tree-vectorizer.h (vect_store_lanes_supported): Ditto.
- (vect_load_lanes_supported): Ditto.
-
-2023-08-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (enum frm_op_type): New type for frm.
- (BASE): New declaration.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfcvt_x_frm): New intrinsic function def.
-
-2023-08-16 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386-builtins.cc
- (ix86_vectorize_builtin_gather): Adjust for use_gather_8parts.
- * config/i386/i386-options.cc (parse_mtune_ctrl_str):
- Set/Clear tune features use_{gather,scatter}_{2parts, 4parts,
- 8parts} for -mtune-crtl={,^}{use_gather,use_scatter}.
- * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Adjust
- for use_scatter_8parts
- * config/i386/i386.h (TARGET_USE_GATHER): Rename to ..
- (TARGET_USE_GATHER_8PARTS): .. this.
- (TARGET_USE_SCATTER): Rename to ..
- (TARGET_USE_SCATTER_8PARTS): .. this.
- * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Rename to
- (X86_TUNE_USE_GATHER_8PARTS): .. this.
- (X86_TUNE_USE_SCATTER): Rename to
- (X86_TUNE_USE_SCATTER_8PARTS): .. this.
- * config/i386/i386.opt: Add new options mgather, mscatter.
-
-2023-08-16 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386-options.cc (m_GDS): New macro.
- * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Don't
- enable for m_GDS.
- (X86_TUNE_USE_GATHER_4PARTS): Ditto.
- (X86_TUNE_USE_GATHER): Ditto.
-
-2023-08-16 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386.md (movdf_internal): Generate vmovapd instead of
- vmovsd when moving DFmode between SSE_REGS.
- (movhi_internal): Generate vmovdqa instead of vmovsh when
- moving HImode between SSE_REGS.
- (mov<mode>_internal): Use vmovaps instead of vmovsh when
- moving HF/BFmode between SSE_REGS.
-
-2023-08-15 David Faust <david.faust@oracle.com>
-
- * config/bpf/bpf.md (extendsisi2): Delete useless define_insn.
-
-2023-08-15 David Faust <david.faust@oracle.com>
-
- PR target/111029
- * config/bpf/bpf.cc (bpf_print_register): Print 'w' registers
- for any mode 32-bits or smaller, not just SImode.
-
-2023-08-15 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/68930
- PR ipa/92497
- * ipa-prop.h (ipcp_get_aggregate_const): Declare.
- * ipa-prop.cc (ipcp_get_aggregate_const): New function.
- (ipcp_transform_function): Do not deallocate transformation info.
- * tree-ssa-sccvn.cc: Include alloc-pool.h, symbol-summary.h and
- ipa-prop.h.
- (vn_reference_lookup_2): When hitting default-def vuse, query
- IPA-CP transformation info for any known constants.
-
-2023-08-15 Chung-Lin Tang <cltang@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * gimplify.cc (oacc_region_type_name): New function.
- (oacc_default_clause): If no 'default' clause appears on this
- compute construct, see if one appears on a lexically containing
- 'data' construct.
- (gimplify_scan_omp_clauses): Upon OMP_CLAUSE_DEFAULT case, set
- ctx->oacc_default_clause_ctx to current context.
-
-2023-08-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110989
- * config/riscv/predicates.md: Fix predicate.
-
-2023-08-15 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_analyze_slp_instance): Remove
- slp_inst_kind_ctor handling.
- (vect_analyze_slp): Simplify.
- (vect_build_slp_instance): Dump when we analyze a CTOR.
- (vect_slp_check_for_constructors): Rename to ...
- (vect_slp_check_for_roots): ... this. Register a
- slp_root for CONSTRUCTORs instead of shoving them to
- the set of grouped stores.
- (vect_slp_analyze_bb_1): Adjust.
-
-2023-08-15 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (_slp_instance::remain_stmts): Change
- to ...
- (_slp_instance::remain_defs): ... this.
- (SLP_INSTANCE_REMAIN_STMTS): Rename to ...
- (SLP_INSTANCE_REMAIN_DEFS): ... this.
- (slp_root::remain): New.
- (slp_root::slp_root): Adjust.
- * tree-vect-slp.cc (vect_free_slp_instance): Adjust.
- (vect_build_slp_instance): Get extra remain parameter,
- adjust former handling of a cut off stmt.
- (vect_analyze_slp_instance): Adjust.
- (vect_analyze_slp): Likewise.
- (_bb_vec_info::~_bb_vec_info): Likewise.
- (vectorizable_bb_reduc_epilogue): Dump something if we fail.
- (vect_slp_check_for_constructors): Handle non-internal
- defs as remain defs of a reduction.
- (vectorize_slp_instance_root_stmt): Adjust.
-
-2023-08-15 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop-ivcanon.cc: Include tree-vectorizer.h
- (canonicalize_loop_induction_variables): Use find_loop_location.
-
-2023-08-15 Hans-Peter Nilsson <hp@axis.com>
-
- PR bootstrap/111021
- * config/cris/cris-protos.h: Revert recent change.
- * config/cris/cris.cc (cris_legitimate_address_p): Remove
- code_helper unused parameter.
- (cris_legitimate_address_p_hook): New wrapper function.
- (TARGET_LEGITIMATE_ADDRESS_P): Change to
- cris_legitimate_address_p_hook.
-
-2023-08-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110963
- * tree-ssa-pre.cc (do_pre_regular_insertion): Also insert
- a PHI node when the expression is available on all edges
- and we insert at most one copy from a constant.
-
-2023-08-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110991
- * tree-ssa-loop-ivcanon.cc (constant_after_peeling): Handle
- VIEW_CONVERT_EXPR <op>, handle more simple IV-like SSA cycles
- that will end up constant.
-
-2023-08-15 Kewen Lin <linkw@linux.ibm.com>
-
- PR bootstrap/111021
- * Makefile.in (RECOG_H): Add $(TREE_H) as dependence.
-
-2023-08-15 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Move the handlings on
- VMAT_LOAD_STORE_LANES in the final loop nest to its own loop,
- and update the final nest accordingly.
-
-2023-08-15 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Remove some useless checks
- on VMAT_INVARIANT.
-
-2023-08-15 Pan Li <pan2.li@intel.com>
-
- * mode-switching.cc (create_pre_exit): Add SET insn check.
-
-2023-08-15 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfrec7_frm): New class for frm.
- (vfrec7_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfrec7_frm): New intrinsic function definition.
- * config/riscv/vector-iterators.md
- (VFMISC): Remove VFREC7.
- (misc_op): Ditto.
- (float_insn_type): Ditto.
- (VFMISC_FRM): New int iterator.
- (misc_frm_op): New op for frm.
- (float_frm_insn_type): New type for frm.
- * config/riscv/vector.md (@pred_<misc_frm_op><mode>):
- New pattern for misc frm.
-
-2023-08-14 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc (curr_insn_transform): Process output stack
- pointer reloads before emitting reload insns.
-
-2023-08-14 benjamin priour <vultkayn@gcc.gnu.org>
-
- PR analyzer/110543
- * doc/invoke.texi: Add documentation of
- fanalyzer-show-events-in-system-headers
-
-2023-08-14 Jan Hubicka <jh@suse.cz>
-
- PR gcov-profile/110988
- * tree-cfg.cc (fold_loop_internal_call): Avoid division by zero.
-
-2023-08-14 Jiawei <jiawei@iscas.ac.cn>
-
- * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
- Enable compressed builtins when ZC* extensions enabled.
- * config/riscv/riscv-shorten-memrefs.cc:
- Enable shorten_memrefs pass when ZC* extensions enabled.
- * config/riscv/riscv.cc (riscv_compressed_reg_p):
- Enable compressible registers when ZC* extensions enabled.
- (riscv_rtx_costs): Allow adjusting rtx costs when ZC* extensions enabled.
- (riscv_address_cost): Allow adjusting address cost when ZC* extensions enabled.
- (riscv_first_stack_step): Allow compression of the register saves
- without adding extra instructions.
- * config/riscv/riscv.h (FUNCTION_BOUNDARY): Adjusts function boundary
- to 16 bits when ZC* extensions enabled.
-
-2023-08-14 Jiawei <jiawei@iscas.ac.cn>
-
- * common/config/riscv/riscv-common.cc (riscv_subset_list::parse): New extensions.
- * config/riscv/riscv-opts.h (MASK_ZCA): New mask.
- (MASK_ZCB): Ditto.
- (MASK_ZCE): Ditto.
- (MASK_ZCF): Ditto.
- (MASK_ZCD): Ditto.
- (MASK_ZCMP): Ditto.
- (MASK_ZCMT): Ditto.
- (TARGET_ZCA): New target.
- (TARGET_ZCB): Ditto.
- (TARGET_ZCE): Ditto.
- (TARGET_ZCF): Ditto.
- (TARGET_ZCD): Ditto.
- (TARGET_ZCMP): Ditto.
- (TARGET_ZCMT): Ditto.
- * config/riscv/riscv.opt: New target variable.
-
-2023-08-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- Revert:
- 2023-05-17 Jin Ma <jinma@linux.alibaba.com>
-
- * genrecog.cc (print_nonbool_test): Fix type error of
- switch (SUBREG_BYTE (op))'.
-
-2023-08-14 Richard Biener <rguenther@suse.de>
-
- * tree-cfg.cc (print_loop_info): Dump to 'file', not 'dump_file'.
-
-2023-08-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class unop_frm): New class for frm.
- (vfsqrt_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfsqrt_frm): New intrinsic function definition.
-
-2023-08-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfwnmsac_frm): New class for frm.
- (vfwnmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwnmsac_frm): New intrinsic function definition.
-
-2023-08-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfwmsac_frm): New class for frm.
- (vfwmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwmsac_frm): New intrinsic function definition.
-
-2023-08-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfwnmacc_frm): New class for frm.
- (vfwnmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwnmacc_frm): New intrinsic function definition.
-
-2023-08-14 Cui, Lili <lili.cui@intel.com>
-
- * common/config/i386/cpuinfo.h (get_intel_cpu): Add model value 0xba
- to Raptorlake.
-
-2023-08-14 Hans-Peter Nilsson <hp@axis.com>
-
- * config/mmix/predicates.md (mmix_address_operand): Use
- lra_in_progress, not reload_in_progress.
-
-2023-08-14 Hans-Peter Nilsson <hp@axis.com>
-
- * config/mmix/mmix.cc: Re-enable LRA.
-
-2023-08-14 Hans-Peter Nilsson <hp@axis.com>
-
- * config/mmix/predicates.md (frame_pointer_operand): Handle FP+offset
- when lra_in_progress.
-
-2023-08-14 Hans-Peter Nilsson <hp@axis.com>
-
- * config/mmix/mmix.cc: Disable LRA for MMIX.
-
-2023-08-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfwmacc_frm): New class for vfwmacc frm.
- (vfwmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwmacc_frm): Function definition for vfwmacc.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_widen_ternop_insn): Add frm support.
-
-2023-08-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmsub_frm): New class for vfnmsub frm.
- (vfnmsub_frm): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmsub_frm): New function declaration.
-
-2023-08-14 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc (curr_insn_transform): Set done_p up and
- check it on true after processing output stack pointer reload.
-
-2023-08-12 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile.in (USER_H): Add stdckdint.h.
- * ginclude/stdckdint.h: New file.
-
-2023-08-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110994
- * config/riscv/riscv-opts.h (TARGET_VECTOR_VLS): Add TARGET_VETOR.
-
-2023-08-12 Patrick Palka <ppalka@redhat.com>
-
- * tree-pretty-print.cc (dump_generic_node) <case TREE_VEC>:
- Delimit output with braces.
-
-2023-08-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110985
- * config/riscv/riscv-v.cc (expand_vec_series): Refactor the expander.
-
-2023-08-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Add VLS CONST_VECTOR.
- * config/riscv/riscv.cc (riscv_const_insns): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-08-11 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/105899
- * doc/analyzer.texi (__analyzer_get_strlen): New.
- * doc/invoke.texi: Add -Wanalyzer-unterminated-string.
-
-2023-08-11 Jeff Law <jlaw@ventanamicro.com>
-
- * config/rx/rx.md (subdi3): Fix test for borrow.
-
-2023-08-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR middle-end/110989
- * tree-vect-stmts.cc (vectorizable_store): Replace iv_type with sizetype.
- (vectorizable_load): Ditto.
-
-2023-08-11 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf.md (allocate_stack): Define.
- * config/bpf/bpf.h (FIRST_PSEUDO_REGISTER): Make room for fake
- stack pointer register.
- (FIXED_REGISTERS): Adjust accordingly.
- (CALL_USED_REGISTERS): Likewise.
- (REG_CLASS_CONTENTS): Likewise.
- (REGISTER_NAMES): Likewise.
- * config/bpf/bpf.cc (bpf_compute_frame_layout): Do not reserve
- space for callee-saved registers.
- (bpf_expand_prologue): Do not save callee-saved registers in xbpf.
- (bpf_expand_epilogue): Do not restore callee-saved registers in
- xbpf.
-
-2023-08-11 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf.cc (bpf_function_arg_advance): Do not complain
- about too many arguments if function is always inlined.
-
-2023-08-11 Patrick Palka <ppalka@redhat.com>
-
- * tree-pretty-print.cc (dump_generic_node) <case COMPONENT_REF>:
- Don't call component_ref_field_offset if the RHS isn't a decl.
-
-2023-08-11 John David Anglin <danglin@gcc.gnu.org>
-
- PR bootstrap/110646
- * gensupport.cc(class conlist): Use strtol instead of std::stoi.
-
-2023-08-11 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc (goal_alt_out_sp_reload_p): New flag.
- (process_alt_operands): Set the flag.
- (curr_insn_transform): Modify stack pointer offsets if output
- stack pointer reload is generated.
-
-2023-08-11 Joseph Myers <joseph@codesourcery.com>
-
- * configure: Regenerate.
-
-2023-08-11 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110979
- * tree-vect-loop.cc (vectorizable_reduction): For
- FOLD_LEFT_REDUCTION without target support make sure
- we don't need to honor signed zeros and sign dependent rounding.
-
-2023-08-11 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_slp_region): Provide opt-info for all SLP
- subgraph entries. Dump the used vector size based on the
- SLP subgraph entry root vector type.
-
-2023-08-11 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmsub_frm): New class for vfmsub frm.
- (vfmsub_frm): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmsub_frm): New function declaration.
-
-2023-08-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * doc/md.texi: Add vec_mask_len_{load_lanes,store_lanes} patterns.
- * internal-fn.cc (expand_partial_load_optab_fn): Ditto.
- (expand_partial_store_optab_fn): Ditto.
- * internal-fn.def (MASK_LEN_LOAD_LANES): Ditto.
- (MASK_LEN_STORE_LANES): Ditto.
- * optabs.def (OPTAB_CD): Ditto.
-
-2023-08-11 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmadd_frm): New class for vfnmadd frm.
- (vfnmadd_frm): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmadd_frm): New function declaration.
-
-2023-08-11 Drew Ross <drross@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109938
- * match.pd (((x ^ y) & z) | x -> (z & y) | x): New simplification.
-
-2023-08-11 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmadd_frm): New class for vfmadd frm.
- (vfmadd_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmadd_frm): New function definition.
-
-2023-08-11 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmsac_frm): New class for vfnmsac frm.
- (vfnmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmsac_frm): New function definition.
-
-2023-08-11 Jakub Jelinek <jakub@redhat.com>
-
- * doc/extend.texi (Typeof): Document typeof_unqual
- and __typeof_unqual__.
-
-2023-08-11 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110954
- * generic-match-head.cc (bitwise_inverted_equal_p): Add
- wascmp argument and set it accordingly.
- * gimple-match-head.cc (bitwise_inverted_equal_p): Add
- wascmp argument to the macro.
- (gimple_bitwise_inverted_equal_p): Add
- wascmp argument and set it accordingly.
- * match.pd (`a & ~a`, `a ^| ~a`): Update call
- to bitwise_inverted_equal_p and handle wascmp case.
- (`(~x | y) & x`, `(~x | y) & x`, `a?~t:t`): Update
- call to bitwise_inverted_equal_p and check to see
- if was !wascmp or if precision was 1.
-
-2023-08-11 Martin Uecker <uecker@tugraz.at>
-
- PR c/84510
- * doc/invoke.texi: Update.
-
-2023-08-11 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmsac_frm): New class for vfmsac frm.
- (vfmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmsac_frm): New function definition
-
-2023-08-10 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/110923
- * tree-ssa-loop-split.cc (split_loop): Watch for division by zero.
-
-2023-08-10 Patrick O'Neill <patrick@rivosinc.com>
-
- * common/config/riscv/riscv-common.cc: Add Ztso and mark Ztso as
- dependent on 'a' extension.
- * config/riscv/riscv-opts.h (MASK_ZTSO): New mask.
- (TARGET_ZTSO): New target.
- * config/riscv/riscv.cc (riscv_memmodel_needs_amo_acquire): Add
- Ztso case.
- (riscv_memmodel_needs_amo_release): Add Ztso case.
- (riscv_print_operand): Add Ztso case for LR/SC annotations.
- * config/riscv/riscv.md: Import sync-rvwmo.md and sync-ztso.md.
- * config/riscv/riscv.opt: Add Ztso target variable.
- * config/riscv/sync.md (mem_thread_fence_1): Expand to RVWMO or
- Ztso specific insn.
- (atomic_load<mode>): Expand to RVWMO or Ztso specific insn.
- (atomic_store<mode>): Expand to RVWMO or Ztso specific insn.
- * config/riscv/sync-rvwmo.md: New file. Seperate out RVWMO
- specific load/store/fence mappings.
- * config/riscv/sync-ztso.md: New file. Seperate out Ztso
- specific load/store/fence mappings.
-
-2023-08-10 Jan Hubicka <jh@suse.cz>
-
- * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Special case loops with
- 0 iteration count.
-
-2023-08-10 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-threadupdate.cc (ssa_fix_duplicate_block_edges): Fix profile update.
-
-2023-08-10 Jan Hubicka <jh@suse.cz>
-
- * profile-count.cc (profile_count::differs_from_p): Fix overflow and
- handling of undefined values.
-
-2023-08-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges): Never
- return virtual phis and return NULL if there is a virtual phi
- where the arguments from E0 and E1 edges aren't equal.
-
-2023-08-10 Richard Biener <rguenther@suse.de>
-
- * internal-fn.def (VCOND, VCONDU, VCONDEQ, VCOND_MASK,
- VEC_SET, VEC_EXTRACT): Make ECF_CONST | ECF_NOTHROW.
-
-2023-08-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110962
- * config/riscv/autovec.md (vec_duplicate<mode>): New pattern.
-
-2023-08-10 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmacc_frm): New class for vfnmacc.
- (vfnmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmacc_frm): New function definition.
-
-2023-08-10 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmacc_frm): New class for vfmacc frm.
- (vfmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmacc_frm): New function definition.
-
-2023-08-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110964
- * config/riscv/riscv-v.cc (expand_cond_len_ternop): Add integer ternary.
-
-2023-08-10 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (vectorizable_live_operation): Remove
- gimple_stmt_iterator * argument.
- * tree-vect-loop.cc (vectorizable_live_operation): Likewise.
- Adjust plumbing around vect_get_loop_mask.
- (vect_analyze_loop_operations): Adjust.
- * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Likewise.
- (vect_bb_slp_mark_live_stmts): Likewise.
- (vect_schedule_slp_node): Likewise.
- * tree-vect-stmts.cc (can_vectorize_live_stmts): Likewise.
- Remove gimple_stmt_iterator * argument.
- (vect_transform_stmt): Adjust.
-
-2023-08-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Add missing modes.
-
-2023-08-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * lto-streamer-in.cc (lto_input_tree_1): Assert TYPE_PRECISION
- is up to WIDE_INT_MAX_PRECISION rather than MAX_BITSIZE_MODE_ANY_INT.
-
-2023-08-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c/102989
- * expr.cc (expand_expr_real_1) <case MEM_REF>: Add an early return for
- EXPAND_WRITE or EXPAND_MEMORY modifiers to avoid testing it multiple
- times.
-
-2023-08-10 liuhongt <hongtao.liu@intel.com>
-
- PR target/110832
- * config/i386/mmx.md: (movq_<mode>_to_sse): Also do not
- sanitize upper part of V4HFmode register with
- -fno-trapping-math.
- (<insn>v4hf3): Enable for ix86_partial_vec_fp_math.
- (<divv4hf3): Ditto.
- (<insn>v2hf3): Ditto.
- (divv2hf3): Ditto.
- (movd_v2hf_to_sse): Do not sanitize upper part of V2HFmode
- register with -fno-trapping-math.
-
-2023-08-10 Pan Li <pan2.li@intel.com>
- Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-protos.h
- (enum floating_point_rounding_mode): Add NONE, DYN_EXIT and DYN_CALL.
- (get_frm_mode): New declaration.
- * config/riscv/riscv-v.cc (get_frm_mode): New function to get frm mode.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_ternop_insn): Take care of frm reg.
- * config/riscv/riscv.cc (riscv_static_frm_mode_p): Migrate to FRM_XXX.
- (riscv_emit_frm_mode_set): Ditto.
- (riscv_emit_mode_set): Ditto.
- (riscv_frm_adjust_mode_after_call): Ditto.
- (riscv_frm_mode_needed): Ditto.
- (riscv_frm_mode_after): Ditto.
- (riscv_mode_entry): Ditto.
- (riscv_mode_exit): Ditto.
- * config/riscv/riscv.h (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
- * config/riscv/vector.md
- (rne,rtz,rdn,rup,rmm,dyn,dyn_exit,dyn_call,none): Removed
- (symbol_ref): * config/riscv/vector.md: Set frm_mode attr explicitly.
-
-2023-08-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (anticipatable_occurrence_p): Fix
- incorrect anticipate info.
-
-2023-08-09 Tsukasa OI <research_trasio@irq.a4lg.com>
-
- * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
- Remove 'Zve32d' from the version list.
-
-2023-08-09 Jin Ma <jinma@linux.alibaba.com>
-
- * config/riscv/riscv.cc (riscv_sched_variable_issue): New function.
- (TARGET_SCHED_VARIABLE_ISSUE): New macro.
- Co-authored-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
- Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
-
-2023-08-09 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/riscv.cc (riscv_legitimize_address): Handle folding.
- (mem_shadd_or_shadd_rtx_p): New function.
-
-2023-08-09 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110937
- PR tree-optimization/100798
- * match.pd (`a ? ~b : b`): Handle this
- case.
-
-2023-08-09 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.opt (mpartial-vector-fp-math): Add dot.
-
-2023-08-09 Richard Ball <richard.ball@arm.com>
-
- * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A520 CPU.
- * config/aarch64/aarch64-tune.md: Regenerate.
- * doc/invoke.texi: Document Cortex-A520 CPU.
-
-2023-08-09 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/rs6000-builtins.def (vcmpneb, vcmpneh, vcmpnew):
- Move definitions to Altivec stanza.
- * config/rs6000/altivec.md (vcmpneb, vcmpneh, vcmpnew): New
- define_expand.
-
-2023-08-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110950
- * config/riscv/riscv-v.cc (expand_const_vector): Add NPATTERNS = 1
- stepped vector support.
-
-2023-08-09 liuhongt <hongtao.liu@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Rename local variable subleaf_level to max_subleaf_level.
-
-2023-08-09 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/110587
- * lra-assigns.cc (find_hard_regno_for_1): Re-order checks.
-
-2023-08-09 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/110248
- * config/rs6000/rs6000.cc (rs6000_legitimate_address_p): Check if
- the given code is for ifn LEN_{LOAD,STORE}, if yes then make it not
- legitimate when outer code is PLUS.
-
-2023-08-09 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/110248
- * recog.cc (memory_address_addr_space_p): Add one more argument ch of
- type code_helper and pass it to targetm.addr_space.legitimate_address_p
- instead of ERROR_MARK.
- (offsettable_address_addr_space_p): Update one function pointer with
- one more argument of type code_helper as its assignees
- memory_address_addr_space_p and strict_memory_address_addr_space_p
- have been adjusted, and adjust some call sites with ERROR_MARK.
- * recog.h (tree.h): New include header file for tree_code ERROR_MARK.
- (memory_address_addr_space_p): Adjust with one more unnamed argument
- of type code_helper with default ERROR_MARK.
- (strict_memory_address_addr_space_p): Likewise.
- * reload.cc (strict_memory_address_addr_space_p): Add one unnamed
- argument of type code_helper.
- * tree-ssa-address.cc (valid_mem_ref_p): Add one more argument ch of
- type code_helper and pass it to memory_address_addr_space_p.
- * tree-ssa-address.h (valid_mem_ref_p): Adjust the declaration with
- one more unnamed argument of type code_helper with default value
- ERROR_MARK.
- * tree-ssa-loop-ivopts.cc (get_address_cost): Use ERROR_MARK as code
- by default, change it with ifn code for USE_PTR_ADDRESS type use, and
- pass it to all valid_mem_ref_p calls.
-
-2023-08-09 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/110248
- * coretypes.h (class code_helper): Add forward declaration.
- * doc/tm.texi: Regenerate.
- * lra-constraints.cc (valid_address_p): Call target hook
- targetm.addr_space.legitimate_address_p with an extra parameter
- ERROR_MARK as its prototype changes.
- * recog.cc (memory_address_addr_space_p): Likewise.
- * reload.cc (strict_memory_address_addr_space_p): Likewise.
- * target.def (legitimate_address_p, addr_space.legitimate_address_p):
- Extend with one more argument of type code_helper, update the
- documentation accordingly.
- * targhooks.cc (default_legitimate_address_p): Adjust for the
- new code_helper argument.
- (default_addr_space_legitimate_address_p): Likewise.
- * targhooks.h (default_legitimate_address_p): Likewise.
- (default_addr_space_legitimate_address_p): Likewise.
- * config/aarch64/aarch64.cc (aarch64_legitimate_address_hook_p): Adjust
- with extra unnamed code_helper argument with default ERROR_MARK.
- * config/alpha/alpha.cc (alpha_legitimate_address_p): Likewise.
- * config/arc/arc.cc (arc_legitimate_address_p): Likewise.
- * config/arm/arm-protos.h (arm_legitimate_address_p): Likewise.
- (tree.h): New include for tree_code ERROR_MARK.
- * config/arm/arm.cc (arm_legitimate_address_p): Adjust with extra
- unnamed code_helper argument with default ERROR_MARK.
- * config/avr/avr.cc (avr_addr_space_legitimate_address_p): Likewise.
- * config/bfin/bfin.cc (bfin_legitimate_address_p): Likewise.
- * config/bpf/bpf.cc (bpf_legitimate_address_p): Likewise.
- * config/c6x/c6x.cc (c6x_legitimate_address_p): Likewise.
- * config/cris/cris-protos.h (cris_legitimate_address_p): Likewise.
- (tree.h): New include for tree_code ERROR_MARK.
- * config/cris/cris.cc (cris_legitimate_address_p): Adjust with extra
- unnamed code_helper argument with default ERROR_MARK.
- * config/csky/csky.cc (csky_legitimate_address_p): Likewise.
- * config/epiphany/epiphany.cc (epiphany_legitimate_address_p):
- Likewise.
- * config/frv/frv.cc (frv_legitimate_address_p): Likewise.
- * config/ft32/ft32.cc (ft32_addr_space_legitimate_address_p): Likewise.
- * config/gcn/gcn.cc (gcn_addr_space_legitimate_address_p): Likewise.
- * config/h8300/h8300.cc (h8300_legitimate_address_p): Likewise.
- * config/i386/i386.cc (ix86_legitimate_address_p): Likewise.
- * config/ia64/ia64.cc (ia64_legitimate_address_p): Likewise.
- * config/iq2000/iq2000.cc (iq2000_legitimate_address_p): Likewise.
- * config/lm32/lm32.cc (lm32_legitimate_address_p): Likewise.
- * config/loongarch/loongarch.cc (loongarch_legitimate_address_p):
- Likewise.
- * config/m32c/m32c.cc (m32c_legitimate_address_p): Likewise.
- (m32c_addr_space_legitimate_address_p): Likewise.
- * config/m32r/m32r.cc (m32r_legitimate_address_p): Likewise.
- * config/m68k/m68k.cc (m68k_legitimate_address_p): Likewise.
- * config/mcore/mcore.cc (mcore_legitimate_address_p): Likewise.
- * config/microblaze/microblaze-protos.h (tree.h): New include for
- tree_code ERROR_MARK.
- (microblaze_legitimate_address_p): Adjust with extra unnamed
- code_helper argument with default ERROR_MARK.
- * config/microblaze/microblaze.cc (microblaze_legitimate_address_p):
- Likewise.
- * config/mips/mips.cc (mips_legitimate_address_p): Likewise.
- * config/mmix/mmix.cc (mmix_legitimate_address_p): Likewise.
- * config/mn10300/mn10300.cc (mn10300_legitimate_address_p): Likewise.
- * config/moxie/moxie.cc (moxie_legitimate_address_p): Likewise.
- * config/msp430/msp430.cc (msp430_legitimate_address_p): Likewise.
- (msp430_addr_space_legitimate_address_p): Adjust with extra code_helper
- argument with default ERROR_MARK and adjust the call to function
- msp430_legitimate_address_p.
- * config/nds32/nds32.cc (nds32_legitimate_address_p): Adjust with extra
- unnamed code_helper argument with default ERROR_MARK.
- * config/nios2/nios2.cc (nios2_legitimate_address_p): Likewise.
- * config/nvptx/nvptx.cc (nvptx_legitimate_address_p): Likewise.
- * config/or1k/or1k.cc (or1k_legitimate_address_p): Likewise.
- * config/pa/pa.cc (pa_legitimate_address_p): Likewise.
- * config/pdp11/pdp11.cc (pdp11_legitimate_address_p): Likewise.
- * config/pru/pru.cc (pru_addr_space_legitimate_address_p): Likewise.
- * config/riscv/riscv.cc (riscv_legitimate_address_p): Likewise.
- * config/rl78/rl78-protos.h (rl78_as_legitimate_address): Likewise.
- (tree.h): New include for tree_code ERROR_MARK.
- * config/rl78/rl78.cc (rl78_as_legitimate_address): Adjust with
- extra unnamed code_helper argument with default ERROR_MARK.
- * config/rs6000/rs6000.cc (rs6000_legitimate_address_p): Likewise.
- (rs6000_debug_legitimate_address_p): Adjust with extra code_helper
- argument and adjust the call to function rs6000_legitimate_address_p.
- * config/rx/rx.cc (rx_is_legitimate_address): Adjust with extra
- unnamed code_helper argument with default ERROR_MARK.
- * config/s390/s390.cc (s390_legitimate_address_p): Likewise.
- * config/sh/sh.cc (sh_legitimate_address_p): Likewise.
- * config/sparc/sparc.cc (sparc_legitimate_address_p): Likewise.
- * config/v850/v850.cc (v850_legitimate_address_p): Likewise.
- * config/vax/vax.cc (vax_legitimate_address_p): Likewise.
- * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
- * config/xtensa/xtensa.cc (xtensa_legitimate_address_p): Likewise.
- * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
- Likewise.
- (tree.h): New include for tree_code ERROR_MARK.
- * config/stormy16/stormy16.cc (xstormy16_legitimate_address_p):
- Adjust with extra unnamed code_helper argument with default
- ERROR_MARK.
-
-2023-08-09 liuhongt <hongtao.liu@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features): Check
- EAX for valid subleaf before use CPUID.
-
-2023-08-08 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move): Use word_mode
- for the temporary when canonicalizing the condition.
-
-2023-08-08 Cupertino Miranda <cupertino.miranda@oracle.com>
-
- * config/bpf/core-builtins.cc: Cleaned include headers.
- (struct cr_builtins): Added GTY.
- (cr_builtins_ref): Created.
- (builtins_data) Changed to GC root.
- (allocate_builtin_data): Changed.
- Included gt-core-builtins.h.
- * config/bpf/coreout.cc: (bpf_core_extra) Added GTY.
- (bpf_core_extra_ref): Created.
- (bpf_comment_info): Changed to GC root.
- (bpf_core_reloc_add, output_btfext_header, btf_ext_init): Changed.
-
-2023-08-08 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/110832
- * config/i386/i386.opt (mpartial-vector-fp-math): New option.
- * config/i386/mmx.md (movq_<mode>_to_sse): Do not sanitize
- upper part of V2SFmode register with -fno-trapping-math.
- (<plusminusmult:insn>v2sf3): Enable for ix86_partial_vec_fp_math.
- (divv2sf3): Ditto.
- (<smaxmin:code>v2sf3): Ditto.
- (sqrtv2sf2): Ditto.
- (*mmx_haddv2sf3_low): Ditto.
- (*mmx_hsubv2sf3_low): Ditto.
- (vec_addsubv2sf3): Ditto.
- (vec_cmpv2sfv2si): Ditto.
- (vcond<V2FI:mode>v2sf): Ditto.
- (fmav2sf4): Ditto.
- (fmsv2sf4): Ditto.
- (fnmav2sf4): Ditto.
- (fnmsv2sf4): Ditto.
- (fix_truncv2sfv2si2): Ditto.
- (fixuns_truncv2sfv2si2): Ditto.
- (floatv2siv2sf2): Ditto.
- (floatunsv2siv2sf2): Ditto.
- (nearbyintv2sf2): Ditto.
- (rintv2sf2): Ditto.
- (lrintv2sfv2si2): Ditto.
- (ceilv2sf2): Ditto.
- (lceilv2sfv2si2): Ditto.
- (floorv2sf2): Ditto.
- (lfloorv2sfv2si2): Ditto.
- (btruncv2sf2): Ditto.
- (roundv2sf2): Ditto.
- (lroundv2sfv2si2): Ditto.
- * doc/invoke.texi (x86 Options): Document
- -mpartial-vector-fp-math option.
-
-2023-08-08 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/103281
- PR tree-optimization/28794
- * vr-values.cc (simplify_using_ranges::simplify_cond_using_ranges_1): Split out
- majority to ...
- (simplify_using_ranges::simplify_compare_using_ranges_1): Here.
- (simplify_using_ranges::simplify_casted_cond): Rename to ...
- (simplify_using_ranges::simplify_casted_compare): This
- and change arguments to take op0 and op1.
- (simplify_using_ranges::simplify_compare_assign_using_ranges_1): New method.
- (simplify_using_ranges::simplify): For tcc_comparison assignments call
- simplify_compare_assign_using_ranges_1.
- * vr-values.h (simplify_using_ranges): Add
- new methods, simplify_compare_using_ranges_1 and simplify_compare_assign_using_ranges_1.
- Rename simplify_casted_cond and simplify_casted_compare and
- update argument types.
-
-2023-08-08 Andrzej Turko <andrzej.turko@gmail.com>
-
- * genmatch.cc: Log line numbers indirectly.
-
-2023-08-08 Andrzej Turko <andrzej.turko@gmail.com>
-
- * genmatch.cc: Make sinfo map ordered.
- * Makefile.in: Require the ordered map header for genmatch.o.
-
-2023-08-08 Andrzej Turko <andrzej.turko@gmail.com>
-
- * ordered-hash-map.h: Add get_or_insert.
- * ordered-hash-map-tests.cc: Use get_or_insert in tests.
-
-2023-08-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (cond_<optab><mode>): New pattern.
- (cond_len_<optab><mode>): Ditto.
- (cond_fma<mode>): Ditto.
- (cond_len_fma<mode>): Ditto.
- (cond_fnma<mode>): Ditto.
- (cond_len_fnma<mode>): Ditto.
- (cond_fms<mode>): Ditto.
- (cond_len_fms<mode>): Ditto.
- (cond_fnms<mode>): Ditto.
- (cond_len_fnms<mode>): Ditto.
- * config/riscv/riscv-protos.h (riscv_get_v_regno_alignment): Export
- global.
- (enum insn_type): Add new enum type.
- (prepare_ternary_operands): New function.
- * config/riscv/riscv-v.cc (emit_vlmax_masked_fp_mu_insn): Ditto.
- (emit_nonvlmax_tumu_insn): Ditto.
- (emit_nonvlmax_fp_tumu_insn): Ditto.
- (expand_cond_len_binop): Add condtional operations.
- (expand_cond_len_ternop): Ditto.
- (prepare_ternary_operands): New function.
- * config/riscv/riscv.cc (riscv_memmodel_needs_amo_release): Export
- riscv_get_v_regno_alignment as global scope.
- * config/riscv/vector.md: Fix ternary bugs.
-
-2023-08-08 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/49955
- * tree-vectorizer.h (_slp_instance::remain_stmts): New.
- (SLP_INSTANCE_REMAIN_STMTS): Likewise.
- * tree-vect-slp.cc (vect_free_slp_instance): Release
- SLP_INSTANCE_REMAIN_STMTS.
- (vect_build_slp_instance): Make the number of lanes of
- a BB reduction even.
- (vectorize_slp_instance_root_stmt): Handle unvectorized
- defs of a BB reduction.
-
-2023-08-08 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.cc (get_len_internal_fn): New function.
- (DEF_INTERNAL_COND_FN): Ditto.
- (DEF_INTERNAL_SIGNED_COND_FN): Ditto.
- * internal-fn.h (get_len_internal_fn): Ditto.
- * tree-vect-stmts.cc (vectorizable_call): Add CALL auto-vectorization.
-
-2023-08-08 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110924
- * tree-ssa-live.h (virtual_operand_live): Update comment.
- * tree-ssa-live.cc (virtual_operand_live::get_live_in): Remove
- optimization, look at each predecessor.
- * tree-ssa-sink.cc (pass_sink_code::execute): Mark backedges.
-
-2023-08-08 yulong <shiyulong@iscas.ac.cn>
-
- * config/riscv/riscv-v.cc (slide1_sew64_helper): Modify.
-
-2023-08-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md (<optab><mode>2): Add VLS neg.
- * config/riscv/vector.md: Ditto.
-
-2023-08-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Add VLS shift.
-
-2023-08-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md (<optab><mode>3): Add VLS modes.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-08-07 Jonathan Wakely <jwakely@redhat.com>
-
- * config/i386/i386.cc (ix86_invalid_conversion): Fix grammar.
-
-2023-08-07 Nick Alcock <nick.alcock@oracle.com>
-
- * configure: Regenerate.
-
-2023-08-07 John Ericson <git@JohnEricson.me>
-
- * configure: Regenerate.
-
-2023-08-07 Alan Modra <amodra@gmail.com>
-
- * configure: Regenerate.
-
-2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
-
- * configure: Regenerate.
-
-2023-08-07 Nick Alcock <nick.alcock@oracle.com>
-
- * configure: Regenerate.
-
-2023-08-07 Nick Alcock <nick.alcock@oracle.com>
-
- * configure: Regenerate.
-
-2023-08-07 H.J. Lu <hjl.tools@gmail.com>
-
- * configure: Regenerate.
-
-2023-08-07 H.J. Lu <hjl.tools@gmail.com>
-
- * configure: Regenerate.
-
-2023-08-07 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move): Allow
- VOIDmode operands to conditional before canonicalization.
-
-2023-08-07 Manolis Tsamis <manolis.tsamis@vrull.eu>
-
- * regcprop.cc (maybe_copy_reg_attrs): Remove unnecessary function.
- (find_oldest_value_reg): Inline stack_pointer_rtx check.
- (copyprop_hardreg_forward_1): Inline stack_pointer_rtx check.
-
-2023-08-07 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/110378
- * ipa-param-manipulation.h (class ipa_param_body_adjustments): New
- members get_ddef_if_exists_and_is_used and mark_clobbers_dead.
- * ipa-sra.cc (isra_track_scalar_value_uses): Ignore clobbers.
- (ptr_parm_has_nonarg_uses): Likewise.
- * ipa-param-manipulation.cc
- (ipa_param_body_adjustments::get_ddef_if_exists_and_is_used): New.
- (ipa_param_body_adjustments::mark_dead_statements): Move initial
- checks to get_ddef_if_exists_and_is_used.
- (ipa_param_body_adjustments::mark_clobbers_dead): New.
- (ipa_param_body_adjustments::common_initialization): Call
- mark_clobbers_dead when splitting.
-
-2023-08-07 Raphael Zinsly <rzinsly@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_expand_int_scc): Add invert_ptr
- as an argument and pass it to riscv_emit_int_order_test.
- (riscv_expand_conditional_move): Handle cases where the condition
- is not EQ/NE or the second argument to the conditional is not
- (const_int 0).
- * config/riscv/riscv-protos.h (riscv_expand_int_scc): Update prototype.
- Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
-
-2023-08-07 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109959
- * match.pd (`(a > 1) ? 0 : (cast)a`, `(a <= 1) & (cast)a`):
- New patterns.
-
-2023-08-07 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sink.cc (pass_sink_code::execute): Do not
- calculate post-dominators. Calculate RPO on the inverted
- graph and process blocks in that order.
-
-2023-08-07 liuhongt <hongtao.liu@intel.com>
-
- PR target/110926
- * config/i386/i386-protos.h
- (vpternlog_redundant_operand_mask): Adjust parameter type.
- * config/i386/i386.cc (vpternlog_redundant_operand_mask): Use
- INTVAL instead of XINT, also adjust parameter type from rtx*
- to rtx since the function only needs operands[4] in vpternlog
- pattern.
- (substitute_vpternlog_operands): Pass operands[4] instead of
- operands to vpternlog_redundant_operand_mask.
- * config/i386/sse.md: Ditto.
-
-2023-08-07 Richard Biener <rguenther@suse.de>
-
- * tree-vect-slp.cc (vect_slp_region): Save/restore vect_location
- around dumping code.
-
-2023-08-07 liuhongt <hongtao.liu@intel.com>
-
- PR target/110762
- * config/i386/mmx.md (<insn><mode>3): Changed from define_insn
- to define_expand and break into ..
- (<insn>v4hf3): .. this.
- (divv4hf3): .. this.
- (<insn>v2hf3): .. this.
- (divv2hf3): .. this.
- (movd_v2hf_to_sse): New define_expand.
- (movq_<mode>_to_sse): Extend to V4HFmode.
- (mmxdoublevecmode): Ditto.
- (V2FI_V4HF): New mode iterator.
- * config/i386/sse.md (*vec_concatv4sf): Extend to hanlde V8HF
- by using mode iterator V4SF_V8HF, renamed to ..
- (*vec_concat<mode>): .. this.
- (*vec_concatv4sf_0): Extend to handle V8HF by using mode
- iterator V4SF_V8HF, renamed to ..
- (*vec_concat<mode>_0): .. this.
- (*vec_concatv8hf_movss): New define_insn.
- (V4SF_V8HF): New mode iterator.
-
-2023-08-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Add op vectype.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/mmx.md (*mmx_pinsrd): Drop "prefix_data16".
- (*mmx_pinsrb): Likewise.
- (*mmx_pextrb): Likewise.
- (*mmx_pextrb_zext): Likewise.
- (mmx_pshufbv8qi3): Likewise.
- (mmx_pshufbv4qi3): Likewise.
- (mmx_pswapdv2si2): Likewise.
- (*pinsrb): Likewise.
- (*pextrb): Likewise.
- (*pextrb_zext): Likewise.
- * config/i386/sse.md (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
- (*sse2_eq<mode>3): Likewise.
- (*sse2_gt<mode>3): Likewise.
- (<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
- (*vec_extract<mode>): Likewise.
- (*vec_extract<PEXTR_MODE12:mode>_zext): Likewise.
- (*vec_extractv16qi_zext): Likewise.
- (ssse3_ph<plusminus_mnemonic>wv8hi3): Likewise.
- (ssse3_pmaddubsw128): Likewise.
- (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Likewise.
- (<ssse3_avx2>_pshufb<mode>3<mask_name>): Likewise.
- (<ssse3_avx2>_psign<mode>3): Likewise.
- (<ssse3_avx2>_palignr<mode>): Likewise.
- (*abs<mode>2): Likewise.
- (sse4_2_pcmpestr): Likewise.
- (sse4_2_pcmpestri): Likewise.
- (sse4_2_pcmpestrm): Likewise.
- (sse4_2_pcmpestr_cconly): Likewise.
- (sse4_2_pcmpistr): Likewise.
- (sse4_2_pcmpistri): Likewise.
- (sse4_2_pcmpistrm): Likewise.
- (sse4_2_pcmpistr_cconly): Likewise.
- (vgf2p8affineinvqb_<mode><mask_name>): Likewise.
- (vgf2p8affineqb_<mode><mask_name>): Likewise.
- (vgf2p8mulb_<mode><mask_name>): Likewise.
- (*<code>v8hi3 [smaxmin]): Drop "prefix_data16" and
- "prefix_extra".
- (*<code>v16qi3 [umaxmin]): Likewise.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (sse4_1_round<mode>2): Make
- "length_immediate" uniformly 1.
- * config/i386/mmx.md (mmx_pblendvb_v8qi): Likewise.
- (mmx_pblendvb_<mode>): Likewise.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md
- (<avx512>_<complexopname>_<mode><maskc_name><round_name>): Add
- "prefix" attribute.
- (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
- Likewise.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (xop_phadd<u>bw): Add "prefix",
- "prefix_extra", and "mode" attributes.
- (xop_phadd<u>bd): Likewise.
- (xop_phadd<u>bq): Likewise.
- (xop_phadd<u>wd): Likewise.
- (xop_phadd<u>wq): Likewise.
- (xop_phadd<u>dq): Likewise.
- (xop_phsubbw): Likewise.
- (xop_phsubwd): Likewise.
- (xop_phsubdq): Likewise.
- (xop_rotl<mode>3): Add "prefix" and "prefix_extra" attributes.
- (xop_rotr<mode>3): Likewise.
- (xop_frcz<mode>2): Likewise.
- (*xop_vmfrcz<mode>2): Likewise.
- (xop_vrotl<mode>3): Add "prefix" attribute. Change
- "prefix_extra" to 1.
- (xop_sha<mode>3): Likewise.
- (xop_shl<mode>3): Likewise.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md
- (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Drop
- "prefix_extra".
- (avx512dq_vextract<shuffletype>64x2_1_mask): Likewise.
- (*avx512dq_vextract<shuffletype>64x2_1): Likewise.
- (avx512f_vextract<shuffletype>32x4_1_mask): Likewise.
- (*avx512f_vextract<shuffletype>32x4_1): Likewise.
- (vec_extract_lo_<mode>_mask [AVX512 forms]): Likewise.
- (vec_extract_lo_<mode> [AVX512 forms]): Likewise.
- (vec_extract_hi_<mode>_mask [AVX512 forms]): Likewise.
- (vec_extract_hi_<mode> [AVX512 forms]): Likewise.
- (@vec_extract_lo_<mode> [AVX512 forms]): Likewise.
- (@vec_extract_hi_<mode> [AVX512 forms]): Likewise.
- (vec_extract_lo_v64qi): Likewise.
- (vec_extract_hi_v64qi): Likewise.
- (*vec_widen_umult_even_v16si<mask_name>): Likewise.
- (*vec_widen_smult_even_v16si<mask_name>): Likewise.
- (*avx512f_<code><mode>3<mask_name>): Likewise.
- (*vec_extractv4ti): Likewise.
- (avx512bw_<code>v32qiv32hi2<mask_name>): Likewise.
- (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Likewise.
- Add "length_immediate".
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (@rdrand<mode>): Add "prefix_0f". Drop
- "prefix_extra".
- (@rdseed<mode>): Likewise.
- * config/i386/mmx.md (<code><mode>3 [smaxmin and umaxmin cases]):
- Adjust "prefix_extra".
- * config/i386/sse.md (@vec_set<mode>_0): Likewise.
- (*sse4_1_<code><mode>3<mask_name>): Likewise.
- (*avx2_eq<mode>3): Likewise.
- (avx2_gt<mode>3): Likewise.
- (<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
- (*vec_extract<mode>): Likewise.
- (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (rd<fsgs>base<mode>): Add "prefix_0f" and
- "prefix_rep". Drop "prefix_extra".
- (wr<fsgs>base<mode>): Likewise.
- (ptwrite<mode>): Likewise.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (isa): Move up.
- (length_immediate): Handle "fma4".
- (prefix): Handle "ssemuladd".
- * config/i386/sse.md (*fma_fmadd_<mode>): Add "prefix" attribute.
- (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
- Likewise.
- (<avx512>_fmadd_<mode>_mask<round_name>): Likewise.
- (<avx512>_fmadd_<mode>_mask3<round_name>): Likewise.
- (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>):
- Likewise.
- (<avx512>_fmsub_<mode>_mask<round_name>): Likewise.
- (<avx512>_fmsub_<mode>_mask3<round_name>): Likewise.
- (*fma_fnmadd_<mode>): Likewise.
- (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>):
- Likewise.
- (<avx512>_fnmadd_<mode>_mask<round_name>): Likewise.
- (<avx512>_fnmadd_<mode>_mask3<round_name>): Likewise.
- (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>):
- Likewise.
- (<avx512>_fnmsub_<mode>_mask<round_name>): Likewise.
- (<avx512>_fnmsub_<mode>_mask3<round_name>): Likewise.
- (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
- Likewise.
- (<avx512>_fmaddsub_<mode>_mask<round_name>): Likewise.
- (<avx512>_fmaddsub_<mode>_mask3<round_name>): Likewise.
- (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
- Likewise.
- (<avx512>_fmsubadd_<mode>_mask<round_name>): Likewise.
- (<avx512>_fmsubadd_<mode>_mask3<round_name>): Likewise.
- (*fmai_fmadd_<mode>): Likewise.
- (*fmai_fmsub_<mode>): Likewise.
- (*fmai_fnmadd_<mode><round_name>): Likewise.
- (*fmai_fnmsub_<mode><round_name>): Likewise.
- (avx512f_vmfmadd_<mode>_mask<round_name>): Likewise.
- (avx512f_vmfmadd_<mode>_mask3<round_name>): Likewise.
- (avx512f_vmfmadd_<mode>_maskz_1<round_name>): Likewise.
- (*avx512f_vmfmsub_<mode>_mask<round_name>): Likewise.
- (avx512f_vmfmsub_<mode>_mask3<round_name>): Likewise.
- (*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Likewise.
- (avx512f_vmfnmadd_<mode>_mask<round_name>): Likewise.
- (avx512f_vmfnmadd_<mode>_mask3<round_name>): Likewise.
- (avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Likewise.
- (*avx512f_vmfnmsub_<mode>_mask<round_name>): Likewise.
- (*avx512f_vmfnmsub_<mode>_mask3<round_name>): Likewise.
- (*avx512f_vmfnmsub_<mode>_maskz_1<round_name>): Likewise.
- (*fma4i_vmfmadd_<mode>): Likewise.
- (*fma4i_vmfmsub_<mode>): Likewise.
- (*fma4i_vmfnmadd_<mode>): Likewise.
- (*fma4i_vmfnmsub_<mode>): Likewise.
- (fma_<complexopname>_<mode><sdc_maskz_name><round_name>): Likewise.
- (<avx512>_<complexopname>_<mode>_mask<round_name>): Likewise.
- (avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
- Likewise.
- (avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Likewise.
- (xop_p<macs><ssemodesuffix><ssemodesuffix>): Likewise.
- (xop_p<macs>dql): Likewise.
- (xop_p<macs>dqh): Likewise.
- (xop_p<macs>wd): Likewise.
- (xop_p<madcs>wd): Likewise.
- (fma_<complexpairopname>_<mode>_pair): Likewise. Add "mode" attribute.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (length_immediate): Handle "sse4arg".
- (prefix): Likewise.
- (*xop_pcmov_<mode>): Add "mode" attribute.
- * config/i386/mmx.md (*xop_maskcmp<mode>3): Drop "prefix_data16",
- "prefix_rep", "prefix_extra", and "length_immediate" attributes.
- (*xop_maskcmp_uns<mode>3): Likewise. Switch "type" to "sse4arg".
- (*xop_pcmov_<mode>): Add "mode" attribute.
- * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Add "mode"
- attribute.
- (xop_maskcmp<mode>3): Drop "prefix_data16", "prefix_rep",
- "prefix_extra", and "length_immediate" attributes.
- (xop_maskcmp_uns<mode>3): Likewise. Switch "type" to "sse4arg".
- (xop_maskcmp_uns2<mode>3): Drop "prefix_data16", "prefix_extra",
- and "length_immediate" attributes. Switch "type" to "sse4arg".
- (xop_pcom_tf<mode>3): Likewise.
- (xop_vpermil2<mode>3): Drop "length_immediate" attribute.
-
-2023-08-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (prefix_extra): Correct comment. Fold
- cases yielding 2 into ones yielding 1.
-
-2023-08-07 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/106293
- * tree-vect-loop-manip.cc (vect_loop_versioning): Fix profile update.
- * tree-vect-loop.cc (vect_transform_loop): Likewise.
-
-2023-08-07 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/96695
- * match.pd (min_value, max_value): Extend to
- pointer types too.
-
-2023-08-06 Jan Hubicka <jh@suse.cz>
-
- * config/i386/cpuid.h (__get_cpuid_count, __get_cpuid_max): Add
- __builtin_expect that CPU likely supports cpuid.
-
-2023-08-06 Jan Hubicka <jh@suse.cz>
-
- * tree-loop-distribution.cc (loop_distribution::execute): Disable
- distribution for loops with estimated iterations 0.
-
-2023-08-06 Jan Hubicka <jh@suse.cz>
-
- * tree-vect-loop-manip.cc (vect_do_peeling): Fix profile update of peeled epilogues.
-
-2023-08-04 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move): Recognize
- more Zicond patterns. Fix whitespace typo.
- (riscv_rtx_costs): Remove accidental code duplication.
- Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
-
-2023-08-04 Yan Simonaytes <simonaytes.yan@ispras.ru>
-
- PR target/110202
- * config/i386/i386-protos.h
- (vpternlog_redundant_operand_mask): Declare.
- (substitute_vpternlog_operands): Declare.
- * config/i386/i386.cc
- (vpternlog_redundant_operand_mask): New helper.
- (substitute_vpternlog_operands): New function. Use them...
- * config/i386/sse.md: ... here in new VPTERNLOG define_splits.
-
-2023-08-04 Roger Sayle <roger@nextmovesoftware.com>
-
- * expmed.cc (extract_bit_field_1): Document that an UNSIGNEDP
- value of -1 is equivalent to don't care.
- (extract_integral_bit_field): Indicate that we don't require
- the most significant word to be zero extended, if we're about
- to sign extend it.
- (extract_fixed_bit_field_1): Document that an UNSIGNEDP value
- of -1 is equivalent to don't care. Don't clear the most
- significant bits with AND mask when UNSIGNEDP is -1.
-
-2023-08-04 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/sse.md (define_split): Convert highpart:DF extract
- from V2DFmode register into a sse2_storehpd instruction.
- (define_split): Likewise, convert lowpart:DF extract from V2DF
- register into a sse2_storelpd instruction.
-
-2023-08-04 Qing Zhao <qing.zhao@oracle.com>
-
- * doc/invoke.texi (-Wflex-array-member-not-at-end): Document
- new option.
-
-2023-08-04 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-lives.cc (process_bb_lives): Check input insn pattern hard regs
- against early clobber hard regs.
-
-2023-08-04 Tamar Christina <tamar.christina@arm.com>
-
- * doc/extend.texi: Document it.
-
-2023-08-04 Tamar Christina <tamar.christina@arm.com>
-
- PR target/106346
- * config/aarch64/aarch64-simd.md (vec_widen_<sur>shiftl_lo_<mode>,
- vec_widen_<sur>shiftl_hi_<mode>): Remove.
- (aarch64_<sur>shll<mode>_internal): Renamed to...
- (aarch64_<su>shll<mode>): .. This.
- (aarch64_<sur>shll2<mode>_internal): Renamed to...
- (aarch64_<su>shll2<mode>): .. This.
- (aarch64_<sur>shll_n<mode>, aarch64_<sur>shll2_n<mode>): Re-use new
- optabs.
- * config/aarch64/constraints.md (D2, DL): New.
- * config/aarch64/predicates.md (aarch64_simd_shll_imm_vec): New.
-
-2023-08-04 Tamar Christina <tamar.christina@arm.com>
-
- * gensupport.cc (conlist): Support length 0 attribute.
-
-2023-08-04 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_bool_compound_p): New.
- (aarch64_adjust_stmt_cost, aarch64_vector_costs::count_ops): Use it.
-
-2023-08-04 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_multiply_add_p): Update handling
- of constants.
- (aarch64_adjust_stmt_cost): Use it.
- (aarch64_vector_costs::count_ops): Likewise.
- (aarch64_vector_costs::add_stmt_cost): Pass vinfo to
- aarch64_adjust_stmt_cost.
-
-2023-08-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110838
- * tree-vect-patterns.cc (vect_recog_over_widening_pattern):
- Fix right-shift value sanitizing. Properly emit external
- def mangling in the preheader rather than in the pattern
- def sequence where it will fail vectorizing.
-
-2023-08-04 Matthew Malcomson <matthew.malcomson@arm.com>
-
- PR middle-end/110316
- PR middle-end/9903
- * timevar.cc (NANOSEC_PER_SEC, TICKS_TO_NANOSEC,
- CLOCKS_TO_NANOSEC, nanosec_to_floating_sec, percent_of): New.
- (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Remove these macros.
- (timer::validate_phases): Use integral arithmetic to check
- validity.
- (timer::print_row, timer::print): Convert from integral
- nanoseconds to floating point seconds before printing.
- (timer::all_zero): Change limit to nanosec count instead of
- fractional count of seconds.
- (make_json_for_timevar_time_def): Convert from integral
- nanoseconds to floating point seconds before recording.
- * timevar.h (struct timevar_time_def): Update all measurements
- to use uint64_t nanoseconds rather than seconds stored in a
- double.
-
-2023-08-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110838
- * match.pd (([rl]shift @0 out-of-bounds) -> zero): Restrict
- the arithmetic right-shift case to non-negative operands.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- Revert:
- 2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmacc_frm): New class for vfmacc frm.
- (vfmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmacc_frm): New function definition.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_ternop_insn): Add frm operand support.
- * config/riscv/vector.md: Add vfmuladd to frm_mode.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- Revert:
- 2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmacc_frm): New class for vfnmacc.
- (vfnmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmacc_frm): New function definition.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- Revert:
- 2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmsac_frm): New class for vfmsac frm.
- (vfmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmsac_frm): New function definition.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- Revert:
- 2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmsac_frm): New class for vfnmsac frm.
- (vfnmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmsac_frm): New function definition.
-
-2023-08-04 Georg-Johann Lay <avr@gjlay.de>
-
- * config/avr/avr-mcus.def (avr64dd14, avr64dd20, avr64dd28, avr64dd32)
- (avr64ea28, avr64ea32, avr64ea48, attiny424, attiny426, attiny427)
- (attiny824, attiny826, attiny827, attiny1624, attiny1626, attiny1627)
- (attiny3224, attiny3226, attiny3227, avr16dd14, avr16dd20, avr16dd28)
- (avr16dd32, avr32dd14, avr32dd20, avr32dd28, avr32dd32)
- (attiny102, attiny104): New devices.
- * doc/avr-mmcu.texi: Regenerate.
-
-2023-08-04 Georg-Johann Lay <avr@gjlay.de>
-
- * config/avr/avr-mcus.def (avr128d*, avr64d*): Fix their FLASH_SIZE
- and PM_OFFSET entries.
-
-2023-08-04 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110874
- * gimple-match-head.cc (gimple_bit_not_with_nop): New declaration.
- (gimple_maybe_cmp): Likewise.
- (gimple_bitwise_inverted_equal_p): Rewrite to use gimple_bit_not_with_nop
- and gimple_maybe_cmp instead of being recursive.
- * match.pd (bit_not_with_nop): New match pattern.
- (maybe_cmp): Likewise.
-
-2023-08-04 Drew Ross <drross@redhat.com>
-
- PR middle-end/101955
- * match.pd ((signed x << c) >> c): New canonicalization.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmsac_frm): New class for vfnmsac frm.
- (vfnmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmsac_frm): New function definition.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmsac_frm): New class for vfmsac frm.
- (vfmsac_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmsac_frm): New function definition.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfnmacc_frm): New class for vfnmacc.
- (vfnmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfnmacc_frm): New function definition.
-
-2023-08-04 Hao Liu <hliu@os.amperecomputing.com>
-
- PR target/110625
- * config/aarch64/aarch64.cc (aarch64_force_single_cycle): check
- STMT_VINFO_REDUC_DEF to avoid failures in info_for_reduction.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class vfmacc_frm): New class for vfmacc frm.
- (vfmacc_frm_obj): New declaration.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmacc_frm): New function definition.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_ternop_insn): Add frm operand support.
- * config/riscv/vector.md: Add vfmuladd to frm_mode.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (vfwmul_frm_obj): New declaration.
- (vfwmul_frm): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h:
- (vfwmul_frm): Ditto.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwmul_frm): New function definition.
- * config/riscv/vector.md: (frm_mode) Add vfwmul to frm_mode.
-
-2023-08-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (binop_frm): New declaration.
- (reverse_binop_frm): Likewise.
- (BASE): Likewise.
- * config/riscv/riscv-vector-builtins-bases.h:
- (vfdiv_frm): New extern declaration.
- (vfrdiv_frm): Likewise.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfdiv_frm): New function definition.
- (vfrdiv_frm): Likewise.
- * config/riscv/vector.md: Add vfdiv to frm_mode.
-
-2023-08-03 Jan Hubicka <jh@suse.cz>
-
- * tree-cfg.cc (print_loop_info): Print entry count.
-
-2023-08-03 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-split.cc (split_loop): Update estimated iteration counts.
-
-2023-08-03 Jan Hubicka <jh@suse.cz>
-
- PR bootstrap/110857
- * cfgloopmanip.cc (scale_loop_profile): (Un)initialize
- unadjusted_exit_count.
-
-2023-08-03 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Read global
- value/mask.
-
-2023-08-03 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move): Recognize
- various Zicond patterns.
- * config/riscv/riscv.md (mov<mode>cc): Allow TARGET_ZICOND. Use
- sfb_alu_operand for both arms of the conditional move.
- Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
-
-2023-08-03 Cupertino Miranda <cupertino.miranda@oracle.com>
-
- PR target/107844
- PR target/107479
- PR target/107480
- PR target/107481
- * config.gcc: Added core-builtins.cc and .o files.
- * config/bpf/bpf-passes.def: Removed file.
- * config/bpf/bpf-protos.h (bpf_add_core_reloc,
- bpf_replace_core_move_operands): New prototypes.
- * config/bpf/bpf.cc (enum bpf_builtins, is_attr_preserve_access,
- maybe_make_core_relo, bpf_core_field_info, bpf_core_compute,
- bpf_core_get_index, bpf_core_new_decl, bpf_core_walk,
- bpf_is_valid_preserve_field_info_arg, is_attr_preserve_access,
- handle_attr_preserve, pass_data_bpf_core_attr, pass_bpf_core_attr):
- Removed.
- (def_builtin, bpf_expand_builtin, bpf_resolve_overloaded_builtin): Changed.
- * config/bpf/bpf.md (define_expand mov<MM:mode>): Changed.
- (mov_reloc_core<mode>): Added.
- * config/bpf/core-builtins.cc (struct cr_builtin, enum
- cr_decision struct cr_local, struct cr_final, struct
- core_builtin_helpers, enum bpf_plugin_states): Added types.
- (builtins_data, core_builtin_helpers, core_builtin_type_defs):
- Added variables.
- (allocate_builtin_data, get_builtin-data, search_builtin_data,
- remove_parser_plugin, compare_same_kind, compare_same_ptr_expr,
- compare_same_ptr_type, is_attr_preserve_access, core_field_info,
- bpf_core_get_index, compute_field_expr,
- pack_field_expr_for_access_index, pack_field_expr_for_preserve_field,
- process_field_expr, pack_enum_value, process_enum_value, pack_type,
- process_type, bpf_require_core_support, make_core_relo, read_kind,
- kind_access_index, kind_preserve_field_info, kind_enum_value,
- kind_type_id, kind_preserve_type_info, get_core_builtin_fndecl_for_type,
- bpf_handle_plugin_finish_type, bpf_init_core_builtins,
- construct_builtin_core_reloc, bpf_resolve_overloaded_core_builtin,
- bpf_expand_core_builtin, bpf_add_core_reloc,
- bpf_replace_core_move_operands): Added functions.
- * config/bpf/core-builtins.h (enum bpf_builtins): Added.
- (bpf_init_core_builtins, bpf_expand_core_builtin,
- bpf_resolve_overloaded_core_builtin): Added functions.
- * config/bpf/coreout.cc (struct bpf_core_extra): Added.
- (bpf_core_reloc_add, output_asm_btfext_core_reloc): Changed.
- * config/bpf/coreout.h (bpf_core_reloc_add) Changed prototype.
- * config/bpf/t-bpf: Added core-builtins.o.
- * doc/extend.texi: Added documentation for new BPF builtins.
-
-2023-08-03 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
- ranges to the call to relation_fold_and_or.
- (fold_using_range::relation_fold_and_or): Add op1 and op2 ranges.
- (fur_source::register_outgoing_edges): Add op1 and op2 ranges.
- * gimple-range-fold.h (relation_fold_and_or): Adjust params.
- * gimple-range-gori.cc (gori_compute::compute_operand_range): Add
- a varying op1 and op2 to call.
- * range-op-float.cc (range_operator::op1_op2_relation): New dafaults.
- (operator_equal::op1_op2_relation): New float version.
- (operator_not_equal::op1_op2_relation): Ditto.
- (operator_lt::op1_op2_relation): Ditto.
- (operator_le::op1_op2_relation): Ditto.
- (operator_gt::op1_op2_relation): Ditto.
- (operator_ge::op1_op2_relation) Ditto.
- * range-op-mixed.h (operator_equal::op1_op2_relation): New float
- prototype.
- (operator_not_equal::op1_op2_relation): Ditto.
- (operator_lt::op1_op2_relation): Ditto.
- (operator_le::op1_op2_relation): Ditto.
- (operator_gt::op1_op2_relation): Ditto.
- (operator_ge::op1_op2_relation): Ditto.
- * range-op.cc (range_op_handler::op1_op2_relation): Dispatch new
- variations.
- (range_operator::op1_op2_relation): Add extra params.
- (operator_equal::op1_op2_relation): Ditto.
- (operator_not_equal::op1_op2_relation): Ditto.
- (operator_lt::op1_op2_relation): Ditto.
- (operator_le::op1_op2_relation): Ditto.
- (operator_gt::op1_op2_relation): Ditto.
- (operator_ge::op1_op2_relation): Ditto.
- * range-op.h (range_operator): New prototypes.
- (range_op_handler): Ditto.
-
-2023-08-03 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (gori_compute::compute_operand1_range):
- Use identity relation.
- (gori_compute::compute_operand2_range): Ditto.
- * value-relation.cc (get_identity_relation): New.
- * value-relation.h (get_identity_relation): New prototype.
-
-2023-08-03 Andrew MacLeod <amacleod@redhat.com>
-
- * value-range.h (Value_Range::set_varying): Set the type.
- (Value_Range::set_zero): Ditto.
- (Value_Range::set_nonzero): Ditto.
-
-2023-08-03 Jeff Law <jeffreyalaw@gmail.com>
-
- * config/riscv/riscv.cc (riscv_rtx_costs): Remove errant hunk from
- recent commit.
-
-2023-08-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Add vfsub.
-
-2023-08-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * poly-int.h (can_div_trunc_p): Succeed for more boundary conditions.
-
-2023-08-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110838
- * tree-vect-patterns.cc (vect_recog_over_widening_pattern):
- Adjust the shift operand of RSHIFT_EXPRs.
-
-2023-08-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110702
- * tree-ssa-loop-ivopts.cc (rewrite_use_address): When
- we created a NULL pointer based access rewrite that to
- a LEA.
-
-2023-08-03 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sink.cc: Include tree-ssa-live.h.
- (pass_sink_code::execute): Instantiate virtual_operand_live
- and pass it down.
- (sink_code_in_bb): Pass down virtual_operand_live.
- (statement_sink_location): Get virtual_operand_live and
- verify we are not sinking loads across stores by looking up
- the live virtual operand at the sink location.
-
-2023-08-03 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-live.h (class virtual_operand_live): New.
- * tree-ssa-live.cc (virtual_operand_live::init): New.
- (virtual_operand_live::get_live_in): Likewise.
- (virtual_operand_live::get_live_out): Likewise.
-
-2023-08-03 Richard Biener <rguenther@suse.de>
-
- * passes.def: Exchange loop splitting and final value
- replacement passes.
-
-2023-08-03 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
- New function which handles bswap patterns for vec_perm_const.
- (vectorize_vec_perm_const_1): Call new function.
- * config/s390/vector.md (*bswap<mode>): Fix operands in output
- template.
- (*vstbr<mode>): New insn.
-
-2023-08-03 Alexandre Oliva <oliva@adacore.com>
-
- * config/vxworks-smp.opt: New. Introduce -msmp.
- * config.gcc: Enable it on powerpc* vxworks prior to 7r*.
- * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Choose
- lib_smp when -msmp is present in the command line.
- * doc/invoke.texi: Document it.
-
-2023-08-03 Yanzhang Wang <yanzhang.wang@intel.com>
-
- * config/riscv/riscv.cc (riscv_save_reg_p): Save ra for leaf
- when enabling -mno-omit-leaf-frame-pointer
- (riscv_option_override): Override omit-frame-pointer.
- (riscv_frame_pointer_required): Save s0 for non-leaf function
- (TARGET_FRAME_POINTER_REQUIRED): Override defination
- * config/riscv/riscv.opt: Add option support.
-
-2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110792
- * config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
- place operand in a register before gen_<insn>64ti2_doubleword.
- (<any_rotate>di3): Likewise, for rotations by 32 bits, place
- operand in a register before gen_<insn>32di2_doubleword.
- (<any_rotate>32di2_doubleword): Constrain operand to be in register.
- (<any_rotate>64ti2_doubleword): Likewise.
-
-2023-08-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (vfmul_frm_obj): New declaration.
- (Base): Likewise.
- * config/riscv/riscv-vector-builtins-bases.h: Likewise.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfmul_frm): New function definition.
- * config/riscv/vector.md: Add vfmul to frm_mode.
-
-2023-08-03 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`~X & X`): Check that the types match.
- (`~x | x`, `~x ^ x`): Likewise.
-
-2023-08-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.h: Remove
- redudant declaration.
-
-2023-08-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add
- vfwsub frm.
- * config/riscv/riscv-vector-builtins-bases.h: Add declaration.
- * config/riscv/riscv-vector-builtins-functions.def (vfwsub_frm):
- Add vfwsub function definitions.
-
-2023-08-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- PR rtl-optimization/110867
- * combine.cc (simplify_compare_const): Try the optimization only
- in case the constant fits into the comparison mode.
-
-2023-08-02 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/zicond.md: Remove incorrect zicond patterns and
- renumber/rename them.
- (zero.nez.<GPR:MODE><X:mode>.opt2): Fix output string.
-
-2023-08-02 Richard Biener <rguenther@suse.de>
-
- * tree-phinodes.h (add_phi_node_to_bb): Remove.
- * tree-phinodes.cc (add_phi_node_to_bb): Make static.
-
-2023-08-02 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (vec_dupv2df<mask_name>): Fold the middle
- two of the alternatives.
-
-2023-08-02 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/92335
- * tree-ssa-sink.cc (select_best_block): Before loop
- optimizations avoid sinking unconditional loads/stores
- in innermost loops to conditional executed places.
-
-2023-08-02 Andrew Pinski <apinski@marvell.com>
-
- * gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Valueize
- the comparison operands before comparing them.
-
-2023-08-02 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`~X & X`, `~X | X`): Move over to
- use bitwise_inverted_equal_p, removing :c as bitwise_inverted_equal_p
- handles that already.
- Remove range test simplifications to true/false as they
- are now handled by these patterns.
-
-2023-08-02 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (match_simplify_replacement): Mark's cond
- statement's lhs and rhs to check if trivial dead.
- Rename inserted_exprs to exprs_maybe_dce; also move it so
- bitmap is not allocated if not needed.
-
-2023-08-02 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class widen_binop_frm): New class for binop frm.
- (BASE): Add vfwadd_frm.
- * config/riscv/riscv-vector-builtins-bases.h: New declaration.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfwadd_frm): New function definition.
- * config/riscv/riscv-vector-builtins-shapes.cc
- (BASE_NAME_MAX_LEN): New macro.
- (struct alu_frm_def): Leverage new base class.
- (struct build_frm_base): New build base for frm.
- (struct widen_alu_frm_def): New struct for widen alu frm.
- (SHAPE): Add widen_alu_frm shape.
- * config/riscv/riscv-vector-builtins-shapes.h: New declaration.
- * config/riscv/vector.md (frm_mode): Add vfwalu type.
-
-2023-08-02 Jan Hubicka <jh@suse.cz>
-
- * cfgloop.h (loop_count_in): Declare.
- * cfgloopanal.cc (expected_loop_iterations_by_profile): Use count_in.
- (loop_count_in): Move here from ...
- * cfgloopmanip.cc (loop_count_in): ... here.
- (scale_loop_profile): Improve dumping; cast iteration bound to sreal.
-
-2023-08-02 Jan Hubicka <jh@suse.cz>
-
- * cfg.cc (scale_strictly_dominated_blocks): New function.
- * cfg.h (scale_strictly_dominated_blocks): Declare.
- * tree-cfg.cc (fold_loop_internal_call): Fixup CFG profile.
-
-2023-08-02 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/110587
- * lra-spills.cc (return_regno_p): Remove.
- (regno_in_use_p): Likewise.
- (lra_final_code_change): Do not remove noop moves
- between hard registers.
-
-2023-08-02 liuhongt <hongtao.liu@intel.com>
-
- PR target/81904
- * config/i386/sse.md (vec_fmaddsub<mode>4): Extend to vector
- HFmode, use mode iterator VFH instead.
- (vec_fmsubadd<mode>4): Ditto.
- (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
- Remove scalar mode from iterator, use VFH_AVX512VL instead.
- (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
- Ditto.
-
-2023-08-02 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/sse.md (*avx2_lddqu_inserti_to_bcasti): New
- pre_reload define_insn_and_split.
-
-2023-08-02 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_rtx_costs): Add costing for
- using Zicond to implement some conditional moves.
-
-2023-08-02 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/zicond.md: Use the X iterator instead of ANYI
- on the comparison input operands.
-
-2023-08-02 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_rtx_costs, case IF_THEN_ELSE): Add
- Zicond costing.
- (case SET): For INSNs that just set a REG, take the cost from the
- SET_SRC.
- Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
-
-2023-08-02 Hu, Lin1 <lin1.hu@intel.com>
-
- * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_INT8_SET):
- Change OPTION_MASK_ISA2_AMX_TILE to OPTION_MASK_ISA2_AMX_TILE_SET.
- (OPTION_MASK_ISA2_AMX_BF16_SET): Ditto
- (OPTION_MASK_ISA2_AMX_FP16_SET): Ditto
- (OPTION_MASK_ISA2_AMX_COMPLEX_SET): Ditto
- (OPTION_MASK_ISA_ABM_SET):
- Change OPTION_MASK_ISA_POPCNT to OPTION_MASK_ISA_POPCNT_SET.
-
-2023-08-01 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390.cc (s390_encode_section_info): Assume external
- symbols without explicit alignment to be unaligned if
- -munaligned-symbols has been specified.
- * config/s390/s390.opt (-munaligned-symbols): New option.
-
-2023-08-01 Richard Ball <richard.ball@arm.com>
-
- * gimple-fold.cc (fold_ctor_reference):
- Add support for poly_int.
-
-2023-08-01 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/110220
- * config/avr/avr.cc (avr_optimize_casesi): Set JUMP_LABEL and
- LABEL_NUSES of new conditional branch instruction.
-
-2023-08-01 Jan Hubicka <jh@suse.cz>
-
- * tree-vect-loop-manip.cc (vect_do_peeling): Fix profile update after
- constant prologue peeling.
-
-2023-08-01 Christophe Lyon <christophe.lyon@linaro.org>
-
- * doc/sourcebuild.texi (arm_v8_1m_main_cde_mve_fp): Fix spelling.
-
-2023-08-01 Pan Li <pan2.li@intel.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (DYNAMIC_FRM_RTL): New macro.
- (STATIC_FRM_P): Ditto.
- (struct mode_switching_info): New struct for mode switching.
- (struct machine_function): Add new field mode switching.
- (riscv_emit_frm_mode_set): Add DYN_CALL emit.
- (riscv_frm_adjust_mode_after_call): New function for call mode.
- (riscv_frm_emit_after_call_in_bb_end): New function for emit
- insn when call as the end of bb.
- (riscv_frm_mode_needed): New function for frm mode needed.
- (frm_unknown_dynamic_p): Remove call check.
- (riscv_mode_needed): Extrac function for frm.
- (riscv_frm_mode_after): Add DYN_CALL after.
- (riscv_mode_entry): Remove backup rtl initialization.
- * config/riscv/vector.md (frm_mode): Add dyn_call.
- (fsrmsi_restore_exit): Rename to _volatile.
- (fsrmsi_restore_volatile): Likewise.
-
-2023-08-01 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc
- (class reverse_binop_frm): Add new template for reversed frm.
- (vfsub_frm_obj): New obj.
- (vfrsub_frm_obj): Likewise.
- * config/riscv/riscv-vector-builtins-bases.h:
- (vfsub_frm): New declaration.
- (vfrsub_frm): Likewise.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfsub_frm): New function define.
- (vfrsub_frm): Likewise.
-
-2023-08-01 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/93044
- * match.pd (nested int casts): A truncation (to the same size or smaller)
- can always remove the inner cast.
-
-2023-07-31 Hamza Mahfooz <someguy@effective-light.com>
-
- PR c/65213
- * doc/invoke.texi (-Wmissing-variable-declarations): Document
- new option.
-
-2023-07-31 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/106164
- * match.pd (`a != b & a <= b`, `a != b & a >= b`,
- `a == b | a < b`, `a == b | a > b`): Handle these cases
- too.
-
-2023-07-31 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/106164
- * match.pd: Extend the `(X CMP1 CST1) AND/IOR (X CMP2 CST2)`
- patterns to support `(X CMP1 Y) AND/IOR (X CMP2 Y)`.
-
-2023-07-31 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/100864
- * generic-match-head.cc (bitwise_inverted_equal_p): New function.
- * gimple-match-head.cc (bitwise_inverted_equal_p): New macro.
- (gimple_bitwise_inverted_equal_p): New function.
- * match.pd ((~x | y) & x): Use bitwise_inverted_equal_p
- instead of direct matching bit_not.
-
-2023-07-31 Costas Argyris <costas.argyris@gmail.com>
-
- PR driver/77576
- * gcc-ar.cc (main): Expand argv and use
- temporary response file to call ar if any
- expansions were made.
-
-2023-07-31 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/110582
- * gimple-range-fold.cc (fur_list::get_operand): Do not use the
- range vector for non-ssa names.
-
-2023-07-31 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/109361
- * diagnostic-client-data-hooks.h (class sarif_object): New forward
- decl.
- (diagnostic_client_data_hooks::add_sarif_invocation_properties):
- New vfunc.
- * diagnostic-format-sarif.cc: Include "diagnostic-format-sarif.h".
- (class sarif_invocation): Inherit from sarif_object rather than
- json::object.
- (class sarif_result): Likewise.
- (class sarif_ice_notification): Likewise.
- (sarif_object::get_or_create_properties): New.
- (sarif_invocation::prepare_to_flush): Add "context" param. Use it
- to call the context's add_sarif_invocation_properties hook.
- (sarif_builder::flush_to_file): Pass m_context to
- sarif_invocation::prepare_to_flush.
- * diagnostic-format-sarif.h: New header.
- * doc/invoke.texi (Developer Options): Clarify that -ftime-report
- writes to stderr. Document that if SARIF diagnostic output is
- requested then any timing information is written in JSON form as
- part of the SARIF output, rather than to stderr.
- * timevar.cc: Include "json.h".
- (timer::named_items::m_hash_map): Split out type into...
- (timer::named_items::hash_map_t): ...this new typedef.
- (timer::named_items::make_json): New function.
- (timevar_diff): New function.
- (make_json_for_timevar_time_def): New function.
- (timer::timevar_def::make_json): New function.
- (timer::make_json): New function.
- * timevar.h (class json::value): New forward decl.
- (timer::make_json): New decl.
- (timer::timevar_def::make_json): New decl.
- * tree-diagnostic-client-data-hooks.cc: Include
- "diagnostic-format-sarif.h" and "timevar.h".
- (compiler_data_hooks::add_sarif_invocation_properties): New vfunc
- implementation.
-
-2023-07-31 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * combine.cc (simplify_compare_const): Narrow comparison of
- memory and constant.
- (try_combine): Adapt new function signature.
- (simplify_comparison): Adapt new function signature.
-
-2023-07-31 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-v.cc (expand_vec_series): Drop unused
- variable.
- (expand_vector_init_insert_elems): Ditto.
-
-2023-07-31 Hao Liu <hliu@os.amperecomputing.com>
-
- PR target/110625
- * config/aarch64/aarch64.cc (count_ops): Only '* count' for
- single_defuse_cycle while counting reduction_latency.
-
-2023-07-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.def (DEF_INTERNAL_COND_FN): New macro.
- (DEF_INTERNAL_SIGNED_COND_FN): Ditto.
- (COND_ADD): Remove.
- (COND_SUB): Ditto.
- (COND_MUL): Ditto.
- (COND_DIV): Ditto.
- (COND_MOD): Ditto.
- (COND_RDIV): Ditto.
- (COND_MIN): Ditto.
- (COND_MAX): Ditto.
- (COND_FMIN): Ditto.
- (COND_FMAX): Ditto.
- (COND_AND): Ditto.
- (COND_IOR): Ditto.
- (COND_XOR): Ditto.
- (COND_SHL): Ditto.
- (COND_SHR): Ditto.
- (COND_FMA): Ditto.
- (COND_FMS): Ditto.
- (COND_FNMA): Ditto.
- (COND_FNMS): Ditto.
- (COND_NEG): Ditto.
- (COND_LEN_ADD): Ditto.
- (COND_LEN_SUB): Ditto.
- (COND_LEN_MUL): Ditto.
- (COND_LEN_DIV): Ditto.
- (COND_LEN_MOD): Ditto.
- (COND_LEN_RDIV): Ditto.
- (COND_LEN_MIN): Ditto.
- (COND_LEN_MAX): Ditto.
- (COND_LEN_FMIN): Ditto.
- (COND_LEN_FMAX): Ditto.
- (COND_LEN_AND): Ditto.
- (COND_LEN_IOR): Ditto.
- (COND_LEN_XOR): Ditto.
- (COND_LEN_SHL): Ditto.
- (COND_LEN_SHR): Ditto.
- (COND_LEN_FMA): Ditto.
- (COND_LEN_FMS): Ditto.
- (COND_LEN_FNMA): Ditto.
- (COND_LEN_FNMS): Ditto.
- (COND_LEN_NEG): Ditto.
- (ADD): New macro define.
- (SUB): Ditto.
- (MUL): Ditto.
- (DIV): Ditto.
- (MOD): Ditto.
- (RDIV): Ditto.
- (MIN): Ditto.
- (MAX): Ditto.
- (FMIN): Ditto.
- (FMAX): Ditto.
- (AND): Ditto.
- (IOR): Ditto.
- (XOR): Ditto.
- (SHL): Ditto.
- (SHR): Ditto.
- (FMA): Ditto.
- (FMS): Ditto.
- (FNMA): Ditto.
- (FNMS): Ditto.
- (NEG): Ditto.
-
-2023-07-31 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110843
- * config/i386/i386-features.cc (compute_convert_gain): Check
- TARGET_AVX512VL (not TARGET_AVX512F) when considering V2DImode
- and V4SImode rotates in STV.
- (general_scalar_chain::convert_rotate): Likewise.
-
-2023-07-31 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/autovec.md (abs<mode>2): Remove `.require ()`.
- * config/riscv/riscv-protos.h (get_mask_mode): Update return
- type.
- * config/riscv/riscv-v.cc (rvv_builder::rvv_builder): Remove
- `.require ()`.
- (emit_vlmax_insn): Ditto.
- (emit_vlmax_fp_insn): Ditto.
- (emit_vlmax_ternary_insn): Ditto.
- (emit_vlmax_fp_ternary_insn): Ditto.
- (emit_nonvlmax_fp_ternary_tu_insn): Ditto.
- (emit_nonvlmax_insn): Ditto.
- (emit_vlmax_slide_insn): Ditto.
- (emit_nonvlmax_slide_tu_insn): Ditto.
- (emit_vlmax_merge_insn): Ditto.
- (emit_vlmax_masked_insn): Ditto.
- (emit_nonvlmax_masked_insn): Ditto.
- (emit_vlmax_masked_store_insn): Ditto.
- (emit_nonvlmax_masked_store_insn): Ditto.
- (emit_vlmax_masked_mu_insn): Ditto.
- (emit_nonvlmax_tu_insn): Ditto.
- (emit_nonvlmax_fp_tu_insn): Ditto.
- (emit_scalar_move_insn): Ditto.
- (emit_vlmax_compress_insn): Ditto.
- (emit_vlmax_reduction_insn): Ditto.
- (emit_vlmax_fp_reduction_insn): Ditto.
- (emit_nonvlmax_fp_reduction_insn): Ditto.
- (expand_vec_series): Ditto.
- (expand_vector_init_merge_repeating_sequence): Ditto.
- (expand_vec_perm): Ditto.
- (shuffle_merge_patterns): Ditto.
- (shuffle_compress_patterns): Ditto.
- (shuffle_decompress_patterns): Ditto.
- (expand_reduction): Ditto.
- (get_mask_mode): Update return type.
- * config/riscv/riscv.cc (riscv_get_mask_mode): Check vector type
- is valid, and use new get_mask_mode interface.
-
-2023-07-31 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_frm_def):
- Move rm suffix before mask.
-
-2023-07-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-vls.md (@vec_duplicate<mode>): New pattern.
- * config/riscv/riscv-v.cc (autovectorize_vector_modes): Add VLS autovec
- support.
-
-2023-07-29 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110790
- * config/i386/i386.md (extv<mode>): Use QImode for offsets.
- (extzv<mode>): Likewise.
- (insv<mode>): Likewise.
- (*testqi_ext_3): Likewise.
- (*btr<mode>_2): Likewise.
- (define_split): Likewise.
- (*btsq_imm): Likewise.
- (*btrq_imm): Likewise.
- (*btcq_imm): Likewise.
- (define_peephole2 x3): Likewise.
- (*bt<mode>): Likewise
- (*bt<mode>_mask): New define_insn_and_split.
- (*jcc_bt<mode>): Use QImode for offsets.
- (*jcc_bt<mode>_1): Delete obsolete pattern.
- (*jcc_bt<mode>_mask): Use QImode offsets.
- (*jcc_bt<mode>_mask_1): Likewise.
- (define_split): Likewise.
- (*bt<mode>_setcqi): Likewise.
- (*bt<mode>_setncqi): Likewise.
- (*bt<mode>_setnc<mode>): Likewise.
- (*bt<mode>_setncqi_2): Likewise.
- (*bt<mode>_setc<mode>_mask): New define_insn_and_split.
- (bmi2_bzhi_<mode>3): Use QImode offsets.
- (*bmi2_bzhi_<mode>3): Likewise.
- (*bmi2_bzhi_<mode>3_1): Likewise.
- (*bmi2_bzhi_<mode>3_1_ccz): Likewise.
- (@tbm_bextri_<mode>): Likewise.
-
-2023-07-29 Jan Hubicka <jh@suse.cz>
-
- * profile-count.cc (profile_probability::sqrt): New member function.
- (profile_probability::pow): Likewise.
- * profile-count.h: (profile_probability::sqrt): Declare
- (profile_probability::pow): Likewise.
- * tree-vect-loop-manip.cc (vect_loop_versioning): Fix profile update.
-
-2023-07-28 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-cache.cc (ssa_cache::merge_range): New.
- (ssa_lazy_cache::merge_range): New.
- * gimple-range-cache.h (class ssa_cache): Adjust protoypes.
- (class ssa_lazy_cache): Ditto.
- * gimple-range.cc (assume_query::calculate_op): Use merge_range.
-
-2023-07-28 Andrew MacLeod <amacleod@redhat.com>
-
- * tree-ssa-propagate.cc (substitute_and_fold_engine::value_on_edge):
- Move from value-query.cc.
- (substitute_and_fold_engine::value_of_stmt): Ditto.
- (substitute_and_fold_engine::range_of_expr): New.
- * tree-ssa-propagate.h (substitute_and_fold_engine): Inherit from
- range_query. New prototypes.
- * value-query.cc (value_query::value_on_edge): Relocate.
- (value_query::value_of_stmt): Ditto.
- * value-query.h (class value_query): Remove.
- (class range_query): Remove base class. Adjust prototypes.
-
-2023-07-28 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/110205
- * gimple-range-cache.h (ranger_cache::m_estimate): Delete.
- * range-op-mixed.h (operator_bitwise_xor::op1_op2_relation_effect):
- Add final override.
- * range-op.cc (operator_lshift): Add missing final overrides.
- (operator_rshift): Ditto.
-
-2023-07-28 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf.cc (bpf_option_override): Disable tail-call
- optimizations in BPF target.
-
-2023-07-28 Honza <jh@ryzen4.suse.cz>
-
- * cfgloopmanip.cc (loop_count_in): Break out from ...
- (loop_exit_for_scaling): Break out from ...
- (update_loop_exit_probability_scale_dom_bbs): Break out from ...;
- add more sanity check and debug info.
- (scale_loop_profile): ... here.
- (create_empty_loop_on_edge): Fix whitespac.
- * cfgloopmanip.h (update_loop_exit_probability_scale_dom_bbs): Declare.
- * loop-unroll.cc (unroll_loop_constant_iterations): Use
- update_loop_exit_probability_scale_dom_bbs.
- * tree-ssa-loop-manip.cc (update_exit_probability_after_unrolling): Remove.
- (tree_transform_and_unroll_loop): Use
- update_loop_exit_probability_scale_dom_bbs.
- * tree-ssa-loop-split.cc (split_loop): Use
- update_loop_exit_probability_scale_dom_bbs.
-
-2023-07-28 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/77689
- * tree-ssa-loop-split.cc: Include value-query.h.
- (split_at_bb_p): Analyze cases where EQ/NE can be turned
- into LT/LE/GT/GE; return updated guard code.
- (split_loop): Use guard code.
-
-2023-07-28 Roger Sayle <roger@nextmovesoftware.com>
- Richard Biener <rguenther@suse.de>
-
- PR middle-end/28071
- PR rtl-optimization/110587
- * expr.cc (emit_group_load_1): Simplify logic for calling
- force_reg on ORIG_SRC, to avoid making a copy if the source
- is already in a pseudo register.
-
-2023-07-28 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/106923
- * tree-ssa-loop-split.cc (connect_loops): Change probability
- of the test preconditioning second loop to very_likely.
- (fix_loop_bb_probability): Handle correctly case where
- on of the arms of the conditional is empty.
- (split_loop): Fold the test guarding first condition to
- see if it is constant true; Set correct entry block
- probabilities of the split loops; determine correct loop
- eixt probabilities.
-
-2023-07-28 xuli <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: remove rounding mode of
- vsadd[u] and vssub[u].
- * config/riscv/vector.md: Ditto.
-
-2023-07-28 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-split.cc (split_loop): Also support NE driven
- loops when IV test is not overflowing.
-
-2023-07-28 liuhongt <hongtao.liu@intel.com>
-
- PR target/110788
- * config/i386/sse.md (avx512cd_maskb_vec_dup<mode>): Add
- UNSPEC_MASKOP.
- (avx512cd_maskw_vec_dup<mode>): Ditto.
-
-2023-07-27 David Faust <david.faust@oracle.com>
-
- PR target/110782
- PR target/110784
- * config/bpf/bpf.opt (msmov): New option.
- * config/bpf/bpf.cc (bpf_option_override): Handle it here.
- * config/bpf/bpf.md (*extendsidi2): New.
- (extendhidi2): New.
- (extendqidi2): New.
- (extendsisi2): New.
- (extendhisi2): New.
- (extendqisi2): New.
- * doc/invoke.texi (Option Summary): Add -msmov eBPF option.
- (eBPF Options): Add -m[no-]smov. Document that -mcpu=v4
- also enables -msmov.
-
-2023-07-27 David Faust <david.faust@oracle.com>
-
- * doc/invoke.texi (Option Summary): Remove -mkernel eBPF option.
- Add -mbswap and -msdiv eBPF options.
- (eBPF Options): Remove -mkernel. Add -mno-{jmpext, jmp32,
- alu32, v3-atomics, bswap, sdiv}. Document that -mcpu=v4 also
- enables -msdiv.
-
-2023-07-27 David Faust <david.faust@oracle.com>
-
- * config/bpf/bpf.md (add<AM:mode>3): Use %w2 instead of %w1
- in pseudo-C dialect output template.
- (sub<AM:mode>3): Likewise.
-
-2023-07-27 Jan Hubicka <jh@suse.cz>
-
- * tree-vect-loop.cc (optimize_mask_stores): Make store
- likely.
-
-2023-07-27 Jan Hubicka <jh@suse.cz>
-
- * cfgloop.h (single_dom_exit): Declare.
- * cfgloopmanip.h (update_exit_probability_after_unrolling): Declare.
- * cfgrtl.cc (struct cfg_hooks): Fix comment.
- * loop-unroll.cc (unroll_loop_constant_iterations): Update exit edge.
- * tree-ssa-loop-ivopts.h (single_dom_exit): Do not declare it here.
- * tree-ssa-loop-manip.cc (update_exit_probability_after_unrolling):
- Break out from ...
- (tree_transform_and_unroll_loop): ... here;
-
-2023-07-27 Jan Hubicka <jh@suse.cz>
-
- * cfgloopmanip.cc (scale_dominated_blocks_in_loop): Move here from
- tree-ssa-loop-manip.cc and avoid recursion.
- (scale_loop_profile): Use scale_dominated_blocks_in_loop.
- (duplicate_loop_body_to_header_edge): Add DLTHE_FLAG_FLAT_PROFILE
- flag.
- * cfgloopmanip.h (DLTHE_FLAG_FLAT_PROFILE): Define.
- (scale_dominated_blocks_in_loop): Declare.
- * predict.cc (dump_prediction): Do not ICE on uninitialized probability.
- (change_edge_frequency): Remove.
- * predict.h (change_edge_frequency): Remove.
- * tree-ssa-loop-manip.cc (scale_dominated_blocks_in_loop): Move to
- cfgloopmanip.cc.
- (niter_for_unrolled_loop): Remove.
- (tree_transform_and_unroll_loop): Fix profile update.
-
-2023-07-27 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-im.cc (execute_sm_if_changed): Turn cap probability
- to guessed; fix count of new_bb.
-
-2023-07-27 Jan Hubicka <jh@suse.cz>
-
- * profile-count.h (profile_count::apply_probability): Fix
- handling of uninitialized probabilities, optimize scaling
- by probability 1.
-
-2023-07-27 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/91838
- * gimple-match-head.cc: Include attribs.h and asan.h.
- * generic-match-head.cc: Likewise.
- * match.pd (([rl]shift @0 out-of-bounds) -> zero): New pattern.
-
-2023-07-27 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add VLS modes.
- (ADJUST_ALIGNMENT): Ditto.
- (ADJUST_PRECISION): Ditto.
- (VLS_MODES): Ditto.
- (VECTOR_MODE_WITH_PREFIX): Ditto.
- * config/riscv/riscv-opts.h (TARGET_VECTOR_VLS): New macro.
- * config/riscv/riscv-protos.h (riscv_v_ext_vls_mode_p): New function.
- * config/riscv/riscv-v.cc (INCLUDE_ALGORITHM): Add include.
- (legitimize_move): Enable basic VLS modes support.
- (get_vlmul): Ditto.
- (get_ratio): Ditto.
- (get_vector_mode): Ditto.
- * config/riscv/riscv-vector-switch.def (VLS_ENTRY): Add vls modes.
- * config/riscv/riscv.cc (riscv_v_ext_vls_mode_p): New function.
- (VLS_ENTRY): New macro.
- (riscv_v_ext_mode_p): Add vls modes.
- (riscv_get_v_regno_alignment): New function.
- (riscv_print_operand): Add vls modes.
- (riscv_hard_regno_nregs): Ditto.
- (riscv_hard_regno_mode_ok): Ditto.
- (riscv_regmode_natural_size): Ditto.
- (riscv_vectorize_preferred_vector_alignment): Ditto.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md: Ditto.
- * config/riscv/autovec-vls.md: New file.
-
-2023-07-27 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv_vector.h (enum RVV_CSR): Removed.
- (vread_csr): Ditto.
- (vwrite_csr): Ditto.
-
-2023-07-27 demin.han <demin.han@starfivetech.com>
-
- * config/riscv/autovec.md: Delete which_alternative use in split
-
-2023-07-27 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-sink.cc (sink_code_in_bb): Remove recursion, instead
- use a worklist ...
- (pass_sink_code::execute): ... in the caller.
-
-2023-07-27 Kewen Lin <linkw@linux.ibm.com>
- Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110776
- * tree-vect-stmts.cc (vectorizable_load): Always cost VMAT_ELEMENTWISE
- as scalar load.
-
-2023-07-26 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * config/riscv/riscv.md: Include zicond.md
- * config/riscv/zicond.md: New file.
-
-2023-07-26 Xiao Zeng <zengxiao@eswincomputing.com>
-
- * common/config/riscv/riscv-common.cc: New extension.
- * config/riscv/riscv-opts.h (MASK_ZICOND): New mask.
- (TARGET_ZICOND): New target.
-
-2023-07-26 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/rs6000-c.cc (find_instance): Add new parameter that
- specifies the number of built-in arguments to check.
- (altivec_resolve_overloaded_builtin): Update calls to find_instance
- to pass the number of built-in arguments to be checked.
-
-2023-07-26 David Faust <david.faust@oracle.com>
-
- * config/bpf/bpf.opt (mv3-atomics): New option.
- * config/bpf/bpf.cc (bpf_option_override): Handle it here.
- * config/bpf/bpf.h (enum_reg_class): Add R0 class.
- (REG_CLASS_NAMES): Likewise.
- (REG_CLASS_CONTENTS): Likewise.
- (REGNO_REG_CLASS): Handle R0.
- * config/bpf/bpf.md (UNSPEC_XADD): Rename to UNSPEC_AADD.
- (UNSPEC_AAND): New unspec.
- (UNSPEC_AOR): Likewise.
- (UNSPEC_AXOR): Likewise.
- (UNSPEC_AFADD): Likewise.
- (UNSPEC_AFAND): Likewise.
- (UNSPEC_AFOR): Likewise.
- (UNSPEC_AFXOR): Likewise.
- (UNSPEC_AXCHG): Likewise.
- (UNSPEC_ACMPX): Likewise.
- (atomic_add<mode>): Use UNSPEC_AADD and atomic type attribute.
- Move to...
- * config/bpf/atomic.md: ...Here. New file.
- * config/bpf/constraints.md (t): New constraint for R0.
- * doc/invoke.texi (eBPF Options): Document -mv3-atomics.
-
-2023-07-26 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * tree-vect-stmts.cc (get_group_load_store_type): Reformat
- comment.
-
-2023-07-26 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/rs6000-builtins.def: Rename
- __builtin_altivec_vreplace_un_uv2di as __builtin_altivec_vreplace_un_udi
- __builtin_altivec_vreplace_un_uv4si as __builtin_altivec_vreplace_un_usi
- __builtin_altivec_vreplace_un_v2df as __builtin_altivec_vreplace_un_df
- __builtin_altivec_vreplace_un_v2di as __builtin_altivec_vreplace_un_di
- __builtin_altivec_vreplace_un_v4sf as __builtin_altivec_vreplace_un_sf
- __builtin_altivec_vreplace_un_v4si as __builtin_altivec_vreplace_un_si.
- Rename VREPLACE_UN_UV2DI as VREPLACE_UN_UDI, VREPLACE_UN_UV4SI as
- VREPLACE_UN_USI, VREPLACE_UN_V2DF as VREPLACE_UN_DF,
- VREPLACE_UN_V2DI as VREPLACE_UN_DI, VREPLACE_UN_V4SF as
- VREPLACE_UN_SF, VREPLACE_UN_V4SI as VREPLACE_UN_SI.
- Rename vreplace_un_v2di as vreplace_un_di, vreplace_un_v4si as
- vreplace_un_si, vreplace_un_v2df as vreplace_un_df,
- vreplace_un_v2di as vreplace_un_di, vreplace_un_v4sf as
- vreplace_un_sf, vreplace_un_v4si as vreplace_un_si.
- * config/rs6000/rs6000-c.cc (find_instance): Add case
- RS6000_OVLD_VEC_REPLACE_UN.
- * config/rs6000/rs6000-overload.def (__builtin_vec_replace_un):
- Fix first argument type. Rename VREPLACE_UN_UV4SI as
- VREPLACE_UN_USI, VREPLACE_UN_V4SI as VREPLACE_UN_SI,
- VREPLACE_UN_UV2DI as VREPLACE_UN_UDI, VREPLACE_UN_V2DI as
- VREPLACE_UN_DI, VREPLACE_UN_V4SF as VREPLACE_UN_SF,
- VREPLACE_UN_V2DF as VREPLACE_UN_DF.
- * config/rs6000/vsx.md (REPLACE_ELT): Rename the mode_iterator
- REPLACE_ELT_V for vector modes.
- (REPLACE_ELT): New scalar mode iterator.
- (REPLACE_ELT_char): Add scalar attributes.
- (vreplace_un_<mode>): Change iterator and mode attribute.
-
-2023-07-26 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/104940
- * Makefile.in (ANALYZER_OBJS): Add analyzer/symbol.o.
-
-2023-07-26 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/106081
- * tree-vect-slp.cc (vect_optimize_slp_pass::start_choosing_layouts):
- Assign layout -1 to splats.
-
-2023-07-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-mixed.h (class operator_cast): Add update_bitmask.
- * range-op.cc (operator_cast::update_bitmask): New.
- (operator_cast::fold_range): Call update_bitmask.
-
-2023-07-26 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): Change
- scalar type to float16, eliminate warning.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Ditto.
- (vfloat16m2x4_t): Ditto.
- (vfloat16m4x2_t): Ditto.
- * config/riscv/vector-iterators.md: add RVVM4x2DF in iterator V4T.
- * config/riscv/vector.md: add tuple mode in attr sew.
-
-2023-07-26 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/110762
- * config/i386/i386.md (plusminusmult): New code iterator.
- * config/i386/mmx.md (mmxdoublevecmode): New mode attribute.
- (movq_<mode>_to_sse): New expander.
- (<plusminusmult:insn>v2sf3): Macroize expander from addv2sf3,
- subv2sf3 and mulv2sf3 using plusminusmult code iterator. Rewrite
- as a wrapper around V4SFmode operation.
- (mmx_addv2sf3): Change operand 1 and operand 2 predicates to
- nonimmediate_operand.
- (*mmx_addv2sf3): Remove SSE alternatives. Change operand 1 and
- operand 2 predicates to nonimmediate_operand.
- (mmx_subv2sf3): Change operand 2 predicate to nonimmediate_operand.
- (mmx_subrv2sf3): Change operand 1 predicate to nonimmediate_operand.
- (*mmx_subv2sf3): Remove SSE alternatives. Change operand 1 and
- operand 2 predicates to nonimmediate_operand.
- (mmx_mulv2sf3): Change operand 1 and operand 2 predicates to
- nonimmediate_operand.
- (*mmx_mulv2sf3): Remove SSE alternatives. Change operand 1 and
- operand 2 predicates to nonimmediate_operand.
- (divv2sf3): Rewrite as a wrapper around V4SFmode operation.
- (<smaxmin:code>v2sf3): Ditto.
- (mmx_<smaxmin:code>v2sf3): Change operand 1 and operand 2
- predicates to nonimmediate_operand.
- (*mmx_<smaxmin:code>v2sf3): Remove SSE alternatives. Change
- operand 1 and operand 2 predicates to nonimmediate_operand.
- (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
- (sqrtv2sf2): Rewrite as a wrapper around V4SFmode operation.
- (*mmx_haddv2sf3_low): Ditto.
- (*mmx_hsubv2sf3_low): Ditto.
- (vec_addsubv2sf3): Ditto.
- (*mmx_maskcmpv2sf3_comm): Remove.
- (*mmx_maskcmpv2sf3): Remove.
- (vec_cmpv2sfv2si): Rewrite as a wrapper around V4SFmode operation.
- (vcond<V2FI:mode>v2sf): Ditto.
- (fmav2sf4): Ditto.
- (fmsv2sf4): Ditto.
- (fnmav2sf4): Ditto.
- (fnmsv2sf4): Ditto.
- (fix_truncv2sfv2si2): Ditto.
- (fixuns_truncv2sfv2si2): Ditto.
- (mmx_fix_truncv2sfv2si2): Remove SSE alternatives.
- Change operand 1 predicate to nonimmediate_operand.
- (floatv2siv2sf2): Rewrite as a wrapper around V4SFmode operation.
- (floatunsv2siv2sf2): Ditto.
- (mmx_floatv2siv2sf2): Remove SSE alternatives.
- Change operand 1 predicate to nonimmediate_operand.
- (nearbyintv2sf2): Rewrite as a wrapper around V4SFmode operation.
- (rintv2sf2): Ditto.
- (lrintv2sfv2si2): Ditto.
- (ceilv2sf2): Ditto.
- (lceilv2sfv2si2): Ditto.
- (floorv2sf2): Ditto.
- (lfloorv2sfv2si2): Ditto.
- (btruncv2sf2): Ditto.
- (roundv2sf2): Ditto.
- (lroundv2sfv2si2): Ditto.
- (*mmx_roundv2sf2): Remove.
-
-2023-07-26 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf.md: Fix neg{SI,DI}2 insn.
-
-2023-07-26 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110799
- * tree-ssa-pre.cc (compute_avail): More thoroughly match
- up TBAA behavior of redundant loads.
-
-2023-07-26 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/110755
- * range-op-float.cc (frange_arithmetic): Change +0 result to -0
- for PLUS_EXPR or MINUS_EXPR if -frounding-math, inf is negative and
- it is exact op1 + (-op1) or op1 - op1.
-
-2023-07-26 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/110741
- * config/rs6000/vsx.md (define_insn xxeval): Correct vsx
- operands output with "x".
-
-2023-07-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (class operator_absu): Add update_bitmask.
- (operator_absu::update_bitmask): New.
-
-2023-07-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-mixed.h (class operator_abs): Add update_bitmask.
- * range-op.cc (operator_abs::update_bitmask): New.
-
-2023-07-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op-mixed.h (class operator_bitwise_not): Add update_bitmask.
- * range-op.cc (operator_bitwise_not::update_bitmask): New.
-
-2023-07-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (update_known_bitmask): Handle unary operators.
-
-2023-07-26 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-ssa-ccp.cc (bit_value_unop): Initialize val when appropriate.
-
-2023-07-26 Jin Ma <jinma@linux.alibaba.com>
-
- * config/riscv/riscv.md: Likewise.
-
-2023-07-26 Jan Hubicka <jh@suse.cz>
-
- * profile-count.cc (profile_count::to_sreal_scale): Value is not know
- if we divide by zero.
-
-2023-07-25 David Faust <david.faust@oracle.com>
-
- * config/bpf/bpf.cc (bpf_print_operand_address): Don't print
- enclosing parentheses for pseudo-C dialect.
- * config/bpf/bpf.md (zero_exdendhidi2): Add parentheses around
- operands of pseudo-C dialect output templates where needed.
- (zero_extendqidi2): Likewise.
- (zero_extendsidi2): Likewise.
- (*mov<MM:mode>): Likewise.
-
-2023-07-25 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-ssa-ccp.cc (value_mask_to_min_max): Make static.
- (bit_value_mult_const): Same.
- (get_individual_bits): Same.
-
-2023-07-25 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/103605
- * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Gimple
- fold RS6000_BIF_XSMINDP and RS6000_BIF_XSMAXDP when fast-math is set.
- * config/rs6000/rs6000.md (FMINMAX): New int iterator.
- (minmax_op): New int attribute.
- (UNSPEC_FMAX, UNSPEC_FMIN): New unspecs.
- (f<minmax_op><mode>3): New pattern by UNSPEC_FMAX and UNSPEC_FMIN.
- * config/rs6000/rs6000-builtins.def (__builtin_vsx_xsmaxdp): Set
- pattern to fmaxdf3.
- (__builtin_vsx_xsmindp): Set pattern to fmindf3.
-
-2023-07-24 David Faust <david.faust@oracle.com>
-
- * config/bpf/bpf.md (nop): Add pseudo-c asm dialect template.
-
-2023-07-24 Drew Ross <drross@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/109986
- * generic-match-head.cc (bitwise_equal_p): New macro.
- * gimple-match-head.cc (bitwise_equal_p): New macro.
- (gimple_nop_convert): Declare.
- (gimple_bitwise_equal_p): Helper for bitwise_equal_p.
- * match.pd ((~X | Y) ^ X -> ~(X & Y)): New simplification.
-
-2023-07-24 Jeff Law <jlaw@ventanamicro.com>
-
- * common/config/riscv/riscv-common.cc (riscv_subset_list::add): Use
- single quote rather than backquote in diagnostic.
-
-2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- PR target/110783
- * config/bpf/bpf.opt: New command-line option -msdiv.
- * config/bpf/bpf.md: Conditionalize sdiv/smod on bpf_has_sdiv.
- * config/bpf/bpf.cc (bpf_option_override): Initialize
- bpf_has_sdiv.
- * doc/invoke.texi (eBPF Options): Document -msdiv.
-
-2023-07-24 Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_option_override): Spell out
- greater than and use cannot in diagnostic string.
-
-2023-07-24 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (_slp_tree::push_vec_def): Add.
- (_slp_tree::vec_stmts): Remove.
- (SLP_TREE_VEC_STMTS): Remove.
- * tree-vect-slp.cc (_slp_tree::push_vec_def): Define.
- (_slp_tree::_slp_tree): Adjust.
- (_slp_tree::~_slp_tree): Likewise.
- (vect_get_slp_vect_def): Simplify.
- (vect_get_slp_defs): Likewise.
- (vect_transform_slp_perm_load_1): Adjust.
- (vect_add_slp_permutation): Likewise.
- (vect_schedule_slp_node): Likewise.
- (vectorize_slp_instance_root_stmt): Likewise.
- (vect_schedule_scc): Likewise.
- * tree-vect-stmts.cc (vectorizable_bswap): Use push_vec_def.
- (vectorizable_call): Likewise.
- (vectorizable_call): Likewise.
- (vect_create_vectorized_demotion_stmts): Likewise.
- (vectorizable_conversion): Likewise.
- (vectorizable_assignment): Likewise.
- (vectorizable_shift): Likewise.
- (vectorizable_operation): Likewise.
- (vectorizable_load): Likewise.
- (vectorizable_condition): Likewise.
- (vectorizable_comparison): Likewise.
- * tree-vect-loop.cc (vect_create_epilog_for_reduction): Adjust.
- (vectorize_fold_left_reduction): Use push_vec_def.
- (vect_transform_reduction): Likewise.
- (vect_transform_cycle_phi): Likewise.
- (vectorizable_lc_phi): Likewise.
- (vectorizable_phi): Likewise.
- (vectorizable_recurr): Likewise.
- (vectorizable_induction): Likewise.
- (vectorizable_live_operation): Likewise.
-
-2023-07-24 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop.cc: Remove unused tree-vectorizer.h include.
-
-2023-07-24 Richard Biener <rguenther@suse.de>
-
- * config/i386/i386-builtins.cc: Remove tree-vectorizer.h include.
- * config/i386/i386-expand.cc: Likewise.
- * config/i386/i386-features.cc: Likewise.
- * config/i386/i386-options.cc: Likewise.
-
-2023-07-24 Robin Dapp <rdapp@ventanamicro.com>
-
- * tree-vect-stmts.cc (vectorizable_conversion): Handle
- more demotion/promotion for modifier == NONE.
-
-2023-07-24 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110787
- PR target/110790
- Revert patch.
- * config/i386/i386.md (extv<mode>): Use QImode for offsets.
- (extzv<mode>): Likewise.
- (insv<mode>): Likewise.
- (*testqi_ext_3): Likewise.
- (*btr<mode>_2): Likewise.
- (define_split): Likewise.
- (*btsq_imm): Likewise.
- (*btrq_imm): Likewise.
- (*btcq_imm): Likewise.
- (define_peephole2 x3): Likewise.
- (*bt<mode>): Likewise
- (*bt<mode>_mask): New define_insn_and_split.
- (*jcc_bt<mode>): Use QImode for offsets.
- (*jcc_bt<mode>_1): Delete obsolete pattern.
- (*jcc_bt<mode>_mask): Use QImode offsets.
- (*jcc_bt<mode>_mask_1): Likewise.
- (define_split): Likewise.
- (*bt<mode>_setcqi): Likewise.
- (*bt<mode>_setncqi): Likewise.
- (*bt<mode>_setnc<mode>): Likewise.
- (*bt<mode>_setncqi_2): Likewise.
- (*bt<mode>_setc<mode>_mask): New define_insn_and_split.
- (bmi2_bzhi_<mode>3): Use QImode offsets.
- (*bmi2_bzhi_<mode>3): Likewise.
- (*bmi2_bzhi_<mode>3_1): Likewise.
- (*bmi2_bzhi_<mode>3_1_ccz): Likewise.
- (@tbm_bextri_<mode>): Likewise.
-
-2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- * config/bpf/bpf-opts.h (enum bpf_kernel_version): Remove enum.
- * config/bpf/bpf.opt (mkernel): Remove option.
- * config/bpf/bpf.cc (bpf_target_macros): Do not define
- BPF_KERNEL_VERSION_CODE.
-
-2023-07-24 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- PR target/110786
- * config/bpf/bpf.opt (mcpu): Add ISA_V4 and make it the default.
- (mbswap): New option.
- * config/bpf/bpf-opts.h (enum bpf_isa_version): New value ISA_V4.
- * config/bpf/bpf.cc (bpf_option_override): Set bpf_has_bswap.
- * config/bpf/bpf.md: Use bswap instructions if available for
- bswap* insn, and fix constraint.
- * doc/invoke.texi (eBPF Options): Document -mcpu=v4 and -mbswap.
-
-2023-07-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (fold_left_plus_<mode>): New pattern.
- (mask_len_fold_left_plus_<mode>): Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (enum reduction_type): Ditto.
- (expand_reduction): Add in-order reduction.
- * config/riscv/riscv-v.cc (emit_nonvlmax_fp_reduction_insn): New function.
- (expand_reduction): Add in-order reduction.
-
-2023-07-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-loop.cc (get_masked_reduction_fn): Add mask_len_fold_left_plus.
- (vectorize_fold_left_reduction): Ditto.
- (vectorizable_reduction): Ditto.
- (vect_transform_reduction): Ditto.
-
-2023-07-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110777
- * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_avail):
- Avoid propagating abnormals.
-
-2023-07-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110766
- * tree-scalar-evolution.cc
- (analyze_and_compute_bitwise_induction_effect): Check the PHI
- is defined in the loop header.
-
-2023-07-24 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/110740
- * tree-vect-loop.cc (vect_analyze_loop_costing): Do not vectorize a
- loop with a single scalar iteration.
-
-2023-07-24 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-shapes.cc
- (struct alu_frm_def): Take range check.
-
-2023-07-22 Vineet Gupta <vineetg@rivosinc.com>
-
- PR target/110748
- * config/riscv/predicates.md (const_0_operand): Add back
- const_double.
-
-2023-07-22 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_move): Disable the
- 64-bit insertions into TImode optimizations with -O0, unless
- the function has the "naked" attribute (for PR target/110533).
-
-2023-07-22 Andrew Pinski <apinski@marvell.com>
-
- PR target/110778
- * rtl.h (extended_count): Change last argument type
- to bool.
-
-2023-07-22 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (extv<mode>): Use QImode for offsets.
- (extzv<mode>): Likewise.
- (insv<mode>): Likewise.
- (*testqi_ext_3): Likewise.
- (*btr<mode>_2): Likewise.
- (define_split): Likewise.
- (*btsq_imm): Likewise.
- (*btrq_imm): Likewise.
- (*btcq_imm): Likewise.
- (define_peephole2 x3): Likewise.
- (*bt<mode>): Likewise
- (*bt<mode>_mask): New define_insn_and_split.
- (*jcc_bt<mode>): Use QImode for offsets.
- (*jcc_bt<mode>_1): Delete obsolete pattern.
- (*jcc_bt<mode>_mask): Use QImode offsets.
- (*jcc_bt<mode>_mask_1): Likewise.
- (define_split): Likewise.
- (*bt<mode>_setcqi): Likewise.
- (*bt<mode>_setncqi): Likewise.
- (*bt<mode>_setnc<mode>): Likewise.
- (*bt<mode>_setncqi_2): Likewise.
- (*bt<mode>_setc<mode>_mask): New define_insn_and_split.
- (bmi2_bzhi_<mode>3): Use QImode offsets.
- (*bmi2_bzhi_<mode>3): Likewise.
- (*bmi2_bzhi_<mode>3_1): Likewise.
- (*bmi2_bzhi_<mode>3_1_ccz): Likewise.
- (@tbm_bextri_<mode>): Likewise.
-
-2023-07-22 Jeff Law <jlaw@ventanamicro.com>
-
- * config/bfin/bfin.md (ones): Fix length computation.
-
-2023-07-22 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-eliminations.cc (update_reg_eliminate): Fix the assert.
- (lra_update_fp2sp_elimination): Use HARD_FRAME_POINTER_REGNUM
- instead of FRAME_POINTER_REGNUM to spill pseudos.
-
-2023-07-21 Roger Sayle <roger@nextmovesoftware.com>
- Richard Biener <rguenther@suse.de>
-
- PR c/110699
- * gimplify.cc (gimplify_compound_lval): If the array's type
- is error_mark_node then return GS_ERROR.
-
-2023-07-21 Cupertino Miranda <cupertino.miranda@oracle.com>
-
- PR target/110770
- * config/bpf/bpf.opt: Added option -masm=<dialect>.
- * config/bpf/bpf-opts.h (enum bpf_asm_dialect): New type.
- * config/bpf/bpf.cc (bpf_print_register): New function.
- (bpf_print_register): Support pseudo-c syntax for registers.
- (bpf_print_operand_address): Likewise.
- * config/bpf/bpf.h (ASM_SPEC): handle -msasm.
- (ASSEMBLER_DIALECT): Define.
- * config/bpf/bpf.md: Added pseudo-c templates.
- * doc/invoke.texi (-masm=): New eBPF option item.
-
-2023-07-21 Cupertino Miranda <cupertino.miranda@oracle.com>
-
- * config/bpf/bpf.md: fixed template for neg instruction.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- PR target/110727
- * tree-vect-loop.cc (scale_profile_for_vect_loop): Avoid scaling flat
- profiles by vectorization factor.
- (vect_transform_loop): Check for flat profiles.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * cfgloop.h (maybe_flat_loop_profile): Declare
- * cfgloopanal.cc (maybe_flat_loop_profile): New function.
- * tree-cfg.cc (print_loop_info): Print info about flat profiles.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * cfgloop.cc (get_estimated_loop_iterations): Use sreal::to_nearest_int
- * cfgloopanal.cc (expected_loop_iterations_unbounded): Likewise.
- * predict.cc (estimate_bb_frequencies): Likewise.
- * profile.cc (branch_prob): Likewise.
- * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Likewise
-
-2023-07-21 Iain Sandoe <iain@sandoe.co.uk>
-
- * config.in: Regenerate.
- * config/darwin.h (DARWIN_LD_DEMANGLE): New.
- (LINK_COMMAND_SPEC_A): Add demangle handling.
- * configure: Regenerate.
- * configure.ac: Detect linker support for '-demangle'.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * sreal.cc (sreal::to_nearest_int): New.
- (sreal_verify_basics): Verify also to_nearest_int.
- (verify_aritmetics): Likewise.
- (sreal_verify_conversions): New.
- (sreal_cc_tests): Call sreal_verify_conversions.
- * sreal.h: (sreal::to_nearest_int): Declare
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.cc (enum ch_decision): New enum.
- (should_duplicate_loop_header_p): Return info on profitability.
- (do_while_loop_p): Watch for constant conditionals.
- (update_profile_after_ch): Do not sanity check that all
- static exits are taken.
- (ch_base::copy_headers): Run on all loops.
- (pass_ch::process_loop_p): Improve heuristics by handling also
- do_while loop and duplicating shortest sequence containing all
- winning blocks.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-niter.cc (finite_loop_p): Reorder to do cheap
- tests first; update finite_p flag.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * cfgloop.cc (flow_loop_dump): Use print_loop_info.
- * cfgloop.h (print_loop_info): Declare.
- * tree-cfg.cc (print_loop_info): Break out from ...; add
- printing of missing fields and profile
- (print_loop): ... here.
-
-2023-07-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_gather_scatter): Remove redundant variables.
-
-2023-07-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Change condition order.
- (vectorizable_operation): Ditto.
-
-2023-07-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Align order of mask and len.
- * config/riscv/riscv-v.cc (expand_load_store): Ditto.
- (expand_gather_scatter): Ditto.
- * doc/md.texi: Ditto.
- * internal-fn.cc (add_len_and_mask_args): Ditto.
- (add_mask_and_len_args): Ditto.
- (expand_partial_load_optab_fn): Ditto.
- (expand_partial_store_optab_fn): Ditto.
- (expand_scatter_store_optab_fn): Ditto.
- (expand_gather_load_optab_fn): Ditto.
- (internal_fn_len_index): Ditto.
- (internal_fn_mask_index): Ditto.
- (internal_len_load_store_bias): Ditto.
- * tree-vect-stmts.cc (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
-
-2023-07-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (len_maskload<mode><vm>): Change LEN_MASK into MASK_LEN.
- (mask_len_load<mode><vm>): Ditto.
- (len_maskstore<mode><vm>): Ditto.
- (mask_len_store<mode><vm>): Ditto.
- (len_mask_gather_load<RATIO64:mode><RATIO64I:mode>): Ditto.
- (mask_len_gather_load<RATIO64:mode><RATIO64I:mode>): Ditto.
- (len_mask_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
- (mask_len_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
- (len_mask_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
- (mask_len_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
- (len_mask_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
- (mask_len_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
- (len_mask_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
- (mask_len_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
- (len_mask_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
- (mask_len_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
- (len_mask_gather_load<RATIO1:mode><RATIO1:mode>): Ditto.
- (mask_len_gather_load<RATIO1:mode><RATIO1:mode>): Ditto.
- (len_mask_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
- (mask_len_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
- (len_mask_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
- (mask_len_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
- (len_mask_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
- (mask_len_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
- (len_mask_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
- (mask_len_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
- (len_mask_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
- (mask_len_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
- (len_mask_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
- (mask_len_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
- (len_mask_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
- (mask_len_scatter_store<RATIO1:mode><RATIO1:mode>): Ditto.
- * doc/md.texi: Ditto.
- * genopinit.cc (main): Ditto.
- (CMP_NAME): Ditto. Ditto.
- * gimple-fold.cc (arith_overflowed_p): Ditto.
- (gimple_fold_partial_load_store_mem_ref): Ditto.
- (gimple_fold_call): Ditto.
- * internal-fn.cc (len_maskload_direct): Ditto.
- (mask_len_load_direct): Ditto.
- (len_maskstore_direct): Ditto.
- (mask_len_store_direct): Ditto.
- (expand_call_mem_ref): Ditto.
- (expand_len_maskload_optab_fn): Ditto.
- (expand_mask_len_load_optab_fn): Ditto.
- (expand_len_maskstore_optab_fn): Ditto.
- (expand_mask_len_store_optab_fn): Ditto.
- (direct_len_maskload_optab_supported_p): Ditto.
- (direct_mask_len_load_optab_supported_p): Ditto.
- (direct_len_maskstore_optab_supported_p): Ditto.
- (direct_mask_len_store_optab_supported_p): Ditto.
- (internal_load_fn_p): Ditto.
- (internal_store_fn_p): Ditto.
- (internal_gather_scatter_fn_p): Ditto.
- (internal_fn_len_index): Ditto.
- (internal_fn_mask_index): Ditto.
- (internal_fn_stored_value_index): Ditto.
- (internal_len_load_store_bias): Ditto.
- * internal-fn.def (LEN_MASK_GATHER_LOAD): Ditto.
- (MASK_LEN_GATHER_LOAD): Ditto.
- (LEN_MASK_LOAD): Ditto.
- (MASK_LEN_LOAD): Ditto.
- (LEN_MASK_SCATTER_STORE): Ditto.
- (MASK_LEN_SCATTER_STORE): Ditto.
- (LEN_MASK_STORE): Ditto.
- (MASK_LEN_STORE): Ditto.
- * optabs-query.cc (supports_vec_gather_load_p): Ditto.
- (supports_vec_scatter_store_p): Ditto.
- * optabs-tree.cc (target_supports_mask_load_store_p): Ditto.
- (target_supports_len_load_store_p): Ditto.
- * optabs.def (OPTAB_CD): Ditto.
- * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Ditto.
- (call_may_clobber_ref_p_1): Ditto.
- * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Ditto.
- (dse_optimize_stmt): Ditto.
- * tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn): Ditto.
- (get_alias_ptr_type_for_ptr_address): Ditto.
- * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Ditto.
- * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Ditto.
- * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
- (vect_get_strided_load_store_ops): Ditto.
- (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
-
-2023-07-21 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386.opt: Fix a typo.
-
-2023-07-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/88540
- * tree-ssa-phiopt.cc (minmax_replacement): Do not give up
- with NaNs but handle the simple case by if-converting to a
- COND_EXPR.
-
-2023-07-21 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (minmax<minmax<a,b>,a>->minmax<a,b>): New
- transformation.
-
-2023-07-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110742
- * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
- Do not materialize an edge permutation in an external node with
- vector defs.
- (vect_slp_analyze_node_operations_1): Guard purely internal
- nodes better.
-
-2023-07-21 Jan Hubicka <jh@suse.cz>
-
- * cfgloop.cc: Include sreal.h.
- (flow_loop_dump): Dump sreal iteration exsitmate.
- (get_estimated_loop_iterations): Update.
- * cfgloop.h (expected_loop_iterations_by_profile): Declare.
- * cfgloopanal.cc (expected_loop_iterations_by_profile): New function.
- (expected_loop_iterations_unbounded): Use new API.
- * cfgloopmanip.cc (scale_loop_profile): Use
- expected_loop_iterations_by_profile
- * predict.cc (pass_profile::execute): Likewise.
- * profile.cc (branch_prob): Likewise.
- * tree-ssa-loop-niter.cc: Include sreal.h.
- (estimate_numbers_of_iterations): Likewise
-
-2023-07-21 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/110744
- * tree-ssa-sccvn.cc (vn_reference_lookup_3): Correct the index of bias
- operand for ifn IFN_LEN_STORE.
-
-2023-07-21 liuhongt <hongtao.liu@intel.com>
-
- PR target/89701
- * common.opt: (fcf-protection=): Add EnumSet attribute to
- support combination of params.
-
-2023-07-21 David Malcolm <dmalcolm@redhat.com>
-
- PR middle-end/110612
- * text-art/table.cc (table_geometry::table_geometry): Drop m_table
- field.
- (table_geometry::table_x_to_canvas_x): Add cast to comparison.
- (table_geometry::table_y_to_canvas_y): Likewise.
- * text-art/table.h (table_geometry::m_table): Drop unused field.
- * text-art/widget.h (wrapper_widget::update_child_alloc_rects):
- Add "override".
-
-2023-07-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/110717
- * config/i386/i386-features.cc
- (general_scalar_chain::compute_convert_gain): Calculate gain
- for extend higpart case.
- (general_scalar_chain::convert_op): Handle
- ASHIFTRT/ASHIFT combined RTX.
- (general_scalar_to_vector_candidate_p): Enable ASHIFTRT for
- SImode for SSE2 targets. Handle ASHIFTRT/ASHIFT combined RTX.
- * config/i386/i386.md (*extend<dwi>2_doubleword_highpart):
- New define_insn_and_split pattern.
- (*extendv2di2_highpart_stv): Ditto.
-
-2023-07-20 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc (simplify_operand_subreg): Check frame pointer
- simplification.
-
-2023-07-20 Andrew Pinski <apinski@marvell.com>
-
- * combine.cc (dump_combine_stats): Remove.
- (dump_combine_total_stats): Remove.
- (total_attempts, total_merges, total_extras,
- total_successes): Remove.
- (combine_instructions): Don't increment total stats
- instead use statistics_counter_event.
- * dumpfile.cc (print_combine_total_stats): Remove.
- * dumpfile.h (print_combine_total_stats): Remove.
- (dump_combine_total_stats): Remove.
- * passes.cc (finish_optimization_passes):
- Don't call print_combine_total_stats.
- * rtl.h (dump_combine_total_stats): Remove.
- (dump_combine_stats): Remove.
-
-2023-07-20 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Use BIT instead of TRUTH
- logical ops.
-
-2023-07-20 Martin Jambor <mjambor@suse.cz>
-
- * doc/invoke.texi (analyzer-text-art-string-ellipsis-threshold): New.
- (analyzer-text-art-ideal-canvas-width): Likewise.
- (analyzer-text-art-string-ellipsis-head-len): Likewise.
- (analyzer-text-art-string-ellipsis-tail-len): Likewise.
-
-2023-07-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-stmts.cc (check_load_store_for_partial_vectors):
- Refine code structure.
-
-2023-07-20 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.cc (edge_range_query): Rename to ...
- (get_range_query): ... this one; do
- (static_loop_exit): Add query parametr, turn ranger to reference.
- (loop_static_stmt_p): New function.
- (loop_static_op_p): New function.
- (loop_iv_derived_p): Remove.
- (loop_combined_static_and_iv_p): New function.
- (should_duplicate_loop_header_p): Discover combined onditionals;
- do not track iv derived; improve dumps.
- (pass_ch::execute): Fix whitespace.
-
-2023-07-20 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110204
- * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_avail):
- Look through copies generated by PRE.
-
-2023-07-20 Matthew Malcomson <matthew.malcomson@arm.com>
-
- * tree-vect-stmts.cc (get_group_load_store_type): Account for
- `gap` when checking if need to peel twice.
-
-2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- PR middle-end/77928
- * doc/extend.texi: Document iseqsig builtin.
- * builtins.cc (fold_builtin_iseqsig): New function.
- (fold_builtin_2): Handle BUILT_IN_ISEQSIG.
- (is_inexpensive_builtin): Handle BUILT_IN_ISEQSIG.
- * builtins.def (BUILT_IN_ISEQSIG): New built-in.
-
-2023-07-20 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Fix incorrect match_operand.
-
-2023-07-20 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_move): Don't call
- force_reg, to use SUBREG rather than create a new pseudo when
- inserting DFmode fields into TImode with insvti_{high,low}part.
- * config/i386/i386.md (*concat<mode><dwi>3_3): Split into two
- define_insn_and_split...
- (*concatditi3_3): 64-bit implementation. Provide alternative
- that allows register allocation to use SSE registers that is
- split into vec_concatv2di after reload.
- (*concatsidi3_3): 32-bit implementation.
-
-2023-07-20 Richard Biener <rguenther@suse.de>
-
- PR middle-end/61747
- * internal-fn.cc (expand_vec_cond_optab_fn): When the
- value operands are equal to the original comparison operands
- preserve that equality by re-using the comparison expansion.
- * optabs.cc (emit_conditional_move): When the value operands
- are equal to the comparison operands and would be forced to
- a register by prepare_cmp_insn do so earlier, preserving the
- equality.
-
-2023-07-20 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Align pattern format.
-
-2023-07-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * doc/invoke.texi: Remove AVX512VP2INTERSECT in
- Granite Rapids{, D} from documentation.
-
-2023-07-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md
- (len_mask_gather_load<VNX16_QHSD:mode><VNX16_QHSDI:mode>):
- Refactor RVV machine modes.
- (len_mask_gather_load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
- (len_mask_gather_load<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
- (len_mask_gather_load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (len_mask_gather_load<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
- (len_mask_gather_load<mode><mode>): Ditto.
- (len_mask_gather_load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
- (len_mask_scatter_store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
- (len_mask_scatter_store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
- (len_mask_scatter_store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
- (len_mask_scatter_store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
- (len_mask_scatter_store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (len_mask_scatter_store<mode><mode>): Ditto.
- (len_mask_scatter_store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
- * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Ditto.
- (ADJUST_NUNITS): Ditto.
- (ADJUST_ALIGNMENT): Ditto.
- (ADJUST_BYTESIZE): Ditto.
- (ADJUST_PRECISION): Ditto.
- (RVV_MODES): Ditto.
- (RVV_WHOLE_MODES): Ditto.
- (RVV_FRACT_MODE): Ditto.
- (RVV_NF8_MODES): Ditto.
- (RVV_NF4_MODES): Ditto.
- (VECTOR_MODES_WITH_PREFIX): Ditto.
- (VECTOR_MODE_WITH_PREFIX): Ditto.
- (RVV_TUPLE_MODES): Ditto.
- (RVV_NF2_MODES): Ditto.
- (RVV_TUPLE_PARTIAL_MODES): Ditto.
- * config/riscv/riscv-v.cc (struct mode_vtype_group): Ditto.
- (ENTRY): Ditto.
- (TUPLE_ENTRY): Ditto.
- (get_vlmul): Ditto.
- (get_nf): Ditto.
- (get_ratio): Ditto.
- (preferred_simd_mode): Ditto.
- (autovectorize_vector_modes): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
- * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
- (vbool64_t): Ditto.
- (vbool32_t): Ditto.
- (vbool16_t): Ditto.
- (vbool8_t): Ditto.
- (vbool4_t): Ditto.
- (vbool2_t): Ditto.
- (vbool1_t): Ditto.
- (vint8mf8_t): Ditto.
- (vuint8mf8_t): Ditto.
- (vint8mf4_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vuint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vuint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vuint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vuint8m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vuint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vuint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vuint16m4_t): Ditto.
- (vint16m8_t): Ditto.
- (vuint16m8_t): Ditto.
- (vint32mf2_t): Ditto.
- (vuint32mf2_t): Ditto.
- (vint32m1_t): Ditto.
- (vuint32m1_t): Ditto.
- (vint32m2_t): Ditto.
- (vuint32m2_t): Ditto.
- (vint32m4_t): Ditto.
- (vuint32m4_t): Ditto.
- (vint32m8_t): Ditto.
- (vuint32m8_t): Ditto.
- (vint64m1_t): Ditto.
- (vuint64m1_t): Ditto.
- (vint64m2_t): Ditto.
- (vuint64m2_t): Ditto.
- (vint64m4_t): Ditto.
- (vuint64m4_t): Ditto.
- (vint64m8_t): Ditto.
- (vuint64m8_t): Ditto.
- (vfloat16mf4_t): Ditto.
- (vfloat16mf2_t): Ditto.
- (vfloat16m1_t): Ditto.
- (vfloat16m2_t): Ditto.
- (vfloat16m4_t): Ditto.
- (vfloat16m8_t): Ditto.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vfloat64m1_t): Ditto.
- (vfloat64m2_t): Ditto.
- (vfloat64m4_t): Ditto.
- (vfloat64m8_t): Ditto.
- * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
- (TUPLE_ENTRY): Ditto.
- * config/riscv/riscv-vsetvl.cc (change_insn): Ditto.
- * config/riscv/riscv.cc (riscv_valid_lo_sum_p): Ditto.
- (riscv_v_adjust_nunits): Ditto.
- (riscv_v_adjust_bytesize): Ditto.
- (riscv_v_adjust_precision): Ditto.
- (riscv_convert_vector_bits): Ditto.
- * config/riscv/riscv.h (riscv_v_adjust_nunits): Ditto.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector-iterators.md: Ditto.
- * config/riscv/vector.md
- (@pred_indexed_<order>store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
- (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
- (@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
- (@pred_indexed_<order>load<V1T:mode><VNX1_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
- (@pred_indexed_<order>load<V2T:mode><VNX2_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
- (@pred_indexed_<order>load<V4T:mode><VNX4_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
- (@pred_indexed_<order>load<V8T:mode><VNX8_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
- (@pred_indexed_<order>load<V16T:mode><VNX16_QHSI:mode>): Ditto.
- (@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
- (@pred_indexed_<order>load<V32T:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
- (@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
- (@pred_indexed_<order>store<V1T:mode><VNX1_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
- (@pred_indexed_<order>store<V2T:mode><VNX2_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
- (@pred_indexed_<order>store<V4T:mode><VNX4_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
- (@pred_indexed_<order>store<V8T:mode><VNX8_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
- (@pred_indexed_<order>store<V16T:mode><VNX16_QHSI:mode>): Ditto.
- (@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
- (@pred_indexed_<order>store<V32T:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
-
-2023-07-19 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-int.h (lra_update_fp2sp_elimination): New prototype.
- (lra_asm_insn_error): New prototype.
- * lra-spills.cc (remove_pseudos): Add check for pseudo slot memory
- existence.
- (lra_spill): Call lra_update_fp2sp_elimination.
- * lra-eliminations.cc: Remove trailing spaces.
- (elimination_fp2sp_occured_p): New static flag.
- (lra_eliminate_regs_1): Set the flag up.
- (update_reg_eliminate): Modify the assert for stack to frame
- pointer elimination.
- (lra_update_fp2sp_elimination): New function.
- (lra_eliminate): Clear flag elimination_fp2sp_occured_p.
-
-2023-07-19 Andrew Carlotti <andrew.carlotti@arm.com>
-
- * config/aarch64/aarch64.h (TARGET_MEMTAG): Remove armv8.5
- dependency.
- * config/aarch64/arm_acle.h: Remove unnecessary armv8.x
- dependencies from target pragmas.
- * config/aarch64/arm_fp16.h (target): Likewise.
- * config/aarch64/arm_neon.h (target): Likewise.
-
-2023-07-19 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110252
- * tree-ssa-phiopt.cc (class auto_flow_sensitive): New class.
- (auto_flow_sensitive::auto_flow_sensitive): New constructor.
- (auto_flow_sensitive::~auto_flow_sensitive): New deconstructor.
- (match_simplify_replacement): Temporarily
- remove the flow sensitive info on the two statements that might
- be moved.
-
-2023-07-19 Andrew Pinski <apinski@marvell.com>
-
- * gimple-fold.cc (fosa_unwind): Replace `vrange_storage *`
- with flow_sensitive_info_storage.
- (follow_outer_ssa_edges): Update how to save off the flow
- sensitive info.
- (maybe_fold_comparisons_from_match_pd): Update restoring
- of flow sensitive info.
- * tree-ssanames.cc (flow_sensitive_info_storage::save): New method.
- (flow_sensitive_info_storage::restore): New method.
- (flow_sensitive_info_storage::save_and_clear): New method.
- (flow_sensitive_info_storage::clear_storage): New method.
- * tree-ssanames.h (class flow_sensitive_info_storage): New class.
-
-2023-07-19 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110726
- * match.pd ((a|b)&(a==b),a|(a==b),(a&b)|(a==b)):
- Add checks to make sure the type was one bit precision
- intergal type.
-
-2023-07-19 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * doc/md.texi: Add mask_len_fold_left_plus.
- * internal-fn.cc (mask_len_fold_left_direct): Ditto.
- (expand_mask_len_fold_left_optab_fn): Ditto.
- (direct_mask_len_fold_left_optab_supported_p): Ditto.
- * internal-fn.def (MASK_LEN_FOLD_LEFT_PLUS): Ditto.
- * optabs.def (OPTAB_D): Ditto.
-
-2023-07-19 Jakub Jelinek <jakub@redhat.com>
-
- * tree-switch-conversion.h (class bit_test_cluster): Fix comment typo.
-
-2023-07-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/110731
- * wide-int.cc (wi::divmod_internal): Always unpack dividend and
- divisor as UNSIGNED regardless of sgn.
-
-2023-07-19 Lehua Ding <lehua.ding@rivai.ai>
-
- * common/config/riscv/riscv-common.cc (riscv_supported_std_ext): Init.
- (standard_extensions_p): Add check.
- (riscv_subset_list::add): Just return NULL if it failed before.
- (riscv_subset_list::parse_std_ext): Continue parse when find a error
- (riscv_subset_list::parse): Just return NULL if it failed before.
- * config/riscv/riscv-subset.h (class riscv_subset_list): Add field.
-
-2023-07-19 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
- Use gen_vec_set_0.
- (ix86_expand_vector_extract): Use gen_vec_extract_lo /
- gen_vec_extract_hi.
- (expand_vec_perm_broadcast_1): Use gen_vec_interleave_high /
- gen_vec_interleave_low. Rename local variable.
-
-2023-07-19 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (vec_dupv2df<mask_name>): Add new AVX512F
- alternative. Move AVX512VL part of condition to new "enabled"
- attribute.
-
-2023-07-19 liuhongt <hongtao.liu@intel.com>
-
- PR target/109504
- * config/i386/i386-builtins.cc
- (ix86_register_float16_builtin_type): Remove TARGET_SSE2.
- (ix86_register_bf16_builtin_type): Ditto.
- * config/i386/i386-c.cc (ix86_target_macros): When TARGET_SSE2
- isn't available, undef the macros which are used to check the
- backend support of the _Float16/__bf16 types when building
- libstdc++ and libgcc.
- * config/i386/i386.cc (construct_container): Issue errors for
- HFmode/BFmode when TARGET_SSE2 is not available.
- (function_value_32): Ditto.
- (ix86_scalar_mode_supported_p): Remove TARGET_SSE2 for HFmode/BFmode.
- (ix86_libgcc_floating_mode_supported_p): Ditto.
- (ix86_emit_support_tinfos): Adjust codes.
- (ix86_invalid_conversion): Return diagnostic message string
- when there's conversion from/to BF/HFmode w/o TARGET_SSE2.
- (ix86_invalid_unary_op): New function.
- (ix86_invalid_binary_op): Ditto.
- (TARGET_INVALID_UNARY_OP): Define.
- (TARGET_INVALID_BINARY_OP): Define.
- * config/i386/immintrin.h [__SSE2__]: Remove for fp16/bf16
- related instrinsics header files.
- * config/i386/i386.h (VALID_SSE2_TYPE_MODE): New macro.
-
-2023-07-18 Uros Bizjak <ubizjak@gmail.com>
-
- * dwarf2asm.cc: Change FALSE to false.
- * dwarf2cfi.cc (execute_dwarf2_frame): Change return type to void.
- * dwarf2out.cc (matches_main_base): Change return type from
- int to bool. Change "last_match" variable to bool.
- (dump_struct_debug): Change return type from int to bool.
- Change "matches" and "result" function arguments to bool.
- (is_pseudo_reg): Change return type from int to bool.
- (is_tagged_type): Ditto.
- (same_loc_p): Ditto.
- (same_dw_val_p): Change return type from int to bool and adjust
- function body accordingly.
- (same_attr_p): Ditto.
- (same_die_p): Ditto.
- (is_type_die): Ditto.
- (is_declaration_die): Ditto.
- (should_move_die_to_comdat): Ditto.
- (is_base_type): Ditto.
- (is_based_loc): Ditto.
- (local_scope_p): Ditto.
- (class_scope_p): Ditto.
- (class_or_namespace_scope_p): Ditto.
- (is_tagged_type): Ditto.
- (is_rust): Use void argument.
- (is_nested_in_subprogram): Change return type from int to bool.
- (contains_subprogram_definition): Ditto.
- (gen_struct_or_union_type_die): Change "nested", "complete"
- and "ns_decl" variables to bool.
- (is_naming_typedef_decl): Change FALSE to false.
-
-2023-07-18 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.cc (edge_range_query): Take loop argument; be ready
- for queries not in headers.
- (static_loop_exit): Add basic blck parameter; update use of
- edge_range_query
- (should_duplicate_loop_header_p): Add ranger and static_exits
- parameter. Do not account statements that will be optimized
- out after duplicaiton in overall size. Add ranger query to
- find static exits.
- (update_profile_after_ch): Take static_exits has set instead of
- single eliminated_edge.
- (ch_base::copy_headers): Do all analysis in the first pass;
- remember invariant_exits and static_exits.
-
-2023-07-18 Jason Merrill <jason@redhat.com>
-
- * fold-const.cc (native_interpret_aggregate): Skip empty fields.
-
-2023-07-18 Gaius Mulley <gaiusmod2@gmail.com>
-
- * doc/gm2.texi (Semantic checking): Change example testwithptr
- to testnew6.
-
-2023-07-18 Richard Biener <rguenther@suse.de>
-
- PR middle-end/105715
- * gimple-isel.cc (gimple_expand_vec_exprs): Merge into...
- (pass_gimple_isel::execute): ... this. Duplicate
- comparison defs of COND_EXPRs.
-
-2023-07-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-selftests.cc (run_poly_int_selftests): Add more selftests.
- * config/riscv/riscv.cc (riscv_legitimize_poly_move): Dynamic adjust size of VLA vectors.
- (riscv_convert_vector_bits): Ditto.
-
-2023-07-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (vec_shl_insert_<mode>): New patterns.
- * config/riscv/riscv-v.cc (shuffle_compress_patterns): Fix bugs.
-
-2023-07-18 Juergen Christ <jchrist@linux.ibm.com>
-
- * config/s390/vx-builtins.md: New vsel pattern.
-
-2023-07-18 liuhongt <hongtao.liu@intel.com>
-
- PR target/110438
- * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>):
- Remove # from assemble output.
-
-2023-07-18 liuhongt <hongtao.liu@intel.com>
-
- PR target/110591
- * config/i386/sync.md (cmpccxadd_<mode>): Adjust the pattern
- to explicitly set FLAGS_REG like *cmp<mode>_1, also add extra
- 3 define_peephole2 after the pattern.
-
-2023-07-18 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * rtl-ssa/internals.inl: Fix when mode1 and mode2 are not ordred.
-
-2023-07-18 Pan Li <pan2.li@intel.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (struct machine_function): Add new field.
- (riscv_static_frm_mode_p): New function.
- (riscv_emit_frm_mode_set): New function for emit FRM.
- (riscv_emit_mode_set): Extract function for FRM.
- (riscv_mode_needed): Fix the TODO.
- (riscv_mode_entry): Initial dynamic frm RTL.
- (riscv_mode_exit): Return DYN_EXIT.
- * config/riscv/riscv.md: Add rdfrm.
- * config/riscv/vector-iterators.md (unspecv): Add DYN_EXIT unspecv.
- * config/riscv/vector.md (frm_modee): Add new mode dyn_exit.
- (fsrm): Removed.
- (fsrmsi_backup): New pattern for swap.
- (fsrmsi_restore): New pattern for restore.
- (fsrmsi_restore_exit): New pattern for restore exit.
- (frrmsi): New pattern for backup.
-
-2023-07-17 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/extend.texi: Add @cindex on __auto_type.
-
-2023-07-17 Uros Bizjak <ubizjak@gmail.com>
-
- * combine-stack-adj.cc (stack_memref_p): Change return type from
- int to bool and adjust function body accordingly.
- (rest_of_handle_stack_adjustments): Change return type to void.
-
-2023-07-17 Uros Bizjak <ubizjak@gmail.com>
-
- * combine.cc (struct reg_stat_type): Change last_set_invalid to bool.
- (cant_combine_insn_p): Change return type from int to bool and adjust
- function body accordingly.
- (can_combine_p): Ditto.
- (combinable_i3pat): Ditto. Change "i1_not_in_src" and "i0_not_in_src"
- function arguments from int to bool.
- (contains_muldiv): Change return type from int to bool and adjust
- function body accordingly.
- (try_combine): Ditto. Change "new_direct_jump" pointer function
- argument from int to bool. Change "substed_i2", "substed_i1",
- "substed_i0", "added_sets_0", "added_sets_1", "added_sets_2",
- "i2dest_in_i2src", "i1dest_in_i1src", "i2dest_in_i1src",
- "i0dest_in_i0src", "i1dest_in_i0src", "i2dest_in_i0src",
- "i2dest_killed", "i1dest_killed", "i0dest_killed", "i1_feeds_i2_n",
- "i0_feeds_i2_n", "i0_feeds_i1_n", "i3_subst_into_i2", "have_mult",
- "swap_i2i3", "split_i2i3" and "changed_i3_dest" variables
- from int to bool.
- (subst): Change "in_dest", "in_cond" and "unique_copy" function
- arguments from int to bool.
- (combine_simplify_rtx): Change "in_dest" and "in_cond" function
- arguments from int to bool.
- (make_extraction): Change "unsignedp", "in_dest" and "in_compare"
- function argument from int to bool.
- (force_int_to_mode): Change "just_select" function argument
- from int to bool. Change "next_select" variable to bool.
- (rtx_equal_for_field_assignment_p): Change return type from
- int to bool and adjust function body accordingly.
- (merge_outer_ops): Ditto. Change "pcomp_p" pointer function
- argument from int to bool.
- (get_last_value_validate): Change return type from int to bool
- and adjust function body accordingly.
- (reg_dead_at_p): Ditto.
- (reg_bitfield_target_p): Ditto.
- (combine_instructions): Ditto. Change "new_direct_jump"
- variable to bool.
- (can_combine_p): Change return type from int to bool
- and adjust function body accordingly.
- (likely_spilled_retval_p): Ditto.
- (can_change_dest_mode): Change "added_sets" function argument
- from int to bool.
- (find_split_point): Change "unsignedp" variable to bool.
- (simplify_if_then_else): Change "comparison_p" and "swapped"
- variables to bool.
- (simplify_set): Change "other_changed" variable to bool.
- (expand_compound_operation): Change "unsignedp" variable to bool.
- (force_to_mode): Change "just_select" function argument
- from int to bool. Change "next_select" variable to bool.
- (extended_count): Change "unsignedp" function argument to bool.
- (simplify_shift_const_1): Change "complement_p" variable to bool.
- (simplify_comparison): Change "changed" variable to bool.
- (rest_of_handle_combine): Change return type to void.
-
-2023-07-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR plugins/110610
- * Makefile.in (INTERNAL_FN_H): Add insn-opinit.h.
-
-2023-07-17 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
-
- * ira.cc (setup_reg_class_relations): Continue
- if regclass cl3 is hard_reg_set_empty_p.
-
-2023-07-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_option_override): Add sorry check.
-
-2023-07-17 Martin Jambor <mjambor@suse.cz>
-
- * tree-ssa-loop-ivcanon.cc (try_peel_loop): Remove unused variable
- entry_count.
-
-2023-07-17 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-ssa-ccp.cc (ccp_finalize): Export value/mask known bits.
-
-2023-07-17 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/110696
- * common/config/riscv/riscv-common.cc (riscv_subset_list::handle_implied_ext):
- recur add all implied extensions.
- (riscv_subset_list::check_implied_ext): Add new method.
- (riscv_subset_list::parse): Call checker check_implied_ext.
- * config/riscv/riscv-subset.h: Add new method.
-
-2023-07-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (reduc_plus_scal_<mode>): New pattern.
- (reduc_smax_scal_<mode>): Ditto.
- (reduc_umax_scal_<mode>): Ditto.
- (reduc_smin_scal_<mode>): Ditto.
- (reduc_umin_scal_<mode>): Ditto.
- (reduc_and_scal_<mode>): Ditto.
- (reduc_ior_scal_<mode>): Ditto.
- (reduc_xor_scal_<mode>): Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): Add reduction.
- (expand_reduction): New function.
- * config/riscv/riscv-v.cc (emit_vlmax_reduction_insn): Ditto.
- (emit_vlmax_fp_reduction_insn): Ditto.
- (get_m1_mode): Ditto.
- (expand_cond_len_binop): Fix name.
- (expand_reduction): New function
- * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Fix VSETVL BUG.
- (validate_change_or_fail): New function.
- (change_insn): Fix VSETVL BUG.
- (change_vsetvl_insn): Ditto.
- (pass_vsetvl::backward_demand_fusion): Ditto.
- (pass_vsetvl::df_post_optimization): Ditto.
-
-2023-07-17 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-prop.cc (ipcp_update_bits): Export value/mask known bits.
-
-2023-07-17 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.cc (riscv_regno_ok_for_index_p):
- Remove parameter name from declaration of unused parameter.
-
-2023-07-17 Kewen Lin <linkw@linux.ibm.com>
-
- PR tree-optimization/110652
- * tree-vect-stmts.cc (vectorizable_load): Initialize new_temp as
- NULL_TREE.
-
-2023-07-17 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110669
- * tree-scalar-evolution.cc (analyze_and_compute_bitop_with_inv_effect):
- Check we matched a header PHI.
-
-2023-07-17 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-ssanames.cc (set_bitmask): New.
- * tree-ssanames.h (set_bitmask): New.
-
-2023-07-17 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange_bitmask::verify_mask): Mask need not be
- normalized.
- * value-range.h (irange_bitmask::union_): Normalize beforehand.
- (irange_bitmask::intersect): Same.
-
-2023-07-17 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/95923
- * match.pd ((a|b)&(a==b),a|(a==b),(a&b)|(a==b)): New transformation.
-
-2023-07-17 Roger Sayle <roger@nextmovesoftware.com>
-
- * tree-if-conv.cc (predicate_scalar_phi): Make the arguments
- to the std::sort comparison lambda function const.
-
-2023-07-17 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110666
- * match.pd (A NEEQ (A NEEQ CST)): Fix Outer EQ case.
-
-2023-07-17 Mo, Zewei <zewei.mo@intel.com>
-
- * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Lunar Lake,
- Arrow Lake and Arrow Lake S.
- * common/config/i386/i386-common.cc:
- (processor_name): Add arrowlake.
- (processor_alias_table): Add arrow lake, arrow lake s and lunar
- lake.
- * common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
- Add INTEL_COREI7_ARROWLAKE and INTEL_COREI7_ARROWLAKE_S.
- * config.gcc: Add -march=arrowlake and -march=arrowlake-s.
- * config/i386/driver-i386.cc (host_detect_local_cpu): Handle
- arrowlake-s.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Add
- arrowlake.
- * config/i386/i386-options.cc (m_ARROWLAKE): New.
- (processor_cost_table): Add arrowlake.
- * config/i386/i386.h (enum processor_type):
- Add PROCESSOR_ARROWLAKE.
- * config/i386/x86-tune.def: Add m_ARROWLAKE.
- * doc/extend.texi: Add arrowlake and arrowlake-s.
- * doc/invoke.texi: Ditto.
-
-2023-07-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/sse.md (VI2_AVX2): Delete V32HI since we actually
- have the same iterator. Also renaming all the occurence to
- VI2_AVX2_AVX512BW.
- (usdot_prod<mode>): New define_expand.
- (udot_prod<mode>): Ditto.
-
-2023-07-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Detech SM4.
- * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_SM4_SET,
- OPTION_MASK_ISA2_SM4_UNSET): New.
- (OPTION_MASK_ISA2_AVX_UNSET): Add SM4.
- (ix86_handle_option): Handle -msm4.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_SM4.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- sm4.
- * config.gcc: Add sm4intrin.h.
- * config/i386/cpuid.h (bit_SM4): New.
- * config/i386/i386-builtin.def (BDESC): Add new builtins.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Define
- __SM4__.
- * config/i386/i386-isa.def (SM4): Add DEF_PTA(SM4).
- * config/i386/i386-options.cc (isa2_opts): Add -msm4.
- (ix86_valid_target_attribute_inner_p): Handle sm4.
- * config/i386/i386.opt: Add option -msm4.
- * config/i386/immintrin.h: Include sm4intrin.h
- * config/i386/sse.md (vsm4key4_<mode>): New define insn.
- (vsm4rnds4_<mode>): Ditto.
- * doc/extend.texi: Document sm4.
- * doc/invoke.texi: Document -msm4.
- * doc/sourcebuild.texi: Document target sm4.
- * config/i386/sm4intrin.h: New file.
-
-2023-07-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Detect SHA512.
- * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_SHA512_SET,
- OPTION_MASK_ISA2_SHA512_UNSET): New.
- (OPTION_MASK_ISA2_AVX_UNSET): Add SHA512.
- (ix86_handle_option): Handle -msha512.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_SHA512.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- sha512.
- * config.gcc: Add sha512intrin.h.
- * config/i386/cpuid.h (bit_SHA512): New.
- * config/i386/i386-builtin-types.def:
- Add DEF_FUNCTION_TYPE (V4DI, V4DI, V4DI, V2DI).
- * config/i386/i386-builtin.def (BDESC): Add new builtins.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Define
- __SHA512__.
- * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
- V4DI_FTYPE_V4DI_V4DI_V2DI and V4DI_FTYPE_V4DI_V2DI.
- * config/i386/i386-isa.def (SHA512): Add DEF_PTA(SHA512).
- * config/i386/i386-options.cc (isa2_opts): Add -msha512.
- (ix86_valid_target_attribute_inner_p): Handle sha512.
- * config/i386/i386.opt: Add option -msha512.
- * config/i386/immintrin.h: Include sha512intrin.h.
- * config/i386/sse.md (vsha512msg1): New define insn.
- (vsha512msg2): Ditto.
- (vsha512rnds2): Ditto.
- * doc/extend.texi: Document sha512.
- * doc/invoke.texi: Document -msha512.
- * doc/sourcebuild.texi: Document target sha512.
- * config/i386/sha512intrin.h: New file.
-
-2023-07-17 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Detect SM3.
- * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_SM3_SET,
- OPTION_MASK_ISA2_SM3_UNSET): New.
- (OPTION_MASK_ISA2_AVX_UNSET): Add SM3.
- (ix86_handle_option): Handle -msm3.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_SM3.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- SM3.
- * config.gcc: Add sm3intrin.h
- * config/i386/cpuid.h (bit_SM3): New.
- * config/i386/i386-builtin-types.def:
- Add DEF_FUNCTION_TYPE (V4SI, V4SI, V4SI, V4SI, INT).
- * config/i386/i386-builtin.def (BDESC): Add new builtins.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Define
- __SM3__.
- * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
- V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
- * config/i386/i386-isa.def (SM3): Add DEF_PTA(SM3).
- * config/i386/i386-options.cc (isa2_opts): Add -msm3.
- (ix86_valid_target_attribute_inner_p): Handle sm3.
- * config/i386/i386.opt: Add option -msm3.
- * config/i386/immintrin.h: Include sm3intrin.h.
- * config/i386/sse.md (vsm3msg1): New define insn.
- (vsm3msg2): Ditto.
- (vsm3rnds2): Ditto.
- * doc/extend.texi: Document sm3.
- * doc/invoke.texi: Document -msm3.
- * doc/sourcebuild.texi: Document target sm3.
- * config/i386/sm3intrin.h: New file.
-
-2023-07-17 Kong Lingling <lingling.kong@intel.com>
- Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features): Detect
- avxvnniint16.
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA2_AVXVNNIINT16_SET): New.
- (OPTION_MASK_ISA2_AVXVNNIINT16_UNSET): Ditto.
- (ix86_handle_option): Handle -mavxvnniint16.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_AVXVNNIINT16.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- avxvnniint16.
- * config.gcc: Add avxvnniint16.h.
- * config/i386/avxvnniint16intrin.h: New file.
- * config/i386/cpuid.h (bit_AVXVNNIINT16): New.
- * config/i386/i386-builtin.def: Add new builtins.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Define
- __AVXVNNIINT16__.
- * config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint16.
- (ix86_valid_target_attribute_inner_p): Handle avxvnniint16intrin.h.
- * config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT16).
- * config/i386/i386.opt: Add option -mavxvnniint16.
- * config/i386/immintrin.h: Include avxvnniint16.h.
- * config/i386/sse.md
- (vpdp<vpdpwprodtype>_<mode>): New define_insn.
- * doc/extend.texi: Document avxvnniint16.
- * doc/invoke.texi: Document -mavxvnniint16.
- * doc/sourcebuild.texi: Document target avxvnniint16.
-
-2023-07-16 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/110649
- * tree-vect-loop.cc (scale_profile_for_vect_loop): Rewrite.
- (vect_transform_loop): Move scale_profile_for_vect_loop after
- upper bound updates.
-
-2023-07-16 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/110649
- * tree-vect-loop.cc (optimize_mask_stores): Set correctly
- probability of the if-then-else construct.
-
-2023-07-16 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/110649
- * tree-ssa-loop-ivcanon.cc (try_peel_loop): Avoid double profile update.
-
-2023-07-15 Andrew Pinski <apinski@marvell.com>
-
- * doc/contrib.texi: Update my entry.
-
-2023-07-15 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.md: Define constants R1_REGNUM, R19_REGNUM and
- R27_REGNUM.
- (tgd_load): Restrict to !TARGET_64BIT. Use register constants.
- (tld_load): Likewise.
- (tgd_load_pic): Change to expander.
- (tld_load_pic, tld_offset_load, tp_load): Likewise.
- (tie_load_pic, tle_load): Likewise.
- (tgd_load_picsi, tgd_load_picdi): New.
- (tld_load_picsi, tld_load_picdi): New.
- (tld_offset_load<P:mode>): New.
- (tp_load<P:mode>): New.
- (tie_load_picsi, tie_load_picdi): New.
- (tle_load<P:mode>): New.
-
-2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-base.cc (vcmlaq, vcmlaq_rot90)
- (vcmlaq_rot180, vcmlaq_rot270): New.
- * config/arm/arm-mve-builtins-base.def (vcmlaq, vcmlaq_rot90)
- (vcmlaq_rot180, vcmlaq_rot270): New.
- * config/arm/arm-mve-builtins-base.h: (vcmlaq, vcmlaq_rot90)
- (vcmlaq_rot180, vcmlaq_rot270): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vcmlaq,
- vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270.
- * config/arm/arm_mve.h (vcmlaq): Delete.
- (vcmlaq_rot180): Delete.
- (vcmlaq_rot270): Delete.
- (vcmlaq_rot90): Delete.
- (vcmlaq_m): Delete.
- (vcmlaq_rot180_m): Delete.
- (vcmlaq_rot270_m): Delete.
- (vcmlaq_rot90_m): Delete.
- (vcmlaq_f16): Delete.
- (vcmlaq_rot180_f16): Delete.
- (vcmlaq_rot270_f16): Delete.
- (vcmlaq_rot90_f16): Delete.
- (vcmlaq_f32): Delete.
- (vcmlaq_rot180_f32): Delete.
- (vcmlaq_rot270_f32): Delete.
- (vcmlaq_rot90_f32): Delete.
- (vcmlaq_m_f32): Delete.
- (vcmlaq_m_f16): Delete.
- (vcmlaq_rot180_m_f32): Delete.
- (vcmlaq_rot180_m_f16): Delete.
- (vcmlaq_rot270_m_f32): Delete.
- (vcmlaq_rot270_m_f16): Delete.
- (vcmlaq_rot90_m_f32): Delete.
- (vcmlaq_rot90_m_f16): Delete.
- (__arm_vcmlaq_f16): Delete.
- (__arm_vcmlaq_rot180_f16): Delete.
- (__arm_vcmlaq_rot270_f16): Delete.
- (__arm_vcmlaq_rot90_f16): Delete.
- (__arm_vcmlaq_f32): Delete.
- (__arm_vcmlaq_rot180_f32): Delete.
- (__arm_vcmlaq_rot270_f32): Delete.
- (__arm_vcmlaq_rot90_f32): Delete.
- (__arm_vcmlaq_m_f32): Delete.
- (__arm_vcmlaq_m_f16): Delete.
- (__arm_vcmlaq_rot180_m_f32): Delete.
- (__arm_vcmlaq_rot180_m_f16): Delete.
- (__arm_vcmlaq_rot270_m_f32): Delete.
- (__arm_vcmlaq_rot270_m_f16): Delete.
- (__arm_vcmlaq_rot90_m_f32): Delete.
- (__arm_vcmlaq_rot90_m_f16): Delete.
- (__arm_vcmlaq): Delete.
- (__arm_vcmlaq_rot180): Delete.
- (__arm_vcmlaq_rot270): Delete.
- (__arm_vcmlaq_rot90): Delete.
- (__arm_vcmlaq_m): Delete.
- (__arm_vcmlaq_rot180_m): Delete.
- (__arm_vcmlaq_rot270_m): Delete.
- (__arm_vcmlaq_rot90_m): Delete.
-
-2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm_mve_builtins.def (vcmlaq_rot90_f)
- (vcmlaq_rot270_f, vcmlaq_rot180_f, vcmlaq_f): Add "_f" suffix.
- * config/arm/iterators.md (MVE_VCMLAQ_M): New.
- (mve_insn): Add vcmla.
- (rot): Add VCMLAQ_M_F, VCMLAQ_ROT90_M_F, VCMLAQ_ROT180_M_F,
- VCMLAQ_ROT270_M_F.
- (mve_rot): Add VCMLAQ_M_F, VCMLAQ_ROT90_M_F, VCMLAQ_ROT180_M_F,
- VCMLAQ_ROT270_M_F.
- * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Rename into ...
- (@mve_<mve_insn>q<mve_rot>_f<mode>): ... this.
- (mve_vcmlaq_m_f<mode>, mve_vcmlaq_rot180_m_f<mode>)
- (mve_vcmlaq_rot270_m_f<mode>, mve_vcmlaq_rot90_m_f<mode>): Merge
- into ...
- (@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
-
-2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-base.cc (vcmulq, vcmulq_rot90)
- (vcmulq_rot180, vcmulq_rot270): New.
- * config/arm/arm-mve-builtins-base.def (vcmulq, vcmulq_rot90)
- (vcmulq_rot180, vcmulq_rot270): New.
- * config/arm/arm-mve-builtins-base.h: (vcmulq, vcmulq_rot90)
- (vcmulq_rot180, vcmulq_rot270): New.
- * config/arm/arm_mve.h (vcmulq_rot90): Delete.
- (vcmulq_rot270): Delete.
- (vcmulq_rot180): Delete.
- (vcmulq): Delete.
- (vcmulq_m): Delete.
- (vcmulq_rot180_m): Delete.
- (vcmulq_rot270_m): Delete.
- (vcmulq_rot90_m): Delete.
- (vcmulq_x): Delete.
- (vcmulq_rot90_x): Delete.
- (vcmulq_rot180_x): Delete.
- (vcmulq_rot270_x): Delete.
- (vcmulq_rot90_f16): Delete.
- (vcmulq_rot270_f16): Delete.
- (vcmulq_rot180_f16): Delete.
- (vcmulq_f16): Delete.
- (vcmulq_rot90_f32): Delete.
- (vcmulq_rot270_f32): Delete.
- (vcmulq_rot180_f32): Delete.
- (vcmulq_f32): Delete.
- (vcmulq_m_f32): Delete.
- (vcmulq_m_f16): Delete.
- (vcmulq_rot180_m_f32): Delete.
- (vcmulq_rot180_m_f16): Delete.
- (vcmulq_rot270_m_f32): Delete.
- (vcmulq_rot270_m_f16): Delete.
- (vcmulq_rot90_m_f32): Delete.
- (vcmulq_rot90_m_f16): Delete.
- (vcmulq_x_f16): Delete.
- (vcmulq_x_f32): Delete.
- (vcmulq_rot90_x_f16): Delete.
- (vcmulq_rot90_x_f32): Delete.
- (vcmulq_rot180_x_f16): Delete.
- (vcmulq_rot180_x_f32): Delete.
- (vcmulq_rot270_x_f16): Delete.
- (vcmulq_rot270_x_f32): Delete.
- (__arm_vcmulq_rot90_f16): Delete.
- (__arm_vcmulq_rot270_f16): Delete.
- (__arm_vcmulq_rot180_f16): Delete.
- (__arm_vcmulq_f16): Delete.
- (__arm_vcmulq_rot90_f32): Delete.
- (__arm_vcmulq_rot270_f32): Delete.
- (__arm_vcmulq_rot180_f32): Delete.
- (__arm_vcmulq_f32): Delete.
- (__arm_vcmulq_m_f32): Delete.
- (__arm_vcmulq_m_f16): Delete.
- (__arm_vcmulq_rot180_m_f32): Delete.
- (__arm_vcmulq_rot180_m_f16): Delete.
- (__arm_vcmulq_rot270_m_f32): Delete.
- (__arm_vcmulq_rot270_m_f16): Delete.
- (__arm_vcmulq_rot90_m_f32): Delete.
- (__arm_vcmulq_rot90_m_f16): Delete.
- (__arm_vcmulq_x_f16): Delete.
- (__arm_vcmulq_x_f32): Delete.
- (__arm_vcmulq_rot90_x_f16): Delete.
- (__arm_vcmulq_rot90_x_f32): Delete.
- (__arm_vcmulq_rot180_x_f16): Delete.
- (__arm_vcmulq_rot180_x_f32): Delete.
- (__arm_vcmulq_rot270_x_f16): Delete.
- (__arm_vcmulq_rot270_x_f32): Delete.
- (__arm_vcmulq_rot90): Delete.
- (__arm_vcmulq_rot270): Delete.
- (__arm_vcmulq_rot180): Delete.
- (__arm_vcmulq): Delete.
- (__arm_vcmulq_m): Delete.
- (__arm_vcmulq_rot180_m): Delete.
- (__arm_vcmulq_rot270_m): Delete.
- (__arm_vcmulq_rot90_m): Delete.
- (__arm_vcmulq_x): Delete.
- (__arm_vcmulq_rot90_x): Delete.
- (__arm_vcmulq_rot180_x): Delete.
- (__arm_vcmulq_rot270_x): Delete.
-
-2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm_mve_builtins.def (vcmulq_rot90_f)
- (vcmulq_rot270_f, vcmulq_rot180_f, vcmulq_f): Add "_f" suffix.
- * config/arm/iterators.md (MVE_VCADDQ_VCMULQ)
- (MVE_VCADDQ_VCMULQ_M): New.
- (mve_insn): Add vcmul.
- (rot): Add VCMULQ_M_F, VCMULQ_ROT90_M_F, VCMULQ_ROT180_M_F,
- VCMULQ_ROT270_M_F.
- (VCMUL): Delete.
- (mve_rot): Add VCMULQ_M_F, VCMULQ_ROT90_M_F, VCMULQ_ROT180_M_F,
- VCMULQ_ROT270_M_F.
- * config/arm/mve.md (mve_vcmulq<mve_rot><mode>): Merge into
- @mve_<mve_insn>q<mve_rot>_f<mode>.
- (mve_vcmulq_m_f<mode>, mve_vcmulq_rot180_m_f<mode>)
- (mve_vcmulq_rot270_m_f<mode>, mve_vcmulq_rot90_m_f<mode>): Merge
- into @mve_<mve_insn>q<mve_rot>_m_f<mode>.
-
-2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm-mve-builtins-base.cc (vcaddq_rot90)
- (vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
- * config/arm/arm-mve-builtins-base.def (vcaddq_rot90)
- (vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
- * config/arm/arm-mve-builtins-base.h: (vcaddq_rot90)
- (vcaddq_rot270, vhcaddq_rot90, vhcaddq_rot270): New.
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_mve_function_exact_insn_rot): New.
- * config/arm/arm_mve.h (vcaddq_rot90): Delete.
- (vcaddq_rot270): Delete.
- (vhcaddq_rot90): Delete.
- (vhcaddq_rot270): Delete.
- (vcaddq_rot270_m): Delete.
- (vcaddq_rot90_m): Delete.
- (vhcaddq_rot270_m): Delete.
- (vhcaddq_rot90_m): Delete.
- (vcaddq_rot90_x): Delete.
- (vcaddq_rot270_x): Delete.
- (vhcaddq_rot90_x): Delete.
- (vhcaddq_rot270_x): Delete.
- (vcaddq_rot90_u8): Delete.
- (vcaddq_rot270_u8): Delete.
- (vhcaddq_rot90_s8): Delete.
- (vhcaddq_rot270_s8): Delete.
- (vcaddq_rot90_s8): Delete.
- (vcaddq_rot270_s8): Delete.
- (vcaddq_rot90_u16): Delete.
- (vcaddq_rot270_u16): Delete.
- (vhcaddq_rot90_s16): Delete.
- (vhcaddq_rot270_s16): Delete.
- (vcaddq_rot90_s16): Delete.
- (vcaddq_rot270_s16): Delete.
- (vcaddq_rot90_u32): Delete.
- (vcaddq_rot270_u32): Delete.
- (vhcaddq_rot90_s32): Delete.
- (vhcaddq_rot270_s32): Delete.
- (vcaddq_rot90_s32): Delete.
- (vcaddq_rot270_s32): Delete.
- (vcaddq_rot90_f16): Delete.
- (vcaddq_rot270_f16): Delete.
- (vcaddq_rot90_f32): Delete.
- (vcaddq_rot270_f32): Delete.
- (vcaddq_rot270_m_s8): Delete.
- (vcaddq_rot270_m_s32): Delete.
- (vcaddq_rot270_m_s16): Delete.
- (vcaddq_rot270_m_u8): Delete.
- (vcaddq_rot270_m_u32): Delete.
- (vcaddq_rot270_m_u16): Delete.
- (vcaddq_rot90_m_s8): Delete.
- (vcaddq_rot90_m_s32): Delete.
- (vcaddq_rot90_m_s16): Delete.
- (vcaddq_rot90_m_u8): Delete.
- (vcaddq_rot90_m_u32): Delete.
- (vcaddq_rot90_m_u16): Delete.
- (vhcaddq_rot270_m_s8): Delete.
- (vhcaddq_rot270_m_s32): Delete.
- (vhcaddq_rot270_m_s16): Delete.
- (vhcaddq_rot90_m_s8): Delete.
- (vhcaddq_rot90_m_s32): Delete.
- (vhcaddq_rot90_m_s16): Delete.
- (vcaddq_rot270_m_f32): Delete.
- (vcaddq_rot270_m_f16): Delete.
- (vcaddq_rot90_m_f32): Delete.
- (vcaddq_rot90_m_f16): Delete.
- (vcaddq_rot90_x_s8): Delete.
- (vcaddq_rot90_x_s16): Delete.
- (vcaddq_rot90_x_s32): Delete.
- (vcaddq_rot90_x_u8): Delete.
- (vcaddq_rot90_x_u16): Delete.
- (vcaddq_rot90_x_u32): Delete.
- (vcaddq_rot270_x_s8): Delete.
- (vcaddq_rot270_x_s16): Delete.
- (vcaddq_rot270_x_s32): Delete.
- (vcaddq_rot270_x_u8): Delete.
- (vcaddq_rot270_x_u16): Delete.
- (vcaddq_rot270_x_u32): Delete.
- (vhcaddq_rot90_x_s8): Delete.
- (vhcaddq_rot90_x_s16): Delete.
- (vhcaddq_rot90_x_s32): Delete.
- (vhcaddq_rot270_x_s8): Delete.
- (vhcaddq_rot270_x_s16): Delete.
- (vhcaddq_rot270_x_s32): Delete.
- (vcaddq_rot90_x_f16): Delete.
- (vcaddq_rot90_x_f32): Delete.
- (vcaddq_rot270_x_f16): Delete.
- (vcaddq_rot270_x_f32): Delete.
- (__arm_vcaddq_rot90_u8): Delete.
- (__arm_vcaddq_rot270_u8): Delete.
- (__arm_vhcaddq_rot90_s8): Delete.
- (__arm_vhcaddq_rot270_s8): Delete.
- (__arm_vcaddq_rot90_s8): Delete.
- (__arm_vcaddq_rot270_s8): Delete.
- (__arm_vcaddq_rot90_u16): Delete.
- (__arm_vcaddq_rot270_u16): Delete.
- (__arm_vhcaddq_rot90_s16): Delete.
- (__arm_vhcaddq_rot270_s16): Delete.
- (__arm_vcaddq_rot90_s16): Delete.
- (__arm_vcaddq_rot270_s16): Delete.
- (__arm_vcaddq_rot90_u32): Delete.
- (__arm_vcaddq_rot270_u32): Delete.
- (__arm_vhcaddq_rot90_s32): Delete.
- (__arm_vhcaddq_rot270_s32): Delete.
- (__arm_vcaddq_rot90_s32): Delete.
- (__arm_vcaddq_rot270_s32): Delete.
- (__arm_vcaddq_rot270_m_s8): Delete.
- (__arm_vcaddq_rot270_m_s32): Delete.
- (__arm_vcaddq_rot270_m_s16): Delete.
- (__arm_vcaddq_rot270_m_u8): Delete.
- (__arm_vcaddq_rot270_m_u32): Delete.
- (__arm_vcaddq_rot270_m_u16): Delete.
- (__arm_vcaddq_rot90_m_s8): Delete.
- (__arm_vcaddq_rot90_m_s32): Delete.
- (__arm_vcaddq_rot90_m_s16): Delete.
- (__arm_vcaddq_rot90_m_u8): Delete.
- (__arm_vcaddq_rot90_m_u32): Delete.
- (__arm_vcaddq_rot90_m_u16): Delete.
- (__arm_vhcaddq_rot270_m_s8): Delete.
- (__arm_vhcaddq_rot270_m_s32): Delete.
- (__arm_vhcaddq_rot270_m_s16): Delete.
- (__arm_vhcaddq_rot90_m_s8): Delete.
- (__arm_vhcaddq_rot90_m_s32): Delete.
- (__arm_vhcaddq_rot90_m_s16): Delete.
- (__arm_vcaddq_rot90_x_s8): Delete.
- (__arm_vcaddq_rot90_x_s16): Delete.
- (__arm_vcaddq_rot90_x_s32): Delete.
- (__arm_vcaddq_rot90_x_u8): Delete.
- (__arm_vcaddq_rot90_x_u16): Delete.
- (__arm_vcaddq_rot90_x_u32): Delete.
- (__arm_vcaddq_rot270_x_s8): Delete.
- (__arm_vcaddq_rot270_x_s16): Delete.
- (__arm_vcaddq_rot270_x_s32): Delete.
- (__arm_vcaddq_rot270_x_u8): Delete.
- (__arm_vcaddq_rot270_x_u16): Delete.
- (__arm_vcaddq_rot270_x_u32): Delete.
- (__arm_vhcaddq_rot90_x_s8): Delete.
- (__arm_vhcaddq_rot90_x_s16): Delete.
- (__arm_vhcaddq_rot90_x_s32): Delete.
- (__arm_vhcaddq_rot270_x_s8): Delete.
- (__arm_vhcaddq_rot270_x_s16): Delete.
- (__arm_vhcaddq_rot270_x_s32): Delete.
- (__arm_vcaddq_rot90_f16): Delete.
- (__arm_vcaddq_rot270_f16): Delete.
- (__arm_vcaddq_rot90_f32): Delete.
- (__arm_vcaddq_rot270_f32): Delete.
- (__arm_vcaddq_rot270_m_f32): Delete.
- (__arm_vcaddq_rot270_m_f16): Delete.
- (__arm_vcaddq_rot90_m_f32): Delete.
- (__arm_vcaddq_rot90_m_f16): Delete.
- (__arm_vcaddq_rot90_x_f16): Delete.
- (__arm_vcaddq_rot90_x_f32): Delete.
- (__arm_vcaddq_rot270_x_f16): Delete.
- (__arm_vcaddq_rot270_x_f32): Delete.
- (__arm_vcaddq_rot90): Delete.
- (__arm_vcaddq_rot270): Delete.
- (__arm_vhcaddq_rot90): Delete.
- (__arm_vhcaddq_rot270): Delete.
- (__arm_vcaddq_rot270_m): Delete.
- (__arm_vcaddq_rot90_m): Delete.
- (__arm_vhcaddq_rot270_m): Delete.
- (__arm_vhcaddq_rot90_m): Delete.
- (__arm_vcaddq_rot90_x): Delete.
- (__arm_vcaddq_rot270_x): Delete.
- (__arm_vhcaddq_rot90_x): Delete.
- (__arm_vhcaddq_rot270_x): Delete.
-
-2023-07-14 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/arm_mve_builtins.def (vcaddq_rot90_, vcaddq_rot270_)
- (vcaddq_rot90_f, vcaddq_rot90_f): Add "_" or "_f" suffix.
- * config/arm/iterators.md (mve_insn): Add vcadd, vhcadd.
- (isu): Add UNSPEC_VCADD90, UNSPEC_VCADD270, VCADDQ_ROT270_M_U,
- VCADDQ_ROT270_M_S, VCADDQ_ROT90_M_U, VCADDQ_ROT90_M_S,
- VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S, VHCADDQ_ROT90_S,
- VHCADDQ_ROT270_S.
- (rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S, VCADDQ_ROT90_M_U,
- VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S, VCADDQ_ROT270_M_U,
- VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, VHCADDQ_ROT90_M_S,
- VHCADDQ_ROT270_M_S.
- (mve_rot): Add VCADDQ_ROT90_M_F, VCADDQ_ROT90_M_S,
- VCADDQ_ROT90_M_U, VCADDQ_ROT270_M_F, VCADDQ_ROT270_M_S,
- VCADDQ_ROT270_M_U, VHCADDQ_ROT90_S, VHCADDQ_ROT270_S,
- VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S.
- (supf): Add VHCADDQ_ROT90_M_S, VHCADDQ_ROT270_M_S,
- VHCADDQ_ROT90_S, VHCADDQ_ROT270_S, UNSPEC_VCADD90,
- UNSPEC_VCADD270.
- (VCADDQ_ROT270_M): Delete.
- (VCADDQ_M_F VxCADDQ VxCADDQ_M): New.
- (VCADDQ_ROT90_M): Delete.
- * config/arm/mve.md (mve_vcaddq<mve_rot><mode>)
- (mve_vhcaddq_rot270_s<mode>, mve_vhcaddq_rot90_s<mode>): Merge
- into ...
- (@mve_<mve_insn>q<mve_rot>_<supf><mode>): ... this.
- (mve_vcaddq<mve_rot><mode>): Rename into ...
- (@mve_<mve_insn>q<mve_rot>_f<mode>): ... this
- (mve_vcaddq_rot270_m_<supf><mode>)
- (mve_vcaddq_rot90_m_<supf><mode>, mve_vhcaddq_rot270_m_s<mode>)
- (mve_vhcaddq_rot90_m_s<mode>): Merge into ...
- (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): ... this.
- (mve_vcaddq_rot270_m_f<mode>, mve_vcaddq_rot90_m_f<mode>): Merge
- into ...
- (@mve_<mve_insn>q<mve_rot>_m_f<mode>): ... this.
-
-2023-07-14 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110588
- * config/i386/i386.md (*bt<mode>_setcqi): Prefer string form
- preparation statement over braces for a single statement.
- (*bt<mode>_setncqi): Likewise.
- (*bt<mode>_setncqi_2): New define_insn_and_split.
-
-2023-07-14 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_move): Generalize special
- case inserting of 64-bit values into a TImode register, to handle
- both DImode and DFmode using either *insvti_lowpart_1
- or *isnvti_highpart_1.
-
-2023-07-14 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/110206
- * fwprop.cc (contains_paradoxical_subreg_p): Move to ...
- * rtlanal.cc (contains_paradoxical_subreg_p): ... here.
- * rtlanal.h (contains_paradoxical_subreg_p): Add prototype.
- * cprop.cc (try_replace_reg): Do not set REG_EQUAL note
- when the original source contains a paradoxical subreg.
-
-2023-07-14 Jan Hubicka <jh@suse.cz>
-
- * passes.cc (execute_function_todo): Remove
- TODO_rebuild_frequencies
- * passes.def: Add rebuild_frequencies pass.
- * predict.cc (estimate_bb_frequencies): Drop
- force parameter.
- (tree_estimate_probability): Update call of
- estimate_bb_frequencies.
- (rebuild_frequencies): Turn into a pass; verify CFG profile consistency
- first and do not rebuild if not necessary.
- (class pass_rebuild_frequencies): New.
- (make_pass_rebuild_frequencies): New.
- * profile-count.h: Add profile_count::very_large_p.
- * tree-inline.cc (optimize_inline_calls): Do not return
- TODO_rebuild_frequencies
- * tree-pass.h (TODO_rebuild_frequencies): Remove.
- (make_pass_rebuild_frequencies): Declare.
-
-2023-07-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (cond_len_fma<mode>): New pattern.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (expand_cond_len_ternop): New function.
- * config/riscv/riscv-v.cc (emit_nonvlmax_fp_ternary_tu_insn): Ditto.
- (expand_cond_len_ternop): Ditto.
-
-2023-07-14 Jose E. Marchesi <jose.marchesi@oracle.com>
-
- PR target/110657
- * config/bpf/bpf.md: Enable instruction scheduling.
-
-2023-07-14 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * tree-if-conv.cc (INCLUDE_ALGORITHM): Include.
- (struct bb_predicate): Add no_predicate_stmts.
- (set_bb_predicate): Increase predicate count.
- (set_bb_predicate_gimplified_stmts): Conditionally initialize
- no_predicate_stmts.
- (get_bb_num_predicate_stmts): New.
- (init_bb_predicate): Initialzie no_predicate_stmts.
- (release_bb_predicate): Cleanup no_predicate_stmts.
- (insert_gimplified_predicates): Preserve no_predicate_stmts.
-
-2023-07-14 Tamar Christina <tamar.christina@arm.com>
-
- PR tree-optimization/109154
- * tree-if-conv.cc (gen_simplified_condition,
- gen_phi_nest_statement): New.
- (gen_phi_arg_condition, predicate_scalar_phi): Use it.
-
-2023-07-14 Richard Biener <rguenther@suse.de>
-
- * gimple.h (gimple_phi_arg): New const overload.
- (gimple_phi_arg_def): Make gimple arg const.
- (gimple_phi_arg_def_from_edge): New inline function.
- * tree-phinodes.h (gimple_phi_arg_imm_use_ptr_from_edge):
- Likewise.
- * tree-ssa-operands.h (PHI_ARG_DEF_FROM_EDGE): Direct to
- new inline function.
- (PHI_ARG_DEF_PTR_FROM_EDGE): Likewise.
-
-2023-07-14 Monk Chiang <monk.chiang@sifive.com>
-
- * common/config/riscv/riscv-common.cc:
- (riscv_implied_info): Add zihintntl item.
- (riscv_ext_version_table): Ditto.
- (riscv_ext_flag_table): Ditto.
- * config/riscv/riscv-opts.h (MASK_ZIHINTNTL): New macro.
- (TARGET_ZIHINTNTL): Ditto.
-
-2023-07-14 Die Li <lidie@eswincomputing.com>
-
- * config/riscv/riscv.md: Remove redundant portion in and<mode>3.
-
-2023-07-14 Oleg Endo <olegendo@gcc.gnu.org>
-
- PR target/101469
- * config/sh/sh.md (peephole2): Handle case where eliminated reg is also
- used by the address of the following memory operand.
-
-2023-07-13 Mikael Pettersson <mikpelinux@gmail.com>
-
- PR target/107841
- * config/pdp11/pdp11.cc (pdp11_expand_epilogue): Also
- deallocate alloca-only frame.
-
-2023-07-13 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/110624
- * config/darwin.h (DARWIN_PLATFORM_ID): New.
- (LINK_COMMAND_A): Use DARWIN_PLATFORM_ID to pass OS, OS version
- and SDK data to the static linker.
-
-2023-07-13 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/rs6000-builtins.def (__builtin_set_fpscr_rn): Update
- built-in definition return type.
- * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Add check,
- define __SET_FPSCR_RN_RETURNS_FPSCR__ macro.
- * config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Add return
- argument to return FPSCR fields.
- * doc/extend.texi (__builtin_set_fpscr_rn): Update description for
- the return value. Add description for
- __SET_FPSCR_RN_RETURNS_FPSCR__ macro.
-
-2023-07-13 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/106966
- * config/alpha/alpha.cc (alpha_emit_set_long_const):
- Always use DImode when constructing long const.
-
-2023-07-13 Uros Bizjak <ubizjak@gmail.com>
-
- * haifa-sched.cc: Change TRUE/FALSE to true/false.
- * ira.cc: Ditto.
- * lra-assigns.cc: Ditto.
- * lra-constraints.cc: Ditto.
- * sel-sched.cc: Ditto.
-
-2023-07-13 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110293
- PR tree-optimization/110539
- * match.pd: Expand the `x != (typeof x)(x == 0)`
- pattern to handle where the inner and outer comparsions
- are either `!=` or `==` and handle other constants
- than 0.
-
-2023-07-13 Vladimir N. Makarov <vmakarov@redhat.com>
-
- PR middle-end/109520
- * lra-int.h (lra_insn_recog_data): Add member asm_reloads_num.
- (lra_asm_insn_error): New prototype.
- * lra.cc: Include rtl_error.h.
- (lra_set_insn_recog_data): Initialize asm_reloads_num.
- (lra_asm_insn_error): New func whose code is taken from ...
- * lra-assigns.cc (lra_split_hard_reg_for): ... here. Use lra_asm_insn_error.
- * lra-constraints.cc (curr_insn_transform): Check reloads nummber for asm.
-
-2023-07-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * genmatch.cc (commutative_op): Add COND_LEN_*
- * internal-fn.cc (first_commutative_argument): Ditto.
- (CASE): Ditto.
- (get_unconditional_internal_fn): Ditto.
- (can_interpret_as_conditional_op_p): Ditto.
- (internal_fn_len_index): Ditto.
- * internal-fn.h (can_interpret_as_conditional_op_p): Ditt.
- * tree-ssa-math-opts.cc (convert_mult_to_fma_1): Ditto.
- (convert_mult_to_fma): Ditto.
- (math_opts_dom_walker::after_dom_children): Ditto.
-
-2023-07-13 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv.cc (vxrm_rtx): New static var.
- (frm_rtx): Ditto.
- (global_state_unknown_p): Removed.
- (riscv_entity_mode_after): Removed.
- (asm_insn_p): New function.
- (vxrm_unknown_p): New function for fixed-point.
- (riscv_vxrm_mode_after): Ditto.
- (frm_unknown_dynamic_p): New function for floating-point.
- (riscv_frm_mode_after): Ditto.
- (riscv_mode_after): Leverage new functions.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_load_cost): Remove.
- (vectorizable_load): Adjust the cost handling on VMAT_CONTIGUOUS without
- calling vect_model_load_cost.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_load_cost): Assert this function only
- handle memory_access_type VMAT_CONTIGUOUS, remove some
- VMAT_CONTIGUOUS_PERMUTE related handlings.
- (vectorizable_load): Adjust the cost handling on VMAT_CONTIGUOUS_PERMUTE
- without calling vect_model_load_cost.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_model_load_cost): Assert it won't get
- VMAT_CONTIGUOUS_REVERSE any more.
- (vectorizable_load): Adjust the costing handling on
- VMAT_CONTIGUOUS_REVERSE without calling vect_model_load_cost.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Adjust the cost handling on
- VMAT_LOAD_STORE_LANES without calling vect_model_load_cost.
- (vectorizable_load): Remove VMAT_LOAD_STORE_LANES related handling and
- assert it will never get VMAT_LOAD_STORE_LANES.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Adjust the cost handling on
- VMAT_GATHER_SCATTER without calling vect_model_load_cost.
- (vect_model_load_cost): Adjut the assertion on VMAT_GATHER_SCATTER,
- remove VMAT_GATHER_SCATTER related handlings and the related parameter
- gs_info.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Adjust the cost handling
- on VMAT_ELEMENTWISE and VMAT_STRIDED_SLP without calling
- vect_model_load_cost.
- (vect_model_load_cost): Assert it won't get VMAT_ELEMENTWISE and
- VMAT_STRIDED_SLP any more, and remove their related handlings.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (hoist_defs_of_uses): Add one argument HOIST_P.
- (vectorizable_load): Adjust the handling on VMAT_INVARIANT to respect
- hoisting decision and without calling vect_model_load_cost.
- (vect_model_load_cost): Assert it won't get VMAT_INVARIANT any more
- and remove VMAT_INVARIANT related handlings.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vect_build_gather_load_calls): Add the handlings
- on costing with one extra argument cost_vec.
- (vectorizable_load): Adjust the call to vect_build_gather_load_calls.
- (vect_model_load_cost): Assert it won't get VMAT_GATHER_SCATTER with
- gs_info.decl set any more.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-stmts.cc (vectorizable_load): Move and duplicate the call
- to vect_model_load_cost down to some different transform paths
- according to the handlings of different vect_memory_access_types.
-
-2023-07-13 Kewen Lin <linkw@linux.ibm.com>
-
- * tree.h (wi::from_mpz): Hide from GENERATOR_FILE.
-
-2023-07-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md
- (len_mask_gather_load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New pattern.
- (len_mask_gather_load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
- (len_mask_gather_load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
- (len_mask_gather_load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
- (len_mask_gather_load<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
- (len_mask_gather_load<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
- (len_mask_gather_load<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
- (len_mask_gather_load<mode><mode>): Ditto.
- (len_mask_scatter_store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
- (len_mask_scatter_store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
- (len_mask_scatter_store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
- (len_mask_scatter_store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
- (len_mask_scatter_store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
- (len_mask_scatter_store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
- (len_mask_scatter_store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
- (len_mask_scatter_store<mode><mode>): Ditto.
- * config/riscv/predicates.md (const_1_operand): New predicate.
- (vector_gs_scale_operand_16): Ditto.
- (vector_gs_scale_operand_32): Ditto.
- (vector_gs_scale_operand_64): Ditto.
- (vector_gs_extension_operand): Ditto.
- (vector_gs_scale_operand_16_rv32): Ditto.
- (vector_gs_scale_operand_32_rv32): Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): Add gather/scatter.
- (expand_gather_scatter): New function.
- * config/riscv/riscv-v.cc (gen_const_vector_dup): Add gather/scatter.
- (emit_vlmax_masked_store_insn): New function.
- (emit_nonvlmax_masked_store_insn): Ditto.
- (modulo_sel_indices): Ditto.
- (expand_vec_perm): Fix SLP for gather/scatter.
- (prepare_gather_scatter): New function.
- (expand_gather_scatter): Ditto.
- * config/riscv/riscv.cc (riscv_legitimize_move): Fix bug of
- (subreg:SI (DI CONST_POLY_INT)).
- * config/riscv/vector-iterators.md: Add gather/scatter.
- * config/riscv/vector.md (vec_duplicate<mode>): Use "@" instead.
- (@vec_duplicate<mode>): Ditto.
- (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>):
- Fix name.
- (@pred_indexed_<order>store<VNX16_QHSD:mode><VNX16_QHSDI:mode>): Ditto.
-
-2023-07-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (cond_len_<optab><mode>): New pattern.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (expand_cond_len_binop): New function.
- * config/riscv/riscv-v.cc (emit_nonvlmax_tu_insn): Ditto.
- (emit_nonvlmax_fp_tu_insn): Ditto.
- (need_fp_rounding_p): Ditto.
- (expand_cond_len_binop): Ditto.
- * config/riscv/riscv.cc (riscv_preferred_else_value): Ditto.
- (TARGET_PREFERRED_ELSE_VALUE): New target hook.
-
-2023-07-12 Jan Hubicka <jh@suse.cz>
-
- * tree-cfg.cc (gimple_duplicate_sese_region): Rename to ...
- (gimple_duplicate_seme_region): ... this; break out profile updating
- code to ...
- * tree-ssa-loop-ch.cc (update_profile_after_ch): ... here.
- (ch_base::copy_headers): Update.
- * tree-cfg.h (gimple_duplicate_sese_region): Rename to ...
- (gimple_duplicate_seme_region): ... this.
-
-2023-07-12 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/107043
- * range-op.cc (operator_bitwise_and::op1_range): Update bitmask.
-
-2023-07-12 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/107053
- * gimple-range-op.cc (cfn_popcount): Use known set bits.
-
-2023-07-12 Uros Bizjak <ubizjak@gmail.com>
-
- * ira.cc (equiv_init_varies_p): Change return type from int to bool
- and adjust function body accordingly.
- (equiv_init_movable_p): Ditto.
- (memref_used_between_p): Ditto.
- * lra-constraints.cc (valid_address_p): Ditto.
-
-2023-07-12 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (irange_to_masked_value): Remove.
- (update_known_bitmask): Update irange value/mask pair instead of
- only updating nonzero bits.
-
-2023-07-12 Jan Hubicka <jh@suse.cz>
-
- * tree-cfg.cc (gimple_duplicate_sese_region): Add ORIG_ELIMINATED_EDGES
- parameter and rewrite profile updating code to handle edges elimination.
- * tree-cfg.h (gimple_duplicate_sese_region): Update prototpe.
- * tree-ssa-loop-ch.cc (loop_invariant_op_p): New function.
- (loop_iv_derived_p): New function.
- (should_duplicate_loop_header_p): Track invariant exit edges; fix handling
- of PHIs and propagation of IV derived variables.
- (ch_base::copy_headers): Pass around the invariant edges hash set.
-
-2023-07-12 Uros Bizjak <ubizjak@gmail.com>
-
- * ifcvt.cc (cond_exec_changed_p): Change variable to bool.
- (last_active_insn): Change "skip_use_p" function argument to bool.
- (noce_operand_ok): Change return type from int to bool.
- (find_cond_trap): Ditto.
- (block_jumps_and_fallthru_p): Change "fallthru_p" and
- "jump_p" variables to bool.
- (noce_find_if_block): Change return type from int to bool.
- (cond_exec_find_if_block): Ditto.
- (find_if_case_1): Ditto.
- (find_if_case_2): Ditto.
- (dead_or_predicable): Ditto. Change "reversep" function arg to bool.
- (block_jumps_and_fallthru): Rename from block_jumps_and_fallthru_p.
- (cond_exec_process_insns): Change return type from int to bool.
- Change "mod_ok" function arg to bool.
- (cond_exec_process_if_block): Change return type from int to bool.
- Change "do_multiple_p" function arg to bool. Change "then_mod_ok"
- variable to bool.
- (noce_emit_store_flag): Change return type from int to bool.
- Change "reversep" function arg to bool. Change "cond_complex"
- variable to bool.
- (noce_try_move): Change return type from int to bool.
- (noce_try_ifelse_collapse): Ditto.
- (noce_try_store_flag): Ditto. Change "reversep" variable to bool.
- (noce_try_addcc): Change return type from int to bool. Change
- "subtract" variable to bool.
- (noce_try_store_flag_constants): Change return type from int to bool.
- (noce_try_store_flag_mask): Ditto. Change "reversep" variable to bool.
- (noce_try_cmove): Change return type from int to bool.
- (noce_try_cmove_arith): Ditto. Change "is_mem" variable to bool.
- (noce_try_minmax): Change return type from int to bool. Change
- "unsignedp" variable to bool.
- (noce_try_abs): Change return type from int to bool. Change
- "negate" variable to bool.
- (noce_try_sign_mask): Change return type from int to bool.
- (noce_try_move): Ditto.
- (noce_try_store_flag_constants): Ditto.
- (noce_try_cmove): Ditto.
- (noce_try_cmove_arith): Ditto.
- (noce_try_minmax): Ditto. Change "unsignedp" variable to bool.
- (noce_try_bitop): Change return type from int to bool.
- (noce_operand_ok): Ditto.
- (noce_convert_multiple_sets): Ditto.
- (noce_convert_multiple_sets_1): Ditto.
- (noce_process_if_block): Ditto.
- (check_cond_move_block): Ditto.
- (cond_move_process_if_block): Ditto. Change "success_p"
- variable to bool.
- (rest_of_handle_if_conversion): Change return type to void.
-
-2023-07-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.cc (FOR_EACH_CODE_MAPPING): Adapt for COND_LEN_* support.
- (CASE): Ditto.
- (get_conditional_len_internal_fn): New function.
- * internal-fn.h (get_conditional_len_internal_fn): Ditto.
- * tree-vect-stmts.cc (vectorizable_operation): Adapt for COND_LEN_*
- support.
-
-2023-07-12 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/91681
- * config/i386/i386.md (*add<dwi>3_doubleword_concat_zext): Typo.
-
-2023-07-12 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/91681
- * config/i386/i386.md (*add<dwi>3_doubleword_concat_zext): New
- define_insn_and_split derived from *add<dwi>3_doubleword_concat
- and *add<dwi>3_doubleword_zext.
-
-2023-07-12 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110598
- * config/i386/i386.md (peephole2): Check !reg_mentioned_p when
- optimizing rega = 0; rega op= regb for op in [XOR,IOR,PLUS].
- (peephole2): Simplify rega = 0; rega op= rega cases.
-
-2023-07-12 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_int_compare): If
- testing a TImode SUBREG of a 128-bit vector register against
- zero, use a PTEST instruction instead of first moving it to
- a pair of scalar registers.
-
-2023-07-12 Robin Dapp <rdapp@ventanamicro.com>
-
- * genopinit.cc (main): Adjust maximal number of optabs and
- machine modes.
- * gensupport.cc (find_optab): Shift optab by 20 and mode by
- 10 bits.
- * optabs-query.h (optab_handler): Ditto.
- (convert_optab_handler): Ditto.
-
-2023-07-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110630
- * tree-vect-slp.cc (vect_add_slp_permutation): New
- offset parameter, honor that for the extract code generation.
- (vectorizable_slp_permutation_1): Handle offsetted identities.
-
-2023-07-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (smul<mode>3_highpart): New pattern.
- (umul<mode>3_highpart): Ditto.
-
-2023-07-12 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386.md (extendbfsf2_1): Add new AVX512F
- alternative. Adjust original last alternative's "prefix"
- attribute to maybe_evex.
-
-2023-07-12 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (vec_dupv4sf): Make first alternative use
- vbroadcastss for AVX2. New AVX512F alternative.
- (*vec_dupv4si): New AVX2 and AVX512F alternatives using
- vpbroadcastd. Replace sselog1 by sseshuf1 in "type" attribute.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/peephole.md: Remove XThead* peephole passes.
- * config/riscv/thead.md: Include thead-peephole.md.
- * config/riscv/thead-peephole.md: New file.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv-protos.h (riscv_regno_ok_for_index_p):
- New prototype.
- (riscv_index_reg_class): Likewise.
- * config/riscv/riscv.cc (riscv_regno_ok_for_index_p): New function.
- (riscv_index_reg_class): New function.
- * config/riscv/riscv.h (INDEX_REG_CLASS): Call new function
- riscv_index_reg_class().
- (REGNO_OK_FOR_INDEX_P): Call new function
- riscv_regno_ok_for_index_p().
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv-protos.h (enum riscv_address_type):
- New location of type definition.
- (struct riscv_address_info): Likewise.
- * config/riscv/riscv.cc (enum riscv_address_type):
- Old location of type definition.
- (struct riscv_address_info): Likewise.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.h (Xmode): New macro.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.cc (riscv_print_operand_address): Use
- output_addr_const rather than riscv_print_operand.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/thead.md: Adjust constraints of th_addsl.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/thead.cc (th_mempair_operands_p):
- Fix documentation of th_mempair_order_operands().
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/thead.cc (th_mempair_save_regs):
- Emit REG_FRAME_RELATED_EXPR notes in prologue.
-
-2023-07-12 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.md: No base-ISA extension splitter for XThead*.
- * config/riscv/thead.md (*extend<SHORT:mode><SUPERQI:mode>2_th_ext):
- New XThead extension INSN.
- (*zero_extendsidi2_th_extu): New XThead extension INSN.
- (*zero_extendhi<GPR:mode>2_th_extu): New XThead extension INSN.
-
-2023-07-12 liuhongt <hongtao.liu@intel.com>
-
- PR target/110438
- PR target/110202
- * config/i386/predicates.md
- (int_float_vector_all_ones_operand): New predicate.
- * config/i386/sse.md (*vmov<mode>_constm1_pternlog_false_dep): New
- define_insn.
- (*<avx512>_cvtmask2<ssemodesuffix><mode>_pternlog_false_dep):
- Ditto.
- (*<avx512>_cvtmask2<ssemodesuffix><mode>_pternlog_false_dep):
- Ditto.
- (*<avx512>_cvtmask2<ssemodesuffix><mode>): Adjust to
- define_insn_and_split to avoid false dependence.
- (*<avx512>_cvtmask2<ssemodesuffix><mode>): Ditto.
- (<mask_codefor>one_cmpl<mode>2<mask_name>): Adjust constraint
- of operands 1 to '0' to avoid false dependence.
- (*andnot<mode>3): Ditto.
- (iornot<mode>3): Ditto.
- (*<nlogic><mode>3): Ditto.
-
-2023-07-12 Mo, Zewei <zewei.mo@intel.com>
-
- * common/config/i386/cpuinfo.h
- (get_intel_cpu): Handle Granite Rapids D.
- * common/config/i386/i386-common.cc:
- (processor_alias_table): Add graniterapids-d.
- * common/config/i386/i386-cpuinfo.h
- (enum processor_subtypes): Add INTEL_COREI7_GRANITERAPIDS_D.
- * config.gcc: Add -march=graniterapids-d.
- * config/i386/driver-i386.cc (host_detect_local_cpu):
- Handle graniterapids-d.
- * config/i386/i386.h: (PTA_GRANITERAPIDS_D): New.
- * doc/extend.texi: Add graniterapids-d.
- * doc/invoke.texi: Ditto.
-
-2023-07-12 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
- Add OPTION_MASK_ISA_AVX512VL.
- * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
- Ditto.
-
-2023-07-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum insn_type): Add vcompress optimization.
- * config/riscv/riscv-v.cc (emit_vlmax_compress_insn): Ditto.
- (shuffle_compress_patterns): Ditto.
- (expand_vec_perm_const_1): Ditto.
-
-2023-07-11 Uros Bizjak <ubizjak@gmail.com>
-
- * cfghooks.cc (verify_flow_info): Change "err" variable to bool.
- * cfghooks.h (struct cfg_hooks): Change return type of
- verify_flow_info from integer to bool.
- * cfgrtl.cc (can_delete_note_p): Change return type from int to bool.
- (can_delete_label_p): Ditto.
- (rtl_verify_flow_info): Change return type from int to bool
- and adjust function body accordingly. Change "err" variable to bool.
- (rtl_verify_flow_info_1): Ditto.
- (free_bb_for_insn): Change return type to void.
- (rtl_merge_blocks): Change "b_empty" variable to bool.
- (try_redirect_by_replacing_jump): Change "fallthru" variable to bool.
- (verify_hot_cold_block_grouping): Change return type from int to bool.
- Change "err" variable to bool.
- (rtl_verify_edges): Ditto.
- (rtl_verify_bb_insns): Ditto.
- (rtl_verify_bb_pointers): Ditto.
- (rtl_verify_bb_insn_chain): Ditto.
- (rtl_verify_fallthru): Ditto.
- (rtl_verify_bb_layout): Ditto.
- (purge_all_dead_edges): Change "purged" variable to bool.
- * cfgrtl.h (free_bb_for_insn): Change return type from int to void.
- * postreload-gcse.cc (expr_hasher::equal): Change "equiv_p" to bool.
- (load_killed_in_block_p): Change return type from int to bool
- and adjust function body accordingly.
- (oprs_unchanged_p): Return true/false.
- (rest_of_handle_gcse2): Change return type to void.
- * tree-cfg.cc (gimple_verify_flow_info): Change return type from
- int to bool. Change "err" variable to bool.
-
-2023-07-11 Gaius Mulley <gaiusmod2@gmail.com>
-
- * doc/gm2.texi (-Wuninit-variable-checking=) New item.
-
-2023-07-11 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * doc/md.texi: Add COND_LEN_* operations for loop control with length.
- * internal-fn.cc (cond_len_unary_direct): Ditto.
- (cond_len_binary_direct): Ditto.
- (cond_len_ternary_direct): Ditto.
- (expand_cond_len_unary_optab_fn): Ditto.
- (expand_cond_len_binary_optab_fn): Ditto.
- (expand_cond_len_ternary_optab_fn): Ditto.
- (direct_cond_len_unary_optab_supported_p): Ditto.
- (direct_cond_len_binary_optab_supported_p): Ditto.
- (direct_cond_len_ternary_optab_supported_p): Ditto.
- * internal-fn.def (COND_LEN_ADD): Ditto.
- (COND_LEN_SUB): Ditto.
- (COND_LEN_MUL): Ditto.
- (COND_LEN_DIV): Ditto.
- (COND_LEN_MOD): Ditto.
- (COND_LEN_RDIV): Ditto.
- (COND_LEN_MIN): Ditto.
- (COND_LEN_MAX): Ditto.
- (COND_LEN_FMIN): Ditto.
- (COND_LEN_FMAX): Ditto.
- (COND_LEN_AND): Ditto.
- (COND_LEN_IOR): Ditto.
- (COND_LEN_XOR): Ditto.
- (COND_LEN_SHL): Ditto.
- (COND_LEN_SHR): Ditto.
- (COND_LEN_FMA): Ditto.
- (COND_LEN_FMS): Ditto.
- (COND_LEN_FNMA): Ditto.
- (COND_LEN_FNMS): Ditto.
- (COND_LEN_NEG): Ditto.
- * optabs.def (OPTAB_D): Ditto.
-
-2023-07-11 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110614
- * tree-vect-data-refs.cc (vect_supportable_dr_alignment):
- SLP splats are not suitable for re-align ops.
-
-2023-07-10 Peter Bergner <bergner@linux.ibm.com>
-
- * config/rs6000/predicates.md (quad_memory_operand): Remove redundant
- MEM_P usage.
- (vsx_quad_dform_memory_operand): Likewise.
-
-2023-07-10 Uros Bizjak <ubizjak@gmail.com>
-
- * reorg.cc (stop_search_p): Change return type from int to bool
- and adjust function body accordingly.
- (resource_conflicts_p): Ditto.
- (insn_references_resource_p): Change return type from int to bool.
- (insn_sets_resource_p): Ditto.
- (redirect_with_delay_slots_safe_p): Ditto.
- (condition_dominates_p): Change return type from int to bool
- and adjust function body accordingly.
- (redirect_with_delay_list_safe_p): Ditto.
- (check_annul_list_true_false): Ditto. Change "annul_true_p"
- function argument to bool.
- (steal_delay_list_from_target): Change "pannul_p" function
- argument to bool pointer. Change "must_annul" and "used_annul"
- variables from int to bool.
- (steal_delay_list_from_fallthrough): Ditto.
- (own_thread_p): Change return type from int to bool and adjust
- function body accordingly. Change "allow_fallthrough" function
- argument to bool.
- (reorg_redirect_jump): Change return type from int to bool.
- (fill_simple_delay_slots): Change "non_jumps_p" function
- argument from int to bool. Change "maybe_never" varible to bool.
- (fill_slots_from_thread): Change "likely", "thread_if_true" and
- "own_thread" function arguments to bool. Change "lose" and
- "must_annul" variables to bool.
- (delete_from_delay_slot): Change "had_barrier" variable to bool.
- (try_merge_delay_insns): Change "annul_p" variable to bool.
- (fill_eager_delay_slots): Change "own_target" and "own_fallthrouhg"
- variables to bool.
- (rest_of_handle_delay_slots): Change return type from int to void
- and adjust function body accordingly.
-
-2023-07-10 Kito Cheng <kito.cheng@sifive.com>
-
- * doc/extend.texi (RISC-V Operand Modifiers): New.
-
-2023-07-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (add_label_notes): Remove it.
- (insert_insn_end_basic_block): Ditto.
- (pass_vsetvl::commit_vsetvls): Adapt for new helper function.
- * gcse.cc (insert_insn_end_basic_block): Export as global function.
- * gcse.h (insert_insn_end_basic_block): Ditto.
-
-2023-07-10 Christophe Lyon <christophe.lyon@linaro.org>
-
- PR target/110268
- * config/arm/arm-builtins.cc (arm_init_mve_builtins): Handle LTO.
- (arm_builtin_decl): Hahndle MVE builtins.
- * config/arm/arm-mve-builtins.cc (builtin_decl): New function.
- (add_unique_function): Fix handling of
- __ARM_MVE_PRESERVE_USER_NAMESPACE.
- (add_overloaded_function): Likewise.
- * config/arm/arm-protos.h (builtin_decl): New declaration.
-
-2023-07-10 Christophe Lyon <christophe.lyon@linaro.org>
-
- * doc/sourcebuild.texi (arm_v8_1m_main_cde_mve_fp): Document.
-
-2023-07-10 Xi Ruoyao <xry111@xry111.site>
-
- PR tree-optimization/110557
- * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern):
- Ensure the output sign-extended if necessary.
-
-2023-07-10 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (peephole2): Transform xchg insn with a
- REG_UNUSED note to a (simple) move.
- (*insvti_lowpart_1): New define_insn_and_split.
- (*insvdi_lowpart_1): Likewise.
-
-2023-07-10 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-features.cc (compute_convert_gain): Tweak
- gains/costs for ROTATE/ROTATERT by integer constant on AVX512VL.
- (general_scalar_chain::convert_rotate): On TARGET_AVX512F generate
- avx512vl_rolv2di or avx412vl_rolv4si when appropriate.
-
-2023-07-10 liuhongt <hongtao.liu@intel.com>
-
- PR target/110170
- * config/i386/i386.md (*ieee_max<mode>3_1): New pre_reload
- splitter to detect fp max pattern.
- (*ieee_min<mode>3_1): Ditto, but for fp min pattern.
-
-2023-07-09 Jan Hubicka <jh@suse.cz>
-
- * cfg.cc (check_bb_profile): Dump counts with relative frequency.
- (dump_edge_info): Likewise.
- (dump_bb_info): Likewise.
- * profile-count.cc (profile_count::dump): Add comma between quality and
- freq.
-
-2023-07-08 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/110600
- * cfgloopmanip.cc (scale_loop_profile): Add mising profile_dump check.
-
-2023-07-08 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/110590
- * cfgloopmanip.cc (scale_loop_profile): Avoid scaling exits within
- inner loops and be more careful about inconsistent profiles.
- (duplicate_loop_body_to_header_edge): Fix profile update when eliminated
- exit is followed by other exit.
-
-2023-07-08 Uros Bizjak <ubizjak@gmail.com>
-
- * cprop.cc (reg_available_p): Change return type from int to bool.
- (reg_not_set_p): Ditto.
- (try_replace_reg): Ditto. Change "success" variable to bool.
- (cprop_jump): Change return type from int to void
- and adjust function body accordingly.
- (constprop_register): Ditto.
- (cprop_insn): Ditto. Change "changed" variable to bool.
- (local_cprop_pass): Change return type from int to void
- and adjust function body accordingly.
- (bypass_block): Ditto. Change "change", "may_be_loop_header"
- and "removed_p" variables to bool.
- (bypass_conditional_jumps): Change return type from int to void
- and adjust function body accordingly. Change "changed"
- variable to bool.
- (one_cprop_pass): Ditto.
-
-2023-07-08 Uros Bizjak <ubizjak@gmail.com>
-
- * gcse.cc (expr_equiv_p): Change return type from int to bool.
- (oprs_unchanged_p): Change return type from int to void
- and adjust function body accordingly.
- (oprs_anticipatable_p): Ditto.
- (oprs_available_p): Ditto.
- (insert_expr_in_table): Ditto. Change "antic_p" and "avail_p"
- arguments to bool. Change "found" variable to bool.
- (load_killed_in_block_p): Change return type from int to void and
- adjust function body accordingly. Change "avail_p" argument to bool.
- (pre_expr_reaches_here_p): Change return type from int to void
- and adjust function body accordingly.
- (pre_delete): Ditto. Change "changed" variable to bool.
- (pre_gcse): Change return type from int to void
- and adjust function body accordingly. Change "did_insert" and
- "changed" variables to bool.
- (one_pre_gcse_pass): Change return type from int to void
- and adjust function body accordingly. Change "changed" variable
- to bool.
- (should_hoist_expr_to_dom): Change return type from int to void
- and adjust function body accordingly. Change
- "visited_allocated_locally" variable to bool.
- (hoist_code): Change return type from int to void and adjust
- function body accordingly. Change "changed" variable to bool.
- (one_code_hoisting_pass): Ditto.
- (pre_edge_insert): Change return type from int to void and adjust
- function body accordingly. Change "did_insert" variable to bool.
- (pre_expr_reaches_here_p_work): Change return type from int to void
- and adjust function body accordingly.
- (simple_mem): Ditto.
- (want_to_gcse_p): Change return type from int to void
- and adjust function body accordingly.
- (can_assign_to_reg_without_clobbers_p): Update function body
- for bool return type.
- (hash_scan_set): Change "antic_p" and "avail_p" variables to bool.
- (pre_insert_copies): Change "added_copy" variable to bool.
-
-2023-07-08 Jonathan Wakely <jwakely@redhat.com>
-
- PR c++/110595
- PR c++/110596
- * doc/invoke.texi (Warning Options): Fix typos.
-
-2023-07-07 Jan Hubicka <jh@suse.cz>
-
- * profile-count.cc (profile_count::dump): Add FUN
- parameter; print relative frequency.
- (profile_count::debug): Update.
- * profile-count.h (profile_count::dump): Update
- prototype.
-
-2023-07-07 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/43644
- PR target/110533
- * config/i386/i386-expand.cc (ix86_expand_move): Convert SETs of
- TImode destinations from paradoxical SUBREGs (setting the lowpart)
- into explicit zero extensions. Use *insvti_highpart_1 instruction
- to set the highpart of a TImode destination.
-
-2023-07-07 Jan Hubicka <jh@suse.cz>
-
- * predict.cc (force_edge_cold): Use
- set_edge_probability_and_rescale_others; improve dumps.
-
-2023-07-07 Jan Hubicka <jh@suse.cz>
-
- * cfgloopmanip.cc (scale_loop_profile): Fix computation of count_in and scaling blocks
- after exit.
- * tree-vect-loop-manip.cc (vect_do_peeling): Scale loop profile of the epilogue if bound
- is known.
-
-2023-07-07 Juergen Christ <jchrist@linux.ibm.com>
-
- * config/s390/s390.cc (vec_init): Fix default case
-
-2023-07-07 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-assigns.cc (assign_by_spills): Add reload insns involving
- reload pseudos with non-refined class to be processed on the next
- sub-pass.
- * lra-constraints.cc (enough_allocatable_hard_regs_p): New func.
- (in_class_p): Use it.
- (print_curr_insn_alt): New func.
- (process_alt_operands): Use it. Improve debug info.
- (curr_insn_transform): Use print_curr_insn_alt. Refine reload
- pseudo class if it is not refined yet.
-
-2023-07-07 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::get_bitmask_from_range): Return all the
- known bits for a singleton.
- (irange::set_range_from_bitmask): Set a range of a singleton when
- all bits are known.
-
-2023-07-07 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::intersect): Leave normalization to
- caller.
-
-2023-07-07 Aldy Hernandez <aldyh@redhat.com>
-
- * data-streamer-in.cc (streamer_read_value_range): Adjust for
- value/mask.
- * data-streamer-out.cc (streamer_write_vrange): Same.
- * range-op.cc (operator_cast::fold_range): Same.
- * value-range-pretty-print.cc
- (vrange_printer::print_irange_bitmasks): Same.
- * value-range-storage.cc (irange_storage::write_lengths_address):
- Same.
- (irange_storage::set_irange): Same.
- (irange_storage::get_irange): Same.
- (irange_storage::size): Same.
- (irange_storage::dump): Same.
- * value-range-storage.h: Same.
- * value-range.cc (debug): New.
- (irange_bitmask::dump): New.
- (add_vrange): Adjust for value/mask.
- (irange::operator=): Same.
- (irange::set): Same.
- (irange::verify_range): Same.
- (irange::operator==): Same.
- (irange::contains_p): Same.
- (irange::irange_single_pair_union): Same.
- (irange::union_): Same.
- (irange::intersect): Same.
- (irange::invert): Same.
- (irange::get_nonzero_bits_from_range): Rename to...
- (irange::get_bitmask_from_range): ...this.
- (irange::set_range_from_nonzero_bits): Rename to...
- (irange::set_range_from_bitmask): ...this.
- (irange::set_nonzero_bits): Rename to...
- (irange::update_bitmask): ...this.
- (irange::get_nonzero_bits): Rename to...
- (irange::get_bitmask): ...this.
- (irange::intersect_nonzero_bits): Rename to...
- (irange::intersect_bitmask): ...this.
- (irange::union_nonzero_bits): Rename to...
- (irange::union_bitmask): ...this.
- (irange_bitmask::verify_mask): New.
- * value-range.h (class irange_bitmask): New.
- (irange_bitmask::set_unknown): New.
- (irange_bitmask::unknown_p): New.
- (irange_bitmask::irange_bitmask): New.
- (irange_bitmask::get_precision): New.
- (irange_bitmask::get_nonzero_bits): New.
- (irange_bitmask::set_nonzero_bits): New.
- (irange_bitmask::operator==): New.
- (irange_bitmask::union_): New.
- (irange_bitmask::intersect): New.
- (class irange): Friend vrange_printer.
- (irange::varying_compatible_p): Adjust for bitmask.
- (irange::set_varying): Same.
- (irange::set_nonzero): Same.
-
-2023-07-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (*vec_extractv2ti): Drop g modifiers.
-
-2023-07-07 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (@vec_extract_hi_<mode>): Drop last
- alternative. Switch new last alternative's "isa" attribute to
- "avx512vl".
- (vec_extract_hi_v32qi): Likewise.
-
-2023-07-07 Pan Li <pan2.li@intel.com>
- Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_emit_mode_set): Avoid emit insn
- when FRM_MODE_DYN.
- (riscv_mode_entry): Take FRM_MODE_DYN as entry mode.
- (riscv_mode_exit): Likewise for exit mode.
- (riscv_mode_needed): Likewise for needed mode.
- (riscv_mode_after): Likewise for after mode.
-
-2023-07-07 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Fix typo.
-
-2023-07-06 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/25623
- * tree-ssa-loop-ch.cc (ch_base::copy_headers): Scale loop frequency to maximal number
- of iterations determined.
- * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Likewise.
-
-2023-07-06 Jan Hubicka <jh@suse.cz>
-
- * cfgloopmanip.cc (scale_loop_profile): Rewrite exit edge
- probability update to be safe on loops with subloops.
- Make bound parameter to be iteration bound.
- * tree-ssa-loop-ivcanon.cc (try_peel_loop): Update call
- of scale_loop_profile.
- * tree-vect-loop-manip.cc (vect_do_peeling): Likewise.
-
-2023-07-06 Hao Liu OS <hliu@os.amperecomputing.com>
-
- PR tree-optimization/110449
- * tree-vect-loop.cc (vectorizable_induction): use vec_n to replace
- vec_loop for the unrolled loop.
-
-2023-07-06 Jan Hubicka <jh@suse.cz>
-
- * cfg.cc (set_edge_probability_and_rescale_others): New function.
- (update_bb_profile_for_threading): Use it; simplify the rest.
- * cfg.h (set_edge_probability_and_rescale_others): Declare.
- * profile-count.h (profile_probability::apply_scale): New.
-
-2023-07-06 Claudiu Zissulescu <claziss@gmail.com>
-
- * doc/extend.texi (ARC Built-in Functions): Update documentation
- with missing builtins.
-
-2023-07-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110556
- * tree-ssa-tail-merge.cc (gimple_equal_p): Check
- assign code and all operands of non-stores.
-
-2023-07-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110563
- * tree-vectorizer.h (vect_determine_partial_vectors_and_peeling):
- Remove second argument.
- * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
- Remove for_epilogue_p argument. Merge assert ...
- (vect_analyze_loop_2): ... with check done before determining
- partial vectors by moving it after.
- * tree-vect-loop-manip.cc (vect_do_peeling): Adjust.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * ggc-common.cc (gt_pch_note_reorder, gt_pch_save): Tighten up a
- few things re 'reorder' option and strings.
- * stringpool.cc (gt_pch_p_S): This is now 'gcc_unreachable'.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * gengtype-parse.cc: Clean up obsolete parametrized structs
- remnants.
- * gengtype.cc: Likewise.
- * gengtype.h: Likewise.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * gengtype.cc (struct walk_type_data): Remove 'needs_cast_p'.
- Adjust all users.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * gengtype-parse.cc (token_names): Add '"user"'.
- * gengtype.h (gty_token): Add 'UNUSED_PARAM_IS' for use with
- 'FIRST_TOKEN_WITH_VALUE'.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * doc/gty.texi (GTY Options) <string_length>: Enhance.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * gengtype.cc (write_root, write_roots): Explicitly reject
- 'string_length' option.
- * doc/gty.texi (GTY Options) <string_length>: Document.
-
-2023-07-06 Thomas Schwinge <thomas@codesourcery.com>
-
- * ggc-internal.h (ggc_pch_count_object, ggc_pch_alloc_object)
- (ggc_pch_write_object): Remove 'bool is_string' argument.
- * ggc-common.cc: Adjust.
- * ggc-page.cc: Likewise.
-
-2023-07-06 Roger Sayle <roger@nextmovesoftware.com>
-
- * dwarf2out.cc (mem_loc_descriptor): Handle COPYSIGN.
-
-2023-07-06 Hongyu Wang <hongyu.wang@intel.com>
-
- * doc/extend.texi: Move x86 inlining rule to a new subsubsection
- and add description for inling of function with arch and tune
- attributes.
-
-2023-07-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110515
- * tree-ssa-pre.cc (compute_avail): Make code dealing
- with hoisting loads with different alias-sets more
- robust.
-
-2023-07-06 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Fix ICE.
-
-2023-07-06 Hongyu Wang <hongyu.wang@intel.com>
-
- * config/i386/i386.cc (ix86_can_inline_p): If callee has
- default arch=x86-64 and tune=generic, do not block the
- inlining to its caller. Also allow callee with different
- arch= to be inlined if it has always_inline attribute and
- it's ISA is subset of caller's.
-
-2023-07-06 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for
- DF/SFmode AND/IOR/XOR/ANDN operations.
-
-2023-07-06 Andrew Pinski <apinski@marvell.com>
-
- PR middle-end/110554
- * tree-vect-generic.cc (expand_vector_condition): For comparisons,
- just build using boolean_type_node instead of the cond_type.
- For non-comparisons/non-scalar-bitmask, build a ` != 0` gimple
- that will feed into the COND_EXPR.
-
-2023-07-06 liuhongt <hongtao.liu@intel.com>
-
- PR target/110170
- * config/i386/i386.md (movdf_internal): Disparage slightly for
- 2 alternatives (r,v) and (v,r) by adding constraint modifier
- '?'.
-
-2023-07-06 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
-
- PR target/106907
- * config/rs6000/rs6000.cc (rs6000_expand_vector_extract): Remove redundant
- initialization of new_addr.
-
-2023-07-06 Hao Liu <hliu@os.amperecomputing.com>
-
- PR tree-optimization/110474
- * tree-vect-loop.cc (vect_analyze_loop_2): unscale the VF by suggested
- unroll factor while selecting the epilog vect loop VF.
-
-2023-07-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (compute_operand_range): Convert to a tail
- call.
-
-2023-07-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (compute_operand_range): After calling
- compute_operand2_range, recursively call self if needed.
- (compute_operand2_range): Turn into a leaf function.
- (gori_compute::compute_operand1_and_operand2_range): Finish
- operand2 calculation.
- * gimple-range-gori.h (compute_operand2_range): Remove name param.
-
-2023-07-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (compute_operand_range): After calling
- compute_operand1_range, recursively call self if needed.
- (compute_operand1_range): Turn into a leaf function.
- (gori_compute::compute_operand1_and_operand2_range): Finish
- operand1 calculation.
- * gimple-range-gori.h (compute_operand1_range): Remove name param.
-
-2023-07-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (compute_operand_range): Check for
- operand interdependence when both op1 and op2 are computed.
- (compute_operand1_and_operand2_range): No checks required now.
-
-2023-07-05 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (compute_operand_range): Check for
- a relation between op1 and op2 and use that instead.
- (compute_operand1_range): Don't look for a relation override.
- (compute_operand2_range): Ditto.
-
-2023-07-05 Jonathan Wakely <jwakely@redhat.com>
-
- * doc/contrib.texi (Contributors): Update my entry.
-
-2023-07-05 Filip Kastl <filip.kastl@gmail.com>
-
- * value-prof.cc (gimple_mod_subtract_transform): Correct edge
- prob calculation.
-
-2023-07-05 Uros Bizjak <ubizjak@gmail.com>
-
- * sched-int.h (struct haifa_sched_info): Change can_schedule_ready_p,
- scehdule_more_p and contributes_to_priority indirect frunction
- type from int to bool.
- (no_real_insns_p): Change return type from int to bool.
- (contributes_to_priority): Ditto.
- * haifa-sched.cc (no_real_insns_p): Change return type from
- int to bool and adjust function body accordingly.
- * modulo-sched.cc (try_scheduling_node_in_cycle): Change "success"
- variable type from int to bool.
- (ps_insn_advance_column): Change return type from int to bool.
- (ps_has_conflicts): Ditto. Change "has_conflicts"
- variable type from int to bool.
- * sched-deps.cc (deps_may_trap_p): Change return type from int to bool.
- (conditions_mutex_p): Ditto.
- * sched-ebb.cc (schedule_more_p): Ditto.
- (ebb_contributes_to_priority): Change return type from
- int to bool and adjust function body accordingly.
- * sched-rgn.cc (is_cfg_nonregular): Ditto.
- (check_live_1): Ditto.
- (is_pfree): Ditto.
- (find_conditional_protection): Ditto.
- (is_conditionally_protected): Ditto.
- (is_prisky): Ditto.
- (is_exception_free): Ditto.
- (haifa_find_rgns): Change "unreachable" and "too_large_failure"
- variables from int to bool.
- (extend_rgns): Change "rescan" variable from int to bool.
- (check_live): Change return type from
- int to bool and adjust function body accordingly.
- (can_schedule_ready_p): Ditto.
- (schedule_more_p): Ditto.
- (contributes_to_priority): Ditto.
-
-2023-07-05 Robin Dapp <rdapp@ventanamicro.com>
-
- * doc/md.texi: Document that vec_set and vec_extract must not
- fail.
- * gimple-isel.cc (gimple_expand_vec_set_expr): Rename this...
- (gimple_expand_vec_set_extract_expr): ...to this.
- (gimple_expand_vec_exprs): Call renamed function.
- * internal-fn.cc (vec_extract_direct): Add.
- (expand_vec_extract_optab_fn): New function to expand
- vec_extract optab.
- (direct_vec_extract_optab_supported_p): Add.
- * internal-fn.def (VEC_EXTRACT): Add.
- * optabs.cc (can_vec_extract_var_idx_p): New function.
- * optabs.h (can_vec_extract_var_idx_p): Declare.
-
-2023-07-05 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md: Add gen_lowpart.
-
-2023-07-05 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md: Allow register index operand.
-
-2023-07-05 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_exact_insn): Use FRM_DYN instead of const0.
-
-2023-07-05 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md: Use float_truncate.
-
-2023-07-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.cc (internal_fn_len_index): Apply
- LEN_MASK_GATHER_LOAD/SCATTER_STORE into vectorizer.
- (internal_fn_mask_index): Ditto.
- * optabs-query.cc (supports_vec_gather_load_p): Ditto.
- (supports_vec_scatter_store_p): Ditto.
- * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Ditto.
- * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Ditto.
- * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
- (vect_get_strided_load_store_ops): Ditto.
- (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
-
-2023-07-05 Robin Dapp <rdapp@ventanamicro.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * simplify-rtx.cc (native_encode_rtx): Ditto.
- (native_decode_vector_rtx): Ditto.
- (simplify_const_vector_byte_offset): Ditto.
- (simplify_const_vector_subreg): Ditto.
- * tree.cc (build_truth_vector_type_for_mode): Ditto.
- * varasm.cc (output_constant_pool_2): Ditto.
-
-2023-07-05 YunQiang Su <yunqiang.su@cipunited.com>
-
- * config/mips/mips.cc (mips_expand_block_move): don't expand for
- r6 with -mno-unaligned-access option if one or both of src and
- dest are unaligned. restruct: return directly if length is not const.
- (mips_block_move_straight): emit_move if ISA_HAS_UNALIGNED_ACCESS.
-
-2023-07-05 Jan Beulich <jbeulich@suse.com>
-
- PR target/100711
- * config/i386/sse.md: New splitters to simplify
- not;vec_duplicate as a singular vpternlog.
- (one_cmpl<mode>2): Allow broadcast for operand 1.
- (<mask_codefor>one_cmpl<mode>2<mask_name>): Likewise.
-
-2023-07-05 Jan Beulich <jbeulich@suse.com>
-
- PR target/100711
- * config/i386/sse.md: New splitters to simplify
- not;vec_duplicate;{ior,xor} as vec_duplicate;{iornot,xnor}.
-
-2023-07-05 Jan Beulich <jbeulich@suse.com>
-
- PR target/100711
- * config/i386/sse.md: Permit non-immediate operand 1 in AVX2
- form of splitter for PR target/100711.
-
-2023-07-05 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110541
- * tree.def (VEC_PERM_EXPR): Adjust documentation to reflect
- reality.
-
-2023-07-05 Jan Beulich <jbeulich@suse.com>
-
- PR target/93768
- * config/i386/sse.md (*andnot<mode>3): Add new alternatives
- for memory form operand 1.
-
-2023-07-05 Jan Beulich <jbeulich@suse.com>
-
- PR target/93768
- * config/i386/i386.cc (ix86_rtx_costs): Further special-case
- bitwise vector operations.
- * config/i386/sse.md (*iornot<mode>3): New insn.
- (*xnor<mode>3): Likewise.
- (*<nlogic><mode>3): Likewise.
- (andor): New code iterator.
- (nlogic): New code attribute.
- (ternlog_nlogic): Likewise.
-
-2023-07-05 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vect_mark_relevant): Fix typo.
-
-2023-07-05 yulong <shiyulong@iscas.ac.cn>
-
- * config/riscv/vector.md: Add float16 attr at sew、vlmul and ratio.
-
-2023-07-05 yulong <shiyulong@iscas.ac.cn>
-
- * config/riscv/genrvv-type-indexer.cc (valid_type): Enable FP16 tuple.
- * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
- (ADJUST_ALIGNMENT): Ditto.
- (RVV_TUPLE_PARTIAL_MODES): Ditto.
- (ADJUST_NUNITS): Ditto.
- * config/riscv/riscv-vector-builtins-types.def (vfloat16mf4x2_t):
- New types.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Ditto.
- (vfloat16m2x4_t): Ditto.
- (vfloat16m4x2_t): Ditto.
- * config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): New macro.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Ditto.
- (vfloat16m2x4_t): Ditto.
- (vfloat16m4x2_t): Ditto.
- * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): New.
- * config/riscv/riscv.md: New.
- * config/riscv/vector-iterators.md: New.
-
-2023-07-04 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110487
- * match.pd (a !=/== CST1 ? CST2 : CST3): Always
- build a nonstandard integer and use that.
-
-2023-07-04 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (a?-1:0): Cast type an integer type
- rather the type before the negative.
- (a?0:-1): Likewise.
-
-2023-07-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.cc (machine_function, xtensa_expand_prologue):
- Change to use HARD_REG_BIT and its macros.
- * config/xtensa/xtensa.md
- (peephole2: regmove elimination during DFmode input reload):
- Likewise.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110491
- * tree-ssa-phiopt.cc (match_simplify_replacement): Check
- whether the PHI args are possibly undefined before folding
- the COND_EXPR.
-
-2023-07-04 Pan Li <pan2.li@intel.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * lto-streamer-in.cc (lto_input_mode_table): Stream in the mode
- bits for machine mode table.
- * lto-streamer-out.cc (lto_write_mode_table): Stream out the
- HOST machine mode bits.
- * lto-streamer.h (struct lto_file_decl_data): New fields mode_bits.
- * tree-streamer.cc (streamer_mode_table): Take MAX_MACHINE_MODE
- as the table size.
- * tree-streamer.h (streamer_mode_table): Ditto.
- (bp_pack_machine_mode): Take 1 << ceil_log2 (MAX_MACHINE_MODE)
- as the packing limit.
- (bp_unpack_machine_mode): Ditto with 'file_data->mode_bits'.
-
-2023-07-04 Thomas Schwinge <thomas@codesourcery.com>
-
- * lto-streamer.h (class lto_input_block): Capture
- 'lto_file_decl_data *file_data' instead of just
- 'unsigned char *mode_table'.
- * ipa-devirt.cc (ipa_odr_read_section): Adjust.
- * ipa-fnsummary.cc (inline_read_section): Likewise.
- * ipa-icf.cc (sem_item_optimizer::read_section): Likewise.
- * ipa-modref.cc (read_section): Likewise.
- * ipa-prop.cc (ipa_prop_read_section, read_replacements_section):
- Likewise.
- * ipa-sra.cc (isra_read_summary_section): Likewise.
- * lto-cgraph.cc (input_cgraph_opt_section): Likewise.
- * lto-section-in.cc (lto_create_simple_input_block): Likewise.
- * lto-streamer-in.cc (lto_read_body_or_constructor)
- (lto_input_toplevel_asms): Likewise.
- * tree-streamer.h (bp_unpack_machine_mode): Likewise.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-phiopt.cc (pass_phiopt::execute): Mark SSA undefs.
- (empty_bb_or_one_feeding_into_p): Check for them.
- * tree-ssa.h (gimple_uses_undefined_value_p): Remove.
- * tree-ssa.cc (gimple_uses_undefined_value_p): Likewise.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- * tree-vect-loop.cc (vect_analyze_loop_costing): Remove
- check guarding scalar_niter underflow.
-
-2023-07-04 Hao Liu <hliu@os.amperecomputing.com>
-
- PR tree-optimization/110531
- * tree-vect-loop.cc (vect_analyze_loop_1): initialize
- slp_done_for_suggested_uf to false.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110228
- * tree-ssa-ifcombine.cc (pass_tree_ifcombine::execute):
- Mark SSA may-undefs.
- (bb_no_side_effects_p): Check stmt uses for undefs.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110436
- * tree-vect-stmts.cc (vect_mark_relevant): Expand dumping,
- force live but not relevant pattern stmts relevant.
-
-2023-07-04 Lili Cui <lili.cui@intel.com>
-
- * config/i386/i386.h: Add PTA_ENQCMD and PTA_UINTR to PTA_SIERRAFOREST.
- * doc/invoke.texi: Update new isa to march=sierraforest and grandridge.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110495
- * tree.h (TREE_OVERFLOW): Do not mention VECTOR_CSTs
- since we do not set TREE_OVERFLOW on those since the
- introduction of VL vectors.
- * match.pd (x +- CST +- CST): For VECTOR_CST do not look
- at TREE_OVERFLOW to determine validity of association.
-
-2023-07-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110310
- * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
- Move costing part ...
- (vect_analyze_loop_costing): ... here. Integrate better
- estimate for epilogues from ...
- (vect_analyze_loop_2): Call vect_determine_partial_vectors_and_peeling
- with actual epilogue status.
- * tree-vect-loop-manip.cc (vect_do_peeling): ... here and
- avoid cancelling epilogue vectorization.
- (vect_update_epilogue_niters): Remove. No longer update
- epilogue LOOP_VINFO_NITERS.
-
-2023-07-04 Pan Li <pan2.li@intel.com>
-
- Revert:
- 2023-07-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Fix typo.
-
-2023-07-04 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * doc/md.texi: Add len_mask_gather_load/len_mask_scatter_store.
- * internal-fn.cc (expand_scatter_store_optab_fn): Ditto.
- (expand_gather_load_optab_fn): Ditto.
- (internal_load_fn_p): Ditto.
- (internal_store_fn_p): Ditto.
- (internal_gather_scatter_fn_p): Ditto.
- (internal_fn_len_index): Ditto.
- (internal_fn_mask_index): Ditto.
- (internal_fn_stored_value_index): Ditto.
- * internal-fn.def (LEN_MASK_GATHER_LOAD): Ditto.
- (LEN_MASK_SCATTER_STORE): Ditto.
- * optabs.def (OPTAB_CD): Ditto.
-
-2023-07-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc
- (vector_insn_info::parse_insn): Add early break.
-
-2023-07-04 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md (CRIS_UNSPEC_SWAP_BITS): Remove.
- ("cris_swap_bits", "ctzsi2"): Use bitreverse instead.
-
-2023-07-04 Hans-Peter Nilsson <hp@axis.com>
-
- * dwarf2out.cc (mem_loc_descriptor): Handle BITREVERSE.
-
-2023-07-03 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * common/config/riscv/riscv-common.cc: Add support for zvbb,
- zvbc, zvkg, zvkned, zvknha, zvknhb, zvksed, zvksh, zvkn,
- zvknc, zvkng, zvks, zvksc, zvksg, zvkt and the implied subsets.
- * config/riscv/arch-canonicalize: Add canonicalization info for
- zvkn, zvknc, zvkng, zvks, zvksc, zvksg.
- * config/riscv/riscv-opts.h (MASK_ZVBB): New macro.
- (MASK_ZVBC): Likewise.
- (TARGET_ZVBB): Likewise.
- (TARGET_ZVBC): Likewise.
- (MASK_ZVKG): Likewise.
- (MASK_ZVKNED): Likewise.
- (MASK_ZVKNHA): Likewise.
- (MASK_ZVKNHB): Likewise.
- (MASK_ZVKSED): Likewise.
- (MASK_ZVKSH): Likewise.
- (MASK_ZVKN): Likewise.
- (MASK_ZVKNC): Likewise.
- (MASK_ZVKNG): Likewise.
- (MASK_ZVKS): Likewise.
- (MASK_ZVKSC): Likewise.
- (MASK_ZVKSG): Likewise.
- (MASK_ZVKT): Likewise.
- (TARGET_ZVKG): Likewise.
- (TARGET_ZVKNED): Likewise.
- (TARGET_ZVKNHA): Likewise.
- (TARGET_ZVKNHB): Likewise.
- (TARGET_ZVKSED): Likewise.
- (TARGET_ZVKSH): Likewise.
- (TARGET_ZVKN): Likewise.
- (TARGET_ZVKNC): Likewise.
- (TARGET_ZVKNG): Likewise.
- (TARGET_ZVKS): Likewise.
- (TARGET_ZVKSC): Likewise.
- (TARGET_ZVKSG): Likewise.
- (TARGET_ZVKT): Likewise.
- * config/riscv/riscv.opt: Introduction of riscv_zv{b,k}_subext.
-
-2023-07-03 Andrew Pinski <apinski@marvell.com>
-
- PR middle-end/110510
- * except.h (struct eh_landing_pad_d): Add chain_next GTY.
-
-2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
-
- * config/darwin.h: Avoid duplicate multiply_defined specs on
- earlier Darwin versions with shared libgcc.
-
-2023-07-03 Uros Bizjak <ubizjak@gmail.com>
-
- * tree.h (tree_int_cst_equal): Change return type from int to bool.
- (operand_equal_for_phi_arg_p): Ditto.
- (tree_map_base_marked_p): Ditto.
- * tree.cc (contains_placeholder_p): Update function body
- for bool return type.
- (type_cache_hasher::equal): Ditto.
- (tree_map_base_hash): Change return type
- from int to void and adjust function body accordingly.
- (tree_int_cst_equal): Ditto.
- (operand_equal_for_phi_arg_p): Ditto.
- (get_narrower): Change "first" variable to bool.
- (cl_option_hasher::equal): Update function body for bool return type.
- * ggc.h (ggc_set_mark): Change return type from int to bool.
- (ggc_marked_p): Ditto.
- * ggc-page.cc (gt_ggc_mx): Change return type
- from int to void and adjust function body accordingly.
- (ggc_set_mark): Ditto.
-
-2023-07-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Change order of
- LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
- * config/riscv/riscv-v.cc (expand_load_store): Ditto.
- * doc/md.texi: Ditto.
- * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Ditto.
- * internal-fn.cc (len_maskload_direct): Ditto.
- (len_maskstore_direct): Ditto.
- (add_len_and_mask_args): New function.
- (expand_partial_load_optab_fn): Change order of
- LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
- (expand_partial_store_optab_fn): Ditto.
- (internal_fn_len_index): New function.
- (internal_fn_mask_index): Change order of
- LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
- (internal_fn_stored_value_index): Ditto.
- (internal_len_load_store_bias): Ditto.
- * internal-fn.h (internal_fn_len_index): New function.
- * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Change order of
- LEN_MASK_LOAD/LEN_MASK_STORE/LEN_LOAD/LEN_STORE arguments.
- * tree-vect-stmts.cc (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
-
-2023-07-03 Gaius Mulley <gaiusmod2@gmail.com>
-
- PR modula2/110125
- * doc/gm2.texi (Semantic checking): Include examples using
- -Wuninit-variable-checking.
-
-2023-07-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern.
- (*single_widen_fnma<mode>): Ditto.
- (*double_widen_fms<mode>): Ditto.
- (*single_widen_fms<mode>): Ditto.
- (*double_widen_fnms<mode>): Ditto.
- (*single_widen_fnms<mode>): Ditto.
-
-2023-07-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (@pred_single_widen_mul<any_extend:su><mode>): Change "@"
- into "*" in pattern name which simplifies build files.
- (*pred_single_widen_mul<any_extend:su><mode>): Ditto.
- (*pred_single_widen_mul<mode>): New pattern.
-
-2023-07-03 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-simd.md (vec_extract<mode><Vhalf>): Expect
- the index to be 0 or 1.
-
-2023-07-03 Lehua Ding <lehua.ding@rivai.ai>
-
- Revert:
- 2023-07-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern.
- (*single_widen_fnma<mode>): Ditto.
- (*double_widen_fms<mode>): Ditto.
- (*single_widen_fms<mode>): Ditto.
- (*double_widen_fnms<mode>): Ditto.
- (*single_widen_fnms<mode>): Ditto.
-
-2023-07-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*double_widen_fnma<mode>): New pattern.
- (*single_widen_fnma<mode>): Ditto.
- (*double_widen_fms<mode>): Ditto.
- (*single_widen_fms<mode>): Ditto.
- (*double_widen_fnms<mode>): Ditto.
- (*single_widen_fnms<mode>): Ditto.
-
-2023-07-03 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Fix typo.
-
-2023-07-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110506
- * tree-vect-patterns.cc (vect_recog_rotate_pattern): Re-order
- TYPE_PRECISION access with INTEGRAL_TYPE_P check.
-
-2023-07-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110506
- * tree-ssa-ccp.cc (get_value_for_expr): Check for integral
- type before relying on TYPE_PRECISION to produce a nonzero mask.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.md(*and<mode>3_mips16): Generates
- ZEB/ZEH instructions.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.cc(mips_9bit_offset_address_p): Restrict the
- address register to M16_REGS for MIPS16.
- (BUILTIN_AVAIL_MIPS16E2): Defined a new macro.
- (AVAIL_MIPS16E2_OR_NON_MIPS16): Same as above.
- (AVAIL_NON_MIPS16 (cache..)): Update to
- AVAIL_MIPS16E2_OR_NON_MIPS16.
- * config/mips/mips.h (ISA_HAS_CACHE): Add clause for ISA_HAS_MIPS16E2.
- * config/mips/mips.md (mips_cache): Mark as extended MIPS16.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.h(ISA_HAS_9BIT_DISPLACEMENT): Add clause
- for ISA_HAS_MIPS16E2.
- (ISA_HAS_SYNC): Same as above.
- (ISA_HAS_LL_SC): Same as above.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.cc(mips_expand_ins_as_unaligned_store):
- Add logics for generating instruction.
- * config/mips/mips.h(ISA_HAS_LWL_LWR): Add clause for ISA_HAS_MIPS16E2.
- * config/mips/mips.md(mov_<load>l): Generates instructions.
- (mov_<load>r): Same as above.
- (mov_<store>l): Adjusted for the conditions above.
- (mov_<store>r): Same as above.
- (mov_<store>l_mips16e2): Add machine description for `define_insn mov_<store>l_mips16e2`.
- (mov_<store>r_mips16e2): Add machine description for `define_insn mov_<store>r_mips16e2`.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.cc(mips_symbol_insns_1): Generates LUI instruction.
- (mips_const_insns): Same as above.
- (mips_output_move): Same as above.
- (mips_output_function_prologue): Same as above.
- * config/mips/mips.md: Same as above
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/constraints.md(Yz): New constraints for mips16e2.
- * config/mips/mips-protos.h(mips_bit_clear_p): Declared new function.
- (mips_bit_clear_info): Same as above.
- * config/mips/mips.cc(mips_bit_clear_info): New function for
- generating instructions.
- (mips_bit_clear_p): Same as above.
- * config/mips/mips.h(ISA_HAS_EXT_INS): Add clause for ISA_HAS_MIPS16E2.
- * config/mips/mips.md(extended_mips16): Generates EXT and INS instructions.
- (*and<mode>3): Generates INS instruction.
- (*and<mode>3_mips16): Generates EXT, INS and ANDI instructions.
- (ior<mode>3): Add logics for ORI instruction.
- (*ior<mode>3_mips16_asmacro): Generates ORI instrucion.
- (*ior<mode>3_mips16): Add logics for XORI instruction.
- (*xor<mode>3_mips16): Generates XORI instrucion.
- (*extzv<mode>): Add logics for EXT instruction.
- (*insv<mode>): Add logics for INS instruction.
- * config/mips/predicates.md(bit_clear_operand): New predicate for
- generating bitwise instructions.
- (and_reg_operand): Add logics for generating bitwise instructions.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.cc(mips_regno_mode_ok_for_base_p): Generate instructions
- that uses global pointer register.
- (mips16_unextended_reference_p): Same as above.
- (mips_pic_base_register): Same as above.
- (mips_init_relocs): Same as above.
- * config/mips/mips.h(MIPS16_GP_LOADS): Defined a new macro.
- (GLOBAL_POINTER_REGNUM): Moved to machine description `mips.md`.
- * config/mips/mips.md(GLOBAL_POINTER_REGNUM): Moved to here from above.
- (*lowsi_mips16_gp):New `define_insn *low<mode>_mips16`.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.h(ISA_HAS_CONDMOVE): Add condition for ISA_HAS_MIPS16E2.
- * config/mips/mips.md(*mov<GPR:mode>_on_<MOVECC:mode>): Add logics for MOVx insts.
- (*mov<GPR:mode>_on_<MOVECC:mode>_mips16e2): Generate MOVx instruction.
- (*mov<GPR:mode>_on_<GPR2:mode>_ne): Add logics for MOVx insts.
- (*mov<GPR:mode>_on_<GPR2:mode>_ne_mips16e2): Generate MOVx instruction.
- * config/mips/predicates.md(reg_or_0_operand_mips16e2): New predicate for MOVx insts.
-
-2023-07-03 Jie Mei <jie.mei@oss.cipunited.com>
-
- * config/mips/mips.cc(mips_file_start): Add mips16e2 info
- for output file.
- * config/mips/mips.h(__mips_mips16e2): Defined a new
- predefine macro.
- (ISA_HAS_MIPS16E2): Defined a new macro.
- (ASM_SPEC): Pass mmips16e2 to the assembler.
- * config/mips/mips.opt: Add -m(no-)mips16e2 option.
- * config/mips/predicates.md: Add clause for TARGET_MIPS16E2.
- * doc/invoke.texi: Add -m(no-)mips16e2 option..
-
-2023-07-02 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/110508
- * tree-ssa-math-opts.cc (match_uaddc_usubc): Only replace re2 with
- REALPART_EXPR opf nlhs if re2 is non-NULL.
-
-2023-07-02 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
- Simplify.
- * config/xtensa/xtensa.md (*xtensa_clamps):
- Add TARGET_MINMAX to the condition.
-
-2023-07-02 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.md (*eqne_INT_MIN):
- Add missing ":SI" to the match_operator.
-
-2023-07-02 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/108743
- * config/darwin.opt: Add fconstant-cfstrings alias to
- mconstant-cfstrings.
- * doc/invoke.texi: Amend invocation descriptions to reflect
- that the fconstant-cfstrings is a target-option alias and to
- add the missing mconstant-cfstrings option description to the
- Darwin section.
-
-2023-07-01 Jan Hubicka <jh@suse.cz>
-
- * tree-cfg.cc (gimple_duplicate_sese_region): Add elliminated_edge
- parmaeter; update profile.
- * tree-cfg.h (gimple_duplicate_sese_region): Update prototype.
- * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Rename to ...
- (static_loop_exit): ... this; return the edge to be elliminated.
- (ch_base::copy_headers): Handle profile updating for eliminated exits.
-
-2023-07-01 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-features.cc (compute_convert_gain): Provide
- gains/costs for ROTATE and ROTATERT (by an integer constant).
- (general_scalar_chain::convert_rotate): New helper function to
- convert a DImode or SImode rotation by an integer constant into
- SSE vector form.
- (general_scalar_chain::convert_insn): Call the new convert_rotate
- for ROTATE and ROTATERT.
- (general_scalar_to_vector_candidate_p): Consider ROTATE and
- ROTATERT to be candidates if the second operand is an integer
- constant, valid for a rotation (or shift) in the given mode.
- * config/i386/i386-features.h (general_scalar_chain): Add new
- helper method convert_rotate.
-
-2023-07-01 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/103680
- * cfg.cc (update_bb_profile_for_threading): Fix profile update;
- make message clearer.
-
-2023-06-30 Qing Zhao <qing.zhao@oracle.com>
-
- PR tree-optimization/101832
- * tree-object-size.cc (addr_object_size): Handle structure/union type
- when it has flexible size.
-
-2023-06-30 Eric Botcazou <ebotcazou@adacore.com>
-
- * gimple-fold.cc (fold_array_ctor_reference): Fix head comment.
- (fold_nonarray_ctor_reference): Likewise. Specifically deal
- with integral bit-fields.
- (fold_ctor_reference): Make sure that the constructor uses the
- native storage order.
-
-2023-06-30 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/109849
- * predict.cc (estimate_bb_frequencies): Turn to static function.
- (expr_expected_value_1): Fix handling of binary expressions with
- predicted values.
- * predict.def (PRED_MALLOC_NONNULL): Move later in the priority queue.
- (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Move to almost top of the priority
- queue.
- * predict.h (estimate_bb_frequencies): No longer declare it.
-
-2023-06-30 Uros Bizjak <ubizjak@gmail.com>
-
- * fold-const.h (multiple_of_p): Change return type from int to bool.
- * fold-const.cc (split_tree): Change negl_p, neg_litp_p,
- neg_conp_p and neg_var_p variables to bool.
- (const_binop): Change sat_p variable to bool.
- (merge_ranges): Change no_overlap variable to bool.
- (extract_muldiv_1): Change same_p variable to bool.
- (tree_swap_operands_p): Update function body for bool return type.
- (fold_truth_andor): Change commutative variable to bool.
- (multiple_of_p): Change return type
- from int to void and adjust function body accordingly.
- * optabs.h (expand_twoval_unop): Change return type from int to bool.
- (expand_twoval_binop): Ditto.
- (can_compare_p): Ditto.
- (have_add2_insn): Ditto.
- (have_addptr3_insn): Ditto.
- (have_sub2_insn): Ditto.
- (have_insn_for): Ditto.
- * optabs.cc (add_equal_note): Ditto.
- (widen_operand): Change no_extend argument from int to bool.
- (expand_binop): Ditto.
- (expand_twoval_unop): Change return type
- from int to void and adjust function body accordingly.
- (expand_twoval_binop): Ditto.
- (can_compare_p): Ditto.
- (have_add2_insn): Ditto.
- (have_addptr3_insn): Ditto.
- (have_sub2_insn): Ditto.
- (have_insn_for): Ditto.
-
-2023-06-30 Oluwatamilore Adebayo <oluwatamilore.adebayo@arm.com>
-
- * config/aarch64/aarch64-simd.md
- (vec_widen_<su>abdl_lo_<mode>, vec_widen_<su>abdl_hi_<mode>):
- Expansions for abd vec widen optabs.
- (aarch64_<su>abdl<mode>_insn): VQW based abdl RTL.
- * config/aarch64/iterators.md (USMAX_EXT): Code attributes
- that give the appropriate extend RTL for the max RTL.
-
-2023-06-30 Oluwatamilore Adebayo <oluwatamilore.adebayo@arm.com>
-
- * internal-fn.def (VEC_WIDEN_ABD): New internal hilo optab.
- * optabs.def (vec_widen_sabd_optab,
- vec_widen_sabd_hi_optab, vec_widen_sabd_lo_optab,
- vec_widen_sabd_odd_even, vec_widen_sabd_even_optab,
- vec_widen_uabd_optab,
- vec_widen_uabd_hi_optab, vec_widen_uabd_lo_optab,
- vec_widen_uabd_odd_even, vec_widen_uabd_even_optab):
- New optabs.
- * doc/md.texi: Document them.
- * tree-vect-patterns.cc (vect_recog_abd_pattern): Update to
- to build a VEC_WIDEN_ABD call if the input precision is smaller
- than the precision of the output.
- (vect_recog_widen_abd_pattern): Should an ABD expression be
- found preceeding an extension, replace the two with a
- VEC_WIDEN_ABD.
-
-2023-06-30 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Refactor the common condition.
-
-2023-06-30 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110496
- * gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Re-order
- verifying and TYPE_PRECISION query for the BIT_FIELD_REF case.
-
-2023-06-30 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110489
- * statistics.cc (curr_statistics_hash): Add argument
- indicating whether we should allocate the hash.
- (statistics_fini_pass): If the hash isn't allocated
- only print the summary header.
-
-2023-06-30 Segher Boessenkool <segher@kernel.crashing.org>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * config/nvptx/nvptx.cc (TARGET_LRA_P): Remove.
-
-2023-06-30 Jovan Dmitrović <jovan.dmitrovic@syrmia.com>
-
- PR target/109435
- * config/mips/mips.cc (mips_function_arg_alignment): Returns
- the alignment of function argument. In case of typedef type,
- it returns the aligment of the aliased type.
- (mips_function_arg_boundary): Relocated calculation of the
- aligment of function arguments.
-
-2023-06-29 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/109849
- * ipa-fnsummary.cc (decompose_param_expr): Skip
- functions returning its parameter.
- (set_cond_stmt_execution_predicate): Return early
- if predicate was constructed.
-
-2023-06-29 Qing Zhao <qing.zhao@oracle.com>
-
- PR c/77650
- * doc/extend.texi: Document GCC extension on a structure containing
- a flexible array member to be a member of another structure.
-
-2023-06-29 Qing Zhao <qing.zhao@oracle.com>
-
- * print-tree.cc (print_node): Print new bit type_include_flexarray.
- * tree-core.h (struct tree_type_common): Use bit no_named_args_stdarg_p
- as type_include_flexarray for RECORD_TYPE or UNION_TYPE.
- * tree-streamer-in.cc (unpack_ts_type_common_value_fields): Stream
- in bit no_named_args_stdarg_p properly for its corresponding type.
- * tree-streamer-out.cc (pack_ts_type_common_value_fields): Stream
- out bit no_named_args_stdarg_p properly for its corresponding type.
- * tree.h (TYPE_INCLUDES_FLEXARRAY): New macro TYPE_INCLUDES_FLEXARRAY.
-
-2023-06-29 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.cc (maybe_set_nonzero_bits): Move from here...
- * tree-ssa-dom.cc (maybe_set_nonzero_bits): ...to here.
- * tree-vrp.h (maybe_set_nonzero_bits): Remove.
-
-2023-06-29 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (frange::set): Do not call verify_range.
- (frange::normalize_kind): Verify range.
- (frange::union_nans): Do not call verify_range.
- (frange::union_): Same.
- (frange::intersect): Same.
- (irange::irange_single_pair_union): Call normalize_kind if
- necessary.
- (irange::union_): Same.
- (irange::intersect): Same.
- (irange::set_range_from_nonzero_bits): Verify range.
- (irange::set_nonzero_bits): Call normalize_kind if necessary.
- (irange::get_nonzero_bits): Tweak comment.
- (irange::intersect_nonzero_bits): Call normalize_kind if
- necessary.
- (irange::union_nonzero_bits): Same.
- * value-range.h (irange::normalize_kind): Verify range.
-
-2023-06-29 Uros Bizjak <ubizjak@gmail.com>
-
- * cselib.h (rtx_equal_for_cselib_1):
- Change return type from int to bool.
- (references_value_p): Ditto.
- (rtx_equal_for_cselib_p): Ditto.
- * expr.h (can_store_by_pieces): Ditto.
- (try_casesi): Ditto.
- (try_tablejump): Ditto.
- (safe_from_p): Ditto.
- * sbitmap.h (bitmap_equal_p): Ditto.
- * cselib.cc (references_value_p): Change return type
- from int to void and adjust function body accordingly.
- (rtx_equal_for_cselib_1): Ditto.
- * expr.cc (is_aligning_offset): Ditto.
- (can_store_by_pieces): Ditto.
- (mostly_zeros_p): Ditto.
- (all_zeros_p): Ditto.
- (safe_from_p): Ditto.
- (is_aligning_offset): Ditto.
- (try_casesi): Ditto.
- (try_tablejump): Ditto.
- (store_constructor): Change "need_to_clear" and
- "const_bounds_p" variables to bool.
- * sbitmap.cc (bitmap_equal_p): Change return type from int to bool.
-
-2023-06-29 Robin Dapp <rdapp@ventanamicro.com>
-
- * tree-ssa-math-opts.cc (divmod_candidate_p): Use
- element_precision.
-
-2023-06-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110460
- * tree-vect-stmts.cc (get_related_vectype_for_scalar_type):
- Only allow integral, pointer and scalar float type scalar_type.
-
-2023-06-29 Lili Cui <lili.cui@intel.com>
-
- PR tree-optimization/110148
- * tree-ssa-reassoc.cc (rewrite_expr_tree_parallel): Handle loop-carried
- ops in this function.
-
-2023-06-29 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110452
- * expr.cc (store_constructor): Handle uniform boolean
- vectors with integer mode specially.
-
-2023-06-29 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110461
- * match.pd (bitop (convert@2 @0) (convert?@3 @1)): Disable
- for VECTOR_TYPE_P.
-
-2023-06-29 Richard Sandiford <richard.sandiford@arm.com>
-
- * vec.h (gt_pch_nx): Add overloads for va_gc_atomic.
- (array_slice): Relax va_gc constructor to handle all vectors
- with a vl_embed layout.
-
-2023-06-29 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv.cc (riscv_emit_mode_set): Add emit for FRM.
- (riscv_mode_needed): Likewise.
- (riscv_entity_mode_after): Likewise.
- (riscv_mode_after): Likewise.
- (riscv_mode_entry): Likewise.
- (riscv_mode_exit): Likewise.
- * config/riscv/riscv.h (NUM_MODES_FOR_MODE_SWITCHING): Add number
- for FRM.
- * config/riscv/riscv.md: Add FRM register.
- * config/riscv/vector-iterators.md: Add FRM type.
- * config/riscv/vector.md (frm_mode): Define new attr for FRM mode.
- (fsrm): Define new insn for fsrm instruction.
-
-2023-06-29 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-protos.h (enum floating_point_rounding_mode):
- Add macro for static frm min and max.
- * config/riscv/riscv-vector-builtins-bases.cc
- (class binop_frm): New class for floating-point with frm.
- (BASE): Add vfadd for frm.
- * config/riscv/riscv-vector-builtins-bases.h: Likewise.
- * config/riscv/riscv-vector-builtins-functions.def
- (vfadd_frm): Likewise.
- * config/riscv/riscv-vector-builtins-shapes.cc
- (struct alu_frm_def): New struct for alu with frm.
- (SHAPE): Add alu with frm.
- * config/riscv/riscv-vector-builtins-shapes.h: Likewise.
- * config/riscv/riscv-vector-builtins.cc
- (function_checker::report_out_of_range_and_not): New function
- for report out of range and not val.
- (function_checker::require_immediate_range_or): New function
- for checking in range or one val.
- * config/riscv/riscv-vector-builtins.h: Add function decl.
-
-2023-06-29 Cui, Lili <lili.cui@intel.com>
-
- * common/config/i386/cpuinfo.h (get_intel_cpu): Remove model value 0xa8
- from Rocketlake, move model value 0xbf from Alderlake to Raptorlake.
-
-2023-06-28 Hans-Peter Nilsson <hp@axis.com>
-
- PR target/110144
- * config/cris/cris.cc (cris_postdbr_cmpelim): Don't apply PATTERN
- to insn before validating it.
-
-2023-06-28 Jan Hubicka <jh@suse.cz>
-
- PR middle-end/110334
- * ipa-fnsummary.h (ipa_fn_summary): Add
- safe_to_inline_to_always_inline.
- * ipa-inline.cc (can_early_inline_edge_p): ICE
- if SSA is not built; do cycle checking for
- always_inline functions.
- (inline_always_inline_functions): Be recrusive;
- watch for cycles; do not updat overall summary.
- (early_inliner): Do not give up on always_inlines.
- * ipa-utils.cc (ipa_reverse_postorder): Do not skip
- always inlines.
-
-2023-06-28 Uros Bizjak <ubizjak@gmail.com>
-
- * output.h (leaf_function_p): Change return type from int to bool.
- (final_forward_branch_p): Ditto.
- (only_leaf_regs_used): Ditto.
- (maybe_assemble_visibility): Ditto.
- * varasm.h (supports_one_only): Ditto.
- * rtl.h (compute_alignments): Change return type from int to void.
- * final.cc (app_on): Change return type from int to bool.
- (compute_alignments): Change return type from int to void
- and adjust function body accordingly.
- (shorten_branches): Change "something_changed" variable
- type from int to bool.
- (leaf_function_p): Change return type from int to bool
- and adjust function body accordingly.
- (final_forward_branch_p): Ditto.
- (only_leaf_regs_used): Ditto.
- * varasm.cc (contains_pointers_p): Change return type from
- int to bool and adjust function body accordingly.
- (compare_constant): Ditto.
- (maybe_assemble_visibility): Ditto.
- (supports_one_only): Ditto.
-
-2023-06-28 Manolis Tsamis <manolis.tsamis@vrull.eu>
-
- PR debug/110308
- * regcprop.cc (maybe_mode_change): Check stack_pointer_rtx mode.
- (maybe_copy_reg_attrs): New function.
- (find_oldest_value_reg): Use maybe_copy_reg_attrs.
- (copyprop_hardreg_forward_1): Ditto.
-
-2023-06-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110434
- * tree-nrv.cc (pass_nrv::execute): Remove CLOBBERs of
- VAR we replace with <retval>.
-
-2023-06-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110451
- * tree-ssa-loop-im.cc (stmt_cost): [VEC_]COND_EXPR and
- tcc_comparison are expensive.
-
-2023-06-28 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_branch): Also use ptest
- for TImode comparisons on 32-bit architectures.
- * config/i386/i386.md (cbranch<mode>4): Change from SDWIM to
- SWIM1248x to exclude/avoid TImode being conditional on -m64.
- (cbranchti4): New define_expand for TImode on both TARGET_64BIT
- and/or with TARGET_SSE4_1.
- * config/i386/predicates.md (ix86_timode_comparison_operator):
- New predicate that depends upon TARGET_64BIT.
- (ix86_timode_comparison_operand): Likewise.
-
-2023-06-28 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/78794
- * config/i386/i386-features.cc (compute_convert_gain): Provide
- more accurate gains for conversion of scalar comparisons to
- PTEST.
-
-2023-06-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110443
- * tree-vect-slp.cc (vect_build_slp_tree_1): Reject non-grouped
- gather loads.
-
-2023-06-28 Haochen Gui <guihaoc@gcc.gnu.org>
-
- * config/rs6000/rs6000.md (peephole2 for compare_and_move): New.
- (peephole2 for move_and_compare): New.
- (mode_iterator WORD): New. Set the mode to SI/DImode by
- TARGET_POWERPC64.
- (*mov<mode>_internal2): Change the mode iterator from P to WORD.
- (split pattern for compare_and_move): Likewise.
-
-2023-06-28 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*double_widen_fma<mode>): New pattern.
- (*single_widen_fma<mode>): Ditto.
-
-2023-06-28 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/104124
- * config/rs6000/altivec.md (*altivec_vupkhs<VU_char>_direct): Rename
- to...
- (altivec_vupkhs<VU_char>_direct): ...this.
- * config/rs6000/predicates.md (vspltisw_vupkhsw_constant_split): New
- predicate to test if a constant can be loaded with vspltisw and
- vupkhsw.
- (easy_vector_constant): Call vspltisw_vupkhsw_constant_p to Check if
- a vector constant can be synthesized with a vspltisw and a vupkhsw.
- * config/rs6000/rs6000-protos.h (vspltisw_vupkhsw_constant_p):
- Declare.
- * config/rs6000/rs6000.cc (vspltisw_vupkhsw_constant_p): New
- function to return true if OP mode is V2DI and can be synthesized
- with vupkhsw and vspltisw.
- * config/rs6000/vsx.md (*vspltisw_v2di_split): New insn to load up
- constants with vspltisw and vupkhsw.
-
-2023-06-28 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/110377
- * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Pass statement to
- the ranger query.
- (ipa_analyze_node): Enable ranger.
-
-2023-06-28 Richard Biener <rguenther@suse.de>
-
- * tree.h (TYPE_PRECISION): Check for non-VECTOR_TYPE.
- (TYPE_PRECISION_RAW): Provide raw access to the precision
- field.
- * tree.cc (verify_type_variant): Compare TYPE_PRECISION_RAW.
- (gimple_canonical_types_compatible_p): Likewise.
- * tree-streamer-out.cc (pack_ts_type_common_value_fields):
- Stream TYPE_PRECISION_RAW.
- * tree-streamer-in.cc (unpack_ts_type_common_value_fields):
- Likewise.
- * lto-streamer-out.cc (hash_tree): Hash TYPE_PRECISION_RAW.
-
-2023-06-28 Alexandre Oliva <oliva@adacore.com>
-
- * doc/extend.texi (zero-call-used-regs): Document leafy and
- variants thereof.
- * flag-types.h (zero_regs_flags): Add LEAFY_MODE, as well as
- LEAFY and variants.
- * function.cc (gen_call_ued_regs_seq): Set only_used for leaf
- functions in leafy mode.
- * opts.cc (zero_call_used_regs_opts): Add leafy and variants.
-
-2023-06-28 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Adapt expand.
- * config/riscv/vector.md (@pred_single_widen_<plus_minus:optab><mode>):
- Remove.
- (@pred_single_widen_add<mode>): New pattern.
- (@pred_single_widen_sub<mode>): New pattern.
-
-2023-06-28 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386.cc (ix86_invalid_conversion): New function.
- (TARGET_INVALID_CONVERSION): Define as
- ix86_invalid_conversion.
-
-2023-06-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<optab><vnconvert><mode>2): New
- expander.
- (<float_cvt><vnconvert><mode>2): Ditto.
- (<optab><mode><vnconvert>2): Ditto.
- (<float_cvt><mode><vnconvert>2): Ditto.
- * config/riscv/vector-iterators.md: Add vnconvert.
-
-2023-06-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (extend<v_double_trunc><mode>2): New
- expander.
- (extend<v_quad_trunc><mode>2): Ditto.
- (trunc<mode><v_double_trunc>2): Ditto.
- (trunc<mode><v_quad_trunc>2): Ditto.
- * config/riscv/vector-iterators.md: Add VQEXTF and HF to
- V_QUAD_TRUNC and v_quad_trunc.
-
-2023-06-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<float_cvt><vconvert><mode>2): New
- expander.
-
-2023-06-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (copysign<mode>3): Add expander.
- (xorsign<mode>3): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (class vfsgnjn):
- New class.
- * config/riscv/vector-iterators.md (copysign): Remove ncopysign.
- (xorsign): Ditto.
- (n): Ditto.
- (x): Ditto.
- * config/riscv/vector.md (@pred_ncopysign<mode>): Split off.
- (@pred_ncopysign<mode>_scalar): Ditto.
-
-2023-06-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md: VF_AUTO -> VF.
- * config/riscv/vector-iterators.md: Introduce VF_ZVFHMIN,
- VWEXTF_ZVFHMIN and use TARGET_ZVFH in VWCONVERTI, VHF and
- VHF_LMUL1.
- * config/riscv/vector.md: Use new iterators.
-
-2023-06-27 Robin Dapp <rdapp@ventanamicro.com>
-
- * match.pd: Use element_mode and check if target supports
- operation with new type.
-
-2023-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config/aarch64/aarch64-sve-builtins-base.cc
- (svdupq_impl::fold_nonconst_dupq): New method.
- (svdupq_impl::fold): Call fold_nonconst_dupq.
-
-2023-06-27 Andrew Pinski <apinski@marvell.com>
-
- PR middle-end/110420
- PR middle-end/103979
- PR middle-end/98619
- * gimplify.cc (gimplify_asm_expr): Mark asm with labels as volatile.
-
-2023-06-27 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (decide_whether_version_node): Adjust comment.
- * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Adjust
- for Value_Range.
- (set_switch_stmt_execution_predicate): Same.
- * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
-
-2023-06-27 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Adjust for use with
- ipa_vr instead of value_range.
- (gt_pch_nx): Same.
- (gt_ggc_mx): Same.
- (ipa_get_value_range): Same.
- * value-range.cc (gt_pch_nx): Move to ipa-prop.cc and adjust for
- ipa_vr.
- (gt_ggc_mx): Same.
-
-2023-06-27 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (ipa_vr_operation_and_type_effects): New.
- * ipa-prop.cc (ipa_get_value_range): Adjust for ipa_vr.
- (ipa_set_jfunc_vr): Take a range.
- (ipa_compute_jump_functions_for_edge): Pass range to
- ipa_set_jfunc_vr.
- (ipa_write_jump_function): Call streamer write helper.
- (ipa_read_jump_function): Call streamer read helper.
- * ipa-prop.h (class ipa_vr): Change m_vr to an ipa_vr.
-
-2023-06-27 Richard Sandiford <richard.sandiford@arm.com>
-
- * gengtype-parse.cc (consume_until_comma_or_eos): Parse "= { ... }"
- as a probable initializer rather than a probable complete statement.
-
-2023-06-27 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/96208
- * tree-vect-slp.cc (vect_build_slp_tree_1): Allow
- a non-grouped load if it is the same for all lanes.
- (vect_build_slp_tree_2): Handle not grouped loads.
- (vect_optimize_slp_pass::remove_redundant_permutations):
- Likewise.
- (vect_transform_slp_perm_load_1): Likewise.
- * tree-vect-stmts.cc (vect_model_load_cost): Likewise.
- (get_group_load_store_type): Likewise. Handle
- invariant accesses.
- (vectorizable_load): Likewise.
-
-2023-06-27 liuhongt <hongtao.liu@intel.com>
-
- PR rtl-optimization/110237
- * config/i386/sse.md (<avx512>_store<mode>_mask): Refine with
- UNSPEC_MASKMOV.
- (maskstore<mode><avx512fmaskmodelower): Ditto.
- (*<avx512>_store<mode>_mask): New define_insn, it's renamed
- from original <avx512>_store<mode>_mask.
-
-2023-06-27 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386-features.cc (pass_insert_vzeroupper:gate):
- Move flag_expensive_optimizations && !optimize_size to ..
- * config/i386/i386-options.cc (ix86_option_override_internal):
- .. this, it makes -mvzeroupper independent of optimization
- level, but still keeps the behavior of architecture
- tuning(emit_vzeroupper) unchanged.
-
-2023-06-27 liuhongt <hongtao.liu@intel.com>
-
- PR target/82735
- * config/i386/i386.cc (ix86_avx_u127_mode_needed): Don't emit
- vzeroupper for vzeroupper call_insn.
-
-2023-06-27 Andrew Pinski <apinski@marvell.com>
-
- * doc/extend.texi (__builtin_alloca_with_align_and_max): Fix
- defbuiltin usage.
-
-2023-06-27 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_const_vector): Fix stepped vector
- with base != 0.
-
-2023-06-26 Andrew Pinski <apinski@marvell.com>
-
- * doc/extend.texi (access attribute): Add
- cindex for it.
- (interrupt/interrupt_handler attribute):
- Likewise.
-
-2023-06-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_sqrshrun_n<mode>_insn):
- Use <DWI> instead of <V2XWIDE>.
- (aarch64_sqrshrun_n<mode>): Likewise.
-
-2023-06-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-protos.h (aarch64_const_vec_rsra_rnd_imm_p):
- Rename to...
- (aarch64_rnd_imm_p): ... This.
- * config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec):
- Rename to...
- (aarch64_int_rnd_operand): ... This.
- (aarch64_simd_rshrn_imm_vec): Delete.
- * config/aarch64/aarch64-simd.md (aarch64_<sra_op>rsra_n<mode>_insn):
- Adjust for the above.
- (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): Likewise.
- (*aarch64_<shrn_op>rshrn_n<mode>_insn): Likewise.
- (*aarch64_sqrshrun_n<mode>_insn<vczle><vczbe>): Likewise.
- (aarch64_sqrshrun_n<mode>_insn): Likewise.
- (aarch64_<shrn_op>rshrn2_n<mode>_insn_le): Likewise.
- (aarch64_<shrn_op>rshrn2_n<mode>_insn_be): Likewise.
- (aarch64_sqrshrun2_n<mode>_insn_le): Likewise.
- (aarch64_sqrshrun2_n<mode>_insn_be): Likewise.
- * config/aarch64/aarch64.cc (aarch64_const_vec_rsra_rnd_imm_p):
- Rename to...
- (aarch64_rnd_imm_p): ... This.
-
-2023-06-26 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390.cc (s390_encode_section_info): Set
- SYMBOL_FLAG_SET_NOTALIGN2 only if the symbol has explicitely been
- misaligned.
-
-2023-06-26 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/109849
- * tree-ssa-dce.cc (make_forwarders_with_degenerate_phis): Fix profile
- count of newly constructed forwarder block.
-
-2023-06-26 Andrew Carlotti <andrew.carlotti@arm.com>
-
- * doc/optinfo.texi: Fix "steam" -> "stream".
-
-2023-06-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Add LEN_MASK_STORE and
- fix LEN_STORE.
- (dse_optimize_stmt): Add LEN_MASK_STORE.
-
-2023-06-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Fix gimple
- fold of LOAD/STORE with length.
-
-2023-06-26 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (compute_operand1_and_operand2_range):
- Check for interdependence between operands 1 and 2.
-
-2023-06-26 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-stmts.cc (vectorizable_conversion): Take multi_step_cvt
- into account when costing non-widening/truncating conversions.
-
-2023-06-26 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110381
- * tree-vect-slp.cc (vect_optimize_slp_pass::start_choosing_layouts):
- Materialize permutes before fold-left reductions.
-
-2023-06-26 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.h: Remove duplicated decl.
-
-2023-06-26 Richard Biener <rguenther@suse.de>
-
- * varasm.cc (initializer_constant_valid_p_1): Also
- constrain the type of value to be scalar integral
- before dispatching to narrowing_initializer_constant_valid_p.
-
-2023-06-26 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-scopedtables.cc (hashable_expr_equal_p):
- Use element_precision.
-
-2023-06-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (vcond<V:mode><VI:mode>): Remove redundant
- vcond patterns.
- (vcondu<V:mode><VI:mode>): Ditto.
- * config/riscv/riscv-protos.h (expand_vcond): Ditto.
- * config/riscv/riscv-v.cc (expand_vcond): Ditto.
-
-2023-06-26 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110392
- * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
- Do early exits on true/false predicate only after normalization.
-
-2023-06-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-sccvn.cc (vn_reference_lookup_3): Change name "len" into
- "length".
-
-2023-06-26 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (peephole2): Simplify zeroing a register
- followed by an IOR, XOR or PLUS operation on it, into a move.
- (*ashl<dwi>3_doubleword_highpart): New define_insn_and_split to
- eliminate (and hide from reload) unnecessary word to doubleword
- extensions that are followed by left shifts by sufficiently large,
- but valid, bit counts.
-
-2023-06-26 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/110371
- PR tree-optimization/110018
- * tree-vect-stmts.cc (vectorizable_conversion): Use cvt_op to
- save intermediate type operand instead of "subtle" vec_dest
- for case NONE.
-
-2023-06-26 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/110371
- PR tree-optimization/110018
- * tree-vect-stmts.cc (vectorizable_conversion): Don't use
- intermiediate type for FIX_TRUNC_EXPR when ftrapping-math.
-
-2023-06-26 Hongyu Wang <hongyu.wang@intel.com>
-
- * config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
- Override tune_string with arch_string if tune_string is not
- explicitly specified.
-
-2023-06-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (vector_insn_info::parse_insn): Ehance
- AVL propagation.
- * config/riscv/riscv-vsetvl.h: New function.
-
-2023-06-25 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: change emit_insn to
- emit_move_insn
-
-2023-06-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (len_load_<mode>): Remove.
- (len_maskload<mode><vm>): Remove.
- (len_store_<mode>): New pattern.
- (len_maskstore<mode><vm>): New pattern.
- * config/riscv/predicates.md (autovec_length_operand): New predicate.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (expand_load_store): New function.
- * config/riscv/riscv-v.cc (emit_vlmax_masked_insn): Ditto.
- (emit_nonvlmax_masked_insn): Ditto.
- (expand_load_store): Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_contiguous_store_insn): Add avl_type operand
- into pred_store.
- * config/riscv/vector.md: Ditto.
-
-2023-06-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.cc (expand_partial_store_optab_fn): Fix bug of BIAS
- argument index.
-
-2023-06-25 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Revert.
-
-2023-06-25 Pan Li <pan2.li@intel.com>
-
- * config/riscv/genrvv-type-indexer.cc (valid_type): Revert changes.
- * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): Ditto.
- (ADJUST_ALIGNMENT): Ditto.
- (RVV_TUPLE_PARTIAL_MODES): Ditto.
- (ADJUST_NUNITS): Ditto.
- * config/riscv/riscv-vector-builtins-types.def (vfloat16mf4x2_t): Ditto.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Diito.
- (vfloat16m2x4_t): Diito.
- (vfloat16m4x2_t): Diito.
- * config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): Ditto.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Ditto.
- (vfloat16m2x4_t): Ditto.
- (vfloat16m4x2_t): Ditto.
- * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): Ditto.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector-iterators.md: Ditto.
-
-2023-06-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * gimple-fold.cc (arith_overflowed_p): Apply LEN_MASK_{LOAD,STORE}.
- (gimple_fold_partial_load_store_mem_ref): Ditto.
- (gimple_fold_partial_store): Ditto.
- (gimple_fold_call): Ditto.
-
-2023-06-25 liuhongt <hongtao.liu@intel.com>
-
- PR target/110309
- * config/i386/sse.md (maskload<mode><avx512fmaskmodelower>):
- Refine pattern with UNSPEC_MASKLOAD.
- (maskload<mode><avx512fmaskmodelower>): Ditto.
- (*<avx512>_load<mode>_mask): Extend mode iterator to
- VI12HFBF_AVX512VL.
- (*<avx512>_load<mode>): Ditto.
-
-2023-06-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-alias.cc (call_may_clobber_ref_p_1): Add LEN_MASK_STORE.
-
-2023-06-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Apply
- LEN_MASK_{LOAD,STORE}
-
-2023-06-25 yulong <shiyulong@iscas.ac.cn>
-
- * config/riscv/vector.md: Add float16 attr at sew、vlmul and ratio.
-
-2023-06-24 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (*<code>qi_ext<mode>_3): New define_insn.
-
-2023-06-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (*fma<mode>): set clobber to Pmode in expand stage.
- (*fma<VI:mode><P:mode>): Ditto.
- (*fnma<mode>): Ditto.
- (*fnma<VI:mode><P:mode>): Ditto.
-
-2023-06-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (fma<mode>4): New pattern.
- (*fma<mode>): Ditto.
- (fnma<mode>4): Ditto.
- (*fnma<mode>): Ditto.
- (fms<mode>4): Ditto.
- (*fms<mode>): Ditto.
- (fnms<mode>4): Ditto.
- (*fnms<mode>): Ditto.
- * config/riscv/riscv-protos.h (emit_vlmax_fp_ternary_insn):
- New function.
- * config/riscv/riscv-v.cc (emit_vlmax_fp_ternary_insn): Ditto.
- * config/riscv/vector.md: Fix attribute bug.
-
-2023-06-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-loop-ivopts.cc (get_mem_type_for_internal_fn):
- Apply LEN_MASK_{LOAD,STORE}.
-
-2023-06-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address):
- Add LEN_MASK_{LOAD,STORE}.
-
-2023-06-24 David Malcolm <dmalcolm@redhat.com>
-
- * diagnostic-format-sarif.cc: Add #define INCLUDE_VECTOR.
- * diagnostic.cc: Likewise.
- * text-art/box-drawing.cc: Likewise.
- * text-art/canvas.cc: Likewise.
- * text-art/ruler.cc: Likewise.
- * text-art/selftests.cc: Likewise.
- * text-art/selftests.h (text_art::canvas): New forward decl.
- * text-art/style.cc: Add #define INCLUDE_VECTOR.
- * text-art/styled-string.cc: Likewise.
- * text-art/table.cc: Likewise.
- * text-art/table.h: Remove #include <vector>.
- * text-art/theme.cc: Add #define INCLUDE_VECTOR.
- * text-art/types.h: Check that INCLUDE_VECTOR is defined.
- Remove #include of <vector> and <string>.
- * text-art/widget.cc: Add #define INCLUDE_VECTOR.
- * text-art/widget.h: Remove #include <vector>.
-
-2023-06-24 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * internal-fn.cc (expand_partial_store_optab_fn): Adapt for LEN_MASK_STORE.
- (internal_load_fn_p): Add LEN_MASK_LOAD.
- (internal_store_fn_p): Add LEN_MASK_STORE.
- (internal_fn_mask_index): Add LEN_MASK_{LOAD,STORE}.
- (internal_fn_stored_value_index): Add LEN_MASK_STORE.
- (internal_len_load_store_bias): Add LEN_MASK_{LOAD,STORE}.
- * optabs-tree.cc (can_vec_mask_load_store_p): Adapt for LEN_MASK_{LOAD,STORE}.
- (get_len_load_store_mode): Ditto.
- * optabs-tree.h (can_vec_mask_load_store_p): Ditto.
- (get_len_load_store_mode): Ditto.
- * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Ditto.
- (get_all_ones_mask): New function.
- (vectorizable_store): Apply LEN_MASK_{LOAD,STORE} into vectorizer.
- (vectorizable_load): Ditto.
-
-2023-06-23 Marek Polacek <polacek@redhat.com>
-
- * doc/cpp.texi (__cplusplus): Document value for -std=c++26 and
- -std=gnu++26. Document that for C++23, its value is 202302L.
- * doc/invoke.texi: Document -std=c++26 and -std=gnu++26.
- * dwarf2out.cc (highest_c_language): Handle GNU C++26.
- (gen_compile_unit_die): Likewise.
-
-2023-06-23 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-phiprop.cc (propagate_with_phi): Compute post dominators on
- demand.
- (pass_phiprop::execute): Do not compute it here; return
- update_ssa_only_virtuals if something changed.
- (pass_data_phiprop): Remove TODO_update_ssa from todos.
-
-2023-06-23 Michael Meissner <meissner@linux.ibm.com>
- Aaron Sawdey <acsawdey@linux.ibm.com>
-
- PR target/105325
- * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): Fix problems that
- allowed prefixed lwa to be generated.
- * config/rs6000/fusion.md: Regenerate.
- * config/rs6000/predicates.md (ds_form_mem_operand): Delete.
- * config/rs6000/rs6000.md (prefixed attribute): Add support for load
- plus compare immediate fused insns.
- (maybe_prefixed): Likewise.
-
-2023-06-23 Roger Sayle <roger@nextmovesoftware.com>
-
- * simplify-rtx.cc (simplify_subreg): Optimize lowpart SUBREGs
- of ASHIFT to const0_rtx with sufficiently large shift count.
- Optimize highpart SUBREGs of ASHIFT as the shift operand when
- the shift count is the correct offset. Optimize SUBREGs of
- multi-word logic operations if the SUBREGs of both operands
- can be simplified.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * varasm.cc (initializer_constant_valid_p_1): Only
- allow conversions between scalar floating point types.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vectorizable_assignment):
- Properly handle non-integral operands when analyzing
- conversions.
-
-2023-06-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- PR tree-optimization/110280
- * match.pd (vec_perm_expr(v, v, mask) -> v): Explicitly build vector
- using build_vector_from_val with the element of input operand, and
- mask's type if operand and mask's types don't match.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * fold-const.cc (tree_simple_nonnegative_warnv_p): Guard
- the truth_value_p case with !VECTOR_TYPE_P.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * tree-vect-patterns.cc (vect_look_through_possible_promotion):
- Exit early when the type isn't scalar integral.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * match.pd ((outertype)((innertype0)a+(innertype1)b)
- -> ((newtype)a+(newtype)b)): Use element_precision
- where appropriate.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * fold-const.cc (fold_binary_loc): Use element_precision
- when trying (double)float1 CMP (double)float2 to
- float1 CMP float2 simplification.
- * match.pd: Likewise.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vectorizable_load): Avoid useless
- copies of VMAT_INVARIANT vectorized stmts, fix SLP support.
-
-2023-06-23 Richard Biener <rguenther@suse.de>
-
- * tree-vect-stmts.cc (vector_vector_composition_type):
- Handle composition of a vector from a number of elements that
- happens to match its number of lanes.
-
-2023-06-22 Marek Polacek <polacek@redhat.com>
-
- * configure.ac (--enable-host-bind-now): New check. Add
- -Wl,-z,now to LD_PICFLAG if --enable-host-bind-now.
- * configure: Regenerate.
- * doc/install.texi: Document --enable-host-bind-now.
-
-2023-06-22 Di Zhao OS <dizhao@os.amperecomputing.com>
-
- * config/aarch64/aarch64.cc: Change fma_reassoc_width for ampere1.
-
-2023-06-22 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110332
- * tree-ssa-phiprop.cc (propagate_with_phi): Always
- check aliasing with edge inserted loads.
-
-2023-06-22 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_sse_ptest): Recognize
- expansion of ptestc with equal operands as producing const1_rtx.
- * config/i386/i386.cc (ix86_rtx_costs): Provide accurate cost
- estimates of UNSPEC_PTEST, where the ptest performs the PAND
- or PAND of its operands.
- * config/i386/sse.md (define_split): Transform CCCmode UNSPEC_PTEST
- of reg_equal_p operands into an x86_stc instruction.
- (define_split): Split pandn/ptestz/set{n?}e into ptestc/set{n?}c.
- (define_split): Similar to above for strict_low_part destinations.
- (define_split): Split pandn/ptestz/j{n?}e into ptestc/j{n?}c.
-
-2023-06-22 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/106626
- * Makefile.in (ANALYZER_OBJS): Add analyzer/access-diagram.o.
- * doc/invoke.texi (Wanalyzer-out-of-bounds): Add description of
- text art.
- (fanalyzer-debug-text-art): New.
-
-2023-06-22 David Malcolm <dmalcolm@redhat.com>
-
- * Makefile.in (OBJS-libcommon): Add text-art/box-drawing.o,
- text-art/canvas.o, text-art/ruler.o, text-art/selftests.o,
- text-art/style.o, text-art/styled-string.o, text-art/table.o,
- text-art/theme.o, and text-art/widget.o.
- * color-macros.h (COLOR_FG_BRIGHT_BLACK): New.
- (COLOR_FG_BRIGHT_RED): New.
- (COLOR_FG_BRIGHT_GREEN): New.
- (COLOR_FG_BRIGHT_YELLOW): New.
- (COLOR_FG_BRIGHT_BLUE): New.
- (COLOR_FG_BRIGHT_MAGENTA): New.
- (COLOR_FG_BRIGHT_CYAN): New.
- (COLOR_FG_BRIGHT_WHITE): New.
- (COLOR_BG_BRIGHT_BLACK): New.
- (COLOR_BG_BRIGHT_RED): New.
- (COLOR_BG_BRIGHT_GREEN): New.
- (COLOR_BG_BRIGHT_YELLOW): New.
- (COLOR_BG_BRIGHT_BLUE): New.
- (COLOR_BG_BRIGHT_MAGENTA): New.
- (COLOR_BG_BRIGHT_CYAN): New.
- (COLOR_BG_BRIGHT_WHITE): New.
- * common.opt (fdiagnostics-text-art-charset=): New option.
- (diagnostic-text-art.h): New SourceInclude.
- (diagnostic_text_art_charset) New Enum and EnumValues.
- * configure: Regenerate.
- * configure.ac (gccdepdir): Add text-art to loop.
- * diagnostic-diagram.h: New file.
- * diagnostic-format-json.cc (json_emit_diagram): New.
- (diagnostic_output_format_init_json): Wire it up to
- context->m_diagrams.m_emission_cb.
- * diagnostic-format-sarif.cc: Include "diagnostic-diagram.h" and
- "text-art/canvas.h".
- (sarif_result::on_nested_diagnostic): Move code to...
- (sarif_result::add_related_location): ...this new function.
- (sarif_result::on_diagram): New.
- (sarif_builder::emit_diagram): New.
- (sarif_builder::make_message_object_for_diagram): New.
- (sarif_emit_diagram): New.
- (diagnostic_output_format_init_sarif): Set
- context->m_diagrams.m_emission_cb to sarif_emit_diagram.
- * diagnostic-text-art.h: New file.
- * diagnostic.cc: Include "diagnostic-text-art.h",
- "diagnostic-diagram.h", and "text-art/theme.h".
- (diagnostic_initialize): Initialize context->m_diagrams and
- call diagnostics_text_art_charset_init.
- (diagnostic_finish): Clean up context->m_diagrams.m_theme.
- (diagnostic_emit_diagram): New.
- (diagnostics_text_art_charset_init): New.
- * diagnostic.h (text_art::theme): New forward decl.
- (class diagnostic_diagram): Likewise.
- (diagnostic_context::m_diagrams): New field.
- (diagnostic_emit_diagram): New decl.
- * doc/invoke.texi (Diagnostic Message Formatting Options): Add
- -fdiagnostics-text-art-charset=.
- (-fdiagnostics-plain-output): Add
- -fdiagnostics-text-art-charset=none.
- * gcc.cc: Include "diagnostic-text-art.h".
- (driver_handle_option): Handle OPT_fdiagnostics_text_art_charset_.
- * opts-common.cc (decode_cmdline_options_to_array): Add
- "-fdiagnostics-text-art-charset=none" to expanded_args for
- -fdiagnostics-plain-output.
- * opts.cc: Include "diagnostic-text-art.h".
- (common_handle_option): Handle OPT_fdiagnostics_text_art_charset_.
- * pretty-print.cc (pp_unicode_character): New.
- * pretty-print.h (pp_unicode_character): New decl.
- * selftest-run-tests.cc: Include "text-art/selftests.h".
- (selftest::run_tests): Call text_art_tests.
- * text-art/box-drawing-chars.inc: New file, generated by
- contrib/unicode/gen-box-drawing-chars.py.
- * text-art/box-drawing.cc: New file.
- * text-art/box-drawing.h: New file.
- * text-art/canvas.cc: New file.
- * text-art/canvas.h: New file.
- * text-art/ruler.cc: New file.
- * text-art/ruler.h: New file.
- * text-art/selftests.cc: New file.
- * text-art/selftests.h: New file.
- * text-art/style.cc: New file.
- * text-art/styled-string.cc: New file.
- * text-art/table.cc: New file.
- * text-art/table.h: New file.
- * text-art/theme.cc: New file.
- * text-art/theme.h: New file.
- * text-art/types.h: New file.
- * text-art/widget.cc: New file.
- * text-art/widget.h: New file.
-
-2023-06-21 Uros Bizjak <ubizjak@gmail.com>
-
- * function.h (emit_initial_value_sets):
- Change return type from int to void.
- (aggregate_value_p): Change return type from int to bool.
- (prologue_contains): Ditto.
- (epilogue_contains): Ditto.
- (prologue_epilogue_contains): Ditto.
- * function.cc (temp_slot): Make "in_use" variable bool.
- (make_slot_available): Update for changed "in_use" variable.
- (assign_stack_temp_for_type): Ditto.
- (emit_initial_value_sets): Change return type from int to void
- and update function body accordingly.
- (instantiate_virtual_regs): Ditto.
- (rest_of_handle_thread_prologue_and_epilogue): Ditto.
- (safe_insn_predicate): Change return type from int to bool.
- (aggregate_value_p): Change return type from int to bool
- and update function body accordingly.
- (prologue_contains): Change return type from int to bool.
- (prologue_epilogue_contains): Ditto.
-
-2023-06-21 Alexander Monakov <amonakov@ispras.ru>
-
- * common.opt (fp_contract_mode) [on]: Remove fallback.
- * config/sh/sh.md (*fmasf4): Correct flag_fp_contract_mode test.
- * doc/invoke.texi (-ffp-contract): Update.
- * trans-mem.cc (diagnose_tm_1): Skip internal function calls.
-
-2023-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
- Add alternatives to prefer to avoid same input and output Z register.
- (mask_gather_load<mode><v_int_container>): Likewise.
- (*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
- (*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
- (*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
- Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
- Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_sxtw): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (*aarch64_ldff1_gather<mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather<mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
- <VNx4_NARROW:mode>): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_uxtw): Likewise.
- * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
- (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
- <SVE_PARTIAL_I:mode>): Likewise.
-
-2023-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
- Convert to compact alternatives syntax.
- (mask_gather_load<mode><v_int_container>): Likewise.
- (*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
- (*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
- (*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
- Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
- Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_sxtw): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (*aarch64_ldff1_gather<mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather<mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
- <VNx4_NARROW:mode>): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_uxtw): Likewise.
- * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
- (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
- <SVE_PARTIAL_I:mode>): Likewise.
-
-2023-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- Revert:
- 2023-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
- Convert to compact alternatives syntax.
- (mask_gather_load<mode><v_int_container>): Likewise.
- (*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
- (*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
- (*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
- Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
- Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_sxtw): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (*aarch64_ldff1_gather<mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather<mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
- <VNx4_NARROW:mode>): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_uxtw): Likewise.
- * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
- (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
- <SVE_PARTIAL_I:mode>): Likewise.
-
-2023-06-21 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * optabs-query.cc (can_vec_mask_load_store_p): Move to optabs-tree.cc.
- (get_len_load_store_mode): Ditto.
- * optabs-query.h (can_vec_mask_load_store_p): Move to optabs-tree.h.
- (get_len_load_store_mode): Ditto.
- * optabs-tree.cc (can_vec_mask_load_store_p): New function.
- (get_len_load_store_mode): Ditto.
- * optabs-tree.h (can_vec_mask_load_store_p): Ditto.
- (get_len_load_store_mode): Ditto.
- * tree-if-conv.cc: include optabs-tree instead of optabs-query
-
-2023-06-21 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop-ivopts.cc (add_iv_candidate_for_use): Use
- split_constant_offset for the POINTER_PLUS_EXPR case.
-
-2023-06-21 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop-ivopts.cc (record_group_use): Use
- split_constant_offset.
-
-2023-06-21 Richard Biener <rguenther@suse.de>
-
- * tree-loop-distribution.cc (classify_builtin_st): Use
- split_constant_offset.
- * tree-ssa-loop-ivopts.h (strip_offset): Remove.
- * tree-ssa-loop-ivopts.cc (strip_offset): Make static.
-
-2023-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>):
- Convert to compact alternatives syntax.
- (mask_gather_load<mode><v_int_container>): Likewise.
- (*mask_gather_load<mode><v_int_container>_<su>xtw_unpacked): Likewise.
- (*mask_gather_load<mode><v_int_container>_sxtw): Likewise.
- (*mask_gather_load<mode><v_int_container>_uxtw): Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>):
- Likewise.
- (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>):
- Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_sxtw): Likewise.
- (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode>
- <SVE_2BHSI:mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (@aarch64_ldff1_gather<mode>): Likewise.
- (*aarch64_ldff1_gather<mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather<mode>_uxtw): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode>
- <VNx4_NARROW:mode>): Likewise.
- (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_sxtw): Likewise.
- (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode>
- <VNx2_NARROW:mode>_uxtw): Likewise.
- * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): Likewise.
- (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode>
- <SVE_PARTIAL_I:mode>): Likewise.
-
-2023-06-21 Tamar Christina <tamar.christina@arm.com>
-
- PR other/110329
- * doc/md.texi: Replace backslashchar.
-
-2023-06-21 Richard Biener <rguenther@suse.de>
-
- * config/i386/i386.cc (ix86_vector_costs::finish_cost):
- Overload. For masked main loops make sure the vectorization
- factor isn't more than double the number of iterations.
-
-2023-06-21 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/i386-expand.cc (ix86_expand_copysign): Request
- value duplication by ix86_build_signbit_mask() when AVX512F and
- not HFmode.
- * config/i386/sse.md (*<avx512>_vternlog<mode>_all): Convert to
- 2-alternative form. Adjust "mode" attribute. Add "enabled"
- attribute.
- (*<avx512>_vpternlog<mode>_1): Also permit when TARGET_AVX512F
- && !TARGET_PREFER_AVX256.
- (*<avx512>_vpternlog<mode>_2): Likewise.
- (*<avx512>_vpternlog<mode>_3): Likewise.
-
-2023-06-21 liuhongt <hongtao.liu@intel.com>
-
- PR target/110018
- * tree-vect-stmts.cc (vectorizable_conversion): Use
- intermiediate integer type for float_expr/fix_trunc_expr when
- direct optab is not existed.
-
-2023-06-20 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/110324
- * gensupport.cc (convert_syntax): Explicitly check for RTX code.
-
-2023-06-20 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64.md (stack_tie): Hard-code the first
- register operand to the stack pointer. Require the second register
- operand to have the number specified in a separate const_int operand.
- * config/aarch64/aarch64.cc (aarch64_emit_stack_tie): New function.
- (aarch64_allocate_and_probe_stack_space): Use it.
- (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
- (aarch64_expand_epilogue): Likewise.
-
-2023-06-20 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/79173
- * tree-ssa-math-opts.cc (match_uaddc_usubc): Remember lhs of
- IMAGPART_EXPR of arg2/arg3 and use that as arg3 if it has the right
- type.
-
-2023-06-20 Uros Bizjak <ubizjak@gmail.com>
-
- * calls.h (setjmp_call_p): Change return type from int to bool.
- * calls.cc (struct arg_data): Change "pass_on_stack" to bool.
- (store_one_arg): Change return type from int to bool
- and adjust function body accordingly. Change "sibcall_failure"
- variable to bool.
- (finalize_must_preallocate): Ditto. Change *must_preallocate pointer
- argument to bool. Change "partial_seen" variable to bool.
- (load_register_parameters): Change *sibcall_failure
- pointer argument to bool.
- (check_sibcall_argument_overlap_1): Change return type from int to bool
- and adjust function body accordingly.
- (check_sibcall_argument_overlap): Ditto. Change
- "mark_stored_args_map" argument to bool.
- (emit_call_1): Change "already_popped" variable to bool.
- (setjmp_call_p): Change return type from int to bool
- and adjust function body accordingly.
- (initialize_argument_information): Change *must_preallocate
- pointer argument to bool.
- (expand_call): Change "pcc_struct_value", "must_preallocate"
- and "sibcall_failure" variables to bool.
- (emit_library_call_value_1): Change "pcc_struct_value"
- variable to bool.
-
-2023-06-20 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/110276
- * ipa-sra.cc (struct caller_issues): New field there_is_one.
- (check_for_caller_issues): Set it.
- (check_all_callers_for_issues): Check it.
-
-2023-06-20 Martin Jambor <mjambor@suse.cz>
-
- * ipa-prop.h (ipa_uid_to_idx_map_elt): New type.
- (struct ipcp_transformation): Rearrange members according to
- C++ class coding convention, add m_uid_to_idx,
- get_param_index and maybe_create_parm_idx_map.
- * ipa-cp.cc (ipcp_transformation::get_param_index): New function.
- (compare_uids): Likewise.
- (ipcp_transformation::maype_create_parm_idx_map): Likewise.
- * ipa-prop.cc (ipcp_get_parm_bits): Use get_param_index.
- (ipcp_update_bits): Accept TS as a parameter, assume it is not NULL.
- (ipcp_update_vr): Likewise.
- (ipcp_transform_function): Call, maybe_create_parm_idx_map of TS, bail
- out quickly if empty, pass it to ipcp_update_bits and ipcp_update_vr.
-
-2023-06-20 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin):
- Rename CODE_FOR_xsxsigqp_tf to CODE_FOR_xsxsigqp_tf_ti.
- Rename CODE_FOR_xsxsigqp_kf to CODE_FOR_xsxsigqp_kf_ti.
- Rename CCDE_FOR_xsxexpqp_tf to CODE_FOR_xsxexpqp_tf_di.
- Rename CODE_FOR_xsxexpqp_kf to CODE_FOR_xsxexpqp_kf_di.
- (CODE_FOR_xsxexpqp_kf_v2di, CODE_FOR_xsxsigqp_kf_v1ti,
- CODE_FOR_xsiexpqp_kf_v2di): Add case statements.
- * config/rs6000/rs6000-builtins.def
- (__builtin_vsx_scalar_extract_exp_to_vec,
- __builtin_vsx_scalar_extract_sig_to_vec,
- __builtin_vsx_scalar_insert_exp_vqp): Add new builtin definitions.
- Rename xsxexpqp_kf, xsxsigqp_kf, xsiexpqp_kf to xsexpqp_kf_di,
- xsxsigqp_kf_ti, xsiexpqp_kf_di respectively.
- * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
- Update case RS6000_OVLD_VEC_VSIE to handle MODE_VECTOR_INT for new
- overloaded instance. Update comments.
- * config/rs6000/rs6000-overload.def
- (__builtin_vec_scalar_insert_exp): Add new overload definition with
- vector arguments.
- (scalar_extract_exp_to_vec, scalar_extract_sig_to_vec): New
- overloaded definitions.
- * config/rs6000/vsx.md (V2DI_DI): New mode iterator.
- (DI_to_TI): New mode attribute.
- Rename xsxexpqp_<mode> to sxexpqp_<IEEE128:mode>_<V2DI_DI:mode>.
- Rename xsxsigqp_<mode> to xsxsigqp_<IEEE128:mode>_<VEC_TI:mode>.
- Rename xsiexpqp_<mode> to xsiexpqp_<IEEE128:mode>_<V2DI_DI:mode>.
- * doc/extend.texi (scalar_extract_exp_to_vec,
- scalar_extract_sig_to_vec): Add documentation for new builtins.
- (scalar_insert_exp): Add new overloaded builtin definition.
-
-2023-06-20 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_regmode_natural_size): set the natural
- size of vector mask mode to one rvv register.
-
-2023-06-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_const_vector): Optimize codegen.
-
-2023-06-20 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_arg_has_vector): Add default
- switch handler.
-
-2023-06-20 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-dse.cc (dse_classify_store): When we found
- no defs and the basic-block with the original definition
- ends in __builtin_unreachable[_trap] the store is dead.
-
-2023-06-20 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-phiprop.cc (phiprop_insert_phi): For simple loads
- keep the virtual SSA form up-to-date.
-
-2023-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (*aarch64_addp_same_reg<mode>):
- New define_insn_and_split.
-
-2023-06-20 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64.md (*mov<mode>_aarch64): Drop test comment.
-
-2023-06-20 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (vec_dupv2di): Correct %vmovddup input
- constraint. Add new AVX512F alternative.
-
-2023-06-20 Richard Biener <rguenther@suse.de>
-
- PR debug/110295
- * dwarf2out.cc (process_scope_var): Continue processing
- the decl after setting a parent in case the existing DIE
- was in limbo.
-
-2023-06-20 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_scalable_vector_type_p): Delete.
- (riscv_arg_has_vector): Simplify.
- (riscv_pass_in_vector_p): Adjust warning message.
-
-2023-06-19 Jin Ma <jinma@linux.alibaba.com>
-
- * config/riscv/riscv.cc (riscv_compute_frame_info): Allocate frame for FCSR.
- (riscv_for_each_saved_reg): Save and restore FCSR in interrupt functions.
- * config/riscv/riscv.md (riscv_frcsr): New patterns.
- (riscv_fscsr): Likewise.
-
-2023-06-19 Toru Kisuki <tkisuki@tachyum.com>
-
- PR rtl-optimization/110305
- * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
- Handle HONOR_SNANS for x + 0.0.
-
-2023-06-19 Jan Hubicka <jh@suse.cz>
-
- PR tree-optimization/109811
- PR tree-optimization/109849
- * passes.def: Add phiprop to early optimization passes.
- * tree-ssa-phiprop.cc: Allow clonning.
-
-2023-06-19 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64.md (arches): Add nosimd.
- (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Rewrite to
- compact syntax.
-
-2023-06-19 Tamar Christina <tamar.christina@arm.com>
- Omar Tahir <Omar.Tahir2@arm.com>
-
- * gensupport.cc (class conlist, add_constraints, add_attributes,
- skip_spaces, expect_char, preprocess_compact_syntax,
- parse_section_layout, parse_section, convert_syntax): New.
- (process_rtx): Check for conversion.
- * genoutput.cc (process_template): Check for unresolved iterators.
- (class data): Add compact_syntax_p.
- (gen_insn): Use it.
- * gensupport.h (compact_syntax): New.
- (hash-set.h): Include.
- * doc/md.texi: Document it.
-
-2023-06-19 Uros Bizjak <ubizjak@gmail.com>
-
- * recog.h (check_asm_operands): Change return type from int to bool.
- (insn_invalid_p): Ditto.
- (verify_changes): Ditto.
- (apply_change_group): Ditto.
- (constrain_operands): Ditto.
- (constrain_operands_cached): Ditto.
- (validate_replace_rtx_subexp): Ditto.
- (validate_replace_rtx): Ditto.
- (validate_replace_rtx_part): Ditto.
- (validate_replace_rtx_part_nosimplify): Ditto.
- (added_clobbers_hard_reg_p): Ditto.
- (peep2_regno_dead_p): Ditto.
- (peep2_reg_dead_p): Ditto.
- (store_data_bypass_p): Ditto.
- (if_test_bypass_p): Ditto.
- * rtl.h (split_all_insns_noflow): Change
- return type from unsigned int to void.
- * genemit.cc (output_added_clobbers_hard_reg_p): Change return type
- of generated added_clobbers_hard_reg_p from int to bool and adjust
- function body accordingly. Change "used" variable type from
- int to bool.
- * recog.cc (check_asm_operands): Change return type
- from int to bool and adjust function body accordingly.
- (insn_invalid_p): Ditto. Change "is_asm" variable to bool.
- (verify_changes): Change return type from int to bool.
- (apply_change_group): Change return type from int to bool
- and adjust function body accordingly.
- (validate_replace_rtx_subexp): Change return type from int to bool.
- (validate_replace_rtx): Ditto.
- (validate_replace_rtx_part): Ditto.
- (validate_replace_rtx_part_nosimplify): Ditto.
- (constrain_operands_cached): Ditto.
- (constrain_operands): Ditto. Change "lose" and "win"
- variables type from int to bool.
- (split_all_insns_noflow): Change return type from unsigned int
- to void and adjust function body accordingly.
- (peep2_regno_dead_p): Change return type from int to bool.
- (peep2_reg_dead_p): Ditto.
- (peep2_find_free_register): Change "success"
- variable type from int to bool
- (store_data_bypass_p_1): Change return type from int to bool.
- (store_data_bypass_p): Ditto.
-
-2023-06-19 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/vector-iterators.md: zvfh/zvfhmin depends on the
- Zve32f extension.
-
-2023-06-19 Pan Li <pan2.li@intel.com>
-
- PR target/110299
- * config/riscv/riscv-vector-builtins-bases.cc: Adjust expand for
- modes.
- * config/riscv/vector-iterators.md: Remove VWLMUL1, VWLMUL1_ZVE64,
- VWLMUL1_ZVE32, VI_ZVE64, VI_ZVE32, VWI, VWI_ZVE64, VWI_ZVE32,
- VF_ZVE63 and VF_ZVE32.
- * config/riscv/vector.md
- (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Removed.
- (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
- (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>): Ditto.
- (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
- (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
- (@pred_widen_reduc_plus<v_su><VQI:mode><VHI_LMUL1:mode>): New pattern.
- (@pred_widen_reduc_plus<v_su><VHI:mode><VSI_LMUL1:mode>): Ditto.
- (@pred_widen_reduc_plus<v_su><VSI:mode><VDI_LMUL1:mode>): Ditto.
- (@pred_widen_reduc_plus<order><VHF:mode><VSF_LMUL1:mode>): Ditto.
- (@pred_widen_reduc_plus<order><VSF:mode><VDF_LMUL1:mode>): Ditto.
-
-2023-06-19 Pan Li <pan2.li@intel.com>
-
- PR target/110277
- * config/riscv/riscv-vector-builtins-bases.cc: Adjust expand for
- ret_mode.
- * config/riscv/vector-iterators.md: Add VHF, VSF, VDF,
- VHF_LMUL1, VSF_LMUL1, VDF_LMUL1, and remove unused attr.
- * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): Removed.
- (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
- (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
- (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
- (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
- (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
- (@pred_reduc_<reduc><VHF:mode><VHF_LMUL1:mode>): New pattern.
- (@pred_reduc_<reduc><VSF:mode><VSF_LMUL1:mode>): Ditto.
- (@pred_reduc_<reduc><VDF:mode><VDF_LMUL1:mode>): Ditto.
- (@pred_reduc_plus<order><VHF:mode><VHF_LMUL1:mode>): Ditto.
- (@pred_reduc_plus<order><VSF:mode><VSF_LMUL1:mode>): Ditto.
- (@pred_reduc_plus<order><VDF:mode><VDF_LMUL1:mode>): Ditto.
-
-2023-06-19 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn.cc (gcn_expand_divmod_libfunc): New function.
- (gcn_init_libfuncs): Add div and mod functions for all modes.
- Add placeholders for divmod functions.
- (TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
-
-2023-06-19 Andrew Stubbs <ams@codesourcery.com>
-
- * tree-vect-generic.cc: Include optabs-libfuncs.h.
- (get_compute_type): Check optab_libfunc.
- * tree-vect-stmts.cc: Include optabs-libfuncs.h.
- (vectorizable_operation): Check optab_libfunc.
-
-2023-06-19 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-protos.h (vgpr_4reg_mode_p): New function.
- * config/gcn/gcn-valu.md (V_4REG, V_4REG_ALT): New iterators.
- (V_MOV, V_MOV_ALT): Likewise.
- (scalar_mode, SCALAR_MODE): Add TImode.
- (vnsi, VnSI, vndi, VnDI): Likewise.
- (vec_merge, vec_merge_with_clobber, vec_merge_with_vcc): Use V_MOV.
- (mov<mode>, mov<mode>_unspec): Use V_MOV.
- (*mov<mode>_4reg): New insn.
- (mov<mode>_exec): New 4reg variant.
- (mov<mode>_sgprbase): Likewise.
- (reload_in<mode>, reload_out<mode>): Use V_MOV.
- (vec_set<mode>): Likewise.
- (vec_duplicate<mode><exec>): New 4reg variant.
- (vec_extract<mode><scalar_mode>): Likewise.
- (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Rename to ...
- (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): ... this, and use V_MOV.
- (vec_extract<V_4REG:mode><V_4REG_ALT:mode>_nop): New 4reg variant.
- (fold_extract_last_<mode>): Use V_MOV.
- (vec_init<V_ALL:mode><V_ALL_ALT:mode>): Rename to ...
- (vec_init<V_MOV:mode><V_MOV_ALT:mode>): ... this, and use V_MOV.
- (gather_load<mode><vnsi>, gather<mode>_expr<exec>,
- gather<mode>_insn_1offset<exec>, gather<mode>_insn_1offset_ds<exec>,
- gather<mode>_insn_2offsets<exec>): Use V_MOV.
- (scatter_store<mode><vnsi>, scatter<mode>_expr<exec_scatter>,
- scatter<mode>_insn_1offset<exec_scatter>,
- scatter<mode>_insn_1offset_ds<exec_scatter>,
- scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
- (maskload<mode>di, maskstore<mode>di, mask_gather_load<mode><vnsi>,
- mask_scatter_store<mode><vnsi>): Likewise.
- * config/gcn/gcn.cc (gcn_class_max_nregs): Use vgpr_4reg_mode_p.
- (gcn_hard_regno_mode_ok): Likewise.
- (GEN_VNM): Add TImode support.
- (USE_TI): New macro. Separate TImode operations from non-TImode ones.
- (gcn_vector_mode_supported_p): Add V64TImode, V32TImode, V16TImode,
- V8TImode, and V2TImode.
- (print_operand): Add 'J' and 'K' print codes.
-
-2023-06-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110298
- * tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely):
- Clear number of iterations info before cleaning up the CFG.
-
-2023-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
- Simplify vec_concat of lowpart subreg and high part vec_select.
-
-2023-06-19 Tobias Burnus <tobias@codesourcery.com>
-
- * doc/invoke.texi (-foffload-options): Remove '-O3' from the examples.
-
-2023-06-19 Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors):
- Handle null niters_skip.
-
-2023-06-19 Richard Biener <rguenther@suse.de>
-
- * config/aarch64/aarch64.cc
- (aarch64_vector_costs::analyze_loop_vinfo): Fix reference
- to LOOP_VINFO_MASKS.
-
-2023-06-19 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
-
- PR target/105523
- * common/config/avr/avr-common.cc: Remove setting
- of OPT_fdelete_null_pointer_checks.
- * config/avr/avr.cc (avr_option_override): Clear
- flag_delete_null_pointer_checks if zero_address_valid.
- (avr_addr_space_zero_address_valid): New function.
- (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Provide target
- hook.
-
-2023-06-19 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- Robin Dapp <rdapp.gcc@gmail.com>
-
- * doc/md.texi: Add len_mask{load,store}.
- * genopinit.cc (main): Ditto.
- (CMP_NAME): Ditto.
- * internal-fn.cc (len_maskload_direct): Ditto.
- (len_maskstore_direct): Ditto.
- (expand_call_mem_ref): Ditto.
- (expand_partial_load_optab_fn): Ditto.
- (expand_len_maskload_optab_fn): Ditto.
- (expand_partial_store_optab_fn): Ditto.
- (expand_len_maskstore_optab_fn): Ditto.
- (direct_len_maskload_optab_supported_p): Ditto.
- (direct_len_maskstore_optab_supported_p): Ditto.
- * internal-fn.def (LEN_MASK_LOAD): Ditto.
- (LEN_MASK_STORE): Ditto.
- * optabs.def (OPTAB_CD): Ditto.
-
-2023-06-19 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<optab><mode>2): Add unop expanders.
-
-2023-06-19 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<optab><mode>3): Implement binop
- expander.
- * config/riscv/riscv-protos.h (emit_vlmax_fp_insn): Declare.
- (enum vxrm_field_enum): Rename this...
- (enum fixed_point_rounding_mode): ...to this.
- (enum frm_field_enum): Rename this...
- (enum floating_point_rounding_mode): ...to this.
- * config/riscv/riscv-v.cc (emit_vlmax_fp_insn): New function
- * config/riscv/riscv.cc (riscv_const_insns): Clarify const
- vector handling.
- (riscv_libgcc_floating_mode_supported_p): Adjust comment.
- (riscv_excess_precision): Do not convert to float for ZVFH.
- * config/riscv/vector-iterators.md: Add VF_AUTO iterator.
-
-2023-06-19 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/vector-iterators.md: Add VI_QH iterator.
- * config/riscv/autovec-opt.md
- (@pred_extract_first_sextdi<mode>): New vmv.x.s pattern
- that includes sign extension.
- (@pred_extract_first_sextsi<mode>): Dito for SImode.
-
-2023-06-19 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (vec_set<mode>): Implement.
- (vec_extract<mode><vel>): Implement.
- * config/riscv/riscv-protos.h (enum insn_type): Add slide insn.
- (emit_vlmax_slide_insn): Declare.
- (emit_nonvlmax_slide_tu_insn): Declare.
- (emit_scalar_move_insn): Export.
- (emit_nonvlmax_integer_move_insn): Export.
- * config/riscv/riscv-v.cc (emit_vlmax_slide_insn): New function.
- (emit_nonvlmax_slide_tu_insn): New function.
- (emit_vlmax_masked_mu_insn): No change.
- (emit_vlmax_integer_move_insn): Export.
-
-2023-06-19 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (enum vect_partial_vector_style): New.
- (_loop_vec_info::partial_vector_style): Likewise.
- (LOOP_VINFO_PARTIAL_VECTORS_STYLE): Likewise.
- (rgroup_controls::compare_type): Add.
- (vec_loop_masks): Change from a typedef to auto_vec<>
- to a structure.
- * tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors):
- Adjust. Convert niters_skip to compare_type.
- (vect_set_loop_condition_partial_vectors_avx512): New function
- implementing the AVX512 partial vector codegen.
- (vect_set_loop_condition): Dispatch to the correct
- vect_set_loop_condition_partial_vectors_* function based on
- LOOP_VINFO_PARTIAL_VECTORS_STYLE.
- (vect_prepare_for_masked_peels): Compute LOOP_VINFO_MASK_SKIP_NITERS
- in the original niter type.
- * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
- partial_vector_style.
- (can_produce_all_loop_masks_p): Adjust.
- (vect_verify_full_masking): Produce the rgroup_controls vector
- here. Set LOOP_VINFO_PARTIAL_VECTORS_STYLE on success.
- (vect_verify_full_masking_avx512): New function implementing
- verification of AVX512 style masking.
- (vect_verify_loop_lens): Set LOOP_VINFO_PARTIAL_VECTORS_STYLE.
- (vect_analyze_loop_2): Also try AVX512 style masking.
- Adjust condition.
- (vect_estimate_min_profitable_iters): Implement AVX512 style
- mask producing cost.
- (vect_record_loop_mask): Do not build the rgroup_controls
- vector here but record masks in a hash-set.
- (vect_get_loop_mask): Implement AVX512 style mask query,
- complementing the existing while_ult style.
-
-2023-06-19 Richard Biener <rguenther@suse.de>
-
- * tree-vectorizer.h (vect_get_loop_mask): Add loop_vec_info
- argument.
- * tree-vect-loop.cc (vect_get_loop_mask): Likewise.
- (vectorize_fold_left_reduction): Adjust.
- (vect_transform_reduction): Likewise.
- (vectorizable_live_operation): Likewise.
- * tree-vect-stmts.cc (vectorizable_call): Likewise.
- (vectorizable_operation): Likewise.
- (vectorizable_store): Likewise.
- (vectorizable_load): Likewise.
- (vectorizable_condition): Likewise.
-
-2023-06-19 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
-
- PR target/110086
- * config/avr/avr.opt (mgas-isr-prologues, mmain-is-OS_task):
- Add Optimization option property.
-
-2023-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.cc (xtensa_constantsynth_2insn):
- Add new pattern for the abovementioned case.
-
-2023-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.cc
- (TARGET_MEMORY_MOVE_COST, xtensa_memory_move_cost): Remove.
-
-2023-06-19 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (TARGET_CONST_ANCHOR): New define.
-
-2023-06-19 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * cse.cc (try_const_anchors): Check SCALAR_INT_MODE.
-
-2023-06-19 liuhongt <hongtao.liu@intel.com>
-
- PR target/110235
- * config/i386/sse.md (<sse2_avx2>_packsswb<mask_name>):
- Substitute with ..
- (sse2_packsswb<mask_name>): .. this, ..
- (avx2_packsswb<mask_name>): .. this and ..
- (avx512bw_packsswb<mask_name>): .. this.
- (<sse2_avx2>_packssdw<mask_name>): Substitute with ..
- (sse2_packssdw<mask_name>): .. this, ..
- (avx2_packssdw<mask_name>): .. this and ..
- (avx512bw_packssdw<mask_name>): .. this.
-
-2023-06-19 liuhongt <hongtao.liu@intel.com>
-
- PR target/110235
- * config/i386/i386-expand.cc (ix86_split_mmx_pack): Use
- UNSPEC_US_TRUNCATE instead of original us_truncate for
- packusdw/packuswb.
- * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb): Substitute
- with ..
- (mmx_packsswb): .. this and ..
- (mmx_packuswb): .. this.
- (mmx_packusdw): Use UNSPEC_US_TRUNCATE instead of original
- us_truncate.
- (s_trunsuffix): Removed code iterator.
- (any_s_truncate): Ditto.
- * config/i386/sse.md (<sse2_avx2>_packuswb<mask_name>): Use
- UNSPEC_US_TRUNCATE instead of original us_truncate.
- (<sse4_1_avx2>_packusdw<mask_name>): Ditto.
- * config/i386/i386.md (UNSPEC_US_TRUNCATE): New unspec_c_enum.
-
-2023-06-18 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Fix one typo.
-
-2023-06-18 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (*rtx_equal_p_callback_function):
- Change return type from int to bool.
- (rtx_equal_p): Ditto.
- (*hash_rtx_callback_function): Ditto.
- * rtl.cc (rtx_equal_p): Change return type from int to bool
- and adjust function body accordingly.
- * early-remat.cc (scratch_equal): Ditto.
- * sel-sched-ir.cc (skip_unspecs_callback): Ditto.
- (hash_with_unspec_callback): Ditto.
-
-2023-06-18 Jeff Law <jlaw@ventanamicro.com>
-
- * config/arc/arc.md (movqi_insn): Allow certain constants to
- be stored into memory in the pattern's condition.
- (movsf_insn): Similarly.
-
-2023-06-18 Honza <jh@ryzen3.suse.cz>
-
- PR tree-optimization/109849
- * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Add new parameter
- ES; handle ipa_predicate::not_sra_candidate.
- (evaluate_properties_for_edge): Pass es to
- evaluate_conditions_for_known_args.
- (ipa_fn_summary_t::duplicate): Handle sra candidates.
- (dump_ipa_call_summary): Dump points_to_possible_sra_candidate.
- (load_or_store_of_ptr_parameter): New function.
- (points_to_possible_sra_candidate_p): New function.
- (analyze_function_body): Initialize points_to_possible_sra_candidate;
- determine sra predicates.
- (estimate_ipcp_clone_size_and_time): Update call of
- evaluate_conditions_for_known_args.
- (remap_edge_params): Update points_to_possible_sra_candidate.
- (read_ipa_call_summary): Stream points_to_possible_sra_candidate
- (write_ipa_call_summary): Likewise.
- * ipa-predicate.cc (ipa_predicate::add_clause): Handle not_sra_candidate.
- (dump_condition): Dump it.
- * ipa-predicate.h (struct inline_param_summary): Add
- points_to_possible_sra_candidate.
-
-2023-06-18 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_carry): New helper
- function for setting the carry flag.
- (ix86_expand_builtin) <handlecarry>: Use it here.
- * config/i386/i386-protos.h (ix86_expand_carry): Prototype here.
- * config/i386/i386.md (uaddc<mode>5): Use ix86_expand_carry.
- (usubc<mode>5): Likewise.
-
-2023-06-18 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (*concat<mode><dwi>3_1): Use QImode
- for the immediate constant shift count.
- (*concat<mode><dwi>3_2): Likewise.
- (*concat<mode><dwi>3_3): Likewise.
- (*concat<mode><dwi>3_4): Likewise.
- (*concat<mode><dwi>3_5): Likewise.
- (*concat<mode><dwi>3_6): Likewise.
-
-2023-06-18 Uros Bizjak <ubizjak@gmail.com>
-
- * cse.cc (hash_rtx_cb): Rename to hash_rtx.
- (hash_rtx): Remove.
- * early-remat.cc (remat_candidate_hasher::equal): Update
- to call rtx_equal_p with rtx_equal_p_callback_function argument.
- * rtl.cc (rtx_equal_p_cb): Rename to rtx_equal_p.
- (rtx_equal_p): Remove.
- * rtl.h (rtx_equal_p): Add rtx_equal_p_callback_function
- argument with NULL default value.
- (rtx_equal_p_cb): Remove function declaration.
- (hash_rtx_cb): Ditto.
- (hash_rtx): Add hash_rtx_callback_function argument
- with NULL default value.
- * sel-sched-ir.cc (free_nop_pool): Update function comment.
- (skip_unspecs_callback): Ditto.
- (vinsn_init): Update to call hash_rtx with
- hash_rtx_callback_function argument.
- (vinsn_equal_p): Ditto.
-
-2023-06-18 yulong <shiyulong@iscas.ac.cn>
-
- * config/riscv/genrvv-type-indexer.cc (valid_type): Enable FP16 tuple.
- * config/riscv/riscv-modes.def (RVV_TUPLE_MODES): New macro.
- (ADJUST_ALIGNMENT): Ditto.
- (RVV_TUPLE_PARTIAL_MODES): Ditto.
- (ADJUST_NUNITS): Ditto.
- * config/riscv/riscv-vector-builtins-types.def (vfloat16mf4x2_t):
- New types.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Ditto.
- (vfloat16m2x4_t): Ditto.
- (vfloat16m4x2_t): Ditto.
- * config/riscv/riscv-vector-builtins.def (vfloat16mf4x2_t): New macro.
- (vfloat16mf4x3_t): Ditto.
- (vfloat16mf4x4_t): Ditto.
- (vfloat16mf4x5_t): Ditto.
- (vfloat16mf4x6_t): Ditto.
- (vfloat16mf4x7_t): Ditto.
- (vfloat16mf4x8_t): Ditto.
- (vfloat16mf2x2_t): Ditto.
- (vfloat16mf2x3_t): Ditto.
- (vfloat16mf2x4_t): Ditto.
- (vfloat16mf2x5_t): Ditto.
- (vfloat16mf2x6_t): Ditto.
- (vfloat16mf2x7_t): Ditto.
- (vfloat16mf2x8_t): Ditto.
- (vfloat16m1x2_t): Ditto.
- (vfloat16m1x3_t): Ditto.
- (vfloat16m1x4_t): Ditto.
- (vfloat16m1x5_t): Ditto.
- (vfloat16m1x6_t): Ditto.
- (vfloat16m1x7_t): Ditto.
- (vfloat16m1x8_t): Ditto.
- (vfloat16m2x2_t): Ditto.
- (vfloat16m2x3_t): Ditto.
- (vfloat16m2x4_t): Ditto.
- (vfloat16m4x2_t): Ditto.
- * config/riscv/riscv-vector-switch.def (TUPLE_ENTRY): New.
- * config/riscv/riscv.md: New.
- * config/riscv/vector-iterators.md: New.
-
-2023-06-17 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_move): Check that OP1 is
- CONST_WIDE_INT_P before calling ix86_convert_wide_int_to_broadcast.
- Generalize special case for converting TImode to V1TImode to handle
- all 128-bit vector conversions.
-
-2023-06-17 Costas Argyris <costas.argyris@gmail.com>
-
- * gcc-ar.cc (main): Refactor to slightly reduce code
- duplication. Avoid unnecessary elements in nargv.
-
-2023-06-16 Pan Li <pan2.li@intel.com>
-
- PR target/110265
- * config/riscv/riscv-vector-builtins-bases.cc: Add ret_mode for
- integer reduction expand.
- * config/riscv/vector-iterators.md: Add VQI, VHI, VSI and VDI,
- and the LMUL1 attr respectively.
- * config/riscv/vector.md
- (@pred_reduc_<reduc><mode><vlmul1>): Removed.
- (@pred_reduc_<reduc><mode><vlmul1_zve64>): Likewise.
- (@pred_reduc_<reduc><mode><vlmul1_zve32>): Likewise.
- (@pred_reduc_<reduc><VQI:mode><VQI_LMUL1:mode>): New pattern.
- (@pred_reduc_<reduc><VHI:mode><VHI_LMUL1:mode>): Likewise.
- (@pred_reduc_<reduc><VSI:mode><VSI_LMUL1:mode>): Likewise.
- (@pred_reduc_<reduc><VDI:mode><VDI_LMUL1:mode>): Likewise.
-
-2023-06-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110264
- * config/riscv/riscv-vsetvl.cc (insert_vsetvl): Fix bug.
-
-2023-06-16 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/79173
- * builtin-types.def (BT_FN_UINT_UINT_UINT_UINT_UINTPTR,
- BT_FN_ULONG_ULONG_ULONG_ULONG_ULONGPTR,
- BT_FN_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONGPTR): New
- types.
- * builtins.def (BUILT_IN_ADDC, BUILT_IN_ADDCL, BUILT_IN_ADDCLL,
- BUILT_IN_SUBC, BUILT_IN_SUBCL, BUILT_IN_SUBCLL): New builtins.
- * builtins.cc (fold_builtin_addc_subc): New function.
- (fold_builtin_varargs): Handle BUILT_IN_{ADD,SUB}C{,L,LL}.
- * doc/extend.texi (__builtin_addc, __builtin_subc): Document.
-
-2023-06-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/110271
- * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children)
- <case PLUS_EXPR>: Ignore return value from match_arith_overflow,
- instead call match_uaddc_usubc only if gsi_stmt (gsi) is still stmt.
-
-2023-06-16 Martin Jambor <mjambor@suse.cz>
-
- * configure: Regenerate.
-
-2023-06-16 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
-
- PR target/31985
- * config/i386/i386.md (*add<dwi>3_doubleword_concat): New
- define_insn_and_split combine *add<dwi>3_doubleword with
- a *concat<mode><dwi>3 for more efficient lowering after reload.
-
-2023-06-16 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira-lives.cc: Include except.h.
- (process_bb_node_lives): Ignore conflicts from cleanup exceptions
- when the pseudo does not live at the exception landing pad.
-
-2023-06-16 Alex Coplan <alex.coplan@arm.com>
-
- * doc/invoke.texi: Document -Welaborated-enum-base.
-
-2023-06-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd-builtins.def (shrn2_n): Rename builtins to...
- (ushrn2_n): ... This.
- (sqshrn2_n): Rename builtins to...
- (ssqshrn2_n): ... This.
- (uqshrn2_n): Rename builtins to...
- (uqushrn2_n): ... This.
- * config/aarch64/arm_neon.h (vqshrn_high_n_s16): Adjust for the above.
- (vqshrn_high_n_s32): Likewise.
- (vqshrn_high_n_s64): Likewise.
- (vqshrn_high_n_u16): Likewise.
- (vqshrn_high_n_u32): Likewise.
- (vqshrn_high_n_u64): Likewise.
- (vshrn_high_n_s16): Likewise.
- (vshrn_high_n_s32): Likewise.
- (vshrn_high_n_s64): Likewise.
- (vshrn_high_n_u16): Likewise.
- (vshrn_high_n_u32): Likewise.
- (vshrn_high_n_u64): Likewise.
- * config/aarch64/aarch64-simd.md (aarch64_<shrn_op>shrn2_n<mode>_insn_le):
- Rename to...
- (aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_le): ... This.
- Use SHIFTRT iterator and AARCH64_VALID_SHRN_OP check.
- (aarch64_<shrn_op>shrn2_n<mode>_insn_be): Rename to...
- (aarch64_<shrn_op><sra_op>shrn2_n<mode>_insn_be): ... This.
- Use SHIFTRT iterator and AARCH64_VALID_SHRN_OP check.
- (aarch64_<shrn_op>shrn2_n<mode>): Rename to...
- (aarch64_<shrn_op><sra_op>shrn2_n<mode>): ... This.
- Update expander for the above.
-
-2023-06-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd-builtins.def (shrn2): Rename builtins to...
- (shrn2_n): ... This.
- (rshrn2): Rename builtins to...
- (rshrn2_n): ... This.
- * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Adjust for the above.
- (vrshrn_high_n_s32): Likewise.
- (vrshrn_high_n_s64): Likewise.
- (vrshrn_high_n_u16): Likewise.
- (vrshrn_high_n_u32): Likewise.
- (vrshrn_high_n_u64): Likewise.
- (vshrn_high_n_s16): Likewise.
- (vshrn_high_n_s32): Likewise.
- (vshrn_high_n_s64): Likewise.
- (vshrn_high_n_u16): Likewise.
- (vshrn_high_n_u32): Likewise.
- (vshrn_high_n_u64): Likewise.
- * config/aarch64/aarch64-simd.md (*aarch64_<srn_op>shrn<mode>2_vect_le):
- Delete.
- (*aarch64_<srn_op>shrn<mode>2_vect_be): Likewise.
- (aarch64_shrn2<mode>_insn_le): Likewise.
- (aarch64_shrn2<mode>_insn_be): Likewise.
- (aarch64_shrn2<mode>): Likewise.
- (aarch64_rshrn2<mode>_insn_le): Likewise.
- (aarch64_rshrn2<mode>_insn_be): Likewise.
- (aarch64_rshrn2<mode>): Likewise.
- (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Likewise.
- (aarch64_<shrn_op>shrn2_n<mode>_insn_le): New define_insn.
- (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Delete.
- (aarch64_<shrn_op>shrn2_n<mode>_insn_be): New define_insn.
- (aarch64_<sur>q<r>shr<u>n2_n<mode>): Delete.
- (aarch64_<shrn_op>shrn2_n<mode>): New define_expand.
- (aarch64_<shrn_op>rshrn2_n<mode>_insn_le): New define_insn.
- (aarch64_<shrn_op>rshrn2_n<mode>_insn_be): New define_insn.
- (aarch64_<shrn_op>rshrn2_n<mode>): New define_expand.
- (aarch64_sqshrun2_n<mode>_insn_le): New define_insn.
- (aarch64_sqshrun2_n<mode>_insn_be): New define_insn.
- (aarch64_sqshrun2_n<mode>): New define_expand.
- (aarch64_sqrshrun2_n<mode>_insn_le): New define_insn.
- (aarch64_sqrshrun2_n<mode>_insn_be): New define_insn.
- (aarch64_sqrshrun2_n<mode>): New define_expand.
- * config/aarch64/iterators.md (UNSPEC_SQSHRUN, UNSPEC_SQRSHRUN,
- UNSPEC_SQSHRN, UNSPEC_UQSHRN, UNSPEC_SQRSHRN, UNSPEC_UQRSHRN):
- Delete unspec values.
- (VQSHRN_N): Delete int iterator.
-
-2023-06-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64.h (AARCH64_VALID_SHRN_OP): Define.
- * config/aarch64/aarch64-simd.md
- (*aarch64_<shrn_op>shrn_n<mode>_insn<vczle><vczbe>): Rename to...
- (*aarch64_<shrn_op><shrn_s>shrn_n<mode>_insn<vczle><vczbe>): ... This.
- Use SHIFTRT iterator and add AARCH64_VALID_SHRN_OP to condition.
- * config/aarch64/iterators.md (shrn_s): New code attribute.
-
-2023-06-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n_n<mode>):
- Rename to...
- (aarch64_<shrn_op>shrn_n<mode>): ... This. Reimplement with RTL codes.
- (*aarch64_<shrn_op>rshrn_n<mode>_insn): New define_insn.
- (aarch64_sqrshrun_n<mode>_insn): Likewise.
- (aarch64_sqshrun_n<mode>_insn): Likewise.
- (aarch64_<shrn_op>rshrn_n<mode>): New define_expand.
- (aarch64_sqshrun_n<mode>): Likewise.
- (aarch64_sqrshrun_n<mode>): Likewise.
- * config/aarch64/iterators.md (V2XWIDE): Add HI and SI modes.
-
-2023-06-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd-builtins.def (shrn): Rename builtins to...
- (shrn_n): ... This.
- (rshrn): Rename builtins to...
- (rshrn_n): ... This.
- * config/aarch64/arm_neon.h (vshrn_n_s16): Adjust for the above.
- (vshrn_n_s32): Likewise.
- (vshrn_n_s64): Likewise.
- (vshrn_n_u16): Likewise.
- (vshrn_n_u32): Likewise.
- (vshrn_n_u64): Likewise.
- (vrshrn_n_s16): Likewise.
- (vrshrn_n_s32): Likewise.
- (vrshrn_n_s64): Likewise.
- (vrshrn_n_u16): Likewise.
- (vrshrn_n_u32): Likewise.
- (vrshrn_n_u64): Likewise.
- * config/aarch64/aarch64-simd.md
- (*aarch64_<srn_op>shrn<mode><vczle><vczbe>): Delete.
- (aarch64_shrn<mode>): Likewise.
- (aarch64_rshrn<mode><vczle><vczbe>_insn): Likewise.
- (aarch64_rshrn<mode>): Likewise.
- (aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): Likewise.
- (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
- (*aarch64_<shrn_op>shrn_n<mode>_insn<vczle><vczbe>): New define_insn.
- (*aarch64_<shrn_op>rshrn_n<mode>_insn<vczle><vczbe>): Likewise.
- (*aarch64_sqshrun_n<mode>_insn<vczle><vczbe>): Likewise.
- (*aarch64_sqrshrun_n<mode>_insn<vczle><vczbe>): Likewise.
- (aarch64_<shrn_op>shrn_n<mode>): New define_expand.
- (aarch64_<shrn_op>rshrn_n<mode>): Likewise.
- (aarch64_sqshrun_n<mode>): Likewise.
- (aarch64_sqrshrun_n<mode>): Likewise.
- * config/aarch64/iterators.md (ALL_TRUNC): New code iterator.
- (TRUNCEXTEND): New code attribute.
- (TRUNC_SHIFT): Likewise.
- (shrn_op): Likewise.
- * config/aarch64/predicates.md (aarch64_simd_umax_quarter_mode):
- New predicate.
-
-2023-06-16 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vsetvl.cc
- (pass_vsetvl::global_eliminate_vsetvl_insn): Initialize var by NULL.
-
-2023-06-16 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110278
- * match.pd (uns < (typeof uns)(uns != 0) -> false): New.
- (x != (typeof x)(x == 0) -> true): Likewise.
-
-2023-06-16 Pali Rohár <pali@kernel.org>
-
- * config/i386/mingw-w64.h (CPP_SPEC): Adjust for -mcrtdll=.
- (REAL_LIBGCC_SPEC): New define.
- * config/i386/mingw.opt: Add mcrtdll=
- * config/i386/mingw32.h (CPP_SPEC): Adjust for -mcrtdll=.
- (REAL_LIBGCC_SPEC): Adjust for -mcrtdll=.
- (STARTFILE_SPEC): Adjust for -mcrtdll=.
- * doc/invoke.texi: Add mcrtdll= documentation.
-
-2023-06-16 Simon Dardis <simon.dardis@imgtec.com>
-
- * config/mips/mips.cc (enum mips_code_readable_setting):New enmu.
- (mips_handle_code_readable_attr):New static function.
- (mips_get_code_readable_attr):New static enum function.
- (mips_set_current_function):Set the code_readable mode.
- (mips_option_override):Same as above.
- * doc/extend.texi:Document code_readable.
-
-2023-06-16 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/110269
- * fold-const.cc (fold_binary_loc): Merge x != 0 folding
- with tree_expr_nonzero_p ...
- * match.pd (cmp (convert? addr@0) integer_zerop): With this
- pattern.
-
-2023-06-15 Marek Polacek <polacek@redhat.com>
-
- * Makefile.in: Set LD_PICFLAG. Use it. Set enable_host_pie.
- Remove NO_PIE_CFLAGS and NO_PIE_FLAG. Pass LD_PICFLAG to
- ALL_LINKERFLAGS. Use the "pic" build of libiberty if --enable-host-pie.
- * configure.ac (--enable-host-shared): Don't set PICFLAG here.
- (--enable-host-pie): New check. Set PICFLAG and LD_PICFLAG after this
- check.
- * configure: Regenerate.
- * doc/install.texi: Document --enable-host-pie.
-
-2023-06-15 Manolis Tsamis <manolis.tsamis@vrull.eu>
-
- * regcprop.cc (maybe_mode_change): Enable stack pointer
- propagation.
-
-2023-06-15 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/110266
- * gimple-range-fold.cc (adjust_imagpart_expr): Check for integer
- complex type.
- (adjust_realpart_expr): Ditto.
-
-2023-06-15 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/sse.md (<avx512>_vec_dup<mode><mask_name>): Use
- vmovddup.
-
-2023-06-15 Jan Beulich <jbeulich@suse.com>
-
- * config/i386/constraints.md: Mention k and r for B.
-
-2023-06-15 Lulu Cheng <chenglulu@loongson.cn>
- Andrew Pinski <apinski@marvell.com>
-
- PR target/110136
- * config/loongarch/loongarch.md: Modify the register constraints for template
- "jumptable" and "indirect_jump" from "r" to "e".
-
-2023-06-15 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch-tune.h (loongarch_align): New
- struct.
- * config/loongarch/loongarch-def.h (loongarch_cpu_align): New
- array.
- * config/loongarch/loongarch-def.c (loongarch_cpu_align): Define
- the array.
- * config/loongarch/loongarch.cc
- (loongarch_option_override_internal): Set the value of
- -falign-functions= if -falign-functions is enabled but no value
- is given. Likewise for -falign-labels=.
-
-2023-06-15 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/79173
- * internal-fn.def (UADDC, USUBC): New internal functions.
- * internal-fn.cc (expand_UADDC, expand_USUBC): New functions.
- (commutative_ternary_fn_p): Return true also for IFN_UADDC.
- * optabs.def (uaddc5_optab, usubc5_optab): New optabs.
- * tree-ssa-math-opts.cc (uaddc_cast, uaddc_ne0, uaddc_is_cplxpart,
- match_uaddc_usubc): New functions.
- (math_opts_dom_walker::after_dom_children): Call match_uaddc_usubc
- for PLUS_EXPR, MINUS_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR unless
- other optimizations have been successful for those.
- * gimple-fold.cc (gimple_fold_call): Handle IFN_UADDC and IFN_USUBC.
- * fold-const-call.cc (fold_const_call): Likewise.
- * gimple-range-fold.cc (adjust_imagpart_expr): Likewise.
- * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Likewise.
- * doc/md.texi (uaddc<mode>5, usubc<mode>5): Document new named
- patterns.
- * config/i386/i386.md (uaddc<mode>5, usubc<mode>5): New
- define_expand patterns.
- (*setcc_qi_addqi3_cconly_overflow_1_<mode>, *setccc): Split
- into NOTE_INSN_DELETED note rather than nop instruction.
- (*setcc_qi_negqi_ccc_1_<mode>, *setcc_qi_negqi_ccc_2_<mode>):
- Likewise.
-
-2023-06-15 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/79173
- * config/i386/i386.md (subborrow<mode>): Add alternative with
- memory destination and add for it define_peephole2
- TARGET_READ_MODIFY_WRITE/-Os patterns to prefer using memory
- destination in these patterns.
-
-2023-06-15 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/79173
- * config/i386/i386.md (*sub<mode>_3, @add<mode>3_carry,
- addcarry<mode>, @sub<mode>3_carry, *add<mode>3_cc_overflow_1): Add
- define_peephole2 TARGET_READ_MODIFY_WRITE/-Os patterns to prefer
- using memory destination in these patterns.
-
-2023-06-15 Jakub Jelinek <jakub@redhat.com>
-
- * gimple-fold.cc (gimple_fold_call): Move handling of arg0
- as well as arg1 INTEGER_CSTs for .UBSAN_CHECK_{ADD,SUB,MUL}
- and .{ADD,SUB,MUL}_OVERFLOW calls from here...
- * fold-const-call.cc (fold_const_call): ... here.
-
-2023-06-15 Oluwatamilore Adebayo <oluwatamilore.adebayo@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>):
- Rename to <su>abd<mode>3.
- * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Rename
- to <su>abd<mode>3.
-
-2023-06-15 Oluwatamilore Adebayo <oluwatamilore.adebayo@arm.com>
-
- * doc/md.texi (sabd, uabd): Document them.
- * internal-fn.def (ABD): Use new optab.
- * optabs.def (sabd_optab, uabd_optab): New optabs,
- * tree-vect-patterns.cc (vect_recog_absolute_difference):
- Recognize the following idiom abs (a - b).
- (vect_recog_sad_pattern): Refactor to use
- vect_recog_absolute_difference.
- (vect_recog_abd_pattern): Use patterns found by
- vect_recog_absolute_difference to build a new ABD
- internal call.
-
-2023-06-15 chenxiaolong <chenxl04200420@163.com>
-
- * config/loongarch/loongarch.h (LARCH_CALL_RATIO): Modify the value
- of macro LARCH_CALL_RATIO on LoongArch to make it perform optimally.
-
-2023-06-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (shuffle_merge_patterns): New pattern.
- (expand_vec_perm_const_1): Add merge optmization.
-
-2023-06-15 Lehua Ding <lehua.ding@rivai.ai>
-
- PR target/110119
- * config/riscv/riscv.cc (riscv_get_arg_info): Return NULL_RTX for vector mode
- (riscv_pass_by_reference): Return true for vector mode
-
-2023-06-15 Pan Li <pan2.li@intel.com>
-
- * config/riscv/autovec-opt.md: Align the predictor sytle.
- * config/riscv/autovec.md: Ditto.
-
-2023-06-15 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (rvv_builder::get_merge_scalar_mask):
- Take elen instead of scalar BITS_PER_WORD.
- (expand_vector_init_merge_repeating_sequence): Use inner_bits_size
- instead of scaler BITS_PER_WORD.
-
-2023-06-14 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/moxie/uclinux.h (MFWRAP_SPEC): Remove
-
-2023-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-sve-builtins-base.cc (svlast_impl::fold):
- Fix signed comparison warning in loop from npats to enelts.
-
-2023-06-14 Thomas Schwinge <thomas@codesourcery.com>
-
- * gcc.cc (driver_handle_option): Forward host '-lgfortran', '-lm'
- to offloading compilation.
- * config/gcn/mkoffload.cc (main): Adjust.
- * config/nvptx/mkoffload.cc (main): Likewise.
- * doc/invoke.texi (foffload-options): Update example.
-
-2023-06-14 liuhongt <hongtao.liu@intel.com>
-
- PR target/110227
- * config/i386/sse.md (mov<mode>_internal>): Use x instead of v
- for alternative 2 since there's no evex version for vpcmpeqd
- ymm, ymm, ymm.
-
-2023-06-13 Jeff Law <jlaw@ventanamicro.com>
-
- * gcc.cc (LINK_COMMAND_SPEC): Remove mudflap spec handling.
-
-2023-06-13 Jeff Law <jlaw@ventanamicro.com>
-
- * config/sh/divtab.cc: Remove.
-
-2023-06-13 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386.cc (standard_sse_constant_opcode): Remove
- superfluous spaces around \t for vpcmpeqd.
-
-2023-06-13 Roger Sayle <roger@nextmovesoftware.com>
-
- * expr.cc (store_constructor) <case VECTOR_TYPE>: Don't bother
- clearing vectors with only a single element. Set CLEARED if the
- vector was initialized to zero.
-
-2023-06-13 Lehua Ding <lehua.ding@rivai.ai>
-
- * config/riscv/riscv-v.cc (struct mode_vtype_group): Remove duplicate
- #include.
- (ENTRY): Undef.
- (TUPLE_ENTRY): Undef.
-
-2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (rvv_builder::single_step_npatterns_p): Add comment.
- (shuffle_generic_patterns): Ditto.
- (expand_vec_perm_const_1): Ditto.
-
-2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (emit_vlmax_decompress_insn): Fix bug.
- (shuffle_decompress_patterns): Ditto.
-
-2023-06-13 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop-ch.cc (ch_base::copy_headers): Free loop BBs.
-
-2023-06-13 Yanzhang Wang <yanzhang.wang@intel.com>
- Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-protos.h (riscv_init_cumulative_args): Set
- warning flag if func is not builtin
- * config/riscv/riscv.cc
- (riscv_scalable_vector_type_p): Determine whether the type is scalable vector.
- (riscv_arg_has_vector): Determine whether the arg is vector type.
- (riscv_pass_in_vector_p): Check the vector type param is passed by value.
- (riscv_init_cumulative_args): The same as header.
- (riscv_get_arg_info): Add the checking.
- (riscv_function_value): Check the func return and set warning flag
- * config/riscv/riscv.h (INIT_CUMULATIVE_ARGS): Add a flag to
- determine whether warning psabi or not.
-
-2023-06-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/arm/arm-opts.h (enum arm_tp_type): Remove TP_CP15.
- Add TP_TPIDRURW, TP_TPIDRURO, TP_TPIDRPRW values.
- * config/arm/arm-protos.h (arm_output_load_tpidr): Declare prototype.
- * config/arm/arm.cc (arm_option_reconfigure_globals): Replace TP_CP15
- with TP_TPIDRURO.
- (arm_output_load_tpidr): Define.
- * config/arm/arm.h (TARGET_HARD_TP): Define in terms of TARGET_SOFT_TP.
- * config/arm/arm.md (load_tp_hard): Call arm_output_load_tpidr to output
- assembly.
- (reload_tp_hard): Likewise.
- * config/arm/arm.opt (tpidrurw, tpidruro, tpidrprw): New values for
- arm_tp_type.
- * doc/invoke.texi (Arm Options, mtp): Document new values.
-
-2023-06-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/108779
- * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Add
- AARCH64_TPIDRRO_EL0 value.
- * config/aarch64/aarch64.cc (aarch64_output_load_tp): Define.
- * config/aarch64/aarch64.opt (tpidr_el0, tpidr_el1, tpidr_el2,
- tpidr_el3, tpidrro_el3): New accepted values to -mtp=.
- * doc/invoke.texi (AArch64 Options): Document new -mtp= options.
-
-2023-06-13 Alexandre Oliva <oliva@adacore.com>
-
- * range-op-float.cc (frange_nextafter): Drop inline.
- (frelop_early_resolve): Add static.
- (frange_float): Likewise.
-
-2023-06-13 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110232
- * fold-const.cc (native_interpret_vector): Use TYPE_SIZE_UNIT
- to check whether the buffer covers the whole vector.
-
-2023-06-13 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): For
- .MASK_LOAD and friends set the size of the access to unknown.
-
-2023-06-13 Tejas Belagod <tbelagod@arm.com>
-
- PR target/96339
- * config/aarch64/aarch64-sve-builtins-base.cc (svlast_impl::fold): Fold sve
- calls that have a constant input predicate vector.
- (svlast_impl::is_lasta): Query to check if intrinsic is svlasta.
- (svlast_impl::is_lastb): Query to check if intrinsic is svlastb.
- (svlast_impl::vect_all_same): Check if all vector elements are equal.
-
-2023-06-13 Andi Kleen <ak@linux.intel.com>
-
- * config/i386/gcc-auto-profile: Regenerate.
-
-2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Fix requirement.
-
-2023-06-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (emit_vlmax_decompress_insn): New function.
- (shuffle_decompress_patterns): New function.
- (expand_vec_perm_const_1): Add decompress optimization.
-
-2023-06-12 Jeff Law <jlaw@ventanamicro.com>
-
- PR rtl-optimization/101188
- * postreload.cc (reload_cse_move2add_invalidate): New function,
- extracted from...
- (reload_cse_move2add): Call reload_cse_move2add_invalidate.
-
-2023-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Tweak condition
- if (n_var == n_elts && n_elts <= 16) to allow a single constant,
- and if maxv == 1, use constant element for duplicating into register.
-
-2023-06-12 Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.cc (gimplify_adjust_omp_clauses_1): Use
- GOMP_MAP_FORCE_PRESENT for 'present alloc' implicit mapping.
- (gimplify_adjust_omp_clauses): Change
- GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC} to the equivalent
- GOMP_MAP_FORCE_PRESENT.
- * omp-low.cc (lower_omp_target): Remove handling of no-longer valid
- GOMP_MAP_PRESENT_{TO,TOFROM,FROM,ALLOC}; update map kinds used for
- to/from clauses with present modifier.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/110205
- * range-op-float.cc (range_operator::fold_range): Add default FII
- fold routine.
- * range-op-mixed.h (class operator_gt): Add missing final overrides.
- * range-op.cc (range_op_handler::fold_range): Add RO_FII case.
- (operator_lshift ::update_bitmask): Add final override.
- (operator_rshift ::update_bitmask): Add final override.
- * range-op.h (range_operator::fold_range): Add FII prototype.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
- Use range_op_handler directly.
- * range-op.cc (range_op_handler::range_op_handler): Unsigned
- param instead of tree-code.
- (ptr_op_widen_plus_signed): Delete.
- (ptr_op_widen_plus_unsigned): Delete.
- (ptr_op_widen_mult_signed): Delete.
- (ptr_op_widen_mult_unsigned): Delete.
- (range_op_table::initialize_integral_ops): Add new opcodes.
- * range-op.h (range_op_handler): Use unsigned.
- (OP_WIDEN_MULT_SIGNED): New.
- (OP_WIDEN_MULT_UNSIGNED): New.
- (OP_WIDEN_PLUS_SIGNED): New.
- (OP_WIDEN_PLUS_UNSIGNED): New.
- (RANGE_OP_TABLE_SIZE): New.
- (range_op_table::operator []): Use unsigned.
- (range_op_table::set): Use unsigned.
- (m_range_tree): Make unsigned.
- (ptr_op_widen_mult_signed): Remove.
- (ptr_op_widen_mult_unsigned): Remove.
- (ptr_op_widen_plus_signed): Remove.
- (ptr_op_widen_plus_unsigned): Remove.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-op.cc (gimple_range_op_handler): Set m_operator
- manually as there is no access to the default operator.
- (cfn_copysign::fold_range): Don't check for validity.
- (cfn_ubsan::fold_range): Ditto.
- (gimple_range_op_handler::maybe_builtin_call): Don't set to NULL.
- * range-op.cc (default_operator): New.
- (range_op_handler::range_op_handler): Use default_operator
- instead of NULL.
- (range_op_handler::operator bool): Move from header, compare
- against default operator.
- (range_op_handler::range_op): New.
- * range-op.h (range_op_handler::operator bool): Move.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op.cc (unified_table): Delete.
- (range_op_table operator_table): Instantiate.
- (range_op_table::range_op_table): Rename from unified_table.
- (range_op_handler::range_op_handler): Use range_op_table.
- * range-op.h (range_op_table::operator []): Inline.
- (range_op_table::set): Inline.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (gori_compute::condexpr_adjust): Do not
- pass type.
- * gimple-range-op.cc (get_code): Rename from get_code_and_type
- and simplify.
- (gimple_range_op_handler::supported_p): No need for type.
- (gimple_range_op_handler::gimple_range_op_handler): Ditto.
- (cfn_copysign::fold_range): Ditto.
- (cfn_ubsan::fold_range): Ditto.
- * ipa-cp.cc (ipa_vr_operation_and_type_effects): Ditto.
- * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Ditto.
- * range-op-float.cc (operator_plus::op1_range): Ditto.
- (operator_mult::op1_range): Ditto.
- (range_op_float_tests): Ditto.
- * range-op.cc (get_op_handler): Remove.
- (range_op_handler::set_op_handler): Remove.
- (operator_plus::op1_range): No need for type.
- (operator_minus::op1_range): Ditto.
- (operator_mult::op1_range): Ditto.
- (operator_exact_divide::op1_range): Ditto.
- (operator_cast::op1_range): Ditto.
- (perator_bitwise_not::fold_range): Ditto.
- (operator_negate::fold_range): Ditto.
- * range-op.h (range_op_handler::range_op_handler): Remove type param.
- (range_cast): No need for type.
- (range_op_table::operator[]): Check for enum_code >= 0.
- * tree-data-ref.cc (compute_distributive_range): No need for type.
- * tree-ssa-loop-unswitch.cc (unswitch_predicate): Ditto.
- * value-query.cc (range_query::get_tree_range): Ditto.
- * value-relation.cc (relation_oracle::validate_relation): Ditto.
- * vr-values.cc (range_of_var_in_loop): Ditto.
- (simplify_using_ranges::fold_cond_with_ops): Ditto.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (operator_max): Remove final.
- * range-op-ptr.cc (pointer_table::pointer_table): Remove MAX_EXPR.
- (pointer_table::pointer_table): Remove.
- (class hybrid_max_operator): New.
- (range_op_table::initialize_pointer_ops): Add hybrid_max_operator.
- * range-op.cc (pointer_tree_table): Remove.
- (unified_table::unified_table): Comment out MAX_EXPR.
- (get_op_handler): Remove check of pointer table.
- * range-op.h (class pointer_table): Remove.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (operator_min): Remove final.
- * range-op-ptr.cc (pointer_table::pointer_table): Remove MIN_EXPR.
- (class hybrid_min_operator): New.
- (range_op_table::initialize_pointer_ops): Add hybrid_min_operator.
- * range-op.cc (unified_table::unified_table): Comment out MIN_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (operator_bitwise_or): Remove final.
- * range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_IOR_EXPR.
- (class hybrid_or_operator): New.
- (range_op_table::initialize_pointer_ops): Add hybrid_or_operator.
- * range-op.cc (unified_table::unified_table): Comment out BIT_IOR_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (operator_bitwise_and): Remove final.
- * range-op-ptr.cc (pointer_table::pointer_table): Remove BIT_AND_EXPR.
- (class hybrid_and_operator): New.
- (range_op_table::initialize_pointer_ops): Add hybrid_and_operator.
- * range-op.cc (unified_table::unified_table): Comment out BIT_AND_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * Makefile.in (OBJS): Add range-op-ptr.o.
- * range-op-mixed.h (update_known_bitmask): Move prototype here.
- (minus_op1_op2_relation_effect): Move prototype here.
- (wi_includes_zero_p): Move function to here.
- (wi_zero_p): Ditto.
- * range-op.cc (update_known_bitmask): Remove static.
- (wi_includes_zero_p): Move to header.
- (wi_zero_p): Move to header.
- (minus_op1_op2_relation_effect): Remove static.
- (operator_pointer_diff): Move class and routines to range-op-ptr.cc.
- (pointer_plus_operator): Ditto.
- (pointer_min_max_operator): Ditto.
- (pointer_and_operator): Ditto.
- (pointer_or_operator): Ditto.
- (pointer_table): Ditto.
- (range_op_table::initialize_pointer_ops): Ditto.
- * range-op-ptr.cc: New.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_max): Move from...
- * range-op.cc (unified_table::unified_table): Add MAX_EXPR.
- (get_op_handler): Remove the integral table.
- (class operator_max): Move from here.
- (integral_table::integral_table): Delete.
- * range-op.h (class integral_table): Delete.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_min): Move from...
- * range-op.cc (unified_table::unified_table): Add MIN_EXPR.
- (class operator_min): Move from here.
- (integral_table::integral_table): Remove MIN_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_bitwise_or): Move from...
- * range-op.cc (unified_table::unified_table): Add BIT_IOR_EXPR.
- (class operator_bitwise_or): Move from here.
- (integral_table::integral_table): Remove BIT_IOR_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_bitwise_and): Move from...
- * range-op.cc (unified_table::unified_table): Add BIT_AND_EXPR.
- (get_op_handler): Check for a pointer table entry first.
- (class operator_bitwise_and): Move from here.
- (integral_table::integral_table): Remove BIT_AND_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_bitwise_xor): Move from...
- * range-op.cc (unified_table::unified_table): Add BIT_XOR_EXPR.
- (class operator_bitwise_xor): Move from here.
- (integral_table::integral_table): Remove BIT_XOR_EXPR.
- (pointer_table::pointer_table): Remove BIT_XOR_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_bitwise_not): Move from...
- * range-op.cc (unified_table::unified_table): Add BIT_NOT_EXPR.
- (class operator_bitwise_not): Move from here.
- (integral_table::integral_table): Remove BIT_NOT_EXPR.
- (pointer_table::pointer_table): Remove BIT_NOT_EXPR.
-
-2023-06-12 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_addr_expr): Move from...
- * range-op.cc (unified_table::unified_table): Add ADDR_EXPR.
- (class operator_addr_expr): Move from here.
- (integral_table::integral_table): Remove ADDR_EXPR.
- (pointer_table::pointer_table): Remove ADDR_EXPR.
-
-2023-06-12 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat16m1_t): Add type to lmul1 ops.
- (vfloat16m2_t): Likewise.
- (vfloat16m4_t): Likewise.
-
-2023-06-12 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-alias.cc (call_may_clobber_ref_p_1): For
- .MASK_STORE and friend set the size of the access to
- unknown.
-
-2023-06-12 Tamar Christina <tamar.christina@arm.com>
-
- * config.in: Regenerate.
- * configure: Regenerate.
- * configure.ac: Remove DEFAULT_MATCHPD_PARTITIONS.
-
-2023-06-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md
- (*v<any_shiftrt:optab><any_extend:optab>trunc<mode>): New pattern.
- (*<any_shiftrt:optab>trunc<mode>): Ditto.
- * config/riscv/autovec.md (<optab><mode>3): Change to
- define_insn_and_split.
- (v<optab><mode>3): Ditto.
- (trunc<mode><v_double_trunc>2): Ditto.
-
-2023-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * simplify-rtx.cc (simplify_const_unary_operation):
- Handle US_TRUNCATE, SS_TRUNCATE.
-
-2023-06-12 Eric Botcazou <ebotcazou@adacore.com>
-
- PR modula2/109952
- * doc/gm2.texi (Standard procedures): Fix Next link.
-
-2023-06-12 Tamar Christina <tamar.christina@arm.com>
-
- * config.in: Regenerate.
-
-2023-06-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR middle-end/110142
- * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Don't pass
- subtype to vect_widened_op_tree and remove subtype parameter, also
- remove superfluous overloaded function definition.
- (vect_recog_widen_plus_pattern): Remove subtype parameter and dont pass
- to call to vect_recog_widen_op_pattern.
- (vect_recog_widen_minus_pattern): Likewise.
-
-2023-06-12 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): New expander.
- (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto.
- (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto.
- (vec_unpacks_lo_<mode>): Ditto.
- (vec_unpacks_hi_<mode>): Ditto.
- (sse_movlhps_<mode>): New define_insn.
- (ssse3_palignr<mode>_perm): Extend to V_128H.
- (V_128H): New mode iterator.
- (ssepackPHmode): New mode attribute.
- (vunpck_extract_mode): Ditto.
- (vpckfloat_concat_mode): Extend to VxSI/VxSF for _Float16.
- (vpckfloat_temp_mode): Ditto.
- (vpckfloat_op_mode): Ditto.
- (vunpckfixt_mode): Extend to VxHF.
- (vunpckfixt_model): Ditto.
- (vunpckfixt_extract_mode): Ditto.
-
-2023-06-12 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110200
- * genmatch.cc (expr::gen_transform): Put braces around
- the if arm for the (convert ...) short-cut.
-
-2023-06-12 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/109932
- * config/rs6000/rs6000-builtins.def (__builtin_pack_vector_int128,
- __builtin_unpack_vector_int128): Move from stanza power7 to vsx.
-
-2023-06-12 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/110011
- * config/rs6000/rs6000.cc (output_toc): Use the mode of the 128-bit
- floating constant itself for real_to_target call.
-
-2023-06-12 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat16mf4_t): Add type to X2/X4/X8/X16/X32 vlmul ext ops.
- (vfloat16mf2_t): Ditto.
- (vfloat16m1_t): Ditto.
- (vfloat16m2_t): Ditto.
- (vfloat16m4_t): Ditto.
-
-2023-06-12 David Edelsohn <dje.gcc@gmail.com>
-
- * config/rs6000/rs6000-logue.cc (rs6000_stack_info):
- Do not require a stack frame when debugging is enabled for AIX.
-
-2023-06-11 Georg-Johann Lay <avr@gjlay.de>
-
- * config/avr/avr.md (adjust_len) [insv_notbit_0, insv_notbit_7]:
- Remove attribute values.
- (insv_notbit): New post-reload insn.
- (*insv.not-shiftrt_split, *insv.xor1-bit.0_split)
- (*insv.not-bit.0_split, *insv.not-bit.7_split)
- (*insv.xor-extract_split): Split to insv_notbit.
- (*insv.not-shiftrt, *insv.xor1-bit.0, *insv.not-bit.0, *insv.not-bit.7)
- (*insv.xor-extract): Remove post-reload insns.
- * config/avr/avr.cc (avr_out_insert_notbit) [bitno]: Remove parameter.
- (avr_adjust_insn_length): Adjust call of avr_out_insert_notbit.
- [ADJUST_LEN_INSV_NOTBIT_0, ADJUST_LEN_INSV_NOTBIT_7]: Remove cases.
- * config/avr/avr-protos.h (avr_out_insert_notbit): Adjust prototype.
-
-2023-06-11 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/109907
- * config/avr/avr.md (adjust_len) [extr, extr_not]: New elements.
- (MSB, SIZE): New mode attributes.
- (any_shift): New code iterator.
- (*lshr<mode>3_split, *lshr<mode>3, lshr<mode>3)
- (*lshr<mode>3_const_split): Add constraint alternative for
- the case of shift-offset = MSB. Ditch "length" attribute.
- (extzv<mode): New. replaces extzv. Adjust following patterns.
- Use avr_out_extr, avr_out_extr_not to print asm.
- (*extzv.subreg.<mode>, *extzv.<mode>.subreg, *extzv.xor)
- (*extzv<mode>.ge, *neg.ashiftrt<mode>.msb, *extzv.io.lsr7): New.
- * config/avr/constraints.md (C15, C23, C31, Yil): New
- * config/avr/predicates.md (reg_or_low_io_operand)
- (const7_operand, reg_or_low_io_operand)
- (const15_operand, const_0_to_15_operand)
- (const23_operand, const_0_to_23_operand)
- (const31_operand, const_0_to_31_operand): New.
- * config/avr/avr-protos.h (avr_out_extr, avr_out_extr_not): New.
- * config/avr/avr.cc (avr_out_extr, avr_out_extr_not): New funcs.
- (lshrqi3_out, lshrhi3_out, lshrpsi3_out, lshrsi3_out): Adjust
- MSB case to new insn constraint "r" for operands[1].
- (avr_adjust_insn_length) [ADJUST_LEN_EXTR_NOT, ADJUST_LEN_EXTR]:
- Handle these cases.
- (avr_rtx_costs_1): Adjust cost for a new pattern.
-
-2023-06-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (available_occurrence_p): Enhance user vsetvl optimization.
- (vector_insn_info::parse_insn): Add rtx_insn parse.
- (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance user vsetvl optimization.
- (get_first_vsetvl): New function.
- (pass_vsetvl::global_eliminate_vsetvl_insn): Ditto.
- (pass_vsetvl::cleanup_insns): Remove it.
- (pass_vsetvl::ssa_post_optimization): New function.
- (has_no_uses): Ditto.
- (pass_vsetvl::propagate_avl): Remove it.
- (pass_vsetvl::df_post_optimization): New function.
- (pass_vsetvl::lazy_vsetvl): Rework Phase 5 && Phase 6.
- * config/riscv/riscv-vsetvl.h: Adapt declaration.
-
-2023-06-10 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (ipcp_vr_lattice::init): Take type argument.
- (ipcp_vr_lattice::print): Call dump method.
- (ipcp_vr_lattice::meet_with): Adjust for m_vr being a
- Value_Range.
- (ipcp_vr_lattice::meet_with_1): Make argument a reference.
- (ipcp_vr_lattice::set_to_bottom): Set varying for an unsupported
- range.
- (initialize_node_lattices): Pass type when appropriate.
- (ipa_vr_operation_and_type_effects): Make type agnostic.
- (ipa_value_range_from_jfunc): Same.
- (propagate_vr_across_jump_function): Same.
- * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
- (evaluate_properties_for_edge): Same.
- * ipa-prop.cc (ipa_vr::get_vrange): Same.
- (ipcp_update_vr): Same.
- * ipa-prop.h (ipa_value_range_from_jfunc): Same.
- (ipa_range_set_and_normalize): Same.
-
-2023-06-10 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/109650
- PR target/92729
- * config/avr/avr-passes.def (avr_pass_ifelse): Insert new pass.
- * config/avr/avr.cc (avr_pass_ifelse): New RTL pass.
- (avr_pass_data_ifelse): New pass_data for it.
- (make_avr_pass_ifelse, avr_redundant_compare, avr_cbranch_cost)
- (avr_canonicalize_comparison, avr_out_plus_set_ZN)
- (avr_out_cmp_ext): New functions.
- (compare_condtition): Make sure REG_CC dies in the branch insn.
- (avr_rtx_costs_1): Add computation of cbranch costs.
- (avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_ZN, ADJUST_LEN_CMP_ZEXT]:
- [ADJUST_LEN_CMP_SEXT]Handle them.
- (TARGET_CANONICALIZE_COMPARISON): New define.
- (avr_simplify_comparison_p, compare_diff_p, avr_compare_pattern)
- (avr_reorg_remove_redundant_compare, avr_reorg): Remove functions.
- (TARGET_MACHINE_DEPENDENT_REORG): Remove define.
- * config/avr/avr-protos.h (avr_simplify_comparison_p): Remove proto.
- (make_avr_pass_ifelse, avr_out_plus_set_ZN, cc_reg_rtx)
- (avr_out_cmp_zext): New Protos
- * config/avr/avr.md (branch, difficult_branch): Don't split insns.
- (*cbranchhi.zero-extend.0", *cbranchhi.zero-extend.1")
- (*swapped_tst<mode>, *add.for.eqne.<mode>): New insns.
- (*cbranch<mode>4): Rename to cbranch<mode>4_insn.
- (define_peephole): Add dead_or_set_regno_p(insn,REG_CC) as needed.
- (define_deephole2): Add peep2_regno_dead_p(*,REG_CC) as needed.
- Add new RTL peepholes for decrement-and-branch and *swapped_tst<mode>.
- Rework signtest-and-branch peepholes for *sbrx_branch<mode>.
- (adjust_len) [add_set_ZN, cmp_zext]: New.
- (QIPSI): New mode iterator.
- (ALLs1, ALLs2, ALLs4, ALLs234): New mode iterators.
- (gelt): New code iterator.
- (gelt_eqne): New code attribute.
- (rvbranch, *rvbranch, difficult_rvbranch, *difficult_rvbranch)
- (branch_unspec, *negated_tst<mode>, *reversed_tst<mode>)
- (*cmpqi_sign_extend): Remove insns.
- (define_c_enum "unspec") [UNSPEC_IDENTITY]: Remove.
- * config/avr/avr-dimode.md (cbranch<mode>4): Canonicalize comparisons.
- * config/avr/predicates.md (scratch_or_d_register_operand): New.
- * config/avr/constraints.md (Yxx): New constraint.
-
-2023-06-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (select_vl<mode>): New pattern.
- * config/riscv/riscv-protos.h (expand_select_vl): New function.
- * config/riscv/riscv-v.cc (expand_select_vl): Ditto.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_mult_div_base): Delete.
- (foperator_mult_div_base::find_range): Make static local function.
- (foperator_mult): Remove. Move prototypes to range-op-mixed.h
- (operator_mult::op1_range): Rename from foperator_mult.
- (operator_mult::op2_range): Ditto.
- (operator_mult::rv_fold): Ditto.
- (float_table::float_table): Remove MULT_EXPR.
- (class foperator_div): Inherit from range_operator.
- (float_table::float_table): Delete.
- * range-op-mixed.h (class operator_mult): Combined from integer
- and float files.
- * range-op.cc (float_tree_table): Delete.
- (op_mult): New object.
- (unified_table::unified_table): Add MULT_EXPR.
- (get_op_handler): Do not check float table any longer.
- (class cross_product_operator): Move to range-op-mixed.h.
- (class operator_mult): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove MULT_EXPR.
- (pointer_table::pointer_table): Remove MULT_EXPR.
- * range-op.h (float_table): Remove.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_negate): Remove. Move prototypes
- to range-op-mixed.h
- (operator_negate::fold_range): Rename from foperator_negate.
- (operator_negate::op1_range): Ditto.
- (float_table::float_table): Remove NEGATE_EXPR.
- * range-op-mixed.h (class operator_negate): Combined from integer
- and float files.
- * range-op.cc (op_negate): New object.
- (unified_table::unified_table): Add NEGATE_EXPR.
- (class operator_negate): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove NEGATE_EXPR.
- (pointer_table::pointer_table): Remove NEGATE_EXPR.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_minus): Remove. Move prototypes
- to range-op-mixed.h
- (operator_minus::fold_range): Rename from foperator_minus.
- (operator_minus::op1_range): Ditto.
- (operator_minus::op2_range): Ditto.
- (operator_minus::rv_fold): Ditto.
- (float_table::float_table): Remove MINUS_EXPR.
- * range-op-mixed.h (class operator_minus): Combined from integer
- and float files.
- * range-op.cc (op_minus): New object.
- (unified_table::unified_table): Add MINUS_EXPR.
- (class operator_minus): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove MINUS_EXPR.
- (pointer_table::pointer_table): Remove MINUS_EXPR.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_abs): Remove. Move prototypes
- to range-op-mixed.h
- (operator_abs::fold_range): Rename from foperator_abs.
- (operator_abs::op1_range): Ditto.
- (float_table::float_table): Remove ABS_EXPR.
- * range-op-mixed.h (class operator_abs): Combined from integer
- and float files.
- * range-op.cc (op_abs): New object.
- (unified_table::unified_table): Add ABS_EXPR.
- (class operator_abs): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove ABS_EXPR.
- (pointer_table::pointer_table): Remove ABS_EXPR.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_plus): Remove. Move prototypes
- to range-op-mixed.h
- (operator_plus::fold_range): Rename from foperator_plus.
- (operator_plus::op1_range): Ditto.
- (operator_plus::op2_range): Ditto.
- (operator_plus::rv_fold): Ditto.
- (float_table::float_table): Remove PLUS_EXPR.
- * range-op-mixed.h (class operator_plus): Combined from integer
- and float files.
- * range-op.cc (op_plus): New object.
- (unified_table::unified_table): Add PLUS_EXPR.
- (class operator_plus): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove PLUS_EXPR.
- (pointer_table::pointer_table): Remove PLUS_EXPR.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-mixed.h (class operator_cast): Combined from integer
- and float files.
- * range-op.cc (op_cast): New object.
- (unified_table::unified_table): Add op_cast
- (class operator_cast): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove op_cast
- (pointer_table::pointer_table): Remove op_cast.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (operator_cst::fold_range): New.
- * range-op-mixed.h (class operator_cst): Move from integer file.
- * range-op.cc (op_cst): New object.
- (unified_table::unified_table): Add op_cst. Also use for REAL_CST.
- (class operator_cst): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove op_cst.
- (pointer_table::pointer_table): Remove op_cst.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_identity): Remove. Move prototypes
- to range-op-mixed.h
- (operator_identity::fold_range): Rename from foperator_identity.
- (operator_identity::op1_range): Ditto.
- (float_table::float_table): Remove fop_identity.
- * range-op-mixed.h (class operator_identity): Combined from integer
- and float files.
- * range-op.cc (op_identity): New object.
- (unified_table::unified_table): Add op_identity.
- (class operator_identity): Move to range-op-mixed.h.
- (integral_table::integral_table): Remove identity.
- (pointer_table::pointer_table): Remove identity.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_ge): Remove. Move prototypes
- to range-op-mixed.h
- (operator_ge::fold_range): Rename from foperator_ge.
- (operator_ge::op1_range): Ditto.
- (float_table::float_table): Remove GE_EXPR.
- * range-op-mixed.h (class operator_ge): Combined from integer
- and float files.
- * range-op.cc (op_ge): New object.
- (unified_table::unified_table): Add GE_EXPR.
- (class operator_ge): Move to range-op-mixed.h.
- (ge_op1_op2_relation): Fold into
- operator_ge::op1_op2_relation.
- (integral_table::integral_table): Remove GE_EXPR.
- (pointer_table::pointer_table): Remove GE_EXPR.
- * range-op.h (ge_op1_op2_relation): Delete.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_gt): Remove. Move prototypes
- to range-op-mixed.h
- (operator_gt::fold_range): Rename from foperator_gt.
- (operator_gt::op1_range): Ditto.
- (float_table::float_table): Remove GT_EXPR.
- * range-op-mixed.h (class operator_gt): Combined from integer
- and float files.
- * range-op.cc (op_gt): New object.
- (unified_table::unified_table): Add GT_EXPR.
- (class operator_gt): Move to range-op-mixed.h.
- (gt_op1_op2_relation): Fold into
- operator_gt::op1_op2_relation.
- (integral_table::integral_table): Remove GT_EXPR.
- (pointer_table::pointer_table): Remove GT_EXPR.
- * range-op.h (gt_op1_op2_relation): Delete.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_le): Remove. Move prototypes
- to range-op-mixed.h
- (operator_le::fold_range): Rename from foperator_le.
- (operator_le::op1_range): Ditto.
- (float_table::float_table): Remove LE_EXPR.
- * range-op-mixed.h (class operator_le): Combined from integer
- and float files.
- * range-op.cc (op_le): New object.
- (unified_table::unified_table): Add LE_EXPR.
- (class operator_le): Move to range-op-mixed.h.
- (le_op1_op2_relation): Fold into
- operator_le::op1_op2_relation.
- (integral_table::integral_table): Remove LE_EXPR.
- (pointer_table::pointer_table): Remove LE_EXPR.
- * range-op.h (le_op1_op2_relation): Delete.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_lt): Remove. Move prototypes
- to range-op-mixed.h
- (operator_lt::fold_range): Rename from foperator_lt.
- (operator_lt::op1_range): Ditto.
- (float_table::float_table): Remove LT_EXPR.
- * range-op-mixed.h (class operator_lt): Combined from integer
- and float files.
- * range-op.cc (op_lt): New object.
- (unified_table::unified_table): Add LT_EXPR.
- (class operator_lt): Move to range-op-mixed.h.
- (lt_op1_op2_relation): Fold into
- operator_lt::op1_op2_relation.
- (integral_table::integral_table): Remove LT_EXPR.
- (pointer_table::pointer_table): Remove LT_EXPR.
- * range-op.h (lt_op1_op2_relation): Delete.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_not_equal): Remove. Move prototypes
- to range-op-mixed.h
- (operator_equal::fold_range): Rename from foperator_not_equal.
- (operator_equal::op1_range): Ditto.
- (float_table::float_table): Remove NE_EXPR.
- * range-op-mixed.h (class operator_not_equal): Combined from integer
- and float files.
- * range-op.cc (op_equal): New object.
- (unified_table::unified_table): Add NE_EXPR.
- (class operator_not_equal): Move to range-op-mixed.h.
- (not_equal_op1_op2_relation): Fold into
- operator_not_equal::op1_op2_relation.
- (integral_table::integral_table): Remove NE_EXPR.
- (pointer_table::pointer_table): Remove NE_EXPR.
- * range-op.h (not_equal_op1_op2_relation): Delete.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (foperator_equal): Remove. Move prototypes
- to range-op-mixed.h
- (operator_equal::fold_range): Rename from foperator_equal.
- (operator_equal::op1_range): Ditto.
- (float_table::float_table): Remove EQ_EXPR.
- * range-op-mixed.h (class operator_equal): Combined from integer
- and float files.
- * range-op.cc (op_equal): New object.
- (unified_table::unified_table): Add EQ_EXPR.
- (class operator_equal): Move to range-op-mixed.h.
- (equal_op1_op2_relation): Fold into
- operator_equal::op1_op2_relation.
- (integral_table::integral_table): Remove EQ_EXPR.
- (pointer_table::pointer_table): Remove EQ_EXPR.
- * range-op.h (equal_op1_op2_relation): Delete.
-
-2023-06-10 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (class float_table): Move to header.
- (float_table::float_table): Move float only operators to...
- (range_op_table::initialize_float_ops): Here.
- * range-op-mixed.h: New.
- * range-op.cc (integral_tree_table, pointer_tree_table): Moved
- to top of file.
- (float_tree_table): Moved from range-op-float.cc.
- (unified_tree_table): New.
- (unified_table::unified_table): New. Call initialize routines.
- (get_op_handler): Check unified table first.
- (range_op_handler::range_op_handler): Handle no type constructor.
- (integral_table::integral_table): Move integral only operators to...
- (range_op_table::initialize_integral_ops): Here.
- (pointer_table::pointer_table): Move pointer only operators to...
- (range_op_table::initialize_pointer_ops): Here.
- * range-op.h (enum bool_range_state): Move to range-op-mixed.h.
- (get_bool_state): Ditto.
- (empty_range_varying): Ditto.
- (relop_early_resolve): Ditto.
- (class range_op_table): Add new init methods for range types.
- (class integral_table): Move declaration to here.
- (class pointer_table): Move declaration to here.
- (class float_table): Move declaration to here.
-
-2023-06-09 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- Richard Sandiford <richard.sandiford@arm.com>
- Richard Biener <rguenther@suse.de>
-
- * doc/md.texi: Add SELECT_VL support.
- * internal-fn.def (SELECT_VL): Ditto.
- * optabs.def (OPTAB_D): Ditto.
- * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Ditto.
- * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Ditto.
- * tree-vect-stmts.cc (get_select_vl_data_ref_ptr): Ditto.
- (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
- * tree-vectorizer.h (LOOP_VINFO_USING_SELECT_VL_P): Ditto.
-
-2023-06-09 Andrew MacLeod <amacleod@redhat.com>
-
- PR ipa/109886
- * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Check param
- type as well.
-
-2023-06-09 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op.cc (range_cast): Move to...
- * range-op.h (range_cast): Here and add generic a version.
-
-2023-06-09 Marek Polacek <polacek@redhat.com>
-
- PR c/39589
- PR c++/96868
- * doc/invoke.texi: Clarify that -Wmissing-field-initializers doesn't
- warn about designated initializers in C only.
-
-2023-06-09 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/97711
- PR tree-optimization/110155
- * match.pd ((zero_one == 0) ? y : z <op> y): Add plus to the op.
- ((zero_one != 0) ? z <op> y : y): Likewise.
-
-2023-06-09 Andrew Pinski <apinski@marvell.com>
-
- * match.pd ((zero_one ==/!= 0) ? y : z <op> y): Use
- multiply rather than negation/bit_and.
-
-2023-06-09 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`X & -Y -> X * Y`): Allow for truncation
- and the same type for unsigned types.
-
-2023-06-09 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110165
- PR tree-optimization/110166
- * match.pd (zero_one_valued_p): Don't accept
- signed 1-bit integers.
-
-2023-06-09 Richard Biener <rguenther@suse.de>
-
- * match.pd (two conversions in a row): Use element_precision
- to DTRT for VECTOR_TYPE.
-
-2023-06-09 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv.md (enabled): Move to another place, and
- add fp_vector_disabled to the cond.
- (fp_vector_disabled): New attr defined for disabling fp.
- * config/riscv/vector-iterators.md: Fix V_WHOLE and V_FRACT.
-
-2023-06-09 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-protos.h (enum frm_field_enum): Adjust
- literal to int.
-
-2023-06-09 liuhongt <hongtao.liu@intel.com>
-
- PR target/110108
- * config/i386/i386.cc (ix86_gimple_fold_builtin): Explicitly
- view_convert_expr mask to signed type when folding pblendvb
- builtins.
-
-2023-06-09 liuhongt <hongtao.liu@intel.com>
-
- PR target/110108
- * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
- _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} into gimple
- ABSU_EXPR + VCE, don't fold _mm_abs_{pi8,pi16,pi32} w/o
- TARGET_64BIT.
- * config/i386/i386-builtin.def: Replace CODE_FOR_nothing with
- real codename for __builtin_ia32_pabs{b,w,d}.
-
-2023-06-08 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-op.cc
- (gimple_range_op_handler::gimple_range_op_handler): Adjust.
- (gimple_range_op_handler::maybe_builtin_call): Adjust.
- * gimple-range-op.h (operand1, operand2): Use m_operator.
- * range-op.cc (integral_table, pointer_table): Relocate.
- (get_op_handler): Rename from get_handler and handle all types.
- (range_op_handler::range_op_handler): Relocate.
- (range_op_handler::set_op_handler): Relocate and adjust.
- (range_op_handler::range_op_handler): Relocate.
- (dispatch_trio): New.
- (RO_III, RO_IFI, RO_IFF, RO_FFF, RO_FIF, RO_FII): New consts.
- (range_op_handler::dispatch_kind): New.
- (range_op_handler::fold_range): Relocate and Use new dispatch value.
- (range_op_handler::op1_range): Ditto.
- (range_op_handler::op2_range): Ditto.
- (range_op_handler::lhs_op1_relation): Ditto.
- (range_op_handler::lhs_op2_relation): Ditto.
- (range_op_handler::op1_op2_relation): Ditto.
- (range_op_handler::set_op_handler): Use m_operator member.
- * range-op.h (range_op_handler::operator bool): Use m_operator.
- (range_op_handler::dispatch_kind): New.
- (range_op_handler::m_valid): Delete.
- (range_op_handler::m_int): Delete
- (range_op_handler::m_float): Delete
- (range_op_handler::m_operator): New.
- (range_op_table::operator[]): Relocate from .cc file.
- (range_op_table::set): Ditto.
- * value-range.h (class vrange): Make range_op_handler a friend.
-
-2023-06-08 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-op.cc (cfn_constant_float_p): Change base class.
- (cfn_pass_through_arg1): Adjust using statemenmt.
- (cfn_signbit): Change base class, adjust using statement.
- (cfn_copysign): Ditto.
- (cfn_sqrt): Ditto.
- (cfn_sincos): Ditto.
- * range-op-float.cc (fold_range): Change class to range_operator.
- (rv_fold): Ditto.
- (op1_range): Ditto
- (op2_range): Ditto
- (lhs_op1_relation): Ditto.
- (lhs_op2_relation): Ditto.
- (op1_op2_relation): Ditto.
- (foperator_*): Ditto.
- (class float_table): New. Inherit from range_op_table.
- (floating_tree_table) Change to range_op_table pointer.
- (class floating_op_table): Delete.
- * range-op.cc (operator_equal): Adjust using statement.
- (operator_not_equal): Ditto.
- (operator_lt, operator_le, operator_gt, operator_ge): Ditto.
- (operator_minus, operator_cast): Ditto.
- (operator_bitwise_and, pointer_plus_operator): Ditto.
- (get_float_handle): Change return type.
- * range-op.h (range_operator_float): Delete. Relocate all methods
- into class range_operator.
- (range_op_handler::m_float): Change type to range_operator.
- (floating_op_table): Delete.
- (floating_tree_table): Change type.
-
-2023-06-08 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op.cc (range_operator::fold_range): Call virtual routine.
- (range_operator::update_bitmask): New.
- (operator_equal::update_bitmask): New.
- (operator_not_equal::update_bitmask): New.
- (operator_lt::update_bitmask): New.
- (operator_le::update_bitmask): New.
- (operator_gt::update_bitmask): New.
- (operator_ge::update_bitmask): New.
- (operator_ge::update_bitmask): New.
- (operator_plus::update_bitmask): New.
- (operator_minus::update_bitmask): New.
- (operator_pointer_diff::update_bitmask): New.
- (operator_min::update_bitmask): New.
- (operator_max::update_bitmask): New.
- (operator_mult::update_bitmask): New.
- (operator_div:operator_div):New.
- (operator_div::update_bitmask): New.
- (operator_div::m_code): New member.
- (operator_exact_divide::operator_exact_divide): New constructor.
- (operator_lshift::update_bitmask): New.
- (operator_rshift::update_bitmask): New.
- (operator_bitwise_and::update_bitmask): New.
- (operator_bitwise_or::update_bitmask): New.
- (operator_bitwise_xor::update_bitmask): New.
- (operator_trunc_mod::update_bitmask): New.
- (op_ident, op_unknown, op_ptr_min_max): New.
- (op_nop, op_convert): Delete.
- (op_ssa, op_paren, op_obj_type): Delete.
- (op_realpart, op_imagpart): Delete.
- (op_ptr_min, op_ptr_max): Delete.
- (pointer_plus_operator:update_bitmask): New.
- (range_op_table::set): Do not use m_code.
- (integral_table::integral_table): Adjust to single instances.
- * range-op.h (range_operator::range_operator): Delete.
- (range_operator::m_code): Delete.
- (range_operator::update_bitmask): New.
-
-2023-06-08 Andrew MacLeod <amacleod@redhat.com>
-
- * range-op-float.cc (range_operator_float::fold_range): Return
- NAN of the result type.
-
-2023-06-08 Jakub Jelinek <jakub@redhat.com>
-
- * optabs.cc (expand_ffs): Add forward declaration.
- (expand_doubleword_clz): Rename to ...
- (expand_doubleword_clz_ctz_ffs): ... this. Add UNOPTAB argument,
- handle also doubleword CTZ and FFS in addition to CLZ.
- (expand_unop): Adjust caller. Also call it for doubleword
- ctz_optab and ffs_optab.
-
-2023-06-08 Jakub Jelinek <jakub@redhat.com>
-
- PR target/110152
- * config/i386/i386-expand.cc (ix86_expand_vector_init_general): For
- n_words == 2 recurse with mmx_ok as first argument rather than false.
-
-2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
-
- * wide-int.cc (wi::bitreverse_large): Use HOST_WIDE_INT_1U to
- avoid sign extension/undefined behaviour when setting each bit.
-
-2023-06-07 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_builtin) <handlecarry>:
- Use new x86_stc instruction when the carry flag must be set.
- * config/i386/i386.cc (ix86_cc_mode): Use CCCmode for *x86_cmc.
- (ix86_rtx_costs): Provide accurate rtx_costs for *x86_cmc.
- * config/i386/i386.h (TARGET_SLOW_STC): New define.
- * config/i386/i386.md (UNSPEC_STC): New UNSPEC for stc.
- (x86_stc): New define_insn.
- (define_peephole2): Convert x86_stc into alternate implementation
- on pentium4 without -Os when a QImode register is available.
- (*x86_cmc): New define_insn.
- (define_peephole2): Convert *x86_cmc into alternate implementation
- on pentium4 without -Os when a QImode register is available.
- (*setccc): New define_insn_and_split for a no-op CCCmode move.
- (*setcc_qi_negqi_ccc_1_<mode>): New define_insn_and_split to
- recognize (and eliminate) the carry flag being copied to itself.
- (*setcc_qi_negqi_ccc_2_<mode>): Likewise.
- * config/i386/x86-tune.def (X86_TUNE_SLOW_STC): New tuning flag.
-
-2023-06-07 Andrew Pinski <apinski@marvell.com>
-
- * match.pd: Fix comment for the
- `(zero_one ==/!= 0) ? y : z <op> y` patterns.
-
-2023-06-07 Jeff Law <jlaw@ventanamicro.com>
- Jeff Law <jlaw@ventanamicro.com>
-
- * config/riscv/bitmanip.md (rotrdi3, rotrsi3, rotlsi3): New expanders.
- (rotrsi3_sext): Expose generator.
- (rotlsi3 pattern): Hide generator.
- * config/riscv/riscv-protos.h (riscv_emit_binary): New function
- declaration.
- * config/riscv/riscv.cc (riscv_emit_binary): Removed static
- * config/riscv/riscv.md (addsi3, subsi3, negsi2): Hide generator.
- (mulsi3, <optab>si3): Likewise.
- (addsi3, subsi3, negsi2, mulsi3, <optab>si3): New expanders.
- (addv<mode>4, subv<mode>4, mulv<mode>4): Use riscv_emit_binary.
- (<u>mulsidi3): Likewise.
- (addsi3_extended, subsi3_extended, negsi2_extended): Expose generator.
- (mulsi3_extended, <optab>si3_extended): Likewise.
- (splitter for shadd feeding divison): Update RTL pattern to account
- for changes in how 32 bit ops are expanded for TARGET_64BIT.
- * loop-iv.cc (get_biv_step_1): Process src of extension when it PLUS.
-
-2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
-
- PR target/109725
- * config/riscv/riscv.cc (riscv_print_operand): Calculate
- memmodel only when it is valid.
-
-2023-06-07 Dimitar Dimitrov <dimitar@dinux.eu>
-
- * config/riscv/riscv.cc (riscv_const_insns): Recursively call
- for constant element of a vector.
-
-2023-06-07 Jakub Jelinek <jakub@redhat.com>
-
- * match.pd (zero_one_valued_p): Don't handle integer_zerop specially,
- instead compare tree_nonzero_bits <= 1U rather than just == 1.
-
-2023-06-07 Alex Coplan <alex.coplan@arm.com>
-
- PR target/110132
- * config/aarch64/aarch64-builtins.cc (aarch64_general_simulate_builtin):
- New. Use it ...
- (aarch64_init_ls64_builtins): ... here. Switch to declaring public ACLE
- names for builtins.
- (aarch64_general_init_builtins): Ensure we invoke the arm_acle.h
- setup if in_lto_p, just like we do for SVE.
- * config/aarch64/arm_acle.h: (__arm_ld64b): Delete.
- (__arm_st64b): Delete.
- (__arm_st64bv): Delete.
- (__arm_st64bv0): Delete.
-
-2023-06-07 Alex Coplan <alex.coplan@arm.com>
-
- PR target/110100
- * config/aarch64/aarch64-builtins.cc (aarch64_expand_builtin_ls64):
- Use input operand for the destination address.
- * config/aarch64/aarch64.md (st64b): Fix constraint on address
- operand.
-
-2023-06-07 Alex Coplan <alex.coplan@arm.com>
-
- PR target/110100
- * config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types):
- Replace eight consecutive spaces with tabs.
- (aarch64_init_ls64_builtins): Likewise.
- (aarch64_expand_builtin_ls64): Likewise.
- * config/aarch64/aarch64.md (ld64b): Likewise.
- (st64b): Likewise.
- (st64bv): Likewise
- (st64bv0): Likewise.
-
-2023-06-07 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira-costs.cc: (find_costs_and_classes): Constrain classes of pic
- offset table pseudo to a general reg subset.
-
-2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode><vczle><vczbe>):
- Rename to...
- (*aarch64_sqmovun<mode>_insn<vczle><vczbe>): ... This. Reimplement
- with RTL codes.
- (aarch64_sqmovun<mode> [SD_HSDI]): Reimplement with RTL codes.
- (aarch64_sqxtun2<mode>_le): Likewise.
- (aarch64_sqxtun2<mode>_be): Likewise.
- (aarch64_sqxtun2<mode>): Adjust for the above.
- (aarch64_sqmovun<mode>): New define_expand.
- * config/aarch64/iterators.md (UNSPEC_SQXTUN): Delete.
- (half_mask): New mode attribute.
- * config/aarch64/predicates.md (aarch64_simd_umax_half_mode):
- New predicate.
-
-2023-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_addp<mode><vczle><vczbe>):
- Reimplement as...
- (aarch64_addp<mode>_insn): ... This...
- (aarch64_addp<mode><vczle><vczbe>_insn): ... And this.
- (aarch64_addp<mode>): New define_expand.
-
-2023-06-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (expand_vec_perm_const): New function.
- * config/riscv/riscv-v.cc
- (rvv_builder::can_duplicate_repeating_sequence_p): Support POLY
- handling.
- (rvv_builder::single_step_npatterns_p): New function.
- (rvv_builder::npatterns_all_equal_p): Ditto.
- (const_vec_all_in_range_p): Support POLY handling.
- (gen_const_vector_dup): Ditto.
- (emit_vlmax_gather_insn): Add vrgatherei16.
- (emit_vlmax_masked_gather_mu_insn): Ditto.
- (expand_const_vector): Add VLA SLP const vector support.
- (expand_vec_perm): Support POLY.
- (struct expand_vec_perm_d): New struct.
- (shuffle_generic_patterns): New function.
- (expand_vec_perm_const_1): Ditto.
- (expand_vec_perm_const): Ditto.
- * config/riscv/riscv.cc (riscv_vectorize_vec_perm_const): Ditto.
- (TARGET_VECTORIZE_VEC_PERM_CONST): New targethook.
-
-2023-06-07 Andrew Pinski <apinski@marvell.com>
-
- PR middle-end/110117
- * expr.cc (expand_single_bit_test): Handle
- const_int from expand_expr.
-
-2023-06-07 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (do_store_flag): Rearrange the
- TER code so that it overrides the nonzero bits
- info if we had `a & POW2`.
-
-2023-06-07 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/110134
- * match.pd (-A CMP -B -> B CMP A): Allow EQ/NE for all integer
- types.
- (-A CMP CST -> B CMP (-CST)): Likewise.
-
-2023-06-07 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/89263
- PR tree-optimization/99069
- PR tree-optimization/20083
- PR tree-optimization/94898
- * match.pd: Add patterns to optimize `a ? onezero : onezero` with
- one of the operands are constant.
-
-2023-06-07 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (zero_one_valued_p): Match 0 integer constant
- too.
-
-2023-06-07 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat32mf2_t): Take RVV_REQUIRE_ELEN_FP_16 as requirement.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_t): Ditto.
- (vint32mf2_t): Ditto.
- (vint32m1_t): Ditto.
- (vint32m2_t): Ditto.
- (vint32m4_t): Ditto.
- (vint32m8_t): Ditto.
- (vuint32mf2_t): Ditto.
- (vuint32m1_t): Ditto.
- (vuint32m2_t): Ditto.
- (vuint32m4_t): Ditto.
- (vuint32m8_t): Ditto.
-
-2023-06-07 Jason Merrill <jason@redhat.com>
-
- PR c++/58487
- * doc/invoke.texi: Document it.
-
-2023-06-06 Roger Sayle <roger@nextmovesoftware.com>
-
- * doc/rtl.texi (bitreverse, copysign): Document new RTX codes.
- * rtl.def (BITREVERSE, COPYSIGN): Define new RTX codes.
- * simplify-rtx.cc (simplify_unary_operation_1): Optimize
- NOT (BITREVERSE x) as BITREVERSE (NOT x).
- Optimize POPCOUNT (BITREVERSE x) as POPCOUNT x.
- Optimize PARITY (BITREVERSE x) as PARITY x.
- Optimize BITREVERSE (BITREVERSE x) as x.
- (simplify_const_unary_operation) <case BITREVERSE>: Evaluate
- BITREVERSE of a constant integer at compile-time.
- (simplify_binary_operation_1) <case COPYSIGN>: Optimize
- COPY_SIGN (x, x) as x. Optimize COPYSIGN (x, C) as ABS x
- or NEG (ABS x) for constant C. Optimize COPYSIGN (ABS x, y)
- and COPYSIGN (NEG x, y) as COPYSIGN (x, y).
- Optimize COPYSIGN (x, ABS y) as ABS x.
- Optimize COPYSIGN (COPYSIGN (x, y), z) as COPYSIGN (x, z).
- Optimize COPYSIGN (x, COPYSIGN (y, z)) as COPYSIGN (x, z).
- (simplify_const_binary_operation): Evaluate COPYSIGN of constant
- arguments at compile-time.
-
-2023-06-06 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (function_invariant_p): Change return type from int to bool.
- * reload1.cc (function_invariant_p): Change return type from
- int to bool and adjust function body accordingly.
-
-2023-06-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*<optab>_fma<mode>): New pattern.
- (*single_<optab>mult_plus<mode>): Ditto.
- (*double_<optab>mult_plus<mode>): Ditto.
- (*sign_zero_extend_fma): Ditto.
- (*zero_sign_extend_fma): Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
-
-2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com>
- Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.cc (omp_notice_variable): Apply GOVD_MAP_ALLOC_ONLY flag
- and defaultmap flags if the defaultmap has GOVD_MAP_FORCE_PRESENT flag
- set.
- (omp_get_attachment): Handle map clauses with 'present' modifier.
- (omp_group_base): Likewise.
- (gimplify_scan_omp_clauses): Reorder present maps to come first.
- Set GOVD flags for present defaultmaps.
- (gimplify_adjust_omp_clauses_1): Set map kind for present defaultmaps.
- * omp-low.cc (scan_sharing_clauses): Handle 'always, present' map
- clauses.
- (lower_omp_target): Handle map clauses with 'present' modifier.
- Handle 'to' and 'from' clauses with 'present'.
- * tree-core.h (enum omp_clause_defaultmap_kind): Add
- OMP_CLAUSE_DEFAULTMAP_PRESENT defaultmap kind.
- * tree-pretty-print.cc (dump_omp_clause): Handle 'map', 'to' and
- 'from' clauses with 'present' modifier. Handle present defaultmap.
- * tree.h (OMP_CLAUSE_MOTION_PRESENT): New #define.
-
-2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/genfusion.pl: Delete some dead code.
-
-2023-06-06 Segher Boessenkool <segher@kernel.crashing.org>
-
- * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and
- split out from...
- (gen_ld_cmpi_p10): ... this.
-
-2023-06-06 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
-
- PR target/106907
- * config/rs6000/rs6000.cc (vec_const_128bit_to_bytes): Remove
- duplicate expression.
-
-2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin):
- Handle unsigned reduc_plus_scal_ builtins.
- * config/aarch64/aarch64-simd-builtins.def (addp): Delete DImode instances.
- * config/aarch64/aarch64-simd.md (aarch64_addpdi): Delete.
- * config/aarch64/arm_neon.h (vpaddd_s64): Reimplement with
- __builtin_aarch64_reduc_plus_scal_v2di.
- (vpaddd_u64): Reimplement with __builtin_aarch64_reduc_plus_scal_v2di_uu.
-
-2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>shr_n<mode>): Delete.
- (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): New define_insn.
- (aarch64_<sra_op>rshr_n<mode>): New define_expand.
-
-2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Delete.
- (aarch64_shrn<mode>_insn_be): Delete.
- (*aarch64_<srn_op>shrn<mode>_vect): Rename to...
- (*aarch64_<srn_op>shrn<mode><vczle><vczbe>): ... This.
- (aarch64_shrn<mode>): Remove reference to the above deleted patterns.
- (aarch64_rshrn<mode>_insn_le): Delete.
- (aarch64_rshrn<mode>_insn_be): Delete.
- (aarch64_rshrn<mode><vczle><vczbe>_insn): New define_insn.
- (aarch64_rshrn<mode>): Remove references to the above deleted patterns.
-
-2023-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-protos.h (aarch64_parallel_select_half_p):
- Define prototype.
- (aarch64_pars_overlap_p): Likewise.
- * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
- Express in terms of UNSPEC_ADDV.
- (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): Likewise.
- (*aarch64_<su>addlv<mode>_reduction): Define.
- (*aarch64_uaddlv<mode>_reduction_2): Likewise.
- * config/aarch64/aarch64.cc (aarch64_parallel_select_half_p): Define.
- (aarch64_pars_overlap_p): Likewise.
- * config/aarch64/iterators.md (UNSPEC_SADDLV, UNSPEC_UADDLV): Delete.
- (VQUADW): New mode attribute.
- (VWIDE2X_S): Likewise.
- (USADDLV): Delete.
- (su): Delete handling of UNSPEC_SADDLV, UNSPEC_UADDLV.
- * config/aarch64/predicates.md (vect_par_cnst_select_half): Define.
-
-2023-06-06 Richard Biener <rguenther@suse.de>
-
- PR middle-end/110055
- * gimplify.cc (gimplify_target_expr): Do not emit
- CLOBBERs for variables which have static storage duration
- after gimplifying their initializers.
-
-2023-06-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109143
- * tree-ssa-structalias.cc (solution_set_expand): Avoid
- one bitmap iteration and optimize bit range setting.
-
-2023-06-06 Hans-Peter Nilsson <hp@axis.com>
-
- PR bootstrap/110120
- * postreload.cc (reload_cse_move2add, move2add_use_add2_insn): Use
- XVECEXP, not XEXP, to access first item of a PARALLEL.
-
-2023-06-06 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat16mf4_t): Add vfloat16mf4_t to WF operations.
- (vfloat16mf2_t): Likewise.
- (vfloat16m1_t): Likewise.
- (vfloat16m2_t): Likewise.
- (vfloat16m4_t): Likewise.
- (vfloat16m8_t): Likewise.
- * config/riscv/vector-iterators.md: Add FP=16 to VWF, VWF_ZVE64,
- VWLMUL1, VWLMUL1_ZVE64, vwlmul1 and vwlmul1_zve64.
-
-2023-06-06 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Use Pmode
- for cfi reg/mem machmode
- (riscv_adjust_libcall_cfi_epilogue): Use Pmode for cfi reg machmode
-
-2023-06-06 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/vector-iterators.md:
- Fix 'REQUIREMENT' for machine_mode 'MODE'.
- * config/riscv/vector.md (@pred_indexed_<order>store<VNX16_QHS:mode>
- <VNX16_QHSI:mode>): change VNX16_QHSI to VNX16_QHSDI.
- (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSDI:mode>): Ditto.
-
-2023-06-06 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector-iterators.md: Fix typo in mode attr.
-
-2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
- Joel Hutton <joel.hutton@arm.com>
-
- * doc/generic.texi: Remove old tree codes.
- * expr.cc (expand_expr_real_2): Remove old tree code cases.
- * gimple-pretty-print.cc (dump_binary_rhs): Likewise.
- * optabs-tree.cc (optab_for_tree_code): Likewise.
- (supportable_half_widening_operation): Likewise.
- * tree-cfg.cc (verify_gimple_assign_binary): Likewise.
- * tree-inline.cc (estimate_operator_cost): Likewise.
- (op_symbol_code): Likewise.
- * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise.
- (vect_analyze_data_ref_accesses): Likewise.
- * tree-vect-generic.cc (expand_vector_operations_1): Likewise.
- * cfgexpand.cc (expand_debug_expr): Likewise.
- * tree-vect-stmts.cc (vectorizable_conversion): Likewise.
- (supportable_widening_operation): Likewise.
- * gimple-range-op.cc (gimple_range_op_handler::maybe_non_standard):
- Likewise.
- * optabs.def (vec_widen_ssubl_hi_optab, vec_widen_ssubl_lo_optab,
- vec_widen_saddl_hi_optab, vec_widen_saddl_lo_optab,
- vec_widen_usubl_hi_optab, vec_widen_usubl_lo_optab,
- vec_widen_uaddl_hi_optab, vec_widen_uaddl_lo_optab): Remove optabs.
- * tree-pretty-print.cc (dump_generic_node): Remove tree code definition.
- * tree.def (WIDEN_PLUS_EXPR, WIDEN_MINUS_EXPR, VEC_WIDEN_PLUS_HI_EXPR,
- VEC_WIDEN_PLUS_LO_EXPR, VEC_WIDEN_MINUS_HI_EXPR,
- VEC_WIDEN_MINUS_LO_EXPR): Likewise.
-
-2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
- Joel Hutton <joel.hutton@arm.com>
- Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64-simd.md (vec_widen_<su>addl_lo_<mode>): Rename
- this ...
- (vec_widen_<su>add_lo_<mode>): ... to this.
- (vec_widen_<su>addl_hi_<mode>): Rename this ...
- (vec_widen_<su>add_hi_<mode>): ... to this.
- (vec_widen_<su>subl_lo_<mode>): Rename this ...
- (vec_widen_<su>sub_lo_<mode>): ... to this.
- (vec_widen_<su>subl_hi_<mode>): Rename this ...
- (vec_widen_<su>sub_hi_<mode>): ...to this.
- * doc/generic.texi: Document new IFN codes.
- * internal-fn.cc (lookup_hilo_internal_fn): Add lookup function.
- (commutative_binary_fn_p): Add widen_plus fn's.
- (widening_fn_p): New function.
- (narrowing_fn_p): New function.
- (direct_internal_fn_optab): Change visibility.
- * internal-fn.def (DEF_INTERNAL_WIDENING_OPTAB_FN): Macro to define an
- internal_fn that expands into multiple internal_fns for widening.
- (IFN_VEC_WIDEN_PLUS, IFN_VEC_WIDEN_PLUS_HI, IFN_VEC_WIDEN_PLUS_LO,
- IFN_VEC_WIDEN_PLUS_EVEN, IFN_VEC_WIDEN_PLUS_ODD,
- IFN_VEC_WIDEN_MINUS, IFN_VEC_WIDEN_MINUS_HI,
- IFN_VEC_WIDEN_MINUS_LO, IFN_VEC_WIDEN_MINUS_ODD,
- IFN_VEC_WIDEN_MINUS_EVEN): Define widening plus,minus functions.
- * internal-fn.h (direct_internal_fn_optab): Declare new prototype.
- (lookup_hilo_internal_fn): Likewise.
- (widening_fn_p): Likewise.
- (Narrowing_fn_p): Likewise.
- * optabs.cc (commutative_optab_p): Add widening plus optabs.
- * optabs.def (OPTAB_D): Define widen add, sub optabs.
- * tree-vect-patterns.cc (vect_recog_widen_op_pattern): Support
- patterns with a hi/lo or even/odd split.
- (vect_recog_sad_pattern): Refactor to use new IFN codes.
- (vect_recog_widen_plus_pattern): Likewise.
- (vect_recog_widen_minus_pattern): Likewise.
- (vect_recog_average_pattern): Likewise.
- * tree-vect-stmts.cc (vectorizable_conversion): Add support for
- _HILO IFNs.
- (supportable_widening_operation): Likewise.
- * tree.def (WIDEN_SUM_EXPR): Update example to use new IFNs.
-
-2023-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
- Joel Hutton <joel.hutton@arm.com>
-
- * tree-vect-patterns.cc: Add include for gimple-iterator.
- (vect_recog_widen_op_pattern): Refactor to use code_helper.
- (vect_gimple_build): New function.
- * tree-vect-stmts.cc (simple_integer_narrowing): Refactor to use
- code_helper.
- (vectorizable_call): Likewise.
- (vect_gen_widened_results_half): Likewise.
- (vect_create_vectorized_demotion_stmts): Likewise.
- (vect_create_vectorized_promotion_stmts): Likewise.
- (vect_create_half_widening_stmts): Likewise.
- (vectorizable_conversion): Likewise.
- (supportable_widening_operation): Likewise.
- (supportable_narrowing_operation): Likewise.
- * tree-vectorizer.h (supportable_widening_operation): Change
- prototype to use code_helper.
- (supportable_narrowing_operation): Likewise.
- (vect_gimple_build): New function prototype.
- * tree.h (code_helper::safe_as_tree_code): New function.
- (code_helper::safe_as_fn_code): New function.
-
-2023-06-05 Roger Sayle <roger@nextmovesoftware.com>
-
- * wide-int.cc (wi::bitreverse_large): New function implementing
- bit reversal of an integer.
- * wide-int.h (wi::bitreverse): New (template) function prototype.
- (bitreverse_large): Prototype helper function/implementation.
- (wi::bitreverse): New template wrapper around bitreverse_large.
-
-2023-06-05 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (print_rtl_single): Change return type from int to void.
- (print_rtl_single_with_indent): Ditto.
- * print-rtl.h (class rtx_writer): Ditto. Change m_sawclose to bool.
- * print-rtl.cc (rtx_writer::rtx_writer): Update for m_sawclose change.
- (rtx_writer::print_rtx_operand_code_0): Ditto.
- (rtx_writer::print_rtx_operand_codes_E_and_V): Ditto.
- (rtx_writer::print_rtx_operand_code_i): Ditto.
- (rtx_writer::print_rtx_operand_code_u): Ditto.
- (rtx_writer::print_rtx_operand): Ditto.
- (rtx_writer::print_rtx): Ditto.
- (rtx_writer::finish_directive): Ditto.
- (print_rtl_single): Change return type from int to void
- and adjust function body accordingly.
- (rtx_writer::print_rtl_single_with_indent): Ditto.
-
-2023-06-05 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (reg_classes_intersect_p): Change return type from int to bool.
- (reg_class_subset_p): Ditto.
- * reginfo.cc (reg_classes_intersect_p): Ditto.
- (reg_class_subset_p): Ditto.
-
-2023-06-05 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat32mf2_t): New type for DEF_RVV_WEXTF_OPS.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vint16mf4_t): New type for DEF_RVV_CONVERT_I_OPS.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_t): Ditto.
- (vuint16mf4_t): New type for DEF_RVV_CONVERT_U_OPS.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_t): Ditto.
- (vint32mf2_t): New type for DEF_RVV_WCONVERT_I_OPS.
- (vint32m1_t): Ditto.
- (vint32m2_t): Ditto.
- (vint32m4_t): Ditto.
- (vint32m8_t): Ditto.
- (vuint32mf2_t): New type for DEF_RVV_WCONVERT_U_OPS.
- (vuint32m1_t): Ditto.
- (vuint32m2_t): Ditto.
- (vuint32m4_t): Ditto.
- (vuint32m8_t): Ditto.
- * config/riscv/vector-iterators.md: Add FP=16 support for V,
- VWCONVERTI, VCONVERT, VNCONVERT, VMUL1 and vlmul1.
-
-2023-06-05 Andrew Pinski <apinski@marvell.com>
-
- PR bootstrap/110085
- * Makefile.in (clean): Remove the removing of
- MULTILIB_DIR/MULTILIB_OPTIONS directories.
-
-2023-06-05 YunQiang Su <yunqiang.su@cipunited.com>
-
- * config/mips/mips-protos.h (mips_emit_speculation_barrier): New
- prototype.
- * config/mips/mips.cc (speculation_barrier_libfunc): New static
- variable.
- (mips_init_libfuncs): Initialize it.
- (mips_emit_speculation_barrier): New function.
- * config/mips/mips.md (speculation_barrier): Call
- mips_emit_speculation_barrier.
-
-2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (class rvv_builder): Reorganize functions.
- (rvv_builder::can_duplicate_repeating_sequence_p): Ditto.
- (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
- (rvv_builder::get_merged_repeating_sequence): Ditto.
- (rvv_builder::get_merge_scalar_mask): Ditto.
- (emit_scalar_move_insn): Ditto.
- (emit_vlmax_integer_move_insn): Ditto.
- (emit_nonvlmax_integer_move_insn): Ditto.
- (emit_vlmax_gather_insn): Ditto.
- (emit_vlmax_masked_gather_mu_insn): Ditto.
- (get_repeating_sequence_dup_machine_mode): Ditto.
-
-2023-06-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Split arguments.
- * config/riscv/riscv-protos.h (expand_vec_perm): Ditto.
- * config/riscv/riscv-v.cc (expand_vec_perm): Ditto.
-
-2023-06-04 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (do_store_flag): Improve for single bit testing
- not against zero but against that single bit.
-
-2023-06-04 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (do_store_flag): Extend the one bit checking case
- to handle the case where we don't have an and but rather still
- one bit is known to be non-zero.
-
-2023-06-04 Jeff Law <jlaw@ventanamicro.com>
-
- * config/h8300/constraints.md (Zz): Make this a normal
- constraint.
- * config/h8300/h8300.cc (TARGET_LRA_P): Remove.
- * config/h8300/logical.md (H8/SX bit patterns): Remove.
-
-2023-06-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.md (*btrue_INT_MIN, *eqne_INT_MIN):
- New insn_and_split patterns.
-
-2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/110109
- * config/riscv/riscv-vector-builtins-bases.cc: Change expand approach.
- * config/riscv/vector.md (@vlmul_extx2<mode>): Remove it.
- (@vlmul_extx4<mode>): Ditto.
- (@vlmul_extx8<mode>): Ditto.
- (@vlmul_extx16<mode>): Ditto.
- (@vlmul_extx32<mode>): Ditto.
- (@vlmul_extx64<mode>): Ditto.
- (*vlmul_extx2<mode>): Ditto.
- (*vlmul_extx4<mode>): Ditto.
- (*vlmul_extx8<mode>): Ditto.
- (*vlmul_extx16<mode>): Ditto.
- (*vlmul_extx32<mode>): Ditto.
- (*vlmul_extx64<mode>): Ditto.
-
-2023-06-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat32mf2_t): Add vfloat32mf2_t type to vfncvt.f.f.w operations.
- (vfloat32m1_t): Likewise.
- (vfloat32m2_t): Likewise.
- (vfloat32m4_t): Likewise.
- (vfloat32m8_t): Likewise.
- * config/riscv/riscv-vector-builtins.def: Fix typo in comments.
- * config/riscv/vector-iterators.md: Add single to half machine
- mode conversion.
-
-2023-06-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec-opt.md (*<optab>not<mode>): Move to autovec-opt.md.
- (*n<optab><mode>): Ditto.
- * config/riscv/autovec.md (*<optab>not<mode>): Ditto.
- (*n<optab><mode>): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-06-04 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/110083
- * config/i386/i386-features.cc (scalar_chain::convert_compare):
- Update or delete REG_EQUAL notes, converting CONST_INT and
- CONST_WIDE_INT immediate operands to a suitable CONST_VECTOR.
-
-2023-06-04 Jason Merrill <jason@redhat.com>
-
- PR c++/97720
- * tree-eh.cc (lower_resx): Pass the exception pointer to the
- failure_decl.
- * except.h: Tweak comment.
-
-2023-06-04 Hans-Peter Nilsson <hp@axis.com>
-
- * postreload.cc (move2add_use_add2_insn): Handle
- trivial single_sets. Rename variable PAT to SET.
- (move2add_use_add3_insn, reload_cse_move2add): Similar.
-
-2023-06-04 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins-types.def
- (vfloat16mf4_t): Add the float16 type to DEF_RVV_F_OPS.
- (vfloat16mf2_t): Likewise.
- (vfloat16m1_t): Likewise.
- (vfloat16m2_t): Likewise.
- (vfloat16m4_t): Likewise.
- (vfloat16m8_t): Likewise.
- * config/riscv/riscv.md: Add vfloat16*_t to attr mode.
- * config/riscv/vector-iterators.md: Add vfloat16*_t machine mode
- to V, V_WHOLE, V_FRACT, VINDEX, VM, VEL and sew.
- * config/riscv/vector.md: Add vfloat16*_t machine mode to sew,
- vlmul and ratio.
-
-2023-06-03 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_expand_epilogue): fix cfi issue with
- correct offset.
-
-2023-06-03 Die Li <lidie@eswincomputing.com>
-
- * config/riscv/thead.md (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Delete.
-
-2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/predicates.md: Change INTVAL into UINTVAL.
-
-2023-06-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Add vector-opt.md.
- * config/riscv/autovec-opt.md: New file.
-
-2023-06-03 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/110067
- * gimple-ssa-store-merging.cc (find_bswap_or_nop): Don't try
- bswap + rotate when TYPE_PRECISION(n->type) > n->range.
-
-2023-06-03 liuhongt <hongtao.liu@intel.com>
-
- PR target/92658
- * config/i386/mmx.md (truncv2hiv2qi2): New define_insn.
- (truncv2si<mode>2): Ditto.
-
-2023-06-02 Andrew Pinski <apinski@marvell.com>
-
- PR rtl-optimization/102733
- * dse.cc (store_info): Add addrspace field.
- (record_store): Record the address space
- and check to make sure they are the same.
-
-2023-06-02 Andrew Pinski <apinski@marvell.com>
-
- PR rtl-optimization/110042
- * ifcvt.cc (bbs_ok_for_cmove_arith): Allow paradoxical subregs.
- (bb_valid_for_noce_process_p): Strip the subreg for the SET_DEST.
-
-2023-06-02 Iain Sandoe <iain@sandoe.co.uk>
-
- PR target/110044
- * config/rs6000/rs6000.cc (darwin_rs6000_special_round_type_align):
- Make sure that we do not have a cap on field alignment before altering
- the struct layout based on the type alignment of the first entry.
-
-2023-06-02 David Faust <david.faust@oracle.com>
-
- PR debug/110073
- * btfout.cc (btf_absolute_func_id): New function.
- (btf_asm_func_type): Call it here. Change index parameter from
- size_t to ctf_id_t. Use PRIu64 formatter.
-
-2023-06-02 Alex Coplan <alex.coplan@arm.com>
-
- * btfout.cc (btf_asm_type): Use PRIu64 instead of %lu for uint64_t.
- (btf_asm_datasec_type): Likewise.
-
-2023-06-02 Carl Love <cel@us.ibm.com>
-
- * config/rs6000/rs6000-builtins.def (__builtin_altivec_tr_stxvrhx,
- __builtin_altivec_tr_stxvrwx): Fix type of third argument.
-
-2023-06-02 Jason Merrill <jason@redhat.com>
-
- PR c++/110070
- PR c++/105838
- * tree.h (DECL_MERGEABLE): New.
- * tree-core.h (struct tree_decl_common): Mention it.
- * gimplify.cc (gimplify_init_constructor): Check it.
- * cgraph.cc (symtab_node::address_can_be_compared_p): Likewise.
- * varasm.cc (categorize_decl_for_section): Likewise.
-
-2023-06-02 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (stack_regs_mentioned): Change return type from int to bool.
- * reg-stack.cc (struct_block_info_def): Change "done" to bool.
- (stack_regs_mentioned_p): Change return type from int to bool
- and adjust function body accordingly.
- (stack_regs_mentioned): Ditto.
- (check_asm_stack_operands): Ditto. Change "malformed_asm"
- variable to bool.
- (move_for_stack_reg): Recode handling of control_flow_insn_deleted.
- (swap_rtx_condition_1): Change return type from int to bool
- and adjust function body accordingly. Change "r" variable to bool.
- (swap_rtx_condition): Change return type from int to bool
- and adjust function body accordingly.
- (subst_stack_regs_pat): Recode handling of control_flow_insn_deleted.
- (subst_stack_regs): Ditto.
- (convert_regs_entry): Change return type from int to bool and adjust
- function body accordingly. Change "inserted" variable to bool.
- (convert_regs_1): Recode handling of control_flow_insn_deleted.
- (convert_regs_2): Recode handling of cfg_altered.
- (convert_regs): Ditto. Change "inserted" variable to bool.
-
-2023-06-02 Jason Merrill <jason@redhat.com>
-
- PR c++/95226
- * varasm.cc (output_constant) [REAL_TYPE]: Check that sizes match.
- (initializer_constant_valid_p_1): Compare float precision.
-
-2023-06-02 Alexander Monakov <amonakov@ispras.ru>
-
- * doc/extend.texi (Vector Extensions): Clarify bitwise shift
- semantics.
-
-2023-06-02 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): Change decrement IV flow.
- (vect_set_loop_condition_partial_vectors): Ditto.
-
-2023-06-02 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/110088
- * config/avr/avr.md: Add an RTL peephole to optimize operations on
- non-LD_REGS after a move from LD_REGS.
- (piaop): New code iterator.
-
-2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
-
- PR testsuite/66005
- * doc/install.texi: Document (optional) Perl usage for parallel
- testing of libgomp.
-
-2023-06-02 Thomas Schwinge <thomas@codesourcery.com>
-
- PR bootstrap/82856
- * doc/install.texi (Perl): Back to requiring "Perl version 5.6.1 (or
- later)".
-
-2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- KuanLin Chen <best124612@gmail.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
-
-2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_vec_series): Optimize reverse series index vector.
-
-2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/predicates.md: Change INTVAL into UINTVAL.
-
-2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_VXRM_ENUM): Add
- __RISCV_ prefix.
- (DEF_RVV_FRM_ENUM): Ditto.
-
-2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Change vwadd.wv/vwsub.wv
- intrinsic API expander
- * config/riscv/vector.md
- (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Remove it.
- (@pred_single_widen_sub<any_extend:su><mode>): New pattern.
- (@pred_single_widen_add<any_extend:su><mode>): New pattern.
-
-2023-06-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (vec_perm<mode>): New pattern.
- * config/riscv/predicates.md (vector_perm_operand): New predicate.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (expand_vec_perm): New function.
- * config/riscv/riscv-v.cc (const_vec_all_in_range_p): Ditto.
- (gen_const_vector_dup): Ditto.
- (emit_vlmax_gather_insn): Ditto.
- (emit_vlmax_masked_gather_mu_insn): Ditto.
- (expand_vec_perm): Ditto.
-
-2023-06-01 Jason Merrill <jason@redhat.com>
-
- * doc/invoke.texi (-Wpedantic): Improve clarity.
-
-2023-06-01 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (exp_equiv_p): Change return type from int to bool.
- * cse.cc (mention_regs): Change return type from int to bool
- and adjust function body accordingly.
- (exp_equiv_p): Ditto.
- (insert_regs): Ditto. Change "modified" function argument to bool
- and update usage accordingly.
- (record_jump_cond): Remove always zero "reversed_nonequality"
- function argument and update usage accordingly.
- (fold_rtx): Change "changed" variable to bool.
- (record_jump_equiv): Remove unneeded "reversed_nonequality" variable.
- (is_dead_reg): Change return type from int to bool.
-
-2023-06-01 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.md (adddi3, subdi3):
- New RTL generation patterns implemented according to the instruc-
- tion idioms described in the Xtensa ISA reference manual (p. 600).
-
-2023-06-01 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
-
- PR target/109973
- * config/i386/i386-builtin.def (__builtin_ia32_ptestz128): Use new
- CODE_for_sse4_1_ptestzv2di.
- (__builtin_ia32_ptestc128): Use new CODE_for_sse4_1_ptestcv2di.
- (__builtin_ia32_ptestz256): Use new CODE_for_avx_ptestzv4di.
- (__builtin_ia32_ptestc256): Use new CODE_for_avx_ptestcv4di.
- * config/i386/i386-expand.cc (ix86_expand_branch): Use CCZmode
- when expanding UNSPEC_PTEST to compare against zero.
- * config/i386/i386-features.cc (scalar_chain::convert_compare):
- Likewise generate CCZmode UNSPEC_PTESTs when converting comparisons.
- (general_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
- (timode_scalar_chain::convert_insn): Use CCZmode for COMPARE result.
- * config/i386/i386-protos.h (ix86_match_ptest_ccmode): Prototype.
- * config/i386/i386.cc (ix86_match_ptest_ccmode): New predicate to
- check for suitable matching modes for the UNSPEC_PTEST pattern.
- * config/i386/sse.md (define_split): When splitting UNSPEC_MOVMSK
- to UNSPEC_PTEST, preserve the FLAG_REG mode as CCZ.
- (*<sse4_1>_ptest<mode>): Add asterisk to hide define_insn. Remove
- ":CC" mode of FLAGS_REG, instead use ix86_match_ptest_ccmode.
- (<sse4_1>_ptestz<mode>): New define_expand to specify CCZ.
- (<sse4_1>_ptestc<mode>): New define_expand to specify CCC.
- (<sse4_1>_ptest<mode>): A define_expand using CC to preserve the
- current behavior.
- (*ptest<mode>_and): Specify CCZ to only perform this optimization
- when only the Z flag is required.
-
-2023-06-01 Jonathan Wakely <jwakely@redhat.com>
-
- PR target/109954
- * doc/invoke.texi (x86 Options): Fix description of -m32 option.
-
-2023-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>):
- Add =r,m and =r,m alternatives.
- (load_pair<DREG:mode><DREG2:mode>): Likewise.
- (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
-
-2023-06-01 Pan Li <pan2.li@intel.com>
-
- * common/config/riscv/riscv-common.cc: Add FP_16 mask to zvfhmin
- and zvfh.
- * config/riscv/genrvv-type-indexer.cc (valid_type): Allow FP16.
- (main): Disable FP16 tuple.
- * config/riscv/riscv-opts.h (MASK_VECTOR_ELEN_FP_16): New macro.
- (TARGET_VECTOR_ELEN_FP_16): Ditto.
- * config/riscv/riscv-vector-builtins.cc (check_required_extensions):
- Add FP16.
- * config/riscv/riscv-vector-builtins.def (vfloat16mf4_t): New type.
- (vfloat16mf2_t): Ditto.
- (vfloat16m1_t): Ditto.
- (vfloat16m2_t): Ditto.
- (vfloat16m4_t): Ditto.
- (vfloat16m8_t): Ditto.
- * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_FP_16):
- New macro.
- * config/riscv/riscv-vector-switch.def (ENTRY): Allow FP16
- machine mode based on TARGET_VECTOR_ELEN_FP_16.
-
-2023-06-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins.cc (register_frm): New function.
- (DEF_RVV_FRM_ENUM): New macro.
- (handle_pragma_vector): Add FRM enum
- * config/riscv/riscv-vector-builtins.def (DEF_RVV_FRM_ENUM): New macro.
- (RNE): Ditto.
- (RTZ): Ditto.
- (RDN): Ditto.
- (RUP): Ditto.
- (RMM): Ditto.
-
-2023-05-31 Roger Sayle <roger@nextmovesoftware.com>
- Richard Sandiford <richard.sandiford@arm.com>
-
- * fold-const-call.cc (fold_const_call_ss) <CFN_BUILT_IN_BSWAP*>:
- Update call to wi::bswap.
- * simplify-rtx.cc (simplify_const_unary_operation) <case BSWAP>:
- Update call to wi::bswap.
- * tree-ssa-ccp.cc (evaluate_stmt) <case BUILT_IN_BSWAP*>:
- Update calls to wi::bswap.
- * wide-int.cc (wide_int_storage::bswap): Remove/rename to...
- (wi::bswap_large): New function, with revised API.
- * wide-int.h (wi::bswap): New (template) function prototype.
- (wide_int_storage::bswap): Remove method.
- (sext_large, zext_large): Consistent indentation/line wrapping.
- (bswap_large): Prototype helper function containing implementation.
- (wi::bswap): New template wrapper around bswap_large.
-
-2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Rename to...
- (<sur>dot_prod<vsi2qi><vczle><vczbe>): ... This.
- (usdot_prod<vsi2qi>): Rename to...
- (usdot_prod<vsi2qi><vczle><vczbe>): ... This.
- (aarch64_<sur>dot_lane<vsi2qi>): Rename to...
- (aarch64_<sur>dot_lane<vsi2qi><vczle><vczbe>): ... This.
- (aarch64_<sur>dot_laneq<vsi2qi>): Rename to...
- (aarch64_<sur>dot_laneq<vsi2qi><vczle><vczbe>): ... This.
- (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi>): Rename to...
- (aarch64_<DOTPROD_I8MM:sur>dot_lane<VB:isquadop><VS:vsi2qi><vczle><vczbe>):
- ... This.
-
-2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh<mode>): Rename to...
- (aarch64_sq<r>dmulh<mode><vczle><vczbe>): ... This.
- (aarch64_sq<r>dmulh_n<mode>): Rename to...
- (aarch64_sq<r>dmulh_n<mode><vczle><vczbe>): ... This.
- (aarch64_sq<r>dmulh_lane<mode>): Rename to...
- (aarch64_sq<r>dmulh_lane<mode><vczle><vczbe>): ... This.
- (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
- (aarch64_sq<r>dmulh_laneq<mode><vczle><vczbe>): ... This.
- (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): Rename to...
- (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode><vczle><vczbe>): ... This.
- (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Rename to...
- (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode><vczle><vczbe>): ... This.
- (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Rename to...
- (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode><vczle><vczbe>): ... This.
-
-2023-05-31 David Faust <david.faust@oracle.com>
-
- * btfout.cc (btf_kind_names): New.
- (btf_kind_name): New.
- (btf_absolute_var_id): New utility function.
- (btf_relative_var_id): Likewise.
- (btf_relative_func_id): Likewise.
- (btf_absolute_datasec_id): Likewise.
- (btf_asm_type_ref): New.
- (btf_asm_type): Update asm comments and use btf_asm_type_ref ().
- (btf_asm_array): Likewise. Accept ctf_container_ref parameter.
- (btf_asm_varent): Likewise.
- (btf_asm_func_arg): Likewise.
- (btf_asm_datasec_entry): Likewise.
- (btf_asm_datasec_type): Likewise.
- (btf_asm_func_type): Likewise. Add index parameter.
- (btf_asm_enum_const): Likewise.
- (btf_asm_sou_member): Likewise.
- (output_btf_vars): Update btf_asm_* call accordingly.
- (output_asm_btf_sou_fields): Likewise.
- (output_asm_btf_enum_list): Likewise.
- (output_asm_btf_func_args_list): Likewise.
- (output_asm_btf_vlen_bytes): Likewise.
- (output_btf_func_types): Add ctf_container_ref parameter.
- Pass it to btf_asm_func_type.
- (output_btf_datasec_types): Update btf_asm_datsec_type call similarly.
- (btf_output): Update output_btf_func_types call similarly.
-
-2023-05-31 David Faust <david.faust@oracle.com>
-
- * btfout.cc (btf_asm_type): Add dedicated cases for BTF_KIND_ARRAY
- and BTF_KIND_FWD which do not use the size/type field at all.
-
-2023-05-31 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (subreg_lowpart_p): Change return type from int to bool.
- (active_insn_p): Ditto.
- (in_sequence_p): Ditto.
- (unshare_all_rtl): Change return type from int to void.
- * emit-rtl.h (mem_expr_equal_p): Change return type from int to bool.
- * emit-rtl.cc (subreg_lowpart_p): Change return type from int to bool
- and adjust function body accordingly.
- (mem_expr_equal_p): Ditto.
- (unshare_all_rtl): Change return type from int to void
- and adjust function body accordingly.
- (verify_rtx_sharing): Remove unneeded return.
- (active_insn_p): Change return type from int to bool
- and adjust function body accordingly.
- (in_sequence_p): Ditto.
-
-2023-05-31 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (true_dependence): Change return type from int to bool.
- (canon_true_dependence): Ditto.
- (read_dependence): Ditto.
- (anti_dependence): Ditto.
- (canon_anti_dependence): Ditto.
- (output_dependence): Ditto.
- (canon_output_dependence): Ditto.
- (may_alias_p): Ditto.
- * alias.h (alias_sets_conflict_p): Ditto.
- (alias_sets_must_conflict_p): Ditto.
- (objects_must_conflict_p): Ditto.
- (nonoverlapping_memrefs_p): Ditto.
- * alias.cc (rtx_equal_for_memref_p): Remove forward declaration.
- (record_set): Ditto.
- (base_alias_check): Ditto.
- (find_base_value): Ditto.
- (mems_in_disjoint_alias_sets_p): Ditto.
- (get_alias_set_entry): Ditto.
- (decl_for_component_ref): Ditto.
- (write_dependence_p): Ditto.
- (memory_modified_1): Ditto.
- (mems_in_disjoint_alias_set_p): Change return type from int to bool
- and adjust function body accordingly.
- (alias_sets_conflict_p): Ditto.
- (alias_sets_must_conflict_p): Ditto.
- (objects_must_conflict_p): Ditto.
- (rtx_equal_for_memref_p): Ditto.
- (base_alias_check): Ditto.
- (read_dependence): Ditto.
- (nonoverlapping_memrefs_p): Ditto.
- (true_dependence_1): Ditto.
- (true_dependence): Ditto.
- (canon_true_dependence): Ditto.
- (write_dependence_p): Ditto.
- (anti_dependence): Ditto.
- (canon_anti_dependence): Ditto.
- (output_dependence): Ditto.
- (canon_output_dependence): Ditto.
- (may_alias_p): Ditto.
- (init_alias_analysis): Change "changed" variable to bool.
-
-2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): Change
- expand into define_insn_and_split.
-
-2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Remove FRM.
-
-2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Remove FRM.
-
-2023-05-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Remove FRM.
-
-2023-05-31 Christophe Lyon <christophe.lyon@linaro.org>
-
- PR target/110039
- * config/aarch64/aarch64.md (aarch64_rev16si2_alt3): New
- pattern.
-
-2023-05-31 Richard Biener <rguenther@suse.de>
-
- PR ipa/109983
- PR tree-optimization/109143
- * tree-ssa-structalias.cc (struct topo_info): Remove.
- (init_topo_info): Likewise.
- (free_topo_info): Likewise.
- (compute_topo_order): Simplify API, put the component
- with ESCAPED last so it's processed first.
- (topo_visit): Adjust.
- (solve_graph): Likewise.
-
-2023-05-31 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (constraint_stats::num_avoided_edges):
- New.
- (add_graph_edge): Count redundant edges we avoid to create.
- (dump_sa_stats): Dump them.
- (ipa_pta_execute): Do not dump generating constraints when
- we are not dumping them.
-
-2023-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<VDMOV:mode>): Rewrite
- output template to avoid explicit switch on which_alternative.
- (*aarch64_simd_mov<VQMOV:mode>): Likewise.
- (and<mode>3): Likewise.
- (ior<mode>3): Likewise.
- * config/aarch64/aarch64.md (*mov<mode>_aarch64): Likewise.
-
-2023-05-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/predicates.md (xtensa_bit_join_operator):
- New predicate.
- * config/xtensa/xtensa.md (ior_op): Remove.
- (*shlrd_reg): Rename from "*shlrd_reg_<code>", and add the
- insn_and_split pattern of the same name to express and capture
- the bit-combining operation with both sides swapped.
- In addition, replace use of code iterator with new operator
- predicate.
- (*shlrd_const, *shlrd_per_byte):
- Likewise regarding the code iterator.
-
-2023-05-31 Cui, Lili <lili.cui@intel.com>
-
- PR tree-optimization/110038
- * params.opt: Add a limit on tree-reassoc-width.
- * tree-ssa-reassoc.cc
- (rewrite_expr_tree_parallel): Add width limit.
-
-2023-05-31 Pan Li <pan2.li@intel.com>
-
- * common/config/riscv/riscv-common.cc:
- (riscv_implied_info): Add zvfh item.
- (riscv_ext_version_table): Ditto.
- (riscv_ext_flag_table): Ditto.
- * config/riscv/riscv-opts.h (MASK_ZVFH): New macro.
- (TARGET_ZVFH): Ditto.
-
-2023-05-30 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/108804
- * tree-vect-patterns.cc (vect_get_range_info): Remove static.
- * tree-vect-stmts.cc (vect_create_vectorized_demotion_stmts):
- Add new parameter narrow_src_p.
- (vectorizable_conversion): Enhance NARROW FLOAT_EXPR
- vectorization by truncating to lower precision.
- * tree-vectorizer.h (vect_get_range_info): New declare.
-
-2023-05-30 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-int.h (lra_update_sp_offset): Add the prototype.
- * lra.cc (setup_sp_offset): Change the return type. Use
- lra_update_sp_offset.
- * lra-eliminations.cc (lra_update_sp_offset): New function.
- (lra_process_new_insns): Push the current insn to reprocess if the
- input reload changes sp offset.
-
-2023-05-30 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/110041
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
- Fix misleading identation.
-
-2023-05-30 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (comparison_dominates_p): Change return type from int to bool.
- (condjump_p): Ditto.
- (any_condjump_p): Ditto.
- (any_uncondjump_p): Ditto.
- (simplejump_p): Ditto.
- (returnjump_p): Ditto.
- (eh_returnjump_p): Ditto.
- (onlyjump_p): Ditto.
- (invert_jump_1): Ditto.
- (invert_jump): Ditto.
- (rtx_renumbered_equal_p): Ditto.
- (redirect_jump_1): Ditto.
- (redirect_jump): Ditto.
- (condjump_in_parallel_p): Ditto.
- * jump.cc (invert_exp_1): Adjust forward declaration.
- (comparison_dominates_p): Change return type from int to bool
- and adjust function body accordingly.
- (simplejump_p): Ditto.
- (condjump_p): Ditto.
- (condjump_in_parallel_p): Ditto.
- (any_uncondjump_p): Ditto.
- (any_condjump_p): Ditto.
- (returnjump_p): Ditto.
- (eh_returnjump_p): Ditto.
- (onlyjump_p): Ditto.
- (redirect_jump_1): Ditto.
- (redirect_jump): Ditto.
- (invert_exp_1): Ditto.
- (invert_jump_1): Ditto.
- (invert_jump): Ditto.
- (rtx_renumbered_equal_p): Ditto.
-
-2023-05-30 Andrew Pinski <apinski@marvell.com>
-
- * fold-const.cc (minmax_from_comparison): Add support for NE_EXPR.
- * match.pd ((cond (cmp (convert1? x) c1) (convert2? x) c2) pattern):
- Add ne as a possible cmp.
- ((a CMP b) ? minmax<a, c> : minmax<b, c> pattern): Likewise.
-
-2023-05-30 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (`(a CMP CST1) ? max<a,CST2> : a`): New
- pattern.
-
-2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
-
- * simplify-rtx.cc (simplify_binary_operation_1) <AND>: Use wide-int
- instead of HWI_COMPUTABLE_MODE_P and UINTVAL in transformation of
- (and (extend X) C) as (zero_extend (and X C)), to also optimize
- modes wider than HOST_WIDE_INT.
-
-2023-05-30 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/107172
- * simplify-rtx.cc (simplify_const_relational_operation): Return
- early if we have a MODE_CC comparison that isn't a COMPARE against
- const0_rtx.
-
-2023-05-30 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_const_insns): Allow
- const_vec_duplicates.
-
-2023-05-30 liuhongt <hongtao.liu@intel.com>
-
- PR middle-end/108938
- * gimple-ssa-store-merging.cc (is_bswap_or_nop_p): New
- function, cut from original find_bswap_or_nop function.
- (find_bswap_or_nop): Add a new parameter, detect bswap +
- rotate and save rotate result in the new parameter.
- (bswap_replace): Add a new parameter to indicate rotate and
- generate rotate stmt if needed.
- (maybe_optimize_vector_constructor): Adjust for new rotate
- parameter in the upper 2 functions.
- (pass_optimize_bswap::execute): Ditto.
- (imm_store_chain_info::output_merged_store): Ditto.
-
-2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>): Delete.
- (aarch64_<su>adalp<mode>): New define_expand.
- (*aarch64_<su>adalp<mode><vczle><vczbe>_insn): New define_insn.
- (aarch64_<su>addlp<mode>): Convert to define_expand.
- (*aarch64_<su>addlp<mode><vczle><vczbe>_insn): New define_insn.
- * config/aarch64/iterators.md (UNSPEC_SADDLP, UNSPEC_UADDLP): Delete.
- (ADALP): Likewise.
- (USADDLP): Likewise.
- * config/aarch64/predicates.md (vect_par_cnst_even_or_odd_half): Define.
-
-2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-builtins.cc (VAR1): Move to after inclusion of
- aarch64-builtin-iterators.h. Add definition to remap shadd, uhadd,
- srhadd, urhadd builtin codes for standard optab ones.
- * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor): Rename to...
- (<su_optab>avg<mode>3_floor): ... This. Expand to RTL codes rather than
- unspec.
- (<u>avg<mode>3_ceil): Rename to...
- (<su_optab>avg<mode>3_ceil): ... This. Expand to RTL codes rather than
- unspec.
- (aarch64_<su>hsub<mode>): New define_expand.
- (aarch64_<sur>h<addsub><mode><vczle><vczbe>): Split into...
- (*aarch64_<su>h<ADDSUB:optab><mode><vczle><vczbe>_insn): ... This...
- (*aarch64_<su>rhadd<mode><vczle><vczbe>_insn): ... And this.
-
-2023-05-30 Andreas Schwab <schwab@suse.de>
-
- PR target/110036
- * config/riscv/riscv.cc (riscv_asan_shadow_offset): Update to
- match libsanitizer.
-
-2023-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-modes.def (V16HI, V8SI, V4DI, V2TI): New modes.
- * config/aarch64/aarch64-protos.h (aarch64_const_vec_rnd_cst_p):
- Declare prototype.
- (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
- * config/aarch64/aarch64-simd.md (*aarch64_simd_sra<mode>): Rename to...
- (aarch64_<sra_op>sra_n<mode>_insn): ... This.
- (aarch64_<sra_op>rsra_n<mode>_insn): New define_insn.
- (aarch64_<sra_op>sra_n<mode>): New define_expand.
- (aarch64_<sra_op>rsra_n<mode>): Likewise.
- (aarch64_<sur>sra_n<mode>): Rename to...
- (aarch64_<sur>sra_ndi): ... This.
- * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add
- any_target_p argument.
- (aarch64_extract_vec_duplicate_wide_int): Define.
- (aarch64_const_vec_rsra_rnd_imm_p): Likewise.
- (aarch64_const_vec_rnd_cst_p): Likewise.
- (aarch64_vector_mode_supported_any_target_p): Likewise.
- (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
- * config/aarch64/iterators.md (UNSPEC_SRSRA, UNSPEC_URSRA): Delete.
- (VSRA): Adjust for the above.
- (sur): Likewise.
- (V2XWIDE): New mode_attr.
- (vec_or_offset): Likewise.
- (SHIFTEXTEND): Likewise.
- * config/aarch64/predicates.md (aarch64_simd_rsra_rnd_imm_vec): New
- predicate.
- * doc/tm.texi (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
- clarify that it applies to current target options.
- (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Document.
- * doc/tm.texi.in: Regenerate.
- * stor-layout.cc (mode_for_vector): Check
- vector_mode_supported_any_target_p when iterating through vector modes.
- * target.def (TARGET_VECTOR_MODE_SUPPORTED_P): Adjust description to
- clarify that it applies to current target options.
- (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Define.
-
-2023-05-30 Lili Cui <lili.cui@intel.com>
-
- PR tree-optimization/98350
- * tree-ssa-reassoc.cc
- (rewrite_expr_tree_parallel): Rewrite this function.
- (rank_ops_for_fma): New.
- (reassociate_bb): Handle new function.
-
-2023-05-30 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (rtx_addr_can_trap_p): Change return type from int to bool.
- (rtx_unstable_p): Ditto.
- (reg_mentioned_p): Ditto.
- (reg_referenced_p): Ditto.
- (reg_used_between_p): Ditto.
- (reg_set_between_p): Ditto.
- (modified_between_p): Ditto.
- (no_labels_between_p): Ditto.
- (modified_in_p): Ditto.
- (reg_set_p): Ditto.
- (multiple_sets): Ditto.
- (set_noop_p): Ditto.
- (noop_move_p): Ditto.
- (reg_overlap_mentioned_p): Ditto.
- (dead_or_set_p): Ditto.
- (dead_or_set_regno_p): Ditto.
- (find_reg_fusage): Ditto.
- (find_regno_fusage): Ditto.
- (side_effects_p): Ditto.
- (volatile_refs_p): Ditto.
- (volatile_insn_p): Ditto.
- (may_trap_p_1): Ditto.
- (may_trap_p): Ditto.
- (may_trap_or_fault_p): Ditto.
- (computed_jump_p): Ditto.
- (auto_inc_p): Ditto.
- (loc_mentioned_in_p): Ditto.
- * rtlanal.cc (computed_jump_p_1): Adjust forward declaration.
- (rtx_unstable_p): Change return type from int to bool
- and adjust function body accordingly.
- (rtx_addr_can_trap_p): Ditto.
- (reg_mentioned_p): Ditto.
- (no_labels_between_p): Ditto.
- (reg_used_between_p): Ditto.
- (reg_referenced_p): Ditto.
- (reg_set_between_p): Ditto.
- (reg_set_p): Ditto.
- (modified_between_p): Ditto.
- (modified_in_p): Ditto.
- (multiple_sets): Ditto.
- (set_noop_p): Ditto.
- (noop_move_p): Ditto.
- (reg_overlap_mentioned_p): Ditto.
- (dead_or_set_p): Ditto.
- (dead_or_set_regno_p): Ditto.
- (find_reg_fusage): Ditto.
- (find_regno_fusage): Ditto.
- (remove_node_from_insn_list): Ditto.
- (volatile_insn_p): Ditto.
- (volatile_refs_p): Ditto.
- (side_effects_p): Ditto.
- (may_trap_p_1): Ditto.
- (may_trap_p): Ditto.
- (may_trap_or_fault_p): Ditto.
- (computed_jump_p): Ditto.
- (auto_inc_p): Ditto.
- (loc_mentioned_in_p): Ditto.
- * combine.cc (can_combine_p): Update indirect function.
-
-2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (<optab><mode><vconvert>2): New pattern.
- * config/riscv/iterators.md: New attribute.
- * config/riscv/vector-iterators.md: New attribute.
-
-2023-05-30 From: Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.md: Fix signed and unsigned comparison
- warning.
-
-2023-05-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (fnma<mode>4): New pattern.
- (*fnma<mode>): Ditto.
-
-2023-05-29 Die Li <lidie@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move_onesided):
- Delete.
- (riscv_expand_conditional_move): Reuse the TARGET_SFB_ALU expand
- process for TARGET_XTHEADCONDMOV
-
-2023-05-29 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/110021
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also require
- TARGET_AVX512BW to generate truncv16hiv16qi2.
-
-2023-05-29 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/riscv.md (and<mode>3): New expander.
- (*and<mode>3) New pattern.
- * config/riscv/predicates.md (arith_operand_or_mode_mask): New
- predicate.
-
-2023-05-29 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (emit_vlmax_insn): Remove unnecessary
- comments and rename local variables.
- (emit_nonvlmax_insn): Diito.
- (emit_vlmax_merge_insn): Ditto.
- (emit_vlmax_cmp_insn): Ditto.
- (emit_vlmax_cmp_mu_insn): Ditto.
- (emit_scalar_move_insn): Ditto.
-
-2023-05-29 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-v.cc (emit_vlmax_insn): Eliminate the
- magic number.
- (emit_nonvlmax_insn): Ditto.
- (emit_vlmax_merge_insn): Ditto.
- (emit_vlmax_cmp_insn): Ditto.
- (emit_vlmax_cmp_mu_insn): Ditto.
- (expand_vec_series): Ditto.
-
-2023-05-29 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-protos.h (enum insn_type): New type.
- * config/riscv/riscv-v.cc (RVV_INSN_OPERANDS_MAX): New macro.
- (rvv_builder::can_duplicate_repeating_sequence_p): Align the referenced
- class member.
- (rvv_builder::get_merged_repeating_sequence): Ditto.
- (rvv_builder::repeating_sequence_use_merge_profitable_p): New function
- to evaluate the optimization cost.
- (rvv_builder::get_merge_scalar_mask): New function to get the merge
- mask.
- (emit_scalar_move_insn): New function to emit vmv.s.x.
- (emit_vlmax_integer_move_insn): New function to emit vlmax vmv.v.x.
- (emit_nonvlmax_integer_move_insn): New function to emit nonvlmax
- vmv.v.x.
- (get_repeating_sequence_dup_machine_mode): New function to get the dup
- machine mode.
- (expand_vector_init_merge_repeating_sequence): New function to perform
- the optimization.
- (expand_vec_init): Add this vector init optimization.
- * config/riscv/riscv.h (BITS_PER_WORD): New macro.
-
-2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-ssa-loop-manip.cc (create_iv): Try harder to find a SLOC to
- put onto the increment when it is inserted after the position.
-
-2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
-
- * match.pd ((T)P - (T)(P + A) -> -(T) A): Avoid artificial overflow
- on constants.
-
-2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (source_equal_p): Fix ICE.
-
-2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (fma<mode>4): New pattern.
- (*fma<mode>): Ditto.
- * config/riscv/riscv-protos.h (enum insn_type): New enum.
- (emit_vlmax_ternary_insn): New function.
- * config/riscv/riscv-v.cc (emit_vlmax_ternary_insn): Ditto.
-
-2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix vimuladd instruction bug.
-
-2023-05-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (global_state_unknown_p): New function.
- (riscv_mode_after): Fix incorrect VXM.
-
-2023-05-29 Pan Li <pan2.li@intel.com>
-
- * common/config/riscv/riscv-common.cc:
- (riscv_implied_info): Add zvfhmin item.
- (riscv_ext_version_table): Ditto.
- (riscv_ext_flag_table): Ditto.
- * config/riscv/riscv-opts.h (MASK_ZVFHMIN): New macro.
- (TARGET_ZFHMIN): Align indent.
- (TARGET_ZFH): Ditto.
- (TARGET_ZVFHMIN): New macro.
-
-2023-05-27 liuhongt <hongtao.liu@intel.com>
-
- PR target/100711
- * config/i386/sse.md (*andnot<mode>3): Extend below splitter
- to VI_AVX2 to cover more modes.
-
-2023-05-27 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
- Remove ATOM and ICELAKE(and later) core processors.
-
-2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<optab><mode>2): Add vneg/vnot.
- (abs<mode>2): Add.
- * config/riscv/riscv-protos.h (emit_vlmax_masked_mu_insn):
- Declare.
- * config/riscv/riscv-v.cc (emit_vlmax_masked_mu_insn): New
- function.
-
-2023-05-26 Robin Dapp <rdapp@ventanamicro.com>
- Juzhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (<optab><v_double_trunc><mode>2): New
- expander.
- (<optab><v_quad_trunc><mode>2): Dito.
- (<optab><v_oct_trunc><mode>2): Dito.
- (trunc<mode><v_double_trunc>2): Dito.
- (trunc<mode><v_quad_trunc>2): Dito.
- (trunc<mode><v_oct_trunc>2): Dito.
- * config/riscv/riscv-protos.h (vectorize_related_mode): Define.
- (autovectorize_vector_modes): Define.
- * config/riscv/riscv-v.cc (vectorize_related_mode): Implement
- hook.
- (autovectorize_vector_modes): Implement hook.
- * config/riscv/riscv.cc (riscv_autovectorize_vector_modes):
- Implement target hook.
- (riscv_vectorize_related_mode): Implement target hook.
- (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
- (TARGET_VECTORIZE_RELATED_MODE): Define.
- * config/riscv/vector-iterators.md: Add lowercase versions of
- mode_attr iterators.
-
-2023-05-26 Andrew Stubbs <ams@codesourcery.com>
- Tobias Burnus <tobias@codesourcery.com>
-
- * config/gcn/gcn-hsa.h (XNACKOPT): New macro.
- (ASM_SPEC): Use XNACKOPT.
- * config/gcn/gcn-opts.h (enum sram_ecc_type): Rename to ...
- (enum hsaco_attr_type): ... this, and generalize the names.
- (TARGET_XNACK): New macro.
- * config/gcn/gcn.cc (gcn_option_override): Update to sorry for all
- but -mxnack=off.
- (output_file_start): Update xnack handling.
- (gcn_hsa_declare_function_name): Use TARGET_XNACK.
- * config/gcn/gcn.opt (-mxnack): Add the "on/off/any" syntax.
- (sram_ecc_type): Rename to ...
- (hsaco_attr_type: ... this.)
- * config/gcn/mkoffload.cc (SET_XNACK_ANY): New macro.
- (TEST_XNACK): Delete.
- (TEST_XNACK_ANY): New macro.
- (TEST_XNACK_ON): New macro.
- (main): Support the new -mxnack=on/off/any syntax.
- * doc/invoke.texi (-mxnack): Update for new syntax.
-
-2023-05-26 Andrew Pinski <apinski@marvell.com>
-
- * genmatch.cc (emit_debug_printf): New function.
- (dt_simplify::gen_1): Emit printf into the code
- before the `return true` or returning the folded result
- instead of emitting it always.
-
-2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa-protos.h
- (xtensa_expand_block_set_unrolled_loop,
- xtensa_expand_block_set_small_loop): Remove.
- (xtensa_expand_block_set): New prototype.
- * config/xtensa/xtensa.cc
- (xtensa_expand_block_set_libcall): New subfunction.
- (xtensa_expand_block_set_unrolled_loop,
- xtensa_expand_block_set_small_loop): Rewrite as subfunctions.
- (xtensa_expand_block_set): New function that calls the above
- subfunctions.
- * config/xtensa/xtensa.md (memsetsi): Change to invoke only
- xtensa_expand_block_set().
-
-2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa-protos.h (xtensa_m1_or_1_thru_15):
- New prototype.
- * config/xtensa/xtensa.cc (xtensa_m1_or_1_thru_15):
- New function.
- * config/xtensa/constraints.md (O):
- Change to use the above function.
- * config/xtensa/xtensa.md (*subsi3_from_const):
- New insn_and_split pattern.
-
-2023-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3):
- Retract excessive line folding, and correct the value of
- the "length" insn attribute related to TARGET_DENSITY.
- (*extzvsi-1bit_addsubx): Ditto.
-
-2023-05-26 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi):
- Do not disable call to ix86_expand_vecop_qihi2.
-
-2023-05-26 liuhongt <hongtao.liu@intel.com>
-
- PR target/109610
- PR target/109858
- * ira-costs.cc (scan_one_insn): Only use NO_REGS in cost
- calculation when !hard_regno_mode_ok for GENERAL_REGS and
- mode, otherwise still use GENERAL_REGS.
-
-2023-05-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (vector_zero_call_used_regs): Add
- explict VL and drop VL in ops.
-
-2023-05-25 Jin Ma <jinma@linux.alibaba.com>
-
- * sched-deps.cc (sched_macro_fuse_insns): Insns should not be fusion
- in different BB blocks.
-
-2023-05-25 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
- Rewrite to expand to 2x-wider (e.g. V16QI -> V16HImode)
- instructions when available. Emulate truncation via
- ix86_expand_vec_perm_const_1 when native truncate insn
- is not available.
- (ix86_expand_vecop_qihi_partial) <case MULT>: Use pmovzx
- when available. Trivially rename some variables.
- (ix86_expand_vecop_qihi): Unconditionally call ix86_expand_vecop_qihi2.
- * config/i386/i386.cc (ix86_multiplication_cost): Rewrite cost
- calculation of V*QImode emulations to account for generation of
- 2x-wider mode instructions.
- (ix86_shift_rotate_cost): Update cost calculation of V*QImode
- emulations to account for generation of 2x-wider mode instructions.
-
-2023-05-25 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/104327
- * config/avr/avr.cc (avr_can_inline_p): New static function.
- (TARGET_CAN_INLINE_P): Define to that function.
-
-2023-05-25 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/82931
- * config/avr/avr.md (*movbitqi.0): Rename to *movbit<mode>.0-6.
- Handle any bit position and use mode QISI.
- * config/avr/avr.cc (avr_rtx_costs_1) [IOR]: Return a cost
- of 2 insns for bit-transfer of respective style.
-
-2023-05-25 Christophe Lyon <christophe.lyon@linaro.org>
-
- * config/arm/iterators.md (MVE_6): Remove.
- * config/arm/mve.md: Replace MVE_6 with MVE_5.
-
-2023-05-25 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- Richard Sandiford <richard.sandiford@arm.com>
-
- * tree-vect-loop-manip.cc (vect_adjust_loop_lens_control): New
- function.
- (vect_set_loop_controls_directly): Add decrement IV support.
- (vect_set_loop_condition_partial_vectors): Ditto.
- * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): New
- variable.
- * tree-vectorizer.h (LOOP_VINFO_USING_DECREMENTING_IV_P): New
- macro.
-
-2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_fcadd<rot><mode>): Rename to...
- (aarch64_fcadd<rot><mode><vczle><vczbe>): ... This.
- Fix canonicalization of PLUS operands.
- (aarch64_fcmla<rot><mode>): Rename to...
- (aarch64_fcmla<rot><mode><vczle><vczbe>): ... This.
- Fix canonicalization of PLUS operands.
- (aarch64_fcmla_lane<rot><mode>): Rename to...
- (aarch64_fcmla_lane<rot><mode><vczle><vczbe>): ... This.
- Fix canonicalization of PLUS operands.
- (aarch64_fcmla_laneq<rot>v4hf): Rename to...
- (aarch64_fcmla_laneq<rot>v4hf<vczle><vczbe>): ... This.
- Fix canonicalization of PLUS operands.
- (aarch64_fcmlaq_lane<rot><mode>): Fix canonicalization of PLUS operands.
-
-2023-05-25 Chris Sidebottom <chris.sidebottom@arm.com>
-
- * config/arm/arm.md (rbitsi2): Rename to...
- (arm_rbit): ... This.
- (ctzsi2): Adjust for the above.
- (arm_rev16si2): Convert to define_expand.
- (arm_rev16si2_alt1): New pattern.
- (arm_rev16si2_alt): Rename to...
- (*arm_rev16si2_alt2): ... This.
- * config/arm/arm_acle.h (__ror, __rorl, __rorll, __clz, __clzl, __clzll,
- __cls, __clsl, __clsll, __revsh, __rev, __revl, __revll, __rev16,
- __rev16l, __rev16ll, __rbit, __rbitl, __rbitll): Define intrinsics.
- * config/arm/arm_acle_builtins.def (rbit, rev16si2): Define builtins.
-
-2023-05-25 Alex Coplan <alex.coplan@arm.com>
-
- PR target/109800
- * config/arm/arm.md (movdf): Generate temporary pseudo in DImode
- instead of DFmode.
- * config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an
- lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into
- DFmode as an rvalue.
-
-2023-05-25 Richard Biener <rguenther@suse.de>
-
- PR target/109955
- * tree-vect-stmts.cc (vectorizable_condition): For
- embedded comparisons also handle the case when the target
- only provides vec_cmp and vcond_mask.
-
-2023-05-25 Claudiu Zissulescu <claziss@gmail.com>
-
- * config/arc/arc.cc (arc_call_tls_get_addr): Simplify access using
- TLS Local Dynamic.
-
-2023-05-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config/aarch64/aarch64.cc (scalar_move_insn_p): New function.
- (seq_cost_ignoring_scalar_moves): Likewise.
- (aarch64_expand_vector_init): Call seq_cost_ignoring_scalar_moves.
-
-2023-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/arm_neon.h (vcage_f64): Reimplement with builtins.
- (vcage_f32): Likewise.
- (vcages_f32): Likewise.
- (vcageq_f32): Likewise.
- (vcaged_f64): Likewise.
- (vcageq_f64): Likewise.
- (vcagts_f32): Likewise.
- (vcagt_f32): Likewise.
- (vcagt_f64): Likewise.
- (vcagtq_f32): Likewise.
- (vcagtd_f64): Likewise.
- (vcagtq_f64): Likewise.
- (vcale_f32): Likewise.
- (vcale_f64): Likewise.
- (vcaled_f64): Likewise.
- (vcales_f32): Likewise.
- (vcaleq_f32): Likewise.
- (vcaleq_f64): Likewise.
- (vcalt_f32): Likewise.
- (vcalt_f64): Likewise.
- (vcaltd_f64): Likewise.
- (vcaltq_f32): Likewise.
- (vcaltq_f64): Likewise.
- (vcalts_f32): Likewise.
-
-2023-05-25 Hu, Lin1 <lin1.hu@intel.com>
-
- PR target/109173
- PR target/109174
- * config/i386/avx512bwintrin.h (_mm512_srli_epi16): Change type from
- int to const int or const int to const unsigned int.
- (_mm512_mask_srli_epi16): Ditto.
- (_mm512_slli_epi16): Ditto.
- (_mm512_mask_slli_epi16): Ditto.
- (_mm512_maskz_slli_epi16): Ditto.
- (_mm512_srai_epi16): Ditto.
- (_mm512_mask_srai_epi16): Ditto.
- (_mm512_maskz_srai_epi16): Ditto.
- * config/i386/avx512fintrin.h (_mm512_slli_epi64): Ditto.
- (_mm512_mask_slli_epi64): Ditto.
- (_mm512_maskz_slli_epi64): Ditto.
- (_mm512_srli_epi64): Ditto.
- (_mm512_mask_srli_epi64): Ditto.
- (_mm512_maskz_srli_epi64): Ditto.
- (_mm512_srai_epi64): Ditto.
- (_mm512_mask_srai_epi64): Ditto.
- (_mm512_maskz_srai_epi64): Ditto.
- (_mm512_slli_epi32): Ditto.
- (_mm512_mask_slli_epi32): Ditto.
- (_mm512_maskz_slli_epi32): Ditto.
- (_mm512_srli_epi32): Ditto.
- (_mm512_mask_srli_epi32): Ditto.
- (_mm512_maskz_srli_epi32): Ditto.
- (_mm512_srai_epi32): Ditto.
- (_mm512_mask_srai_epi32): Ditto.
- (_mm512_maskz_srai_epi32): Ditto.
- * config/i386/avx512vlbwintrin.h (_mm256_mask_srai_epi16): Ditto.
- (_mm256_maskz_srai_epi16): Ditto.
- (_mm_mask_srai_epi16): Ditto.
- (_mm_maskz_srai_epi16): Ditto.
- (_mm256_mask_slli_epi16): Ditto.
- (_mm256_maskz_slli_epi16): Ditto.
- (_mm_mask_slli_epi16): Ditto.
- (_mm_maskz_slli_epi16): Ditto.
- (_mm_maskz_srli_epi16): Ditto.
- * config/i386/avx512vlintrin.h (_mm256_mask_srli_epi32): Ditto.
- (_mm256_maskz_srli_epi32): Ditto.
- (_mm_mask_srli_epi32): Ditto.
- (_mm_maskz_srli_epi32): Ditto.
- (_mm256_mask_srli_epi64): Ditto.
- (_mm256_maskz_srli_epi64): Ditto.
- (_mm_mask_srli_epi64): Ditto.
- (_mm_maskz_srli_epi64): Ditto.
- (_mm256_mask_srai_epi32): Ditto.
- (_mm256_maskz_srai_epi32): Ditto.
- (_mm_mask_srai_epi32): Ditto.
- (_mm_maskz_srai_epi32): Ditto.
- (_mm256_srai_epi64): Ditto.
- (_mm256_mask_srai_epi64): Ditto.
- (_mm256_maskz_srai_epi64): Ditto.
- (_mm_srai_epi64): Ditto.
- (_mm_mask_srai_epi64): Ditto.
- (_mm_maskz_srai_epi64): Ditto.
- (_mm_mask_slli_epi32): Ditto.
- (_mm_maskz_slli_epi32): Ditto.
- (_mm_mask_slli_epi64): Ditto.
- (_mm_maskz_slli_epi64): Ditto.
- (_mm256_mask_slli_epi32): Ditto.
- (_mm256_maskz_slli_epi32): Ditto.
- (_mm256_mask_slli_epi64): Ditto.
- (_mm256_maskz_slli_epi64): Ditto.
-
-2023-05-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Remove FRM_REGNUM dependency in rtz
- instructions.
-
-2023-05-25 Aldy Hernandez <aldyh@redhat.com>
-
- * data-streamer-in.cc (streamer_read_value_range): Handle NANs.
- * data-streamer-out.cc (streamer_write_vrange): Same.
- * value-range.h (class vrange): Make streamer_write_vrange a friend.
-
-2023-05-25 Aldy Hernandez <aldyh@redhat.com>
-
- * value-query.cc (range_query::get_tree_range): Set NAN directly
- if necessary.
- * value-range.cc (frange::set): Assert that bounds are not NAN.
-
-2023-05-25 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (add_vrange): Handle known NANs.
-
-2023-05-25 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (frange::set_nan): New.
-
-2023-05-25 Alexandre Oliva <oliva@adacore.com>
-
- PR target/100106
- * emit-rtl.cc (validate_subreg): Reject a SUBREG of a MEM that
- requires stricter alignment than MEM's.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/107822
- PR tree-optimization/107986
- * Makefile.in (OBJS): Add gimple-range-phi.o.
- * gimple-range-cache.h (ranger_cache::m_estimate): New
- phi_analyzer pointer member.
- * gimple-range-fold.cc (fold_using_range::range_of_phi): Use
- phi_analyzer if no loop info is available.
- * gimple-range-phi.cc: New file.
- * gimple-range-phi.h: New file.
- * tree-vrp.cc (execute_ranger_vrp): Utililze a phi_analyzer.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-fold.cc (fur_list::fur_list): Add range_query param
- to contructors.
- (fold_range): Add range_query parameter.
- (fur_relation::fur_relation): New.
- (fur_relation::trio): New.
- (fur_relation::register_relation): New.
- (fold_relations): New.
- * gimple-range-fold.h (fold_range): Adjust prototypes.
- (fold_relations): New.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-cache.cc (ssa_cache::range_of_expr): New.
- * gimple-range-cache.h (class ssa_cache): Inherit from range_query.
- (ranger_cache::const_query): New.
- * gimple-range.cc (gimple_ranger::const_query): New.
- * gimple-range.h (gimple_ranger::const_query): New prototype.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-cache.cc (ssa_cache::dump): Use get_range.
- (ssa_cache::dump_range_query): Delete.
- (ssa_lazy_cache::dump_range_query): Delete.
- (ssa_lazy_cache::get_range): Move from header file.
- (ssa_lazy_cache::clear_range): ditto.
- (ssa_lazy_cache::clear): Ditto.
- * gimple-range-cache.h (class ssa_cache): Virtualize.
- (class ssa_lazy_cache): Inherit and virtualize.
-
-2023-05-24 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (vrange::kind): Remove.
-
-2023-05-24 Roger Sayle <roger@nextmovesoftware.com>
-
- PR middle-end/109840
- * match.pd <popcount optimizations>: Preserve zero-extension when
- optimizing popcount((T)bswap(x)) and popcount((T)rotate(x,y)) as
- popcount((T)x), so the popcount's argument keeps the same type.
- <parity optimizations>: Likewise preserve extensions when
- simplifying parity((T)bswap(x)) and parity((T)rotate(x,y)) as
- parity((T)x), so that the parity's argument type is the same.
-
-2023-05-24 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (ipa_value_range_from_jfunc): Use new ipa_vr API.
- (ipcp_store_vr_results): Same.
- * ipa-prop.cc (ipa_vr::ipa_vr): New.
- (ipa_vr::get_vrange): New.
- (ipa_vr::set_unknown): New.
- (ipa_vr::streamer_read): New.
- (ipa_vr::streamer_write): New.
- (write_ipcp_transformation_info): Use new ipa_vr API.
- (read_ipcp_transformation_info): Same.
- (ipa_vr::nonzero_p): Delete.
- (ipcp_update_vr): Use new ipa_vr API.
- * ipa-prop.h (class ipa_vr): Provide an API and hide internals.
- * ipa-sra.cc (zap_useless_ipcp_results): Use new ipa_vr API.
-
-2023-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
-
- * config/mcore/mcore.cc (output_inline_const) Make buffer smaller to
- silence overflow warnings later on.
-
-2023-05-24 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
- Remove handling of V8QImode.
- * config/i386/mmx.md (v<insn>v8qi3): Move from sse.md.
- Call ix86_expand_vecop_qihi_partial. Enable for TARGET_MMX_WITH_SSE.
- (v<insn>v4qi3): Ditto.
- * config/i386/sse.md (v<insn>v8qi3): Remove.
-
-2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_simd_lshr<mode>): Rename to...
- (aarch64_simd_lshr<mode><vczle><vczbe>): ... This.
- (aarch64_simd_ashr<mode>): Rename to...
- (aarch64_simd_ashr<mode><vczle><vczbe>): ... This.
- (aarch64_simd_imm_shl<mode>): Rename to...
- (aarch64_simd_imm_shl<mode><vczle><vczbe>): ... This.
- (aarch64_simd_reg_sshl<mode>): Rename to...
- (aarch64_simd_reg_sshl<mode><vczle><vczbe>): ... This.
- (aarch64_simd_reg_shl<mode>_unsigned): Rename to...
- (aarch64_simd_reg_shl<mode>_unsigned<vczle><vczbe>): ... This.
- (aarch64_simd_reg_shl<mode>_signed): Rename to...
- (aarch64_simd_reg_shl<mode>_signed<vczle><vczbe>): ... This.
- (vec_shr_<mode>): Rename to...
- (vec_shr_<mode><vczle><vczbe>): ... This.
- (aarch64_<sur>shl<mode>): Rename to...
- (aarch64_<sur>shl<mode><vczle><vczbe>): ... This.
- (aarch64_<sur>q<r>shl<mode>): Rename to...
- (aarch64_<sur>q<r>shl<mode><vczle><vczbe>): ... This.
-
-2023-05-24 Richard Biener <rguenther@suse.de>
-
- PR target/109944
- * config/i386/i386-expand.cc (ix86_expand_vector_init_general):
- Perform final vector composition using
- ix86_expand_vector_init_general instead of setting
- the highpart and lowpart which causes spilling.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109695
- * gimple-range-cache.cc (ranger_cache::get_global_range): Add
- changed param.
- * gimple-range-cache.h (ranger_cache::get_global_range): Ditto.
- * gimple-range.cc (gimple_ranger::range_of_stmt): Pass changed
- flag to set_global_range.
- (gimple_ranger::prefill_stmt_dependencies): Ditto.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109695
- * gimple-range-cache.cc (temporal_cache::temporal_value): Return
- a positive int.
- (temporal_cache::current_p): Check always_current method.
- (temporal_cache::set_always_current): Add param and set value
- appropriately.
- (temporal_cache::always_current_p): New.
- (ranger_cache::get_global_range): Adjust.
- (ranger_cache::set_global_range): set always current first.
-
-2023-05-24 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109695
- * gimple-range-cache.cc (ranger_cache::get_global_range): Call
- fold_range with global query to choose an initial value.
-
-2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum frm_field_enum): Add FRM_
- prefix.
-
-2023-05-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109849
- * tree-ssa-pre.cc (do_hoist_insertion): Do not intersect
- expressions but take the first sets.
-
-2023-05-24 Gaius Mulley <gaiusmod2@gmail.com>
-
- PR modula2/109952
- * doc/gm2.texi (High procedure function): New node.
- (Using): New menu entry for High procedure function.
-
-2023-05-24 Richard Sandiford <richard.sandiford@arm.com>
-
- PR rtl-optimization/109940
- * early-remat.cc (postorder_index): Rename to...
- (rpo_index): ...this.
- (compare_candidates): Sort by decreasing rpo_index rather than
- increasing postorder_index.
- (early_remat::sort_candidates): Calculate the forward RPO from
- DF_FORWARD.
- (early_remat::local_phase): Follow forward RPO using DF_FORWARD,
- rather than DF_BACKWARD in reverse.
-
-2023-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/109939
- * config/arm/arm-builtins.cc (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS): Use
- qualifier_none for the return operand.
-
-2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (<optab><mode>3): New pattern.
- (one_cmpl<mode>2): Ditto.
- (*<optab>not<mode>): Ditto.
- (*n<optab><mode>): Ditto.
- * config/riscv/riscv-v.cc (expand_vec_cmp_float): Change to
- one_cmpl.
-
-2023-05-24 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Adjust the
- calculation on n_perms by considering nvectors_per_build.
-
-2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- Richard Sandiford <richard.sandiford@arm.com>
-
- * config/riscv/autovec.md (@vcond_mask_<mode><vm>): New pattern.
- (vec_cmp<mode><vm>): New pattern.
- (vec_cmpu<mode><vm>): New pattern.
- (vcond<V:mode><VI:mode>): New pattern.
- (vcondu<V:mode><VI:mode>): New pattern.
- * config/riscv/riscv-protos.h (enum insn_type): Add new enum.
- (emit_vlmax_merge_insn): New function.
- (emit_vlmax_cmp_insn): Ditto.
- (emit_vlmax_cmp_mu_insn): Ditto.
- (expand_vec_cmp): Ditto.
- (expand_vec_cmp_float): Ditto.
- (expand_vcond): Ditto.
- * config/riscv/riscv-v.cc (emit_vlmax_merge_insn): Ditto.
- (emit_vlmax_cmp_insn): Ditto.
- (emit_vlmax_cmp_mu_insn): Ditto.
- (get_cmp_insn_code): Ditto.
- (expand_vec_cmp): Ditto.
- (expand_vec_cmp_float): Ditto.
- (expand_vcond): Ditto.
-
-2023-05-24 Pan Li <pan2.li@intel.com>
-
- * config/riscv/genrvv-type-indexer.cc (main): Add
- unsigned_eew*_lmul1_interpret for indexer.
- * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
- Register vuint*m1_t interpret function.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
- New macro for vuint8m1_t.
- (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
- (vbool1_t): Add to unsigned_eew*_interpret_ops.
- (vbool2_t): Likewise.
- (vbool4_t): Likewise.
- (vbool8_t): Likewise.
- (vbool16_t): Likewise.
- (vbool32_t): Likewise.
- (vbool64_t): Likewise.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_UNSIGNED_EEW8_LMUL1_INTERPRET_OPS):
- New macro for vuint*m1_t.
- (DEF_RVV_UNSIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_UNSIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_UNSIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
- (required_extensions_p): Add vuint*m1_t interpret case.
- * config/riscv/riscv-vector-builtins.def (unsigned_eew8_lmul1_interpret):
- Add vuint*m1_t interpret to base type.
- (unsigned_eew16_lmul1_interpret): Likewise.
- (unsigned_eew32_lmul1_interpret): Likewise.
- (unsigned_eew64_lmul1_interpret): Likewise.
-
-2023-05-24 Pan Li <pan2.li@intel.com>
-
- * config/riscv/genrvv-type-indexer.cc (EEW_SIZE_LIST): New macro
- for the eew size list.
- (LMUL1_LOG2): New macro for the log2 value of lmul=1.
- (main): Add signed_eew*_lmul1_interpret for indexer.
- * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
- Register vint*m1_t interpret function.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
- New macro for vint8m1_t.
- (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
- (vbool1_t): Add to signed_eew*_interpret_ops.
- (vbool2_t): Likewise.
- (vbool4_t): Likewise.
- (vbool8_t): Likewise.
- (vbool16_t): Likewise.
- (vbool32_t): Likewise.
- (vbool64_t): Likewise.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_SIGNED_EEW8_LMUL1_INTERPRET_OPS):
- New macro for vint*m1_t.
- (DEF_RVV_SIGNED_EEW16_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_SIGNED_EEW32_LMUL1_INTERPRET_OPS): Likewise.
- (DEF_RVV_SIGNED_EEW64_LMUL1_INTERPRET_OPS): Likewise.
- (required_extensions_p): Add vint8m1_t interpret case.
- * config/riscv/riscv-vector-builtins.def (signed_eew8_lmul1_interpret):
- Add vint*m1_t interpret to base type.
- (signed_eew16_lmul1_interpret): Likewise.
- (signed_eew32_lmul1_interpret): Likewise.
- (signed_eew64_lmul1_interpret): Likewise.
-
-2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Adjust for new interface.
- * config/riscv/riscv-protos.h (emit_vlmax_insn): Add VL operand.
- (emit_nonvlmax_insn): Add AVL operand.
- * config/riscv/riscv-v.cc (emit_vlmax_insn): Add VL operand.
- (emit_nonvlmax_insn): Add AVL operand.
- (sew64_scalar_helper): Adjust for new interface.
- (expand_tuple_move): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-05-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc (expand_vec_series): Remove magic number.
- (expand_const_vector): Ditto.
- (legitimize_move): Ditto.
- (sew64_scalar_helper): Ditto.
- (expand_tuple_move): Ditto.
- (expand_vector_init_insert_elems): Ditto.
- * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
-
-2023-05-24 liuhongt <hongtao.liu@intel.com>
-
- PR target/109900
- * config/i386/i386.cc (ix86_gimple_fold_builtin): Fold
- _mm{,256,512}_abs_{epi8,epi16,epi32,epi64} and
- _mm_abs_{pi8,pi16,pi32} into gimple ABS_EXPR.
- (ix86_masked_all_ones): Handle 64-bit mask.
- * config/i386/i386-builtin.def: Replace icode of related
- non-mask simd abs builtins with CODE_FOR_nothing.
-
-2023-05-23 Martin Uecker <uecker@tugraz.at>
-
- PR c/109450
- * function.cc (gimplify_parm_type): Remove function.
- (gimplify_parameters): Call gimplify_type_sizes.
-
-2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.md (*addsubx): Rename from '*addx',
- and change to also accept '*subx' pattern.
- (*subx): Remove.
-
-2023-05-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/predicates.md (addsub_operator): New.
- * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3,
- *extzvsi-1bit_addsubx): New insn_and_split patterns.
- * config/xtensa/xtensa.cc (xtensa_rtx_costs):
- Add a special case about ifcvt 'noce_try_cmove()' to handle
- constant loads that do not fit into signed 12 bits in the
- patterns added above.
-
-2023-05-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109747
- * tree-vect-slp.cc (vect_prologue_cost_for_slp): Pass down
- the SLP node only once to the cost hook.
-
-2023-05-23 Georg-Johann Lay <avr@gjlay.de>
-
- * config/avr/avr.cc (avr_insn_cost): New static function.
- (TARGET_INSN_COST): Define to that function.
-
-2023-05-23 Richard Biener <rguenther@suse.de>
-
- PR target/109944
- * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
- For vector construction or splats apply GPR->XMM move
- costing. QImode memory can be handled directly only
- with SSE4.1 pinsrb.
-
-2023-05-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108752
- * tree-vect-stmts.cc (vectorizable_operation): For bit
- operations with generic word_mode vectors do not cost
- an extra stmt. For plus, minus and negate also cost the
- constant materialization.
-
-2023-05-23 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
- Call ix86_expand_vec_shift_qihi_constant for shifts
- with constant count operand.
- * config/i386/i386.cc (ix86_shift_rotate_cost):
- Handle V4QImode and V8QImode.
- * config/i386/mmx.md (<insn>v8qi3): New insn pattern.
- (<insn>v4qi3): Ditto.
-
-2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Add mode.
-
-2023-05-23 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109934
- * value-range.cc (irange::invert): Remove buggy special case.
-
-2023-05-23 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-pre.cc (compute_antic_aux): Dump the correct
- ANTIC_OUT.
-
-2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/109632
- * config/aarch64/aarch64.cc (aarch64_modes_tieable_p): Allow
- subregs between any scalars that are 64 bits or smaller.
- * config/aarch64/iterators.md (SUBDI_BITS): New int iterator.
- (bits_etype): New int attribute.
- * config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
- (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): New patterns.
- (*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Likewise.
-
-2023-05-23 Richard Sandiford <richard.sandiford@arm.com>
-
- * doc/md.texi: Document that <FOO> can be used to refer to the
- numerical value of an int iterator FOO. Tweak other parts of
- the int iterator documentation.
- * read-rtl.cc (iterator_group::has_self_attr): New field.
- (map_attr_string): When has_self_attr is true, make <FOO>
- expand to the current value of iterator FOO.
- (initialize_iterators): Set has_self_attr for int iterators.
-
-2023-05-23 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md: Refactor the framework of RVV auto-vectorization.
- * config/riscv/riscv-protos.h (RVV_MISC_OP_NUM): Ditto.
- (RVV_UNOP_NUM): New macro.
- (RVV_BINOP_NUM): Ditto.
- (legitimize_move): Refactor the framework of RVV auto-vectorization.
- (emit_vlmax_op): Ditto.
- (emit_vlmax_reg_op): Ditto.
- (emit_len_op): Ditto.
- (emit_len_binop): Ditto.
- (emit_vlmax_tany_many): Ditto.
- (emit_nonvlmax_tany_many): Ditto.
- (sew64_scalar_helper): Ditto.
- (expand_tuple_move): Ditto.
- * config/riscv/riscv-v.cc (emit_pred_op): Ditto.
- (emit_pred_binop): Ditto.
- (emit_vlmax_op): Ditto.
- (emit_vlmax_tany_many): New function.
- (emit_len_op): Remove.
- (emit_nonvlmax_tany_many): New function.
- (emit_vlmax_reg_op): Remove.
- (emit_len_binop): Ditto.
- (emit_index_op): Ditto.
- (expand_vec_series): Refactor the framework of RVV auto-vectorization.
- (expand_const_vector): Ditto.
- (legitimize_move): Ditto.
- (sew64_scalar_helper): Ditto.
- (expand_tuple_move): Ditto.
- (expand_vector_init_insert_elems): Ditto.
- * config/riscv/riscv.cc (vector_zero_call_used_regs): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-05-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/109855
- * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Add predicate
- and constraint for operand 0.
- (add_vec_concat_subst_be): Likewise.
-
-2023-05-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109849
- * tree-ssa-pre.cc (do_hoist_insertion): Compute ANTIC_OUT
- and use that to determine what to hoist.
-
-2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
-
- * fold-const.cc (native_encode_initializer) <CONSTRUCTOR>: Apply the
- specific treatment for bit-fields only if they have an integral type
- and filter out non-integral bit-fields that do not start and end on
- a byte boundary.
-
-2023-05-23 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109920
- * value-range.h (RESIZABLE>::~int_range): Use delete[].
-
-2023-05-22 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.cc (ix86_shift_rotate_cost): Correct
- calcuation of integer vector mode costs to reflect generated
- instruction sequences of different integer vector modes and
- different target ABIs. Remove "speed" function argument.
- (ix86_rtx_costs): Update call for removed function argument.
- (ix86_vector_costs::add_stmt_cost): Ditto.
-
-2023-05-22 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (class Value_Range): Implement set_zero,
- set_nonzero, and nonzero_p.
-
-2023-05-22 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.cc (ix86_multiplication_cost): Add
- the cost of a memory read to the cost of V?QImode sequences.
-
-2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-v.cc: Add "m_" prefix.
-
-2023-05-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * tree-vect-loop.cc (vect_get_loop_len): Fix issue for
- multiple-rgroup of length.
- * tree-vect-stmts.cc (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
- * tree-vectorizer.h (vect_get_loop_len): Ditto.
-
-2023-05-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_const_insns): Reorganize the
- codes.
-
-2023-05-22 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Refactor the
- handling for the case index == count.
-
-2023-05-21 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/90622
- * config/avr/avr.cc (avr_fold_builtin) [AVR_BUILTIN_INSERT_BITS]:
- Don't fold to XOR / AND / XOR if just one bit is copied to the
- same position.
-
-2023-05-21 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/nvptx/nvptx.cc (nvptx_expand_brev): Expand target
- builtin for bit reversal using brev instruction.
- (enum nvptx_builtins): Add NVPTX_BUILTIN_BREV and
- NVPTX_BUILTIN_BREVLL.
- (nvptx_init_builtins): Define "brev" and "brevll".
- (nvptx_expand_builtin): Expand NVPTX_BUILTIN_BREV and
- NVPTX_BUILTIN_BREVLL via nvptx_expand_brev function.
- * doc/extend.texi (Nvidia PTX Builtin-in Functions): New
- section, document __builtin_nvptx_brev{,ll}.
-
-2023-05-21 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109505
- * match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2),
- Combine successive equal operations with constants,
- (A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A,
- CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P
- operands.
-
-2023-05-21 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (expand_single_bit_test): Correct bitpos for big-endian.
-
-2023-05-21 Pan Li <pan2.li@intel.com>
-
- * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): Add the
- rest bool size, aka 2, 4, 8, 16, 32, 64.
- * config/riscv/riscv-vector-builtins-functions.def (vreinterpret):
- Register vbool[2|4|8|16|32|64] interpret function.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_BOOL2_INTERPRET_OPS):
- New macro for vbool2_t.
- (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
- (vint8m1_t): Add the type to bool[2|4|8|16|32|64]_interpret_ops.
- (vint16m1_t): Likewise.
- (vint32m1_t): Likewise.
- (vint64m1_t): Likewise.
- (vuint8m1_t): Likewise.
- (vuint16m1_t): Likewise.
- (vuint32m1_t): Likewise.
- (vuint64m1_t): Likewise.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_BOOL2_INTERPRET_OPS):
- New macro for vbool2_t.
- (DEF_RVV_BOOL4_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL8_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL16_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL32_INTERPRET_OPS): Likewise.
- (DEF_RVV_BOOL64_INTERPRET_OPS): Likewise.
- (required_extensions_p): Add vbool[2|4|8|16|32|64] interpret case.
- * config/riscv/riscv-vector-builtins.def (bool2_interpret): Add
- vbool2_t interprect to base type.
- (bool4_interpret): Likewise.
- (bool8_interpret): Likewise.
- (bool16_interpret): Likewise.
- (bool32_interpret): Likewise.
- (bool64_interpret): Likewise.
-
-2023-05-21 Andrew Pinski <apinski@marvell.com>
-
- PR middle-end/109919
- * expr.cc (expand_single_bit_test): Don't use the
- target for expand_expr.
-
-2023-05-20 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/install.texi (Specific): Remove de facto empty alpha*-*-*
- section.
-
-2023-05-20 Pan Li <pan2.li@intel.com>
-
- * mode-switching.cc (entity_map): Initialize the array to zero.
- (bb_info): Ditto.
-
-2023-05-20 Triffid Hunter <triffid.hunter@gmail.com>
-
- PR target/105753
- * config/avr/avr.md (divmodpsi, udivmodpsi, divmodsi, udivmodsi):
- Remove superfluous "parallel" in insn pattern.
- ([u]divmod<mode>4): Tidy code. Use gcc_unreachable() instead of
- printing error text to assembly.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (fold_single_bit_test): Rename to ...
- (expand_single_bit_test): This and expand directly.
- (do_store_flag): Update for the rename function.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (fold_single_bit_test): Use BIT_FIELD_REF
- instead of shift/and.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (fold_single_bit_test): Add an assert
- and simplify based on code being NE_EXPR or EQ_EXPR.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (fold_single_bit_test): Take inner and bitnum
- instead of arg0 and arg1. Update the code.
- (do_store_flag): Don't create a tree when calling
- fold_single_bit_test instead just call it with the bitnum
- and the inner tree.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (fold_single_bit_test): Use get_def_for_expr
- instead of checking the inner's code.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * expr.cc (fold_single_bit_test_into_sign_test): Inline into ...
- (fold_single_bit_test): This and simplify.
-
-2023-05-20 Andrew Pinski <apinski@marvell.com>
-
- * fold-const.cc (fold_single_bit_test_into_sign_test): Move to
- expr.cc.
- (fold_single_bit_test): Likewise.
- * expr.cc (fold_single_bit_test_into_sign_test): Move from fold-const.cc
- (fold_single_bit_test): Likewise and make static.
- * fold-const.h (fold_single_bit_test): Remove declaration.
-
-2023-05-20 Die Li <lidie@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_expand_conditional_move): Fix mode
- checking.
-
-2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
-
- * config/riscv/bitmanip.md (branch<X:mode>_bext): New split pattern.
-
-2023-05-20 Raphael Moreira Zinsly <rzinsly@ventanamicro.com>
-
- PR target/106888
- * config/riscv/bitmanip.md
- (<bitmanip_optab>disi2): Match with any_extend.
- (<bitmanip_optab>disi2_sext): New pattern to match
- with sign extend using an ANDI instruction.
-
-2023-05-19 Nathan Sidwell <nathan@acm.org>
-
- PR other/99451
- * opts.h (handle_deferred_dump_options): Declare.
- * opts-global.cc (handle_common_deferred_options): Do not handle
- dump options here.
- (handle_deferred_dump_options): New.
- * toplev.cc (toplev::main): Call it after plugin init.
-
-2023-05-19 Joern Rennecke <joern.rennecke@embecosm.com>
-
- * config/riscv/constraints.md (DsS, DsD): Restore agreement
- with shiftm1 mode attribute.
-
-2023-05-19 Andrew Pinski <apinski@marvell.com>
-
- PR driver/33980
- * gcc.cc (default_compilers["@c-header"]): Add %w
- after the --output-pch.
-
-2023-05-19 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_split_integer): if loval is equal
- to hival, ASHIFT the corresponding regs.
-
-2023-05-19 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_const_insns): Remove else.
-
-2023-05-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/105776
- * tree-ssa-math-opts.cc (arith_overflow_check_p): If cast_stmt is
- non-NULL, allow division statement to have a cast as single imm use
- rather than comparison/condition.
- (match_arith_overflow): In that case remove the cast stmt in addition
- to the division statement.
-
-2023-05-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/101856
- * tree-ssa-math-opts.cc (match_arith_overflow): Pattern detect
- unsigned __builtin_mul_overflow_p even when umulv4_optab doesn't
- support it but umul_highpart_optab does.
-
-2023-05-19 Eric Botcazou <ebotcazou@adacore.com>
-
- * varasm.cc (output_constructor_bitfield): Call tree_to_uhwi instead
- of tree_to_shwi on array indices. Minor tweaks.
-
-2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
-
- * alias.cc (ref_all_alias_ptr_type_p): Use _P() defines from tree.h.
- * attribs.cc (diag_attr_exclusions): Ditto.
- (decl_attributes): Ditto.
- (build_type_attribute_qual_variant): Ditto.
- * builtins.cc (fold_builtin_carg): Ditto.
- (fold_builtin_next_arg): Ditto.
- (do_mpc_arg2): Ditto.
- * cfgexpand.cc (expand_return): Ditto.
- * cgraph.h (decl_in_symtab_p): Ditto.
- (symtab_node::get_create): Ditto.
- * dwarf2out.cc (base_type_die): Ditto.
- (implicit_ptr_descriptor): Ditto.
- (gen_array_type_die): Ditto.
- (gen_type_die_with_usage): Ditto.
- (optimize_location_into_implicit_ptr): Ditto.
- * expr.cc (do_store_flag): Ditto.
- * fold-const.cc (negate_expr_p): Ditto.
- (fold_negate_expr_1): Ditto.
- (fold_convert_const): Ditto.
- (fold_convert_loc): Ditto.
- (constant_boolean_node): Ditto.
- (fold_binary_op_with_conditional_arg): Ditto.
- (build_fold_addr_expr_with_type_loc): Ditto.
- (fold_comparison): Ditto.
- (fold_checksum_tree): Ditto.
- (tree_unary_nonnegative_warnv_p): Ditto.
- (integer_valued_real_unary_p): Ditto.
- (fold_read_from_constant_string): Ditto.
- * gcc-rich-location.cc (maybe_range_label_for_tree_type_mismatch::get_text): Ditto.
- * gimple-expr.cc (useless_type_conversion_p): Ditto.
- (is_gimple_reg): Ditto.
- (is_gimple_asm_val): Ditto.
- (mark_addressable): Ditto.
- * gimple-expr.h (is_gimple_variable): Ditto.
- (virtual_operand_p): Ditto.
- * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores): Ditto.
- * gimplify.cc (gimplify_bind_expr): Ditto.
- (gimplify_return_expr): Ditto.
- (gimple_add_padding_init_for_auto_var): Ditto.
- (gimplify_addr_expr): Ditto.
- (omp_add_variable): Ditto.
- (omp_notice_variable): Ditto.
- (omp_get_base_pointer): Ditto.
- (omp_strip_components_and_deref): Ditto.
- (omp_strip_indirections): Ditto.
- (omp_accumulate_sibling_list): Ditto.
- (omp_build_struct_sibling_lists): Ditto.
- (gimplify_adjust_omp_clauses_1): Ditto.
- (gimplify_adjust_omp_clauses): Ditto.
- (gimplify_omp_for): Ditto.
- (goa_lhs_expr_p): Ditto.
- (gimplify_one_sizepos): Ditto.
- * graphite-scop-detection.cc (scop_detection::graphite_can_represent_scev): Ditto.
- * ipa-devirt.cc (odr_types_equivalent_p): Ditto.
- * ipa-prop.cc (ipa_set_jf_constant): Ditto.
- (propagate_controlled_uses): Ditto.
- * ipa-sra.cc (type_prevails_p): Ditto.
- (scan_expr_access): Ditto.
- * optabs-tree.cc (optab_for_tree_code): Ditto.
- * toplev.cc (wrapup_global_declaration_1): Ditto.
- * trans-mem.cc (transaction_invariant_address_p): Ditto.
- * tree-cfg.cc (verify_types_in_gimple_reference): Ditto.
- (verify_gimple_comparison): Ditto.
- (verify_gimple_assign_binary): Ditto.
- (verify_gimple_assign_single): Ditto.
- * tree-complex.cc (get_component_ssa_name): Ditto.
- * tree-emutls.cc (lower_emutls_2): Ditto.
- * tree-inline.cc (copy_tree_body_r): Ditto.
- (estimate_move_cost): Ditto.
- (copy_decl_for_dup_finish): Ditto.
- * tree-nested.cc (convert_nonlocal_omp_clauses): Ditto.
- (note_nonlocal_vla_type): Ditto.
- (convert_local_omp_clauses): Ditto.
- (remap_vla_decls): Ditto.
- (fixup_vla_decls): Ditto.
- * tree-parloops.cc (loop_has_vector_phi_nodes): Ditto.
- * tree-pretty-print.cc (print_declaration): Ditto.
- (print_call_name): Ditto.
- * tree-sra.cc (compare_access_positions): Ditto.
- * tree-ssa-alias.cc (compare_type_sizes): Ditto.
- * tree-ssa-ccp.cc (get_default_value): Ditto.
- * tree-ssa-coalesce.cc (populate_coalesce_list_for_outofssa): Ditto.
- * tree-ssa-dom.cc (reduce_vector_comparison_to_scalar_comparison): Ditto.
- * tree-ssa-forwprop.cc (can_propagate_from): Ditto.
- * tree-ssa-propagate.cc (may_propagate_copy): Ditto.
- * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Ditto.
- * tree-ssa-sink.cc (statement_sink_location): Ditto.
- * tree-ssa-structalias.cc (type_must_have_pointers): Ditto.
- * tree-ssa-ter.cc (find_replaceable_in_bb): Ditto.
- * tree-ssa-uninit.cc (warn_uninit): Ditto.
- * tree-ssa.cc (maybe_rewrite_mem_ref_base): Ditto.
- (non_rewritable_mem_ref_base): Ditto.
- * tree-streamer-in.cc (lto_input_ts_type_non_common_tree_pointers): Ditto.
- * tree-streamer-out.cc (write_ts_type_non_common_tree_pointers): Ditto.
- * tree-vect-generic.cc (do_binop): Ditto.
- (do_cond): Ditto.
- * tree-vect-stmts.cc (vect_init_vector): Ditto.
- * tree-vector-builder.h (tree_vector_builder::note_representative): Ditto.
- * tree.cc (sign_mask_for): Ditto.
- (verify_type_variant): Ditto.
- (gimple_canonical_types_compatible_p): Ditto.
- (verify_type): Ditto.
- * ubsan.cc (get_ubsan_type_info_for_type): Ditto.
- * var-tracking.cc (prepare_call_arguments): Ditto.
- (vt_add_function_parameters): Ditto.
- * varasm.cc (decode_addr_const): Ditto.
-
-2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
-
- * omp-low.cc (scan_sharing_clauses): Use _P() defines from tree.h.
- (lower_reduction_clauses): Ditto.
- (lower_send_clauses): Ditto.
- (lower_omp_task_reductions): Ditto.
- * omp-oacc-neuter-broadcast.cc (install_var_field): Ditto.
- (worker_single_copy): Ditto.
- * omp-offload.cc (oacc_rewrite_var_decl): Ditto.
- * omp-simd-clone.cc (plausible_type_for_simd_clone): Ditto.
-
-2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
-
- * lto-streamer-in.cc (lto_input_var_decl_ref): Use _P defines from
- tree.h.
- (lto_read_body_or_constructor): Ditto.
- * lto-streamer-out.cc (tree_is_indexable): Ditto.
- (lto_output_var_decl_ref): Ditto.
- (DFS::DFS_write_tree_body): Ditto.
- (wrap_refs): Ditto.
- (write_symbol_extension_info): Ditto.
-
-2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
-
- * config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P
- defines from tree.h.
- (aarch64_mangle_type): Ditto.
- * config/alpha/alpha.cc (alpha_in_small_data_p): Ditto.
- (alpha_gimplify_va_arg_1): Ditto.
- * config/arc/arc.cc (arc_encode_section_info): Ditto.
- (arc_is_aux_reg_p): Ditto.
- (arc_is_uncached_mem_p): Ditto.
- (arc_handle_aux_attribute): Ditto.
- * config/arm/arm.cc (arm_handle_isr_attribute): Ditto.
- (arm_handle_cmse_nonsecure_call): Ditto.
- (arm_set_default_type_attributes): Ditto.
- (arm_is_segment_info_known): Ditto.
- (arm_mangle_type): Ditto.
- * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto.
- * config/avr/avr.cc (avr_lookup_function_attribute1): Ditto.
- (avr_decl_absdata_p): Ditto.
- (avr_insert_attributes): Ditto.
- (avr_section_type_flags): Ditto.
- (avr_encode_section_info): Ditto.
- * config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto.
- * config/bpf/bpf.cc (bpf_core_compute): Ditto.
- * config/c6x/c6x.cc (c6x_in_small_data_p): Ditto.
- * config/csky/csky.cc (csky_handle_isr_attribute): Ditto.
- (csky_mangle_type): Ditto.
- * config/darwin-c.cc (darwin_pragma_unused): Ditto.
- * config/darwin.cc (is_objc_metadata): Ditto.
- * config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto.
- * config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto.
- * config/frv/frv.cc (frv_emit_movsi): Ditto.
- * config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto.
- * config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto.
- * config/h8300/h8300.cc (h8300_encode_section_info): Ditto.
- * config/i386/i386-expand.cc: Ditto.
- * config/i386/i386.cc (type_natural_mode): Ditto.
- (ix86_function_arg): Ditto.
- (ix86_data_alignment): Ditto.
- (ix86_local_alignment): Ditto.
- (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
- * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto.
- (i386_pe_type_dllexport_p): Ditto.
- (i386_pe_adjust_class_at_definition): Ditto.
- * config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto.
- (i386_pe_binds_local_p): Ditto.
- (i386_pe_section_type_flags): Ditto.
- * config/ia64/ia64.cc (ia64_encode_section_info): Ditto.
- (ia64_gimplify_va_arg): Ditto.
- (ia64_in_small_data_p): Ditto.
- * config/iq2000/iq2000.cc (iq2000_function_arg): Ditto.
- * config/lm32/lm32.cc (lm32_in_small_data_p): Ditto.
- * config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto.
- * config/m32c/m32c.cc (m32c_insert_attributes): Ditto.
- * config/mcore/mcore.cc (mcore_mark_dllimport): Ditto.
- (mcore_encode_section_info): Ditto.
- * config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto.
- * config/mips/mips.cc (mips_output_aligned_decl_common): Ditto.
- * config/mmix/mmix.cc (mmix_encode_section_info): Ditto.
- * config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto.
- (pass_in_memory): Ditto.
- (nvptx_generate_vector_shuffle): Ditto.
- (nvptx_lockless_update): Ditto.
- * config/pa/pa.cc (pa_function_arg_padding): Ditto.
- (pa_function_value): Ditto.
- (pa_function_arg): Ditto.
- * config/pa/pa.h (IN_NAMED_SECTION_P): Ditto.
- (TEXT_SPACE_P): Ditto.
- * config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto.
- * config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto.
- * config/riscv/riscv.cc (riscv_in_small_data_p): Ditto.
- (riscv_mangle_type): Ditto.
- * config/rl78/rl78.cc (rl78_insert_attributes): Ditto.
- (rl78_addsi3_internal): Ditto.
- * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto.
- * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto.
- * config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto.
- * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto.
- * config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto.
- (rs6000_function_arg_advance_1): Ditto.
- (rs6000_function_arg): Ditto.
- (rs6000_pass_by_reference): Ditto.
- * config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto.
- * config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto.
- (rs6000_set_default_type_attributes): Ditto.
- (rs6000_elf_in_small_data_p): Ditto.
- (IN_NAMED_SECTION): Ditto.
- (rs6000_xcoff_encode_section_info): Ditto.
- (rs6000_function_value): Ditto.
- (invalid_arg_for_unprototyped_fn): Ditto.
- * config/s390/s390-c.cc (s390_fn_types_compatible): Ditto.
- (s390_vec_n_elem): Ditto.
- * config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto.
- (s390_function_arg_integer): Ditto.
- (s390_return_in_memory): Ditto.
- (s390_encode_section_info): Ditto.
- * config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto.
- (sh_function_value): Ditto.
- * config/sol2.cc (solaris_insert_attributes): Ditto.
- * config/sparc/sparc.cc (function_arg_slotno): Ditto.
- * config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto.
- * config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto.
- (xstormy16_handle_below100_attribute): Ditto.
- * config/v850/v850.cc (v850_encode_section_info): Ditto.
- (v850_insert_attributes): Ditto.
- * config/visium/visium.cc (visium_pass_by_reference): Ditto.
- (visium_return_in_memory): Ditto.
- * config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto.
-
-2023-05-18 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial): New.
- (ix86_expand_vecop_qihi): Add op2vec bool variable.
- Do not set REG_EQUAL note.
- * config/i386/i386-protos.h (ix86_expand_vecop_qihi_partial):
- Add prototype.
- * config/i386/i386.cc (ix86_multiplication_cost): Handle
- V4QImode and V8QImode.
- * config/i386/mmx.md (mulv8qi3): New expander.
- (mulv4qi3): Ditto.
- * config/i386/sse.md (mulv8qi3): Remove.
-
-2023-05-18 Georg-Johann Lay <avr@gjlay.de>
-
- * config/avr/gen-avr-mmcu-specs.cc: Remove stale */ after // comment.
-
-2023-05-18 Jonathan Wakely <jwakely@redhat.com>
-
- PR bootstrap/105831
- * config.gcc: Use = operator instead of ==.
-
-2023-05-18 Michael Bäuerle <micha@NetBSD.org>
-
- PR bootstrap/105831
- * config/nvptx/gen-opt.sh: Use = operator instead of ==.
- * configure.ac: Likewise.
- * configure: Regenerate.
-
-2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
-
- * config/arm/arm_mve.h: (__ARM_mve_typeid): Add more pointer types.
- (__ARM_mve_coerce1): Remove.
- (__ARM_mve_coerce2): Remove.
- (__ARM_mve_coerce3): Remove.
- (__ARM_mve_coerce_i_scalar): New.
- (__ARM_mve_coerce_s8_ptr): New.
- (__ARM_mve_coerce_u8_ptr): New.
- (__ARM_mve_coerce_s16_ptr): New.
- (__ARM_mve_coerce_u16_ptr): New.
- (__ARM_mve_coerce_s32_ptr): New.
- (__ARM_mve_coerce_u32_ptr): New.
- (__ARM_mve_coerce_s64_ptr): New.
- (__ARM_mve_coerce_u64_ptr): New.
- (__ARM_mve_coerce_f_scalar): New.
- (__ARM_mve_coerce_f16_ptr): New.
- (__ARM_mve_coerce_f32_ptr): New.
- (__arm_vst4q): Change _coerce_ overloads.
- (__arm_vbicq): Change _coerce_ overloads.
- (__arm_vld1q): Change _coerce_ overloads.
- (__arm_vld1q_z): Change _coerce_ overloads.
- (__arm_vld2q): Change _coerce_ overloads.
- (__arm_vld4q): Change _coerce_ overloads.
- (__arm_vldrhq_gather_offset): Change _coerce_ overloads.
- (__arm_vldrhq_gather_offset_z): Change _coerce_ overloads.
- (__arm_vldrhq_gather_shifted_offset): Change _coerce_ overloads.
- (__arm_vldrhq_gather_shifted_offset_z): Change _coerce_ overloads.
- (__arm_vldrwq_gather_offset): Change _coerce_ overloads.
- (__arm_vldrwq_gather_offset_z): Change _coerce_ overloads.
- (__arm_vldrwq_gather_shifted_offset): Change _coerce_ overloads.
- (__arm_vldrwq_gather_shifted_offset_z): Change _coerce_ overloads.
- (__arm_vst1q_p): Change _coerce_ overloads.
- (__arm_vst2q): Change _coerce_ overloads.
- (__arm_vst1q): Change _coerce_ overloads.
- (__arm_vstrhq): Change _coerce_ overloads.
- (__arm_vstrhq_p): Change _coerce_ overloads.
- (__arm_vstrhq_scatter_offset_p): Change _coerce_ overloads.
- (__arm_vstrhq_scatter_offset): Change _coerce_ overloads.
- (__arm_vstrhq_scatter_shifted_offset_p): Change _coerce_ overloads.
- (__arm_vstrhq_scatter_shifted_offset): Change _coerce_ overloads.
- (__arm_vstrwq_p): Change _coerce_ overloads.
- (__arm_vstrwq): Change _coerce_ overloads.
- (__arm_vstrwq_scatter_offset): Change _coerce_ overloads.
- (__arm_vstrwq_scatter_offset_p): Change _coerce_ overloads.
- (__arm_vstrwq_scatter_shifted_offset): Change _coerce_ overloads.
- (__arm_vstrwq_scatter_shifted_offset_p): Change _coerce_ overloads.
- (__arm_vsetq_lane): Change _coerce_ overloads.
- (__arm_vldrbq_gather_offset): Change _coerce_ overloads.
- (__arm_vdwdupq_x_u8): Change _coerce_ overloads.
- (__arm_vdwdupq_x_u16): Change _coerce_ overloads.
- (__arm_vdwdupq_x_u32): Change _coerce_ overloads.
- (__arm_viwdupq_x_u8): Change _coerce_ overloads.
- (__arm_viwdupq_x_u16): Change _coerce_ overloads.
- (__arm_viwdupq_x_u32): Change _coerce_ overloads.
- (__arm_vidupq_x_u8): Change _coerce_ overloads.
- (__arm_vddupq_x_u8): Change _coerce_ overloads.
- (__arm_vidupq_x_u16): Change _coerce_ overloads.
- (__arm_vddupq_x_u16): Change _coerce_ overloads.
- (__arm_vidupq_x_u32): Change _coerce_ overloads.
- (__arm_vddupq_x_u32): Change _coerce_ overloads.
- (__arm_vldrdq_gather_offset): Change _coerce_ overloads.
- (__arm_vldrdq_gather_offset_z): Change _coerce_ overloads.
- (__arm_vldrdq_gather_shifted_offset): Change _coerce_ overloads.
- (__arm_vldrdq_gather_shifted_offset_z): Change _coerce_ overloads.
- (__arm_vldrbq_gather_offset_z): Change _coerce_ overloads.
- (__arm_vidupq_u16): Change _coerce_ overloads.
- (__arm_vidupq_u32): Change _coerce_ overloads.
- (__arm_vidupq_u8): Change _coerce_ overloads.
- (__arm_vddupq_u16): Change _coerce_ overloads.
- (__arm_vddupq_u32): Change _coerce_ overloads.
- (__arm_vddupq_u8): Change _coerce_ overloads.
- (__arm_viwdupq_m): Change _coerce_ overloads.
- (__arm_viwdupq_u16): Change _coerce_ overloads.
- (__arm_viwdupq_u32): Change _coerce_ overloads.
- (__arm_viwdupq_u8): Change _coerce_ overloads.
- (__arm_vdwdupq_m): Change _coerce_ overloads.
- (__arm_vdwdupq_u16): Change _coerce_ overloads.
- (__arm_vdwdupq_u32): Change _coerce_ overloads.
- (__arm_vdwdupq_u8): Change _coerce_ overloads.
- (__arm_vstrbq): Change _coerce_ overloads.
- (__arm_vstrbq_p): Change _coerce_ overloads.
- (__arm_vstrbq_scatter_offset_p): Change _coerce_ overloads.
- (__arm_vstrdq_scatter_offset_p): Change _coerce_ overloads.
- (__arm_vstrdq_scatter_offset): Change _coerce_ overloads.
- (__arm_vstrdq_scatter_shifted_offset_p): Change _coerce_ overloads.
- (__arm_vstrdq_scatter_shifted_offset): Change _coerce_ overloads.
-
-2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
-
- * config/arm/arm_mve.h (__arm_vbicq): Change coerce on
- scalar constant.
-
-2023-05-18 Stam Markianos-Wright <stam.markianos-wright@arm.com>
-
- * config/arm/arm_mve.h (__arm_vadcq_s32): Fix arithmetic.
- (__arm_vadcq_u32): Likewise.
- (__arm_vadcq_m_s32): Likewise.
- (__arm_vadcq_m_u32): Likewise.
- (__arm_vsbcq_s32): Likewise.
- (__arm_vsbcq_u32): Likewise.
- (__arm_vsbcq_m_s32): Likewise.
- (__arm_vsbcq_m_u32): Likewise.
- * config/arm/mve.md (get_fpscr_nzcvqc): Make unspec_volatile.
-
-2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
-
- * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrev64q_f<mode>)
- (mve_vrev32q_fv8hf, mve_vcvttq_f32_f16v4sf)
- (mve_vcvtbq_f32_f16v4sf, mve_vcvtq_to_f_<supf><mode>)
- (mve_vrev64q_<supf><mode>, mve_vcvtq_from_f_<supf><mode>)
- (mve_vmovltq_<supf><mode>, mve_vmovlbq_<supf><mode>)
- (mve_vcvtpq_<supf><mode>, mve_vcvtnq_<supf><mode>)
- (mve_vcvtmq_<supf><mode>, mve_vcvtaq_<supf><mode>)
- (mve_vmvnq_n_<supf><mode>, mve_vrev16q_<supf>v16qi)
- (mve_vctp<MVE_vctp>q<MVE_vpred>, mve_vbrsrq_n_f<mode>)
- (mve_vbrsrq_n_<supf><mode>, mve_vandq_f<mode>, mve_vbicq_f<mode>)
- (mve_vctp<MVE_vctp>q_m<MVE_vpred>, mve_vcvtbq_f16_f32v8hf)
- (mve_vcvttq_f16_f32v8hf, mve_veorq_f<mode>)
- (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
- (mve_vmlsldavxq_s<mode>, mve_vornq_f<mode>, mve_vorrq_f<mode>)
- (mve_vrmlaldavhxq_sv4si, mve_vcvtq_m_to_f_<supf><mode>)
- (mve_vshlcq_<supf><mode>, mve_vmvnq_m_<supf><mode>)
- (mve_vpselq_<supf><mode>, mve_vcvtbq_m_f16_f32v8hf)
- (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f16_f32v8hf)
- (mve_vcvttq_m_f32_f16v4sf, mve_vmlaldavq_p_<supf><mode>)
- (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
- (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>)
- (mve_vmvnq_m_n_<supf><mode>, mve_vorrq_m_n_<supf><mode>)
- (mve_vpselq_f<mode>, mve_vrev32q_m_fv8hf)
- (mve_vrev32q_m_<supf><mode>, mve_vrev64q_m_f<mode>)
- (mve_vrmlaldavhaxq_sv4si, mve_vrmlaldavhxq_p_sv4si)
- (mve_vrmlsldavhaxq_sv4si, mve_vrmlsldavhq_p_sv4si)
- (mve_vrmlsldavhxq_p_sv4si, mve_vrev16q_m_<supf>v16qi)
- (mve_vrmlaldavhq_p_<supf>v4si, mve_vrmlsldavhaq_sv4si)
- (mve_vandq_m_<supf><mode>, mve_vbicq_m_<supf><mode>)
- (mve_veorq_m_<supf><mode>, mve_vornq_m_<supf><mode>)
- (mve_vorrq_m_<supf><mode>, mve_vandq_m_f<mode>)
- (mve_vbicq_m_f<mode>, mve_veorq_m_f<mode>, mve_vornq_m_f<mode>)
- (mve_vorrq_m_f<mode>)
- (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn)
- (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn)
- (mve_vstrdq_scatter_base_wb_p_<supf>v2di) : Fix spacing and
- capitalization in the emitted asm.
-
-2023-05-18 Andrea Corallo <andrea.corallo@arm.com>
-
- * config/arm/constraints.md (mve_vldrd_immediate): Move it to
- predicates.md.
- (Ri): Move constraint definition from predicates.md.
- (Rl): Define new constraint.
- * config/arm/mve.md (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Add
- missing constraint.
- (mve_vstrwq_scatter_base_wb_p_fv4sf): Add missing Up constraint
- for op 1, use mve_vstrw_immediate predicate and Rl constraint for
- op 2. Fix asm output spacing.
- (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Add missing constraint.
- * config/arm/predicates.md (Ri) Move constraint to constraints.md
- (mve_vldrd_immediate): Move it from
- constraints.md.
- (mve_vstrw_immediate): New predicate.
-
-2023-05-18 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- Kito Cheng <kito.cheng@sifive.com>
- Richard Biener <rguenther@suse.de>
- Richard Sandiford <richard.sandiford@arm.com>
-
- * combine.cc (struct reg_stat_type): Extend machine_mode to 16 bits.
- * cse.cc (struct qty_table_elem): Extend machine_mode to 16 bits
- (struct table_elt): Extend machine_mode to 16 bits.
- (struct set): Ditto.
- * genmodes.cc (emit_mode_wider): Extend type from char to short.
- (emit_mode_complex): Ditto.
- (emit_mode_inner): Ditto.
- (emit_class_narrowest_mode): Ditto.
- * genopinit.cc (main): Extend the machine_mode limit.
- * ira-int.h (struct ira_allocno): Extend machine_mode to 16 bits and
- re-ordered the struct fields for padding.
- * machmode.h (MACHINE_MODE_BITSIZE): New macro.
- (GET_MODE_2XWIDER_MODE): Extend type from char to short.
- (get_mode_alignment): Extend type from char to short.
- * ree.cc (struct ext_modified): Extend machine_mode to 16 bits and
- removed the ATTRIBUTE_PACKED.
- * rtl-ssa/accesses.h: Extend machine_mode to 16 bits, narrow
- * rtl-ssa/internals.inl (rtl_ssa::access_info): Adjust the assignment.
- m_kind to 2 bits and remove m_spare.
- * rtl.h (RTX_CODE_BITSIZE): New macro.
- (struct rtx_def): Swap both the bit size and location between the
- rtx_code and the machine_mode.
- (subreg_shape::unique_id): Extend the machine_mode limit.
- * rtlanal.h: Extend machine_mode to 16 bits.
- * tree-core.h (struct tree_type_common): Extend machine_mode to 16
- bits and re-ordered the struct fields for padding.
- (struct tree_decl_common): Extend machine_mode to 16 bits.
-
-2023-05-17 Jin Ma <jinma@linux.alibaba.com>
-
- * genrecog.cc (print_nonbool_test): Fix type error of
- switch (SUBREG_BYTE (op))'.
-
-2023-05-17 Jin Ma <jinma@linux.alibaba.com>
-
- * common/config/riscv/riscv-common.cc: Remove
- trailing spaces on lines.
- * config/riscv/riscv.cc (riscv_legitimize_move): Likewise.
- * config/riscv/riscv.h (enum reg_class): Likewise.
- * config/riscv/riscv.md: Likewise.
-
-2023-05-17 John David Anglin <danglin@gcc.gnu.org>
-
- * config/pa/pa.md (clear_cache): New.
-
-2023-05-17 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/extend.texi (C++ Concepts) <forall>: Remove extraneous
- parenthesis. Fix misnamed index entry.
- <concept>: Fix misnamed index entry.
-
-2023-05-17 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/riscv.md (*<optab><GPR:mode>3_mask): New pattern,
- combined from ...
- (*<optab>si3_mask, *<optab>di3_mask): Here.
- (*<optab>si3_mask_1, *<optab>di3_mask_1): And here.
- * config/riscv/bitmanip.md (*<bitmanip_optab><GPR:mode>3_mask): New
- pattern.
- (*<bitmanip_optab>si3_sext_mask): Likewise.
- * config/riscv/iterators.md (shiftm1): Use const_si_mask_operand
- and const_di_mask_operand.
- (bitmanip_rotate): New iterator.
- (bitmanip_optab): Add rotates.
- * config/riscv/predicates.md (const_si_mask_operand): Renamed
- from const31_operand. Generalize to handle more mask constants.
- (const_di_mask_operand): Similarly.
-
-2023-05-17 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/109884
- * config/i386/i386-builtin-types.def (FLOAT128): Use
- float128t_type_node rather than float128_type_node.
-
-2023-05-17 Alexander Monakov <amonakov@ispras.ru>
-
- * tree-ssa-math-opts.cc (convert_mult_to_fma): Enable only for
- FP_CONTRACT_FAST (no functional change).
-
-2023-05-17 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.cc (ix86_multiplication_cost): Correct
- calcuation of integer vector mode costs to reflect generated
- instruction sequences of different integer vector modes and
- different target ABIs.
-
-2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-opts.h (enum riscv_entity): New enum.
- * config/riscv/riscv.cc (riscv_emit_mode_set): New function.
- (riscv_mode_needed): Ditto.
- (riscv_mode_after): Ditto.
- (riscv_mode_entry): Ditto.
- (riscv_mode_exit): Ditto.
- (riscv_mode_priority): Ditto.
- (TARGET_MODE_EMIT): New target hook.
- (TARGET_MODE_NEEDED): Ditto.
- (TARGET_MODE_AFTER): Ditto.
- (TARGET_MODE_ENTRY): Ditto.
- (TARGET_MODE_EXIT): Ditto.
- (TARGET_MODE_PRIORITY): Ditto.
- * config/riscv/riscv.h (OPTIMIZE_MODE_SWITCHING): Ditto.
- (NUM_MODES_FOR_MODE_SWITCHING): Ditto.
- * config/riscv/riscv.md: Add csrwvxrm.
- * config/riscv/vector.md (rnu,rne,rdn,rod,none): New attribute.
- (vxrmsi): New pattern.
-
-2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Introduce rounding mode.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
- (struct narrow_alu_def): Ditto.
- * config/riscv/riscv-vector-builtins.cc (function_builder::apply_predication): Ditto.
- (function_expander::use_exact_insn): Ditto.
- * config/riscv/riscv-vector-builtins.h (function_checker::arg_num): New function.
- (function_base::has_rounding_mode_operand_p): New function.
-
-2023-05-17 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-forwprop.cc (simplify_builtin_call): Check
- against 0 instead of calling integer_zerop.
-
-2023-05-17 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins.cc (register_vxrm): New function.
- (DEF_RVV_VXRM_ENUM): New macro.
- (handle_pragma_vector): Add vxrm enum register.
- * config/riscv/riscv-vector-builtins.def (DEF_RVV_VXRM_ENUM): New macro.
- (RNU): Ditto.
- (RNE): Ditto.
- (RDN): Ditto.
- (ROD): Ditto.
-
-2023-05-17 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (Value_Range::operator=): New.
-
-2023-05-17 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (vrange::operator=): Add a stub to copy
- unsupported ranges.
- * value-range.h (is_a <unsupported_range>): New.
- (Value_Range::operator=): Support copying unsupported ranges.
-
-2023-05-17 Aldy Hernandez <aldyh@redhat.com>
-
- * data-streamer-in.cc (streamer_read_real_value): New.
- (streamer_read_value_range): New.
- * data-streamer-out.cc (streamer_write_real_value): New.
- (streamer_write_vrange): New.
- * data-streamer.h (streamer_write_vrange): New.
- (streamer_read_value_range): New.
-
-2023-05-17 Jonathan Wakely <jwakely@redhat.com>
-
- PR c++/109532
- * doc/invoke.texi (Code Gen Options): Note that -fshort-enums
- is ignored for a fixed underlying type.
- (C++ Dialect Options): Likewise for -fstrict-enums.
-
-2023-05-17 Tobias Burnus <tobias@codesourcery.com>
-
- * gimplify.cc (gimplify_scan_omp_clauses): Remove Fortran
- special case.
-
-2023-05-17 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390.cc (TARGET_ATOMIC_ALIGN_FOR_MODE):
- New.
- (s390_atomic_align_for_mode): New.
-
-2023-05-17 Jakub Jelinek <jakub@redhat.com>
-
- * wide-int.cc (wi::from_array): Add missing closing paren in function
- comment.
-
-2023-05-17 Kewen Lin <linkw@linux.ibm.com>
-
- * tree-vect-loop.cc (vect_analyze_loop_1): Don't retry analysis with
- suggested unroll factor once the previous analysis fails.
-
-2023-05-17 Pan Li <pan2.li@intel.com>
-
- * config/riscv/genrvv-type-indexer.cc (BOOL_SIZE_LIST): New
- macro.
- (main): Add bool1 to the type indexer.
- * config/riscv/riscv-vector-builtins-functions.def
- (vreinterpret): Register vbool1 interpret function.
- * config/riscv/riscv-vector-builtins-types.def
- (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
- (vint8m1_t): Add the type to bool1_interpret_ops.
- (vint16m1_t): Ditto.
- (vint32m1_t): Ditto.
- (vint64m1_t): Ditto.
- (vuint8m1_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint32m1_t): Ditto.
- (vuint64m1_t): Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (DEF_RVV_BOOL1_INTERPRET_OPS): New macro.
- (required_extensions_p): Add bool1 interpret case.
- * config/riscv/riscv-vector-builtins.def
- (bool1_interpret): Add bool1 interpret to base type.
- * config/riscv/vector.md (@vreinterpret<mode>): Add new expand
- with VB dest for vreinterpret.
-
-2023-05-17 Jiufu Guo <guojiufu@linux.ibm.com>
-
- PR target/106708
- * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Support building
- constants through "lis; xoris".
-
-2023-05-16 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
-
- * common/config/rs6000/rs6000-common.cc: Add REE pass as a
- default rs6000 target pass for O2 and above.
- * doc/invoke.texi: Document -free
-
-2023-05-16 Kito Cheng <kito.cheng@sifive.com>
-
- * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
- Fix wrong select_kind...
-
-2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-protos.h (s390_expand_setmem): Change
- function signature.
- * config/s390/s390.cc (s390_expand_setmem): For memset's less
- than or equal to 256 byte do not perform a libc call.
- * config/s390/s390.md: Change expander into a version which
- takes 8 operands.
-
-2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-protos.h (s390_expand_movmem): New.
- * config/s390/s390.cc (s390_expand_movmem): New.
- * config/s390/s390.md (movmem<mode>): New.
- (*mvcrl): New.
- (mvcrl): New.
-
-2023-05-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-protos.h (s390_expand_cpymem): Change
- function signature.
- * config/s390/s390.cc (s390_expand_cpymem): For memcpy's less
- than or equal to 256 byte do not perform a libc call.
- (s390_expand_insv): Adapt new function signature of
- s390_expand_cpymem.
- * config/s390/s390.md: Change expander into a version which
- takes 8 operands.
-
-2023-05-16 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109424
- * match.pd: Add patterns for min/max of zero_one_valued
- values to `&`/`|`.
-
-2023-05-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum frm_field_enum): New enum.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_ternop_insn): Add default rounding mode.
- (function_expander::use_widen_ternop_insn): Ditto.
- * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add FRM REGNUM.
- (riscv_hard_regno_mode_ok): Ditto.
- (riscv_conditional_register_usage): Ditto.
- * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
- (FRM_REG_P): Ditto.
- (RISCV_DWARF_FRM): Ditto.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector-iterators.md: split no frm and has frm operations.
- * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
- (@pred_<optab><mode>): Ditto.
-
-2023-05-15 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109695
- * value-range.cc (irange::operator=): Resize range.
- (irange::union_): Same.
- (irange::intersect): Same.
- (irange::invert): Same.
- (int_range_max): Default to 3 sub-ranges and resize as needed.
- * value-range.h (irange::maybe_resize): New.
- (~int_range): New.
- (int_range::int_range): Adjust for resizing.
- (int_range::operator=): Same.
-
-2023-05-15 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Avoid unnecessary
- range copying
- * value-range.cc (irange::union_nonzero_bits): Return TRUE only
- when range changed.
-
-2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum vxrm_field_enum): New enum.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_exact_insn): Add default rounding mode operand.
- * config/riscv/riscv.cc (riscv_hard_regno_nregs): Add VXRM_REGNUM.
- (riscv_hard_regno_mode_ok): Ditto.
- (riscv_conditional_register_usage): Ditto.
- * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Ditto.
- (VXRM_REG_P): Ditto.
- (RISCV_DWARF_VXRM): Ditto.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector.md: Ditto
-
-2023-05-15 Pan Li <pan2.li@intel.com>
-
- * optabs.cc (maybe_gen_insn): Add case to generate instruction
- that has 11 operands.
-
-2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_rtx_costs, NEG case): Add costing
- logic for vector modes.
-
-2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_cm<optab><mode>): Rename to...
- (aarch64_cm<optab><mode><vczle><vczbe>): ... This.
- (aarch64_cmtst<mode>): Rename to...
- (aarch64_cmtst<mode><vczle><vczbe>): ... This.
- (*aarch64_cmtst_same_<mode>): Rename to...
- (*aarch64_cmtst_same_<mode><vczle><vczbe>): ... This.
- (*aarch64_cmtstdi): Rename to...
- (*aarch64_cmtstdi<vczle><vczbe>): ... This.
- (aarch64_fac<optab><mode>): Rename to...
- (aarch64_fac<optab><mode><vczle><vczbe>): ... This.
-
-2023-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>): Rename to...
- (aarch64_s<optab><mode><vczle><vczbe>): ... This.
-
-2023-05-15 Pan Li <pan2.li@intel.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-v.cc (const_vlmax_p): New function for
- deciding the mode is constant or not.
- (set_len_and_policy): Optimize VLS-VLMAX code gen to vsetivli.
-
-2023-05-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109848
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Put the
- TARGET_MEM_REF address preparation before the store, not
- before the CTOR.
-
-2023-05-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc
- (riscv_vectorize_preferred_vector_alignment): New function.
- (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New target hook.
-
-2023-05-14 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109829
- * match.pd: Add pattern for `signbit(x) !=/== 0 ? x : -x`.
-
-2023-05-14 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/109807
- * config/i386/i386.cc: Revert the 2023-05-11 change.
- (ix86_widen_mult_cost): Return high value instead of
- ICEing for unsupported modes.
-
-2023-05-14 Ard Biesheuvel <ardb@kernel.org>
-
- * config/i386/i386.cc (x86_function_profiler): Take
- ix86_direct_extern_access into account when generating calls
- to __fentry__()
-
-2023-05-14 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv-vector-builtins.cc (required_extensions_p):
- Refactor the or pattern to switch cases.
-
-2023-05-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Rename
- aarch64_expand_vector_init to this, and remove interleaving case.
- Recursively call aarch64_expand_vector_init_fallback, instead of
- aarch64_expand_vector_init.
- (aarch64_unzip_vector_init): New function.
- (aarch64_expand_vector_init): Likewise.
-
-2023-05-13 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns):
- Pull out function call from the gcc_assert.
-
-2023-05-13 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-vsetvl.cc (vlmul_to_str): New.
- (policy_to_str): New.
- (vector_insn_info::dump): Use vlmul_to_str and policy_to_str.
-
-2023-05-13 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109834
- * match.pd (popcount(bswap(x))->popcount(x)): Fix up unsigned type checking.
- (popcount(rotate(x,y))->popcount(x)): Likewise.
-
-2023-05-12 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Also
- reject ymm instructions for TARGET_PREFER_AVX128. Use generic
- gen_extend_insn to generate zero/sign extension instructions.
- Fix comments.
- (ix86_expand_vecop_qihi): Initialize interleave functions
- for MULT code only. Fix comments.
-
-2023-05-12 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/109797
- * config/i386/mmx.md (mulv2si3): Remove expander.
- (mulv2si3): Rename insn pattern from *mulv2si.
-
-2023-05-12 Tobias Burnus <tobias@codesourcery.com>
-
- PR libstdc++/109816
- * lto-cgraph.cc (output_symtab): Guard lto_output_toplevel_asms by
- '!lto_stream_offload_p'.
-
-2023-05-12 Kito Cheng <kito.cheng@sifive.com>
- Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109743
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vsetvl_at_end): New.
- (local_avl_compatible_p): New.
- (pass_vsetvl::local_eliminate_vsetvl_insn): Enhance local optimizations
- for LCM, rewrite as a backward algorithm.
- (pass_vsetvl::cleanup_insns): Use new local_eliminate_vsetvl_insn
- interface, handle a BB at once.
-
-2023-05-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/64731
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Also
- handle TARGET_MEM_REF destinations of stores from vector
- CTORs.
-
-2023-05-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109791
- * match.pd (minus (convert ADDR_EXPR@0) (convert (pointer_plus @1 @2))):
- New pattern.
- (minus (convert (pointer_plus @1 @2)) (convert ADDR_EXPR@0)):
- Likewise.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vsriq): New.
- * config/arm/arm-mve-builtins-base.def (vsriq): New.
- * config/arm/arm-mve-builtins-base.h (vsriq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vsriq.
- * config/arm/arm_mve.h (vsriq): Remove.
- (vsriq_m): Remove.
- (vsriq_n_u8): Remove.
- (vsriq_n_s8): Remove.
- (vsriq_n_u16): Remove.
- (vsriq_n_s16): Remove.
- (vsriq_n_u32): Remove.
- (vsriq_n_s32): Remove.
- (vsriq_m_n_s8): Remove.
- (vsriq_m_n_u8): Remove.
- (vsriq_m_n_s16): Remove.
- (vsriq_m_n_u16): Remove.
- (vsriq_m_n_s32): Remove.
- (vsriq_m_n_u32): Remove.
- (__arm_vsriq_n_u8): Remove.
- (__arm_vsriq_n_s8): Remove.
- (__arm_vsriq_n_u16): Remove.
- (__arm_vsriq_n_s16): Remove.
- (__arm_vsriq_n_u32): Remove.
- (__arm_vsriq_n_s32): Remove.
- (__arm_vsriq_m_n_s8): Remove.
- (__arm_vsriq_m_n_u8): Remove.
- (__arm_vsriq_m_n_s16): Remove.
- (__arm_vsriq_m_n_u16): Remove.
- (__arm_vsriq_m_n_s32): Remove.
- (__arm_vsriq_m_n_u32): Remove.
- (__arm_vsriq): Remove.
- (__arm_vsriq_m): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vsri.
- * config/arm/mve.md (mve_vsriq_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_n_<supf><mode>): .,. this.
- (mve_vsriq_m_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (ternary_rshift): New.
- * config/arm/arm-mve-builtins-shapes.h (ternary_rshift): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vsliq): New.
- * config/arm/arm-mve-builtins-base.def (vsliq): New.
- * config/arm/arm-mve-builtins-base.h (vsliq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vsliq.
- * config/arm/arm_mve.h (vsliq): Remove.
- (vsliq_m): Remove.
- (vsliq_n_u8): Remove.
- (vsliq_n_s8): Remove.
- (vsliq_n_u16): Remove.
- (vsliq_n_s16): Remove.
- (vsliq_n_u32): Remove.
- (vsliq_n_s32): Remove.
- (vsliq_m_n_s8): Remove.
- (vsliq_m_n_s32): Remove.
- (vsliq_m_n_s16): Remove.
- (vsliq_m_n_u8): Remove.
- (vsliq_m_n_u32): Remove.
- (vsliq_m_n_u16): Remove.
- (__arm_vsliq_n_u8): Remove.
- (__arm_vsliq_n_s8): Remove.
- (__arm_vsliq_n_u16): Remove.
- (__arm_vsliq_n_s16): Remove.
- (__arm_vsliq_n_u32): Remove.
- (__arm_vsliq_n_s32): Remove.
- (__arm_vsliq_m_n_s8): Remove.
- (__arm_vsliq_m_n_s32): Remove.
- (__arm_vsliq_m_n_s16): Remove.
- (__arm_vsliq_m_n_u8): Remove.
- (__arm_vsliq_m_n_u32): Remove.
- (__arm_vsliq_m_n_u16): Remove.
- (__arm_vsliq): Remove.
- (__arm_vsliq_m): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn>): Add vsli.
- * config/arm/mve.md (mve_vsliq_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vsliq_m_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (ternary_lshift): New.
- * config/arm/arm-mve-builtins-shapes.h (ternary_lshift): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vpselq): New.
- * config/arm/arm-mve-builtins-base.def (vpselq): New.
- * config/arm/arm-mve-builtins-base.h (vpselq): New.
- * config/arm/arm_mve.h (vpselq): Remove.
- (vpselq_u8): Remove.
- (vpselq_s8): Remove.
- (vpselq_u16): Remove.
- (vpselq_s16): Remove.
- (vpselq_u32): Remove.
- (vpselq_s32): Remove.
- (vpselq_u64): Remove.
- (vpselq_s64): Remove.
- (vpselq_f16): Remove.
- (vpselq_f32): Remove.
- (__arm_vpselq_u8): Remove.
- (__arm_vpselq_s8): Remove.
- (__arm_vpselq_u16): Remove.
- (__arm_vpselq_s16): Remove.
- (__arm_vpselq_u32): Remove.
- (__arm_vpselq_s32): Remove.
- (__arm_vpselq_u64): Remove.
- (__arm_vpselq_s64): Remove.
- (__arm_vpselq_f16): Remove.
- (__arm_vpselq_f32): Remove.
- (__arm_vpselq): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (vpsel): New.
- * config/arm/arm-mve-builtins-shapes.h (vpsel): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of
- gen_mve_vpselq.
- * config/arm/iterators.md (MVE_VPSELQ_F): New.
- (mve_insn): Add vpsel.
- * config/arm/mve.md (@mve_vpselq_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (@mve_vpselq_f<mode>): Rename into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vfmaq, vfmasq, vfmsq): New.
- * config/arm/arm-mve-builtins-base.def (vfmaq, vfmasq, vfmsq): New.
- * config/arm/arm-mve-builtins-base.h (vfmaq, vfmasq, vfmsq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vfmaq, vfmasq,
- vfmsq.
- * config/arm/arm_mve.h (vfmaq): Remove.
- (vfmasq): Remove.
- (vfmsq): Remove.
- (vfmaq_m): Remove.
- (vfmasq_m): Remove.
- (vfmsq_m): Remove.
- (vfmaq_f16): Remove.
- (vfmaq_n_f16): Remove.
- (vfmasq_n_f16): Remove.
- (vfmsq_f16): Remove.
- (vfmaq_f32): Remove.
- (vfmaq_n_f32): Remove.
- (vfmasq_n_f32): Remove.
- (vfmsq_f32): Remove.
- (vfmaq_m_f32): Remove.
- (vfmaq_m_f16): Remove.
- (vfmaq_m_n_f32): Remove.
- (vfmaq_m_n_f16): Remove.
- (vfmasq_m_n_f32): Remove.
- (vfmasq_m_n_f16): Remove.
- (vfmsq_m_f32): Remove.
- (vfmsq_m_f16): Remove.
- (__arm_vfmaq_f16): Remove.
- (__arm_vfmaq_n_f16): Remove.
- (__arm_vfmasq_n_f16): Remove.
- (__arm_vfmsq_f16): Remove.
- (__arm_vfmaq_f32): Remove.
- (__arm_vfmaq_n_f32): Remove.
- (__arm_vfmasq_n_f32): Remove.
- (__arm_vfmsq_f32): Remove.
- (__arm_vfmaq_m_f32): Remove.
- (__arm_vfmaq_m_f16): Remove.
- (__arm_vfmaq_m_n_f32): Remove.
- (__arm_vfmaq_m_n_f16): Remove.
- (__arm_vfmasq_m_n_f32): Remove.
- (__arm_vfmasq_m_n_f16): Remove.
- (__arm_vfmsq_m_f32): Remove.
- (__arm_vfmsq_m_f16): Remove.
- (__arm_vfmaq): Remove.
- (__arm_vfmasq): Remove.
- (__arm_vfmsq): Remove.
- (__arm_vfmaq_m): Remove.
- (__arm_vfmasq_m): Remove.
- (__arm_vfmsq_m): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_FP_M_BINARY): Add VFMAQ_M_F,
- VFMSQ_M_F.
- (MVE_FP_M_N_BINARY): Add VFMAQ_M_N_F, VFMASQ_M_N_F.
- (MVE_VFMxQ_F, MVE_VFMAxQ_N_F): New.
- (mve_insn): Add vfma, vfmas, vfms.
- * config/arm/mve.md (mve_vfmaq_f<mode>, mve_vfmsq_f<mode>): Merge
- into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
- (mve_vfmaq_n_f<mode>, mve_vfmasq_n_f<mode>): Merge into ...
- (@mve_<mve_insn>q_n_f<mode>): ... this.
- (mve_vfmaq_m_f<mode>, mve_vfmsq_m_f<mode>): Merge into
- @mve_<mve_insn>q_m_f<mode>.
- (mve_vfmaq_m_n_f<mode>, mve_vfmasq_m_n_f<mode>): Merge into
- @mve_<mve_insn>q_m_n_f<mode>.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (ternary_opt_n): New.
- * config/arm/arm-mve-builtins-shapes.h (ternary_opt_n): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc
- (FUNCTION_WITH_RTX_M_N_NO_F): New.
- (vmvnq): New.
- * config/arm/arm-mve-builtins-base.def (vmvnq): New.
- * config/arm/arm-mve-builtins-base.h (vmvnq): New.
- * config/arm/arm_mve.h (vmvnq): Remove.
- (vmvnq_m): Remove.
- (vmvnq_x): Remove.
- (vmvnq_s8): Remove.
- (vmvnq_s16): Remove.
- (vmvnq_s32): Remove.
- (vmvnq_n_s16): Remove.
- (vmvnq_n_s32): Remove.
- (vmvnq_u8): Remove.
- (vmvnq_u16): Remove.
- (vmvnq_u32): Remove.
- (vmvnq_n_u16): Remove.
- (vmvnq_n_u32): Remove.
- (vmvnq_m_u8): Remove.
- (vmvnq_m_s8): Remove.
- (vmvnq_m_u16): Remove.
- (vmvnq_m_s16): Remove.
- (vmvnq_m_u32): Remove.
- (vmvnq_m_s32): Remove.
- (vmvnq_m_n_s16): Remove.
- (vmvnq_m_n_u16): Remove.
- (vmvnq_m_n_s32): Remove.
- (vmvnq_m_n_u32): Remove.
- (vmvnq_x_s8): Remove.
- (vmvnq_x_s16): Remove.
- (vmvnq_x_s32): Remove.
- (vmvnq_x_u8): Remove.
- (vmvnq_x_u16): Remove.
- (vmvnq_x_u32): Remove.
- (vmvnq_x_n_s16): Remove.
- (vmvnq_x_n_s32): Remove.
- (vmvnq_x_n_u16): Remove.
- (vmvnq_x_n_u32): Remove.
- (__arm_vmvnq_s8): Remove.
- (__arm_vmvnq_s16): Remove.
- (__arm_vmvnq_s32): Remove.
- (__arm_vmvnq_n_s16): Remove.
- (__arm_vmvnq_n_s32): Remove.
- (__arm_vmvnq_u8): Remove.
- (__arm_vmvnq_u16): Remove.
- (__arm_vmvnq_u32): Remove.
- (__arm_vmvnq_n_u16): Remove.
- (__arm_vmvnq_n_u32): Remove.
- (__arm_vmvnq_m_u8): Remove.
- (__arm_vmvnq_m_s8): Remove.
- (__arm_vmvnq_m_u16): Remove.
- (__arm_vmvnq_m_s16): Remove.
- (__arm_vmvnq_m_u32): Remove.
- (__arm_vmvnq_m_s32): Remove.
- (__arm_vmvnq_m_n_s16): Remove.
- (__arm_vmvnq_m_n_u16): Remove.
- (__arm_vmvnq_m_n_s32): Remove.
- (__arm_vmvnq_m_n_u32): Remove.
- (__arm_vmvnq_x_s8): Remove.
- (__arm_vmvnq_x_s16): Remove.
- (__arm_vmvnq_x_s32): Remove.
- (__arm_vmvnq_x_u8): Remove.
- (__arm_vmvnq_x_u16): Remove.
- (__arm_vmvnq_x_u32): Remove.
- (__arm_vmvnq_x_n_s16): Remove.
- (__arm_vmvnq_x_n_s32): Remove.
- (__arm_vmvnq_x_n_u16): Remove.
- (__arm_vmvnq_x_n_u32): Remove.
- (__arm_vmvnq): Remove.
- (__arm_vmvnq_m): Remove.
- (__arm_vmvnq_x): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vmvn.
- * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vmvnq_m_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
- (mve_vmvnq_m_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (mvn): New.
- * config/arm/arm-mve-builtins-shapes.h (mvn): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vbrsrq): New.
- * config/arm/arm-mve-builtins-base.def (vbrsrq): New.
- * config/arm/arm-mve-builtins-base.h (vbrsrq): New.
- * config/arm/arm_mve.h (vbrsrq): Remove.
- (vbrsrq_m): Remove.
- (vbrsrq_x): Remove.
- (vbrsrq_n_f16): Remove.
- (vbrsrq_n_f32): Remove.
- (vbrsrq_n_u8): Remove.
- (vbrsrq_n_s8): Remove.
- (vbrsrq_n_u16): Remove.
- (vbrsrq_n_s16): Remove.
- (vbrsrq_n_u32): Remove.
- (vbrsrq_n_s32): Remove.
- (vbrsrq_m_n_s8): Remove.
- (vbrsrq_m_n_s32): Remove.
- (vbrsrq_m_n_s16): Remove.
- (vbrsrq_m_n_u8): Remove.
- (vbrsrq_m_n_u32): Remove.
- (vbrsrq_m_n_u16): Remove.
- (vbrsrq_m_n_f32): Remove.
- (vbrsrq_m_n_f16): Remove.
- (vbrsrq_x_n_s8): Remove.
- (vbrsrq_x_n_s16): Remove.
- (vbrsrq_x_n_s32): Remove.
- (vbrsrq_x_n_u8): Remove.
- (vbrsrq_x_n_u16): Remove.
- (vbrsrq_x_n_u32): Remove.
- (vbrsrq_x_n_f16): Remove.
- (vbrsrq_x_n_f32): Remove.
- (__arm_vbrsrq_n_u8): Remove.
- (__arm_vbrsrq_n_s8): Remove.
- (__arm_vbrsrq_n_u16): Remove.
- (__arm_vbrsrq_n_s16): Remove.
- (__arm_vbrsrq_n_u32): Remove.
- (__arm_vbrsrq_n_s32): Remove.
- (__arm_vbrsrq_m_n_s8): Remove.
- (__arm_vbrsrq_m_n_s32): Remove.
- (__arm_vbrsrq_m_n_s16): Remove.
- (__arm_vbrsrq_m_n_u8): Remove.
- (__arm_vbrsrq_m_n_u32): Remove.
- (__arm_vbrsrq_m_n_u16): Remove.
- (__arm_vbrsrq_x_n_s8): Remove.
- (__arm_vbrsrq_x_n_s16): Remove.
- (__arm_vbrsrq_x_n_s32): Remove.
- (__arm_vbrsrq_x_n_u8): Remove.
- (__arm_vbrsrq_x_n_u16): Remove.
- (__arm_vbrsrq_x_n_u32): Remove.
- (__arm_vbrsrq_n_f16): Remove.
- (__arm_vbrsrq_n_f32): Remove.
- (__arm_vbrsrq_m_n_f32): Remove.
- (__arm_vbrsrq_m_n_f16): Remove.
- (__arm_vbrsrq_x_n_f16): Remove.
- (__arm_vbrsrq_x_n_f32): Remove.
- (__arm_vbrsrq): Remove.
- (__arm_vbrsrq_m): Remove.
- (__arm_vbrsrq_x): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VBRSR_M_N_FP, MVE_VBRSR_N_FP): New.
- (mve_insn): Add vbrsr.
- * config/arm/mve.md (mve_vbrsrq_n_f<mode>): Rename into ...
- (@mve_<mve_insn>q_n_f<mode>): ... this.
- (mve_vbrsrq_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vbrsrq_m_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
- (mve_vbrsrq_m_n_f<mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_f<mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_imm32): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_imm32): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vqshluq): New.
- * config/arm/arm-mve-builtins-base.def (vqshluq): New.
- * config/arm/arm-mve-builtins-base.h (vqshluq): New.
- * config/arm/arm_mve.h (vqshluq): Remove.
- (vqshluq_m): Remove.
- (vqshluq_n_s8): Remove.
- (vqshluq_n_s16): Remove.
- (vqshluq_n_s32): Remove.
- (vqshluq_m_n_s8): Remove.
- (vqshluq_m_n_s16): Remove.
- (vqshluq_m_n_s32): Remove.
- (__arm_vqshluq_n_s8): Remove.
- (__arm_vqshluq_n_s16): Remove.
- (__arm_vqshluq_n_s32): Remove.
- (__arm_vqshluq_m_n_s8): Remove.
- (__arm_vqshluq_m_n_s16): Remove.
- (__arm_vqshluq_m_n_s32): Remove.
- (__arm_vqshluq): Remove.
- (__arm_vqshluq_m): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vqshlu.
- (supf): Add VQSHLUQ_M_N_S, VQSHLUQ_N_S.
- (VQSHLUQ_M_N, VQSHLUQ_N): New.
- * config/arm/mve.md (mve_vqshluq_n_s<mode>): Change name into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vqshluq_m_n_s<mode>): Change name into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc
- (binary_lshift_unsigned): New.
- * config/arm/arm-mve-builtins-shapes.h
- (binary_lshift_unsigned): New.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vrmlaldavhaq)
- (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
- * config/arm/arm-mve-builtins-base.def (vrmlaldavhaq)
- (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
- * config/arm/arm-mve-builtins-base.h (vrmlaldavhaq)
- (vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq): New.
- * config/arm/arm-mve-builtins-functions.h: Handle vrmlaldavhaq,
- vrmlaldavhaxq, vrmlsldavhaq, vrmlsldavhaxq.
- * config/arm/arm_mve.h (vrmlaldavhaq): Remove.
- (vrmlaldavhaxq): Remove.
- (vrmlsldavhaq): Remove.
- (vrmlsldavhaxq): Remove.
- (vrmlaldavhaq_p): Remove.
- (vrmlaldavhaxq_p): Remove.
- (vrmlsldavhaq_p): Remove.
- (vrmlsldavhaxq_p): Remove.
- (vrmlaldavhaq_s32): Remove.
- (vrmlaldavhaq_u32): Remove.
- (vrmlaldavhaxq_s32): Remove.
- (vrmlsldavhaq_s32): Remove.
- (vrmlsldavhaxq_s32): Remove.
- (vrmlaldavhaq_p_s32): Remove.
- (vrmlaldavhaq_p_u32): Remove.
- (vrmlaldavhaxq_p_s32): Remove.
- (vrmlsldavhaq_p_s32): Remove.
- (vrmlsldavhaxq_p_s32): Remove.
- (__arm_vrmlaldavhaq_s32): Remove.
- (__arm_vrmlaldavhaq_u32): Remove.
- (__arm_vrmlaldavhaxq_s32): Remove.
- (__arm_vrmlsldavhaq_s32): Remove.
- (__arm_vrmlsldavhaxq_s32): Remove.
- (__arm_vrmlaldavhaq_p_s32): Remove.
- (__arm_vrmlaldavhaq_p_u32): Remove.
- (__arm_vrmlaldavhaxq_p_s32): Remove.
- (__arm_vrmlsldavhaq_p_s32): Remove.
- (__arm_vrmlsldavhaxq_p_s32): Remove.
- (__arm_vrmlaldavhaq): Remove.
- (__arm_vrmlaldavhaxq): Remove.
- (__arm_vrmlsldavhaq): Remove.
- (__arm_vrmlsldavhaxq): Remove.
- (__arm_vrmlaldavhaq_p): Remove.
- (__arm_vrmlaldavhaxq_p): Remove.
- (__arm_vrmlsldavhaq_p): Remove.
- (__arm_vrmlsldavhaxq_p): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VRMLxLDAVHAxQ)
- (MVE_VRMLxLDAVHAxQ_P): New.
- (mve_insn): Add vrmlaldavha, vrmlaldavhax, vrmlsldavha,
- vrmlsldavhax.
- (supf): Add VRMLALDAVHAXQ_P_S, VRMLALDAVHAXQ_S, VRMLSLDAVHAQ_P_S,
- VRMLSLDAVHAQ_S, VRMLSLDAVHAXQ_P_S, VRMLSLDAVHAXQ_S,
- VRMLALDAVHAQ_P_S.
- * config/arm/mve.md (mve_vrmlaldavhaq_<supf>v4si)
- (mve_vrmlaldavhaxq_sv4si, mve_vrmlsldavhaxq_sv4si)
- (mve_vrmlsldavhaq_sv4si): Merge into ...
- (@mve_<mve_insn>q_<supf>v4si): ... this.
- (mve_vrmlaldavhaq_p_sv4si, mve_vrmlaldavhaq_p_uv4si)
- (mve_vrmlaldavhaxq_p_sv4si, mve_vrmlsldavhaq_p_sv4si)
- (mve_vrmlsldavhaxq_p_sv4si): Merge into ...
- (@mve_<mve_insn>q_p_<supf>v4si): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vqdmullbq, vqdmulltq): New.
- * config/arm/arm-mve-builtins-base.def (vqdmullbq, vqdmulltq):
- New.
- * config/arm/arm-mve-builtins-base.h (vqdmullbq, vqdmulltq): New.
- * config/arm/arm_mve.h (vqdmulltq): Remove.
- (vqdmullbq): Remove.
- (vqdmullbq_m): Remove.
- (vqdmulltq_m): Remove.
- (vqdmulltq_s16): Remove.
- (vqdmulltq_n_s16): Remove.
- (vqdmullbq_s16): Remove.
- (vqdmullbq_n_s16): Remove.
- (vqdmulltq_s32): Remove.
- (vqdmulltq_n_s32): Remove.
- (vqdmullbq_s32): Remove.
- (vqdmullbq_n_s32): Remove.
- (vqdmullbq_m_n_s32): Remove.
- (vqdmullbq_m_n_s16): Remove.
- (vqdmullbq_m_s32): Remove.
- (vqdmullbq_m_s16): Remove.
- (vqdmulltq_m_n_s32): Remove.
- (vqdmulltq_m_n_s16): Remove.
- (vqdmulltq_m_s32): Remove.
- (vqdmulltq_m_s16): Remove.
- (__arm_vqdmulltq_s16): Remove.
- (__arm_vqdmulltq_n_s16): Remove.
- (__arm_vqdmullbq_s16): Remove.
- (__arm_vqdmullbq_n_s16): Remove.
- (__arm_vqdmulltq_s32): Remove.
- (__arm_vqdmulltq_n_s32): Remove.
- (__arm_vqdmullbq_s32): Remove.
- (__arm_vqdmullbq_n_s32): Remove.
- (__arm_vqdmullbq_m_n_s32): Remove.
- (__arm_vqdmullbq_m_n_s16): Remove.
- (__arm_vqdmullbq_m_s32): Remove.
- (__arm_vqdmullbq_m_s16): Remove.
- (__arm_vqdmulltq_m_n_s32): Remove.
- (__arm_vqdmulltq_m_n_s16): Remove.
- (__arm_vqdmulltq_m_s32): Remove.
- (__arm_vqdmulltq_m_s16): Remove.
- (__arm_vqdmulltq): Remove.
- (__arm_vqdmullbq): Remove.
- (__arm_vqdmullbq_m): Remove.
- (__arm_vqdmulltq_m): Remove.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VQDMULLxQ, MVE_VQDMULLxQ_M)
- (MVE_VQDMULLxQ_M_N, MVE_VQDMULLxQ_N): New.
- (mve_insn): Add vqdmullb, vqdmullt.
- (supf): Add VQDMULLBQ_S, VQDMULLBQ_M_S, VQDMULLBQ_M_N_S,
- VQDMULLBQ_N_S, VQDMULLTQ_S, VQDMULLTQ_M_S, VQDMULLTQ_M_N_S,
- VQDMULLTQ_N_S.
- * config/arm/mve.md (mve_vqdmullbq_n_s<mode>)
- (mve_vqdmulltq_n_s<mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vqdmullbq_s<mode>, mve_vqdmulltq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vqdmullbq_m_n_s<mode>, mve_vqdmulltq_m_n_s<mode>): Merge into
- ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
- (mve_vqdmullbq_m_s<mode>, mve_vqdmulltq_m_s<mode>): Merge into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
-
-2023-05-12 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_widen_opt_n): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_widen_opt_n): New.
-
-2023-05-12 Kito Cheng <kito.cheng@sifive.com>
-
- * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi):
- Drop unused parameter.
- (riscv_select_multilib): Ditto.
- (riscv_compute_multilib): Update call site of
- riscv_select_multilib_by_abi and riscv_select_multilib_by_abi.
-
-2023-05-12 Juzhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (vec_init<mode><vel>): New pattern.
- * config/riscv/riscv-protos.h (expand_vec_init): New function.
- * config/riscv/riscv-v.cc (class rvv_builder): New class.
- (rvv_builder::can_duplicate_repeating_sequence_p): New function.
- (rvv_builder::get_merged_repeating_sequence): Ditto.
- (expand_vector_init_insert_elems): Ditto.
- (expand_vec_init): Ditto.
- * config/riscv/vector-iterators.md: New attribute.
-
-2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
-
- * config/rs6000/rs6000-builtins.def
- (__builtin_vsx_scalar_insert_exp): Replace bif-pattern from xsiexpdp
- to xsiexpdp_di.
- (__builtin_vsx_scalar_insert_exp_dp): Replace bif-pattern from
- xsiexpdpf to xsiexpdpf_di.
- * config/rs6000/vsx.md (xsiexpdp): Rename to...
- (xsiexpdp_<mode>): ..., set the mode of second operand to GPR and
- replace TARGET_64BIT with TARGET_POWERPC64.
- (xsiexpdpf): Rename to...
- (xsiexpdpf_<mode>): ..., set the mode of second operand to GPR and
- replace TARGET_64BIT with TARGET_POWERPC64.
-
-2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
-
- * config/rs6000/rs6000-builtins.def
- (__builtin_vsx_scalar_extract_sig): Set return type to const signed
- long long.
- * config/rs6000/vsx.md (xsxsigdp): Replace TARGET_64BIT with
- TARGET_POWERPC64.
-
-2023-05-12 Haochen Gui <guihaoc@gcc.gnu.org>
-
- * config/rs6000/rs6000-builtins.def
- (__builtin_vsx_scalar_extract_exp): Set return type to const signed
- int and set its bif-pattern to xsxexpdp_si, move it from power9-64
- to power9 catalog.
- * config/rs6000/vsx.md (xsxexpdp): Rename to ...
- (xsxexpdp_<mode>): ..., set mode of operand 0 to GPR and remove
- TARGET_64BIT check.
- * doc/extend.texi (scalar_extract_exp): Remove 64-bit environment
- requirement when it has a 64-bit argument.
-
-2023-05-12 Pan Li <pan2.li@intel.com>
- Richard Sandiford <richard.sandiford@arm.com>
- Richard Biener <rguenther@suse.de>
- Jakub Jelinek <jakub@redhat.com>
-
- * mux-utils.h: Add overload operator == and != for pointer_mux.
- * var-tracking.cc: Included mux-utils.h for pointer_tmux.
- (decl_or_value): Changed from void * to pointer_mux<tree_node, rtx_def>.
- (dv_is_decl_p): Reconciled to the new type, aka pointer_mux.
- (dv_as_decl): Ditto.
- (dv_as_opaque): Removed due to unnecessary.
- (struct variable_hasher): Take decl_or_value as compare_type.
- (variable_hasher::equal): Diito.
- (dv_from_decl): Reconciled to the new type, aka pointer_mux.
- (dv_from_value): Ditto.
- (attrs_list_member): Ditto.
- (vars_copy): Ditto.
- (var_reg_decl_set): Ditto.
- (var_reg_delete_and_set): Ditto.
- (find_loc_in_1pdv): Ditto.
- (canonicalize_values_star): Ditto.
- (variable_post_merge_new_vals): Ditto.
- (dump_onepart_variable_differences): Ditto.
- (variable_different_p): Ditto.
- (set_slot_part): Ditto.
- (clobber_slot_part): Ditto.
- (clobber_variable_part): Ditto.
-
-2023-05-11 mtsamis <manolis.tsamis@vrull.eu>
-
- * match.pd: simplify vector shift + bit_and + multiply.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmlaq, vmlasq, vqdmlahq)
- (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
- * config/arm/arm-mve-builtins-base.def (vmlaq, vmlasq, vqdmlahq)
- (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
- * config/arm/arm-mve-builtins-base.h (vmlaq, vmlasq, vqdmlahq)
- (vqdmlashq, vqrdmlahq, vqrdmlashq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vmlaq, vmlasq,
- vqdmlahq, vqdmlashq, vqrdmlahq, vqrdmlashq.
- * config/arm/arm_mve.h (vqrdmlashq): Remove.
- (vqrdmlahq): Remove.
- (vqdmlashq): Remove.
- (vqdmlahq): Remove.
- (vmlasq): Remove.
- (vmlaq): Remove.
- (vmlaq_m): Remove.
- (vmlasq_m): Remove.
- (vqdmlashq_m): Remove.
- (vqdmlahq_m): Remove.
- (vqrdmlahq_m): Remove.
- (vqrdmlashq_m): Remove.
- (vmlasq_n_u8): Remove.
- (vmlaq_n_u8): Remove.
- (vqrdmlashq_n_s8): Remove.
- (vqrdmlahq_n_s8): Remove.
- (vqdmlahq_n_s8): Remove.
- (vqdmlashq_n_s8): Remove.
- (vmlasq_n_s8): Remove.
- (vmlaq_n_s8): Remove.
- (vmlasq_n_u16): Remove.
- (vmlaq_n_u16): Remove.
- (vqrdmlashq_n_s16): Remove.
- (vqrdmlahq_n_s16): Remove.
- (vqdmlashq_n_s16): Remove.
- (vqdmlahq_n_s16): Remove.
- (vmlasq_n_s16): Remove.
- (vmlaq_n_s16): Remove.
- (vmlasq_n_u32): Remove.
- (vmlaq_n_u32): Remove.
- (vqrdmlashq_n_s32): Remove.
- (vqrdmlahq_n_s32): Remove.
- (vqdmlashq_n_s32): Remove.
- (vqdmlahq_n_s32): Remove.
- (vmlasq_n_s32): Remove.
- (vmlaq_n_s32): Remove.
- (vmlaq_m_n_s8): Remove.
- (vmlaq_m_n_s32): Remove.
- (vmlaq_m_n_s16): Remove.
- (vmlaq_m_n_u8): Remove.
- (vmlaq_m_n_u32): Remove.
- (vmlaq_m_n_u16): Remove.
- (vmlasq_m_n_s8): Remove.
- (vmlasq_m_n_s32): Remove.
- (vmlasq_m_n_s16): Remove.
- (vmlasq_m_n_u8): Remove.
- (vmlasq_m_n_u32): Remove.
- (vmlasq_m_n_u16): Remove.
- (vqdmlashq_m_n_s8): Remove.
- (vqdmlashq_m_n_s32): Remove.
- (vqdmlashq_m_n_s16): Remove.
- (vqdmlahq_m_n_s8): Remove.
- (vqdmlahq_m_n_s32): Remove.
- (vqdmlahq_m_n_s16): Remove.
- (vqrdmlahq_m_n_s8): Remove.
- (vqrdmlahq_m_n_s32): Remove.
- (vqrdmlahq_m_n_s16): Remove.
- (vqrdmlashq_m_n_s8): Remove.
- (vqrdmlashq_m_n_s32): Remove.
- (vqrdmlashq_m_n_s16): Remove.
- (__arm_vmlasq_n_u8): Remove.
- (__arm_vmlaq_n_u8): Remove.
- (__arm_vqrdmlashq_n_s8): Remove.
- (__arm_vqdmlashq_n_s8): Remove.
- (__arm_vqrdmlahq_n_s8): Remove.
- (__arm_vqdmlahq_n_s8): Remove.
- (__arm_vmlasq_n_s8): Remove.
- (__arm_vmlaq_n_s8): Remove.
- (__arm_vmlasq_n_u16): Remove.
- (__arm_vmlaq_n_u16): Remove.
- (__arm_vqrdmlashq_n_s16): Remove.
- (__arm_vqdmlashq_n_s16): Remove.
- (__arm_vqrdmlahq_n_s16): Remove.
- (__arm_vqdmlahq_n_s16): Remove.
- (__arm_vmlasq_n_s16): Remove.
- (__arm_vmlaq_n_s16): Remove.
- (__arm_vmlasq_n_u32): Remove.
- (__arm_vmlaq_n_u32): Remove.
- (__arm_vqrdmlashq_n_s32): Remove.
- (__arm_vqdmlashq_n_s32): Remove.
- (__arm_vqrdmlahq_n_s32): Remove.
- (__arm_vqdmlahq_n_s32): Remove.
- (__arm_vmlasq_n_s32): Remove.
- (__arm_vmlaq_n_s32): Remove.
- (__arm_vmlaq_m_n_s8): Remove.
- (__arm_vmlaq_m_n_s32): Remove.
- (__arm_vmlaq_m_n_s16): Remove.
- (__arm_vmlaq_m_n_u8): Remove.
- (__arm_vmlaq_m_n_u32): Remove.
- (__arm_vmlaq_m_n_u16): Remove.
- (__arm_vmlasq_m_n_s8): Remove.
- (__arm_vmlasq_m_n_s32): Remove.
- (__arm_vmlasq_m_n_s16): Remove.
- (__arm_vmlasq_m_n_u8): Remove.
- (__arm_vmlasq_m_n_u32): Remove.
- (__arm_vmlasq_m_n_u16): Remove.
- (__arm_vqdmlahq_m_n_s8): Remove.
- (__arm_vqdmlahq_m_n_s32): Remove.
- (__arm_vqdmlahq_m_n_s16): Remove.
- (__arm_vqrdmlahq_m_n_s8): Remove.
- (__arm_vqrdmlahq_m_n_s32): Remove.
- (__arm_vqrdmlahq_m_n_s16): Remove.
- (__arm_vqrdmlashq_m_n_s8): Remove.
- (__arm_vqrdmlashq_m_n_s32): Remove.
- (__arm_vqrdmlashq_m_n_s16): Remove.
- (__arm_vqdmlashq_m_n_s8): Remove.
- (__arm_vqdmlashq_m_n_s16): Remove.
- (__arm_vqdmlashq_m_n_s32): Remove.
- (__arm_vmlasq): Remove.
- (__arm_vmlaq): Remove.
- (__arm_vqrdmlashq): Remove.
- (__arm_vqdmlashq): Remove.
- (__arm_vqrdmlahq): Remove.
- (__arm_vqdmlahq): Remove.
- (__arm_vmlaq_m): Remove.
- (__arm_vmlasq_m): Remove.
- (__arm_vqdmlahq_m): Remove.
- (__arm_vqrdmlahq_m): Remove.
- (__arm_vqrdmlashq_m): Remove.
- (__arm_vqdmlashq_m): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMLxQ_N): New.
- (mve_insn): Add vmla, vmlas, vqdmlah, vqdmlash, vqrdmlah,
- vqrdmlash.
- (supf): Add VQDMLAHQ_N_S, VQDMLASHQ_N_S, VQRDMLAHQ_N_S,
- VQRDMLASHQ_N_S.
- * config/arm/mve.md (mve_vmlaq_n_<supf><mode>)
- (mve_vmlasq_n_<supf><mode>, mve_vqdmlahq_n_<supf><mode>)
- (mve_vqdmlashq_n_<supf><mode>, mve_vqrdmlahq_n_<supf><mode>)
- (mve_vqrdmlashq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (ternary_n): New.
- * config/arm/arm-mve-builtins-shapes.h (ternary_n): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vqdmladhq, vqdmladhxq)
- (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
- (vqrdmlsdhxq): New.
- * config/arm/arm-mve-builtins-base.def (vqdmladhq, vqdmladhxq)
- (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
- (vqrdmlsdhxq): New.
- * config/arm/arm-mve-builtins-base.h (vqdmladhq, vqdmladhxq)
- (vqdmlsdhq, vqdmlsdhxq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq)
- (vqrdmlsdhxq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vqrdmladhq,
- vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq vqdmladhq, vqdmladhxq,
- vqdmlsdhq, vqdmlsdhxq.
- * config/arm/arm_mve.h (vqrdmlsdhxq): Remove.
- (vqrdmlsdhq): Remove.
- (vqrdmladhxq): Remove.
- (vqrdmladhq): Remove.
- (vqdmlsdhxq): Remove.
- (vqdmlsdhq): Remove.
- (vqdmladhxq): Remove.
- (vqdmladhq): Remove.
- (vqdmladhq_m): Remove.
- (vqdmladhxq_m): Remove.
- (vqdmlsdhq_m): Remove.
- (vqdmlsdhxq_m): Remove.
- (vqrdmladhq_m): Remove.
- (vqrdmladhxq_m): Remove.
- (vqrdmlsdhq_m): Remove.
- (vqrdmlsdhxq_m): Remove.
- (vqrdmlsdhxq_s8): Remove.
- (vqrdmlsdhq_s8): Remove.
- (vqrdmladhxq_s8): Remove.
- (vqrdmladhq_s8): Remove.
- (vqdmlsdhxq_s8): Remove.
- (vqdmlsdhq_s8): Remove.
- (vqdmladhxq_s8): Remove.
- (vqdmladhq_s8): Remove.
- (vqrdmlsdhxq_s16): Remove.
- (vqrdmlsdhq_s16): Remove.
- (vqrdmladhxq_s16): Remove.
- (vqrdmladhq_s16): Remove.
- (vqdmlsdhxq_s16): Remove.
- (vqdmlsdhq_s16): Remove.
- (vqdmladhxq_s16): Remove.
- (vqdmladhq_s16): Remove.
- (vqrdmlsdhxq_s32): Remove.
- (vqrdmlsdhq_s32): Remove.
- (vqrdmladhxq_s32): Remove.
- (vqrdmladhq_s32): Remove.
- (vqdmlsdhxq_s32): Remove.
- (vqdmlsdhq_s32): Remove.
- (vqdmladhxq_s32): Remove.
- (vqdmladhq_s32): Remove.
- (vqdmladhq_m_s8): Remove.
- (vqdmladhq_m_s32): Remove.
- (vqdmladhq_m_s16): Remove.
- (vqdmladhxq_m_s8): Remove.
- (vqdmladhxq_m_s32): Remove.
- (vqdmladhxq_m_s16): Remove.
- (vqdmlsdhq_m_s8): Remove.
- (vqdmlsdhq_m_s32): Remove.
- (vqdmlsdhq_m_s16): Remove.
- (vqdmlsdhxq_m_s8): Remove.
- (vqdmlsdhxq_m_s32): Remove.
- (vqdmlsdhxq_m_s16): Remove.
- (vqrdmladhq_m_s8): Remove.
- (vqrdmladhq_m_s32): Remove.
- (vqrdmladhq_m_s16): Remove.
- (vqrdmladhxq_m_s8): Remove.
- (vqrdmladhxq_m_s32): Remove.
- (vqrdmladhxq_m_s16): Remove.
- (vqrdmlsdhq_m_s8): Remove.
- (vqrdmlsdhq_m_s32): Remove.
- (vqrdmlsdhq_m_s16): Remove.
- (vqrdmlsdhxq_m_s8): Remove.
- (vqrdmlsdhxq_m_s32): Remove.
- (vqrdmlsdhxq_m_s16): Remove.
- (__arm_vqrdmlsdhxq_s8): Remove.
- (__arm_vqrdmlsdhq_s8): Remove.
- (__arm_vqrdmladhxq_s8): Remove.
- (__arm_vqrdmladhq_s8): Remove.
- (__arm_vqdmlsdhxq_s8): Remove.
- (__arm_vqdmlsdhq_s8): Remove.
- (__arm_vqdmladhxq_s8): Remove.
- (__arm_vqdmladhq_s8): Remove.
- (__arm_vqrdmlsdhxq_s16): Remove.
- (__arm_vqrdmlsdhq_s16): Remove.
- (__arm_vqrdmladhxq_s16): Remove.
- (__arm_vqrdmladhq_s16): Remove.
- (__arm_vqdmlsdhxq_s16): Remove.
- (__arm_vqdmlsdhq_s16): Remove.
- (__arm_vqdmladhxq_s16): Remove.
- (__arm_vqdmladhq_s16): Remove.
- (__arm_vqrdmlsdhxq_s32): Remove.
- (__arm_vqrdmlsdhq_s32): Remove.
- (__arm_vqrdmladhxq_s32): Remove.
- (__arm_vqrdmladhq_s32): Remove.
- (__arm_vqdmlsdhxq_s32): Remove.
- (__arm_vqdmlsdhq_s32): Remove.
- (__arm_vqdmladhxq_s32): Remove.
- (__arm_vqdmladhq_s32): Remove.
- (__arm_vqdmladhq_m_s8): Remove.
- (__arm_vqdmladhq_m_s32): Remove.
- (__arm_vqdmladhq_m_s16): Remove.
- (__arm_vqdmladhxq_m_s8): Remove.
- (__arm_vqdmladhxq_m_s32): Remove.
- (__arm_vqdmladhxq_m_s16): Remove.
- (__arm_vqdmlsdhq_m_s8): Remove.
- (__arm_vqdmlsdhq_m_s32): Remove.
- (__arm_vqdmlsdhq_m_s16): Remove.
- (__arm_vqdmlsdhxq_m_s8): Remove.
- (__arm_vqdmlsdhxq_m_s32): Remove.
- (__arm_vqdmlsdhxq_m_s16): Remove.
- (__arm_vqrdmladhq_m_s8): Remove.
- (__arm_vqrdmladhq_m_s32): Remove.
- (__arm_vqrdmladhq_m_s16): Remove.
- (__arm_vqrdmladhxq_m_s8): Remove.
- (__arm_vqrdmladhxq_m_s32): Remove.
- (__arm_vqrdmladhxq_m_s16): Remove.
- (__arm_vqrdmlsdhq_m_s8): Remove.
- (__arm_vqrdmlsdhq_m_s32): Remove.
- (__arm_vqrdmlsdhq_m_s16): Remove.
- (__arm_vqrdmlsdhxq_m_s8): Remove.
- (__arm_vqrdmlsdhxq_m_s32): Remove.
- (__arm_vqrdmlsdhxq_m_s16): Remove.
- (__arm_vqrdmlsdhxq): Remove.
- (__arm_vqrdmlsdhq): Remove.
- (__arm_vqrdmladhxq): Remove.
- (__arm_vqrdmladhq): Remove.
- (__arm_vqdmlsdhxq): Remove.
- (__arm_vqdmlsdhq): Remove.
- (__arm_vqdmladhxq): Remove.
- (__arm_vqdmladhq): Remove.
- (__arm_vqdmladhq_m): Remove.
- (__arm_vqdmladhxq_m): Remove.
- (__arm_vqdmlsdhq_m): Remove.
- (__arm_vqdmlsdhxq_m): Remove.
- (__arm_vqrdmladhq_m): Remove.
- (__arm_vqrdmladhxq_m): Remove.
- (__arm_vqrdmlsdhq_m): Remove.
- (__arm_vqrdmlsdhxq_m): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VQxDMLxDHxQ_S): New.
- (mve_insn): Add vqdmladh, vqdmladhx, vqdmlsdh, vqdmlsdhx,
- vqrdmladh, vqrdmladhx, vqrdmlsdh, vqrdmlsdhx.
- (supf): Add VQDMLADHQ_S, VQDMLADHXQ_S, VQDMLSDHQ_S, VQDMLSDHXQ_S,
- VQRDMLADHQ_S,VQRDMLADHXQ_S, VQRDMLSDHQ_S, VQRDMLSDHXQ_S.
- * config/arm/mve.md (mve_vqrdmladhq_s<mode>)
- (mve_vqrdmladhxq_s<mode>, mve_vqrdmlsdhq_s<mode>)
- (mve_vqrdmlsdhxq_s<mode>, mve_vqdmlsdhxq_s<mode>)
- (mve_vqdmlsdhq_s<mode>, mve_vqdmladhxq_s<mode>)
- (mve_vqdmladhq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (ternary): New.
- * config/arm/arm-mve-builtins-shapes.h (ternary): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmlaldavaq, vmlaldavaxq)
- (vmlsldavaq, vmlsldavaxq): New.
- * config/arm/arm-mve-builtins-base.def (vmlaldavaq, vmlaldavaxq)
- (vmlsldavaq, vmlsldavaxq): New.
- * config/arm/arm-mve-builtins-base.h (vmlaldavaq, vmlaldavaxq)
- (vmlsldavaq, vmlsldavaxq): New.
- * config/arm/arm_mve.h (vmlaldavaq): Remove.
- (vmlaldavaxq): Remove.
- (vmlsldavaq): Remove.
- (vmlsldavaxq): Remove.
- (vmlaldavaq_p): Remove.
- (vmlaldavaxq_p): Remove.
- (vmlsldavaq_p): Remove.
- (vmlsldavaxq_p): Remove.
- (vmlaldavaq_s16): Remove.
- (vmlaldavaxq_s16): Remove.
- (vmlsldavaq_s16): Remove.
- (vmlsldavaxq_s16): Remove.
- (vmlaldavaq_u16): Remove.
- (vmlaldavaq_s32): Remove.
- (vmlaldavaxq_s32): Remove.
- (vmlsldavaq_s32): Remove.
- (vmlsldavaxq_s32): Remove.
- (vmlaldavaq_u32): Remove.
- (vmlaldavaq_p_s32): Remove.
- (vmlaldavaq_p_s16): Remove.
- (vmlaldavaq_p_u32): Remove.
- (vmlaldavaq_p_u16): Remove.
- (vmlaldavaxq_p_s32): Remove.
- (vmlaldavaxq_p_s16): Remove.
- (vmlsldavaq_p_s32): Remove.
- (vmlsldavaq_p_s16): Remove.
- (vmlsldavaxq_p_s32): Remove.
- (vmlsldavaxq_p_s16): Remove.
- (__arm_vmlaldavaq_s16): Remove.
- (__arm_vmlaldavaxq_s16): Remove.
- (__arm_vmlsldavaq_s16): Remove.
- (__arm_vmlsldavaxq_s16): Remove.
- (__arm_vmlaldavaq_u16): Remove.
- (__arm_vmlaldavaq_s32): Remove.
- (__arm_vmlaldavaxq_s32): Remove.
- (__arm_vmlsldavaq_s32): Remove.
- (__arm_vmlsldavaxq_s32): Remove.
- (__arm_vmlaldavaq_u32): Remove.
- (__arm_vmlaldavaq_p_s32): Remove.
- (__arm_vmlaldavaq_p_s16): Remove.
- (__arm_vmlaldavaq_p_u32): Remove.
- (__arm_vmlaldavaq_p_u16): Remove.
- (__arm_vmlaldavaxq_p_s32): Remove.
- (__arm_vmlaldavaxq_p_s16): Remove.
- (__arm_vmlsldavaq_p_s32): Remove.
- (__arm_vmlsldavaq_p_s16): Remove.
- (__arm_vmlsldavaxq_p_s32): Remove.
- (__arm_vmlsldavaxq_p_s16): Remove.
- (__arm_vmlaldavaq): Remove.
- (__arm_vmlaldavaxq): Remove.
- (__arm_vmlsldavaq): Remove.
- (__arm_vmlsldavaxq): Remove.
- (__arm_vmlaldavaq_p): Remove.
- (__arm_vmlaldavaxq_p): Remove.
- (__arm_vmlsldavaq_p): Remove.
- (__arm_vmlsldavaxq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMLxLDAVAxQ, MVE_VMLxLDAVAxQ_P):
- New.
- (mve_insn): Add vmlaldava, vmlaldavax, vmlsldava, vmlsldavax.
- (supf): Add VMLALDAVAXQ_P_S, VMLALDAVAXQ_S, VMLSLDAVAQ_P_S,
- VMLSLDAVAQ_S, VMLSLDAVAXQ_P_S, VMLSLDAVAXQ_S.
- * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
- (mve_vmlsldavaq_s<mode>, mve_vmlsldavaxq_s<mode>)
- (mve_vmlaldavaxq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmlaldavaq_p_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>)
- (mve_vmlsldavaq_p_s<mode>, mve_vmlsldavaxq_p_s<mode>): Merge into
- ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int64): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_acca_int64): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vrmlaldavhq, vrmlaldavhxq)
- (vrmlsldavhq, vrmlsldavhxq): New.
- * config/arm/arm-mve-builtins-base.def (vrmlaldavhq, vrmlaldavhxq)
- (vrmlsldavhq, vrmlsldavhxq): New.
- * config/arm/arm-mve-builtins-base.h (vrmlaldavhq, vrmlaldavhxq)
- (vrmlsldavhq, vrmlsldavhxq): New.
- * config/arm/arm-mve-builtins-functions.h
- (unspec_mve_function_exact_insn_pred_p): Handle vrmlaldavhq,
- vrmlaldavhxq, vrmlsldavhq, vrmlsldavhxq.
- * config/arm/arm_mve.h (vrmlaldavhq): Remove.
- (vrmlsldavhxq): Remove.
- (vrmlsldavhq): Remove.
- (vrmlaldavhxq): Remove.
- (vrmlaldavhq_p): Remove.
- (vrmlaldavhxq_p): Remove.
- (vrmlsldavhq_p): Remove.
- (vrmlsldavhxq_p): Remove.
- (vrmlaldavhq_u32): Remove.
- (vrmlsldavhxq_s32): Remove.
- (vrmlsldavhq_s32): Remove.
- (vrmlaldavhxq_s32): Remove.
- (vrmlaldavhq_s32): Remove.
- (vrmlaldavhq_p_s32): Remove.
- (vrmlaldavhxq_p_s32): Remove.
- (vrmlsldavhq_p_s32): Remove.
- (vrmlsldavhxq_p_s32): Remove.
- (vrmlaldavhq_p_u32): Remove.
- (__arm_vrmlaldavhq_u32): Remove.
- (__arm_vrmlsldavhxq_s32): Remove.
- (__arm_vrmlsldavhq_s32): Remove.
- (__arm_vrmlaldavhxq_s32): Remove.
- (__arm_vrmlaldavhq_s32): Remove.
- (__arm_vrmlaldavhq_p_s32): Remove.
- (__arm_vrmlaldavhxq_p_s32): Remove.
- (__arm_vrmlsldavhq_p_s32): Remove.
- (__arm_vrmlsldavhxq_p_s32): Remove.
- (__arm_vrmlaldavhq_p_u32): Remove.
- (__arm_vrmlaldavhq): Remove.
- (__arm_vrmlsldavhxq): Remove.
- (__arm_vrmlsldavhq): Remove.
- (__arm_vrmlaldavhxq): Remove.
- (__arm_vrmlaldavhq_p): Remove.
- (__arm_vrmlaldavhxq_p): Remove.
- (__arm_vrmlsldavhq_p): Remove.
- (__arm_vrmlsldavhxq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VRMLxLDAVxQ, MVE_VRMLxLDAVHxQ_P):
- New.
- (mve_insn): Add vrmlaldavh, vrmlaldavhx, vrmlsldavh, vrmlsldavhx.
- (supf): Add VRMLALDAVHXQ_P_S, VRMLALDAVHXQ_S, VRMLSLDAVHQ_P_S,
- VRMLSLDAVHQ_S, VRMLSLDAVHXQ_P_S, VRMLSLDAVHXQ_S.
- * config/arm/mve.md (mve_vrmlaldavhxq_sv4si)
- (mve_vrmlsldavhq_sv4si, mve_vrmlsldavhxq_sv4si)
- (mve_vrmlaldavhq_<supf>v4si): Merge into ...
- (@mve_<mve_insn>q_<supf>v4si): ... this.
- (mve_vrmlaldavhxq_p_sv4si, mve_vrmlsldavhq_p_sv4si)
- (mve_vrmlsldavhxq_p_sv4si, mve_vrmlaldavhq_p_<supf>v4si): Merge
- into ...
- (@mve_<mve_insn>q_p_<supf>v4si): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmlaldavq, vmlaldavxq)
- (vmlsldavq, vmlsldavxq): New.
- * config/arm/arm-mve-builtins-base.def (vmlaldavq, vmlaldavxq)
- (vmlsldavq, vmlsldavxq): New.
- * config/arm/arm-mve-builtins-base.h (vmlaldavq, vmlaldavxq)
- (vmlsldavq, vmlsldavxq): New.
- * config/arm/arm_mve.h (vmlaldavq): Remove.
- (vmlsldavxq): Remove.
- (vmlsldavq): Remove.
- (vmlaldavxq): Remove.
- (vmlaldavq_p): Remove.
- (vmlaldavxq_p): Remove.
- (vmlsldavq_p): Remove.
- (vmlsldavxq_p): Remove.
- (vmlaldavq_u16): Remove.
- (vmlsldavxq_s16): Remove.
- (vmlsldavq_s16): Remove.
- (vmlaldavxq_s16): Remove.
- (vmlaldavq_s16): Remove.
- (vmlaldavq_u32): Remove.
- (vmlsldavxq_s32): Remove.
- (vmlsldavq_s32): Remove.
- (vmlaldavxq_s32): Remove.
- (vmlaldavq_s32): Remove.
- (vmlaldavq_p_s16): Remove.
- (vmlaldavxq_p_s16): Remove.
- (vmlsldavq_p_s16): Remove.
- (vmlsldavxq_p_s16): Remove.
- (vmlaldavq_p_u16): Remove.
- (vmlaldavq_p_s32): Remove.
- (vmlaldavxq_p_s32): Remove.
- (vmlsldavq_p_s32): Remove.
- (vmlsldavxq_p_s32): Remove.
- (vmlaldavq_p_u32): Remove.
- (__arm_vmlaldavq_u16): Remove.
- (__arm_vmlsldavxq_s16): Remove.
- (__arm_vmlsldavq_s16): Remove.
- (__arm_vmlaldavxq_s16): Remove.
- (__arm_vmlaldavq_s16): Remove.
- (__arm_vmlaldavq_u32): Remove.
- (__arm_vmlsldavxq_s32): Remove.
- (__arm_vmlsldavq_s32): Remove.
- (__arm_vmlaldavxq_s32): Remove.
- (__arm_vmlaldavq_s32): Remove.
- (__arm_vmlaldavq_p_s16): Remove.
- (__arm_vmlaldavxq_p_s16): Remove.
- (__arm_vmlsldavq_p_s16): Remove.
- (__arm_vmlsldavxq_p_s16): Remove.
- (__arm_vmlaldavq_p_u16): Remove.
- (__arm_vmlaldavq_p_s32): Remove.
- (__arm_vmlaldavxq_p_s32): Remove.
- (__arm_vmlsldavq_p_s32): Remove.
- (__arm_vmlsldavxq_p_s32): Remove.
- (__arm_vmlaldavq_p_u32): Remove.
- (__arm_vmlaldavq): Remove.
- (__arm_vmlsldavxq): Remove.
- (__arm_vmlsldavq): Remove.
- (__arm_vmlaldavxq): Remove.
- (__arm_vmlaldavq_p): Remove.
- (__arm_vmlaldavxq_p): Remove.
- (__arm_vmlsldavq_p): Remove.
- (__arm_vmlsldavxq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMLxLDAVxQ, MVE_VMLxLDAVxQ_P): New.
- (mve_insn): Add vmlaldav, vmlaldavx, vmlsldav, vmlsldavx.
- (supf): Add VMLALDAVXQ_S, VMLSLDAVQ_S, VMLSLDAVXQ_S,
- VMLALDAVXQ_P_S, VMLSLDAVQ_P_S, VMLSLDAVXQ_P_S.
- * config/arm/mve.md (mve_vmlaldavq_<supf><mode>)
- (mve_vmlaldavxq_s<mode>, mve_vmlsldavq_s<mode>)
- (mve_vmlsldavxq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmlaldavq_p_<supf><mode>, mve_vmlaldavxq_p_s<mode>)
- (mve_vmlsldavq_p_s<mode>, mve_vmlsldavxq_p_s<mode>): Merge into
- ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int64): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_acc_int64): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vabavq): New.
- * config/arm/arm-mve-builtins-base.def (vabavq): New.
- * config/arm/arm-mve-builtins-base.h (vabavq): New.
- * config/arm/arm_mve.h (vabavq): Remove.
- (vabavq_p): Remove.
- (vabavq_s8): Remove.
- (vabavq_s16): Remove.
- (vabavq_s32): Remove.
- (vabavq_u8): Remove.
- (vabavq_u16): Remove.
- (vabavq_u32): Remove.
- (vabavq_p_s8): Remove.
- (vabavq_p_u8): Remove.
- (vabavq_p_s16): Remove.
- (vabavq_p_u16): Remove.
- (vabavq_p_s32): Remove.
- (vabavq_p_u32): Remove.
- (__arm_vabavq_s8): Remove.
- (__arm_vabavq_s16): Remove.
- (__arm_vabavq_s32): Remove.
- (__arm_vabavq_u8): Remove.
- (__arm_vabavq_u16): Remove.
- (__arm_vabavq_u32): Remove.
- (__arm_vabavq_p_s8): Remove.
- (__arm_vabavq_p_u8): Remove.
- (__arm_vabavq_p_s16): Remove.
- (__arm_vabavq_p_u16): Remove.
- (__arm_vabavq_p_s32): Remove.
- (__arm_vabavq_p_u32): Remove.
- (__arm_vabavq): Remove.
- (__arm_vabavq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vabav.
- * config/arm/mve.md (mve_vabavq_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this,.
- (mve_vabavq_p_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this,.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmladavaxq, vmladavaq)
- (vmlsdavaq, vmlsdavaxq): New.
- * config/arm/arm-mve-builtins-base.def (vmladavaxq, vmladavaq)
- (vmlsdavaq, vmlsdavaxq): New.
- * config/arm/arm-mve-builtins-base.h (vmladavaxq, vmladavaq)
- (vmlsdavaq, vmlsdavaxq): New.
- * config/arm/arm_mve.h (vmladavaq): Remove.
- (vmlsdavaxq): Remove.
- (vmlsdavaq): Remove.
- (vmladavaxq): Remove.
- (vmladavaq_p): Remove.
- (vmladavaxq_p): Remove.
- (vmlsdavaq_p): Remove.
- (vmlsdavaxq_p): Remove.
- (vmladavaq_u8): Remove.
- (vmlsdavaxq_s8): Remove.
- (vmlsdavaq_s8): Remove.
- (vmladavaxq_s8): Remove.
- (vmladavaq_s8): Remove.
- (vmladavaq_u16): Remove.
- (vmlsdavaxq_s16): Remove.
- (vmlsdavaq_s16): Remove.
- (vmladavaxq_s16): Remove.
- (vmladavaq_s16): Remove.
- (vmladavaq_u32): Remove.
- (vmlsdavaxq_s32): Remove.
- (vmlsdavaq_s32): Remove.
- (vmladavaxq_s32): Remove.
- (vmladavaq_s32): Remove.
- (vmladavaq_p_s8): Remove.
- (vmladavaq_p_s32): Remove.
- (vmladavaq_p_s16): Remove.
- (vmladavaq_p_u8): Remove.
- (vmladavaq_p_u32): Remove.
- (vmladavaq_p_u16): Remove.
- (vmladavaxq_p_s8): Remove.
- (vmladavaxq_p_s32): Remove.
- (vmladavaxq_p_s16): Remove.
- (vmlsdavaq_p_s8): Remove.
- (vmlsdavaq_p_s32): Remove.
- (vmlsdavaq_p_s16): Remove.
- (vmlsdavaxq_p_s8): Remove.
- (vmlsdavaxq_p_s32): Remove.
- (vmlsdavaxq_p_s16): Remove.
- (__arm_vmladavaq_u8): Remove.
- (__arm_vmlsdavaxq_s8): Remove.
- (__arm_vmlsdavaq_s8): Remove.
- (__arm_vmladavaxq_s8): Remove.
- (__arm_vmladavaq_s8): Remove.
- (__arm_vmladavaq_u16): Remove.
- (__arm_vmlsdavaxq_s16): Remove.
- (__arm_vmlsdavaq_s16): Remove.
- (__arm_vmladavaxq_s16): Remove.
- (__arm_vmladavaq_s16): Remove.
- (__arm_vmladavaq_u32): Remove.
- (__arm_vmlsdavaxq_s32): Remove.
- (__arm_vmlsdavaq_s32): Remove.
- (__arm_vmladavaxq_s32): Remove.
- (__arm_vmladavaq_s32): Remove.
- (__arm_vmladavaq_p_s8): Remove.
- (__arm_vmladavaq_p_s32): Remove.
- (__arm_vmladavaq_p_s16): Remove.
- (__arm_vmladavaq_p_u8): Remove.
- (__arm_vmladavaq_p_u32): Remove.
- (__arm_vmladavaq_p_u16): Remove.
- (__arm_vmladavaxq_p_s8): Remove.
- (__arm_vmladavaxq_p_s32): Remove.
- (__arm_vmladavaxq_p_s16): Remove.
- (__arm_vmlsdavaq_p_s8): Remove.
- (__arm_vmlsdavaq_p_s32): Remove.
- (__arm_vmlsdavaq_p_s16): Remove.
- (__arm_vmlsdavaxq_p_s8): Remove.
- (__arm_vmlsdavaxq_p_s32): Remove.
- (__arm_vmlsdavaxq_p_s16): Remove.
- (__arm_vmladavaq): Remove.
- (__arm_vmlsdavaxq): Remove.
- (__arm_vmlsdavaq): Remove.
- (__arm_vmladavaxq): Remove.
- (__arm_vmladavaq_p): Remove.
- (__arm_vmladavaxq_p): Remove.
- (__arm_vmlsdavaq_p): Remove.
- (__arm_vmlsdavaxq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_acca_int32): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmladavq, vmladavxq)
- (vmlsdavq, vmlsdavxq): New.
- * config/arm/arm-mve-builtins-base.def (vmladavq, vmladavxq)
- (vmlsdavq, vmlsdavxq): New.
- * config/arm/arm-mve-builtins-base.h (vmladavq, vmladavxq)
- (vmlsdavq, vmlsdavxq): New.
- * config/arm/arm_mve.h (vmladavq): Remove.
- (vmlsdavxq): Remove.
- (vmlsdavq): Remove.
- (vmladavxq): Remove.
- (vmladavq_p): Remove.
- (vmlsdavxq_p): Remove.
- (vmlsdavq_p): Remove.
- (vmladavxq_p): Remove.
- (vmladavq_u8): Remove.
- (vmlsdavxq_s8): Remove.
- (vmlsdavq_s8): Remove.
- (vmladavxq_s8): Remove.
- (vmladavq_s8): Remove.
- (vmladavq_u16): Remove.
- (vmlsdavxq_s16): Remove.
- (vmlsdavq_s16): Remove.
- (vmladavxq_s16): Remove.
- (vmladavq_s16): Remove.
- (vmladavq_u32): Remove.
- (vmlsdavxq_s32): Remove.
- (vmlsdavq_s32): Remove.
- (vmladavxq_s32): Remove.
- (vmladavq_s32): Remove.
- (vmladavq_p_u8): Remove.
- (vmlsdavxq_p_s8): Remove.
- (vmlsdavq_p_s8): Remove.
- (vmladavxq_p_s8): Remove.
- (vmladavq_p_s8): Remove.
- (vmladavq_p_u16): Remove.
- (vmlsdavxq_p_s16): Remove.
- (vmlsdavq_p_s16): Remove.
- (vmladavxq_p_s16): Remove.
- (vmladavq_p_s16): Remove.
- (vmladavq_p_u32): Remove.
- (vmlsdavxq_p_s32): Remove.
- (vmlsdavq_p_s32): Remove.
- (vmladavxq_p_s32): Remove.
- (vmladavq_p_s32): Remove.
- (__arm_vmladavq_u8): Remove.
- (__arm_vmlsdavxq_s8): Remove.
- (__arm_vmlsdavq_s8): Remove.
- (__arm_vmladavxq_s8): Remove.
- (__arm_vmladavq_s8): Remove.
- (__arm_vmladavq_u16): Remove.
- (__arm_vmlsdavxq_s16): Remove.
- (__arm_vmlsdavq_s16): Remove.
- (__arm_vmladavxq_s16): Remove.
- (__arm_vmladavq_s16): Remove.
- (__arm_vmladavq_u32): Remove.
- (__arm_vmlsdavxq_s32): Remove.
- (__arm_vmlsdavq_s32): Remove.
- (__arm_vmladavxq_s32): Remove.
- (__arm_vmladavq_s32): Remove.
- (__arm_vmladavq_p_u8): Remove.
- (__arm_vmlsdavxq_p_s8): Remove.
- (__arm_vmlsdavq_p_s8): Remove.
- (__arm_vmladavxq_p_s8): Remove.
- (__arm_vmladavq_p_s8): Remove.
- (__arm_vmladavq_p_u16): Remove.
- (__arm_vmlsdavxq_p_s16): Remove.
- (__arm_vmlsdavq_p_s16): Remove.
- (__arm_vmladavxq_p_s16): Remove.
- (__arm_vmladavq_p_s16): Remove.
- (__arm_vmladavq_p_u32): Remove.
- (__arm_vmlsdavxq_p_s32): Remove.
- (__arm_vmlsdavq_p_s32): Remove.
- (__arm_vmladavxq_p_s32): Remove.
- (__arm_vmladavq_p_s32): Remove.
- (__arm_vmladavq): Remove.
- (__arm_vmlsdavxq): Remove.
- (__arm_vmlsdavq): Remove.
- (__arm_vmladavxq): Remove.
- (__arm_vmladavq_p): Remove.
- (__arm_vmlsdavxq_p): Remove.
- (__arm_vmlsdavq_p): Remove.
- (__arm_vmladavxq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMLxDAVQ, MVE_VMLxDAVQ_P)
- (MVE_VMLxDAVAQ, MVE_VMLxDAVAQ_P): New.
- (mve_insn): Add vmladava, vmladavax, vmladav, vmladavx, vmlsdava,
- vmlsdavax, vmlsdav, vmlsdavx.
- (supf): Add VMLADAVAXQ_P_S, VMLADAVAXQ_S, VMLADAVXQ_P_S,
- VMLADAVXQ_S, VMLSDAVAQ_P_S, VMLSDAVAQ_S, VMLSDAVAXQ_P_S,
- VMLSDAVAXQ_S, VMLSDAVQ_P_S, VMLSDAVQ_S, VMLSDAVXQ_P_S,
- VMLSDAVXQ_S.
- * config/arm/mve.md (mve_vmladavq_<supf><mode>)
- (mve_vmladavxq_s<mode>, mve_vmlsdavq_s<mode>)
- (mve_vmlsdavxq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmlsdavaq_s<mode>, mve_vmladavaxq_s<mode>)
- (mve_vmlsdavaxq_s<mode>, mve_vmladavaq_<supf><mode>): Merge into
- ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmladavq_p_<supf><mode>, mve_vmladavxq_p_s<mode>)
- (mve_vmlsdavq_p_s<mode>, mve_vmlsdavxq_p_s<mode>): Merge into ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
- (mve_vmladavaq_p_<supf><mode>, mve_vmladavaxq_p_s<mode>)
- (mve_vmlsdavaq_p_s<mode>, mve_vmlsdavaxq_p_s<mode>): Merge into
- ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_acc_int32): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_acc_int32): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vaddlvaq): New.
- * config/arm/arm-mve-builtins-base.def (vaddlvaq): New.
- * config/arm/arm-mve-builtins-base.h (vaddlvaq): New.
- * config/arm/arm_mve.h (vaddlvaq): Remove.
- (vaddlvaq_p): Remove.
- (vaddlvaq_u32): Remove.
- (vaddlvaq_s32): Remove.
- (vaddlvaq_p_s32): Remove.
- (vaddlvaq_p_u32): Remove.
- (__arm_vaddlvaq_u32): Remove.
- (__arm_vaddlvaq_s32): Remove.
- (__arm_vaddlvaq_p_s32): Remove.
- (__arm_vaddlvaq_p_u32): Remove.
- (__arm_vaddlvaq): Remove.
- (__arm_vaddlvaq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary_widen_acc): New.
- * config/arm/arm-mve-builtins-shapes.h (unary_widen_acc): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vaddlva.
- * config/arm/mve.md (mve_vaddlvaq_<supf>v4si): Rename into ...
- (@mve_<mve_insn>q_<supf>v4si): ... this.
- (mve_vaddlvaq_p_<supf>v4si): Rename into ...
- (@mve_<mve_insn>q_p_<supf>v4si): ... this.
-
-2023-05-11 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/109807
- * config/i386/i386.cc (ix86_widen_mult_cost):
- Handle V4HImode and V2SImode.
-
-2023-05-11 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-dce.cc (simple_dce_from_worklist): For ssa names
- defined by a phi node with more than one uses, allow for the
- only uses are in that same defining statement.
-
-2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/riscv.cc (riscv_const_insns): Add permissible
- vector constants.
-
-2023-05-11 Pan Li <pan2.li@intel.com>
-
- * config/riscv/vector.md: Add comments for simplifying to vmset.
-
-2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md (<optab><mode>3): Add scalar shift
- pattern.
- (v<optab><mode>3): Add vector shift pattern.
- * config/riscv/vector-iterators.md: New iterator.
-
-2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
-
- * config/riscv/autovec.md: Use renamed functions.
- * config/riscv/riscv-protos.h (emit_vlmax_op): Rename.
- (emit_vlmax_reg_op): To this.
- (emit_nonvlmax_op): Rename.
- (emit_len_op): To this.
- (emit_nonvlmax_binop): Rename.
- (emit_len_binop): To this.
- * config/riscv/riscv-v.cc (emit_pred_op): Add default parameter.
- (emit_pred_binop): Remove vlmax_p.
- (emit_vlmax_op): Rename.
- (emit_vlmax_reg_op): To this.
- (emit_nonvlmax_op): Rename.
- (emit_len_op): To this.
- (emit_nonvlmax_binop): Rename.
- (emit_len_binop): To this.
- (sew64_scalar_helper): Use renamed functions.
- (expand_tuple_move): Use renamed functions.
- * config/riscv/riscv.cc (vector_zero_call_used_regs): Use
- renamed functions.
- * config/riscv/vector.md: Use renamed functions.
-
-2023-05-11 Robin Dapp <rdapp@ventanamicro.com>
- Michael Collison <collison@rivosinc.com>
-
- * config/riscv/autovec.md (<optab><mode>3): Add integer binops.
- * config/riscv/riscv-protos.h (emit_nonvlmax_binop): Declare.
- * config/riscv/riscv-v.cc (emit_pred_op): New function.
- (set_expander_dest_and_mask): New function.
- (emit_pred_binop): New function.
- (emit_nonvlmax_binop): New function.
-
-2023-05-11 Pan Li <pan2.li@intel.com>
-
- * cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
- * gimple-loop-interchange.cc
- (tree_loop_interchange::map_inductions_to_loop): Ditto.
- * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
- * tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
- * tree-ssa-loop-manip.cc (create_iv): Ditto.
- (tree_transform_and_unroll_loop): Ditto.
- (canonicalize_loop_ivs): Ditto.
- * tree-ssa-loop-manip.h (create_iv): Ditto.
- * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
- * tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
- Ditto.
- (vect_set_loop_condition_normal): Ditto.
- * tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
- * tree-vect-stmts.cc (vectorizable_store): Ditto.
- (vectorizable_load): Ditto.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmovlbq, vmovltq): New.
- * config/arm/arm-mve-builtins-base.def (vmovlbq, vmovltq): New.
- * config/arm/arm-mve-builtins-base.h (vmovlbq, vmovltq): New.
- * config/arm/arm_mve.h (vmovlbq): Remove.
- (vmovltq): Remove.
- (vmovlbq_m): Remove.
- (vmovltq_m): Remove.
- (vmovlbq_x): Remove.
- (vmovltq_x): Remove.
- (vmovlbq_s8): Remove.
- (vmovlbq_s16): Remove.
- (vmovltq_s8): Remove.
- (vmovltq_s16): Remove.
- (vmovltq_u8): Remove.
- (vmovltq_u16): Remove.
- (vmovlbq_u8): Remove.
- (vmovlbq_u16): Remove.
- (vmovlbq_m_s8): Remove.
- (vmovltq_m_s8): Remove.
- (vmovlbq_m_u8): Remove.
- (vmovltq_m_u8): Remove.
- (vmovlbq_m_s16): Remove.
- (vmovltq_m_s16): Remove.
- (vmovlbq_m_u16): Remove.
- (vmovltq_m_u16): Remove.
- (vmovlbq_x_s8): Remove.
- (vmovlbq_x_s16): Remove.
- (vmovlbq_x_u8): Remove.
- (vmovlbq_x_u16): Remove.
- (vmovltq_x_s8): Remove.
- (vmovltq_x_s16): Remove.
- (vmovltq_x_u8): Remove.
- (vmovltq_x_u16): Remove.
- (__arm_vmovlbq_s8): Remove.
- (__arm_vmovlbq_s16): Remove.
- (__arm_vmovltq_s8): Remove.
- (__arm_vmovltq_s16): Remove.
- (__arm_vmovltq_u8): Remove.
- (__arm_vmovltq_u16): Remove.
- (__arm_vmovlbq_u8): Remove.
- (__arm_vmovlbq_u16): Remove.
- (__arm_vmovlbq_m_s8): Remove.
- (__arm_vmovltq_m_s8): Remove.
- (__arm_vmovlbq_m_u8): Remove.
- (__arm_vmovltq_m_u8): Remove.
- (__arm_vmovlbq_m_s16): Remove.
- (__arm_vmovltq_m_s16): Remove.
- (__arm_vmovlbq_m_u16): Remove.
- (__arm_vmovltq_m_u16): Remove.
- (__arm_vmovlbq_x_s8): Remove.
- (__arm_vmovlbq_x_s16): Remove.
- (__arm_vmovlbq_x_u8): Remove.
- (__arm_vmovlbq_x_u16): Remove.
- (__arm_vmovltq_x_s8): Remove.
- (__arm_vmovltq_x_s16): Remove.
- (__arm_vmovltq_x_u8): Remove.
- (__arm_vmovltq_x_u16): Remove.
- (__arm_vmovlbq): Remove.
- (__arm_vmovltq): Remove.
- (__arm_vmovlbq_m): Remove.
- (__arm_vmovltq_m): Remove.
- (__arm_vmovlbq_x): Remove.
- (__arm_vmovltq_x): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary_widen): New.
- * config/arm/arm-mve-builtins-shapes.h (unary_widen): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vmovlb, vmovlt.
- (VMOVLBQ, VMOVLTQ): Merge into ...
- (VMOVLxQ): ... this.
- (VMOVLTQ_M, VMOVLBQ_M): Merge into ...
- (VMOVLxQ_M): ... this.
- * config/arm/mve.md (mve_vmovltq_<supf><mode>)
- (mve_vmovlbq_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmovlbq_m_<supf><mode>, mve_vmovltq_m_<supf><mode>): Merge
- into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vaddlvq): New.
- * config/arm/arm-mve-builtins-base.def (vaddlvq): New.
- * config/arm/arm-mve-builtins-base.h (vaddlvq): New.
- * config/arm/arm-mve-builtins-functions.h
- (unspec_mve_function_exact_insn_pred_p): Handle vaddlvq.
- * config/arm/arm_mve.h (vaddlvq): Remove.
- (vaddlvq_p): Remove.
- (vaddlvq_s32): Remove.
- (vaddlvq_u32): Remove.
- (vaddlvq_p_s32): Remove.
- (vaddlvq_p_u32): Remove.
- (__arm_vaddlvq_s32): Remove.
- (__arm_vaddlvq_u32): Remove.
- (__arm_vaddlvq_p_s32): Remove.
- (__arm_vaddlvq_p_u32): Remove.
- (__arm_vaddlvq): Remove.
- (__arm_vaddlvq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vaddlv.
- * config/arm/mve.md (mve_vaddlvq_<supf>v4si): Rename into ...
- (@mve_<mve_insn>q_<supf>v4si): ... this.
- (mve_vaddlvq_p_<supf>v4si): Rename into ...
- (@mve_<mve_insn>q_p_<supf>v4si): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary_acc): New.
- * config/arm/arm-mve-builtins-shapes.h (unary_acc): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vaddvaq): New.
- * config/arm/arm-mve-builtins-base.def (vaddvaq): New.
- * config/arm/arm-mve-builtins-base.h (vaddvaq): New.
- * config/arm/arm_mve.h (vaddvaq): Remove.
- (vaddvaq_p): Remove.
- (vaddvaq_u8): Remove.
- (vaddvaq_s8): Remove.
- (vaddvaq_u16): Remove.
- (vaddvaq_s16): Remove.
- (vaddvaq_u32): Remove.
- (vaddvaq_s32): Remove.
- (vaddvaq_p_u8): Remove.
- (vaddvaq_p_s8): Remove.
- (vaddvaq_p_u16): Remove.
- (vaddvaq_p_s16): Remove.
- (vaddvaq_p_u32): Remove.
- (vaddvaq_p_s32): Remove.
- (__arm_vaddvaq_u8): Remove.
- (__arm_vaddvaq_s8): Remove.
- (__arm_vaddvaq_u16): Remove.
- (__arm_vaddvaq_s16): Remove.
- (__arm_vaddvaq_u32): Remove.
- (__arm_vaddvaq_s32): Remove.
- (__arm_vaddvaq_p_u8): Remove.
- (__arm_vaddvaq_p_s8): Remove.
- (__arm_vaddvaq_p_u16): Remove.
- (__arm_vaddvaq_p_s16): Remove.
- (__arm_vaddvaq_p_u32): Remove.
- (__arm_vaddvaq_p_s32): Remove.
- (__arm_vaddvaq): Remove.
- (__arm_vaddvaq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary_int32_acc): New.
- * config/arm/arm-mve-builtins-shapes.h (unary_int32_acc): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vaddva.
- * config/arm/mve.md (mve_vaddvaq_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vaddvaq_p_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vaddvq): New.
- * config/arm/arm-mve-builtins-base.def (vaddvq): New.
- * config/arm/arm-mve-builtins-base.h (vaddvq): New.
- * config/arm/arm_mve.h (vaddvq): Remove.
- (vaddvq_p): Remove.
- (vaddvq_s8): Remove.
- (vaddvq_s16): Remove.
- (vaddvq_s32): Remove.
- (vaddvq_u8): Remove.
- (vaddvq_u16): Remove.
- (vaddvq_u32): Remove.
- (vaddvq_p_u8): Remove.
- (vaddvq_p_s8): Remove.
- (vaddvq_p_u16): Remove.
- (vaddvq_p_s16): Remove.
- (vaddvq_p_u32): Remove.
- (vaddvq_p_s32): Remove.
- (__arm_vaddvq_s8): Remove.
- (__arm_vaddvq_s16): Remove.
- (__arm_vaddvq_s32): Remove.
- (__arm_vaddvq_u8): Remove.
- (__arm_vaddvq_u16): Remove.
- (__arm_vaddvq_u32): Remove.
- (__arm_vaddvq_p_u8): Remove.
- (__arm_vaddvq_p_s8): Remove.
- (__arm_vaddvq_p_u16): Remove.
- (__arm_vaddvq_p_s16): Remove.
- (__arm_vaddvq_p_u32): Remove.
- (__arm_vaddvq_p_s32): Remove.
- (__arm_vaddvq): Remove.
- (__arm_vaddvq_p): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary_int32): New.
- * config/arm/arm-mve-builtins-shapes.h (unary_int32): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vaddv.
- * config/arm/mve.md (@mve_vaddvq_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vaddvq_p_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
- * config/arm/vec-common.md: Use gen_mve_q instead of
- gen_mve_vaddvq.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N): New.
- (vdupq): New.
- * config/arm/arm-mve-builtins-base.def (vdupq): New.
- * config/arm/arm-mve-builtins-base.h: (vdupq): New.
- * config/arm/arm_mve.h (vdupq_n): Remove.
- (vdupq_m): Remove.
- (vdupq_n_f16): Remove.
- (vdupq_n_f32): Remove.
- (vdupq_n_s8): Remove.
- (vdupq_n_s16): Remove.
- (vdupq_n_s32): Remove.
- (vdupq_n_u8): Remove.
- (vdupq_n_u16): Remove.
- (vdupq_n_u32): Remove.
- (vdupq_m_n_u8): Remove.
- (vdupq_m_n_s8): Remove.
- (vdupq_m_n_u16): Remove.
- (vdupq_m_n_s16): Remove.
- (vdupq_m_n_u32): Remove.
- (vdupq_m_n_s32): Remove.
- (vdupq_m_n_f16): Remove.
- (vdupq_m_n_f32): Remove.
- (vdupq_x_n_s8): Remove.
- (vdupq_x_n_s16): Remove.
- (vdupq_x_n_s32): Remove.
- (vdupq_x_n_u8): Remove.
- (vdupq_x_n_u16): Remove.
- (vdupq_x_n_u32): Remove.
- (vdupq_x_n_f16): Remove.
- (vdupq_x_n_f32): Remove.
- (__arm_vdupq_n_s8): Remove.
- (__arm_vdupq_n_s16): Remove.
- (__arm_vdupq_n_s32): Remove.
- (__arm_vdupq_n_u8): Remove.
- (__arm_vdupq_n_u16): Remove.
- (__arm_vdupq_n_u32): Remove.
- (__arm_vdupq_m_n_u8): Remove.
- (__arm_vdupq_m_n_s8): Remove.
- (__arm_vdupq_m_n_u16): Remove.
- (__arm_vdupq_m_n_s16): Remove.
- (__arm_vdupq_m_n_u32): Remove.
- (__arm_vdupq_m_n_s32): Remove.
- (__arm_vdupq_x_n_s8): Remove.
- (__arm_vdupq_x_n_s16): Remove.
- (__arm_vdupq_x_n_s32): Remove.
- (__arm_vdupq_x_n_u8): Remove.
- (__arm_vdupq_x_n_u16): Remove.
- (__arm_vdupq_x_n_u32): Remove.
- (__arm_vdupq_n_f16): Remove.
- (__arm_vdupq_n_f32): Remove.
- (__arm_vdupq_m_n_f16): Remove.
- (__arm_vdupq_m_n_f32): Remove.
- (__arm_vdupq_x_n_f16): Remove.
- (__arm_vdupq_x_n_f32): Remove.
- (__arm_vdupq_n): Remove.
- (__arm_vdupq_m): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary_n): New.
- * config/arm/arm-mve-builtins-shapes.h (unary_n): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_FP_M_N_VDUPQ_ONLY)
- (MVE_FP_N_VDUPQ_ONLY): New.
- (mve_insn): Add vdupq.
- * config/arm/mve.md (mve_vdupq_n_f<mode>): Rename into ...
- (@mve_<mve_insn>q_n_f<mode>): ... this.
- (mve_vdupq_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vdupq_m_n_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
- (mve_vdupq_m_n_f<mode>): Rename into ...
- (@mve_<mve_insn>q_m_n_f<mode>): ... this.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vrev16q, vrev32q, vrev64q):
- New.
- * config/arm/arm-mve-builtins-base.def (vrev16q, vrev32q)
- (vrev64q): New.
- * config/arm/arm-mve-builtins-base.h (vrev16q, vrev32q)
- (vrev64q): New.
- * config/arm/arm_mve.h (vrev16q): Remove.
- (vrev32q): Remove.
- (vrev64q): Remove.
- (vrev64q_m): Remove.
- (vrev16q_m): Remove.
- (vrev32q_m): Remove.
- (vrev16q_x): Remove.
- (vrev32q_x): Remove.
- (vrev64q_x): Remove.
- (vrev64q_f16): Remove.
- (vrev64q_f32): Remove.
- (vrev32q_f16): Remove.
- (vrev16q_s8): Remove.
- (vrev32q_s8): Remove.
- (vrev32q_s16): Remove.
- (vrev64q_s8): Remove.
- (vrev64q_s16): Remove.
- (vrev64q_s32): Remove.
- (vrev64q_u8): Remove.
- (vrev64q_u16): Remove.
- (vrev64q_u32): Remove.
- (vrev32q_u8): Remove.
- (vrev32q_u16): Remove.
- (vrev16q_u8): Remove.
- (vrev64q_m_u8): Remove.
- (vrev64q_m_s8): Remove.
- (vrev64q_m_u16): Remove.
- (vrev64q_m_s16): Remove.
- (vrev64q_m_u32): Remove.
- (vrev64q_m_s32): Remove.
- (vrev16q_m_s8): Remove.
- (vrev32q_m_f16): Remove.
- (vrev16q_m_u8): Remove.
- (vrev32q_m_s8): Remove.
- (vrev64q_m_f16): Remove.
- (vrev32q_m_u8): Remove.
- (vrev32q_m_s16): Remove.
- (vrev64q_m_f32): Remove.
- (vrev32q_m_u16): Remove.
- (vrev16q_x_s8): Remove.
- (vrev16q_x_u8): Remove.
- (vrev32q_x_s8): Remove.
- (vrev32q_x_s16): Remove.
- (vrev32q_x_u8): Remove.
- (vrev32q_x_u16): Remove.
- (vrev64q_x_s8): Remove.
- (vrev64q_x_s16): Remove.
- (vrev64q_x_s32): Remove.
- (vrev64q_x_u8): Remove.
- (vrev64q_x_u16): Remove.
- (vrev64q_x_u32): Remove.
- (vrev32q_x_f16): Remove.
- (vrev64q_x_f16): Remove.
- (vrev64q_x_f32): Remove.
- (__arm_vrev16q_s8): Remove.
- (__arm_vrev32q_s8): Remove.
- (__arm_vrev32q_s16): Remove.
- (__arm_vrev64q_s8): Remove.
- (__arm_vrev64q_s16): Remove.
- (__arm_vrev64q_s32): Remove.
- (__arm_vrev64q_u8): Remove.
- (__arm_vrev64q_u16): Remove.
- (__arm_vrev64q_u32): Remove.
- (__arm_vrev32q_u8): Remove.
- (__arm_vrev32q_u16): Remove.
- (__arm_vrev16q_u8): Remove.
- (__arm_vrev64q_m_u8): Remove.
- (__arm_vrev64q_m_s8): Remove.
- (__arm_vrev64q_m_u16): Remove.
- (__arm_vrev64q_m_s16): Remove.
- (__arm_vrev64q_m_u32): Remove.
- (__arm_vrev64q_m_s32): Remove.
- (__arm_vrev16q_m_s8): Remove.
- (__arm_vrev16q_m_u8): Remove.
- (__arm_vrev32q_m_s8): Remove.
- (__arm_vrev32q_m_u8): Remove.
- (__arm_vrev32q_m_s16): Remove.
- (__arm_vrev32q_m_u16): Remove.
- (__arm_vrev16q_x_s8): Remove.
- (__arm_vrev16q_x_u8): Remove.
- (__arm_vrev32q_x_s8): Remove.
- (__arm_vrev32q_x_s16): Remove.
- (__arm_vrev32q_x_u8): Remove.
- (__arm_vrev32q_x_u16): Remove.
- (__arm_vrev64q_x_s8): Remove.
- (__arm_vrev64q_x_s16): Remove.
- (__arm_vrev64q_x_s32): Remove.
- (__arm_vrev64q_x_u8): Remove.
- (__arm_vrev64q_x_u16): Remove.
- (__arm_vrev64q_x_u32): Remove.
- (__arm_vrev64q_f16): Remove.
- (__arm_vrev64q_f32): Remove.
- (__arm_vrev32q_f16): Remove.
- (__arm_vrev32q_m_f16): Remove.
- (__arm_vrev64q_m_f16): Remove.
- (__arm_vrev64q_m_f32): Remove.
- (__arm_vrev32q_x_f16): Remove.
- (__arm_vrev64q_x_f16): Remove.
- (__arm_vrev64q_x_f32): Remove.
- (__arm_vrev16q): Remove.
- (__arm_vrev32q): Remove.
- (__arm_vrev64q): Remove.
- (__arm_vrev64q_m): Remove.
- (__arm_vrev16q_m): Remove.
- (__arm_vrev32q_m): Remove.
- (__arm_vrev16q_x): Remove.
- (__arm_vrev32q_x): Remove.
- (__arm_vrev64q_x): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_V8HF, MVE_V16QI)
- (MVE_FP_VREV64Q_ONLY, MVE_FP_M_VREV64Q_ONLY, MVE_FP_VREV32Q_ONLY)
- (MVE_FP_M_VREV32Q_ONLY): New iterators.
- (mve_insn): Add vrev16q, vrev32q, vrev64q.
- * config/arm/mve.md (mve_vrev64q_f<mode>): Rename into ...
- (@mve_<mve_insn>q_f<mode>): ... this
- (mve_vrev32q_fv8hf): Rename into @mve_<mve_insn>q_f<mode>.
- (mve_vrev64q_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vrev32q_<supf><mode>): Rename into
- @mve_<mve_insn>q_<supf><mode>.
- (mve_vrev16q_<supf>v16qi): Rename into
- @mve_<mve_insn>q_<supf><mode>.
- (mve_vrev64q_m_<supf><mode>): Rename into
- @mve_<mve_insn>q_m_<supf><mode>.
- (mve_vrev32q_m_fv8hf): Rename into @mve_<mve_insn>q_m_f<mode>.
- (mve_vrev32q_m_<supf><mode>): Rename into
- @mve_<mve_insn>q_m_<supf><mode>.
- (mve_vrev64q_m_f<mode>): Rename into @mve_<mve_insn>q_m_f<mode>.
- (mve_vrev16q_m_<supf>v16qi): Rename into
- @mve_<mve_insn>q_m_<supf><mode>.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vcmpeqq, vcmpneq, vcmpgeq)
- (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
- * config/arm/arm-mve-builtins-base.def (vcmpeqq, vcmpneq, vcmpgeq)
- (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
- * config/arm/arm-mve-builtins-base.h (vcmpeqq, vcmpneq, vcmpgeq)
- (vcmpgtq, vcmpleq, vcmpltq, vcmpcsq, vcmphiq): New.
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_based_mve_function_exact_insn_vcmp): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vcmp.
- * config/arm/arm_mve.h (vcmpneq): Remove.
- (vcmphiq): Remove.
- (vcmpeqq): Remove.
- (vcmpcsq): Remove.
- (vcmpltq): Remove.
- (vcmpleq): Remove.
- (vcmpgtq): Remove.
- (vcmpgeq): Remove.
- (vcmpneq_m): Remove.
- (vcmphiq_m): Remove.
- (vcmpeqq_m): Remove.
- (vcmpcsq_m): Remove.
- (vcmpcsq_m_n): Remove.
- (vcmpltq_m): Remove.
- (vcmpleq_m): Remove.
- (vcmpgtq_m): Remove.
- (vcmpgeq_m): Remove.
- (vcmpneq_s8): Remove.
- (vcmpneq_s16): Remove.
- (vcmpneq_s32): Remove.
- (vcmpneq_u8): Remove.
- (vcmpneq_u16): Remove.
- (vcmpneq_u32): Remove.
- (vcmpneq_n_u8): Remove.
- (vcmphiq_u8): Remove.
- (vcmphiq_n_u8): Remove.
- (vcmpeqq_u8): Remove.
- (vcmpeqq_n_u8): Remove.
- (vcmpcsq_u8): Remove.
- (vcmpcsq_n_u8): Remove.
- (vcmpneq_n_s8): Remove.
- (vcmpltq_s8): Remove.
- (vcmpltq_n_s8): Remove.
- (vcmpleq_s8): Remove.
- (vcmpleq_n_s8): Remove.
- (vcmpgtq_s8): Remove.
- (vcmpgtq_n_s8): Remove.
- (vcmpgeq_s8): Remove.
- (vcmpgeq_n_s8): Remove.
- (vcmpeqq_s8): Remove.
- (vcmpeqq_n_s8): Remove.
- (vcmpneq_n_u16): Remove.
- (vcmphiq_u16): Remove.
- (vcmphiq_n_u16): Remove.
- (vcmpeqq_u16): Remove.
- (vcmpeqq_n_u16): Remove.
- (vcmpcsq_u16): Remove.
- (vcmpcsq_n_u16): Remove.
- (vcmpneq_n_s16): Remove.
- (vcmpltq_s16): Remove.
- (vcmpltq_n_s16): Remove.
- (vcmpleq_s16): Remove.
- (vcmpleq_n_s16): Remove.
- (vcmpgtq_s16): Remove.
- (vcmpgtq_n_s16): Remove.
- (vcmpgeq_s16): Remove.
- (vcmpgeq_n_s16): Remove.
- (vcmpeqq_s16): Remove.
- (vcmpeqq_n_s16): Remove.
- (vcmpneq_n_u32): Remove.
- (vcmphiq_u32): Remove.
- (vcmphiq_n_u32): Remove.
- (vcmpeqq_u32): Remove.
- (vcmpeqq_n_u32): Remove.
- (vcmpcsq_u32): Remove.
- (vcmpcsq_n_u32): Remove.
- (vcmpneq_n_s32): Remove.
- (vcmpltq_s32): Remove.
- (vcmpltq_n_s32): Remove.
- (vcmpleq_s32): Remove.
- (vcmpleq_n_s32): Remove.
- (vcmpgtq_s32): Remove.
- (vcmpgtq_n_s32): Remove.
- (vcmpgeq_s32): Remove.
- (vcmpgeq_n_s32): Remove.
- (vcmpeqq_s32): Remove.
- (vcmpeqq_n_s32): Remove.
- (vcmpneq_n_f16): Remove.
- (vcmpneq_f16): Remove.
- (vcmpltq_n_f16): Remove.
- (vcmpltq_f16): Remove.
- (vcmpleq_n_f16): Remove.
- (vcmpleq_f16): Remove.
- (vcmpgtq_n_f16): Remove.
- (vcmpgtq_f16): Remove.
- (vcmpgeq_n_f16): Remove.
- (vcmpgeq_f16): Remove.
- (vcmpeqq_n_f16): Remove.
- (vcmpeqq_f16): Remove.
- (vcmpneq_n_f32): Remove.
- (vcmpneq_f32): Remove.
- (vcmpltq_n_f32): Remove.
- (vcmpltq_f32): Remove.
- (vcmpleq_n_f32): Remove.
- (vcmpleq_f32): Remove.
- (vcmpgtq_n_f32): Remove.
- (vcmpgtq_f32): Remove.
- (vcmpgeq_n_f32): Remove.
- (vcmpgeq_f32): Remove.
- (vcmpeqq_n_f32): Remove.
- (vcmpeqq_f32): Remove.
- (vcmpeqq_m_f16): Remove.
- (vcmpeqq_m_f32): Remove.
- (vcmpneq_m_u8): Remove.
- (vcmpneq_m_n_u8): Remove.
- (vcmphiq_m_u8): Remove.
- (vcmphiq_m_n_u8): Remove.
- (vcmpeqq_m_u8): Remove.
- (vcmpeqq_m_n_u8): Remove.
- (vcmpcsq_m_u8): Remove.
- (vcmpcsq_m_n_u8): Remove.
- (vcmpneq_m_s8): Remove.
- (vcmpneq_m_n_s8): Remove.
- (vcmpltq_m_s8): Remove.
- (vcmpltq_m_n_s8): Remove.
- (vcmpleq_m_s8): Remove.
- (vcmpleq_m_n_s8): Remove.
- (vcmpgtq_m_s8): Remove.
- (vcmpgtq_m_n_s8): Remove.
- (vcmpgeq_m_s8): Remove.
- (vcmpgeq_m_n_s8): Remove.
- (vcmpeqq_m_s8): Remove.
- (vcmpeqq_m_n_s8): Remove.
- (vcmpneq_m_u16): Remove.
- (vcmpneq_m_n_u16): Remove.
- (vcmphiq_m_u16): Remove.
- (vcmphiq_m_n_u16): Remove.
- (vcmpeqq_m_u16): Remove.
- (vcmpeqq_m_n_u16): Remove.
- (vcmpcsq_m_u16): Remove.
- (vcmpcsq_m_n_u16): Remove.
- (vcmpneq_m_s16): Remove.
- (vcmpneq_m_n_s16): Remove.
- (vcmpltq_m_s16): Remove.
- (vcmpltq_m_n_s16): Remove.
- (vcmpleq_m_s16): Remove.
- (vcmpleq_m_n_s16): Remove.
- (vcmpgtq_m_s16): Remove.
- (vcmpgtq_m_n_s16): Remove.
- (vcmpgeq_m_s16): Remove.
- (vcmpgeq_m_n_s16): Remove.
- (vcmpeqq_m_s16): Remove.
- (vcmpeqq_m_n_s16): Remove.
- (vcmpneq_m_u32): Remove.
- (vcmpneq_m_n_u32): Remove.
- (vcmphiq_m_u32): Remove.
- (vcmphiq_m_n_u32): Remove.
- (vcmpeqq_m_u32): Remove.
- (vcmpeqq_m_n_u32): Remove.
- (vcmpcsq_m_u32): Remove.
- (vcmpcsq_m_n_u32): Remove.
- (vcmpneq_m_s32): Remove.
- (vcmpneq_m_n_s32): Remove.
- (vcmpltq_m_s32): Remove.
- (vcmpltq_m_n_s32): Remove.
- (vcmpleq_m_s32): Remove.
- (vcmpleq_m_n_s32): Remove.
- (vcmpgtq_m_s32): Remove.
- (vcmpgtq_m_n_s32): Remove.
- (vcmpgeq_m_s32): Remove.
- (vcmpgeq_m_n_s32): Remove.
- (vcmpeqq_m_s32): Remove.
- (vcmpeqq_m_n_s32): Remove.
- (vcmpeqq_m_n_f16): Remove.
- (vcmpgeq_m_f16): Remove.
- (vcmpgeq_m_n_f16): Remove.
- (vcmpgtq_m_f16): Remove.
- (vcmpgtq_m_n_f16): Remove.
- (vcmpleq_m_f16): Remove.
- (vcmpleq_m_n_f16): Remove.
- (vcmpltq_m_f16): Remove.
- (vcmpltq_m_n_f16): Remove.
- (vcmpneq_m_f16): Remove.
- (vcmpneq_m_n_f16): Remove.
- (vcmpeqq_m_n_f32): Remove.
- (vcmpgeq_m_f32): Remove.
- (vcmpgeq_m_n_f32): Remove.
- (vcmpgtq_m_f32): Remove.
- (vcmpgtq_m_n_f32): Remove.
- (vcmpleq_m_f32): Remove.
- (vcmpleq_m_n_f32): Remove.
- (vcmpltq_m_f32): Remove.
- (vcmpltq_m_n_f32): Remove.
- (vcmpneq_m_f32): Remove.
- (vcmpneq_m_n_f32): Remove.
- (__arm_vcmpneq_s8): Remove.
- (__arm_vcmpneq_s16): Remove.
- (__arm_vcmpneq_s32): Remove.
- (__arm_vcmpneq_u8): Remove.
- (__arm_vcmpneq_u16): Remove.
- (__arm_vcmpneq_u32): Remove.
- (__arm_vcmpneq_n_u8): Remove.
- (__arm_vcmphiq_u8): Remove.
- (__arm_vcmphiq_n_u8): Remove.
- (__arm_vcmpeqq_u8): Remove.
- (__arm_vcmpeqq_n_u8): Remove.
- (__arm_vcmpcsq_u8): Remove.
- (__arm_vcmpcsq_n_u8): Remove.
- (__arm_vcmpneq_n_s8): Remove.
- (__arm_vcmpltq_s8): Remove.
- (__arm_vcmpltq_n_s8): Remove.
- (__arm_vcmpleq_s8): Remove.
- (__arm_vcmpleq_n_s8): Remove.
- (__arm_vcmpgtq_s8): Remove.
- (__arm_vcmpgtq_n_s8): Remove.
- (__arm_vcmpgeq_s8): Remove.
- (__arm_vcmpgeq_n_s8): Remove.
- (__arm_vcmpeqq_s8): Remove.
- (__arm_vcmpeqq_n_s8): Remove.
- (__arm_vcmpneq_n_u16): Remove.
- (__arm_vcmphiq_u16): Remove.
- (__arm_vcmphiq_n_u16): Remove.
- (__arm_vcmpeqq_u16): Remove.
- (__arm_vcmpeqq_n_u16): Remove.
- (__arm_vcmpcsq_u16): Remove.
- (__arm_vcmpcsq_n_u16): Remove.
- (__arm_vcmpneq_n_s16): Remove.
- (__arm_vcmpltq_s16): Remove.
- (__arm_vcmpltq_n_s16): Remove.
- (__arm_vcmpleq_s16): Remove.
- (__arm_vcmpleq_n_s16): Remove.
- (__arm_vcmpgtq_s16): Remove.
- (__arm_vcmpgtq_n_s16): Remove.
- (__arm_vcmpgeq_s16): Remove.
- (__arm_vcmpgeq_n_s16): Remove.
- (__arm_vcmpeqq_s16): Remove.
- (__arm_vcmpeqq_n_s16): Remove.
- (__arm_vcmpneq_n_u32): Remove.
- (__arm_vcmphiq_u32): Remove.
- (__arm_vcmphiq_n_u32): Remove.
- (__arm_vcmpeqq_u32): Remove.
- (__arm_vcmpeqq_n_u32): Remove.
- (__arm_vcmpcsq_u32): Remove.
- (__arm_vcmpcsq_n_u32): Remove.
- (__arm_vcmpneq_n_s32): Remove.
- (__arm_vcmpltq_s32): Remove.
- (__arm_vcmpltq_n_s32): Remove.
- (__arm_vcmpleq_s32): Remove.
- (__arm_vcmpleq_n_s32): Remove.
- (__arm_vcmpgtq_s32): Remove.
- (__arm_vcmpgtq_n_s32): Remove.
- (__arm_vcmpgeq_s32): Remove.
- (__arm_vcmpgeq_n_s32): Remove.
- (__arm_vcmpeqq_s32): Remove.
- (__arm_vcmpeqq_n_s32): Remove.
- (__arm_vcmpneq_m_u8): Remove.
- (__arm_vcmpneq_m_n_u8): Remove.
- (__arm_vcmphiq_m_u8): Remove.
- (__arm_vcmphiq_m_n_u8): Remove.
- (__arm_vcmpeqq_m_u8): Remove.
- (__arm_vcmpeqq_m_n_u8): Remove.
- (__arm_vcmpcsq_m_u8): Remove.
- (__arm_vcmpcsq_m_n_u8): Remove.
- (__arm_vcmpneq_m_s8): Remove.
- (__arm_vcmpneq_m_n_s8): Remove.
- (__arm_vcmpltq_m_s8): Remove.
- (__arm_vcmpltq_m_n_s8): Remove.
- (__arm_vcmpleq_m_s8): Remove.
- (__arm_vcmpleq_m_n_s8): Remove.
- (__arm_vcmpgtq_m_s8): Remove.
- (__arm_vcmpgtq_m_n_s8): Remove.
- (__arm_vcmpgeq_m_s8): Remove.
- (__arm_vcmpgeq_m_n_s8): Remove.
- (__arm_vcmpeqq_m_s8): Remove.
- (__arm_vcmpeqq_m_n_s8): Remove.
- (__arm_vcmpneq_m_u16): Remove.
- (__arm_vcmpneq_m_n_u16): Remove.
- (__arm_vcmphiq_m_u16): Remove.
- (__arm_vcmphiq_m_n_u16): Remove.
- (__arm_vcmpeqq_m_u16): Remove.
- (__arm_vcmpeqq_m_n_u16): Remove.
- (__arm_vcmpcsq_m_u16): Remove.
- (__arm_vcmpcsq_m_n_u16): Remove.
- (__arm_vcmpneq_m_s16): Remove.
- (__arm_vcmpneq_m_n_s16): Remove.
- (__arm_vcmpltq_m_s16): Remove.
- (__arm_vcmpltq_m_n_s16): Remove.
- (__arm_vcmpleq_m_s16): Remove.
- (__arm_vcmpleq_m_n_s16): Remove.
- (__arm_vcmpgtq_m_s16): Remove.
- (__arm_vcmpgtq_m_n_s16): Remove.
- (__arm_vcmpgeq_m_s16): Remove.
- (__arm_vcmpgeq_m_n_s16): Remove.
- (__arm_vcmpeqq_m_s16): Remove.
- (__arm_vcmpeqq_m_n_s16): Remove.
- (__arm_vcmpneq_m_u32): Remove.
- (__arm_vcmpneq_m_n_u32): Remove.
- (__arm_vcmphiq_m_u32): Remove.
- (__arm_vcmphiq_m_n_u32): Remove.
- (__arm_vcmpeqq_m_u32): Remove.
- (__arm_vcmpeqq_m_n_u32): Remove.
- (__arm_vcmpcsq_m_u32): Remove.
- (__arm_vcmpcsq_m_n_u32): Remove.
- (__arm_vcmpneq_m_s32): Remove.
- (__arm_vcmpneq_m_n_s32): Remove.
- (__arm_vcmpltq_m_s32): Remove.
- (__arm_vcmpltq_m_n_s32): Remove.
- (__arm_vcmpleq_m_s32): Remove.
- (__arm_vcmpleq_m_n_s32): Remove.
- (__arm_vcmpgtq_m_s32): Remove.
- (__arm_vcmpgtq_m_n_s32): Remove.
- (__arm_vcmpgeq_m_s32): Remove.
- (__arm_vcmpgeq_m_n_s32): Remove.
- (__arm_vcmpeqq_m_s32): Remove.
- (__arm_vcmpeqq_m_n_s32): Remove.
- (__arm_vcmpneq_n_f16): Remove.
- (__arm_vcmpneq_f16): Remove.
- (__arm_vcmpltq_n_f16): Remove.
- (__arm_vcmpltq_f16): Remove.
- (__arm_vcmpleq_n_f16): Remove.
- (__arm_vcmpleq_f16): Remove.
- (__arm_vcmpgtq_n_f16): Remove.
- (__arm_vcmpgtq_f16): Remove.
- (__arm_vcmpgeq_n_f16): Remove.
- (__arm_vcmpgeq_f16): Remove.
- (__arm_vcmpeqq_n_f16): Remove.
- (__arm_vcmpeqq_f16): Remove.
- (__arm_vcmpneq_n_f32): Remove.
- (__arm_vcmpneq_f32): Remove.
- (__arm_vcmpltq_n_f32): Remove.
- (__arm_vcmpltq_f32): Remove.
- (__arm_vcmpleq_n_f32): Remove.
- (__arm_vcmpleq_f32): Remove.
- (__arm_vcmpgtq_n_f32): Remove.
- (__arm_vcmpgtq_f32): Remove.
- (__arm_vcmpgeq_n_f32): Remove.
- (__arm_vcmpgeq_f32): Remove.
- (__arm_vcmpeqq_n_f32): Remove.
- (__arm_vcmpeqq_f32): Remove.
- (__arm_vcmpeqq_m_f16): Remove.
- (__arm_vcmpeqq_m_f32): Remove.
- (__arm_vcmpeqq_m_n_f16): Remove.
- (__arm_vcmpgeq_m_f16): Remove.
- (__arm_vcmpgeq_m_n_f16): Remove.
- (__arm_vcmpgtq_m_f16): Remove.
- (__arm_vcmpgtq_m_n_f16): Remove.
- (__arm_vcmpleq_m_f16): Remove.
- (__arm_vcmpleq_m_n_f16): Remove.
- (__arm_vcmpltq_m_f16): Remove.
- (__arm_vcmpltq_m_n_f16): Remove.
- (__arm_vcmpneq_m_f16): Remove.
- (__arm_vcmpneq_m_n_f16): Remove.
- (__arm_vcmpeqq_m_n_f32): Remove.
- (__arm_vcmpgeq_m_f32): Remove.
- (__arm_vcmpgeq_m_n_f32): Remove.
- (__arm_vcmpgtq_m_f32): Remove.
- (__arm_vcmpgtq_m_n_f32): Remove.
- (__arm_vcmpleq_m_f32): Remove.
- (__arm_vcmpleq_m_n_f32): Remove.
- (__arm_vcmpltq_m_f32): Remove.
- (__arm_vcmpltq_m_n_f32): Remove.
- (__arm_vcmpneq_m_f32): Remove.
- (__arm_vcmpneq_m_n_f32): Remove.
- (__arm_vcmpneq): Remove.
- (__arm_vcmphiq): Remove.
- (__arm_vcmpeqq): Remove.
- (__arm_vcmpcsq): Remove.
- (__arm_vcmpltq): Remove.
- (__arm_vcmpleq): Remove.
- (__arm_vcmpgtq): Remove.
- (__arm_vcmpgeq): Remove.
- (__arm_vcmpneq_m): Remove.
- (__arm_vcmphiq_m): Remove.
- (__arm_vcmpeqq_m): Remove.
- (__arm_vcmpcsq_m): Remove.
- (__arm_vcmpltq_m): Remove.
- (__arm_vcmpleq_m): Remove.
- (__arm_vcmpgtq_m): Remove.
- (__arm_vcmpgeq_m): Remove.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (cmp): New.
- * config/arm/arm-mve-builtins-shapes.h (cmp): New.
-
-2023-05-11 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_CMP_M, MVE_CMP_M_F, MVE_CMP_M_N)
- (MVE_CMP_M_N_F, mve_cmp_op1): New.
- (isu): Add VCMP*
- (supf): Likewise.
- * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>): Rename into ...
- (@mve_vcmp<mve_cmp_op>q_n_<mode>): ... this.
- (mve_vcmpeqq_m_f<mode>, mve_vcmpgeq_m_f<mode>)
- (mve_vcmpgtq_m_f<mode>, mve_vcmpleq_m_f<mode>)
- (mve_vcmpltq_m_f<mode>, mve_vcmpneq_m_f<mode>): Merge into ...
- (@mve_vcmp<mve_cmp_op1>q_m_f<mode>): ... this.
- (mve_vcmpcsq_m_u<mode>, mve_vcmpeqq_m_<supf><mode>)
- (mve_vcmpgeq_m_s<mode>, mve_vcmpgtq_m_s<mode>)
- (mve_vcmphiq_m_u<mode>, mve_vcmpleq_m_s<mode>)
- (mve_vcmpltq_m_s<mode>, mve_vcmpneq_m_<supf><mode>): Merge into
- ...
- (@mve_vcmp<mve_cmp_op1>q_m_<supf><mode>): ... this.
- (mve_vcmpcsq_m_n_u<mode>, mve_vcmpeqq_m_n_<supf><mode>)
- (mve_vcmpgeq_m_n_s<mode>, mve_vcmpgtq_m_n_s<mode>)
- (mve_vcmphiq_m_n_u<mode>, mve_vcmpleq_m_n_s<mode>)
- (mve_vcmpltq_m_n_s<mode>, mve_vcmpneq_m_n_<supf><mode>): Merge
- into ...
- (@mve_vcmp<mve_cmp_op1>q_m_n_<supf><mode>): ... this.
- (mve_vcmpeqq_m_n_f<mode>, mve_vcmpgeq_m_n_f<mode>)
- (mve_vcmpgtq_m_n_f<mode>, mve_vcmpleq_m_n_f<mode>)
- (mve_vcmpltq_m_n_f<mode>, mve_vcmpneq_m_n_f<mode>): Merge into ...
- (@mve_vcmp<mve_cmp_op1>q_m_n_f<mode>): ... this.
-
-2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
-
- * match.pd <popcount optimizations>: Simplify popcount(X|Y) +
- popcount(X&Y) as popcount(X)+popcount(Y). Likewise, simplify
- popcount(X)+popcount(Y)-popcount(X&Y) as popcount(X|Y), and
- vice versa.
-
-2023-05-11 Roger Sayle <roger@nextmovesoftware.com>
-
- * match.pd <popcount optimizations>: Simplify popcount(bswap(x))
- as popcount(x). Simplify popcount(rotate(x,y)) as popcount(x).
- <parity optimizations>: Simplify parity(bswap(x)) as parity(x).
- Simplify parity(rotate(x,y)) as parity(x).
-
-2023-05-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (@vec_series<mode>): New pattern
- * config/riscv/riscv-protos.h (expand_vec_series): New function.
- * config/riscv/riscv-v.cc (emit_binop): Ditto.
- (emit_index_op): Ditto.
- (expand_vec_series): Ditto.
- (expand_const_vector): Add series vector handling.
- * config/riscv/riscv.cc (riscv_const_insns): Enable series vector for testing.
-
-2023-05-10 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386.md (*concat<mode><dwi>3_1): Use preferred
- [(const_int 0)] idiom, instead of [(clobber (const_int 0))].
- (*concat<mode><dwi>3_2): Likewise.
- (*concat<mode><dwi>3_3): Likewise.
- (*concat<mode><dwi>3_4): Likewise.
- (*concat<mode><dwi>3_5): Likewise.
- (*concat<mode><dwi>3_6): Likewise.
- (*concat<mode><dwi>3_7): Likewise.
-
-2023-05-10 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/92658
- * config/i386/mmx.md (sse4_1_<code>v2qiv2si2): New insn pattern.
- (<insn>v4qiv4hi2): New expander.
- (<insn>v2hiv2si2): Ditto.
- (<insn>v2qiv2si2): Ditto.
- (<insn>v2qiv2hi2): Ditto.
-
-2023-05-10 Jeff Law <jlaw@ventanamicro>
-
- * config/h8300/constraints.md (Q): Make this a special memory
- constraint.
- (Zz): Similarly.
-
-2023-05-10 Jakub Jelinek <jakub@redhat.com>
-
- PR fortran/109788
- * ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t)
- if t is void_list_node.
-
-2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>_insn_le): Delete.
- (aarch64_sqmovun<mode>_insn_be): Delete.
- (aarch64_sqmovun<mode><vczle><vczbe>): New define_insn.
- (aarch64_sqmovun<mode>): Delete expander.
-
-2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><mode>):
- Rename to...
- (aarch64_<PERMUTE:perm_insn><mode><vczle><vczbe>): ... This.
- (aarch64_rev<REVERSE:rev_op><mode>): Rename to...
- (aarch64_rev<REVERSE:rev_op><mode><vczle><vczbe>): ... This.
-
-2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_<su_optab>q<addsub><mode>):
- Rename to...
- (aarch64_<su_optab>q<addsub><mode><vczle><vczbe>): ... This.
- (aarch64_<sur>qadd<mode>): Rename to...
- (aarch64_<sur>qadd<mode><vczle><vczbe>): ... This.
-
-2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md
- (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): Delete.
- (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): Delete.
- (aarch64_<sur>q<r>shr<u>n_n<mode>_insn<vczle><vczbe>): New define_insn.
- (aarch64_<sur>q<r>shr<u>n_n<mode>): Simplify expander.
-
-2023-05-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): Delete.
- (aarch64_xtn<mode>_insn_be): Likewise.
- (trunc<mode><Vnarrowq>2): Rename to...
- (trunc<mode><Vnarrowq>2<vczle><vczbe>): ... This.
- (aarch64_xtn<mode>): Move under the above. Just emit the truncate RTL.
- (aarch64_<su>qmovn<mode>): Likewise.
- (aarch64_<su>qmovn<mode><vczle><vczbe>): New define_insn.
- (aarch64_<su>qmovn<mode>_insn_le): Delete.
- (aarch64_<su>qmovn<mode>_insn_be): Likewise.
-
-2023-05-10 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): For vfmv.f.s/vmv.x.s
- intruction replace null avl with (const_int 0).
-
-2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_support_vector_misalignment): Fix
- incorrect codes.
-
-2023-05-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109773
- * config/riscv/riscv-vsetvl.cc (avl_source_has_vsetvl_p): New function.
- (source_equal_p): Fix dead loop in vsetvl avl checking.
-
-2023-05-10 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.cc (cris_postdbr_cmpelim): Correct mode
- of modeadjusted_dccr.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New.
- * config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New.
- * config/arm/arm-mve-builtins-base.h (vmaxaq, vminaq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vmaxaq and
- vminaq.
- * config/arm/arm_mve.h (vminaq): Remove.
- (vmaxaq): Remove.
- (vminaq_m): Remove.
- (vmaxaq_m): Remove.
- (vminaq_s8): Remove.
- (vmaxaq_s8): Remove.
- (vminaq_s16): Remove.
- (vmaxaq_s16): Remove.
- (vminaq_s32): Remove.
- (vmaxaq_s32): Remove.
- (vminaq_m_s8): Remove.
- (vmaxaq_m_s8): Remove.
- (vminaq_m_s16): Remove.
- (vmaxaq_m_s16): Remove.
- (vminaq_m_s32): Remove.
- (vmaxaq_m_s32): Remove.
- (__arm_vminaq_s8): Remove.
- (__arm_vmaxaq_s8): Remove.
- (__arm_vminaq_s16): Remove.
- (__arm_vmaxaq_s16): Remove.
- (__arm_vminaq_s32): Remove.
- (__arm_vmaxaq_s32): Remove.
- (__arm_vminaq_m_s8): Remove.
- (__arm_vmaxaq_m_s8): Remove.
- (__arm_vminaq_m_s16): Remove.
- (__arm_vmaxaq_m_s16): Remove.
- (__arm_vminaq_m_s32): Remove.
- (__arm_vmaxaq_m_s32): Remove.
- (__arm_vminaq): Remove.
- (__arm_vmaxaq): Remove.
- (__arm_vminaq_m): Remove.
- (__arm_vmaxaq_m): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M):
- New.
- (mve_insn): Add vmaxa, vmina.
- (supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S.
- * config/arm/mve.md (mve_vmaxaq_s<mode>, mve_vminaq_s<mode>):
- Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmaxaq_m_s<mode>, mve_vminaq_m_s<mode>): Merge into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New.
- * config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New.
- * config/arm/arm-mve-builtins-base.h (vmaxnmaq, vminnmaq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vmaxnmaq and
- vminnmaq.
- * config/arm/arm_mve.h (vminnmaq): Remove.
- (vmaxnmaq): Remove.
- (vmaxnmaq_m): Remove.
- (vminnmaq_m): Remove.
- (vminnmaq_f16): Remove.
- (vmaxnmaq_f16): Remove.
- (vminnmaq_f32): Remove.
- (vmaxnmaq_f32): Remove.
- (vmaxnmaq_m_f16): Remove.
- (vminnmaq_m_f16): Remove.
- (vmaxnmaq_m_f32): Remove.
- (vminnmaq_m_f32): Remove.
- (__arm_vminnmaq_f16): Remove.
- (__arm_vmaxnmaq_f16): Remove.
- (__arm_vminnmaq_f32): Remove.
- (__arm_vmaxnmaq_f32): Remove.
- (__arm_vmaxnmaq_m_f16): Remove.
- (__arm_vminnmaq_m_f16): Remove.
- (__arm_vmaxnmaq_m_f32): Remove.
- (__arm_vminnmaq_m_f32): Remove.
- (__arm_vminnmaq): Remove.
- (__arm_vmaxnmaq): Remove.
- (__arm_vmaxnmaq_m): Remove.
- (__arm_vminnmaq_m): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ)
- (MVE_VMAXNMA_VMINNMAQ_M): New.
- (mve_insn): Add vmaxnma, vminnma.
- * config/arm/mve.md (mve_vmaxnmaq_f<mode>, mve_vminnmaq_f<mode>):
- Merge into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
- (mve_vmaxnmaq_m_f<mode>, mve_vminnmaq_m_f<mode>): Merge into ...
- (@mve_<mve_insn>q_m_f<mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New.
- (vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New.
- * config/arm/arm-mve-builtins-base.def (vmaxnmavq, vmaxnmvq)
- (vminnmavq, vminnmvq): New.
- * config/arm/arm-mve-builtins-base.h (vmaxnmavq, vmaxnmvq)
- (vminnmavq, vminnmvq): New.
- * config/arm/arm_mve.h (vminnmvq): Remove.
- (vminnmavq): Remove.
- (vmaxnmvq): Remove.
- (vmaxnmavq): Remove.
- (vmaxnmavq_p): Remove.
- (vmaxnmvq_p): Remove.
- (vminnmavq_p): Remove.
- (vminnmvq_p): Remove.
- (vminnmvq_f16): Remove.
- (vminnmavq_f16): Remove.
- (vmaxnmvq_f16): Remove.
- (vmaxnmavq_f16): Remove.
- (vminnmvq_f32): Remove.
- (vminnmavq_f32): Remove.
- (vmaxnmvq_f32): Remove.
- (vmaxnmavq_f32): Remove.
- (vmaxnmavq_p_f16): Remove.
- (vmaxnmvq_p_f16): Remove.
- (vminnmavq_p_f16): Remove.
- (vminnmvq_p_f16): Remove.
- (vmaxnmavq_p_f32): Remove.
- (vmaxnmvq_p_f32): Remove.
- (vminnmavq_p_f32): Remove.
- (vminnmvq_p_f32): Remove.
- (__arm_vminnmvq_f16): Remove.
- (__arm_vminnmavq_f16): Remove.
- (__arm_vmaxnmvq_f16): Remove.
- (__arm_vmaxnmavq_f16): Remove.
- (__arm_vminnmvq_f32): Remove.
- (__arm_vminnmavq_f32): Remove.
- (__arm_vmaxnmvq_f32): Remove.
- (__arm_vmaxnmavq_f32): Remove.
- (__arm_vmaxnmavq_p_f16): Remove.
- (__arm_vmaxnmvq_p_f16): Remove.
- (__arm_vminnmavq_p_f16): Remove.
- (__arm_vminnmvq_p_f16): Remove.
- (__arm_vmaxnmavq_p_f32): Remove.
- (__arm_vmaxnmvq_p_f32): Remove.
- (__arm_vminnmavq_p_f32): Remove.
- (__arm_vminnmvq_p_f32): Remove.
- (__arm_vminnmvq): Remove.
- (__arm_vminnmavq): Remove.
- (__arm_vmaxnmvq): Remove.
- (__arm_vmaxnmavq): Remove.
- (__arm_vmaxnmavq_p): Remove.
- (__arm_vmaxnmvq_p): Remove.
- (__arm_vminnmavq_p): Remove.
- (__arm_vminnmvq_p): Remove.
- (__arm_vmaxnmavq_m): Remove.
- (__arm_vmaxnmvq_m): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-functions.h
- (unspec_mve_function_exact_insn_pred_p): Use code_for_mve_q_p_f.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ)
- (MVE_VMAXNMxV_MINNMxVQ_P): New.
- (mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv.
- * config/arm/mve.md (mve_vmaxnmavq_f<mode>, mve_vmaxnmvq_f<mode>)
- (mve_vminnmavq_f<mode>, mve_vminnmvq_f<mode>): Merge into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
- (mve_vmaxnmavq_p_f<mode>, mve_vmaxnmvq_p_f<mode>)
- (mve_vminnmavq_p_f<mode>, mve_vminnmvq_p_f<mode>): Merge into ...
- (@mve_<mve_insn>q_p_f<mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New.
- * config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New.
- * config/arm/arm-mve-builtins-base.h (vmaxnmq, vminnmq): New.
- * config/arm/arm_mve.h (vminnmq): Remove.
- (vmaxnmq): Remove.
- (vmaxnmq_m): Remove.
- (vminnmq_m): Remove.
- (vminnmq_x): Remove.
- (vmaxnmq_x): Remove.
- (vminnmq_f16): Remove.
- (vmaxnmq_f16): Remove.
- (vminnmq_f32): Remove.
- (vmaxnmq_f32): Remove.
- (vmaxnmq_m_f32): Remove.
- (vmaxnmq_m_f16): Remove.
- (vminnmq_m_f32): Remove.
- (vminnmq_m_f16): Remove.
- (vminnmq_x_f16): Remove.
- (vminnmq_x_f32): Remove.
- (vmaxnmq_x_f16): Remove.
- (vmaxnmq_x_f32): Remove.
- (__arm_vminnmq_f16): Remove.
- (__arm_vmaxnmq_f16): Remove.
- (__arm_vminnmq_f32): Remove.
- (__arm_vmaxnmq_f32): Remove.
- (__arm_vmaxnmq_m_f32): Remove.
- (__arm_vmaxnmq_m_f16): Remove.
- (__arm_vminnmq_m_f32): Remove.
- (__arm_vminnmq_m_f16): Remove.
- (__arm_vminnmq_x_f16): Remove.
- (__arm_vminnmq_x_f32): Remove.
- (__arm_vmaxnmq_x_f16): Remove.
- (__arm_vmaxnmq_x_f32): Remove.
- (__arm_vminnmq): Remove.
- (__arm_vmaxnmq): Remove.
- (__arm_vmaxnmq_m): Remove.
- (__arm_vminnmq_m): Remove.
- (__arm_vminnmq_x): Remove.
- (__arm_vmaxnmq_x): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MAX_MIN_F): New.
- (MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F.
- (mve_insn): Add vmaxnm, vminnm.
- (max_min_f_str): New.
- * config/arm/mve.md (mve_vmaxnmq_f<mode>, mve_vminnmq_f<mode>):
- Merge into ...
- (@mve_<max_min_f_str>q_f<mode>): ... this.
- (mve_vmaxnmq_m_f<mode>, mve_vminnmq_m_f<mode>): Merge into ...
- (@mve_<mve_insn>q_m_f<mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/vec-common.md (smin<mode>3): Use VDQWH iterator.
- (smax<mode>3): Likewise.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U)
- (FUNCTION_PRED_P_S): New.
- (vmaxavq, vminavq, vmaxvq, vminvq): New.
- * config/arm/arm-mve-builtins-base.def (vmaxavq, vminavq, vmaxvq)
- (vminvq): New.
- * config/arm/arm-mve-builtins-base.h (vmaxavq, vminavq, vmaxvq)
- (vminvq): New.
- * config/arm/arm_mve.h (vminvq): Remove.
- (vmaxvq): Remove.
- (vminvq_p): Remove.
- (vmaxvq_p): Remove.
- (vminvq_u8): Remove.
- (vmaxvq_u8): Remove.
- (vminvq_s8): Remove.
- (vmaxvq_s8): Remove.
- (vminvq_u16): Remove.
- (vmaxvq_u16): Remove.
- (vminvq_s16): Remove.
- (vmaxvq_s16): Remove.
- (vminvq_u32): Remove.
- (vmaxvq_u32): Remove.
- (vminvq_s32): Remove.
- (vmaxvq_s32): Remove.
- (vminvq_p_u8): Remove.
- (vmaxvq_p_u8): Remove.
- (vminvq_p_s8): Remove.
- (vmaxvq_p_s8): Remove.
- (vminvq_p_u16): Remove.
- (vmaxvq_p_u16): Remove.
- (vminvq_p_s16): Remove.
- (vmaxvq_p_s16): Remove.
- (vminvq_p_u32): Remove.
- (vmaxvq_p_u32): Remove.
- (vminvq_p_s32): Remove.
- (vmaxvq_p_s32): Remove.
- (__arm_vminvq_u8): Remove.
- (__arm_vmaxvq_u8): Remove.
- (__arm_vminvq_s8): Remove.
- (__arm_vmaxvq_s8): Remove.
- (__arm_vminvq_u16): Remove.
- (__arm_vmaxvq_u16): Remove.
- (__arm_vminvq_s16): Remove.
- (__arm_vmaxvq_s16): Remove.
- (__arm_vminvq_u32): Remove.
- (__arm_vmaxvq_u32): Remove.
- (__arm_vminvq_s32): Remove.
- (__arm_vmaxvq_s32): Remove.
- (__arm_vminvq_p_u8): Remove.
- (__arm_vmaxvq_p_u8): Remove.
- (__arm_vminvq_p_s8): Remove.
- (__arm_vmaxvq_p_s8): Remove.
- (__arm_vminvq_p_u16): Remove.
- (__arm_vmaxvq_p_u16): Remove.
- (__arm_vminvq_p_s16): Remove.
- (__arm_vmaxvq_p_s16): Remove.
- (__arm_vminvq_p_u32): Remove.
- (__arm_vmaxvq_p_u32): Remove.
- (__arm_vminvq_p_s32): Remove.
- (__arm_vmaxvq_p_s32): Remove.
- (__arm_vminvq): Remove.
- (__arm_vmaxvq): Remove.
- (__arm_vminvq_p): Remove.
- (__arm_vmaxvq_p): Remove.
- (vminavq): Remove.
- (vmaxavq): Remove.
- (vminavq_p): Remove.
- (vmaxavq_p): Remove.
- (vminavq_s8): Remove.
- (vmaxavq_s8): Remove.
- (vminavq_s16): Remove.
- (vmaxavq_s16): Remove.
- (vminavq_s32): Remove.
- (vmaxavq_s32): Remove.
- (vminavq_p_s8): Remove.
- (vmaxavq_p_s8): Remove.
- (vminavq_p_s16): Remove.
- (vmaxavq_p_s16): Remove.
- (vminavq_p_s32): Remove.
- (vmaxavq_p_s32): Remove.
- (__arm_vminavq_s8): Remove.
- (__arm_vmaxavq_s8): Remove.
- (__arm_vminavq_s16): Remove.
- (__arm_vmaxavq_s16): Remove.
- (__arm_vminavq_s32): Remove.
- (__arm_vmaxavq_s32): Remove.
- (__arm_vminavq_p_s8): Remove.
- (__arm_vmaxavq_p_s8): Remove.
- (__arm_vminavq_p_s16): Remove.
- (__arm_vmaxavq_p_s16): Remove.
- (__arm_vminavq_p_s32): Remove.
- (__arm_vmaxavq_p_s32): Remove.
- (__arm_vminavq): Remove.
- (__arm_vmaxavq): Remove.
- (__arm_vminavq_p): Remove.
- (__arm_vmaxavq_p): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New.
- (mve_insn): Add vmaxav, vmaxv, vminav, vminv.
- (supf): Add VMAXAVQ_S, VMAXAVQ_P_S, VMINAVQ_S, VMINAVQ_P_S.
- * config/arm/mve.md (mve_vmaxavq_s<mode>, mve_vmaxvq_<supf><mode>)
- (mve_vminavq_s<mode>, mve_vminvq_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmaxavq_p_s<mode>, mve_vmaxvq_p_<supf><mode>)
- (mve_vminavq_p_s<mode>, mve_vminvq_p_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_p_<supf><mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_mve_function_exact_insn_pred_p): New.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New.
-
-2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
-
- * config/aarch64/aarch64-protos.h (aarch64_adjust_reg_alloc_order):
- Declare.
- * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
- (ADJUST_REG_ALLOC_ORDER): Likewise.
- * config/aarch64/aarch64.cc (aarch64_adjust_reg_alloc_order): New
- function.
- * config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Use
- Upa rather than Upl for unpredicated movprfx alternatives.
-
-2023-05-09 Jeff Law <jlaw@ventanamicro>
-
- * config/h8300/testcompare.md: Add peephole2 which uses a memory
- load to set flags, thus eliminating a compare against zero.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New.
- * config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New.
- * config/arm/arm-mve-builtins-base.h (vshllbq, vshlltq): New.
- * config/arm/arm_mve.h (vshlltq): Remove.
- (vshllbq): Remove.
- (vshllbq_m): Remove.
- (vshlltq_m): Remove.
- (vshllbq_x): Remove.
- (vshlltq_x): Remove.
- (vshlltq_n_u8): Remove.
- (vshllbq_n_u8): Remove.
- (vshlltq_n_s8): Remove.
- (vshllbq_n_s8): Remove.
- (vshlltq_n_u16): Remove.
- (vshllbq_n_u16): Remove.
- (vshlltq_n_s16): Remove.
- (vshllbq_n_s16): Remove.
- (vshllbq_m_n_s8): Remove.
- (vshllbq_m_n_s16): Remove.
- (vshllbq_m_n_u8): Remove.
- (vshllbq_m_n_u16): Remove.
- (vshlltq_m_n_s8): Remove.
- (vshlltq_m_n_s16): Remove.
- (vshlltq_m_n_u8): Remove.
- (vshlltq_m_n_u16): Remove.
- (vshllbq_x_n_s8): Remove.
- (vshllbq_x_n_s16): Remove.
- (vshllbq_x_n_u8): Remove.
- (vshllbq_x_n_u16): Remove.
- (vshlltq_x_n_s8): Remove.
- (vshlltq_x_n_s16): Remove.
- (vshlltq_x_n_u8): Remove.
- (vshlltq_x_n_u16): Remove.
- (__arm_vshlltq_n_u8): Remove.
- (__arm_vshllbq_n_u8): Remove.
- (__arm_vshlltq_n_s8): Remove.
- (__arm_vshllbq_n_s8): Remove.
- (__arm_vshlltq_n_u16): Remove.
- (__arm_vshllbq_n_u16): Remove.
- (__arm_vshlltq_n_s16): Remove.
- (__arm_vshllbq_n_s16): Remove.
- (__arm_vshllbq_m_n_s8): Remove.
- (__arm_vshllbq_m_n_s16): Remove.
- (__arm_vshllbq_m_n_u8): Remove.
- (__arm_vshllbq_m_n_u16): Remove.
- (__arm_vshlltq_m_n_s8): Remove.
- (__arm_vshlltq_m_n_s16): Remove.
- (__arm_vshlltq_m_n_u8): Remove.
- (__arm_vshlltq_m_n_u16): Remove.
- (__arm_vshllbq_x_n_s8): Remove.
- (__arm_vshllbq_x_n_s16): Remove.
- (__arm_vshllbq_x_n_u8): Remove.
- (__arm_vshllbq_x_n_u16): Remove.
- (__arm_vshlltq_x_n_s8): Remove.
- (__arm_vshlltq_x_n_s16): Remove.
- (__arm_vshlltq_x_n_u8): Remove.
- (__arm_vshlltq_x_n_u16): Remove.
- (__arm_vshlltq): Remove.
- (__arm_vshllbq): Remove.
- (__arm_vshllbq_m): Remove.
- (__arm_vshlltq_m): Remove.
- (__arm_vshllbq_x): Remove.
- (__arm_vshlltq_x): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (mve_insn): Add vshllb, vshllt.
- (VSHLLBQ_N, VSHLLTQ_N): Remove.
- (VSHLLxQ_N): New.
- (VSHLLBQ_M_N, VSHLLTQ_M_N): Remove.
- (VSHLLxQ_M_N): New.
- * config/arm/mve.md (mve_vshllbq_n_<supf><mode>)
- (mve_vshlltq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vshllbq_m_n_<supf><mode>, mve_vshlltq_m_n_<supf><mode>):
- Merge into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq)
- (vqmovntq, vqmovunbq, vqmovuntq): New.
- * config/arm/arm-mve-builtins-base.def (vmovnbq, vmovntq)
- (vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq): New.
- * config/arm/arm-mve-builtins-base.h (vmovnbq, vmovntq, vqmovnbq)
- (vqmovntq, vqmovunbq, vqmovuntq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vmovnbq,
- vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq.
- * config/arm/arm_mve.h (vqmovntq): Remove.
- (vqmovnbq): Remove.
- (vqmovnbq_m): Remove.
- (vqmovntq_m): Remove.
- (vqmovntq_u16): Remove.
- (vqmovnbq_u16): Remove.
- (vqmovntq_s16): Remove.
- (vqmovnbq_s16): Remove.
- (vqmovntq_u32): Remove.
- (vqmovnbq_u32): Remove.
- (vqmovntq_s32): Remove.
- (vqmovnbq_s32): Remove.
- (vqmovnbq_m_s16): Remove.
- (vqmovntq_m_s16): Remove.
- (vqmovnbq_m_u16): Remove.
- (vqmovntq_m_u16): Remove.
- (vqmovnbq_m_s32): Remove.
- (vqmovntq_m_s32): Remove.
- (vqmovnbq_m_u32): Remove.
- (vqmovntq_m_u32): Remove.
- (__arm_vqmovntq_u16): Remove.
- (__arm_vqmovnbq_u16): Remove.
- (__arm_vqmovntq_s16): Remove.
- (__arm_vqmovnbq_s16): Remove.
- (__arm_vqmovntq_u32): Remove.
- (__arm_vqmovnbq_u32): Remove.
- (__arm_vqmovntq_s32): Remove.
- (__arm_vqmovnbq_s32): Remove.
- (__arm_vqmovnbq_m_s16): Remove.
- (__arm_vqmovntq_m_s16): Remove.
- (__arm_vqmovnbq_m_u16): Remove.
- (__arm_vqmovntq_m_u16): Remove.
- (__arm_vqmovnbq_m_s32): Remove.
- (__arm_vqmovntq_m_s32): Remove.
- (__arm_vqmovnbq_m_u32): Remove.
- (__arm_vqmovntq_m_u32): Remove.
- (__arm_vqmovntq): Remove.
- (__arm_vqmovnbq): Remove.
- (__arm_vqmovnbq_m): Remove.
- (__arm_vqmovntq_m): Remove.
- (vmovntq): Remove.
- (vmovnbq): Remove.
- (vmovnbq_m): Remove.
- (vmovntq_m): Remove.
- (vmovntq_u16): Remove.
- (vmovnbq_u16): Remove.
- (vmovntq_s16): Remove.
- (vmovnbq_s16): Remove.
- (vmovntq_u32): Remove.
- (vmovnbq_u32): Remove.
- (vmovntq_s32): Remove.
- (vmovnbq_s32): Remove.
- (vmovnbq_m_s16): Remove.
- (vmovntq_m_s16): Remove.
- (vmovnbq_m_u16): Remove.
- (vmovntq_m_u16): Remove.
- (vmovnbq_m_s32): Remove.
- (vmovntq_m_s32): Remove.
- (vmovnbq_m_u32): Remove.
- (vmovntq_m_u32): Remove.
- (__arm_vmovntq_u16): Remove.
- (__arm_vmovnbq_u16): Remove.
- (__arm_vmovntq_s16): Remove.
- (__arm_vmovnbq_s16): Remove.
- (__arm_vmovntq_u32): Remove.
- (__arm_vmovnbq_u32): Remove.
- (__arm_vmovntq_s32): Remove.
- (__arm_vmovnbq_s32): Remove.
- (__arm_vmovnbq_m_s16): Remove.
- (__arm_vmovntq_m_s16): Remove.
- (__arm_vmovnbq_m_u16): Remove.
- (__arm_vmovntq_m_u16): Remove.
- (__arm_vmovnbq_m_s32): Remove.
- (__arm_vmovntq_m_s32): Remove.
- (__arm_vmovnbq_m_u32): Remove.
- (__arm_vmovntq_m_u32): Remove.
- (__arm_vmovntq): Remove.
- (__arm_vmovnbq): Remove.
- (__arm_vmovnbq_m): Remove.
- (__arm_vmovntq_m): Remove.
- (vqmovuntq): Remove.
- (vqmovunbq): Remove.
- (vqmovunbq_m): Remove.
- (vqmovuntq_m): Remove.
- (vqmovuntq_s16): Remove.
- (vqmovunbq_s16): Remove.
- (vqmovuntq_s32): Remove.
- (vqmovunbq_s32): Remove.
- (vqmovunbq_m_s16): Remove.
- (vqmovuntq_m_s16): Remove.
- (vqmovunbq_m_s32): Remove.
- (vqmovuntq_m_s32): Remove.
- (__arm_vqmovuntq_s16): Remove.
- (__arm_vqmovunbq_s16): Remove.
- (__arm_vqmovuntq_s32): Remove.
- (__arm_vqmovunbq_s32): Remove.
- (__arm_vqmovunbq_m_s16): Remove.
- (__arm_vqmovuntq_m_s16): Remove.
- (__arm_vqmovunbq_m_s32): Remove.
- (__arm_vqmovuntq_m_s32): Remove.
- (__arm_vqmovuntq): Remove.
- (__arm_vqmovunbq): Remove.
- (__arm_vqmovunbq_m): Remove.
- (__arm_vqmovuntq_m): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New.
- (mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb,
- vqmovunt.
- (isu): Likewise.
- (supf): Add VQMOVUNBQ_M_S, VQMOVUNBQ_S, VQMOVUNTQ_M_S,
- VQMOVUNTQ_S.
- * config/arm/mve.md (mve_vmovnbq_<supf><mode>)
- (mve_vmovntq_<supf><mode>, mve_vqmovnbq_<supf><mode>)
- (mve_vqmovntq_<supf><mode>, mve_vqmovunbq_s<mode>)
- (mve_vqmovuntq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vmovnbq_m_<supf><mode>, mve_vmovntq_m_<supf><mode>)
- (mve_vqmovnbq_m_<supf><mode>, mve_vqmovntq_m_<supf><mode>)
- (mve_vqmovunbq_m_s<mode>, mve_vqmovuntq_m_s<mode>): Merge into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New.
- (binary_move_narrow_unsigned): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_move_narrow): New.
- (binary_move_narrow_unsigned): New.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New.
- (vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New.
- * config/arm/arm-mve-builtins-base.def (vrndaq, vrndmq, vrndnq)
- (vrndpq, vrndq, vrndxq): New.
- * config/arm/arm-mve-builtins-base.h (vrndaq, vrndmq, vrndnq)
- (vrndpq, vrndq, vrndxq): New.
- * config/arm/arm_mve.h (vrndxq): Remove.
- (vrndq): Remove.
- (vrndpq): Remove.
- (vrndnq): Remove.
- (vrndmq): Remove.
- (vrndaq): Remove.
- (vrndaq_m): Remove.
- (vrndmq_m): Remove.
- (vrndnq_m): Remove.
- (vrndpq_m): Remove.
- (vrndq_m): Remove.
- (vrndxq_m): Remove.
- (vrndq_x): Remove.
- (vrndnq_x): Remove.
- (vrndmq_x): Remove.
- (vrndpq_x): Remove.
- (vrndaq_x): Remove.
- (vrndxq_x): Remove.
- (vrndxq_f16): Remove.
- (vrndxq_f32): Remove.
- (vrndq_f16): Remove.
- (vrndq_f32): Remove.
- (vrndpq_f16): Remove.
- (vrndpq_f32): Remove.
- (vrndnq_f16): Remove.
- (vrndnq_f32): Remove.
- (vrndmq_f16): Remove.
- (vrndmq_f32): Remove.
- (vrndaq_f16): Remove.
- (vrndaq_f32): Remove.
- (vrndaq_m_f16): Remove.
- (vrndmq_m_f16): Remove.
- (vrndnq_m_f16): Remove.
- (vrndpq_m_f16): Remove.
- (vrndq_m_f16): Remove.
- (vrndxq_m_f16): Remove.
- (vrndaq_m_f32): Remove.
- (vrndmq_m_f32): Remove.
- (vrndnq_m_f32): Remove.
- (vrndpq_m_f32): Remove.
- (vrndq_m_f32): Remove.
- (vrndxq_m_f32): Remove.
- (vrndq_x_f16): Remove.
- (vrndq_x_f32): Remove.
- (vrndnq_x_f16): Remove.
- (vrndnq_x_f32): Remove.
- (vrndmq_x_f16): Remove.
- (vrndmq_x_f32): Remove.
- (vrndpq_x_f16): Remove.
- (vrndpq_x_f32): Remove.
- (vrndaq_x_f16): Remove.
- (vrndaq_x_f32): Remove.
- (vrndxq_x_f16): Remove.
- (vrndxq_x_f32): Remove.
- (__arm_vrndxq_f16): Remove.
- (__arm_vrndxq_f32): Remove.
- (__arm_vrndq_f16): Remove.
- (__arm_vrndq_f32): Remove.
- (__arm_vrndpq_f16): Remove.
- (__arm_vrndpq_f32): Remove.
- (__arm_vrndnq_f16): Remove.
- (__arm_vrndnq_f32): Remove.
- (__arm_vrndmq_f16): Remove.
- (__arm_vrndmq_f32): Remove.
- (__arm_vrndaq_f16): Remove.
- (__arm_vrndaq_f32): Remove.
- (__arm_vrndaq_m_f16): Remove.
- (__arm_vrndmq_m_f16): Remove.
- (__arm_vrndnq_m_f16): Remove.
- (__arm_vrndpq_m_f16): Remove.
- (__arm_vrndq_m_f16): Remove.
- (__arm_vrndxq_m_f16): Remove.
- (__arm_vrndaq_m_f32): Remove.
- (__arm_vrndmq_m_f32): Remove.
- (__arm_vrndnq_m_f32): Remove.
- (__arm_vrndpq_m_f32): Remove.
- (__arm_vrndq_m_f32): Remove.
- (__arm_vrndxq_m_f32): Remove.
- (__arm_vrndq_x_f16): Remove.
- (__arm_vrndq_x_f32): Remove.
- (__arm_vrndnq_x_f16): Remove.
- (__arm_vrndnq_x_f32): Remove.
- (__arm_vrndmq_x_f16): Remove.
- (__arm_vrndmq_x_f32): Remove.
- (__arm_vrndpq_x_f16): Remove.
- (__arm_vrndpq_x_f32): Remove.
- (__arm_vrndaq_x_f16): Remove.
- (__arm_vrndaq_x_f32): Remove.
- (__arm_vrndxq_x_f16): Remove.
- (__arm_vrndxq_x_f32): Remove.
- (__arm_vrndxq): Remove.
- (__arm_vrndq): Remove.
- (__arm_vrndpq): Remove.
- (__arm_vrndnq): Remove.
- (__arm_vrndmq): Remove.
- (__arm_vrndaq): Remove.
- (__arm_vrndaq_m): Remove.
- (__arm_vrndmq_m): Remove.
- (__arm_vrndnq_m): Remove.
- (__arm_vrndpq_m): Remove.
- (__arm_vrndq_m): Remove.
- (__arm_vrndxq_m): Remove.
- (__arm_vrndq_x): Remove.
- (__arm_vrndnq_x): Remove.
- (__arm_vrndmq_x): Remove.
- (__arm_vrndpq_x): Remove.
- (__arm_vrndaq_x): Remove.
- (__arm_vrndxq_x): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New.
- (vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New.
- * config/arm/arm-mve-builtins-base.def (vabsq, vnegq, vclsq)
- (vclzq, vqabsq, vqnegq): New.
- * config/arm/arm-mve-builtins-base.h (vabsq, vnegq, vclsq, vclzq)
- (vqabsq, vqnegq): New.
- * config/arm/arm_mve.h (vabsq): Remove.
- (vabsq_m): Remove.
- (vabsq_x): Remove.
- (vabsq_f16): Remove.
- (vabsq_f32): Remove.
- (vabsq_s8): Remove.
- (vabsq_s16): Remove.
- (vabsq_s32): Remove.
- (vabsq_m_s8): Remove.
- (vabsq_m_s16): Remove.
- (vabsq_m_s32): Remove.
- (vabsq_m_f16): Remove.
- (vabsq_m_f32): Remove.
- (vabsq_x_s8): Remove.
- (vabsq_x_s16): Remove.
- (vabsq_x_s32): Remove.
- (vabsq_x_f16): Remove.
- (vabsq_x_f32): Remove.
- (__arm_vabsq_s8): Remove.
- (__arm_vabsq_s16): Remove.
- (__arm_vabsq_s32): Remove.
- (__arm_vabsq_m_s8): Remove.
- (__arm_vabsq_m_s16): Remove.
- (__arm_vabsq_m_s32): Remove.
- (__arm_vabsq_x_s8): Remove.
- (__arm_vabsq_x_s16): Remove.
- (__arm_vabsq_x_s32): Remove.
- (__arm_vabsq_f16): Remove.
- (__arm_vabsq_f32): Remove.
- (__arm_vabsq_m_f16): Remove.
- (__arm_vabsq_m_f32): Remove.
- (__arm_vabsq_x_f16): Remove.
- (__arm_vabsq_x_f32): Remove.
- (__arm_vabsq): Remove.
- (__arm_vabsq_m): Remove.
- (__arm_vabsq_x): Remove.
- (vnegq): Remove.
- (vnegq_m): Remove.
- (vnegq_x): Remove.
- (vnegq_f16): Remove.
- (vnegq_f32): Remove.
- (vnegq_s8): Remove.
- (vnegq_s16): Remove.
- (vnegq_s32): Remove.
- (vnegq_m_s8): Remove.
- (vnegq_m_s16): Remove.
- (vnegq_m_s32): Remove.
- (vnegq_m_f16): Remove.
- (vnegq_m_f32): Remove.
- (vnegq_x_s8): Remove.
- (vnegq_x_s16): Remove.
- (vnegq_x_s32): Remove.
- (vnegq_x_f16): Remove.
- (vnegq_x_f32): Remove.
- (__arm_vnegq_s8): Remove.
- (__arm_vnegq_s16): Remove.
- (__arm_vnegq_s32): Remove.
- (__arm_vnegq_m_s8): Remove.
- (__arm_vnegq_m_s16): Remove.
- (__arm_vnegq_m_s32): Remove.
- (__arm_vnegq_x_s8): Remove.
- (__arm_vnegq_x_s16): Remove.
- (__arm_vnegq_x_s32): Remove.
- (__arm_vnegq_f16): Remove.
- (__arm_vnegq_f32): Remove.
- (__arm_vnegq_m_f16): Remove.
- (__arm_vnegq_m_f32): Remove.
- (__arm_vnegq_x_f16): Remove.
- (__arm_vnegq_x_f32): Remove.
- (__arm_vnegq): Remove.
- (__arm_vnegq_m): Remove.
- (__arm_vnegq_x): Remove.
- (vclsq): Remove.
- (vclsq_m): Remove.
- (vclsq_x): Remove.
- (vclsq_s8): Remove.
- (vclsq_s16): Remove.
- (vclsq_s32): Remove.
- (vclsq_m_s8): Remove.
- (vclsq_m_s16): Remove.
- (vclsq_m_s32): Remove.
- (vclsq_x_s8): Remove.
- (vclsq_x_s16): Remove.
- (vclsq_x_s32): Remove.
- (__arm_vclsq_s8): Remove.
- (__arm_vclsq_s16): Remove.
- (__arm_vclsq_s32): Remove.
- (__arm_vclsq_m_s8): Remove.
- (__arm_vclsq_m_s16): Remove.
- (__arm_vclsq_m_s32): Remove.
- (__arm_vclsq_x_s8): Remove.
- (__arm_vclsq_x_s16): Remove.
- (__arm_vclsq_x_s32): Remove.
- (__arm_vclsq): Remove.
- (__arm_vclsq_m): Remove.
- (__arm_vclsq_x): Remove.
- (vclzq): Remove.
- (vclzq_m): Remove.
- (vclzq_x): Remove.
- (vclzq_s8): Remove.
- (vclzq_s16): Remove.
- (vclzq_s32): Remove.
- (vclzq_u8): Remove.
- (vclzq_u16): Remove.
- (vclzq_u32): Remove.
- (vclzq_m_u8): Remove.
- (vclzq_m_s8): Remove.
- (vclzq_m_u16): Remove.
- (vclzq_m_s16): Remove.
- (vclzq_m_u32): Remove.
- (vclzq_m_s32): Remove.
- (vclzq_x_s8): Remove.
- (vclzq_x_s16): Remove.
- (vclzq_x_s32): Remove.
- (vclzq_x_u8): Remove.
- (vclzq_x_u16): Remove.
- (vclzq_x_u32): Remove.
- (__arm_vclzq_s8): Remove.
- (__arm_vclzq_s16): Remove.
- (__arm_vclzq_s32): Remove.
- (__arm_vclzq_u8): Remove.
- (__arm_vclzq_u16): Remove.
- (__arm_vclzq_u32): Remove.
- (__arm_vclzq_m_u8): Remove.
- (__arm_vclzq_m_s8): Remove.
- (__arm_vclzq_m_u16): Remove.
- (__arm_vclzq_m_s16): Remove.
- (__arm_vclzq_m_u32): Remove.
- (__arm_vclzq_m_s32): Remove.
- (__arm_vclzq_x_s8): Remove.
- (__arm_vclzq_x_s16): Remove.
- (__arm_vclzq_x_s32): Remove.
- (__arm_vclzq_x_u8): Remove.
- (__arm_vclzq_x_u16): Remove.
- (__arm_vclzq_x_u32): Remove.
- (__arm_vclzq): Remove.
- (__arm_vclzq_m): Remove.
- (__arm_vclzq_x): Remove.
- (vqabsq): Remove.
- (vqnegq): Remove.
- (vqnegq_m): Remove.
- (vqabsq_m): Remove.
- (vqabsq_s8): Remove.
- (vqabsq_s16): Remove.
- (vqabsq_s32): Remove.
- (vqnegq_s8): Remove.
- (vqnegq_s16): Remove.
- (vqnegq_s32): Remove.
- (vqnegq_m_s8): Remove.
- (vqabsq_m_s8): Remove.
- (vqnegq_m_s16): Remove.
- (vqabsq_m_s16): Remove.
- (vqnegq_m_s32): Remove.
- (vqabsq_m_s32): Remove.
- (__arm_vqabsq_s8): Remove.
- (__arm_vqabsq_s16): Remove.
- (__arm_vqabsq_s32): Remove.
- (__arm_vqnegq_s8): Remove.
- (__arm_vqnegq_s16): Remove.
- (__arm_vqnegq_s32): Remove.
- (__arm_vqnegq_m_s8): Remove.
- (__arm_vqabsq_m_s8): Remove.
- (__arm_vqnegq_m_s16): Remove.
- (__arm_vqabsq_m_s16): Remove.
- (__arm_vqnegq_m_s32): Remove.
- (__arm_vqabsq_m_s32): Remove.
- (__arm_vqabsq): Remove.
- (__arm_vqnegq): Remove.
- (__arm_vqnegq_m): Remove.
- (__arm_vqabsq_m): Remove.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_M_UNARY, MVE_INT_UNARY)
- (MVE_FP_UNARY, MVE_FP_M_UNARY): New.
- (mve_insn): Add vabs, vcls, vclz, vneg, vqabs, vqneg, vrnda,
- vrndm, vrndn, vrndp, vrnd, vrndx.
- (isu): Add VABSQ_M_S, VCLSQ_M_S, VCLZQ_M_S, VCLZQ_M_U, VNEGQ_M_S,
- VQABSQ_M_S, VQNEGQ_M_S.
- (mve_mnemo): New.
- * config/arm/mve.md (mve_vrndq_m_f<mode>, mve_vrndxq_f<mode>)
- (mve_vrndq_f<mode>, mve_vrndpq_f<mode>, mve_vrndnq_f<mode>)
- (mve_vrndmq_f<mode>, mve_vrndaq_f<mode>): Merge into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
- (mve_vnegq_f<mode>, mve_vabsq_f<mode>): Merge into ...
- (mve_v<absneg_str>q_f<mode>): ... this.
- (mve_vnegq_s<mode>, mve_vabsq_s<mode>): Merge into ...
- (mve_v<absneg_str>q_s<mode>): ... this.
- (mve_vclsq_s<mode>, mve_vqnegq_s<mode>, mve_vqabsq_s<mode>): Merge into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- (mve_vabsq_m_s<mode>, mve_vclsq_m_s<mode>)
- (mve_vclzq_m_<supf><mode>, mve_vnegq_m_s<mode>)
- (mve_vqabsq_m_s<mode>, mve_vqnegq_m_s<mode>): Merge into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
- (mve_vabsq_m_f<mode>, mve_vnegq_m_f<mode>, mve_vrndaq_m_f<mode>)
- (mve_vrndmq_m_f<mode>, mve_vrndnq_m_f<mode>, mve_vrndpq_m_f<mode>)
- (mve_vrndxq_m_f<mode>): Merge into ...
- (@mve_<mve_insn>q_m_f<mode>): ... this.
-
-2023-05-09 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (unary): New.
- * config/arm/arm-mve-builtins-shapes.h (unary): New.
-
-2023-05-09 Jakub Jelinek <jakub@redhat.com>
-
- * mux-utils.h: Fix comment typo, avoides -> avoids.
-
-2023-05-09 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109778
- * wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on
- wi::zext (x, width) rather than x if width != precision, rather
- than using wi::zext (right, width) after the shift.
- * tree-ssa-ccp.cc (bit_value_binop): Call wi::ext on the results
- of wi::lrotate or wi::rrotate.
-
-2023-05-09 Alexander Monakov <amonakov@ispras.ru>
-
- * genmatch.cc (get_out_file): Make static and rename to ...
- (choose_output): ... this. Reimplement. Update all uses ...
- (decision_tree::gen): ... here and ...
- (main): ... here.
-
-2023-05-09 Alexander Monakov <amonakov@ispras.ru>
-
- * genmatch.cc (showUsage): Reimplement as ...
- (usage): ...this. Adjust all uses.
- (main): Print usage when no arguments. Add missing 'return 1'.
-
-2023-05-09 Alexander Monakov <amonakov@ispras.ru>
-
- * genmatch.cc (header_file): Make static.
- (emit_func): Rename to...
- (fp_decl): ... this. Adjust all uses.
- (fp_decl_done): New function. Use it...
- (decision_tree::gen): ... here and...
- (write_predicate): ... here.
- (main): Adjust.
-
-2023-05-09 Richard Sandiford <richard.sandiford@arm.com>
-
- * ira-conflicts.cc (can_use_same_reg_p): Skip over non-matching
- earlyclobbers.
-
-2023-05-08 Roger Sayle <roger@nextmovesoftware.com>
- Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (any_or_plus): Move definition earlier.
- (*insvti_highpart_1): New define_insn_and_split to overwrite
- (insv) the highpart of a TImode register/memory.
-
-2023-05-08 Eugene Rozenfeld <erozen@microsoft.com>
-
- * auto-profile.cc (auto_profile): Check todo from early_inline
- to see if cleanup_tree_vfg needs to be called.
- (early_inline): Return todo from early_inliner.
-
-2023-05-08 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::get_vector_info):
- New.
- (pass_vsetvl::get_block_info): New.
- (pass_vsetvl::update_vector_info): New.
- (pass_vsetvl::simple_vsetvl): Use get_vector_info.
- (pass_vsetvl::compute_local_backward_infos): Ditto.
- (pass_vsetvl::transfer_before): Ditto.
- (pass_vsetvl::transfer_after): Ditto.
- (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
- (pass_vsetvl::local_eliminate_vsetvl_insn): Ditto.
- (pass_vsetvl::cleanup_insns): Ditto.
- (pass_vsetvl::compute_local_backward_infos): Use
- update_vector_info.
-
-2023-05-08 Jeff Law <jlaw@ventanamicro>
-
- * config/stormy16/stormy16.md (zero_extendhisi2): Fix length.
-
-2023-05-08 Richard Biener <rguenther@suse.de>
- Michael Meissner <meissner@linux.ibm.com>
-
- PR middle-end/108623
- * tree-core.h (tree_type_common): Bump up precision field to 16 bits.
- Align bit fields > 1 bit to at least an 8-bit boundary.
-
-2023-05-08 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109424
- PR tree-optimization/59424
- * tree-ssa-phiopt.cc (factor_out_conditional_conversion): Rename to ...
- (factor_out_conditional_operation): This and add support for all unary
- operations.
- (pass_phiopt::execute): Update call to factor_out_conditional_conversion
- to call factor_out_conditional_operation instead.
-
-2023-05-08 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (pass_phiopt::execute): Loop
- over factor_out_conditional_conversion.
-
-2023-05-08 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/49959
- PR tree-optimization/103771
- * tree-ssa-phiopt.cc (pass_phiopt::execute): Support
- Diamond shapped bb form for factor_out_conditional_conversion.
-
-2023-05-08 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/autovec.md (movmisalign<mode>): New pattern.
- * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): Delete.
- (riscv_vector_get_mask_mode): Ditto.
- (get_mask_policy_no_pred): Ditto.
- (get_tail_policy_no_pred): Ditto.
- (get_mask_mode): New function.
- * config/riscv/riscv-v.cc (get_mask_policy_no_pred): Delete.
- (get_tail_policy_no_pred): Ditto.
- (riscv_vector_mask_mode_p): Ditto.
- (riscv_vector_get_mask_mode): Ditto.
- (get_mask_mode): New function.
- * config/riscv/riscv-vector-builtins.cc (use_real_merge_p): Remove
- global extern.
- (get_tail_policy_for_pred): Ditto.
- * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred): Ditto.
- (get_mask_policy_for_pred): Ditto
- * config/riscv/riscv.cc (riscv_get_mask_mode): Refine codes.
-
-2023-05-08 Kito Cheng <kito.cheng@sifive.com>
-
- * common/config/riscv/riscv-common.cc (riscv_select_multilib_by_abi): New.
- (riscv_select_multilib): New.
- (riscv_compute_multilib): Extract logic to riscv_select_multilib and
- also handle select_by_abi.
- * config/riscv/elf.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Change it
- to select_by_abi_arch_cmodel from 1.
- * config/riscv/linux.h (RISCV_USE_CUSTOMISED_MULTI_LIB): Define.
- * config/riscv/riscv-opts.h (enum riscv_multilib_select_kind): New.
-
-2023-05-08 Alexander Monakov <amonakov@ispras.ru>
-
- * Makefile.in: (gimple-match-head.o-warn): Remove.
- (GIMPLE_MATCH_PD_SEQ_SRC): Do not depend on
- gimple-match-exports.cc.
- (gimple-match-auto.h): Only depend on s-gimple-match.
- (generic-match-auto.h): Likewise.
-
-2023-05-08 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109691
- * tree-ssa-dce.cc (simple_dce_from_worklist): Add need_eh_cleanup
- argument.
- If the removed statement can throw, have need_eh_cleanup
- include the bb of that statement.
- * tree-ssa-dce.h (simple_dce_from_worklist): Update declaration.
- * tree-ssa-propagate.cc (struct prop_stats_d): Remove
- num_dce.
- (substitute_and_fold_dom_walker::substitute_and_fold_dom_walker):
- Initialize dceworklist instead of stmts_to_remove.
- (substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker):
- Destore dceworklist instead of stmts_to_remove.
- (substitute_and_fold_dom_walker::before_dom_children):
- Set dceworklist instead of adding to stmts_to_remove.
- (substitute_and_fold_engine::substitute_and_fold):
- Call simple_dce_from_worklist instead of poping
- from the list.
- Don't update the stat on removal statements.
-
-2023-05-07 Andrew Pinski <apinski@marvell.com>
-
- PR target/109762
- * config/aarch64/aarch64-builtins.cc (aarch64_simd_switcher::aarch64_simd_switcher):
- Change argument type to aarch64_feature_flags.
- * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Change
- constructor argument type to aarch64_feature_flags.
- Change m_old_asm_isa_flags to be aarch64_feature_flags.
-
-2023-05-07 Jiufu Guo <guojiufu@linux.ibm.com>
-
- * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Generate
- more parallel code if can_create_pseudo_p.
-
-2023-05-07 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/43644
- * lower-subreg.cc (resolve_simple_move): Don't emit a clobber
- immediately before moving a multi-word register by parts.
-
-2023-05-06 Jeff Law <jlaw@ventanamicro>
-
- * config/riscv/riscv-v.cc (riscv_vector_preferred_simd_mode): Delete.
-
-2023-05-06 Michael Collison <collison@rivosinc.com>
-
- * tree-vect-slp.cc (can_duplicate_and_interleave_p):
- Check that GET_MODE_NUNITS is a multiple of 2.
-
-2023-05-06 Michael Collison <collison@rivosinc.com>
-
- * config/riscv/riscv.cc
- (riscv_estimated_poly_value): Implement
- TARGET_ESTIMATED_POLY_VALUE.
- (riscv_preferred_simd_mode): Implement
- TARGET_VECTORIZE_PREFERRED_SIMD_MODE.
- (riscv_get_mask_mode): Implement TARGET_VECTORIZE_GET_MASK_MODE.
- (riscv_empty_mask_is_expensive): Implement
- TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE.
- (riscv_vectorize_create_costs): Implement
- TARGET_VECTORIZE_CREATE_COSTS.
- (riscv_support_vector_misalignment): Implement
- TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
- (TARGET_ESTIMATED_POLY_VALUE): Register target macro.
- (TARGET_VECTORIZE_GET_MASK_MODE): Ditto.
- (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Ditto.
- (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Ditto.
-
-2023-05-06 Jeff Law <jlaw@ventanamicro>
-
- * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Remove
- duplicate definition.
-
-2023-05-06 Michael Collison <collison@rivosinc.com>
-
- * config/riscv/riscv-v.cc (autovec_use_vlmax_p): New function.
- (riscv_vector_preferred_simd_mode): Ditto.
- (get_mask_policy_no_pred): Ditto.
- (get_tail_policy_no_pred): Ditto.
- (riscv_vector_mask_mode_p): Ditto.
- (riscv_vector_get_mask_mode): Ditto.
-
-2023-05-06 Michael Collison <collison@rivosinc.com>
-
- * config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):
- Remove static declaration to to make externally visible.
- (get_mask_policy_for_pred): Ditto.
- * config/riscv/riscv-vector-builtins.h (get_tail_policy_for_pred):
- New external declaration.
- (get_mask_policy_for_pred): Ditto.
-
-2023-05-06 Michael Collison <collison@rivosinc.com>
-
- * config/riscv/riscv-protos.h (riscv_vector_mask_mode_p): New.
- (riscv_vector_get_mask_mode): Ditto.
- (get_mask_policy_no_pred): Ditto.
- (get_tail_policy_no_pred): Ditto.
-
-2023-05-06 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.h (struct machine_function): Add
- reg_is_wrapped_separately array for register wrapping
- information.
- * config/loongarch/loongarch.cc
- (loongarch_get_separate_components): New function.
- (loongarch_components_for_bb): Likewise.
- (loongarch_disqualify_components): Likewise.
- (loongarch_process_components): Likewise.
- (loongarch_emit_prologue_components): Likewise.
- (loongarch_emit_epilogue_components): Likewise.
- (loongarch_set_handled_components): Likewise.
- (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
- (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
- (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
- (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
- (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
- (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
- (loongarch_for_each_saved_reg): Skip registers that are wrapped
- separately.
-
-2023-05-06 Xi Ruoyao <xry111@xry111.site>
-
- PR other/109522
- * Makefile.in (s-macro_list): Pass -nostdinc to
- $(GCC_FOR_TARGET).
-
-2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (preferred_simd_mode): New function.
- * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Ditto.
- (preferred_simd_mode): Ditto.
- * config/riscv/riscv.cc (riscv_get_arg_info): Handle RVV type in function arg.
- (riscv_convert_vector_bits): Adjust for RVV auto-vectorization.
- (riscv_preferred_simd_mode): New function.
- (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): New target hook support.
- * config/riscv/vector.md: Add autovec.md.
- * config/riscv/autovec.md: New file.
-
-2023-05-06 Jakub Jelinek <jakub@redhat.com>
-
- * real.h (dconst_pi): Define.
- (dconst_e_ptr): Formatting fix.
- (dconst_pi_ptr): Declare.
- * real.cc (dconst_pi_ptr): New function.
- * gimple-range-op.cc (cfn_sincos::fold_range): Intersect the generic
- boundaries range with range computed from sin/cos of the particular
- bounds if the argument range is shorter than 2*pi.
- (cfn_sincos::op1_range): Take bulps into account when determining
- which result ranges are always invalid or behave like known NAN.
-
-2023-05-06 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-range-cache.cc (sbr_sparse_bitmap::set_bb_range): Do not
- pass type to vrange_storage::equal_p.
- * value-range-storage.cc (vrange_storage::equal_p): Remove type.
- (irange_storage::equal_p): Same.
- (frange_storage::equal_p): Same.
- * value-range-storage.h (class frange_storage): Same.
-
-2023-05-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109748
- * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): Remove it.
- (pass_vsetvl::local_eliminate_vsetvl_insn): New function.
-
-2023-05-06 liuhongt <hongtao.liu@intel.com>
-
- * combine.cc (maybe_swap_commutative_operands): Canonicalize
- vec_merge when mask is constant.
- * doc/md.texi: Document vec_merge canonicalization.
-
-2023-05-06 Jakub Jelinek <jakub@redhat.com>
-
- * value-range.h (frange_arithmetic): Declare.
- * range-op-float.cc (frange_arithmetic): No longer static.
- * gimple-range-op.cc (frange_mpfr_arg1): New function.
- (cfn_sqrt::fold_range): Intersect the generic boundaries range
- with range computed from sqrt of the particular bounds.
- (cfn_sqrt::op1_range): Intersect the generic boundaries range
- with range computed from squared particular bounds.
-
-2023-05-06 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile.in (check_p_numbers): Rename to one_to_9999, move
- earlier with helper variables also renamed.
- (MATCH_SPLUT_SEQ): Use $(wordlist 1,$(NUM_MATCH_SPLITS),$(one_to_9999))
- instead of $(shell seq 1 $(NUM_MATCH_SPLITS)).
- (check_p_subdirs): Use $(one_to_9999) instead of $(check_p_numbers).
-
-2023-05-06 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md (splitop): Add PLUS.
- * config/cris/cris.cc (cris_split_constant): Also handle
- PLUS when a split into two insns may be useful.
-
-2023-05-05 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md (movandsplit1): New define_peephole2.
-
-2023-05-05 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md (lsrandsplit1): New define_peephole2.
-
-2023-05-05 Hans-Peter Nilsson <hp@axis.com>
-
- * doc/md.texi (define_peephole2): Document order of scanning.
-
-2023-05-05 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Allow const as the operand of RVV
- indexed load/store.
-
-2023-05-05 Pan Li <pan2.li@intel.com>
-
- * config/riscv/riscv.h (VECTOR_STORE_FLAG_VALUE): Add new macro
- consumed by simplify_rtx.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New.
- * config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New.
- * config/arm/arm-mve-builtins-base.h (vrshrq, vshrq): New.
- * config/arm/arm_mve.h (vshrq): Remove.
- (vrshrq): Remove.
- (vrshrq_m): Remove.
- (vshrq_m): Remove.
- (vrshrq_x): Remove.
- (vshrq_x): Remove.
- (vshrq_n_s8): Remove.
- (vshrq_n_s16): Remove.
- (vshrq_n_s32): Remove.
- (vshrq_n_u8): Remove.
- (vshrq_n_u16): Remove.
- (vshrq_n_u32): Remove.
- (vrshrq_n_u8): Remove.
- (vrshrq_n_s8): Remove.
- (vrshrq_n_u16): Remove.
- (vrshrq_n_s16): Remove.
- (vrshrq_n_u32): Remove.
- (vrshrq_n_s32): Remove.
- (vrshrq_m_n_s8): Remove.
- (vrshrq_m_n_s32): Remove.
- (vrshrq_m_n_s16): Remove.
- (vrshrq_m_n_u8): Remove.
- (vrshrq_m_n_u32): Remove.
- (vrshrq_m_n_u16): Remove.
- (vshrq_m_n_s8): Remove.
- (vshrq_m_n_s32): Remove.
- (vshrq_m_n_s16): Remove.
- (vshrq_m_n_u8): Remove.
- (vshrq_m_n_u32): Remove.
- (vshrq_m_n_u16): Remove.
- (vrshrq_x_n_s8): Remove.
- (vrshrq_x_n_s16): Remove.
- (vrshrq_x_n_s32): Remove.
- (vrshrq_x_n_u8): Remove.
- (vrshrq_x_n_u16): Remove.
- (vrshrq_x_n_u32): Remove.
- (vshrq_x_n_s8): Remove.
- (vshrq_x_n_s16): Remove.
- (vshrq_x_n_s32): Remove.
- (vshrq_x_n_u8): Remove.
- (vshrq_x_n_u16): Remove.
- (vshrq_x_n_u32): Remove.
- (__arm_vshrq_n_s8): Remove.
- (__arm_vshrq_n_s16): Remove.
- (__arm_vshrq_n_s32): Remove.
- (__arm_vshrq_n_u8): Remove.
- (__arm_vshrq_n_u16): Remove.
- (__arm_vshrq_n_u32): Remove.
- (__arm_vrshrq_n_u8): Remove.
- (__arm_vrshrq_n_s8): Remove.
- (__arm_vrshrq_n_u16): Remove.
- (__arm_vrshrq_n_s16): Remove.
- (__arm_vrshrq_n_u32): Remove.
- (__arm_vrshrq_n_s32): Remove.
- (__arm_vrshrq_m_n_s8): Remove.
- (__arm_vrshrq_m_n_s32): Remove.
- (__arm_vrshrq_m_n_s16): Remove.
- (__arm_vrshrq_m_n_u8): Remove.
- (__arm_vrshrq_m_n_u32): Remove.
- (__arm_vrshrq_m_n_u16): Remove.
- (__arm_vshrq_m_n_s8): Remove.
- (__arm_vshrq_m_n_s32): Remove.
- (__arm_vshrq_m_n_s16): Remove.
- (__arm_vshrq_m_n_u8): Remove.
- (__arm_vshrq_m_n_u32): Remove.
- (__arm_vshrq_m_n_u16): Remove.
- (__arm_vrshrq_x_n_s8): Remove.
- (__arm_vrshrq_x_n_s16): Remove.
- (__arm_vrshrq_x_n_s32): Remove.
- (__arm_vrshrq_x_n_u8): Remove.
- (__arm_vrshrq_x_n_u16): Remove.
- (__arm_vrshrq_x_n_u32): Remove.
- (__arm_vshrq_x_n_s8): Remove.
- (__arm_vshrq_x_n_s16): Remove.
- (__arm_vshrq_x_n_s32): Remove.
- (__arm_vshrq_x_n_u8): Remove.
- (__arm_vshrq_x_n_u16): Remove.
- (__arm_vshrq_x_n_u32): Remove.
- (__arm_vshrq): Remove.
- (__arm_vrshrq): Remove.
- (__arm_vrshrq_m): Remove.
- (__arm_vshrq_m): Remove.
- (__arm_vrshrq_x): Remove.
- (__arm_vshrq_x): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New.
- (mve_insn): Add vrshr, vshr.
- * config/arm/mve.md (mve_vshrq_n_<supf><mode>)
- (mve_vrshrq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vrshrq_m_n_<supf><mode>, mve_vshrq_m_n_<supf><mode>): Merge
- into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_rshift): New.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New.
- (vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New.
- * config/arm/arm-mve-builtins-base.def (vqshrunbq, vqshruntq)
- (vqrshrunbq, vqrshruntq): New.
- * config/arm/arm-mve-builtins-base.h (vqshrunbq, vqshruntq)
- (vqrshrunbq, vqrshruntq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vqshrunbq,
- vqshruntq, vqrshrunbq, vqrshruntq.
- * config/arm/arm_mve.h (vqrshrunbq): Remove.
- (vqrshruntq): Remove.
- (vqrshrunbq_m): Remove.
- (vqrshruntq_m): Remove.
- (vqrshrunbq_n_s16): Remove.
- (vqrshrunbq_n_s32): Remove.
- (vqrshruntq_n_s16): Remove.
- (vqrshruntq_n_s32): Remove.
- (vqrshrunbq_m_n_s32): Remove.
- (vqrshrunbq_m_n_s16): Remove.
- (vqrshruntq_m_n_s32): Remove.
- (vqrshruntq_m_n_s16): Remove.
- (__arm_vqrshrunbq_n_s16): Remove.
- (__arm_vqrshrunbq_n_s32): Remove.
- (__arm_vqrshruntq_n_s16): Remove.
- (__arm_vqrshruntq_n_s32): Remove.
- (__arm_vqrshrunbq_m_n_s32): Remove.
- (__arm_vqrshrunbq_m_n_s16): Remove.
- (__arm_vqrshruntq_m_n_s32): Remove.
- (__arm_vqrshruntq_m_n_s16): Remove.
- (__arm_vqrshrunbq): Remove.
- (__arm_vqrshruntq): Remove.
- (__arm_vqrshrunbq_m): Remove.
- (__arm_vqrshruntq_m): Remove.
- (vqshrunbq): Remove.
- (vqshruntq): Remove.
- (vqshrunbq_m): Remove.
- (vqshruntq_m): Remove.
- (vqshrunbq_n_s16): Remove.
- (vqshruntq_n_s16): Remove.
- (vqshrunbq_n_s32): Remove.
- (vqshruntq_n_s32): Remove.
- (vqshrunbq_m_n_s32): Remove.
- (vqshrunbq_m_n_s16): Remove.
- (vqshruntq_m_n_s32): Remove.
- (vqshruntq_m_n_s16): Remove.
- (__arm_vqshrunbq_n_s16): Remove.
- (__arm_vqshruntq_n_s16): Remove.
- (__arm_vqshrunbq_n_s32): Remove.
- (__arm_vqshruntq_n_s32): Remove.
- (__arm_vqshrunbq_m_n_s32): Remove.
- (__arm_vqshrunbq_m_n_s16): Remove.
- (__arm_vqshruntq_m_n_s32): Remove.
- (__arm_vqshruntq_m_n_s16): Remove.
- (__arm_vqshrunbq): Remove.
- (__arm_vqshruntq): Remove.
- (__arm_vqshrunbq_m): Remove.
- (__arm_vqshruntq_m): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ,
- VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
- (MVE_SHRN_M_N): Likewise.
- (mve_insn): Add vqrshrunb, vqrshrunt, vqshrunb, vqshrunt.
- (isu): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ.
- (supf): Likewise.
- * config/arm/mve.md (mve_vqrshrunbq_n_s<mode>): Remove.
- (mve_vqrshruntq_n_s<mode>): Remove.
- (mve_vqshrunbq_n_s<mode>): Remove.
- (mve_vqshruntq_n_s<mode>): Remove.
- (mve_vqrshrunbq_m_n_s<mode>): Remove.
- (mve_vqrshruntq_m_n_s<mode>): Remove.
- (mve_vqshrunbq_m_n_s<mode>): Remove.
- (mve_vqshruntq_m_n_s<mode>): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc
- (binary_rshift_narrow_unsigned): New.
- * config/arm/arm-mve-builtins-shapes.h
- (binary_rshift_narrow_unsigned): New.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New.
- (vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq)
- (vqrshrnbq, vqrshrntq): New.
- * config/arm/arm-mve-builtins-base.def (vshrnbq, vshrntq)
- (vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq):
- New.
- * config/arm/arm-mve-builtins-base.h (vshrnbq, vshrntq, vrshrnbq)
- (vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vshrnbq,
- vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq,
- vqrshrntq.
- * config/arm/arm_mve.h (vshrnbq): Remove.
- (vshrntq): Remove.
- (vshrnbq_m): Remove.
- (vshrntq_m): Remove.
- (vshrnbq_n_s16): Remove.
- (vshrntq_n_s16): Remove.
- (vshrnbq_n_u16): Remove.
- (vshrntq_n_u16): Remove.
- (vshrnbq_n_s32): Remove.
- (vshrntq_n_s32): Remove.
- (vshrnbq_n_u32): Remove.
- (vshrntq_n_u32): Remove.
- (vshrnbq_m_n_s32): Remove.
- (vshrnbq_m_n_s16): Remove.
- (vshrnbq_m_n_u32): Remove.
- (vshrnbq_m_n_u16): Remove.
- (vshrntq_m_n_s32): Remove.
- (vshrntq_m_n_s16): Remove.
- (vshrntq_m_n_u32): Remove.
- (vshrntq_m_n_u16): Remove.
- (__arm_vshrnbq_n_s16): Remove.
- (__arm_vshrntq_n_s16): Remove.
- (__arm_vshrnbq_n_u16): Remove.
- (__arm_vshrntq_n_u16): Remove.
- (__arm_vshrnbq_n_s32): Remove.
- (__arm_vshrntq_n_s32): Remove.
- (__arm_vshrnbq_n_u32): Remove.
- (__arm_vshrntq_n_u32): Remove.
- (__arm_vshrnbq_m_n_s32): Remove.
- (__arm_vshrnbq_m_n_s16): Remove.
- (__arm_vshrnbq_m_n_u32): Remove.
- (__arm_vshrnbq_m_n_u16): Remove.
- (__arm_vshrntq_m_n_s32): Remove.
- (__arm_vshrntq_m_n_s16): Remove.
- (__arm_vshrntq_m_n_u32): Remove.
- (__arm_vshrntq_m_n_u16): Remove.
- (__arm_vshrnbq): Remove.
- (__arm_vshrntq): Remove.
- (__arm_vshrnbq_m): Remove.
- (__arm_vshrntq_m): Remove.
- (vrshrnbq): Remove.
- (vrshrntq): Remove.
- (vrshrnbq_m): Remove.
- (vrshrntq_m): Remove.
- (vrshrnbq_n_s16): Remove.
- (vrshrntq_n_s16): Remove.
- (vrshrnbq_n_u16): Remove.
- (vrshrntq_n_u16): Remove.
- (vrshrnbq_n_s32): Remove.
- (vrshrntq_n_s32): Remove.
- (vrshrnbq_n_u32): Remove.
- (vrshrntq_n_u32): Remove.
- (vrshrnbq_m_n_s32): Remove.
- (vrshrnbq_m_n_s16): Remove.
- (vrshrnbq_m_n_u32): Remove.
- (vrshrnbq_m_n_u16): Remove.
- (vrshrntq_m_n_s32): Remove.
- (vrshrntq_m_n_s16): Remove.
- (vrshrntq_m_n_u32): Remove.
- (vrshrntq_m_n_u16): Remove.
- (__arm_vrshrnbq_n_s16): Remove.
- (__arm_vrshrntq_n_s16): Remove.
- (__arm_vrshrnbq_n_u16): Remove.
- (__arm_vrshrntq_n_u16): Remove.
- (__arm_vrshrnbq_n_s32): Remove.
- (__arm_vrshrntq_n_s32): Remove.
- (__arm_vrshrnbq_n_u32): Remove.
- (__arm_vrshrntq_n_u32): Remove.
- (__arm_vrshrnbq_m_n_s32): Remove.
- (__arm_vrshrnbq_m_n_s16): Remove.
- (__arm_vrshrnbq_m_n_u32): Remove.
- (__arm_vrshrnbq_m_n_u16): Remove.
- (__arm_vrshrntq_m_n_s32): Remove.
- (__arm_vrshrntq_m_n_s16): Remove.
- (__arm_vrshrntq_m_n_u32): Remove.
- (__arm_vrshrntq_m_n_u16): Remove.
- (__arm_vrshrnbq): Remove.
- (__arm_vrshrntq): Remove.
- (__arm_vrshrnbq_m): Remove.
- (__arm_vrshrntq_m): Remove.
- (vqshrnbq): Remove.
- (vqshrntq): Remove.
- (vqshrnbq_m): Remove.
- (vqshrntq_m): Remove.
- (vqshrnbq_n_s16): Remove.
- (vqshrntq_n_s16): Remove.
- (vqshrnbq_n_u16): Remove.
- (vqshrntq_n_u16): Remove.
- (vqshrnbq_n_s32): Remove.
- (vqshrntq_n_s32): Remove.
- (vqshrnbq_n_u32): Remove.
- (vqshrntq_n_u32): Remove.
- (vqshrnbq_m_n_s32): Remove.
- (vqshrnbq_m_n_s16): Remove.
- (vqshrnbq_m_n_u32): Remove.
- (vqshrnbq_m_n_u16): Remove.
- (vqshrntq_m_n_s32): Remove.
- (vqshrntq_m_n_s16): Remove.
- (vqshrntq_m_n_u32): Remove.
- (vqshrntq_m_n_u16): Remove.
- (__arm_vqshrnbq_n_s16): Remove.
- (__arm_vqshrntq_n_s16): Remove.
- (__arm_vqshrnbq_n_u16): Remove.
- (__arm_vqshrntq_n_u16): Remove.
- (__arm_vqshrnbq_n_s32): Remove.
- (__arm_vqshrntq_n_s32): Remove.
- (__arm_vqshrnbq_n_u32): Remove.
- (__arm_vqshrntq_n_u32): Remove.
- (__arm_vqshrnbq_m_n_s32): Remove.
- (__arm_vqshrnbq_m_n_s16): Remove.
- (__arm_vqshrnbq_m_n_u32): Remove.
- (__arm_vqshrnbq_m_n_u16): Remove.
- (__arm_vqshrntq_m_n_s32): Remove.
- (__arm_vqshrntq_m_n_s16): Remove.
- (__arm_vqshrntq_m_n_u32): Remove.
- (__arm_vqshrntq_m_n_u16): Remove.
- (__arm_vqshrnbq): Remove.
- (__arm_vqshrntq): Remove.
- (__arm_vqshrnbq_m): Remove.
- (__arm_vqshrntq_m): Remove.
- (vqrshrnbq): Remove.
- (vqrshrntq): Remove.
- (vqrshrnbq_m): Remove.
- (vqrshrntq_m): Remove.
- (vqrshrnbq_n_s16): Remove.
- (vqrshrnbq_n_u16): Remove.
- (vqrshrnbq_n_s32): Remove.
- (vqrshrnbq_n_u32): Remove.
- (vqrshrntq_n_s16): Remove.
- (vqrshrntq_n_u16): Remove.
- (vqrshrntq_n_s32): Remove.
- (vqrshrntq_n_u32): Remove.
- (vqrshrnbq_m_n_s32): Remove.
- (vqrshrnbq_m_n_s16): Remove.
- (vqrshrnbq_m_n_u32): Remove.
- (vqrshrnbq_m_n_u16): Remove.
- (vqrshrntq_m_n_s32): Remove.
- (vqrshrntq_m_n_s16): Remove.
- (vqrshrntq_m_n_u32): Remove.
- (vqrshrntq_m_n_u16): Remove.
- (__arm_vqrshrnbq_n_s16): Remove.
- (__arm_vqrshrnbq_n_u16): Remove.
- (__arm_vqrshrnbq_n_s32): Remove.
- (__arm_vqrshrnbq_n_u32): Remove.
- (__arm_vqrshrntq_n_s16): Remove.
- (__arm_vqrshrntq_n_u16): Remove.
- (__arm_vqrshrntq_n_s32): Remove.
- (__arm_vqrshrntq_n_u32): Remove.
- (__arm_vqrshrnbq_m_n_s32): Remove.
- (__arm_vqrshrnbq_m_n_s16): Remove.
- (__arm_vqrshrnbq_m_n_u32): Remove.
- (__arm_vqrshrnbq_m_n_u16): Remove.
- (__arm_vqrshrntq_m_n_s32): Remove.
- (__arm_vqrshrntq_m_n_s16): Remove.
- (__arm_vqrshrntq_m_n_u32): Remove.
- (__arm_vqrshrntq_m_n_u16): Remove.
- (__arm_vqrshrnbq): Remove.
- (__arm_vqrshrntq): Remove.
- (__arm_vqrshrnbq_m): Remove.
- (__arm_vqrshrntq_m): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_SHRN_N, MVE_SHRN_M_N): New.
- (mve_insn): Add vqrshrnb, vqrshrnt, vqshrnb, vqshrnt, vrshrnb,
- vrshrnt, vshrnb, vshrnt.
- (isu): New.
- * config/arm/mve.md (mve_vqrshrnbq_n_<supf><mode>)
- (mve_vqrshrntq_n_<supf><mode>, mve_vqshrnbq_n_<supf><mode>)
- (mve_vqshrntq_n_<supf><mode>, mve_vrshrnbq_n_<supf><mode>)
- (mve_vrshrntq_n_<supf><mode>, mve_vshrnbq_n_<supf><mode>)
- (mve_vshrntq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vqrshrnbq_m_n_<supf><mode>, mve_vqrshrntq_m_n_<supf><mode>)
- (mve_vqshrnbq_m_n_<supf><mode>, mve_vqshrntq_m_n_<supf><mode>)
- (mve_vrshrnbq_m_n_<supf><mode>, mve_vrshrntq_m_n_<supf><mode>)
- (mve_vshrnbq_m_n_<supf><mode>, mve_vshrntq_m_n_<supf><mode>):
- Merge into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow):
- New.
- * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New.
- (vmaxq, vminq): New.
- * config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New.
- * config/arm/arm-mve-builtins-base.h (vmaxq, vminq): New.
- * config/arm/arm_mve.h (vminq): Remove.
- (vmaxq): Remove.
- (vmaxq_m): Remove.
- (vminq_m): Remove.
- (vminq_x): Remove.
- (vmaxq_x): Remove.
- (vminq_u8): Remove.
- (vmaxq_u8): Remove.
- (vminq_s8): Remove.
- (vmaxq_s8): Remove.
- (vminq_u16): Remove.
- (vmaxq_u16): Remove.
- (vminq_s16): Remove.
- (vmaxq_s16): Remove.
- (vminq_u32): Remove.
- (vmaxq_u32): Remove.
- (vminq_s32): Remove.
- (vmaxq_s32): Remove.
- (vmaxq_m_s8): Remove.
- (vmaxq_m_s32): Remove.
- (vmaxq_m_s16): Remove.
- (vmaxq_m_u8): Remove.
- (vmaxq_m_u32): Remove.
- (vmaxq_m_u16): Remove.
- (vminq_m_s8): Remove.
- (vminq_m_s32): Remove.
- (vminq_m_s16): Remove.
- (vminq_m_u8): Remove.
- (vminq_m_u32): Remove.
- (vminq_m_u16): Remove.
- (vminq_x_s8): Remove.
- (vminq_x_s16): Remove.
- (vminq_x_s32): Remove.
- (vminq_x_u8): Remove.
- (vminq_x_u16): Remove.
- (vminq_x_u32): Remove.
- (vmaxq_x_s8): Remove.
- (vmaxq_x_s16): Remove.
- (vmaxq_x_s32): Remove.
- (vmaxq_x_u8): Remove.
- (vmaxq_x_u16): Remove.
- (vmaxq_x_u32): Remove.
- (__arm_vminq_u8): Remove.
- (__arm_vmaxq_u8): Remove.
- (__arm_vminq_s8): Remove.
- (__arm_vmaxq_s8): Remove.
- (__arm_vminq_u16): Remove.
- (__arm_vmaxq_u16): Remove.
- (__arm_vminq_s16): Remove.
- (__arm_vmaxq_s16): Remove.
- (__arm_vminq_u32): Remove.
- (__arm_vmaxq_u32): Remove.
- (__arm_vminq_s32): Remove.
- (__arm_vmaxq_s32): Remove.
- (__arm_vmaxq_m_s8): Remove.
- (__arm_vmaxq_m_s32): Remove.
- (__arm_vmaxq_m_s16): Remove.
- (__arm_vmaxq_m_u8): Remove.
- (__arm_vmaxq_m_u32): Remove.
- (__arm_vmaxq_m_u16): Remove.
- (__arm_vminq_m_s8): Remove.
- (__arm_vminq_m_s32): Remove.
- (__arm_vminq_m_s16): Remove.
- (__arm_vminq_m_u8): Remove.
- (__arm_vminq_m_u32): Remove.
- (__arm_vminq_m_u16): Remove.
- (__arm_vminq_x_s8): Remove.
- (__arm_vminq_x_s16): Remove.
- (__arm_vminq_x_s32): Remove.
- (__arm_vminq_x_u8): Remove.
- (__arm_vminq_x_u16): Remove.
- (__arm_vminq_x_u32): Remove.
- (__arm_vmaxq_x_s8): Remove.
- (__arm_vmaxq_x_s16): Remove.
- (__arm_vmaxq_x_s32): Remove.
- (__arm_vmaxq_x_u8): Remove.
- (__arm_vmaxq_x_u16): Remove.
- (__arm_vmaxq_x_u32): Remove.
- (__arm_vminq): Remove.
- (__arm_vmaxq): Remove.
- (__arm_vmaxq_m): Remove.
- (__arm_vminq_m): Remove.
- (__arm_vminq_x): Remove.
- (__arm_vmaxq_x): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MAX_MIN_SU): New.
- (max_min_su_str): New.
- (max_min_supf): New.
- * config/arm/mve.md (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>)
- (mve_vminq_s<mode>, mve_vminq_u<mode>): Merge into ...
- (mve_<max_min_su_str>q_<max_min_supf><mode>): ... this.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New.
- (vqshlq, vshlq): New.
- * config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New.
- * config/arm/arm-mve-builtins-base.h (vqshlq, vshlq): New.
- * config/arm/arm_mve.h (vshlq): Remove.
- (vshlq_r): Remove.
- (vshlq_n): Remove.
- (vshlq_m_r): Remove.
- (vshlq_m): Remove.
- (vshlq_m_n): Remove.
- (vshlq_x): Remove.
- (vshlq_x_n): Remove.
- (vshlq_s8): Remove.
- (vshlq_s16): Remove.
- (vshlq_s32): Remove.
- (vshlq_u8): Remove.
- (vshlq_u16): Remove.
- (vshlq_u32): Remove.
- (vshlq_r_u8): Remove.
- (vshlq_n_u8): Remove.
- (vshlq_r_s8): Remove.
- (vshlq_n_s8): Remove.
- (vshlq_r_u16): Remove.
- (vshlq_n_u16): Remove.
- (vshlq_r_s16): Remove.
- (vshlq_n_s16): Remove.
- (vshlq_r_u32): Remove.
- (vshlq_n_u32): Remove.
- (vshlq_r_s32): Remove.
- (vshlq_n_s32): Remove.
- (vshlq_m_r_u8): Remove.
- (vshlq_m_r_s8): Remove.
- (vshlq_m_r_u16): Remove.
- (vshlq_m_r_s16): Remove.
- (vshlq_m_r_u32): Remove.
- (vshlq_m_r_s32): Remove.
- (vshlq_m_u8): Remove.
- (vshlq_m_s8): Remove.
- (vshlq_m_u16): Remove.
- (vshlq_m_s16): Remove.
- (vshlq_m_u32): Remove.
- (vshlq_m_s32): Remove.
- (vshlq_m_n_s8): Remove.
- (vshlq_m_n_s32): Remove.
- (vshlq_m_n_s16): Remove.
- (vshlq_m_n_u8): Remove.
- (vshlq_m_n_u32): Remove.
- (vshlq_m_n_u16): Remove.
- (vshlq_x_s8): Remove.
- (vshlq_x_s16): Remove.
- (vshlq_x_s32): Remove.
- (vshlq_x_u8): Remove.
- (vshlq_x_u16): Remove.
- (vshlq_x_u32): Remove.
- (vshlq_x_n_s8): Remove.
- (vshlq_x_n_s16): Remove.
- (vshlq_x_n_s32): Remove.
- (vshlq_x_n_u8): Remove.
- (vshlq_x_n_u16): Remove.
- (vshlq_x_n_u32): Remove.
- (__arm_vshlq_s8): Remove.
- (__arm_vshlq_s16): Remove.
- (__arm_vshlq_s32): Remove.
- (__arm_vshlq_u8): Remove.
- (__arm_vshlq_u16): Remove.
- (__arm_vshlq_u32): Remove.
- (__arm_vshlq_r_u8): Remove.
- (__arm_vshlq_n_u8): Remove.
- (__arm_vshlq_r_s8): Remove.
- (__arm_vshlq_n_s8): Remove.
- (__arm_vshlq_r_u16): Remove.
- (__arm_vshlq_n_u16): Remove.
- (__arm_vshlq_r_s16): Remove.
- (__arm_vshlq_n_s16): Remove.
- (__arm_vshlq_r_u32): Remove.
- (__arm_vshlq_n_u32): Remove.
- (__arm_vshlq_r_s32): Remove.
- (__arm_vshlq_n_s32): Remove.
- (__arm_vshlq_m_r_u8): Remove.
- (__arm_vshlq_m_r_s8): Remove.
- (__arm_vshlq_m_r_u16): Remove.
- (__arm_vshlq_m_r_s16): Remove.
- (__arm_vshlq_m_r_u32): Remove.
- (__arm_vshlq_m_r_s32): Remove.
- (__arm_vshlq_m_u8): Remove.
- (__arm_vshlq_m_s8): Remove.
- (__arm_vshlq_m_u16): Remove.
- (__arm_vshlq_m_s16): Remove.
- (__arm_vshlq_m_u32): Remove.
- (__arm_vshlq_m_s32): Remove.
- (__arm_vshlq_m_n_s8): Remove.
- (__arm_vshlq_m_n_s32): Remove.
- (__arm_vshlq_m_n_s16): Remove.
- (__arm_vshlq_m_n_u8): Remove.
- (__arm_vshlq_m_n_u32): Remove.
- (__arm_vshlq_m_n_u16): Remove.
- (__arm_vshlq_x_s8): Remove.
- (__arm_vshlq_x_s16): Remove.
- (__arm_vshlq_x_s32): Remove.
- (__arm_vshlq_x_u8): Remove.
- (__arm_vshlq_x_u16): Remove.
- (__arm_vshlq_x_u32): Remove.
- (__arm_vshlq_x_n_s8): Remove.
- (__arm_vshlq_x_n_s16): Remove.
- (__arm_vshlq_x_n_s32): Remove.
- (__arm_vshlq_x_n_u8): Remove.
- (__arm_vshlq_x_n_u16): Remove.
- (__arm_vshlq_x_n_u32): Remove.
- (__arm_vshlq): Remove.
- (__arm_vshlq_r): Remove.
- (__arm_vshlq_n): Remove.
- (__arm_vshlq_m_r): Remove.
- (__arm_vshlq_m): Remove.
- (__arm_vshlq_m_n): Remove.
- (__arm_vshlq_x): Remove.
- (__arm_vshlq_x_n): Remove.
- (vqshlq): Remove.
- (vqshlq_r): Remove.
- (vqshlq_n): Remove.
- (vqshlq_m_r): Remove.
- (vqshlq_m_n): Remove.
- (vqshlq_m): Remove.
- (vqshlq_u8): Remove.
- (vqshlq_r_u8): Remove.
- (vqshlq_n_u8): Remove.
- (vqshlq_s8): Remove.
- (vqshlq_r_s8): Remove.
- (vqshlq_n_s8): Remove.
- (vqshlq_u16): Remove.
- (vqshlq_r_u16): Remove.
- (vqshlq_n_u16): Remove.
- (vqshlq_s16): Remove.
- (vqshlq_r_s16): Remove.
- (vqshlq_n_s16): Remove.
- (vqshlq_u32): Remove.
- (vqshlq_r_u32): Remove.
- (vqshlq_n_u32): Remove.
- (vqshlq_s32): Remove.
- (vqshlq_r_s32): Remove.
- (vqshlq_n_s32): Remove.
- (vqshlq_m_r_u8): Remove.
- (vqshlq_m_r_s8): Remove.
- (vqshlq_m_r_u16): Remove.
- (vqshlq_m_r_s16): Remove.
- (vqshlq_m_r_u32): Remove.
- (vqshlq_m_r_s32): Remove.
- (vqshlq_m_n_s8): Remove.
- (vqshlq_m_n_s32): Remove.
- (vqshlq_m_n_s16): Remove.
- (vqshlq_m_n_u8): Remove.
- (vqshlq_m_n_u32): Remove.
- (vqshlq_m_n_u16): Remove.
- (vqshlq_m_s8): Remove.
- (vqshlq_m_s32): Remove.
- (vqshlq_m_s16): Remove.
- (vqshlq_m_u8): Remove.
- (vqshlq_m_u32): Remove.
- (vqshlq_m_u16): Remove.
- (__arm_vqshlq_u8): Remove.
- (__arm_vqshlq_r_u8): Remove.
- (__arm_vqshlq_n_u8): Remove.
- (__arm_vqshlq_s8): Remove.
- (__arm_vqshlq_r_s8): Remove.
- (__arm_vqshlq_n_s8): Remove.
- (__arm_vqshlq_u16): Remove.
- (__arm_vqshlq_r_u16): Remove.
- (__arm_vqshlq_n_u16): Remove.
- (__arm_vqshlq_s16): Remove.
- (__arm_vqshlq_r_s16): Remove.
- (__arm_vqshlq_n_s16): Remove.
- (__arm_vqshlq_u32): Remove.
- (__arm_vqshlq_r_u32): Remove.
- (__arm_vqshlq_n_u32): Remove.
- (__arm_vqshlq_s32): Remove.
- (__arm_vqshlq_r_s32): Remove.
- (__arm_vqshlq_n_s32): Remove.
- (__arm_vqshlq_m_r_u8): Remove.
- (__arm_vqshlq_m_r_s8): Remove.
- (__arm_vqshlq_m_r_u16): Remove.
- (__arm_vqshlq_m_r_s16): Remove.
- (__arm_vqshlq_m_r_u32): Remove.
- (__arm_vqshlq_m_r_s32): Remove.
- (__arm_vqshlq_m_n_s8): Remove.
- (__arm_vqshlq_m_n_s32): Remove.
- (__arm_vqshlq_m_n_s16): Remove.
- (__arm_vqshlq_m_n_u8): Remove.
- (__arm_vqshlq_m_n_u32): Remove.
- (__arm_vqshlq_m_n_u16): Remove.
- (__arm_vqshlq_m_s8): Remove.
- (__arm_vqshlq_m_s32): Remove.
- (__arm_vqshlq_m_s16): Remove.
- (__arm_vqshlq_m_u8): Remove.
- (__arm_vqshlq_m_u32): Remove.
- (__arm_vqshlq_m_u16): Remove.
- (__arm_vqshlq): Remove.
- (__arm_vqshlq_r): Remove.
- (__arm_vqshlq_n): Remove.
- (__arm_vqshlq_m_r): Remove.
- (__arm_vqshlq_m_n): Remove.
- (__arm_vqshlq_m): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_mve_function_exact_insn_vshl): New.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins.cc (has_inactive_argument)
- (finish_opt_n_resolution): Handle MODE_r.
- * config/arm/arm-mve-builtins.def (r): New mode.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_lshift): New.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New.
- (vabdq): New.
- * config/arm/arm-mve-builtins-base.def (vabdq): New.
- * config/arm/arm-mve-builtins-base.h (vabdq): New.
- * config/arm/arm_mve.h (vabdq): Remove.
- (vabdq_m): Remove.
- (vabdq_x): Remove.
- (vabdq_u8): Remove.
- (vabdq_s8): Remove.
- (vabdq_u16): Remove.
- (vabdq_s16): Remove.
- (vabdq_u32): Remove.
- (vabdq_s32): Remove.
- (vabdq_f16): Remove.
- (vabdq_f32): Remove.
- (vabdq_m_s8): Remove.
- (vabdq_m_s32): Remove.
- (vabdq_m_s16): Remove.
- (vabdq_m_u8): Remove.
- (vabdq_m_u32): Remove.
- (vabdq_m_u16): Remove.
- (vabdq_m_f32): Remove.
- (vabdq_m_f16): Remove.
- (vabdq_x_s8): Remove.
- (vabdq_x_s16): Remove.
- (vabdq_x_s32): Remove.
- (vabdq_x_u8): Remove.
- (vabdq_x_u16): Remove.
- (vabdq_x_u32): Remove.
- (vabdq_x_f16): Remove.
- (vabdq_x_f32): Remove.
- (__arm_vabdq_u8): Remove.
- (__arm_vabdq_s8): Remove.
- (__arm_vabdq_u16): Remove.
- (__arm_vabdq_s16): Remove.
- (__arm_vabdq_u32): Remove.
- (__arm_vabdq_s32): Remove.
- (__arm_vabdq_m_s8): Remove.
- (__arm_vabdq_m_s32): Remove.
- (__arm_vabdq_m_s16): Remove.
- (__arm_vabdq_m_u8): Remove.
- (__arm_vabdq_m_u32): Remove.
- (__arm_vabdq_m_u16): Remove.
- (__arm_vabdq_x_s8): Remove.
- (__arm_vabdq_x_s16): Remove.
- (__arm_vabdq_x_s32): Remove.
- (__arm_vabdq_x_u8): Remove.
- (__arm_vabdq_x_u16): Remove.
- (__arm_vabdq_x_u32): Remove.
- (__arm_vabdq_f16): Remove.
- (__arm_vabdq_f32): Remove.
- (__arm_vabdq_m_f32): Remove.
- (__arm_vabdq_m_f16): Remove.
- (__arm_vabdq_x_f16): Remove.
- (__arm_vabdq_x_f32): Remove.
- (__arm_vabdq): Remove.
- (__arm_vabdq_m): Remove.
- (__arm_vabdq_x): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq.
- (MVE_FP_VABDQ_ONLY): New.
- (mve_insn): Add vabd.
- * config/arm/mve.md (mve_vabdq_f<mode>): Move into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
- (mve_vabdq_m_f<mode>): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New.
- * config/arm/arm-mve-builtins-base.def (vqrdmulhq): New.
- * config/arm/arm-mve-builtins-base.h (vqrdmulhq): New.
- * config/arm/arm_mve.h (vqrdmulhq): Remove.
- (vqrdmulhq_m): Remove.
- (vqrdmulhq_s8): Remove.
- (vqrdmulhq_n_s8): Remove.
- (vqrdmulhq_s16): Remove.
- (vqrdmulhq_n_s16): Remove.
- (vqrdmulhq_s32): Remove.
- (vqrdmulhq_n_s32): Remove.
- (vqrdmulhq_m_n_s8): Remove.
- (vqrdmulhq_m_n_s32): Remove.
- (vqrdmulhq_m_n_s16): Remove.
- (vqrdmulhq_m_s8): Remove.
- (vqrdmulhq_m_s32): Remove.
- (vqrdmulhq_m_s16): Remove.
- (__arm_vqrdmulhq_s8): Remove.
- (__arm_vqrdmulhq_n_s8): Remove.
- (__arm_vqrdmulhq_s16): Remove.
- (__arm_vqrdmulhq_n_s16): Remove.
- (__arm_vqrdmulhq_s32): Remove.
- (__arm_vqrdmulhq_n_s32): Remove.
- (__arm_vqrdmulhq_m_n_s8): Remove.
- (__arm_vqrdmulhq_m_n_s32): Remove.
- (__arm_vqrdmulhq_m_n_s16): Remove.
- (__arm_vqrdmulhq_m_s8): Remove.
- (__arm_vqrdmulhq_m_s32): Remove.
- (__arm_vqrdmulhq_m_s16): Remove.
- (__arm_vqrdmulhq): Remove.
- (__arm_vqrdmulhq_m): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N)
- (MVE_SHIFT_N, MVE_SHIFT_R): New.
- (mve_insn): Add vqshl, vshl.
- * config/arm/mve.md (mve_vqshlq_n_<supf><mode>)
- (mve_vshlq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vqshlq_r_<supf><mode>, mve_vshlq_r_<supf><mode>): Merge into
- ...
- (@mve_<mve_insn>q_r_<supf><mode>): ... this.
- (mve_vqshlq_m_r_<supf><mode>, mve_vshlq_m_r_<supf><mode>): Merge
- into ...
- (@mve_<mve_insn>q_m_r_<supf><mode>): ... this.
- (mve_vqshlq_m_n_<supf><mode>, mve_vshlq_m_n_<supf><mode>): Merge
- into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
- * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Transform
- into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New.
- * config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New.
- * config/arm/arm-mve-builtins-base.h (vqrshlq, vrshlq): New.
- * config/arm/arm-mve-builtins.cc (has_inactive_argument): Handle
- vqrshlq, vrshlq.
- * config/arm/arm_mve.h (vrshlq): Remove.
- (vrshlq_m_n): Remove.
- (vrshlq_m): Remove.
- (vrshlq_x): Remove.
- (vrshlq_u8): Remove.
- (vrshlq_n_u8): Remove.
- (vrshlq_s8): Remove.
- (vrshlq_n_s8): Remove.
- (vrshlq_u16): Remove.
- (vrshlq_n_u16): Remove.
- (vrshlq_s16): Remove.
- (vrshlq_n_s16): Remove.
- (vrshlq_u32): Remove.
- (vrshlq_n_u32): Remove.
- (vrshlq_s32): Remove.
- (vrshlq_n_s32): Remove.
- (vrshlq_m_n_u8): Remove.
- (vrshlq_m_n_s8): Remove.
- (vrshlq_m_n_u16): Remove.
- (vrshlq_m_n_s16): Remove.
- (vrshlq_m_n_u32): Remove.
- (vrshlq_m_n_s32): Remove.
- (vrshlq_m_s8): Remove.
- (vrshlq_m_s32): Remove.
- (vrshlq_m_s16): Remove.
- (vrshlq_m_u8): Remove.
- (vrshlq_m_u32): Remove.
- (vrshlq_m_u16): Remove.
- (vrshlq_x_s8): Remove.
- (vrshlq_x_s16): Remove.
- (vrshlq_x_s32): Remove.
- (vrshlq_x_u8): Remove.
- (vrshlq_x_u16): Remove.
- (vrshlq_x_u32): Remove.
- (__arm_vrshlq_u8): Remove.
- (__arm_vrshlq_n_u8): Remove.
- (__arm_vrshlq_s8): Remove.
- (__arm_vrshlq_n_s8): Remove.
- (__arm_vrshlq_u16): Remove.
- (__arm_vrshlq_n_u16): Remove.
- (__arm_vrshlq_s16): Remove.
- (__arm_vrshlq_n_s16): Remove.
- (__arm_vrshlq_u32): Remove.
- (__arm_vrshlq_n_u32): Remove.
- (__arm_vrshlq_s32): Remove.
- (__arm_vrshlq_n_s32): Remove.
- (__arm_vrshlq_m_n_u8): Remove.
- (__arm_vrshlq_m_n_s8): Remove.
- (__arm_vrshlq_m_n_u16): Remove.
- (__arm_vrshlq_m_n_s16): Remove.
- (__arm_vrshlq_m_n_u32): Remove.
- (__arm_vrshlq_m_n_s32): Remove.
- (__arm_vrshlq_m_s8): Remove.
- (__arm_vrshlq_m_s32): Remove.
- (__arm_vrshlq_m_s16): Remove.
- (__arm_vrshlq_m_u8): Remove.
- (__arm_vrshlq_m_u32): Remove.
- (__arm_vrshlq_m_u16): Remove.
- (__arm_vrshlq_x_s8): Remove.
- (__arm_vrshlq_x_s16): Remove.
- (__arm_vrshlq_x_s32): Remove.
- (__arm_vrshlq_x_u8): Remove.
- (__arm_vrshlq_x_u16): Remove.
- (__arm_vrshlq_x_u32): Remove.
- (__arm_vrshlq): Remove.
- (__arm_vrshlq_m_n): Remove.
- (__arm_vrshlq_m): Remove.
- (__arm_vrshlq_x): Remove.
- (vqrshlq): Remove.
- (vqrshlq_m_n): Remove.
- (vqrshlq_m): Remove.
- (vqrshlq_u8): Remove.
- (vqrshlq_n_u8): Remove.
- (vqrshlq_s8): Remove.
- (vqrshlq_n_s8): Remove.
- (vqrshlq_u16): Remove.
- (vqrshlq_n_u16): Remove.
- (vqrshlq_s16): Remove.
- (vqrshlq_n_s16): Remove.
- (vqrshlq_u32): Remove.
- (vqrshlq_n_u32): Remove.
- (vqrshlq_s32): Remove.
- (vqrshlq_n_s32): Remove.
- (vqrshlq_m_n_u8): Remove.
- (vqrshlq_m_n_s8): Remove.
- (vqrshlq_m_n_u16): Remove.
- (vqrshlq_m_n_s16): Remove.
- (vqrshlq_m_n_u32): Remove.
- (vqrshlq_m_n_s32): Remove.
- (vqrshlq_m_s8): Remove.
- (vqrshlq_m_s32): Remove.
- (vqrshlq_m_s16): Remove.
- (vqrshlq_m_u8): Remove.
- (vqrshlq_m_u32): Remove.
- (vqrshlq_m_u16): Remove.
- (__arm_vqrshlq_u8): Remove.
- (__arm_vqrshlq_n_u8): Remove.
- (__arm_vqrshlq_s8): Remove.
- (__arm_vqrshlq_n_s8): Remove.
- (__arm_vqrshlq_u16): Remove.
- (__arm_vqrshlq_n_u16): Remove.
- (__arm_vqrshlq_s16): Remove.
- (__arm_vqrshlq_n_s16): Remove.
- (__arm_vqrshlq_u32): Remove.
- (__arm_vqrshlq_n_u32): Remove.
- (__arm_vqrshlq_s32): Remove.
- (__arm_vqrshlq_n_s32): Remove.
- (__arm_vqrshlq_m_n_u8): Remove.
- (__arm_vqrshlq_m_n_s8): Remove.
- (__arm_vqrshlq_m_n_u16): Remove.
- (__arm_vqrshlq_m_n_s16): Remove.
- (__arm_vqrshlq_m_n_u32): Remove.
- (__arm_vqrshlq_m_n_s32): Remove.
- (__arm_vqrshlq_m_s8): Remove.
- (__arm_vqrshlq_m_s32): Remove.
- (__arm_vqrshlq_m_s16): Remove.
- (__arm_vqrshlq_m_u8): Remove.
- (__arm_vqrshlq_m_u32): Remove.
- (__arm_vqrshlq_m_u16): Remove.
- (__arm_vqrshlq): Remove.
- (__arm_vqrshlq_m_n): Remove.
- (__arm_vqrshlq_m): Remove.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New.
- (mve_insn): Add vqrshl, vrshl.
- * config/arm/mve.md (mve_vqrshlq_n_<supf><mode>)
- (mve_vrshlq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vqrshlq_m_n_<supf><mode>, mve_vrshlq_m_n_<supf><mode>): Merge
- into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-05 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New.
-
-2023-05-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109615
- * config/riscv/riscv-vsetvl.cc (avl_info::multiple_source_equal_p): Add
- denegrate PHI optmization.
-
-2023-05-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/predicates.md (register_no_SP_operand):
- Rename from index_register_operand.
- (call_register_operand): Update for rename.
- * config/i386/i386.md (*lea<mode>_general_[1234]): Update for rename.
-
-2023-05-05 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/84402
- * Makefile.in (NUM_MATCH_SPLITS, MATCH_SPLITS_SEQ,
- GIMPLE_MATCH_PD_SEQ_SRC, GIMPLE_MATCH_PD_SEQ_O,
- GENERIC_MATCH_PD_SEQ_SRC, GENERIC_MATCH_PD_SEQ_O): New.
- (OBJS, MOSTLYCLEANFILES, .PRECIOUS): Use them.
- (s-match): Split into s-generic-match and s-gimple-match.
- * configure.ac (with-matchpd-partitions,
- DEFAULT_MATCHPD_PARTITIONS): New.
- * configure: Regenerate.
-
-2023-05-05 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/84402
- * genmatch.cc (emit_func, SIZED_BASED_CHUNKS, get_out_file): New.
- (decision_tree::gen): Accept list of files instead of single and update
- to write function definition to header and main file.
- (write_predicate): Likewise.
- (write_header): Emit pragmas and new includes.
- (main): Create file buffers and cleanup.
- (showUsage, write_header_includes): New.
-
-2023-05-05 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/84402
- * Makefile.in (OBJS): Add gimple-match-exports.o.
- * genmatch.cc (decision_tree::gen): Export gimple_gimplify helpers.
- * gimple-match-head.cc (gimple_simplify, gimple_resimplify1,
- gimple_resimplify2, gimple_resimplify3, gimple_resimplify4,
- gimple_resimplify5, constant_for_folding, convert_conditional_op,
- maybe_resimplify_conditional_op, gimple_match_op::resimplify,
- maybe_build_generic_op, build_call_internal, maybe_push_res_to_seq,
- do_valueize, try_conditional_simplification, gimple_extract,
- gimple_extract_op, canonicalize_code, commutative_binary_op_p,
- commutative_ternary_op_p, first_commutative_argument,
- associative_binary_op_p, directly_supported_p,
- get_conditional_internal_fn): Moved to gimple-match-exports.cc
- * gimple-match-exports.cc: New file.
-
-2023-05-05 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/84402
- * genmatch.cc (decision_tree::gen, write_predicate): Generate new
- debug_dump var.
- (dt_simplify::gen_1): Use it.
-
-2023-05-05 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/84402
- * genmatch.cc (output_line_directive): Only emit commented directive
- when -vv.
-
-2023-05-05 Tamar Christina <tamar.christina@arm.com>
-
- PR bootstrap/84402
- * genmatch.cc (dt_simplify::gen_1): Only emit labels if used.
-
-2023-05-05 Tobias Burnus <tobias@codesourcery.com>
-
- * config/gcn/gcn.cc (gcn_vectorize_builtin_vectorized_function): Remove
- unused in_mode/in_n variables.
-
-2023-05-05 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109735
- * tree-vect-stmts.cc (vectorizable_operation): Perform
- conversion for POINTER_DIFF_EXPR unconditionally.
-
-2023-05-05 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/mmx.md (mulv2si3): New expander.
- (*mulv2si3): New insn pattern.
-
-2023-05-05 Tobias Burnus <tobias@codesourcery.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- PR libgomp/108098
- * config/nvptx/mkoffload.cc (process): Emit dummy procedure
- alongside reverse-offload function table to prevent NULL values
- of the function addresses.
-
-2023-05-05 Jakub Jelinek <jakub@redhat.com>
-
- * builtins.cc (do_mpfr_ckconv, do_mpc_ckconv): Fix comment typo,
- mpft_t -> mpfr_t.
- * fold-const-call.cc (do_mpfr_ckconv, do_mpc_ckconv): Likewise.
-
-2023-05-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109732
- * tree-ssa-phiopt.cc (match_simplify_replacement): Fix the selection
- of the argtrue/argfalse.
-
-2023-05-05 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109722
- * match.pd: Extend the `ABS<a> == 0` pattern
- to cover `ABSU<a> == 0` too.
-
-2023-05-04 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/109733
- * config/i386/predicates.md (index_reg_operand): New predicate.
- * config/i386/i386.md (ashift to lea spliter): Use
- general_reg_operand and index_reg_operand predicates.
-
-2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>_insn_le):
- Rename and reimplement with RTL codes to...
- (aarch64_<optab>hn2<mode>_insn_le): .. This.
- (aarch64_r<optab>hn2<mode>_insn_le): New pattern.
- (aarch64_<sur><addsub>hn2<mode>_insn_be): Rename and reimplement with RTL
- codes to...
- (aarch64_<optab>hn2<mode>_insn_be): ... This.
- (aarch64_r<optab>hn2<mode>_insn_be): New pattern.
- (aarch64_<sur><addsub>hn2<mode>): Rename and adjust expander to...
- (aarch64_<optab>hn2<mode>): ... This.
- (aarch64_r<optab>hn2<mode>): New expander.
- * config/aarch64/iterators.md (UNSPEC_ADDHN, UNSPEC_RADDHN,
- UNSPEC_SUBHN, UNSPEC_RSUBHN): Delete unspecs.
- (ADDSUBHN): Delete.
- (sur): Remove handling of the above.
- (addsub): Likewise.
-
-2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>_insn_le):
- Delete.
- (aarch64_<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
- (aarch64_<sur><addsub>hn<mode>_insn_be): Delete.
- (aarch64_r<optab>hn<mode>_insn<vczle><vczbe>): New define_insn.
- (aarch64_<sur><addsub>hn<mode>): Delete.
- (aarch64_<optab>hn<mode>): New define_expand.
- (aarch64_r<optab>hn<mode>): Likewise.
- * config/aarch64/predicates.md (aarch64_simd_raddsubhn_imm_vec):
- New predicate.
-
-2023-05-04 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Handle
- diamond form bb with forwarder only empty blocks better.
-
-2023-05-04 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-threadupdate.cc (copy_phi_arg_into_existing_phi): Move to ...
- * tree-cfg.cc (copy_phi_arg_into_existing_phi): Here and remove static.
- (gimple_duplicate_sese_tail): Use copy_phi_arg_into_existing_phi instead
- of an inline version of it.
- * tree-cfgcleanup.cc (remove_forwarder_block): Likewise.
- * tree-cfg.h (copy_phi_arg_into_existing_phi): New declaration.
-
-2023-05-04 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Change
- the default argument value for dce_ssa_names to nullptr.
- Check to make sure dce_ssa_names is a non-nullptr before
- calling simple_dce_from_worklist.
-
-2023-05-04 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/predicates.md (index_register_operand): Reject
- arg_pointer_rtx, frame_pointer_rtx, stack_pointer_rtx and
- VIRTUAL_REGISTER_P operands. Allow subregs of memory before reload.
- (call_register_no_elim_operand): Rewrite as ...
- (call_register_operand): ... this.
- (call_insn_operand): Use call_register_operand predicate.
-
-2023-05-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109721
- * tree-vect-stmts.cc (vectorizable_operation): Make sure
- to test word_mode for all !target_support_p operations.
-
-2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_<su>aba<mode>): Rename to...
- (aarch64_<su>aba<mode><vczle><vczbe>): ... This.
- (aarch64_mla<mode>): Rename to...
- (aarch64_mla<mode><vczle><vczbe>): ... This.
- (*aarch64_mla_elt<mode>): Rename to...
- (*aarch64_mla_elt<mode><vczle><vczbe>): ... This.
- (*aarch64_mla_elt_<vswap_width_name><mode>): Rename to...
- (*aarch64_mla_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
- (aarch64_mla_n<mode>): Rename to...
- (aarch64_mla_n<mode><vczle><vczbe>): ... This.
- (aarch64_mls<mode>): Rename to...
- (aarch64_mls<mode><vczle><vczbe>): ... This.
- (*aarch64_mls_elt<mode>): Rename to...
- (*aarch64_mls_elt<mode><vczle><vczbe>): ... This.
- (*aarch64_mls_elt_<vswap_width_name><mode>): Rename to...
- (*aarch64_mls_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
- (aarch64_mls_n<mode>): Rename to...
- (aarch64_mls_n<mode><vczle><vczbe>): ... This.
- (fma<mode>4): Rename to...
- (fma<mode>4<vczle><vczbe>): ... This.
- (*aarch64_fma4_elt<mode>): Rename to...
- (*aarch64_fma4_elt<mode><vczle><vczbe>): ... This.
- (*aarch64_fma4_elt_<vswap_width_name><mode>): Rename to...
- (*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
- (*aarch64_fma4_elt_from_dup<mode>): Rename to...
- (*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>): ... This.
- (fnma<mode>4): Rename to...
- (fnma<mode>4<vczle><vczbe>): ... This.
- (*aarch64_fnma4_elt<mode>): Rename to...
- (*aarch64_fnma4_elt<mode><vczle><vczbe>): ... This.
- (*aarch64_fnma4_elt_<vswap_width_name><mode>): Rename to...
- (*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>): ... This.
- (*aarch64_fnma4_elt_from_dup<mode>): Rename to...
- (*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>): ... This.
- (aarch64_simd_bsl<mode>_internal): Rename to...
- (aarch64_simd_bsl<mode>_internal<vczle><vczbe>): ... This.
- (*aarch64_simd_bsl<mode>_alt): Rename to...
- (*aarch64_simd_bsl<mode>_alt<vczle><vczbe>): ... This.
-
-2023-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>): Rename to...
- (aarch64_<su>abd<mode><vczle><vczbe>): ... This.
- (fabd<mode>3): Rename to...
- (fabd<mode>3<vczle><vczbe>): ... This.
- (aarch64_<optab>p<mode>): Rename to...
- (aarch64_<optab>p<mode><vczle><vczbe>): ... This.
- (aarch64_faddp<mode>): Rename to...
- (aarch64_faddp<mode><vczle><vczbe>): ... This.
-
-2023-05-04 Martin Liska <mliska@suse.cz>
-
- * gcov.cc (GCOV_JSON_FORMAT_VERSION): New definition.
- (print_version): Use it.
- (generate_results): Likewise.
-
-2023-05-04 Richard Biener <rguenther@suse.de>
-
- * tree-cfg.h (last_stmt): Rename to ...
- (last_nondebug_stmt): ... this.
- * tree-cfg.cc (last_stmt): Rename to ...
- (last_nondebug_stmt): ... this.
- (assign_discriminators): Adjust.
- (group_case_labels_stmt): Likewise.
- (gimple_can_duplicate_bb_p): Likewise.
- (execute_fixup_cfg): Likewise.
- * auto-profile.cc (afdo_propagate_circuit): Likewise.
- * gimple-range.cc (gimple_ranger::range_on_exit): Likewise.
- * omp-expand.cc (workshare_safe_to_combine_p): Likewise.
- (determine_parallel_type): Likewise.
- (adjust_context_and_scope): Likewise.
- (expand_task_call): Likewise.
- (remove_exit_barrier): Likewise.
- (expand_omp_taskreg): Likewise.
- (expand_omp_for_init_counts): Likewise.
- (expand_omp_for_init_vars): Likewise.
- (expand_omp_for_static_chunk): Likewise.
- (expand_omp_simd): Likewise.
- (expand_oacc_for): Likewise.
- (expand_omp_for): Likewise.
- (expand_omp_sections): Likewise.
- (expand_omp_atomic_fetch_op): Likewise.
- (expand_omp_atomic_cas): Likewise.
- (expand_omp_atomic): Likewise.
- (expand_omp_target): Likewise.
- (expand_omp): Likewise.
- (omp_make_gimple_edges): Likewise.
- * trans-mem.cc (tm_region_init): Likewise.
- * tree-inline.cc (redirect_all_calls): Likewise.
- * tree-parloops.cc (gen_parallel_loop): Likewise.
- * tree-ssa-loop-ch.cc (do_while_loop_p): Likewise.
- * tree-ssa-loop-ivcanon.cc (canonicalize_loop_induction_variables):
- Likewise.
- * tree-ssa-loop-ivopts.cc (stmt_after_ip_normal_pos): Likewise.
- (may_eliminate_iv): Likewise.
- * tree-ssa-loop-manip.cc (standard_iv_increment_position): Likewise.
- * tree-ssa-loop-niter.cc (do_warn_aggressive_loop_optimizations):
- Likewise.
- (estimate_numbers_of_iterations): Likewise.
- * tree-ssa-loop-split.cc (compute_added_num_insns): Likewise.
- * tree-ssa-loop-unswitch.cc (get_predicates_for_bb): Likewise.
- (set_predicates_for_bb): Likewise.
- (init_loop_unswitch_info): Likewise.
- (hoist_guard): Likewise.
- * tree-ssa-phiopt.cc (match_simplify_replacement): Likewise.
- (minmax_replacement): Likewise.
- * tree-ssa-reassoc.cc (update_range_test): Likewise.
- (optimize_range_tests_to_bit_test): Likewise.
- (optimize_range_tests_var_bound): Likewise.
- (optimize_range_tests): Likewise.
- (no_side_effect_bb): Likewise.
- (suitable_cond_bb): Likewise.
- (maybe_optimize_range_tests): Likewise.
- (reassociate_bb): Likewise.
- * tree-vrp.cc (rvrp_folder::pre_fold_bb): Likewise.
-
-2023-05-04 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/109676
- * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
- If src is REG, change its mode to V1TImode and call fix_debug_reg_uses
- for it only if it still has TImode. Don't decide whether to call
- fix_debug_reg_uses based on whether SRC is ever set or not.
-
-2023-05-04 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.cc (cris_split_constant): New function.
- * config/cris/cris.md (splitop): New iterator.
- (opsplit1): New define_peephole2.
- * config/cris/cris-protos.h (cris_split_constant): Declare.
- (cris_splittable_constant_p): New macro.
-
-2023-05-04 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.cc (TARGET_SPILL_CLASS): Define
- to ALL_REGS.
-
-2023-05-04 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.cc (cris_side_effect_mode_ok): Use
- lra_in_progress, not reload_in_progress.
- * config/cris/cris.md ("movdi", "*addi_reload"): Ditto.
- * config/cris/constraints.md ("Q"): Ditto.
-
-2023-05-03 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-dce.cc (simple_dce_from_worklist): Record
- stats on removed number of statements and phis.
-
-2023-05-03 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109711
- * value-range.cc (irange::verify_range): Allow types of
- error_mark_node.
-
-2023-05-03 Alexander Monakov <amonakov@ispras.ru>
-
- PR sanitizer/90746
- * calls.cc (can_implement_as_sibling_call_p): Reject calls
- to __sanitizer_cov_trace_pc.
-
-2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/109661
- * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Add
- a new ABI break parameter for GCC 14. Set it to the alignment
- of enums that have an underlying type. Take the true alignment
- of such enums from the TYPE_ALIGN of the underlying type's
- TYPE_MAIN_VARIANT.
- (aarch64_function_arg_boundary): Update accordingly.
- (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Likewise.
- Warn about ABI differences.
-
-2023-05-03 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/109661
- * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Rename
- ABI break variables to abi_break_gcc_9 and abi_break_gcc_13.
- (aarch64_layout_arg, aarch64_function_arg_boundary): Likewise.
- (aarch64_gimplify_va_arg_expr): Likewise.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_NO_F)
- (FUNCTION_WITHOUT_N_NO_F, FUNCTION_WITH_M_N_NO_U_F): New.
- (vhaddq, vhsubq, vmulhq, vqaddq, vqsubq, vqdmulhq, vrhaddq)
- (vrmulhq): New.
- * config/arm/arm-mve-builtins-base.def (vhaddq, vhsubq, vmulhq)
- (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
- * config/arm/arm-mve-builtins-base.h (vhaddq, vhsubq, vmulhq)
- (vqaddq, vqsubq, vqdmulhq, vrhaddq, vrmulhq): New.
- * config/arm/arm_mve.h (vhsubq): Remove.
- (vhaddq): Remove.
- (vhaddq_m): Remove.
- (vhsubq_m): Remove.
- (vhaddq_x): Remove.
- (vhsubq_x): Remove.
- (vhsubq_u8): Remove.
- (vhsubq_n_u8): Remove.
- (vhaddq_u8): Remove.
- (vhaddq_n_u8): Remove.
- (vhsubq_s8): Remove.
- (vhsubq_n_s8): Remove.
- (vhaddq_s8): Remove.
- (vhaddq_n_s8): Remove.
- (vhsubq_u16): Remove.
- (vhsubq_n_u16): Remove.
- (vhaddq_u16): Remove.
- (vhaddq_n_u16): Remove.
- (vhsubq_s16): Remove.
- (vhsubq_n_s16): Remove.
- (vhaddq_s16): Remove.
- (vhaddq_n_s16): Remove.
- (vhsubq_u32): Remove.
- (vhsubq_n_u32): Remove.
- (vhaddq_u32): Remove.
- (vhaddq_n_u32): Remove.
- (vhsubq_s32): Remove.
- (vhsubq_n_s32): Remove.
- (vhaddq_s32): Remove.
- (vhaddq_n_s32): Remove.
- (vhaddq_m_n_s8): Remove.
- (vhaddq_m_n_s32): Remove.
- (vhaddq_m_n_s16): Remove.
- (vhaddq_m_n_u8): Remove.
- (vhaddq_m_n_u32): Remove.
- (vhaddq_m_n_u16): Remove.
- (vhaddq_m_s8): Remove.
- (vhaddq_m_s32): Remove.
- (vhaddq_m_s16): Remove.
- (vhaddq_m_u8): Remove.
- (vhaddq_m_u32): Remove.
- (vhaddq_m_u16): Remove.
- (vhsubq_m_n_s8): Remove.
- (vhsubq_m_n_s32): Remove.
- (vhsubq_m_n_s16): Remove.
- (vhsubq_m_n_u8): Remove.
- (vhsubq_m_n_u32): Remove.
- (vhsubq_m_n_u16): Remove.
- (vhsubq_m_s8): Remove.
- (vhsubq_m_s32): Remove.
- (vhsubq_m_s16): Remove.
- (vhsubq_m_u8): Remove.
- (vhsubq_m_u32): Remove.
- (vhsubq_m_u16): Remove.
- (vhaddq_x_n_s8): Remove.
- (vhaddq_x_n_s16): Remove.
- (vhaddq_x_n_s32): Remove.
- (vhaddq_x_n_u8): Remove.
- (vhaddq_x_n_u16): Remove.
- (vhaddq_x_n_u32): Remove.
- (vhaddq_x_s8): Remove.
- (vhaddq_x_s16): Remove.
- (vhaddq_x_s32): Remove.
- (vhaddq_x_u8): Remove.
- (vhaddq_x_u16): Remove.
- (vhaddq_x_u32): Remove.
- (vhsubq_x_n_s8): Remove.
- (vhsubq_x_n_s16): Remove.
- (vhsubq_x_n_s32): Remove.
- (vhsubq_x_n_u8): Remove.
- (vhsubq_x_n_u16): Remove.
- (vhsubq_x_n_u32): Remove.
- (vhsubq_x_s8): Remove.
- (vhsubq_x_s16): Remove.
- (vhsubq_x_s32): Remove.
- (vhsubq_x_u8): Remove.
- (vhsubq_x_u16): Remove.
- (vhsubq_x_u32): Remove.
- (__arm_vhsubq_u8): Remove.
- (__arm_vhsubq_n_u8): Remove.
- (__arm_vhaddq_u8): Remove.
- (__arm_vhaddq_n_u8): Remove.
- (__arm_vhsubq_s8): Remove.
- (__arm_vhsubq_n_s8): Remove.
- (__arm_vhaddq_s8): Remove.
- (__arm_vhaddq_n_s8): Remove.
- (__arm_vhsubq_u16): Remove.
- (__arm_vhsubq_n_u16): Remove.
- (__arm_vhaddq_u16): Remove.
- (__arm_vhaddq_n_u16): Remove.
- (__arm_vhsubq_s16): Remove.
- (__arm_vhsubq_n_s16): Remove.
- (__arm_vhaddq_s16): Remove.
- (__arm_vhaddq_n_s16): Remove.
- (__arm_vhsubq_u32): Remove.
- (__arm_vhsubq_n_u32): Remove.
- (__arm_vhaddq_u32): Remove.
- (__arm_vhaddq_n_u32): Remove.
- (__arm_vhsubq_s32): Remove.
- (__arm_vhsubq_n_s32): Remove.
- (__arm_vhaddq_s32): Remove.
- (__arm_vhaddq_n_s32): Remove.
- (__arm_vhaddq_m_n_s8): Remove.
- (__arm_vhaddq_m_n_s32): Remove.
- (__arm_vhaddq_m_n_s16): Remove.
- (__arm_vhaddq_m_n_u8): Remove.
- (__arm_vhaddq_m_n_u32): Remove.
- (__arm_vhaddq_m_n_u16): Remove.
- (__arm_vhaddq_m_s8): Remove.
- (__arm_vhaddq_m_s32): Remove.
- (__arm_vhaddq_m_s16): Remove.
- (__arm_vhaddq_m_u8): Remove.
- (__arm_vhaddq_m_u32): Remove.
- (__arm_vhaddq_m_u16): Remove.
- (__arm_vhsubq_m_n_s8): Remove.
- (__arm_vhsubq_m_n_s32): Remove.
- (__arm_vhsubq_m_n_s16): Remove.
- (__arm_vhsubq_m_n_u8): Remove.
- (__arm_vhsubq_m_n_u32): Remove.
- (__arm_vhsubq_m_n_u16): Remove.
- (__arm_vhsubq_m_s8): Remove.
- (__arm_vhsubq_m_s32): Remove.
- (__arm_vhsubq_m_s16): Remove.
- (__arm_vhsubq_m_u8): Remove.
- (__arm_vhsubq_m_u32): Remove.
- (__arm_vhsubq_m_u16): Remove.
- (__arm_vhaddq_x_n_s8): Remove.
- (__arm_vhaddq_x_n_s16): Remove.
- (__arm_vhaddq_x_n_s32): Remove.
- (__arm_vhaddq_x_n_u8): Remove.
- (__arm_vhaddq_x_n_u16): Remove.
- (__arm_vhaddq_x_n_u32): Remove.
- (__arm_vhaddq_x_s8): Remove.
- (__arm_vhaddq_x_s16): Remove.
- (__arm_vhaddq_x_s32): Remove.
- (__arm_vhaddq_x_u8): Remove.
- (__arm_vhaddq_x_u16): Remove.
- (__arm_vhaddq_x_u32): Remove.
- (__arm_vhsubq_x_n_s8): Remove.
- (__arm_vhsubq_x_n_s16): Remove.
- (__arm_vhsubq_x_n_s32): Remove.
- (__arm_vhsubq_x_n_u8): Remove.
- (__arm_vhsubq_x_n_u16): Remove.
- (__arm_vhsubq_x_n_u32): Remove.
- (__arm_vhsubq_x_s8): Remove.
- (__arm_vhsubq_x_s16): Remove.
- (__arm_vhsubq_x_s32): Remove.
- (__arm_vhsubq_x_u8): Remove.
- (__arm_vhsubq_x_u16): Remove.
- (__arm_vhsubq_x_u32): Remove.
- (__arm_vhsubq): Remove.
- (__arm_vhaddq): Remove.
- (__arm_vhaddq_m): Remove.
- (__arm_vhsubq_m): Remove.
- (__arm_vhaddq_x): Remove.
- (__arm_vhsubq_x): Remove.
- (vmulhq): Remove.
- (vmulhq_m): Remove.
- (vmulhq_x): Remove.
- (vmulhq_u8): Remove.
- (vmulhq_s8): Remove.
- (vmulhq_u16): Remove.
- (vmulhq_s16): Remove.
- (vmulhq_u32): Remove.
- (vmulhq_s32): Remove.
- (vmulhq_m_s8): Remove.
- (vmulhq_m_s32): Remove.
- (vmulhq_m_s16): Remove.
- (vmulhq_m_u8): Remove.
- (vmulhq_m_u32): Remove.
- (vmulhq_m_u16): Remove.
- (vmulhq_x_s8): Remove.
- (vmulhq_x_s16): Remove.
- (vmulhq_x_s32): Remove.
- (vmulhq_x_u8): Remove.
- (vmulhq_x_u16): Remove.
- (vmulhq_x_u32): Remove.
- (__arm_vmulhq_u8): Remove.
- (__arm_vmulhq_s8): Remove.
- (__arm_vmulhq_u16): Remove.
- (__arm_vmulhq_s16): Remove.
- (__arm_vmulhq_u32): Remove.
- (__arm_vmulhq_s32): Remove.
- (__arm_vmulhq_m_s8): Remove.
- (__arm_vmulhq_m_s32): Remove.
- (__arm_vmulhq_m_s16): Remove.
- (__arm_vmulhq_m_u8): Remove.
- (__arm_vmulhq_m_u32): Remove.
- (__arm_vmulhq_m_u16): Remove.
- (__arm_vmulhq_x_s8): Remove.
- (__arm_vmulhq_x_s16): Remove.
- (__arm_vmulhq_x_s32): Remove.
- (__arm_vmulhq_x_u8): Remove.
- (__arm_vmulhq_x_u16): Remove.
- (__arm_vmulhq_x_u32): Remove.
- (__arm_vmulhq): Remove.
- (__arm_vmulhq_m): Remove.
- (__arm_vmulhq_x): Remove.
- (vqsubq): Remove.
- (vqaddq): Remove.
- (vqaddq_m): Remove.
- (vqsubq_m): Remove.
- (vqsubq_u8): Remove.
- (vqsubq_n_u8): Remove.
- (vqaddq_u8): Remove.
- (vqaddq_n_u8): Remove.
- (vqsubq_s8): Remove.
- (vqsubq_n_s8): Remove.
- (vqaddq_s8): Remove.
- (vqaddq_n_s8): Remove.
- (vqsubq_u16): Remove.
- (vqsubq_n_u16): Remove.
- (vqaddq_u16): Remove.
- (vqaddq_n_u16): Remove.
- (vqsubq_s16): Remove.
- (vqsubq_n_s16): Remove.
- (vqaddq_s16): Remove.
- (vqaddq_n_s16): Remove.
- (vqsubq_u32): Remove.
- (vqsubq_n_u32): Remove.
- (vqaddq_u32): Remove.
- (vqaddq_n_u32): Remove.
- (vqsubq_s32): Remove.
- (vqsubq_n_s32): Remove.
- (vqaddq_s32): Remove.
- (vqaddq_n_s32): Remove.
- (vqaddq_m_n_s8): Remove.
- (vqaddq_m_n_s32): Remove.
- (vqaddq_m_n_s16): Remove.
- (vqaddq_m_n_u8): Remove.
- (vqaddq_m_n_u32): Remove.
- (vqaddq_m_n_u16): Remove.
- (vqaddq_m_s8): Remove.
- (vqaddq_m_s32): Remove.
- (vqaddq_m_s16): Remove.
- (vqaddq_m_u8): Remove.
- (vqaddq_m_u32): Remove.
- (vqaddq_m_u16): Remove.
- (vqsubq_m_n_s8): Remove.
- (vqsubq_m_n_s32): Remove.
- (vqsubq_m_n_s16): Remove.
- (vqsubq_m_n_u8): Remove.
- (vqsubq_m_n_u32): Remove.
- (vqsubq_m_n_u16): Remove.
- (vqsubq_m_s8): Remove.
- (vqsubq_m_s32): Remove.
- (vqsubq_m_s16): Remove.
- (vqsubq_m_u8): Remove.
- (vqsubq_m_u32): Remove.
- (vqsubq_m_u16): Remove.
- (__arm_vqsubq_u8): Remove.
- (__arm_vqsubq_n_u8): Remove.
- (__arm_vqaddq_u8): Remove.
- (__arm_vqaddq_n_u8): Remove.
- (__arm_vqsubq_s8): Remove.
- (__arm_vqsubq_n_s8): Remove.
- (__arm_vqaddq_s8): Remove.
- (__arm_vqaddq_n_s8): Remove.
- (__arm_vqsubq_u16): Remove.
- (__arm_vqsubq_n_u16): Remove.
- (__arm_vqaddq_u16): Remove.
- (__arm_vqaddq_n_u16): Remove.
- (__arm_vqsubq_s16): Remove.
- (__arm_vqsubq_n_s16): Remove.
- (__arm_vqaddq_s16): Remove.
- (__arm_vqaddq_n_s16): Remove.
- (__arm_vqsubq_u32): Remove.
- (__arm_vqsubq_n_u32): Remove.
- (__arm_vqaddq_u32): Remove.
- (__arm_vqaddq_n_u32): Remove.
- (__arm_vqsubq_s32): Remove.
- (__arm_vqsubq_n_s32): Remove.
- (__arm_vqaddq_s32): Remove.
- (__arm_vqaddq_n_s32): Remove.
- (__arm_vqaddq_m_n_s8): Remove.
- (__arm_vqaddq_m_n_s32): Remove.
- (__arm_vqaddq_m_n_s16): Remove.
- (__arm_vqaddq_m_n_u8): Remove.
- (__arm_vqaddq_m_n_u32): Remove.
- (__arm_vqaddq_m_n_u16): Remove.
- (__arm_vqaddq_m_s8): Remove.
- (__arm_vqaddq_m_s32): Remove.
- (__arm_vqaddq_m_s16): Remove.
- (__arm_vqaddq_m_u8): Remove.
- (__arm_vqaddq_m_u32): Remove.
- (__arm_vqaddq_m_u16): Remove.
- (__arm_vqsubq_m_n_s8): Remove.
- (__arm_vqsubq_m_n_s32): Remove.
- (__arm_vqsubq_m_n_s16): Remove.
- (__arm_vqsubq_m_n_u8): Remove.
- (__arm_vqsubq_m_n_u32): Remove.
- (__arm_vqsubq_m_n_u16): Remove.
- (__arm_vqsubq_m_s8): Remove.
- (__arm_vqsubq_m_s32): Remove.
- (__arm_vqsubq_m_s16): Remove.
- (__arm_vqsubq_m_u8): Remove.
- (__arm_vqsubq_m_u32): Remove.
- (__arm_vqsubq_m_u16): Remove.
- (__arm_vqsubq): Remove.
- (__arm_vqaddq): Remove.
- (__arm_vqaddq_m): Remove.
- (__arm_vqsubq_m): Remove.
- (vqdmulhq): Remove.
- (vqdmulhq_m): Remove.
- (vqdmulhq_s8): Remove.
- (vqdmulhq_n_s8): Remove.
- (vqdmulhq_s16): Remove.
- (vqdmulhq_n_s16): Remove.
- (vqdmulhq_s32): Remove.
- (vqdmulhq_n_s32): Remove.
- (vqdmulhq_m_n_s8): Remove.
- (vqdmulhq_m_n_s32): Remove.
- (vqdmulhq_m_n_s16): Remove.
- (vqdmulhq_m_s8): Remove.
- (vqdmulhq_m_s32): Remove.
- (vqdmulhq_m_s16): Remove.
- (__arm_vqdmulhq_s8): Remove.
- (__arm_vqdmulhq_n_s8): Remove.
- (__arm_vqdmulhq_s16): Remove.
- (__arm_vqdmulhq_n_s16): Remove.
- (__arm_vqdmulhq_s32): Remove.
- (__arm_vqdmulhq_n_s32): Remove.
- (__arm_vqdmulhq_m_n_s8): Remove.
- (__arm_vqdmulhq_m_n_s32): Remove.
- (__arm_vqdmulhq_m_n_s16): Remove.
- (__arm_vqdmulhq_m_s8): Remove.
- (__arm_vqdmulhq_m_s32): Remove.
- (__arm_vqdmulhq_m_s16): Remove.
- (__arm_vqdmulhq): Remove.
- (__arm_vqdmulhq_m): Remove.
- (vrhaddq): Remove.
- (vrhaddq_m): Remove.
- (vrhaddq_x): Remove.
- (vrhaddq_u8): Remove.
- (vrhaddq_s8): Remove.
- (vrhaddq_u16): Remove.
- (vrhaddq_s16): Remove.
- (vrhaddq_u32): Remove.
- (vrhaddq_s32): Remove.
- (vrhaddq_m_s8): Remove.
- (vrhaddq_m_s32): Remove.
- (vrhaddq_m_s16): Remove.
- (vrhaddq_m_u8): Remove.
- (vrhaddq_m_u32): Remove.
- (vrhaddq_m_u16): Remove.
- (vrhaddq_x_s8): Remove.
- (vrhaddq_x_s16): Remove.
- (vrhaddq_x_s32): Remove.
- (vrhaddq_x_u8): Remove.
- (vrhaddq_x_u16): Remove.
- (vrhaddq_x_u32): Remove.
- (__arm_vrhaddq_u8): Remove.
- (__arm_vrhaddq_s8): Remove.
- (__arm_vrhaddq_u16): Remove.
- (__arm_vrhaddq_s16): Remove.
- (__arm_vrhaddq_u32): Remove.
- (__arm_vrhaddq_s32): Remove.
- (__arm_vrhaddq_m_s8): Remove.
- (__arm_vrhaddq_m_s32): Remove.
- (__arm_vrhaddq_m_s16): Remove.
- (__arm_vrhaddq_m_u8): Remove.
- (__arm_vrhaddq_m_u32): Remove.
- (__arm_vrhaddq_m_u16): Remove.
- (__arm_vrhaddq_x_s8): Remove.
- (__arm_vrhaddq_x_s16): Remove.
- (__arm_vrhaddq_x_s32): Remove.
- (__arm_vrhaddq_x_u8): Remove.
- (__arm_vrhaddq_x_u16): Remove.
- (__arm_vrhaddq_x_u32): Remove.
- (__arm_vrhaddq): Remove.
- (__arm_vrhaddq_m): Remove.
- (__arm_vrhaddq_x): Remove.
- (vrmulhq): Remove.
- (vrmulhq_m): Remove.
- (vrmulhq_x): Remove.
- (vrmulhq_u8): Remove.
- (vrmulhq_s8): Remove.
- (vrmulhq_u16): Remove.
- (vrmulhq_s16): Remove.
- (vrmulhq_u32): Remove.
- (vrmulhq_s32): Remove.
- (vrmulhq_m_s8): Remove.
- (vrmulhq_m_s32): Remove.
- (vrmulhq_m_s16): Remove.
- (vrmulhq_m_u8): Remove.
- (vrmulhq_m_u32): Remove.
- (vrmulhq_m_u16): Remove.
- (vrmulhq_x_s8): Remove.
- (vrmulhq_x_s16): Remove.
- (vrmulhq_x_s32): Remove.
- (vrmulhq_x_u8): Remove.
- (vrmulhq_x_u16): Remove.
- (vrmulhq_x_u32): Remove.
- (__arm_vrmulhq_u8): Remove.
- (__arm_vrmulhq_s8): Remove.
- (__arm_vrmulhq_u16): Remove.
- (__arm_vrmulhq_s16): Remove.
- (__arm_vrmulhq_u32): Remove.
- (__arm_vrmulhq_s32): Remove.
- (__arm_vrmulhq_m_s8): Remove.
- (__arm_vrmulhq_m_s32): Remove.
- (__arm_vrmulhq_m_s16): Remove.
- (__arm_vrmulhq_m_u8): Remove.
- (__arm_vrmulhq_m_u32): Remove.
- (__arm_vrmulhq_m_u16): Remove.
- (__arm_vrmulhq_x_s8): Remove.
- (__arm_vrmulhq_x_s16): Remove.
- (__arm_vrmulhq_x_s32): Remove.
- (__arm_vrmulhq_x_u8): Remove.
- (__arm_vrmulhq_x_u16): Remove.
- (__arm_vrmulhq_x_u32): Remove.
- (__arm_vrmulhq): Remove.
- (__arm_vrmulhq_m): Remove.
- (__arm_vrmulhq_x): Remove.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_SU_BINARY): New.
- (mve_insn): Add vabdq, vhaddq, vhsubq, vmulhq, vqaddq, vqdmulhq,
- vqrdmulhq, vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq.
- (supf): Add VQDMULHQ_S, VQRDMULHQ_S.
- * config/arm/mve.md (mve_vabdq_<supf><mode>)
- (@mve_vhaddq_<supf><mode>, mve_vhsubq_<supf><mode>)
- (mve_vmulhq_<supf><mode>, mve_vqaddq_<supf><mode>)
- (mve_vqdmulhq_s<mode>, mve_vqrdmulhq_s<mode>)
- (mve_vqrshlq_<supf><mode>, mve_vqshlq_<supf><mode>)
- (mve_vqsubq_<supf><mode>, @mve_vrhaddq_<supf><mode>)
- (mve_vrmulhq_<supf><mode>, mve_vrshlq_<supf><mode>): Merge into
- ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
- * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
- (avg<mode>3_ceil, uavg<mode>3_ceil): Use gen_mve_q instead of
- gen_mve_vhaddq / gen_mve_vrhaddq.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New.
- (mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq,
- vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq.
- (supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, VQRDMLAHQ_M_N_S,
- VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S.
- * config/arm/mve.md (mve_vhaddq_m_n_<supf><mode>)
- (mve_vhsubq_m_n_<supf><mode>, mve_vmlaq_m_n_<supf><mode>)
- (mve_vmlasq_m_n_<supf><mode>, mve_vqaddq_m_n_<supf><mode>)
- (mve_vqdmlahq_m_n_s<mode>, mve_vqdmlashq_m_n_s<mode>)
- (mve_vqrdmlahq_m_n_s<mode>, mve_vqrdmlashq_m_n_s<mode>)
- (mve_vqsubq_m_n_<supf><mode>, mve_vqdmulhq_m_n_s<mode>)
- (mve_vqrdmulhq_m_n_s<mode>): Merge into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_SU_N_BINARY): New.
- (mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq,
- vqsubq.
- (supf): Add VQDMULHQ_N_S, VQRDMULHQ_N_S.
- * config/arm/mve.md (mve_vhaddq_n_<supf><mode>)
- (mve_vhsubq_n_<supf><mode>, mve_vqaddq_n_<supf><mode>)
- (mve_vqdmulhq_n_s<mode>, mve_vqrdmulhq_n_s<mode>)
- (mve_vqsubq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_SU_M_BINARY): New.
- (mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq,
- vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq,
- vqrdmladhq, vqrdmladhxq, vqrdmlsdhq, vqrdmlsdhxq, vqrdmulhq,
- vqrshlq, vqshlq, vqsubq, vrhaddq, vrmulhq, vrshlq, vshlq.
- (supf): Add VQDMLADHQ_M_S, VQDMLADHXQ_M_S, VQDMLSDHQ_M_S,
- VQDMLSDHXQ_M_S, VQDMULHQ_M_S, VQRDMLADHQ_M_S, VQRDMLADHXQ_M_S,
- VQRDMLSDHQ_M_S, VQRDMLSDHXQ_M_S, VQRDMULHQ_M_S.
- * config/arm/mve.md (@mve_<mve_insn>q_m_<supf><mode>): New.
- (mve_vshlq_m_<supf><mode>): Merged into
- @mve_<mve_insn>q_m_<supf><mode>.
- (mve_vabdq_m_<supf><mode>): Likewise.
- (mve_vhaddq_m_<supf><mode>): Likewise.
- (mve_vhsubq_m_<supf><mode>): Likewise.
- (mve_vmaxq_m_<supf><mode>): Likewise.
- (mve_vminq_m_<supf><mode>): Likewise.
- (mve_vmulhq_m_<supf><mode>): Likewise.
- (mve_vqaddq_m_<supf><mode>): Likewise.
- (mve_vqrshlq_m_<supf><mode>): Likewise.
- (mve_vqshlq_m_<supf><mode>): Likewise.
- (mve_vqsubq_m_<supf><mode>): Likewise.
- (mve_vrhaddq_m_<supf><mode>): Likewise.
- (mve_vrmulhq_m_<supf><mode>): Likewise.
- (mve_vrshlq_m_<supf><mode>): Likewise.
- (mve_vqdmladhq_m_s<mode>): Likewise.
- (mve_vqdmladhxq_m_s<mode>): Likewise.
- (mve_vqdmlsdhq_m_s<mode>): Likewise.
- (mve_vqdmlsdhxq_m_s<mode>): Likewise.
- (mve_vqdmulhq_m_s<mode>): Likewise.
- (mve_vqrdmladhq_m_s<mode>): Likewise.
- (mve_vqrdmladhxq_m_s<mode>): Likewise.
- (mve_vqrdmlsdhq_m_s<mode>): Likewise.
- (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
- (mve_vqrdmulhq_m_s<mode>): Likewise.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New.
- * config/arm/arm-mve-builtins-base.def (vcreateq): New.
- * config/arm/arm-mve-builtins-base.h (vcreateq): New.
- * config/arm/arm_mve.h (vcreateq_f16): Remove.
- (vcreateq_f32): Remove.
- (vcreateq_u8): Remove.
- (vcreateq_u16): Remove.
- (vcreateq_u32): Remove.
- (vcreateq_u64): Remove.
- (vcreateq_s8): Remove.
- (vcreateq_s16): Remove.
- (vcreateq_s32): Remove.
- (vcreateq_s64): Remove.
- (__arm_vcreateq_u8): Remove.
- (__arm_vcreateq_u16): Remove.
- (__arm_vcreateq_u32): Remove.
- (__arm_vcreateq_u64): Remove.
- (__arm_vcreateq_s8): Remove.
- (__arm_vcreateq_s16): Remove.
- (__arm_vcreateq_s32): Remove.
- (__arm_vcreateq_s64): Remove.
- (__arm_vcreateq_f16): Remove.
- (__arm_vcreateq_f32): Remove.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_FP_CREATE_ONLY): New.
- (mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F.
- * config/arm/mve.md (mve_vcreateq_f<mode>): Rename into ...
- (@mve_<mve_insn>q_f<mode>): ... this.
- (mve_vcreateq_<supf><mode>): Rename into ...
- (@mve_<mve_insn>q_<supf><mode>): ... this.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (create): New.
- * config/arm/arm-mve-builtins-shapes.h: (create): New.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_mve_function_exact_insn): New.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New.
- (vorrq): New.
- * config/arm/arm-mve-builtins-base.def (vorrq): New.
- * config/arm/arm-mve-builtins-base.h (vorrq): New.
- * config/arm/arm-mve-builtins.cc
- (function_instance::has_inactive_argument): Handle vorrq.
- * config/arm/arm_mve.h (vorrq): Remove.
- (vorrq_m_n): Remove.
- (vorrq_m): Remove.
- (vorrq_x): Remove.
- (vorrq_u8): Remove.
- (vorrq_s8): Remove.
- (vorrq_u16): Remove.
- (vorrq_s16): Remove.
- (vorrq_u32): Remove.
- (vorrq_s32): Remove.
- (vorrq_n_u16): Remove.
- (vorrq_f16): Remove.
- (vorrq_n_s16): Remove.
- (vorrq_n_u32): Remove.
- (vorrq_f32): Remove.
- (vorrq_n_s32): Remove.
- (vorrq_m_n_s16): Remove.
- (vorrq_m_n_u16): Remove.
- (vorrq_m_n_s32): Remove.
- (vorrq_m_n_u32): Remove.
- (vorrq_m_s8): Remove.
- (vorrq_m_s32): Remove.
- (vorrq_m_s16): Remove.
- (vorrq_m_u8): Remove.
- (vorrq_m_u32): Remove.
- (vorrq_m_u16): Remove.
- (vorrq_m_f32): Remove.
- (vorrq_m_f16): Remove.
- (vorrq_x_s8): Remove.
- (vorrq_x_s16): Remove.
- (vorrq_x_s32): Remove.
- (vorrq_x_u8): Remove.
- (vorrq_x_u16): Remove.
- (vorrq_x_u32): Remove.
- (vorrq_x_f16): Remove.
- (vorrq_x_f32): Remove.
- (__arm_vorrq_u8): Remove.
- (__arm_vorrq_s8): Remove.
- (__arm_vorrq_u16): Remove.
- (__arm_vorrq_s16): Remove.
- (__arm_vorrq_u32): Remove.
- (__arm_vorrq_s32): Remove.
- (__arm_vorrq_n_u16): Remove.
- (__arm_vorrq_n_s16): Remove.
- (__arm_vorrq_n_u32): Remove.
- (__arm_vorrq_n_s32): Remove.
- (__arm_vorrq_m_n_s16): Remove.
- (__arm_vorrq_m_n_u16): Remove.
- (__arm_vorrq_m_n_s32): Remove.
- (__arm_vorrq_m_n_u32): Remove.
- (__arm_vorrq_m_s8): Remove.
- (__arm_vorrq_m_s32): Remove.
- (__arm_vorrq_m_s16): Remove.
- (__arm_vorrq_m_u8): Remove.
- (__arm_vorrq_m_u32): Remove.
- (__arm_vorrq_m_u16): Remove.
- (__arm_vorrq_x_s8): Remove.
- (__arm_vorrq_x_s16): Remove.
- (__arm_vorrq_x_s32): Remove.
- (__arm_vorrq_x_u8): Remove.
- (__arm_vorrq_x_u16): Remove.
- (__arm_vorrq_x_u32): Remove.
- (__arm_vorrq_f16): Remove.
- (__arm_vorrq_f32): Remove.
- (__arm_vorrq_m_f32): Remove.
- (__arm_vorrq_m_f16): Remove.
- (__arm_vorrq_x_f16): Remove.
- (__arm_vorrq_x_f32): Remove.
- (__arm_vorrq): Remove.
- (__arm_vorrq_m_n): Remove.
- (__arm_vorrq_m): Remove.
- (__arm_vorrq_x): Remove.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_orrq): New.
- * config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove static.
- * config/arm/arm-mve-builtins.h (preds_m_or_none): Declare.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New.
- (vandq,veorq): New.
- * config/arm/arm-mve-builtins-base.def (vandq, veorq): New.
- * config/arm/arm-mve-builtins-base.h (vandq, veorq): New.
- * config/arm/arm_mve.h (vandq): Remove.
- (vandq_m): Remove.
- (vandq_x): Remove.
- (vandq_u8): Remove.
- (vandq_s8): Remove.
- (vandq_u16): Remove.
- (vandq_s16): Remove.
- (vandq_u32): Remove.
- (vandq_s32): Remove.
- (vandq_f16): Remove.
- (vandq_f32): Remove.
- (vandq_m_s8): Remove.
- (vandq_m_s32): Remove.
- (vandq_m_s16): Remove.
- (vandq_m_u8): Remove.
- (vandq_m_u32): Remove.
- (vandq_m_u16): Remove.
- (vandq_m_f32): Remove.
- (vandq_m_f16): Remove.
- (vandq_x_s8): Remove.
- (vandq_x_s16): Remove.
- (vandq_x_s32): Remove.
- (vandq_x_u8): Remove.
- (vandq_x_u16): Remove.
- (vandq_x_u32): Remove.
- (vandq_x_f16): Remove.
- (vandq_x_f32): Remove.
- (__arm_vandq_u8): Remove.
- (__arm_vandq_s8): Remove.
- (__arm_vandq_u16): Remove.
- (__arm_vandq_s16): Remove.
- (__arm_vandq_u32): Remove.
- (__arm_vandq_s32): Remove.
- (__arm_vandq_m_s8): Remove.
- (__arm_vandq_m_s32): Remove.
- (__arm_vandq_m_s16): Remove.
- (__arm_vandq_m_u8): Remove.
- (__arm_vandq_m_u32): Remove.
- (__arm_vandq_m_u16): Remove.
- (__arm_vandq_x_s8): Remove.
- (__arm_vandq_x_s16): Remove.
- (__arm_vandq_x_s32): Remove.
- (__arm_vandq_x_u8): Remove.
- (__arm_vandq_x_u16): Remove.
- (__arm_vandq_x_u32): Remove.
- (__arm_vandq_f16): Remove.
- (__arm_vandq_f32): Remove.
- (__arm_vandq_m_f32): Remove.
- (__arm_vandq_m_f16): Remove.
- (__arm_vandq_x_f16): Remove.
- (__arm_vandq_x_f32): Remove.
- (__arm_vandq): Remove.
- (__arm_vandq_m): Remove.
- (__arm_vandq_x): Remove.
- (veorq_m): Remove.
- (veorq_x): Remove.
- (veorq_u8): Remove.
- (veorq_s8): Remove.
- (veorq_u16): Remove.
- (veorq_s16): Remove.
- (veorq_u32): Remove.
- (veorq_s32): Remove.
- (veorq_f16): Remove.
- (veorq_f32): Remove.
- (veorq_m_s8): Remove.
- (veorq_m_s32): Remove.
- (veorq_m_s16): Remove.
- (veorq_m_u8): Remove.
- (veorq_m_u32): Remove.
- (veorq_m_u16): Remove.
- (veorq_m_f32): Remove.
- (veorq_m_f16): Remove.
- (veorq_x_s8): Remove.
- (veorq_x_s16): Remove.
- (veorq_x_s32): Remove.
- (veorq_x_u8): Remove.
- (veorq_x_u16): Remove.
- (veorq_x_u32): Remove.
- (veorq_x_f16): Remove.
- (veorq_x_f32): Remove.
- (__arm_veorq_u8): Remove.
- (__arm_veorq_s8): Remove.
- (__arm_veorq_u16): Remove.
- (__arm_veorq_s16): Remove.
- (__arm_veorq_u32): Remove.
- (__arm_veorq_s32): Remove.
- (__arm_veorq_m_s8): Remove.
- (__arm_veorq_m_s32): Remove.
- (__arm_veorq_m_s16): Remove.
- (__arm_veorq_m_u8): Remove.
- (__arm_veorq_m_u32): Remove.
- (__arm_veorq_m_u16): Remove.
- (__arm_veorq_x_s8): Remove.
- (__arm_veorq_x_s16): Remove.
- (__arm_veorq_x_s32): Remove.
- (__arm_veorq_x_u8): Remove.
- (__arm_veorq_x_u16): Remove.
- (__arm_veorq_x_u32): Remove.
- (__arm_veorq_f16): Remove.
- (__arm_veorq_f32): Remove.
- (__arm_veorq_m_f32): Remove.
- (__arm_veorq_m_f16): Remove.
- (__arm_veorq_x_f16): Remove.
- (__arm_veorq_x_f32): Remove.
- (__arm_veorq): Remove.
- (__arm_veorq_m): Remove.
- (__arm_veorq_x): Remove.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC)
- (MVE_FP_M_BINARY_LOGIC): New.
- (MVE_INT_M_N_BINARY_LOGIC): New.
- (MVE_INT_N_BINARY_LOGIC): New.
- (mve_insn): Add vand, veor, vorr, vbic.
- * config/arm/mve.md (mve_vandq_m_<supf><mode>)
- (mve_veorq_m_<supf><mode>, mve_vorrq_m_<supf><mode>)
- (mve_vbicq_m_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this.
- (mve_vandq_m_f<mode>, mve_veorq_m_f<mode>, mve_vorrq_m_f<mode>)
- (mve_vbicq_m_f<mode>): Merge into ...
- (@mve_<mve_insn>q_m_f<mode>): ... this.
- (mve_vorrq_n_<supf><mode>)
- (mve_vbicq_n_<supf><mode>): Merge into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vorrq_m_n_<supf><mode>, mve_vbicq_m_n_<supf><mode>): Merge
- into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary): New.
- * config/arm/arm-mve-builtins-shapes.h (binary): New.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N):
- New.
- (vaddq, vmulq, vsubq): New.
- * config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New.
- * config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New.
- * config/arm/arm_mve.h (vaddq): Remove.
- (vaddq_m): Remove.
- (vaddq_x): Remove.
- (vaddq_n_u8): Remove.
- (vaddq_n_s8): Remove.
- (vaddq_n_u16): Remove.
- (vaddq_n_s16): Remove.
- (vaddq_n_u32): Remove.
- (vaddq_n_s32): Remove.
- (vaddq_n_f16): Remove.
- (vaddq_n_f32): Remove.
- (vaddq_m_n_s8): Remove.
- (vaddq_m_n_s32): Remove.
- (vaddq_m_n_s16): Remove.
- (vaddq_m_n_u8): Remove.
- (vaddq_m_n_u32): Remove.
- (vaddq_m_n_u16): Remove.
- (vaddq_m_s8): Remove.
- (vaddq_m_s32): Remove.
- (vaddq_m_s16): Remove.
- (vaddq_m_u8): Remove.
- (vaddq_m_u32): Remove.
- (vaddq_m_u16): Remove.
- (vaddq_m_f32): Remove.
- (vaddq_m_f16): Remove.
- (vaddq_m_n_f32): Remove.
- (vaddq_m_n_f16): Remove.
- (vaddq_s8): Remove.
- (vaddq_s16): Remove.
- (vaddq_s32): Remove.
- (vaddq_u8): Remove.
- (vaddq_u16): Remove.
- (vaddq_u32): Remove.
- (vaddq_f16): Remove.
- (vaddq_f32): Remove.
- (vaddq_x_s8): Remove.
- (vaddq_x_s16): Remove.
- (vaddq_x_s32): Remove.
- (vaddq_x_n_s8): Remove.
- (vaddq_x_n_s16): Remove.
- (vaddq_x_n_s32): Remove.
- (vaddq_x_u8): Remove.
- (vaddq_x_u16): Remove.
- (vaddq_x_u32): Remove.
- (vaddq_x_n_u8): Remove.
- (vaddq_x_n_u16): Remove.
- (vaddq_x_n_u32): Remove.
- (vaddq_x_f16): Remove.
- (vaddq_x_f32): Remove.
- (vaddq_x_n_f16): Remove.
- (vaddq_x_n_f32): Remove.
- (__arm_vaddq_n_u8): Remove.
- (__arm_vaddq_n_s8): Remove.
- (__arm_vaddq_n_u16): Remove.
- (__arm_vaddq_n_s16): Remove.
- (__arm_vaddq_n_u32): Remove.
- (__arm_vaddq_n_s32): Remove.
- (__arm_vaddq_m_n_s8): Remove.
- (__arm_vaddq_m_n_s32): Remove.
- (__arm_vaddq_m_n_s16): Remove.
- (__arm_vaddq_m_n_u8): Remove.
- (__arm_vaddq_m_n_u32): Remove.
- (__arm_vaddq_m_n_u16): Remove.
- (__arm_vaddq_m_s8): Remove.
- (__arm_vaddq_m_s32): Remove.
- (__arm_vaddq_m_s16): Remove.
- (__arm_vaddq_m_u8): Remove.
- (__arm_vaddq_m_u32): Remove.
- (__arm_vaddq_m_u16): Remove.
- (__arm_vaddq_s8): Remove.
- (__arm_vaddq_s16): Remove.
- (__arm_vaddq_s32): Remove.
- (__arm_vaddq_u8): Remove.
- (__arm_vaddq_u16): Remove.
- (__arm_vaddq_u32): Remove.
- (__arm_vaddq_x_s8): Remove.
- (__arm_vaddq_x_s16): Remove.
- (__arm_vaddq_x_s32): Remove.
- (__arm_vaddq_x_n_s8): Remove.
- (__arm_vaddq_x_n_s16): Remove.
- (__arm_vaddq_x_n_s32): Remove.
- (__arm_vaddq_x_u8): Remove.
- (__arm_vaddq_x_u16): Remove.
- (__arm_vaddq_x_u32): Remove.
- (__arm_vaddq_x_n_u8): Remove.
- (__arm_vaddq_x_n_u16): Remove.
- (__arm_vaddq_x_n_u32): Remove.
- (__arm_vaddq_n_f16): Remove.
- (__arm_vaddq_n_f32): Remove.
- (__arm_vaddq_m_f32): Remove.
- (__arm_vaddq_m_f16): Remove.
- (__arm_vaddq_m_n_f32): Remove.
- (__arm_vaddq_m_n_f16): Remove.
- (__arm_vaddq_f16): Remove.
- (__arm_vaddq_f32): Remove.
- (__arm_vaddq_x_f16): Remove.
- (__arm_vaddq_x_f32): Remove.
- (__arm_vaddq_x_n_f16): Remove.
- (__arm_vaddq_x_n_f32): Remove.
- (__arm_vaddq): Remove.
- (__arm_vaddq_m): Remove.
- (__arm_vaddq_x): Remove.
- (vmulq): Remove.
- (vmulq_m): Remove.
- (vmulq_x): Remove.
- (vmulq_u8): Remove.
- (vmulq_n_u8): Remove.
- (vmulq_s8): Remove.
- (vmulq_n_s8): Remove.
- (vmulq_u16): Remove.
- (vmulq_n_u16): Remove.
- (vmulq_s16): Remove.
- (vmulq_n_s16): Remove.
- (vmulq_u32): Remove.
- (vmulq_n_u32): Remove.
- (vmulq_s32): Remove.
- (vmulq_n_s32): Remove.
- (vmulq_n_f16): Remove.
- (vmulq_f16): Remove.
- (vmulq_n_f32): Remove.
- (vmulq_f32): Remove.
- (vmulq_m_n_s8): Remove.
- (vmulq_m_n_s32): Remove.
- (vmulq_m_n_s16): Remove.
- (vmulq_m_n_u8): Remove.
- (vmulq_m_n_u32): Remove.
- (vmulq_m_n_u16): Remove.
- (vmulq_m_s8): Remove.
- (vmulq_m_s32): Remove.
- (vmulq_m_s16): Remove.
- (vmulq_m_u8): Remove.
- (vmulq_m_u32): Remove.
- (vmulq_m_u16): Remove.
- (vmulq_m_f32): Remove.
- (vmulq_m_f16): Remove.
- (vmulq_m_n_f32): Remove.
- (vmulq_m_n_f16): Remove.
- (vmulq_x_s8): Remove.
- (vmulq_x_s16): Remove.
- (vmulq_x_s32): Remove.
- (vmulq_x_n_s8): Remove.
- (vmulq_x_n_s16): Remove.
- (vmulq_x_n_s32): Remove.
- (vmulq_x_u8): Remove.
- (vmulq_x_u16): Remove.
- (vmulq_x_u32): Remove.
- (vmulq_x_n_u8): Remove.
- (vmulq_x_n_u16): Remove.
- (vmulq_x_n_u32): Remove.
- (vmulq_x_f16): Remove.
- (vmulq_x_f32): Remove.
- (vmulq_x_n_f16): Remove.
- (vmulq_x_n_f32): Remove.
- (__arm_vmulq_u8): Remove.
- (__arm_vmulq_n_u8): Remove.
- (__arm_vmulq_s8): Remove.
- (__arm_vmulq_n_s8): Remove.
- (__arm_vmulq_u16): Remove.
- (__arm_vmulq_n_u16): Remove.
- (__arm_vmulq_s16): Remove.
- (__arm_vmulq_n_s16): Remove.
- (__arm_vmulq_u32): Remove.
- (__arm_vmulq_n_u32): Remove.
- (__arm_vmulq_s32): Remove.
- (__arm_vmulq_n_s32): Remove.
- (__arm_vmulq_m_n_s8): Remove.
- (__arm_vmulq_m_n_s32): Remove.
- (__arm_vmulq_m_n_s16): Remove.
- (__arm_vmulq_m_n_u8): Remove.
- (__arm_vmulq_m_n_u32): Remove.
- (__arm_vmulq_m_n_u16): Remove.
- (__arm_vmulq_m_s8): Remove.
- (__arm_vmulq_m_s32): Remove.
- (__arm_vmulq_m_s16): Remove.
- (__arm_vmulq_m_u8): Remove.
- (__arm_vmulq_m_u32): Remove.
- (__arm_vmulq_m_u16): Remove.
- (__arm_vmulq_x_s8): Remove.
- (__arm_vmulq_x_s16): Remove.
- (__arm_vmulq_x_s32): Remove.
- (__arm_vmulq_x_n_s8): Remove.
- (__arm_vmulq_x_n_s16): Remove.
- (__arm_vmulq_x_n_s32): Remove.
- (__arm_vmulq_x_u8): Remove.
- (__arm_vmulq_x_u16): Remove.
- (__arm_vmulq_x_u32): Remove.
- (__arm_vmulq_x_n_u8): Remove.
- (__arm_vmulq_x_n_u16): Remove.
- (__arm_vmulq_x_n_u32): Remove.
- (__arm_vmulq_n_f16): Remove.
- (__arm_vmulq_f16): Remove.
- (__arm_vmulq_n_f32): Remove.
- (__arm_vmulq_f32): Remove.
- (__arm_vmulq_m_f32): Remove.
- (__arm_vmulq_m_f16): Remove.
- (__arm_vmulq_m_n_f32): Remove.
- (__arm_vmulq_m_n_f16): Remove.
- (__arm_vmulq_x_f16): Remove.
- (__arm_vmulq_x_f32): Remove.
- (__arm_vmulq_x_n_f16): Remove.
- (__arm_vmulq_x_n_f32): Remove.
- (__arm_vmulq): Remove.
- (__arm_vmulq_m): Remove.
- (__arm_vmulq_x): Remove.
- (vsubq): Remove.
- (vsubq_m): Remove.
- (vsubq_x): Remove.
- (vsubq_n_f16): Remove.
- (vsubq_n_f32): Remove.
- (vsubq_u8): Remove.
- (vsubq_n_u8): Remove.
- (vsubq_s8): Remove.
- (vsubq_n_s8): Remove.
- (vsubq_u16): Remove.
- (vsubq_n_u16): Remove.
- (vsubq_s16): Remove.
- (vsubq_n_s16): Remove.
- (vsubq_u32): Remove.
- (vsubq_n_u32): Remove.
- (vsubq_s32): Remove.
- (vsubq_n_s32): Remove.
- (vsubq_f16): Remove.
- (vsubq_f32): Remove.
- (vsubq_m_s8): Remove.
- (vsubq_m_u8): Remove.
- (vsubq_m_s16): Remove.
- (vsubq_m_u16): Remove.
- (vsubq_m_s32): Remove.
- (vsubq_m_u32): Remove.
- (vsubq_m_n_s8): Remove.
- (vsubq_m_n_s32): Remove.
- (vsubq_m_n_s16): Remove.
- (vsubq_m_n_u8): Remove.
- (vsubq_m_n_u32): Remove.
- (vsubq_m_n_u16): Remove.
- (vsubq_m_f32): Remove.
- (vsubq_m_f16): Remove.
- (vsubq_m_n_f32): Remove.
- (vsubq_m_n_f16): Remove.
- (vsubq_x_s8): Remove.
- (vsubq_x_s16): Remove.
- (vsubq_x_s32): Remove.
- (vsubq_x_n_s8): Remove.
- (vsubq_x_n_s16): Remove.
- (vsubq_x_n_s32): Remove.
- (vsubq_x_u8): Remove.
- (vsubq_x_u16): Remove.
- (vsubq_x_u32): Remove.
- (vsubq_x_n_u8): Remove.
- (vsubq_x_n_u16): Remove.
- (vsubq_x_n_u32): Remove.
- (vsubq_x_f16): Remove.
- (vsubq_x_f32): Remove.
- (vsubq_x_n_f16): Remove.
- (vsubq_x_n_f32): Remove.
- (__arm_vsubq_u8): Remove.
- (__arm_vsubq_n_u8): Remove.
- (__arm_vsubq_s8): Remove.
- (__arm_vsubq_n_s8): Remove.
- (__arm_vsubq_u16): Remove.
- (__arm_vsubq_n_u16): Remove.
- (__arm_vsubq_s16): Remove.
- (__arm_vsubq_n_s16): Remove.
- (__arm_vsubq_u32): Remove.
- (__arm_vsubq_n_u32): Remove.
- (__arm_vsubq_s32): Remove.
- (__arm_vsubq_n_s32): Remove.
- (__arm_vsubq_m_s8): Remove.
- (__arm_vsubq_m_u8): Remove.
- (__arm_vsubq_m_s16): Remove.
- (__arm_vsubq_m_u16): Remove.
- (__arm_vsubq_m_s32): Remove.
- (__arm_vsubq_m_u32): Remove.
- (__arm_vsubq_m_n_s8): Remove.
- (__arm_vsubq_m_n_s32): Remove.
- (__arm_vsubq_m_n_s16): Remove.
- (__arm_vsubq_m_n_u8): Remove.
- (__arm_vsubq_m_n_u32): Remove.
- (__arm_vsubq_m_n_u16): Remove.
- (__arm_vsubq_x_s8): Remove.
- (__arm_vsubq_x_s16): Remove.
- (__arm_vsubq_x_s32): Remove.
- (__arm_vsubq_x_n_s8): Remove.
- (__arm_vsubq_x_n_s16): Remove.
- (__arm_vsubq_x_n_s32): Remove.
- (__arm_vsubq_x_u8): Remove.
- (__arm_vsubq_x_u16): Remove.
- (__arm_vsubq_x_u32): Remove.
- (__arm_vsubq_x_n_u8): Remove.
- (__arm_vsubq_x_n_u16): Remove.
- (__arm_vsubq_x_n_u32): Remove.
- (__arm_vsubq_n_f16): Remove.
- (__arm_vsubq_n_f32): Remove.
- (__arm_vsubq_f16): Remove.
- (__arm_vsubq_f32): Remove.
- (__arm_vsubq_m_f32): Remove.
- (__arm_vsubq_m_f16): Remove.
- (__arm_vsubq_m_n_f32): Remove.
- (__arm_vsubq_m_n_f16): Remove.
- (__arm_vsubq_x_f16): Remove.
- (__arm_vsubq_x_f32): Remove.
- (__arm_vsubq_x_n_f16): Remove.
- (__arm_vsubq_x_n_f32): Remove.
- (__arm_vsubq): Remove.
- (__arm_vsubq_m): Remove.
- (__arm_vsubq_x): Remove.
- * config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f):
- Remove.
- (vmulq_u, vmulq_s, vmulq_f): Remove.
- * config/arm/mve.md (mve_vsubq_<supf><mode>): Remove.
- (mve_vmulq_<supf><mode>): Remove.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY)
- (MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY)
- (MVE_FP_M_N_BINARY, MVE_FP_N_BINARY, mve_addsubmul, mve_insn): New
- iterators.
- * config/arm/mve.md
- (mve_vsubq_n_f<mode>, mve_vaddq_n_f<mode>, mve_vmulq_n_f<mode>):
- Factorize into ...
- (@mve_<mve_insn>q_n_f<mode>): ... this.
- (mve_vaddq_n_<supf><mode>, mve_vmulq_n_<supf><mode>)
- (mve_vsubq_n_<supf><mode>): Factorize into ...
- (@mve_<mve_insn>q_n_<supf><mode>): ... this.
- (mve_vaddq<mode>, mve_vmulq<mode>, mve_vsubq<mode>): Factorize
- into ...
- (mve_<mve_addsubmul>q<mode>): ... this.
- (mve_vaddq_f<mode>, mve_vmulq_f<mode>, mve_vsubq_f<mode>):
- Factorize into ...
- (mve_<mve_addsubmul>q_f<mode>): ... this.
- (mve_vaddq_m_<supf><mode>, mve_vmulq_m_<supf><mode>)
- (mve_vsubq_m_<supf><mode>): Factorize into ...
- (@mve_<mve_insn>q_m_<supf><mode>): ... this,
- (mve_vaddq_m_n_<supf><mode>, mve_vmulq_m_n_<supf><mode>)
- (mve_vsubq_m_n_<supf><mode>): Factorize into ...
- (@mve_<mve_insn>q_m_n_<supf><mode>): ... this.
- (mve_vaddq_m_f<mode>, mve_vmulq_m_f<mode>, mve_vsubq_m_f<mode>):
- Factorize into ...
- (@mve_<mve_insn>q_m_f<mode>): ... this.
- (mve_vaddq_m_n_f<mode>, mve_vmulq_m_n_f<mode>)
- (mve_vsubq_m_n_f<mode>): Factorize into ...
- (@mve_<mve_insn>q_m_n_f<mode>): ... this.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-functions.h (class
- unspec_based_mve_function_base): New.
- (class unspec_based_mve_function_exact_insn): New.
-
-2023-05-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New.
- * config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New.
-
-2023-05-03 Murray Steele <murray.steele@arm.com>
- Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (class
- vuninitializedq_impl): New.
- * config/arm/arm-mve-builtins-base.def (vuninitializedq): New.
- * config/arm/arm-mve-builtins-base.h (vuninitializedq): New
- declaration.
- * config/arm/arm-mve-builtins-shapes.cc (inherent): New.
- * config/arm/arm-mve-builtins-shapes.h (inherent): New
- declaration.
- * config/arm/arm_mve_types.h (__arm_vuninitializedq): Move to ...
- * config/arm/arm_mve.h (__arm_vuninitializedq): ... here.
- (__arm_vuninitializedq_u8): Remove.
- (__arm_vuninitializedq_u16): Remove.
- (__arm_vuninitializedq_u32): Remove.
- (__arm_vuninitializedq_u64): Remove.
- (__arm_vuninitializedq_s8): Remove.
- (__arm_vuninitializedq_s16): Remove.
- (__arm_vuninitializedq_s32): Remove.
- (__arm_vuninitializedq_s64): Remove.
- (__arm_vuninitializedq_f16): Remove.
- (__arm_vuninitializedq_f32): Remove.
-
-2023-05-03 Murray Steele <murray.steele@arm.com>
- Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class.
- * config/arm/arm-mve-builtins-base.def: Define vreinterpretq.
- * config/arm/arm-mve-builtins-base.h (vreinterpretq): New declaration.
- * config/arm/arm-mve-builtins-shapes.cc (parse_element_type): New function.
- (parse_type): Likewise.
- (parse_signature): Likewise.
- (build_one): Likewise.
- (build_all): Likewise.
- (overloaded_base): New struct.
- (unary_convert_def): Likewise.
- * config/arm/arm-mve-builtins-shapes.h (unary_convert): Declare.
- * config/arm/arm-mve-builtins.cc (TYPES_reinterpret_signed1): New
- macro.
- (TYPES_reinterpret_unsigned1): Likewise.
- (TYPES_reinterpret_integer): Likewise.
- (TYPES_reinterpret_integer1): Likewise.
- (TYPES_reinterpret_float1): Likewise.
- (TYPES_reinterpret_float): Likewise.
- (reinterpret_integer): New.
- (reinterpret_float): New.
- (handle_arm_mve_h): Register builtins.
- * config/arm/arm_mve.h (vreinterpretq_s16): Remove.
- (vreinterpretq_s32): Likewise.
- (vreinterpretq_s64): Likewise.
- (vreinterpretq_s8): Likewise.
- (vreinterpretq_u16): Likewise.
- (vreinterpretq_u32): Likewise.
- (vreinterpretq_u64): Likewise.
- (vreinterpretq_u8): Likewise.
- (vreinterpretq_f16): Likewise.
- (vreinterpretq_f32): Likewise.
- (vreinterpretq_s16_s32): Likewise.
- (vreinterpretq_s16_s64): Likewise.
- (vreinterpretq_s16_s8): Likewise.
- (vreinterpretq_s16_u16): Likewise.
- (vreinterpretq_s16_u32): Likewise.
- (vreinterpretq_s16_u64): Likewise.
- (vreinterpretq_s16_u8): Likewise.
- (vreinterpretq_s32_s16): Likewise.
- (vreinterpretq_s32_s64): Likewise.
- (vreinterpretq_s32_s8): Likewise.
- (vreinterpretq_s32_u16): Likewise.
- (vreinterpretq_s32_u32): Likewise.
- (vreinterpretq_s32_u64): Likewise.
- (vreinterpretq_s32_u8): Likewise.
- (vreinterpretq_s64_s16): Likewise.
- (vreinterpretq_s64_s32): Likewise.
- (vreinterpretq_s64_s8): Likewise.
- (vreinterpretq_s64_u16): Likewise.
- (vreinterpretq_s64_u32): Likewise.
- (vreinterpretq_s64_u64): Likewise.
- (vreinterpretq_s64_u8): Likewise.
- (vreinterpretq_s8_s16): Likewise.
- (vreinterpretq_s8_s32): Likewise.
- (vreinterpretq_s8_s64): Likewise.
- (vreinterpretq_s8_u16): Likewise.
- (vreinterpretq_s8_u32): Likewise.
- (vreinterpretq_s8_u64): Likewise.
- (vreinterpretq_s8_u8): Likewise.
- (vreinterpretq_u16_s16): Likewise.
- (vreinterpretq_u16_s32): Likewise.
- (vreinterpretq_u16_s64): Likewise.
- (vreinterpretq_u16_s8): Likewise.
- (vreinterpretq_u16_u32): Likewise.
- (vreinterpretq_u16_u64): Likewise.
- (vreinterpretq_u16_u8): Likewise.
- (vreinterpretq_u32_s16): Likewise.
- (vreinterpretq_u32_s32): Likewise.
- (vreinterpretq_u32_s64): Likewise.
- (vreinterpretq_u32_s8): Likewise.
- (vreinterpretq_u32_u16): Likewise.
- (vreinterpretq_u32_u64): Likewise.
- (vreinterpretq_u32_u8): Likewise.
- (vreinterpretq_u64_s16): Likewise.
- (vreinterpretq_u64_s32): Likewise.
- (vreinterpretq_u64_s64): Likewise.
- (vreinterpretq_u64_s8): Likewise.
- (vreinterpretq_u64_u16): Likewise.
- (vreinterpretq_u64_u32): Likewise.
- (vreinterpretq_u64_u8): Likewise.
- (vreinterpretq_u8_s16): Likewise.
- (vreinterpretq_u8_s32): Likewise.
- (vreinterpretq_u8_s64): Likewise.
- (vreinterpretq_u8_s8): Likewise.
- (vreinterpretq_u8_u16): Likewise.
- (vreinterpretq_u8_u32): Likewise.
- (vreinterpretq_u8_u64): Likewise.
- (vreinterpretq_s32_f16): Likewise.
- (vreinterpretq_s32_f32): Likewise.
- (vreinterpretq_u16_f16): Likewise.
- (vreinterpretq_u16_f32): Likewise.
- (vreinterpretq_u32_f16): Likewise.
- (vreinterpretq_u32_f32): Likewise.
- (vreinterpretq_u64_f16): Likewise.
- (vreinterpretq_u64_f32): Likewise.
- (vreinterpretq_u8_f16): Likewise.
- (vreinterpretq_u8_f32): Likewise.
- (vreinterpretq_f16_f32): Likewise.
- (vreinterpretq_f16_s16): Likewise.
- (vreinterpretq_f16_s32): Likewise.
- (vreinterpretq_f16_s64): Likewise.
- (vreinterpretq_f16_s8): Likewise.
- (vreinterpretq_f16_u16): Likewise.
- (vreinterpretq_f16_u32): Likewise.
- (vreinterpretq_f16_u64): Likewise.
- (vreinterpretq_f16_u8): Likewise.
- (vreinterpretq_f32_f16): Likewise.
- (vreinterpretq_f32_s16): Likewise.
- (vreinterpretq_f32_s32): Likewise.
- (vreinterpretq_f32_s64): Likewise.
- (vreinterpretq_f32_s8): Likewise.
- (vreinterpretq_f32_u16): Likewise.
- (vreinterpretq_f32_u32): Likewise.
- (vreinterpretq_f32_u64): Likewise.
- (vreinterpretq_f32_u8): Likewise.
- (vreinterpretq_s16_f16): Likewise.
- (vreinterpretq_s16_f32): Likewise.
- (vreinterpretq_s64_f16): Likewise.
- (vreinterpretq_s64_f32): Likewise.
- (vreinterpretq_s8_f16): Likewise.
- (vreinterpretq_s8_f32): Likewise.
- (__arm_vreinterpretq_f16): Likewise.
- (__arm_vreinterpretq_f32): Likewise.
- (__arm_vreinterpretq_s16): Likewise.
- (__arm_vreinterpretq_s32): Likewise.
- (__arm_vreinterpretq_s64): Likewise.
- (__arm_vreinterpretq_s8): Likewise.
- (__arm_vreinterpretq_u16): Likewise.
- (__arm_vreinterpretq_u32): Likewise.
- (__arm_vreinterpretq_u64): Likewise.
- (__arm_vreinterpretq_u8): Likewise.
- * config/arm/arm_mve_types.h (__arm_vreinterpretq_s16_s32): Remove.
- (__arm_vreinterpretq_s16_s64): Likewise.
- (__arm_vreinterpretq_s16_s8): Likewise.
- (__arm_vreinterpretq_s16_u16): Likewise.
- (__arm_vreinterpretq_s16_u32): Likewise.
- (__arm_vreinterpretq_s16_u64): Likewise.
- (__arm_vreinterpretq_s16_u8): Likewise.
- (__arm_vreinterpretq_s32_s16): Likewise.
- (__arm_vreinterpretq_s32_s64): Likewise.
- (__arm_vreinterpretq_s32_s8): Likewise.
- (__arm_vreinterpretq_s32_u16): Likewise.
- (__arm_vreinterpretq_s32_u32): Likewise.
- (__arm_vreinterpretq_s32_u64): Likewise.
- (__arm_vreinterpretq_s32_u8): Likewise.
- (__arm_vreinterpretq_s64_s16): Likewise.
- (__arm_vreinterpretq_s64_s32): Likewise.
- (__arm_vreinterpretq_s64_s8): Likewise.
- (__arm_vreinterpretq_s64_u16): Likewise.
- (__arm_vreinterpretq_s64_u32): Likewise.
- (__arm_vreinterpretq_s64_u64): Likewise.
- (__arm_vreinterpretq_s64_u8): Likewise.
- (__arm_vreinterpretq_s8_s16): Likewise.
- (__arm_vreinterpretq_s8_s32): Likewise.
- (__arm_vreinterpretq_s8_s64): Likewise.
- (__arm_vreinterpretq_s8_u16): Likewise.
- (__arm_vreinterpretq_s8_u32): Likewise.
- (__arm_vreinterpretq_s8_u64): Likewise.
- (__arm_vreinterpretq_s8_u8): Likewise.
- (__arm_vreinterpretq_u16_s16): Likewise.
- (__arm_vreinterpretq_u16_s32): Likewise.
- (__arm_vreinterpretq_u16_s64): Likewise.
- (__arm_vreinterpretq_u16_s8): Likewise.
- (__arm_vreinterpretq_u16_u32): Likewise.
- (__arm_vreinterpretq_u16_u64): Likewise.
- (__arm_vreinterpretq_u16_u8): Likewise.
- (__arm_vreinterpretq_u32_s16): Likewise.
- (__arm_vreinterpretq_u32_s32): Likewise.
- (__arm_vreinterpretq_u32_s64): Likewise.
- (__arm_vreinterpretq_u32_s8): Likewise.
- (__arm_vreinterpretq_u32_u16): Likewise.
- (__arm_vreinterpretq_u32_u64): Likewise.
- (__arm_vreinterpretq_u32_u8): Likewise.
- (__arm_vreinterpretq_u64_s16): Likewise.
- (__arm_vreinterpretq_u64_s32): Likewise.
- (__arm_vreinterpretq_u64_s64): Likewise.
- (__arm_vreinterpretq_u64_s8): Likewise.
- (__arm_vreinterpretq_u64_u16): Likewise.
- (__arm_vreinterpretq_u64_u32): Likewise.
- (__arm_vreinterpretq_u64_u8): Likewise.
- (__arm_vreinterpretq_u8_s16): Likewise.
- (__arm_vreinterpretq_u8_s32): Likewise.
- (__arm_vreinterpretq_u8_s64): Likewise.
- (__arm_vreinterpretq_u8_s8): Likewise.
- (__arm_vreinterpretq_u8_u16): Likewise.
- (__arm_vreinterpretq_u8_u32): Likewise.
- (__arm_vreinterpretq_u8_u64): Likewise.
- (__arm_vreinterpretq_s32_f16): Likewise.
- (__arm_vreinterpretq_s32_f32): Likewise.
- (__arm_vreinterpretq_s16_f16): Likewise.
- (__arm_vreinterpretq_s16_f32): Likewise.
- (__arm_vreinterpretq_s64_f16): Likewise.
- (__arm_vreinterpretq_s64_f32): Likewise.
- (__arm_vreinterpretq_s8_f16): Likewise.
- (__arm_vreinterpretq_s8_f32): Likewise.
- (__arm_vreinterpretq_u16_f16): Likewise.
- (__arm_vreinterpretq_u16_f32): Likewise.
- (__arm_vreinterpretq_u32_f16): Likewise.
- (__arm_vreinterpretq_u32_f32): Likewise.
- (__arm_vreinterpretq_u64_f16): Likewise.
- (__arm_vreinterpretq_u64_f32): Likewise.
- (__arm_vreinterpretq_u8_f16): Likewise.
- (__arm_vreinterpretq_u8_f32): Likewise.
- (__arm_vreinterpretq_f16_f32): Likewise.
- (__arm_vreinterpretq_f16_s16): Likewise.
- (__arm_vreinterpretq_f16_s32): Likewise.
- (__arm_vreinterpretq_f16_s64): Likewise.
- (__arm_vreinterpretq_f16_s8): Likewise.
- (__arm_vreinterpretq_f16_u16): Likewise.
- (__arm_vreinterpretq_f16_u32): Likewise.
- (__arm_vreinterpretq_f16_u64): Likewise.
- (__arm_vreinterpretq_f16_u8): Likewise.
- (__arm_vreinterpretq_f32_f16): Likewise.
- (__arm_vreinterpretq_f32_s16): Likewise.
- (__arm_vreinterpretq_f32_s32): Likewise.
- (__arm_vreinterpretq_f32_s64): Likewise.
- (__arm_vreinterpretq_f32_s8): Likewise.
- (__arm_vreinterpretq_f32_u16): Likewise.
- (__arm_vreinterpretq_f32_u32): Likewise.
- (__arm_vreinterpretq_f32_u64): Likewise.
- (__arm_vreinterpretq_f32_u8): Likewise.
- (__arm_vreinterpretq_s16): Likewise.
- (__arm_vreinterpretq_s32): Likewise.
- (__arm_vreinterpretq_s64): Likewise.
- (__arm_vreinterpretq_s8): Likewise.
- (__arm_vreinterpretq_u16): Likewise.
- (__arm_vreinterpretq_u32): Likewise.
- (__arm_vreinterpretq_u64): Likewise.
- (__arm_vreinterpretq_u8): Likewise.
- (__arm_vreinterpretq_f16): Likewise.
- (__arm_vreinterpretq_f32): Likewise.
- * config/arm/mve.md (@arm_mve_reinterpret<mode>): New pattern.
- * config/arm/unspecs.md: (REINTERPRET): New unspec.
-
-2023-05-03 Murray Steele <murray.steele@arm.com>
- Christophe Lyon <christophe.lyon@arm.com>
- Christophe Lyon <christophe.lyon@arm.com
-
- * config.gcc: Add arm-mve-builtins-base.o and
- arm-mve-builtins-shapes.o to extra_objs.
- * config/arm/arm-builtins.cc (arm_builtin_decl): Handle MVE builtin
- numberspace.
- (arm_expand_builtin): Likewise
- (arm_check_builtin_call): Likewise
- (arm_describe_resolver): Likewise.
- * config/arm/arm-builtins.h (enum resolver_ident): Add
- arm_mve_resolver.
- * config/arm/arm-c.cc (arm_pragma_arm): Handle new pragma.
- (arm_resolve_overloaded_builtin): Handle MVE builtins.
- (arm_register_target_pragmas): Register arm_check_builtin_call.
- * config/arm/arm-mve-builtins.cc (class registered_function): New
- class.
- (struct registered_function_hasher): New struct.
- (pred_suffixes): New table.
- (mode_suffixes): New table.
- (type_suffix_info): New table.
- (TYPES_float16): New.
- (TYPES_all_float): New.
- (TYPES_integer_8): New.
- (TYPES_integer_8_16): New.
- (TYPES_integer_16_32): New.
- (TYPES_integer_32): New.
- (TYPES_signed_16_32): New.
- (TYPES_signed_32): New.
- (TYPES_all_signed): New.
- (TYPES_all_unsigned): New.
- (TYPES_all_integer): New.
- (TYPES_all_integer_with_64): New.
- (DEF_VECTOR_TYPE): New.
- (DEF_DOUBLE_TYPE): New.
- (DEF_MVE_TYPES_ARRAY): New.
- (all_integer): New.
- (all_integer_with_64): New.
- (float16): New.
- (all_float): New.
- (all_signed): New.
- (all_unsigned): New.
- (integer_8): New.
- (integer_8_16): New.
- (integer_16_32): New.
- (integer_32): New.
- (signed_16_32): New.
- (signed_32): New.
- (register_vector_type): Use void_type_node for mve.fp-only types when
- mve.fp is not enabled.
- (register_builtin_tuple_types): Likewise.
- (handle_arm_mve_h): New function..
- (matches_type_p): Likewise..
- (report_out_of_range): Likewise.
- (report_not_enum): Likewise.
- (report_missing_float): Likewise.
- (report_non_ice): Likewise.
- (check_requires_float): Likewise.
- (function_instance::hash): Likewise
- (function_instance::call_properties): Likewise.
- (function_instance::reads_global_state_p): Likewise.
- (function_instance::modifies_global_state_p): Likewise.
- (function_instance::could_trap_p): Likewise.
- (function_instance::has_inactive_argument): Likewise.
- (registered_function_hasher::hash): Likewise.
- (registered_function_hasher::equal): Likewise.
- (function_builder::function_builder): Likewise.
- (function_builder::~function_builder): Likewise.
- (function_builder::append_name): Likewise.
- (function_builder::finish_name): Likewise.
- (function_builder::get_name): Likewise.
- (add_attribute): Likewise.
- (function_builder::get_attributes): Likewise.
- (function_builder::add_function): Likewise.
- (function_builder::add_unique_function): Likewise.
- (function_builder::add_overloaded_function): Likewise.
- (function_builder::add_overloaded_functions): Likewise.
- (function_builder::register_function_group): Likewise.
- (function_call_info::function_call_info): Likewise.
- (function_resolver::function_resolver): Likewise.
- (function_resolver::get_vector_type): Likewise.
- (function_resolver::get_scalar_type_name): Likewise.
- (function_resolver::get_argument_type): Likewise.
- (function_resolver::scalar_argument_p): Likewise.
- (function_resolver::report_no_such_form): Likewise.
- (function_resolver::lookup_form): Likewise.
- (function_resolver::resolve_to): Likewise.
- (function_resolver::infer_vector_or_tuple_type): Likewise.
- (function_resolver::infer_vector_type): Likewise.
- (function_resolver::require_vector_or_scalar_type): Likewise.
- (function_resolver::require_vector_type): Likewise.
- (function_resolver::require_matching_vector_type): Likewise.
- (function_resolver::require_derived_vector_type): Likewise.
- (function_resolver::require_derived_scalar_type): Likewise.
- (function_resolver::require_integer_immediate): Likewise.
- (function_resolver::require_scalar_type): Likewise.
- (function_resolver::check_num_arguments): Likewise.
- (function_resolver::check_gp_argument): Likewise.
- (function_resolver::finish_opt_n_resolution): Likewise.
- (function_resolver::resolve_unary): Likewise.
- (function_resolver::resolve_unary_n): Likewise.
- (function_resolver::resolve_uniform): Likewise.
- (function_resolver::resolve_uniform_opt_n): Likewise.
- (function_resolver::resolve): Likewise.
- (function_checker::function_checker): Likewise.
- (function_checker::argument_exists_p): Likewise.
- (function_checker::require_immediate): Likewise.
- (function_checker::require_immediate_enum): Likewise.
- (function_checker::require_immediate_range): Likewise.
- (function_checker::check): Likewise.
- (gimple_folder::gimple_folder): Likewise.
- (gimple_folder::fold): Likewise.
- (function_expander::function_expander): Likewise.
- (function_expander::direct_optab_handler): Likewise.
- (function_expander::get_fallback_value): Likewise.
- (function_expander::get_reg_target): Likewise.
- (function_expander::add_output_operand): Likewise.
- (function_expander::add_input_operand): Likewise.
- (function_expander::add_integer_operand): Likewise.
- (function_expander::generate_insn): Likewise.
- (function_expander::use_exact_insn): Likewise.
- (function_expander::use_unpred_insn): Likewise.
- (function_expander::use_pred_x_insn): Likewise.
- (function_expander::use_cond_insn): Likewise.
- (function_expander::map_to_rtx_codes): Likewise.
- (function_expander::expand): Likewise.
- (resolve_overloaded_builtin): Likewise.
- (check_builtin_call): Likewise.
- (gimple_fold_builtin): Likewise.
- (expand_builtin): Likewise.
- (gt_ggc_mx): Likewise.
- (gt_pch_nx): Likewise.
- (gt_pch_nx): Likewise.
- * config/arm/arm-mve-builtins.def(s8): Define new type suffix.
- (s16): Likewise.
- (s32): Likewise.
- (s64): Likewise.
- (u8): Likewise.
- (u16): Likewise.
- (u32): Likewise.
- (u64): Likewise.
- (f16): Likewise.
- (f32): Likewise.
- (n): New mode.
- (offset): New mode.
- * config/arm/arm-mve-builtins.h (MAX_TUPLE_SIZE): New constant.
- (CP_READ_FPCR): Likewise.
- (CP_RAISE_FP_EXCEPTIONS): Likewise.
- (CP_READ_MEMORY): Likewise.
- (CP_WRITE_MEMORY): Likewise.
- (enum units_index): New enum.
- (enum predication_index): New.
- (enum type_class_index): New.
- (enum mode_suffix_index): New enum.
- (enum type_suffix_index): New.
- (struct mode_suffix_info): New struct.
- (struct type_suffix_info): New.
- (struct function_group_info): Likewise.
- (class function_instance): Likewise.
- (class registered_function): Likewise.
- (class function_builder): Likewise.
- (class function_call_info): Likewise.
- (class function_resolver): Likewise.
- (class function_checker): Likewise.
- (class gimple_folder): Likewise.
- (class function_expander): Likewise.
- (get_mve_pred16_t): Likewise.
- (find_mode_suffix): New function.
- (class function_base): Likewise.
- (class function_shape): Likewise.
- (function_instance::operator==): New function.
- (function_instance::operator!=): Likewise.
- (function_instance::vectors_per_tuple): Likewise.
- (function_instance::mode_suffix): Likewise.
- (function_instance::type_suffix): Likewise.
- (function_instance::scalar_type): Likewise.
- (function_instance::vector_type): Likewise.
- (function_instance::tuple_type): Likewise.
- (function_instance::vector_mode): Likewise.
- (function_call_info::function_returns_void_p): Likewise.
- (function_base::call_properties): Likewise.
- * config/arm/arm-protos.h (enum arm_builtin_class): Add
- ARM_BUILTIN_MVE.
- (handle_arm_mve_h): New.
- (resolve_overloaded_builtin): New.
- (check_builtin_call): New.
- (gimple_fold_builtin): New.
- (expand_builtin): New.
- * config/arm/arm.cc (TARGET_GIMPLE_FOLD_BUILTIN): Define as
- arm_gimple_fold_builtin.
- (arm_gimple_fold_builtin): New function.
- * config/arm/arm_mve.h: Use new arm_mve.h pragma.
- * config/arm/predicates.md (arm_any_register_operand): New predicate.
- * config/arm/t-arm: (arm-mve-builtins.o): Add includes.
- (arm-mve-builtins-shapes.o): New target.
- (arm-mve-builtins-base.o): New target.
- * config/arm/arm-mve-builtins-base.cc: New file.
- * config/arm/arm-mve-builtins-base.def: New file.
- * config/arm/arm-mve-builtins-base.h: New file.
- * config/arm/arm-mve-builtins-functions.h: New file.
- * config/arm/arm-mve-builtins-shapes.cc: New file.
- * config/arm/arm-mve-builtins-shapes.h: New file.
-
-2023-05-03 Murray Steele <murray.steele@arm.com>
- Christophe Lyon <christophe.lyon@arm.com>
- Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/arm-builtins.cc (arm_general_add_builtin_function):
- New function.
- (arm_init_builtin): Use arm_general_add_builtin_function instead
- of arm_add_builtin_function.
- (arm_init_acle_builtins): Likewise.
- (arm_init_mve_builtins): Likewise.
- (arm_init_crypto_builtins): Likewise.
- (arm_init_builtins): Likewise.
- (arm_general_builtin_decl): New function.
- (arm_builtin_decl): Defer to numberspace-specialized functions.
- (arm_expand_builtin_args): Rename into arm_general_expand_builtin_args.
- (arm_expand_builtin_1): Rename into arm_general_expand_builtin_1 and ...
- (arm_general_expand_builtin_1): ... specialize for general builtins.
- (arm_expand_acle_builtin): Use arm_general_expand_builtin
- instead of arm_expand_builtin.
- (arm_expand_mve_builtin): Likewise.
- (arm_expand_neon_builtin): Likewise.
- (arm_expand_vfp_builtin): Likewise.
- (arm_general_expand_builtin): New function.
- (arm_expand_builtin): Specialize for general builtins.
- (arm_general_check_builtin_call): New function.
- (arm_check_builtin_call): Specialize for general builtins.
- (arm_describe_resolver): Validate numberspace.
- (arm_cde_end_args): Likewise.
- * config/arm/arm-protos.h (enum arm_builtin_class): New enum.
- (ARM_BUILTIN_SHIFT, ARM_BUILTIN_CLASS): New constants.
-
-2023-05-03 Martin Liska <mliska@suse.cz>
-
- PR target/109713
- * config/riscv/sync.md: Add gcc_unreachable to a switch.
-
-2023-05-03 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop-split.cc (split_at_bb_p): Avoid last_stmt.
- (patch_loop_exit): Likewise.
- (connect_loops): Likewise.
- (split_loop): Likewise.
- (control_dep_semi_invariant_p): Likewise.
- (do_split_loop_on_cond): Likewise.
- (split_loop_on_cond): Likewise.
- * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
- Likewise.
- (simplify_loop_version): Likewise.
- (evaluate_bbs): Likewise.
- (find_loop_guard): Likewise.
- (clean_up_after_unswitching): Likewise.
- * tree-ssa-math-opts.cc (maybe_optimize_guarding_check):
- Likewise.
- (optimize_spaceship): Take a gcond * argument, avoid
- last_stmt.
- (math_opts_dom_walker::after_dom_children): Adjust call to
- optimize_spaceship.
- * tree-vrp.cc (maybe_set_nonzero_bits): Avoid last_stmt.
- * value-pointer-equiv.cc (pointer_equiv_analyzer::visit_edge):
- Likewise.
-
-2023-05-03 Andreas Schwab <schwab@suse.de>
-
- * config/riscv/linux.h (LIB_SPEC): Don't redefine.
-
-2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
- New function.
- (class vlseg): New class.
- (class vsseg): Ditto.
- (class vlsseg): Ditto.
- (class vssseg): Ditto.
- (class seg_indexed_load): Ditto.
- (class seg_indexed_store): Ditto.
- (class vlsegff): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vlseg):
- Ditto.
- (vsseg): Ditto.
- (vlsseg): Ditto.
- (vssseg): Ditto.
- (vluxseg): Ditto.
- (vloxseg): Ditto.
- (vsuxseg): Ditto.
- (vsoxseg): Ditto.
- (vlsegff): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct
- seg_loadstore_def): Ditto.
- (struct seg_indexed_loadstore_def): Ditto.
- (struct seg_fault_load_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (function_builder::append_nf): New function.
- * config/riscv/riscv-vector-builtins.def (vfloat32m1x2_t):
- Change ptr from double into float.
- (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.
- * config/riscv/riscv-vector-builtins.h: Add segment intrinsics.
- * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Adapt for
- segment ff load.
- * config/riscv/riscv.md: Add segment instructions.
- * config/riscv/vector-iterators.md: Support segment intrinsics.
- * config/riscv/vector.md (@pred_unit_strided_load<mode>): New
- pattern.
- (@pred_unit_strided_store<mode>): Ditto.
- (@pred_strided_load<mode>): Ditto.
- (@pred_strided_store<mode>): Ditto.
- (@pred_fault_load<mode>): Ditto.
- (@pred_indexed_<order>load<V1T:mode><V1I:mode>): Ditto.
- (@pred_indexed_<order>load<V2T:mode><V2I:mode>): Ditto.
- (@pred_indexed_<order>load<V4T:mode><V4I:mode>): Ditto.
- (@pred_indexed_<order>load<V8T:mode><V8I:mode>): Ditto.
- (@pred_indexed_<order>load<V16T:mode><V16I:mode>): Ditto.
- (@pred_indexed_<order>load<V32T:mode><V32I:mode>): Ditto.
- (@pred_indexed_<order>load<V64T:mode><V64I:mode>): Ditto.
- (@pred_indexed_<order>store<V1T:mode><V1I:mode>): Ditto.
- (@pred_indexed_<order>store<V2T:mode><V2I:mode>): Ditto.
- (@pred_indexed_<order>store<V4T:mode><V4I:mode>): Ditto.
- (@pred_indexed_<order>store<V8T:mode><V8I:mode>): Ditto.
- (@pred_indexed_<order>store<V16T:mode><V16I:mode>): Ditto.
- (@pred_indexed_<order>store<V32T:mode><V32I:mode>): Ditto.
- (@pred_indexed_<order>store<V64T:mode><V64I:mode>): Ditto.
-
-2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/genrvv-type-indexer.cc (valid_type): Adapt for
- tuple type support.
- (inttype): Ditto.
- (floattype): Ditto.
- (main): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vset): Add
- tuple type vset.
- (vget): Add tuple type vget.
- * config/riscv/riscv-vector-builtins-types.def
- (DEF_RVV_TUPLE_OPS): New macro.
- (vint8mf8x2_t): Ditto.
- (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.cc (DEF_RVV_TUPLE_OPS):
- Ditto.
- (DEF_RVV_TYPE_INDEX): Ditto.
- (rvv_arg_type_info::get_tuple_subpart_type): New function.
- (DEF_RVV_TUPLE_TYPE): New macro.
- * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX):
- Adapt for tuple vget/vset support.
- (vint8mf4_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vuint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vuint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vuint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vuint8m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vuint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vuint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vuint16m4_t): Ditto.
- (vint16m8_t): Ditto.
- (vuint16m8_t): Ditto.
- (vint32mf2_t): Ditto.
- (vuint32mf2_t): Ditto.
- (vint32m1_t): Ditto.
- (vuint32m1_t): Ditto.
- (vint32m2_t): Ditto.
- (vuint32m2_t): Ditto.
- (vint32m4_t): Ditto.
- (vuint32m4_t): Ditto.
- (vint32m8_t): Ditto.
- (vuint32m8_t): Ditto.
- (vint64m1_t): Ditto.
- (vuint64m1_t): Ditto.
- (vint64m2_t): Ditto.
- (vuint64m2_t): Ditto.
- (vint64m4_t): Ditto.
- (vuint64m4_t): Ditto.
- (vint64m8_t): Ditto.
- (vuint64m8_t): Ditto.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vfloat64m1_t): Ditto.
- (vfloat64m2_t): Ditto.
- (vfloat64m4_t): Ditto.
- (vfloat64m8_t): Ditto.
- (tuple_subpart): Add tuple subpart base type.
- * config/riscv/riscv-vector-builtins.h (struct
- rvv_arg_type_info): Ditto.
- (tuple_type_field): New function.
-
-2023-05-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * 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.
-
-2023-05-03 Richard Biener <rguenther@suse.de>
-
- * cse.cc (cse_insn): Track an equivalence to the destination
- separately and delay using src_related for it.
-
-2023-05-03 Richard Biener <rguenther@suse.de>
-
- * cse.cc (HASH): Turn into inline function and mix
- in another HASH_SHIFT bits.
- (SAFE_HASH): Likewise.
-
-2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_<sur>h<addsub><mode>): Rename to...
- (aarch64_<sur>h<addsub><mode><vczle><vczbe>): ... This.
-
-2023-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (add<mode>3): Rename to...
- (add<mode>3<vczle><vczbe>): ... This.
- (sub<mode>3): Rename to...
- (sub<mode>3<vczle><vczbe>): ... This.
- (mul<mode>3): Rename to...
- (mul<mode>3<vczle><vczbe>): ... This.
- (*div<mode>3): Rename to...
- (*div<mode>3<vczle><vczbe>): ... This.
- (neg<mode>2): Rename to...
- (neg<mode>2<vczle><vczbe>): ... This.
- (abs<mode>2): Rename to...
- (abs<mode>2<vczle><vczbe>): ... This.
- (<frint_pattern><mode>2): Rename to...
- (<frint_pattern><mode>2<vczle><vczbe>): ... This.
- (<fmaxmin><mode>3): Rename to...
- (<fmaxmin><mode>3<vczle><vczbe>): ... This.
- (*sqrt<mode>2): Rename to...
- (*sqrt<mode>2<vczle><vczbe>): ... This.
-
-2023-05-03 Kito Cheng <kito.cheng@sifive.com>
-
- * doc/md.texi (RISC-V): Add vr, vm, vd constarint.
-
-2023-05-03 Martin Liska <mliska@suse.cz>
-
- PR tree-optimization/109693
- * value-range-storage.cc (vrange_allocator::vrange_allocator):
- Remove unused field.
- * value-range-storage.h: Likewise.
-
-2023-05-02 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (move_stmt): New function.
- (match_simplify_replacement): Use move_stmt instead
- of the inlined version.
-
-2023-05-02 Andrew Pinski <apinski@marvell.com>
-
- * match.pd (a != 0 ? CLRSB(a) : CST -> CLRSB(a)): New
- pattern.
-
-2023-05-02 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109702
- * match.pd: Fix "a != 0 ? FUNC(a) : CST" patterns
- for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
-
-2023-05-02 Andrew Pinski <apinski@marvell.com>
-
- PR target/109657
- * config/aarch64/aarch64.md (*cmov<mode>_insn_m1): New
- insn_and_split pattern.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/sync.md (atomic_load<mode>): Implement atomic
- load mapping.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/sync.md (mem_thread_fence_1): Change fence
- depending on the given memory model.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/riscv-protos.h (riscv_union_memmodels): Expose
- riscv_union_memmodels function to sync.md.
- * config/riscv/riscv.cc (riscv_union_memmodels): Add function to
- get the union of two memmodels in sync.md.
- (riscv_print_operand): Add %I and %J flags that output the
- optimal LR/SC flag bits for a given memory model.
- * config/riscv/sync.md: Remove static .aqrl bits on LR op/.rl
- bits on SC op and replace with optimized %I, %J flags.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/riscv.cc
- (riscv_memmodel_needs_amo_release): Change function name.
- (riscv_print_operand): Remove unneeded %F case.
- * config/riscv/sync.md: Remove unneeded fences.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- PR target/89835
- * config/riscv/sync.md (atomic_store<mode>): Use simple store
- instruction in combination with fence(s).
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_print_operand): Change behavior
- of %A to include release bits.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/sync.md (atomic_cas_value_strong<mode>): Change
- FENCE/LR.aq/SC.aq into sequentially consistent LR.aqrl/SC.rl
- pair.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/sync.md: Change LR.aq/SC.rl pairs into
- sequentially consistent LR.aqrl/SC.rl pairs.
-
-2023-05-02 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/riscv.cc: Remove MEMMODEL_SYNC_* cases and
- sanitize memmodel input with memmodel_base.
-
-2023-05-02 Yanzhang Wang <yanzhang.wang@intel.com>
- Pan Li <pan2.li@intel.com>
-
- PR target/109617
- * config/riscv/vector-iterators.md: Support VNx2HI and VNX4DI when MIN_VLEN >= 128.
-
-2023-05-02 Romain Naour <romain.naour@gmail.com>
-
- * config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
- the namespace.
-
-2023-05-02 Martin Liska <mliska@suse.cz>
-
- * doc/invoke.texi: Update documentation based on param.opt file.
-
-2023-05-02 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109672
- * tree-vect-stmts.cc (vectorizable_operation): For plus,
- minus and negate always check the vector mode is word mode.
-
-2023-05-01 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc: Update comment about
- how the transformation are implemented.
-
-2023-05-01 Jeff Law <jlaw@ventanamicro>
-
- * config/stormy16/stormy16.cc (TARGET_LRA_P): Remove defintion.
-
-2023-05-01 Jeff Law <jlaw@ventanamicro>
-
- * config/cris/cris.cc (TARGET_LRA_P): Remove.
- * config/epiphany/epiphany.cc (TARGET_LRA_P): Remove.
- * config/iq2000/iq2000.cc (TARGET_LRA_P): Remove.
- * config/m32r/m32r.cc (TARGET_LRA_P): Remove.
- * config/microblaze/microblaze.cc (TARGET_LRA_P): Remove.
- * config/mmix/mmix.cc (TARGET_LRA_P): Remove.
-
-2023-05-01 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
-
- * print-tree.h (PRINT_DECL_REMAP_DEBUG): New flag.
- * print-tree.cc (print_decl_identifier): Implement it.
- * toplev.cc (output_stack_usage_1): Use it.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (class int_range): Remove gt_ggc_mx and gt_pch_nx
- friends.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (irange::set_nonzero): Inline.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-range-op.cc (cfn_ffs::fold_range): Use the correct
- precision.
- * gimple-ssa-warn-alloca.cc (alloca_call_type): Use <2> for
- invalid_range, as it is an inverse range.
- * tree-vrp.cc (find_case_label_range): Avoid trees.
- * value-range.cc (irange::irange_set): Delete.
- (irange::irange_set_1bit_anti_range): Delete.
- (irange::irange_set_anti_range): Delete.
- (irange::set): Cleanup.
- * value-range.h (class irange): Remove irange_set,
- irange_set_anti_range, irange_set_1bit_anti_range.
- (irange::set_undefined): Remove set to m_type.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (update_known_bitmask): Adjust for irange containing
- wide_ints internally.
- * tree-ssanames.cc (set_nonzero_bits): Same.
- * tree-ssanames.h (set_nonzero_bits): Same.
- * value-range-storage.cc (irange_storage::set_irange): Same.
- (irange_storage::get_irange): Same.
- * value-range.cc (irange::operator=): Same.
- (irange::irange_set): Same.
- (irange::irange_set_1bit_anti_range): Same.
- (irange::irange_set_anti_range): Same.
- (irange::set): Same.
- (irange::verify_range): Same.
- (irange::contains_p): Same.
- (irange::irange_single_pair_union): Same.
- (irange::union_): Same.
- (irange::irange_contains_p): Same.
- (irange::intersect): Same.
- (irange::invert): Same.
- (irange::set_range_from_nonzero_bits): Same.
- (irange::set_nonzero_bits): Same.
- (mask_to_wi): Same.
- (irange::intersect_nonzero_bits): Same.
- (irange::union_nonzero_bits): Same.
- (gt_ggc_mx): Same.
- (gt_pch_nx): Same.
- (tree_range): Same.
- (range_tests_strict_enum): Same.
- (range_tests_misc): Same.
- (range_tests_nonzero_bits): Same.
- * value-range.h (irange::type): Same.
- (irange::varying_compatible_p): Same.
- (irange::irange): Same.
- (int_range::int_range): Same.
- (irange::set_undefined): Same.
- (irange::set_varying): Same.
- (irange::lower_bound): Same.
- (irange::upper_bound): Same.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-range-fold.cc (tree_lower_bound): Delete.
- (tree_upper_bound): Delete.
- (vrp_val_max): Delete.
- (vrp_val_min): Delete.
- (fold_using_range::range_of_ssa_name_with_loop_info): Call
- range_of_var_in_loop.
- * vr-values.cc (valid_value_p): Delete.
- (fix_overflow): Delete.
- (get_scev_info): New.
- (bounds_of_var_in_loop): Refactor into...
- (induction_variable_may_overflow_p): ...this,
- (range_from_loop_direction): ...and this,
- (range_of_var_in_loop): ...and this.
- * vr-values.h (bounds_of_var_in_loop): Delete.
- (range_of_var_in_loop): New.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-range-fold.cc (adjust_pointer_diff_expr): Rewrite with
- irange_val*.
- (vrp_val_max): New.
- (vrp_val_min): New.
- * gimple-range-op.cc (cfn_strlen::fold_range): Use irange_val_*.
- * range-op.cc (max_limit): Same.
- (min_limit): Same.
- (plus_minus_ranges): Same.
- (operator_rshift::op1_range): Same.
- (operator_cast::inside_domain_p): Same.
- * value-range.cc (vrp_val_is_max): Delete.
- (vrp_val_is_min): Delete.
- (range_tests_misc): Use irange_val_*.
- * value-range.h (vrp_val_is_min): Delete.
- (vrp_val_is_max): Delete.
- (vrp_val_max): Delete.
- (irange_val_min): New.
- (vrp_val_min): Delete.
- (irange_val_max): New.
- * vr-values.cc (check_for_binary_op_overflow): Use irange_val_*.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * fold-const.cc (expr_not_equal_to): Convert to irange wide_int API.
- * gimple-fold.cc (size_must_be_zero_p): Same.
- * gimple-loop-versioning.cc
- (loop_versioning::prune_loop_conditions): Same.
- * gimple-range-edge.cc (gcond_edge_range): Same.
- (gimple_outgoing_range::calc_switch_ranges): Same.
- * gimple-range-fold.cc (adjust_imagpart_expr): Same.
- (adjust_realpart_expr): Same.
- (fold_using_range::range_of_address): Same.
- (fold_using_range::relation_fold_and_or): Same.
- * gimple-range-gori.cc (gori_compute::gori_compute): Same.
- (range_is_either_true_or_false): Same.
- * gimple-range-op.cc (cfn_toupper_tolower::get_letter_range): Same.
- (cfn_clz::fold_range): Same.
- (cfn_ctz::fold_range): Same.
- * gimple-range-tests.cc (class test_expr_eval): Same.
- * gimple-ssa-warn-alloca.cc (alloca_call_type): Same.
- * ipa-cp.cc (ipa_value_range_from_jfunc): Same.
- (propagate_vr_across_jump_function): Same.
- (decide_whether_version_node): Same.
- * ipa-prop.cc (ipa_get_value_range): Same.
- * ipa-prop.h (ipa_range_set_and_normalize): Same.
- * range-op.cc (get_shift_range): Same.
- (value_range_from_overflowed_bounds): Same.
- (value_range_with_overflow): Same.
- (create_possibly_reversed_range): Same.
- (equal_op1_op2_relation): Same.
- (not_equal_op1_op2_relation): Same.
- (lt_op1_op2_relation): Same.
- (le_op1_op2_relation): Same.
- (gt_op1_op2_relation): Same.
- (ge_op1_op2_relation): Same.
- (operator_mult::op1_range): Same.
- (operator_exact_divide::op1_range): Same.
- (operator_lshift::op1_range): Same.
- (operator_rshift::op1_range): Same.
- (operator_cast::op1_range): Same.
- (operator_logical_and::fold_range): Same.
- (set_nonzero_range_from_mask): Same.
- (operator_bitwise_or::op1_range): Same.
- (operator_bitwise_xor::op1_range): Same.
- (operator_addr_expr::fold_range): Same.
- (pointer_plus_operator::wi_fold): Same.
- (pointer_or_operator::op1_range): Same.
- (INT): Same.
- (UINT): Same.
- (INT16): Same.
- (UINT16): Same.
- (SCHAR): Same.
- (UCHAR): Same.
- (range_op_cast_tests): Same.
- (range_op_lshift_tests): Same.
- (range_op_rshift_tests): Same.
- (range_op_bitwise_and_tests): Same.
- (range_relational_tests): Same.
- * range.cc (range_zero): Same.
- (range_nonzero): Same.
- * range.h (range_true): Same.
- (range_false): Same.
- (range_true_and_false): Same.
- * tree-data-ref.cc (split_constant_offset_1): Same.
- * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
- * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
- (find_unswitching_predicates_for_bb): Same.
- * tree-ssa-phiopt.cc (value_replacement): Same.
- * tree-ssa-threadbackward.cc
- (back_threader::find_taken_edge_cond): Same.
- * tree-ssanames.cc (ssa_name_has_boolean_range): Same.
- * tree-vrp.cc (find_case_label_range): Same.
- * value-query.cc (range_query::get_tree_range): Same.
- * value-range.cc (irange::set_nonnegative): Same.
- (frange::contains_p): Same.
- (frange::singleton_p): Same.
- (frange::internal_singleton_p): Same.
- (irange::irange_set): Same.
- (irange::irange_set_1bit_anti_range): Same.
- (irange::irange_set_anti_range): Same.
- (irange::set): Same.
- (irange::operator==): Same.
- (irange::singleton_p): Same.
- (irange::contains_p): Same.
- (irange::set_range_from_nonzero_bits): Same.
- (DEFINE_INT_RANGE_INSTANCE): Same.
- (INT): Same.
- (UINT): Same.
- (SCHAR): Same.
- (UINT128): Same.
- (UCHAR): Same.
- (range): New.
- (tree_range): New.
- (range_int): New.
- (range_uint): New.
- (range_uint128): New.
- (range_uchar): New.
- (range_char): New.
- (build_range3): Convert to irange wide_int API.
- (range_tests_irange3): Same.
- (range_tests_int_range_max): Same.
- (range_tests_strict_enum): Same.
- (range_tests_misc): Same.
- (range_tests_nonzero_bits): Same.
- (range_tests_nan): Same.
- (range_tests_signed_zeros): Same.
- * value-range.h (Value_Range::Value_Range): Same.
- (irange::set): Same.
- (irange::nonzero_p): Same.
- (irange::contains_p): Same.
- (range_includes_zero_p): Same.
- (irange::set_nonzero): Same.
- (irange::set_zero): Same.
- (contains_zero_p): Same.
- (frange::contains_p): Same.
- * vr-values.cc
- (simplify_using_ranges::op_with_boolean_value_range_p): Same.
- (bounds_of_var_in_loop): Same.
- (simplify_using_ranges::legacy_fold_cond_overflow): Same.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::irange_union): Rename to...
- (irange::union_): ...this.
- (irange::irange_intersect): Rename to...
- (irange::intersect): ...this.
- * value-range.h (irange::union_): Delete.
- (irange::intersect): Delete.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * vr-values.cc (bounds_of_var_in_loop): Convert to irange API.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * vr-values.cc (check_for_binary_op_overflow): Tidy up by using
- ranger API.
- (compare_ranges): Delete.
- (compare_range_with_value): Delete.
- (bounds_of_var_in_loop): Tidy up by using ranger API.
- (simplify_using_ranges::fold_cond_with_ops): Cleanup and rename
- from vrp_evaluate_conditional_warnv_with_ops_using_ranges.
- (simplify_using_ranges::legacy_fold_cond_overflow): Remove
- strict_overflow_p and only_ranges.
- (simplify_using_ranges::legacy_fold_cond): Adjust call to
- legacy_fold_cond_overflow.
- (simplify_using_ranges::simplify_abs_using_ranges): Adjust for
- rename.
- (range_fits_type_p): Rename value_range to irange.
- * vr-values.h (range_fits_type_p): Adjust prototype.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::irange_set_anti_range): Remove uses of
- tree_lower_bound and tree_upper_bound.
- (irange::verify_range): Same.
- (irange::operator==): Same.
- (irange::singleton_p): Same.
- * value-range.h (irange::tree_lower_bound): Delete.
- (irange::tree_upper_bound): Delete.
- (irange::lower_bound): Delete.
- (irange::upper_bound): Delete.
- (irange::zero_p): Remove uses of tree_lower_bound and
- tree_upper_bound.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Remove
- kind() call.
- (determine_value_range): Same.
- (record_nonwrapping_iv): Same.
- (infer_loop_bounds_from_signedness): Same.
- (scev_var_range_cant_overflow): Same.
- * tree-vrp.cc (operand_less_p): Delete.
- * tree-vrp.h (operand_less_p): Delete.
- * value-range.cc (get_legacy_range): Remove uses of deprecated API.
- (irange::value_inside_range): Delete.
- * value-range.h (vrange::kind): Delete.
- (irange::num_pairs): Remove check of m_kind.
- (irange::min): Delete.
- (irange::max): Delete.
-
-2023-05-01 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-fold.cc (maybe_fold_comparisons_from_match_pd): Adjust
- for vrange_storage.
- * gimple-range-cache.cc (sbr_vector::sbr_vector): Same.
- (sbr_vector::grow): Same.
- (sbr_vector::set_bb_range): Same.
- (sbr_vector::get_bb_range): Same.
- (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
- (sbr_sparse_bitmap::set_bb_range): Same.
- (sbr_sparse_bitmap::get_bb_range): Same.
- (block_range_cache::block_range_cache): Same.
- (ssa_global_cache::ssa_global_cache): Same.
- (ssa_global_cache::get_global_range): Same.
- (ssa_global_cache::set_global_range): Same.
- * gimple-range-cache.h: Same.
- * gimple-range-edge.cc
- (gimple_outgoing_range::gimple_outgoing_range): Same.
- (gimple_outgoing_range::switch_edge_range): Same.
- (gimple_outgoing_range::calc_switch_ranges): Same.
- * gimple-range-edge.h: Same.
- * gimple-range-infer.cc
- (infer_range_manager::infer_range_manager): Same.
- (infer_range_manager::get_nonzero): Same.
- (infer_range_manager::maybe_adjust_range): Same.
- (infer_range_manager::add_range): Same.
- * gimple-range-infer.h: Rename obstack_vrange_allocator to
- vrange_allocator.
- * tree-core.h (struct irange_storage_slot): Remove.
- (struct tree_ssa_name): Remove irange_info and frange_info. Make
- range_info a pointer to vrange_storage.
- * tree-ssanames.cc (range_info_fits_p): Adjust for vrange_storage.
- (range_info_alloc): Same.
- (range_info_free): Same.
- (range_info_get_range): Same.
- (range_info_set_range): Same.
- (get_nonzero_bits): Same.
- * value-query.cc (get_ssa_name_range_info): Same.
- * value-range-storage.cc (class vrange_internal_alloc): New.
- (class vrange_obstack_alloc): New.
- (class vrange_ggc_alloc): New.
- (vrange_allocator::vrange_allocator): New.
- (vrange_allocator::~vrange_allocator): New.
- (vrange_storage::alloc_slot): New.
- (vrange_allocator::alloc): New.
- (vrange_allocator::free): New.
- (vrange_allocator::clone): New.
- (vrange_allocator::clone_varying): New.
- (vrange_allocator::clone_undefined): New.
- (vrange_storage::alloc): New.
- (vrange_storage::set_vrange): Remove slot argument.
- (vrange_storage::get_vrange): Same.
- (vrange_storage::fits_p): Same.
- (vrange_storage::equal_p): New.
- (irange_storage::write_lengths_address): New.
- (irange_storage::lengths_address): New.
- (irange_storage_slot::alloc_slot): Remove.
- (irange_storage::alloc): New.
- (irange_storage_slot::irange_storage_slot): Remove.
- (irange_storage::irange_storage): New.
- (write_wide_int): New.
- (irange_storage_slot::set_irange): Remove.
- (irange_storage::set_irange): New.
- (read_wide_int): New.
- (irange_storage_slot::get_irange): Remove.
- (irange_storage::get_irange): New.
- (irange_storage_slot::size): Remove.
- (irange_storage::equal_p): New.
- (irange_storage_slot::num_wide_ints_needed): Remove.
- (irange_storage::size): New.
- (irange_storage_slot::fits_p): Remove.
- (irange_storage::fits_p): New.
- (irange_storage_slot::dump): Remove.
- (irange_storage::dump): New.
- (frange_storage_slot::alloc_slot): Remove.
- (frange_storage::alloc): New.
- (frange_storage_slot::set_frange): Remove.
- (frange_storage::set_frange): New.
- (frange_storage_slot::get_frange): Remove.
- (frange_storage::get_frange): New.
- (frange_storage_slot::fits_p): Remove.
- (frange_storage::equal_p): New.
- (frange_storage::fits_p): New.
- (ggc_vrange_allocator): New.
- (ggc_alloc_vrange_storage): New.
- * value-range-storage.h (class vrange_storage): Rewrite.
- (class irange_storage): Rewrite.
- (class frange_storage): Rewrite.
- (class obstack_vrange_allocator): Remove.
- (class ggc_vrange_allocator): Remove.
- (vrange_allocator::alloc_vrange): Remove.
- (vrange_allocator::alloc_irange): Remove.
- (vrange_allocator::alloc_frange): Remove.
- (ggc_alloc_vrange_storage): New.
- * value-range.h (class irange): Rename vrange_allocator to
- irange_storage.
- (class frange): Same.
-
-2023-04-30 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.md (neghi2): Rewrite pattern using
- inc to avoid clobbering the carry flag.
-
-2023-04-30 Andrew Pinski <apinski@marvell.com>
-
- * match.pd: Add patterns for "a != 0 ? FUNC(a) : CST"
- for FUNC of POPCOUNT BSWAP FFS PARITY CLZ and CTZ.
-
-2023-04-30 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
- Allow some builtin/internal function calls which
- are known not to trap/throw.
- (phiopt_worker::match_simplify_replacement):
- Use name instead of getting the lhs again.
-
-2023-04-30 Joakim Nohlgård <joakim@nohlgard.se>
-
- * configure: Regenerate.
- * configure.ac: Use ld -r in the check for HAVE_LD_RO_RW_SECTION_MIXING
-
-2023-04-29 Hans-Peter Nilsson <hp@axis.com>
-
- * reload1.cc (emit_insn_if_valid_for_reload_1): Rename from
- emit_insn_if_valid_for_reload.
- (emit_insn_if_valid_for_reload): Call new helper, and if a SET fails
- to be recognized, also try emitting a parallel that clobbers
- TARGET_FLAGS_REGNUM, as applicable.
-
-2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.md (neghi2): Convert from a define_expand
- to a define_insn.
- (*rotatehi_1): New define_insn for efficient 2 insn sequence.
- (*rotatehi_8, *rotaterthi_8): New define_insn to emit a swpb.
-
-2023-04-29 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.md (any_lshift): New code iterator.
- (any_or_plus): Likewise.
- (any_rotate): Likewise.
- (*<any_lshift>_and_internal): New define_insn_and_split to
- recognize a logical shift followed by an AND, and split it
- again after reload.
- (*swpn): New define_insn matching xstormy16's swpn.
- (*swpn_zext): New define_insn recognizing swpn followed by
- zero_extendqihi2, i.e. with the high byte set to zero.
- (*swpn_sext): Likewise, for swpn followed by cbw.
- (*swpn_sext_2): Likewise, for an alternate RTL form.
- (*swpn_zext_ior): A pre-reload splitter so that an swpn+zext+ior
- sequence is split in the correct place to recognize the *swpn_zext
- followed by any_or_plus (ior, xor or plus) instruction.
-
-2023-04-29 Mikael Pettersson <mikpelinux@gmail.com>
-
- PR target/105525
- * config.gcc (vax-*-linux*): Add glibc-stdint.h.
- (lm32-*-uclinux*): Likewise.
-
-2023-04-29 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_avoid_save_libcall): helper function
- for riscv_use_save_libcall.
- (riscv_use_save_libcall): call riscv_avoid_save_libcall.
- (riscv_compute_frame_info): restructure to decouple stack allocation
- for rv32e w/o save-restore.
-
-2023-04-28 Eugene Rozenfeld <erozen@microsoft.com>
-
- * doc/install.texi: Fix documentation typo
-
-2023-04-28 Matevos Mehrabyan <matevosmehrabyan@gmail.com>
-
- * config/riscv/iterators.md (only_div, paired_mod): New iterators.
- (u): Add div/udiv cases.
- * config/riscv/riscv-protos.h (riscv_use_divmod_expander): Prototype.
- * config/riscv/riscv.cc (struct riscv_tune_param): Add field for
- divmod expansion.
- (rocket_tune_info, sifive_7_tune_info): Initialize new field.
- (thead_c906_tune_info): Likewise.
- (optimize_size_tune_info): Likewise.
- (riscv_use_divmod_expander): New function.
- * config/riscv/riscv.md (<u>divmod<mode>4): New expander.
-
-2023-04-28 Karen Sargsyan <karen1999411@gmail.com>
-
- * config/riscv/bitmanip.md: Added clmulr instruction.
- * config/riscv/riscv-builtins.cc (AVAIL): Add new.
- * config/riscv/riscv.md: (UNSPEC_CLMULR): Add new unspec type.
- (type): Add clmul
- * config/riscv/riscv-cmo.def: Added built-in function for clmulr.
- * config/riscv/crypto.md: Move clmul[h] instructions to bitmanip.md.
- * config/riscv/riscv-scalar-crypto.def: Move clmul[h] built-in
- functions to riscv-cmo.def.
- * config/riscv/generic.md: Add clmul to list of instructions
- using the generic_imul reservation.
-
-2023-04-28 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/bitmanip.md: Added expanders for minu/maxu instructions
-
-2023-04-28 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/100958
- * tree-ssa-phiopt.cc (two_value_replacement): Remove.
- (pass_phiopt::execute): Don't call two_value_replacement.
- * match.pd (a !=/== CST1 ? CST2 : CST3): Add pattern to
- handle what two_value_replacement did.
-
-2023-04-28 Andrew Pinski <apinski@marvell.com>
-
- * match.pd: Add patterns for
- "(A CMP B) ? MIN/MAX<A, C> : MIN/MAX <B, C>".
-
-2023-04-28 Andrew Pinski <apinski@marvell.com>
-
- * match.pd: Factor out the deciding the min/max from
- the "(cond (cmp (convert1? x) c1) (convert2? x) c2)"
- pattern to ...
- * fold-const.cc (minmax_from_comparison): this new function.
- * fold-const.h (minmax_from_comparison): New prototype.
-
-2023-04-28 Roger Sayle <roger@nextmovesoftware.com>
-
- PR rtl-optimization/109476
- * lower-subreg.cc: Include explow.h for force_reg.
- (find_decomposable_shift_zext): Pass an additional SPEED_P argument.
- If decomposing a suitable LSHIFTRT and we're not splitting
- ZERO_EXTEND (based on the current SPEED_P), then use a ZERO_EXTEND
- instead of setting a high part SUBREG to zero, which helps combine.
- (decompose_multiword_subregs): Update call to resolve_shift_zext.
-
-2023-04-28 Richard Biener <rguenther@suse.de>
-
- * tree-vect-data-refs.cc (vect_analyze_data_refs): Always
- consider scatters.
- * tree-vect-stmts.cc (vect_model_store_cost): Pass in the
- gather-scatter info and cost emulated scatters accordingly.
- (get_load_store_type): Support emulated scatters.
- (vectorizable_store): Likewise. Emulate them by extracting
- scalar offsets and data, doing scalar stores.
-
-2023-04-28 Richard Biener <rguenther@suse.de>
-
- * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
- Tame down element extracts and scalar loads for gather/scatter
- similar to elementwise strided accesses.
-
-2023-04-28 Pan Li <pan2.li@intel.com>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/vector.md: Add new define split to perform
- the simplification.
-
-2023-04-28 Richard Biener <rguenther@suse.de>
-
- PR ipa/109652
- * ipa-param-manipulation.cc
- (ipa_param_body_adjustments::modify_expression): Allow
- conversion of a register to a non-register type. Elide
- conversions inside BIT_FIELD_REFs.
-
-2023-04-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109644
- * tree-cfg.cc (verify_types_in_gimple_reference): Check
- register constraints on the outermost VIEW_CONVERT_EXPR
- only. Do not allow register or invariant bases on
- multi-level or possibly variable index handled components.
-
-2023-04-28 Richard Biener <rguenther@suse.de>
-
- * gimplify.cc (gimplify_compound_lval): When there's a
- non-register type produced by one of the handled component
- operations make sure we get a non-register base.
-
-2023-04-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108752
- * tree-vect-generic.cc (build_replicated_const): Rename
- to build_replicated_int_cst and move to tree.{h,cc}.
- (do_plus_minus): Adjust.
- (do_negate): Likewise.
- * tree-vect-stmts.cc (vectorizable_operation): Emit emulated
- arithmetic vector operations in lowered form.
- * tree.h (build_replicated_int_cst): Declare.
- * tree.cc (build_replicated_int_cst): Moved from
- tree-vect-generic.cc build_replicated_const.
-
-2023-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): Rename to...
- (aarch64_rbit<mode><vczle><vczbe>): ... This.
- (neg<mode>2): Rename to...
- (neg<mode>2<vczle><vczbe>): ... This.
- (abs<mode>2): Rename to...
- (abs<mode>2<vczle><vczbe>): ... This.
- (aarch64_abs<mode>): Rename to...
- (aarch64_abs<mode><vczle><vczbe>): ... This.
- (one_cmpl<mode>2): Rename to...
- (one_cmpl<mode>2<vczle><vczbe>): ... This.
- (clrsb<mode>2): Rename to...
- (clrsb<mode>2<vczle><vczbe>): ... This.
- (clz<mode>2): Rename to...
- (clz<mode>2<vczle><vczbe>): ... This.
- (popcount<mode>2): Rename to...
- (popcount<mode>2<vczle><vczbe>): ... This.
-
-2023-04-28 Jakub Jelinek <jakub@redhat.com>
-
- * gimple-range-op.cc (class cfn_sqrt): New type.
- (op_cfn_sqrt): New variable.
- (gimple_range_op_handler::maybe_builtin_call): Handle
- CASE_CFN_SQRT{,_FN}.
-
-2023-04-28 Aldy Hernandez <aldyh@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * value-range.h (frange_nextafter): Declare.
- * gimple-range-op.cc (class cfn_sincos): New.
- (op_cfn_sin, op_cfn_cos): New variables.
- (gimple_range_op_handler::maybe_builtin_call): Handle
- CASE_CFN_{SIN,COS}{,_FN}.
-
-2023-04-28 Jakub Jelinek <jakub@redhat.com>
-
- * target.def (libm_function_max_error): New target hook.
- * doc/tm.texi.in (TARGET_LIBM_FUNCTION_MAX_ERROR): Add.
- * doc/tm.texi: Regenerated.
- * targhooks.h (default_libm_function_max_error,
- glibc_linux_libm_function_max_error): Declare.
- * targhooks.cc: Include case-cfn-macros.h.
- (default_libm_function_max_error,
- glibc_linux_libm_function_max_error): New functions.
- * config/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
- * config/linux-protos.h (linux_libm_function_max_error): Declare.
- * config/linux.cc: Include target.h and targhooks.h.
- (linux_libm_function_max_error): New function.
- * config/arc/arc.cc: Include targhooks.h and case-cfn-macros.h.
- (arc_libm_function_max_error): New function.
- (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
- * config/i386/i386.cc (ix86_libc_has_fast_function): Formatting fix.
- (ix86_libm_function_max_error): New function.
- (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
- * config/rs6000/rs6000-protos.h
- (rs6000_linux_libm_function_max_error): Declare.
- * config/rs6000/rs6000-linux.cc: Include target.h, targhooks.h, tree.h
- and case-cfn-macros.h.
- (rs6000_linux_libm_function_max_error): New function.
- * config/rs6000/linux.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
- * config/rs6000/linux64.h (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
- * config/or1k/or1k.cc: Include targhooks.h and case-cfn-macros.h.
- (or1k_libm_function_max_error): New function.
- (TARGET_LIBM_FUNCTION_MAX_ERROR): Redefine.
-
-2023-04-28 Alexandre Oliva <oliva@adacore.com>
-
- * gimple-harden-conditionals.cc (insert_edge_check_and_trap):
- Move detach value calls...
- (pass_harden_conditional_branches::execute): ... here.
- (pass_harden_compares::execute): Detach values before
- compares.
-
-2023-04-27 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (cmul<conj_op><mode>3): Use gcn_gen_undef.
- (cml<addsub_as><mode>4): Likewise.
- (vec_addsub<mode>3): Likewise.
- (cadd<rot><mode>3): Likewise.
- (vec_fmaddsub<mode>4): Likewise.
- (vec_fmsubadd<mode>4): Likewise, and use sub for the odd lanes.
-
-2023-04-27 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (phiopt_early_allow): Allow for
- up to 2 min/max expressions in the sequence/match code.
-
-2023-04-27 Andrew Pinski <apinski@marvell.com>
-
- * rtlanal.cc (may_trap_p_1): Treat SMIN/SMAX similar as
- COMPARISON.
- * tree-eh.cc (operation_could_trap_helper_p): Treate
- MIN_EXPR/MAX_EXPR similar as other comparisons.
-
-2023-04-27 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (cond_store_replacement): Remove
- prototype.
- (cond_if_else_store_replacement): Likewise.
- (get_non_trapping): Likewise.
- (store_elim_worker): Move into ...
- (pass_cselim::execute): This.
-
-2023-04-27 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (two_value_replacement): Remove
- prototype.
- (match_simplify_replacement): Likewise.
- (factor_out_conditional_conversion): Likewise.
- (value_replacement): Likewise.
- (minmax_replacement): Likewise.
- (spaceship_replacement): Likewise.
- (cond_removal_in_builtin_zero_pattern): Likewise.
- (hoist_adjacent_loads): Likewise.
- (tree_ssa_phiopt_worker): Move into ...
- (pass_phiopt::execute): this.
-
-2023-04-27 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove
- do_store_elim argument and split that part out to ...
- (store_elim_worker): This new function.
- (pass_cselim::execute): Call store_elim_worker.
- (pass_phiopt::execute): Update call to tree_ssa_phiopt_worker.
-
-2023-04-27 Jan Hubicka <jh@suse.cz>
-
- * cfgloopmanip.h (unloop_loops): Export.
- * tree-ssa-loop-ch.cc (ch_base::copy_headers): Unloop loops
- that no longer loop.
- * tree-ssa-loop-ivcanon.cc (unloop_loops): Export; do not free
- vectors of loops to unloop.
- (canonicalize_induction_variables): Free vectors here.
- (tree_unroll_loops_completely): Free vectors here.
-
-2023-04-27 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109170
- * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
- Handle __builtin_expect and similar via cfn_pass_through_arg1
- and inspecting the calls fnspec.
- * builtins.cc (builtin_fnspec): Handle BUILT_IN_EXPECT
- and BUILT_IN_EXPECT_WITH_PROBABILITY.
-
-2023-04-27 Alexandre Oliva <oliva@adacore.com>
-
- * genmultilib: Use CONFIG_SHELL to run sub-scripts.
-
-2023-04-27 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109639
- * ipa-cp.cc (ipa_value_range_from_jfunc): Normalize range.
- (propagate_vr_across_jump_function): Same.
- * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
- * ipa-prop.h (ipa_range_set_and_normalize): New.
- * value-range.cc (irange::set): Assert min and max are INTEGER_CST.
-
-2023-04-27 Richard Biener <rguenther@suse.de>
-
- * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Do not
- create a CTOR operand in the result when simplifying GIMPLE.
-
-2023-04-27 Richard Biener <rguenther@suse.de>
-
- * gimplify.cc (gimplify_compound_lval): When the base
- gimplified to a register make sure to split up chains
- of operations.
-
-2023-04-27 Richard Biener <rguenther@suse.de>
-
- PR ipa/109607
- * ipa-param-manipulation.h
- (ipa_param_body_adjustments::modify_expression): Add extra_stmts
- argument.
- * ipa-param-manipulation.cc
- (ipa_param_body_adjustments::modify_expression): Likewise.
- When we need a conversion and the replacement is a register
- split the conversion out.
- (ipa_param_body_adjustments::modify_assignment): Pass
- extra_stmts to RHS modify_expression.
-
-2023-04-27 Jonathan Wakely <jwakely@redhat.com>
-
- * doc/extend.texi (Zero Length): Describe example.
-
-2023-04-27 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109594
- * tree-ssa.cc (non_rewritable_mem_ref_base): Constrain
- what we rewrite to a register based on the above.
-
-2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
-
- * config/riscv/riscv.cc: Fix whitespace.
- * config/riscv/sync.md: Fix whitespace.
-
-2023-04-26 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108697
- * gimple-range-cache.cc (ssa_global_cache::clear_range): Do
- not clear the vector on an out of range query.
- (ssa_cache::dump): Use dump_range_query instead of get_range.
- (ssa_cache::dump_range_query): New.
- (ssa_lazy_cache::dump_range_query): New.
- (ssa_lazy_cache::set_range): New.
- * gimple-range-cache.h (ssa_cache::dump_range_query): New.
- (class ssa_lazy_cache): New.
- (ssa_lazy_cache::ssa_lazy_cache): New.
- (ssa_lazy_cache::~ssa_lazy_cache): New.
- (ssa_lazy_cache::get_range): New.
- (ssa_lazy_cache::clear_range): New.
- (ssa_lazy_cache::clear): New.
- (ssa_lazy_cache::dump): New.
- * gimple-range-path.cc (path_range_query::path_range_query): Do
- not allocate a ssa_cache object nor has_cache bitmap.
- (path_range_query::~path_range_query): Do not free objects.
- (path_range_query::clear_cache): Remove.
- (path_range_query::get_cache): Adjust.
- (path_range_query::set_cache): Remove.
- (path_range_query::dump): Don't call through a pointer.
- (path_range_query::internal_range_of_expr): Set cache directly.
- (path_range_query::reset_path): Clear cache directly.
- (path_range_query::ssa_range_in_phi): Fold with globals only.
- (path_range_query::compute_ranges_in_phis): Simply set range.
- (path_range_query::compute_ranges_in_block): Call cache directly.
- * gimple-range-path.h (class path_range_query): Replace bitmap
- and cache pointer with lazy cache object.
- * gimple-range.h (class assume_query): Use ssa_lazy_cache.
-
-2023-04-26 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-cache.cc (ssa_cache::ssa_cache): Rename.
- (ssa_cache::~ssa_cache): Rename.
- (ssa_cache::has_range): New.
- (ssa_cache::get_range): Rename.
- (ssa_cache::set_range): Rename.
- (ssa_cache::clear_range): Rename.
- (ssa_cache::clear): Rename.
- (ssa_cache::dump): Rename and use get_range.
- (ranger_cache::get_global_range): Use get_range and set_range.
- (ranger_cache::range_of_def): Use get_range.
- * gimple-range-cache.h (class ssa_cache): Rename class and methods.
- (class ranger_cache): Use ssa_cache.
- * gimple-range-path.cc (path_range_query::path_range_query): Use
- ssa_cache.
- (path_range_query::get_cache): Use get_range.
- (path_range_query::set_cache): Use set_range.
- * gimple-range-path.h (class path_range_query): Use ssa_cache.
- * gimple-range.cc (assume_query::assume_range_p): Use get_range.
- (assume_query::range_of_expr): Use get_range.
- (assume_query::assume_query): Use set_range.
- (assume_query::calculate_op): Use get_range and set_range.
- * gimple-range.h (class assume_query): Use ssa_cache.
-
-2023-04-26 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-cache.cc (sbr_vector::sbr_vector): Add parameter
- and local to optionally zero memory.
- (br_vector::grow): Only zero memory if flag is set.
- (class sbr_lazy_vector): New.
- (sbr_lazy_vector::sbr_lazy_vector): New.
- (sbr_lazy_vector::set_bb_range): New.
- (sbr_lazy_vector::get_bb_range): New.
- (sbr_lazy_vector::bb_range_p): New.
- (block_range_cache::set_bb_range): Check flags and Use sbr_lazy_vector.
- * gimple-range-gori.cc (gori_map::calculate_gori): Use
- param_vrp_switch_limit.
- (gori_compute::gori_compute): Use param_vrp_switch_limit.
- * params.opt (vrp_sparse_threshold): Rename from evrp_sparse_threshold.
- (vrp_switch_limit): Rename from evrp_switch_limit.
- (vrp_vector_threshold): New.
-
-2023-04-26 Andrew MacLeod <amacleod@redhat.com>
-
- * value-relation.cc (dom_oracle::query_relation): Check early for lack
- of any relation.
- * value-relation.h (equiv_oracle::has_equiv_p): New.
-
-2023-04-26 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109417
- * gimple-range-gori.cc (range_def_chain::register_dependency):
- Save the ssa version number, not the pointer.
- (gori_compute::may_recompute_p): No need to check if a dependency
- is in the free list.
- * gimple-range-gori.h (class range_def_chain): Change ssa1 and ssa2
- fields to be unsigned int instead of trees.
- (ange_def_chain::depend1): Adjust.
- (ange_def_chain::depend2): Adjust.
- * gimple-range.h: Include "ssa.h" to inline ssa_name().
-
-2023-04-26 David Edelsohn <dje.gcc@gmail.com>
-
- * config/rs6000/aix72.h (TARGET_DEFAULT): Use ISA_2_6_MASKS_SERVER.
- * config/rs6000/aix73.h (TARGET_DEFAULT): Use ISA_2_7_MASKS_SERVER.
- (PROCESSOR_DEFAULT): Use PROCESSOR_POWER8.
-
-2023-04-26 Patrick O'Neill <patrick@rivosinc.com>
-
- PR target/104338
- * config/riscv/riscv-protos.h: Add helper function stubs.
- * config/riscv/riscv.cc: Add helper functions for subword masking.
- * config/riscv/riscv.opt: Add command-line flags -minline-atomics and
- -mno-inline-atomics.
- * config/riscv/sync.md: Add masking logic and inline asm for fetch_and_op,
- fetch_and_nand, CAS, and exchange ops.
- * doc/invoke.texi: Add blurb regarding new command-line flags
- -minline-atomics and -mno-inline-atomics.
-
-2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_rshrn2<mode>_insn_le):
- Reimplement using standard RTL codes instead of unspec.
- (aarch64_rshrn2<mode>_insn_be): Likewise.
- (aarch64_rshrn2<mode>): Adjust for the above.
- * config/aarch64/aarch64.md (UNSPEC_RSHRN): Delete.
-
-2023-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): Reimplement
- with standard RTL codes instead of an UNSPEC.
- (aarch64_rshrn<mode>_insn_be): Likewise.
- (aarch64_rshrn<mode>): Adjust for the above.
- * config/aarch64/predicates.md (aarch64_simd_rshrn_imm_vec): Define.
-
-2023-04-26 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv.cc (riscv_classify_address): Allow
- const0_rtx for the RVV load/store.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (range_op_cast_tests): Remove legacy support.
- * value-range-storage.h (vrange_allocator::alloc_irange): Same.
- * value-range.cc (irange::operator=): Same.
- (get_legacy_range): Same.
- (irange::copy_legacy_to_multi_range): Delete.
- (irange::copy_to_legacy): Delete.
- (irange::irange_set_anti_range): Delete.
- (irange::set): Remove legacy support.
- (irange::verify_range): Same.
- (irange::legacy_lower_bound): Delete.
- (irange::legacy_upper_bound): Delete.
- (irange::legacy_equal_p): Delete.
- (irange::operator==): Remove legacy support.
- (irange::singleton_p): Same.
- (irange::value_inside_range): Same.
- (irange::contains_p): Same.
- (intersect_ranges): Delete.
- (irange::legacy_intersect): Delete.
- (union_ranges): Delete.
- (irange::legacy_union): Delete.
- (irange::legacy_verbose_union_): Delete.
- (irange::legacy_verbose_intersect): Delete.
- (irange::irange_union): Remove legacy support.
- (irange::irange_intersect): Same.
- (irange::intersect): Same.
- (irange::invert): Same.
- (ranges_from_anti_range): Delete.
- (gt_pch_nx): Adjust for legacy removal.
- (gt_ggc_mx): Same.
- (range_tests_legacy): Delete.
- (range_tests_misc): Adjust for legacy removal.
- (range_tests): Same.
- * value-range.h (class irange): Same.
- (irange::legacy_mode_p): Delete.
- (ranges_from_anti_range): Delete.
- (irange::nonzero_p): Adjust for legacy removal.
- (irange::lower_bound): Same.
- (irange::upper_bound): Same.
- (irange::union_): Same.
- (irange::intersect): Same.
- (irange::set_nonzero): Same.
- (irange::set_zero): Same.
- * vr-values.cc (simplify_using_ranges::legacy_fold_cond_overflow): Same.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::copy_legacy_to_multi_range): Rewrite use
- of range_has_numeric_bounds_p with irange API.
- (range_has_numeric_bounds_p): Delete.
- * value-range.h (range_has_numeric_bounds_p): Delete.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-data-ref.cc (compute_distributive_range): Replace uses of
- range_int_cst_p with irange API.
- * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.
- * tree-vrp.h (range_int_cst_p): Delete.
- * vr-values.cc (check_for_binary_op_overflow): Replace usees of
- range_int_cst_p with irange API.
- (vr_set_zero_nonzero_bits): Same.
- (range_fits_type_p): Same.
- (simplify_using_ranges::simplify_casted_cond): Same.
- * tree-vrp.cc (range_int_cst_p): Remove.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-ssa-strlen.cc (compare_nonzero_chars): Convert to wide_ints.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * builtins.cc (expand_builtin_strnlen): Rewrite deprecated irange
- API uses to new API.
- * gimple-predicate-analysis.cc (find_var_cmp_const): Same.
- * internal-fn.cc (get_min_precision): Same.
- * match.pd: Same.
- * tree-affine.cc (expr_to_aff_combination): Same.
- * tree-data-ref.cc (dr_step_indicator): Same.
- * tree-dfa.cc (get_ref_base_and_extent): Same.
- * tree-scalar-evolution.cc (iv_can_overflow_p): Same.
- * tree-ssa-phiopt.cc (two_value_replacement): Same.
- * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
- * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
- * tree-ssa-strlen.cc (compare_nonzero_chars): Same.
- * tree-switch-conversion.cc (bit_test_cluster::emit): Same.
- * tree-vect-patterns.cc (vect_recog_divmod_pattern): Same.
- * tree.cc (get_range_pos_neg): Same.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Use
- vrange::dump instead of ad-hoc dumper.
- * tree-ssa-strlen.cc (dump_strlen_info): Same.
- * value-range-pretty-print.cc (visit): Pass TDF_NOUID to
- dump_generic_node.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * range-op.cc (operator_cast::op1_range): Use
- create_possibly_reversed_range.
- (operator_bitwise_and::simple_op1_range_solver): Same.
- * value-range.cc (swap_out_of_order_endpoints): Delete.
- (irange::set): Remove call to swap_out_of_order_endpoints.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * builtins.cc (determine_block_size): Convert use of legacy API to
- get_legacy_range.
- * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
- (array_bounds_checker::check_array_ref): Same.
- * gimple-ssa-warn-restrict.cc
- (builtin_memref::extend_offset_range): Same.
- * ipa-cp.cc (ipcp_store_vr_results): Same.
- * ipa-fnsummary.cc (set_switch_stmt_execution_predicate): Same.
- * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
- (ipa_write_jump_function): Same.
- * pointer-query.cc (get_size_range): Same.
- * tree-data-ref.cc (split_constant_offset): Same.
- * tree-ssa-strlen.cc (get_range): Same.
- (maybe_diag_stxncpy_trunc): Same.
- (strlen_pass::get_len_or_size): Same.
- (strlen_pass::count_nonzero_bytes_addr): Same.
- * tree-vect-patterns.cc (vect_get_range_info): Same.
- * value-range.cc (irange::maybe_anti_range): Remove.
- (get_legacy_range): New.
- (irange::copy_to_legacy): Use get_legacy_range.
- (ranges_from_anti_range): Same.
- * value-range.h (class irange): Remove maybe_anti_range.
- (get_legacy_range): New.
- * vr-values.cc (check_for_binary_op_overflow): Convert use of
- legacy API to get_legacy_range.
- (compare_ranges): Same.
- (compare_range_with_value): Same.
- (bounds_of_var_in_loop): Same.
- (find_case_label_ranges): Same.
- (simplify_using_ranges::simplify_switch_using_ranges): Same.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range-pretty-print.cc (vrange_printer::visit): Remove
- constant_p use.
- * value-range.cc (irange::constant_p): Remove.
- (irange::get_nonzero_bits_from_range): Remove constant_p use.
- * value-range.h (class irange): Remove constant_p.
- (irange::num_pairs): Remove constant_p use.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::copy_legacy_to_multi_range): Remove
- symbolics support.
- (irange::set): Same.
- (irange::legacy_lower_bound): Same.
- (irange::legacy_upper_bound): Same.
- (irange::contains_p): Same.
- (range_tests_legacy): Same.
- (irange::normalize_addresses): Remove.
- (irange::normalize_symbolics): Remove.
- (irange::symbolic_p): Remove.
- * value-range.h (class irange): Remove symbolic_p,
- normalize_symbolics, and normalize_addresses.
- * vr-values.cc (simplify_using_ranges::two_valued_val_range_p):
- Remove symbolics support.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (irange::may_contain_p): Remove.
- * value-range.h (range_includes_zero_p): Rewrite may_contain_p
- usage with contains_p.
- * vr-values.cc (compare_range_with_value): Same.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * tree-vrp.cc (supported_types_p): Remove.
- (defined_ranges_p): Remove.
- (range_fold_binary_expr): Remove.
- (range_fold_unary_expr): Remove.
- * tree-vrp.h (range_fold_unary_expr): Remove.
- (range_fold_binary_expr): Remove.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (ipa_vr_operation_and_type_effects): Convert to ranger API.
- (ipa_value_range_from_jfunc): Same.
- (propagate_vr_across_jump_function): Same.
- * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
- * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
- * vr-values.cc (bounds_of_var_in_loop): Same.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-array-bounds.cc (array_bounds_checker::get_value_range):
- Add irange argument.
- (check_out_of_bounds_and_warn): Remove check for vr.
- (array_bounds_checker::check_array_ref): Remove pointer qualifier
- for vr and adjust accordingly.
- * gimple-array-bounds.h (get_value_range): Add irange argument.
- * value-query.cc (class equiv_allocator): Delete.
- (range_query::get_value_range): Delete.
- (range_query::range_query): Remove allocator access.
- (range_query::~range_query): Same.
- * value-query.h (get_value_range): Delete.
- * vr-values.cc
- (simplify_using_ranges::op_with_boolean_value_range_p): Remove
- call to get_value_range.
- (check_for_binary_op_overflow): Same.
- (simplify_using_ranges::legacy_fold_cond_overflow): Same.
- (simplify_using_ranges::simplify_abs_using_ranges): Same.
- (simplify_using_ranges::simplify_cond_using_ranges_1): Same.
- (simplify_using_ranges::simplify_casted_cond): Same.
- (simplify_using_ranges::simplify_switch_using_ranges): Same.
- (simplify_using_ranges::two_valued_val_range_p): Same.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * vr-values.cc
- (simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops):
- Rename to...
- (simplify_using_ranges::legacy_fold_cond_overflow): ...this.
- (simplify_using_ranges::vrp_visit_cond_stmt): Rename to...
- (simplify_using_ranges::legacy_fold_cond): ...this.
- (simplify_using_ranges::fold_cond): Rename
- vrp_evaluate_conditional_warnv_with_ops to
- legacy_fold_cond_overflow.
- * vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and
- vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and
- legacy_fold_cond_overflow respectively.
-
-2023-04-26 Aldy Hernandez <aldyh@redhat.com>
-
- * vr-values.cc (get_vr_for_comparison): Remove.
- (compare_name_with_value): Same.
- (vrp_evaluate_conditional_warnv_with_ops): Remove calls to
- compare_name_with_value.
- * vr-values.h: Remove compare_name_with_value.
- Remove get_vr_for_comparison.
-
-2023-04-26 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.md (bswaphi2): New define_insn.
- (bswapsi2): New define_insn.
- (swaphi): New define_insn to exchange two registers (swpw).
- (define_peephole2): Recognize exchange of registers as swaphi.
-
-2023-04-26 Richard Biener <rguenther@suse.de>
-
- * gimple-range-path.cc (path_range_query::compute_outgoing_relations):
- Avoid last_stmt.
- * ipa-pure-const.cc (pass_nothrow::execute): Likewise.
- * predict.cc (apply_return_prediction): Likewise.
- * sese.cc (set_ifsese_condition): Likewise. Simplify.
- * tree-cfg.cc (assert_unreachable_fallthru_edge_p): Avoid last_stmt.
- (make_edges_bb): Likewise.
- (make_cond_expr_edges): Likewise.
- (end_recording_case_labels): Likewise.
- (make_gimple_asm_edges): Likewise.
- (cleanup_dead_labels): Likewise.
- (group_case_labels): Likewise.
- (gimple_can_merge_blocks_p): Likewise.
- (gimple_merge_blocks): Likewise.
- (find_taken_edge): Likewise. Also handle empty fallthru blocks.
- (gimple_duplicate_sese_tail): Avoid last_stmt.
- (find_loop_dist_alias): Likewise.
- (gimple_block_ends_with_condjump_p): Likewise.
- (gimple_purge_dead_eh_edges): Likewise.
- (gimple_purge_dead_abnormal_call_edges): Likewise.
- (pass_warn_function_return::execute): Likewise.
- (execute_fixup_cfg): Likewise.
- * tree-eh.cc (redirect_eh_edge_1): Likewise.
- (pass_lower_resx::execute): Likewise.
- (pass_lower_eh_dispatch::execute): Likewise.
- (cleanup_empty_eh): Likewise.
- * tree-if-conv.cc (if_convertible_bb_p): Likewise.
- (predicate_bbs): Likewise.
- (ifcvt_split_critical_edges): Likewise.
- * tree-loop-distribution.cc (create_edge_for_control_dependence):
- Likewise.
- (loop_distribution::transform_reduction_loop): Likewise.
- * tree-parloops.cc (transform_to_exit_first_loop_alt): Likewise.
- (try_transform_to_exit_first_loop_alt): Likewise.
- (transform_to_exit_first_loop): Likewise.
- (create_parallel_loop): Likewise.
- * tree-scalar-evolution.cc (get_loop_exit_condition): Likewise.
- * tree-ssa-dce.cc (mark_last_stmt_necessary): Likewise.
- (eliminate_unnecessary_stmts): Likewise.
- * tree-ssa-dom.cc
- (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
- Likewise.
- * tree-ssa-ifcombine.cc (ifcombine_ifandif): Likewise.
- (pass_tree_ifcombine::execute): Likewise.
- * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Likewise.
- (should_duplicate_loop_header_p): Likewise.
- * tree-ssa-loop-ivcanon.cc (create_canonical_iv): Likewise.
- (tree_estimate_loop_size): Likewise.
- (try_unroll_loop_completely): Likewise.
- * tree-ssa-loop-ivopts.cc (tree_ssa_iv_optimize_loop): Likewise.
- * tree-ssa-loop-manip.cc (ip_normal_pos): Likewise.
- (canonicalize_loop_ivs): Likewise.
- * tree-ssa-loop-niter.cc (determine_value_range): Likewise.
- (bound_difference): Likewise.
- (number_of_iterations_popcount): Likewise.
- (number_of_iterations_cltz): Likewise.
- (number_of_iterations_cltz_complement): Likewise.
- (simplify_using_initial_conditions): Likewise.
- (number_of_iterations_exit_assumptions): Likewise.
- (loop_niter_by_eval): Likewise.
- (estimate_numbers_of_iterations): Likewise.
-
-2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Refine vmadc/vmsbc RA constraint.
-
-2023-04-26 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/108758
- * config/rs6000/rs6000-builtins.def
- (__builtin_vsx_scalar_cmp_exp_qp_eq, __builtin_vsx_scalar_cmp_exp_qp_gt
- __builtin_vsx_scalar_cmp_exp_qp_lt,
- __builtin_vsx_scalar_cmp_exp_qp_unordered): Move from stanza ieee128-hw
- to power9-vector.
-
-2023-04-26 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/109069
- * config/rs6000/altivec.md (sldoi_to_mov<mode>): Replace predicate
- easy_vector_constant with const_vector_each_byte_same, add
- handlings in preparation for !easy_vector_constant, and update
- VECTOR_UNIT_ALTIVEC_OR_VSX_P with VECTOR_MEM_ALTIVEC_OR_VSX_P.
- * config/rs6000/predicates.md (const_vector_each_byte_same): New
- predicate.
-
-2023-04-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md (*pred_cmp<mode>_merge_tie_mask): New pattern.
- (*pred_ltge<mode>_merge_tie_mask): Ditto.
- (*pred_cmp<mode>_scalar_merge_tie_mask): Ditto.
- (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
- (*pred_cmp<mode>_extended_scalar_merge_tie_mask): Ditto.
- (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
- (*pred_cmp<mode>_narrow_merge_tie_mask): Ditto.
-
-2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix redundant vmv1r.v.
-
-2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix RA constraint.
-
-2023-04-26 Pan Li <pan2.li@intel.com>
-
- PR target/109272
- * tree-ssa-sccvn.cc (vn_reference_eq): add type vector subparts
- check for vn_reference equal.
-
-2023-04-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Add enum for
- auto-vectorization preference.
- (enum riscv_autovec_lmul_enum): Add enum for choosing LMUL of RVV
- auto-vectorization.
- * config/riscv/riscv.opt: Add compile option for RVV auto-vectorization.
-
-2023-04-26 Jivan Hakobyan <jivanhakobyan9@gmail.com>
-
- * config/riscv/bitmanip.md: Updated predicates of bclri<mode>_nottwobits
- and bclridisi_nottwobits patterns.
- * config/riscv/predicates.md: (not_uimm_extra_bit_or_nottwobits): Adjust
- predicate to avoid splitting arith constants.
- (const_nottwobits_not_arith_operand): New predicate.
-
-2023-04-25 Hans-Peter Nilsson <hp@axis.com>
-
- * recog.cc (peep2_attempt, peep2_update_life): Correct
- head-comment description of parameter match_len.
-
-2023-04-25 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.md: riscv_move_integer() drop in_splitter arg.
- riscv_split_symbol() drop in_splitter arg.
- * config/riscv/riscv.cc: riscv_move_integer() drop in_splitter arg.
- riscv_split_symbol() drop in_splitter arg.
- riscv_force_temporary() drop in_splitter arg.
- * config/riscv/riscv-protos.h: riscv_move_integer() drop in_splitter arg.
- riscv_split_symbol() drop in_splitter arg.
-
-2023-04-25 Eric Botcazou <ebotcazou@adacore.com>
-
- * tree-ssa.cc (insert_debug_temp_for_var_def): Do not create
- superfluous debug temporaries for single GIMPLE assignments.
-
-2023-04-25 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109609
- * attr-fnspec.h (arg_max_access_size_given_by_arg_p):
- Clarify semantics.
- * tree-ssa-alias.cc (check_fnspec): Correctly interpret
- the size given by arg_max_access_size_given_by_arg_p as
- maximum, not exact, size.
-
-2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (orn<mode>3): Rename to...
- (orn<mode>3<vczle><vczbe>): ... This.
- (bic<mode>3): Rename to...
- (bic<mode>3<vczle><vczbe>): ... This.
- (<su><maxmin><mode>3): Rename to...
- (<su><maxmin><mode>3<vczle><vczbe>): ... This.
-
-2023-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3): New define_expand.
- * config/aarch64/iterators.md (VQDIV): New mode iterator.
- (vnx2di): New mode attribute.
-
-2023-04-25 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/109585
- * tree-ssa-alias.cc (aliasing_component_refs_p): Fix typo.
-
-2023-04-25 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109566
- * config/rs6000/rs6000.cc (rs6000_is_valid_rotate_dot_mask): For
- !TARGET_64BIT, don't return true if UINTVAL (mask) << (63 - nb)
- is larger than signed int maximum.
-
-2023-04-25 Martin Liska <mliska@suse.cz>
-
- * doc/gcov.texi: Document the new "calls" field and document
- the API bump. Mention also "block_ids" for lines.
- * gcov.cc (output_intermediate_json_line): Output info about
- calls and extend branches as well.
- (generate_results): Bump version to 2.
- (output_line_details): Use block ID instead of a non-sensual
- index.
-
-2023-04-25 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.md (zero_extendqihi2): Restore/fix
- length attribute for the first (memory operand) alternative.
-
-2023-04-25 Victor Do Nascimento <victor.donascimento@arm.com>
-
- * config/aarch64/aarch64-simd.md(aarch64_simd_stp<mode>): New.
- * config/aarch64/constraints.md: Make "Umn" relaxed memory
- constraint.
- * config/aarch64/iterators.md(ldpstp_vel_sz): New.
-
-2023-04-25 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (frange::set): Adjust constructor.
- * value-range.h (nan_state::nan_state): Replace default
- constructor with one taking an argument.
-
-2023-04-25 Aldy Hernandez <aldyh@redhat.com>
-
- * ipa-cp.cc (ipa_range_contains_p): New.
- (decide_whether_version_node): Use it.
-
-2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
- simplify two successive VEC_PERM_EXPRs with same VLA mask,
- where mask chooses elements in reverse order.
-
-2023-04-24 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
- and support diamond shaped basic block form.
- (tree_ssa_phiopt_worker): Update call to match_simplify_replacement
-
-2023-04-24 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
- Instead of calling last_and_only_stmt, look for the last statement
- manually.
-
-2023-04-24 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
- New function.
- (match_simplify_replacement): Call
- empty_bb_or_one_feeding_into_p instead of doing it inline.
-
-2023-04-24 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/68894
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
- continue for the do_hoist_loads diamond case.
-
-2023-04-24 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
- code for better code readability.
-
-2023-04-24 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109604
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
- diamond form check from ...
- (minmax_replacement): Here.
-
-2023-04-24 Patrick Palka <ppalka@redhat.com>
-
- * tree.cc (strip_array_types): Don't define here.
- (is_typedef_decl): Don't define here.
- (typedef_variant_p): Don't define here.
- * tree.h (strip_array_types): Define here.
- (is_typedef_decl): Define here.
- (typedef_variant_p): Define here.
-
-2023-04-24 Frederik Harwath <frederik@codesourcery.com>
-
- * doc/generic.texi (OpenMP): Add != to allowed
- conditions and state that vars can be unsigned.
- * tree.def (OMP_FOR): Likewise.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
-
-2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * doc/install.texi: Consistently use Solaris rather than Solaris 2.
- Remove explicit Solaris 11 references.
- Markup fixes.
- (Options specification, --with-gnu-as): as and gas always differ
- on Solaris.
- Remove /usr/ccs/bin reference.
- (Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
- (i?86-*-solaris2*): Merge assembler, linker recommendations ...
- (*-*-solaris2*): ... here.
- Update bundled GCC versions.
- Don't refer to pre-built binaries.
- Remove /bin/sh warning.
- Update assembler, linker recommendations.
- Document GNAT bootstrap compiler.
- (sparc-sun-solaris2*): Remove non-UltraSPARC reference.
- (sparc64-*-solaris2*): Move content...
- (sparcv9-*-solaris2*): ...here.
- Add GDC for 64-bit bootstrap compilers.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/109406
- * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
- case.
- * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
- pattern.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
- (aarch64_<su>abal2<mode>_insn): ... This. Use RTL codes instead of unspec.
- (aarch64_<su>abal2<mode>): New define_expand.
- * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
- (aarch64_rtx_costs): Handle ABD rtxes.
- * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
- * config/aarch64/iterators.md (ABAL2): Delete.
- (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
- (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec.
- (<sur>sadv16qi): Rename to...
- (<su>sadv16qi): ... This. Adjust for the above.
- * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
- (<su>sad<vsi2qi>): ... This. Adjust for the above.
- * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
- * config/aarch64/iterators.md (ABAL): Delete.
- (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
- (aarch64_<su>abdl2<mode>_insn): ... This. Use RTL codes instead of unspec.
- (aarch64_<su>abdl2<mode>): New define_expand.
- * config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
- * config/aarch64/iterators.md (ABDL2): Delete.
- (sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
- (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
- unspec.
- * config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
- * config/aarch64/iterators.md (ABDL): Delete.
- (sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
-
-2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md
- (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
-
-2023-04-24 Richard Biener <rguenther@suse.de>
-
- * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
- last_stmt.
- * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
- Likewise.
- * ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
- (set_switch_stmt_execution_predicate): Likewise.
- (phi_result_unknown_predicate): Likewise.
- * ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
- (ipa_analyze_indirect_call_uses): Likewise.
- * predict.cc (predict_iv_comparison): Likewise.
- (predict_extra_loop_exits): Likewise.
- (predict_loops): Likewise.
- (tree_predict_by_opcode): Likewise.
- * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
- Likewise.
- * gimple-pretty-print.cc (dump_implicit_edges): Likewise.
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
- (replace_phi_edge_with_variable): Likewise.
- (two_value_replacement): Likewise.
- (value_replacement): Likewise.
- (minmax_replacement): Likewise.
- (spaceship_replacement): Likewise.
- (cond_removal_in_builtin_zero_pattern): Likewise.
- * tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
- * tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
- (vn_phi_lookup): Likewise.
- (vn_phi_insert): Likewise.
- * tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
- * tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
- Likewise.
- (back_threader_profitability::possibly_profitable_path_p):
- Likewise.
- * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
- Likewise.
- * tree-switch-conversion.cc (pass_convert_switch::execute):
- Likewise.
- (pass_lower_switch<O0>::execute): Likewise.
- * tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
- * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
- * tree-vect-slp.cc (vect_slp_function): Likewise.
- * tree-vect-stmts.cc (cfun_returns): Likewise.
- * tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
- (vect_loop_dist_alias_call): Likewise.
-
-2023-04-24 Richard Biener <rguenther@suse.de>
-
- * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
-
-2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc
- (vector_infos_manager::all_avail_in_compatible_p): New function.
- (pass_vsetvl::refine_vsetvls): Optimize vsetvls.
- * config/riscv/riscv-vsetvl.h: New function.
-
-2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
- comment for cleanup_insns.
-
-2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
- * config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
- with the fault first load property.
-
-2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
- (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
-
-2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
- (aarch64_addp<mode><vczle><vczbe>): ... This.
-
-2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
- provide reasonable values for common arithmetic operations and
- immediate operands (in several machine modes).
-
-2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
- format specifier to output high_part register name of SImode reg.
- * config/stormy16/stormy16.md (extendhisi2): New define_insn.
- (zero_extendqihi2): Fix lengths, consistent formatting and add
- "and Rx,#255" alternative, for documentation purposes.
- (zero_extendhisi2): New define_insn.
-
-2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
- SImode shifts by two by performing a single bit SImode shift twice.
-
-2023-04-23 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109593
- * value-range.cc (frange::operator==): Handle NANs.
-
-2023-04-23 liuhongt <hongtao.liu@intel.com>
-
- PR rtl-optimization/108707
- * ira-costs.cc (scan_one_insn): Use NO_REGS instead of
- GENERAL_REGS when preferred reg_class is not known.
-
-2023-04-22 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
- Change the code around slightly to move diamond
- handling for do_store_elim/do_hoist_loads out of
- the big if/else.
-
-2023-04-22 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
- Remove check on empty_block_p.
-
-2023-04-22 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/109589
- * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
- * realmpfr.h (class auto_mpfr): Likewise.
-
-2023-04-22 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109583
- * match.pd (fneg/fadd simplify): Don't call related_vector_mode
- if vec_mode is not VECTOR_MODE_P.
-
-2023-04-22 Jan Hubicka <hubicka@ucw.cz>
- Ondrej Kubanek <kubanek0ondrej@gmail.com>
-
- * cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
- * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
- loop profile and bounds after header duplication.
- * tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
- Break out from try_peel_loop; fix handling of 0 iterations.
- (try_peel_loop): Use adjust_loop_info_after_peeling.
-
-2023-04-21 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109546
- * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
- not fold conditions with ADDR_EXPR early.
-
-2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
- (umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
- for umax.
- (<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
- (*aarch64_<optab><mode>3_zero): Define.
- (*aarch64_<optab><mode>3_cssc): Likewise.
- * config/aarch64/iterators.md (maxminand): New code attribute.
-
-2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/108779
- * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
- * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
- Define prototype.
- * config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
- (aarch64_override_options_internal): Handle the above.
- (aarch64_output_load_tp): New function.
- * config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
- aarch64_output_load_tp.
- * config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
- (mtp=): New option.
- * doc/invoke.texi (AArch64 Options): Document -mtp=.
-
-2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/99195
- * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
- (add_vec_concat_subst_be): Likewise.
- (vczle): Likewise.
- (vczbe): Likewise.
- (add<mode>3): Rename to...
- (add<mode>3<vczle><vczbe>): ... This.
- (sub<mode>3): Rename to...
- (sub<mode>3<vczle><vczbe>): ... This.
- (mul<mode>3): Rename to...
- (mul<mode>3<vczle><vczbe>): ... This.
- (and<mode>3): Rename to...
- (and<mode>3<vczle><vczbe>): ... This.
- (ior<mode>3): Rename to...
- (ior<mode>3<vczle><vczbe>): ... This.
- (xor<mode>3): Rename to...
- (xor<mode>3<vczle><vczbe>): ... This.
- * config/aarch64/iterators.md (VDZ): Define.
-
-2023-04-21 Patrick Palka <ppalka@redhat.com>
-
- * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
- and type_p.
-
-2023-04-21 Jan Hubicka <jh@suse.cz>
-
- * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
- commit.
-
-2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
-
- * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
- (shift*_cost_ptr ()): Access x_shift*_cost array directly.
-
-2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
- force_reg instead of copy_to_mode_reg.
- (aarch64_expand_vector_init): Likewise.
-
-2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
- (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
- (REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
- (FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
- (LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
- (INDEX_REG_P, INDEX_REGNO_P): Ditto.
- (REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
- (REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
- (EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
- * config/i386/predicates.md (index_register_operand):
- Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
- * config/i386/i386.cc (ix86_legitimate_address_p): Use
- REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
- REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
-
-2023-04-21 Jan Hubicka <hubicka@ucw.cz>
- Ondrej Kubanek <kubanek0ondrej@gmail.com>
-
- * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
- latch.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- * is-a.h (safe_is_a): New.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
- (gphi_iterator::operator*): Likewise.
-
-2023-04-21 Jan Hubicka <hubicka@ucw.cz>
- Michal Jires <michal@jires.eu>
-
- * ipa-inline.cc (class inline_badness): New class.
- (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
- of sreal.
- (update_edge_key): Update.
- (lookup_recursive_calls): Likewise.
- (recursive_inlining): Likewise.
- (add_new_edges_to_heap): Likewise.
- (inline_small_functions): Likewise.
-
-2023-04-21 Jan Hubicka <hubicka@ucw.cz>
-
- * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109573
- * tree-vect-loop.cc (vectorizable_live_operation): Allow
- unhandled SSA copy as well. Demote assert to checking only.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- * df-core.cc (df_analyze): Compute RPO on the reverse graph
- for DF_BACKWARD problems.
- (loop_post_order_compute): Rename to ...
- (loop_rev_post_order_compute): ... this, compute a RPO.
- (loop_inverted_post_order_compute): Rename to ...
- (loop_inverted_rev_post_order_compute): ... this, compute a RPO.
- (df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
- problems, RPO on the inverted graph for DF_BACKWARD.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- * cfganal.h (inverted_rev_post_order_compute): Rename
- from ...
- (inverted_post_order_compute): ... this. Add struct function
- argument, change allocation to a C array.
- * cfganal.cc (inverted_rev_post_order_compute): Likewise.
- * lcm.cc (compute_antinout_edge): Adjust.
- * lra-lives.cc (lra_create_live_ranges_1): Likewise.
- * tree-ssa-dce.cc (remove_dead_stmt): Likewise.
- * tree-ssa-pre.cc (compute_antic): Likewise.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- * df.h (df_d::postorder_inverted): Change back to int *,
- clarify comments.
- * df-core.cc (rest_of_handle_df_finish): Adjust.
- (df_analyze_1): Likewise.
- (df_analyze): For DF_FORWARD problems use RPO on the forward
- graph. Adjust.
- (loop_inverted_post_order_compute): Adjust API.
- (df_analyze_loop): Adjust.
- (df_get_n_blocks): Likewise.
- (df_get_postorder): Likewise.
-
-2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/108270
- * config/riscv/riscv-vsetvl.cc
- (vector_infos_manager::all_empty_predecessor_p): New function.
- (pass_vsetvl::backward_demand_fusion): Ditto.
- * config/riscv/riscv-vsetvl.h: Ditto.
-
-2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
-
- PR target/109582
- * config/riscv/generic.md: Change standard names to insn names.
-
-2023-04-21 Richard Biener <rguenther@suse.de>
-
- * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
- (compute_laterin): Use RPO.
- (compute_available): Likewise.
-
-2023-04-21 Peng Fan <fanpeng@loongson.cn>
-
- * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
-
-2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109547
- * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
- (vector_insn_info::skip_avl_compatible_p): Ditto.
- (vector_insn_info::merge): Remove default value.
- (pass_vsetvl::compute_local_backward_infos): Ditto.
- (pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
- * config/riscv/riscv-vsetvl.h: Ditto.
-
-2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
-
- * doc/extend.texi (Common Function Attributes): Remove duplicate
- word.
-
-2023-04-20 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109564
- * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
- UNDEFINED range names when deciding if all PHI arguments are the same,
-
-2023-04-20 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109011
- * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
- .CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
- .CTZ (X) = PREC - .POPCOUNT (X | -X).
-
-2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc (match_reload): Exclude some hard regs for
- multi-reg inout reload pseudos used in asm in different mode.
-
-2023-04-20 Uros Bizjak <ubizjak@gmail.com>
-
- * config/arm/arm.cc (thumb1_legitimate_address_p):
- Use VIRTUAL_REGISTER_P predicate.
- (arm_eliminable_register): Ditto.
- * config/avr/avr.md (push<mode>_1): Ditto.
- * config/bfin/predicates.md (register_no_elim_operand): Ditto.
- * config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
- * config/i386/predicates.md (register_no_elim_operand): Ditto.
- * config/iq2000/predicates.md (call_insn_operand): Ditto.
- * config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
-
-2023-04-20 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/78952
- * config/i386/predicates.md (extract_operator): New predicate.
- * config/i386/i386.md (any_extract): Remove code iterator.
- (*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
- (*cmpqi_ext<mode>_1): Ditto.
- (*cmpqi_ext<mode>_2): Ditto.
- (*cmpqi_ext<mode>_3_mem_rex64): Ditto.
- (*cmpqi_ext<mode>_3): Ditto.
- (*cmpqi_ext<mode>_4): Ditto.
- (*extzvqi_mem_rex64): Ditto.
- (*extzvqi): Ditto.
- (*insvqi_2): Ditto.
- (*extendqi<SWI24:mode>_ext_1): Ditto.
- (*addqi_ext<mode>_0): Ditto.
- (*addqi_ext<mode>_1): Ditto.
- (*addqi_ext<mode>_2): Ditto.
- (*subqi_ext<mode>_0): Ditto.
- (*subqi_ext<mode>_2): Ditto.
- (*testqi_ext<mode>_1): Ditto.
- (*testqi_ext<mode>_2): Ditto.
- (*andqi_ext<mode>_0): Ditto.
- (*andqi_ext<mode>_1): Ditto.
- (*andqi_ext<mode>_1_cc): Ditto.
- (*andqi_ext<mode>_2): Ditto.
- (*<any_or:code>qi_ext<mode>_0): Ditto.
- (*<any_or:code>qi_ext<mode>_1): Ditto.
- (*<any_or:code>qi_ext<mode>_2): Ditto.
- (*xorqi_ext<mode>_1_cc): Ditto.
- (*negqi_ext<mode>_2): Ditto.
- (*ashlqi_ext<mode>_2): Ditto.
- (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
-
-2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
-
- PR target/108248
- * config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
- <bitmanip_insn> as the type to allow for fine grained control of
- scheduling these insns.
- * config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
- min, max.
- * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
- pcnt, signed and unsigned min/max.
-
-2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
-
-2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- PR target/109535
- * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
- (pass_vsetvl::cleanup_insns): Fix bug.
-
-2023-04-20 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
- (ldexp<mode>3): Delete.
- (ldexp<mode>3<exec>): Change "B" to "A".
-
-2023-04-20 Jakub Jelinek <jakub@redhat.com>
- Jonathan Wakely <jwakely@redhat.com>
-
- * tree.h (built_in_function_equal_p): New helper function.
- (fndecl_built_in_p): Turn into variadic template to support
- 1 or more built_in_function arguments.
- * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
- * gimplify.cc (goa_stabilize_expr): Likewise.
- * cgraphclones.cc (cgraph_node::create_clone): Likewise.
- * ipa-fnsummary.cc (compute_fn_summary): Likewise.
- * omp-low.cc (setjmp_or_longjmp_p): Likewise.
- * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
- cgraph_update_edges_for_call_stmt_node,
- cgraph_edge::verify_corresponds_to_fndecl,
- cgraph_node::verify_node): Likewise.
- * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
- * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
- * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
-
-2023-04-20 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109011
- * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
- (vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
- call later. Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
- direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
- for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
- case.
- (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
-
-2023-04-20 Richard Biener <rguenther@suse.de>
-
- * df-core.cc (rest_of_handle_df_initialize): Remove
- computation of df->postorder, df->postorder_inverted and
- df->n_blocks.
-
-2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
- (ix86_handle_option): Set AVX flag for VAES.
- * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
- Add OPTION_MASK_ISA2_VAES_UNSET.
- (def_builtin): Share builtin between AES and VAES.
- * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
- Ditto.
- * config/i386/i386.md (aes): New isa attribute.
- * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
- (aesenclast): Ditto.
- (aesdec): Ditto.
- (aesdeclast): Ditto.
- * config/i386/vaesintrin.h: Remove redundant avx target push.
- * config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
- (_mm_aesdeclast_si128): Ditto.
- (_mm_aesenc_si128): Ditto.
- (_mm_aesenclast_si128): Ditto.
-
-2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
-
- * config/i386/avx2intrin.h
- (_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
- (_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
- (_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
- (_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
- (_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
- (_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
- (_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
- (_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
- (_mm_reduce_add_epi16): New instrinsics.
- (_mm_reduce_mul_epi16): Ditto.
- (_mm_reduce_and_epi16): Ditto.
- (_mm_reduce_or_epi16): Ditto.
- (_mm_reduce_max_epi16): Ditto.
- (_mm_reduce_max_epu16): Ditto.
- (_mm_reduce_min_epi16): Ditto.
- (_mm_reduce_min_epu16): Ditto.
- (_mm256_reduce_add_epi16): Ditto.
- (_mm256_reduce_mul_epi16): Ditto.
- (_mm256_reduce_and_epi16): Ditto.
- (_mm256_reduce_or_epi16): Ditto.
- (_mm256_reduce_max_epi16): Ditto.
- (_mm256_reduce_max_epu16): Ditto.
- (_mm256_reduce_min_epi16): Ditto.
- (_mm256_reduce_min_epu16): Ditto.
- (_mm_reduce_add_epi8): Ditto.
- (_mm_reduce_mul_epi8): Ditto.
- (_mm_reduce_and_epi8): Ditto.
- (_mm_reduce_or_epi8): Ditto.
- (_mm_reduce_max_epi8): Ditto.
- (_mm_reduce_max_epu8): Ditto.
- (_mm_reduce_min_epi8): Ditto.
- (_mm_reduce_min_epu8): Ditto.
- (_mm256_reduce_add_epi8): Ditto.
- (_mm256_reduce_mul_epi8): Ditto.
- (_mm256_reduce_and_epi8): Ditto.
- (_mm256_reduce_or_epi8): Ditto.
- (_mm256_reduce_max_epi8): Ditto.
- (_mm256_reduce_max_epu8): Ditto.
- (_mm256_reduce_min_epi8): Ditto.
- (_mm256_reduce_min_epu8): Ditto.
- * config/i386/avx512vlbwintrin.h:
- (_mm_mask_reduce_add_epi16): Ditto.
- (_mm_mask_reduce_mul_epi16): Ditto.
- (_mm_mask_reduce_and_epi16): Ditto.
- (_mm_mask_reduce_or_epi16): Ditto.
- (_mm_mask_reduce_max_epi16): Ditto.
- (_mm_mask_reduce_max_epu16): Ditto.
- (_mm_mask_reduce_min_epi16): Ditto.
- (_mm_mask_reduce_min_epu16): Ditto.
- (_mm256_mask_reduce_add_epi16): Ditto.
- (_mm256_mask_reduce_mul_epi16): Ditto.
- (_mm256_mask_reduce_and_epi16): Ditto.
- (_mm256_mask_reduce_or_epi16): Ditto.
- (_mm256_mask_reduce_max_epi16): Ditto.
- (_mm256_mask_reduce_max_epu16): Ditto.
- (_mm256_mask_reduce_min_epi16): Ditto.
- (_mm256_mask_reduce_min_epu16): Ditto.
- (_mm_mask_reduce_add_epi8): Ditto.
- (_mm_mask_reduce_mul_epi8): Ditto.
- (_mm_mask_reduce_and_epi8): Ditto.
- (_mm_mask_reduce_or_epi8): Ditto.
- (_mm_mask_reduce_max_epi8): Ditto.
- (_mm_mask_reduce_max_epu8): Ditto.
- (_mm_mask_reduce_min_epi8): Ditto.
- (_mm_mask_reduce_min_epu8): Ditto.
- (_mm256_mask_reduce_add_epi8): Ditto.
- (_mm256_mask_reduce_mul_epi8): Ditto.
- (_mm256_mask_reduce_and_epi8): Ditto.
- (_mm256_mask_reduce_or_epi8): Ditto.
- (_mm256_mask_reduce_max_epi8): Ditto.
- (_mm256_mask_reduce_max_epu8): Ditto.
- (_mm256_mask_reduce_min_epi8): Ditto.
- (_mm256_mask_reduce_min_epu8): Ditto.
-
-2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA_VPCLMULQDQ_SET):
- Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
- (OPTION_MASK_ISA_AVX_UNSET):
- Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
- (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
- * config/i386/i386.md (vpclmulqdqvl): New.
- * config/i386/sse.md (pclmulqdq): Add evex encoding.
- * config/i386/vpclmulqdqintrin.h: Remove redudant avx target
- push.
-
-2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/avx512vlbwintrin.h
- (_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
- (_mm_mask_blend_epi8): Ditto.
- (_mm256_mask_blend_epi16): Ditto.
- (_mm256_mask_blend_epi8): Ditto.
- * config/i386/avx512vlintrin.h
- (_mm256_mask_blend_pd): Ditto.
- (_mm256_mask_blend_ps): Ditto.
- (_mm256_mask_blend_epi64): Ditto.
- (_mm256_mask_blend_epi32): Ditto.
- (_mm_mask_blend_pd): Ditto.
- (_mm_mask_blend_ps): Ditto.
- (_mm_mask_blend_epi64): Ditto.
- (_mm_mask_blend_epi32): Ditto.
- * config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
- (VF_AVX512HFBFVL): Move it before the first usage.
- (<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
- to VF_AVX512HFBFVL.
-
-2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
- to OPTION_MASK_ISA_AVX512BW_SET.
- (OPTION_MASK_ISA_AVX512F_UNSET):
- Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
- (OPTION_MASK_ISA_AVX512BW_UNSET):
- Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
- * config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
- * config/i386/avx512vbmi2vlintrin.h: Ditto.
- * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
- * config/i386/sse.md (VI12_AVX512VLBW): Removed.
- (VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
- (compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
- VI12_AVX512VL.
- (compressstore<mode>_mask): Ditto.
- (expand<mode>_mask): Ditto.
- (expand<mode>_maskz): Ditto.
- (*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
- VI12_VI48F_AVX512VL.
-
-2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA_AVX512BITALG_SET):
- Change OPTION_MASK_ISA_AVX512F_SET
- to OPTION_MASK_ISA_AVX512BW_SET.
- (OPTION_MASK_ISA_AVX512F_UNSET):
- Remove OPTION_MASK_ISA_AVX512BITALG_SET.
- (OPTION_MASK_ISA_AVX512BW_UNSET):
- Add OPTION_MASK_ISA_AVX512BITALG_SET.
- * config/i386/avx512bitalgintrin.h: Do not push avx512bw.
- * config/i386/i386-builtin.def:
- Remove redundant OPTION_MASK_ISA_AVX512BW.
- * config/i386/sse.md (VI1_AVX512VLBW): Removed.
- (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
- Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
-
-2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386-expand.cc
- (ix86_check_builtin_isa_match): Correct wrong comments.
- Add a new macro SHARE_BUILTIN and refactor the current if
- clauses to macro.
-
-2023-04-20 Mo, Zewei <zewei.mo@intel.com>
-
- * config/i386/cpuid.h: Open a new section for Extended Features
- Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
- %ecx == 1).
-
-2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
-
- * config/i386/sse.md: Modify insn vperm{i,f}
- and vshuf{i,f}.
-
-2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/xtensa-opts.h: New header.
- * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
- xtensa_strict_align.
- * config/xtensa/xtensa.cc (xtensa_option_override): When
- -m[no-]strict-align is not specified in the command line set
- xtensa_strict_align to 0 if the hardware supports both unaligned
- loads and stores or to 1 otherwise.
- * config/xtensa/xtensa.opt (mstrict-align): New option.
- * doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
-
-2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
- function.
-
-2023-04-19 Andrew Pinski <apinski@marvell.com>
-
- * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
-
-2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
- (VECTOR_BOOL_MODE): Ditto.
- (ADJUST_NUNITS): Ditto.
- (ADJUST_ALIGNMENT): Ditto.
- (ADJUST_BYTESIZE): Ditto.
- (ADJUST_PRECISION): Ditto.
- (RVV_MODES): Ditto.
- (VECTOR_MODE_WITH_PREFIX): Ditto.
- * config/riscv/riscv-v.cc (ENTRY): Ditto.
- (get_vlmul): Ditto.
- (get_ratio): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
- * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
- (vbool64_t): Ditto.
- (vbool32_t): Ditto.
- (vbool16_t): Ditto.
- (vbool8_t): Ditto.
- (vbool4_t): Ditto.
- (vbool2_t): Ditto.
- (vbool1_t): Ditto.
- (vint8mf8_t): Ditto.
- (vuint8mf8_t): Ditto.
- (vint8mf4_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vuint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vuint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vuint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vuint8m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vuint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vuint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vuint16m4_t): Ditto.
- (vint16m8_t): Ditto.
- (vuint16m8_t): Ditto.
- (vint32mf2_t): Ditto.
- (vuint32mf2_t): Ditto.
- (vint32m1_t): Ditto.
- (vuint32m1_t): Ditto.
- (vint32m2_t): Ditto.
- (vuint32m2_t): Ditto.
- (vint32m4_t): Ditto.
- (vuint32m4_t): Ditto.
- (vint32m8_t): Ditto.
- (vuint32m8_t): Ditto.
- (vint64m1_t): Ditto.
- (vuint64m1_t): Ditto.
- (vint64m2_t): Ditto.
- (vuint64m2_t): Ditto.
- (vint64m4_t): Ditto.
- (vuint64m4_t): Ditto.
- (vint64m8_t): Ditto.
- (vuint64m8_t): Ditto.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vfloat64m1_t): Ditto.
- (vfloat64m2_t): Ditto.
- (vfloat64m4_t): Ditto.
- (vfloat64m8_t): Ditto.
- * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
- * config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
- (riscv_convert_vector_bits): Ditto.
- * config/riscv/riscv.md:
- * config/riscv/vector-iterators.md:
- * config/riscv/vector.md
- (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
- (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
- (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
- (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
- (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
- (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
-
-2023-04-19 Pan Li <pan2.li@intel.com>
-
- * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
- Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
-
-2023-04-19 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/78904
- PR target/78952
- * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
- (*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
- for operand 0. Use any_extract code iterator.
- (*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
- (*cmpqi_ext<mode>_2): Use any_extract code iterator.
- (*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
- (*cmpqi_ext<mode>_1): Use general_operand predicate
- for operand 1. Use any_extract code iterator.
- (*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
- (*cmpqi_ext<mode>_4): Use any_extract code iterator.
-
-2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
- (aarch64_uaddw2<mode>): Delete.
- (aarch64_ssubw2<mode>): Delete.
- (aarch64_usubw2<mode>): Delete.
- (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (do_ds_constraint): Use
- solve_add_graph_edge.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
- split out from ...
- (do_sd_constraint): ... here.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
- rejecting the merge when A contains only a non-local label.
-
-2023-04-19 Uros Bizjak <ubizjak@gmail.com>
-
- * rtl.h (VIRTUAL_REGISTER_P): New predicate.
- (VIRTUAL_REGISTER_NUM_P): Ditto.
- (REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
- * expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
- * function.cc (instantiate_decl_rtl): Ditto.
- * rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
- (nonzero_address_p): Ditto.
- (refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
-
-2023-04-19 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * system.h (auto_mpz::operator->()): New.
- * realmpfr.h (auto_mpfr::operator->()): New.
- * builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
- * real.cc (real_from_string): Likewise.
- (dconst_e_ptr): Likewise.
- (dconst_sqrt2_ptr): Likewise.
- * tree-ssa-loop-niter.cc (refine_value_range_using_guard):
- Use auto_mpz.
- (bound_difference_of_offsetted_base): Likewise.
- (number_of_iterations_ne): Likewise.
- (number_of_iterations_lt_to_ne): Likewise.
- * ubsan.cc: Include realmpfr.h.
- (ubsan_instrument_float_cast): Use auto_mpfr.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (solve_graph): Remove self-copy
- edges, remove edges from escaped after special-casing them.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
- special casing.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (do_sd_constraint): Do not write
- to the LHS varinfo solution member.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (topo_visit): Look at the real
- destination of edges.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/44794
- * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
- If an epilogue loop is required set its iteration upper bound.
-
-2023-04-19 Xi Ruoyao <xry111@xry111.site>
-
- PR target/109465
- * config/loongarch/loongarch-protos.h
- (loongarch_expand_block_move): Add a parameter as alignment RTX.
- * config/loongarch/loongarch.h:
- (LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
- (LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
- (LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
- (LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
- (MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
- LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
- * config/loongarch/loongarch.cc (loongarch_expand_block_move):
- Take the alignment from the parameter, but set it to
- UNITS_PER_WORD if !TARGET_STRICT_ALIGN. Limit the length of
- straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
- instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
- (loongarch_block_move_straight): When there are left-over bytes,
- half the mode size instead of falling back to byte mode at once.
- (loongarch_block_move_loop): Limit the length of loop body with
- LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
- LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
- * config/loongarch/loongarch.md (cpymemsi): Pass the alignment
- to loongarch_expand_block_move.
-
-2023-04-19 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.cc
- (loongarch_setup_incoming_varargs): Don't save more GARs than
- cfun->va_list_gpr_size / UNITS_PER_WORD.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
- no epilogue condition.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- * gimple.h (gimple_assign_load): Outline...
- * gimple.cc (gimple_assign_load): ... here. Avoid
- get_base_address and instead just strip the outermost
- handled component, treating a remaining handled component
- as load.
-
-2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
- definition.
- * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
-
-2023-04-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109011
- * tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
- (vect_recog_popcount_clz_ctz_ffs_pattern): ... this. Handle also
- CLZ, CTZ and FFS. Remove vargs variable, use
- gimple_build_call_internal rather than gimple_build_call_internal_vec.
- (vect_vect_recog_func_ptrs): Adjust popcount entry.
-
-2023-04-19 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109040
- * dse.cc (replace_read): If read_reg is a SUBREG of a word mode
- REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
- a new REG rather than the SUBREG.
-
-2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-
- * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
- New pattern.
-
-2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- PR target/108840
- * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
- ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/109237
- * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
- TREE_VISITED on INSN_VAR_LOCATION_DECL.
- (delete_trivially_dead_insns): Maintain TREE_VISITED on
- active debug bind INSN_VAR_LOCATION_DECL.
-
-2023-04-19 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/109237
- * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
-
-2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
-
- * doc/install.texi (enable-decimal-float): Add AArch64.
-
-2023-04-19 liuhongt <hongtao.liu@intel.com>
-
- PR rtl-optimization/109351
- * ira.cc (setup_class_subset_and_memory_move_costs): Check
- hard_regno_mode_ok before setting lowest memory move cost for
- the mode with different reg classes.
-
-2023-04-18 Jason Merrill <jason@redhat.com>
-
- * doc/invoke.texi: Remove stray @gol.
-
-2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * ifcvt.cc (cond_move_process_if_block): Consider the result of
- targetm.noce_conversion_profitable_p() when replacing the original
- sequence with the converted one.
-
-2023-04-18 Mark Harmstone <mark@harmstone.com>
-
- * common.opt (gcodeview): Add new option.
- * gcc.cc (driver_handle_option); Handle OPT_gcodeview.
- * opts.cc (command_handle_option): Similarly.
- * doc/invoke.texi: Add documentation for -gcodeview.
-
-2023-04-18 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
- (make_pass_phiopt): Make execute out of line.
- (tree_ssa_cs_elim): Move code into ...
- (pass_cselim::execute): here.
-
-2023-04-18 Sam James <sam@gentoo.org>
-
- * system.h: Drop unused INCLUDE_PTHREAD_H.
-
-2023-04-18 Kevin Lee <kevinl@rivosinc.com>
-
- * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
- condition.
-
-2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
-
- * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
- (bswapdi2, bswapsi2): Similarly.
-
-2023-04-18 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/94908
- * config/i386/i386-builtin.def (__builtin_ia32_insertps128):
- Use CODE_FOR_sse4_1_insertps_v4sf.
- * config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
- (expand_vec_perm_1): Call expand_vec_per_insertps.
- * config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
- * config/i386/mmx.md (mmxscalarmode): New mode attribute.
- (@sse4_1_insertps_<mode>): New insn pattern.
- * config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
- pattern from sse4_1_insertps using VI4F_128 mode iterator.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (gt_ggc_mx): New.
- (gt_pch_nx): New.
- * value-range.h (class vrange): Add GTY marker.
- (class frange): Same.
- (gt_ggc_mx): Remove.
- (gt_pch_nx): Remove.
-
-2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
-
- * lra-constraints.cc (constraint_unique): New.
- (process_address_1): Apply constraint_unique test.
- * recog.cc (constrain_operands): Allow relaxed memory
- constaints.
-
-2023-04-18 Kito Cheng <kito.cheng@sifive.com>
-
- * doc/extend.texi (Target Builtins): Add RISC-V Vector
- Intrinsics.
- (RISC-V Vector Intrinsics): Document GCC implemented which
- version of RISC-V vector intrinsics and its reference.
-
-2023-04-18 Richard Biener <rguenther@suse.de>
-
- PR middle-end/108786
- * bitmap.h (bitmap_clear_first_set_bit): New.
- * bitmap.cc (bitmap_first_set_bit_worker): Rename from
- bitmap_first_set_bit and add optional clearing of the bit.
- (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
- (bitmap_clear_first_set_bit): Likewise.
- * df-core.cc (df_worklist_dataflow_doublequeue): Use
- bitmap_clear_first_set_bit.
- * graphite-scop-detection.cc (scop_detection::merge_sese):
- Likewise.
- * sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
- (sanitize_asan_mark_poison): Likewise.
- * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
- * tree-into-ssa.cc (rewrite_blocks): Likewise.
- * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
- * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
-
-2023-04-18 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (dump_sa_stats): Split out from...
- (dump_sa_points_to_info): ... this function.
- (compute_points_to_sets): Guard large dumps with TDF_DETAILS,
- and call dump_sa_stats guarded with TDF_STATS.
- (ipa_pta_execute): Likewise.
- (compute_may_aliases): Guard dump_alias_info with
- TDF_DETAILS|TDF_ALIAS.
-
-2023-04-18 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
- the expression that is being tried when TDF_FOLDING
- is true.
- (phiopt_worker::match_simplify_replacement): Dump
- the sequence which was created by gimple_simplify_phiopt
- when TDF_FOLDING is true.
-
-2023-04-18 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (match_simplify_replacement):
- Simplify code that does the movement slightly.
-
-2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
- define_expand.
- (rev16<mode>2): Rename to...
- (aarch64_rev16<mode>2_alt1): ... This.
- (rev16<mode>2_alt): Rename to...
- (*aarch64_rev16<mode>2_alt2): ... This.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * emit-rtl.cc (init_emit_once): Initialize dconstm0.
- * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
- declaration.
- * range-op-float.cc (zero_range): Use dconstm0.
- (zero_to_inf_range): Same.
- * real.h (dconstm0): New.
- * value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
- (frange::set_zero): Do not declare dconstm0.
-
-2023-04-18 Richard Biener <rguenther@suse.de>
-
- * system.h (class auto_mpz): New,
- * realmpfr.h (class auto_mpfr): Likewise.
- * fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
- (do_mpfr_arg2): Likewise.
- * tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
-
-2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
- builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.cc (frange::operator==): Adjust for NAN.
- (range_tests_nan): Remove some NAN tests.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * inchash.cc (hash::add_real_value): New.
- * inchash.h (class hash): Add add_real_value.
- * value-range.cc (add_vrange): New.
- * value-range.h (inchash::add_vrange): New.
-
-2023-04-18 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109539
- * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
- Re-implement pointer relatedness for PHIs.
-
-2023-04-18 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (SV_SFDF): New iterator.
- (SV_FP): New iterator.
- (scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
- (recip<mode>2): Unify the two patterns using SV_FP.
- (div_scale<mode><exec_vcc>): New insn.
- (div_fmas<mode><exec>): New insn.
- (div_fixup<mode><exec>): New insn.
- (div<mode>3): Unify the two expanders and rewrite using hardfp.
- * config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
- * config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
- and UNSPEC_DIV_FIXUP.
- (vccwait): New attribute.
-
-2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
- if the argument matches that.
-
-2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/atomics.md
- (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
- Use SD_HSDI for destination mode iterator.
-
-2023-04-18 Jin Ma <jinma@linux.alibaba.com>
-
- * common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
- of z-extensions and s-extensions.
- (riscv_subset_list::parse): Likewise.
-
-2023-04-18 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109240
- * match.pd (fneg/fadd): Rewrite such that it handles both plus as
- first vec_perm operand and minus as second using fneg/fadd and
- minus as first vec_perm operand and plus as second using fneg/fsub.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * data-streamer.cc (bp_pack_real_value): New.
- (bp_unpack_real_value): New.
- * data-streamer.h (bp_pack_real_value): New.
- (bp_unpack_real_value): New.
- * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
- bp_unpack_real_value.
- * tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
- bp_pack_real_value.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * wide-int.h (WIDE_INT_MAX_HWIS): New.
- (class fixed_wide_int_storage): Use it.
- (trailing_wide_ints <N>::set_precision): Use it.
- (trailing_wide_ints <N>::extra_size): Use it.
-
-2023-04-18 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch-protos.h
- (loongarch_addu16i_imm12_operand_p): New function prototype.
- (loongarch_split_plus_constant): Likewise.
- * config/loongarch/loongarch.cc
- (loongarch_addu16i_imm12_operand_p): New function.
- (loongarch_split_plus_constant): Likewise.
- * config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
- (DUAL_IMM12_OPERAND): Likewise.
- (DUAL_ADDU16I_OPERAND): Likewise.
- * config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
- constraint.
- * config/loongarch/predicates.md (const_dual_imm12_operand): New
- predicate.
- (const_addu16i_operand): Likewise.
- (const_addu16i_imm12_di_operand): Likewise.
- (const_addu16i_imm12_si_operand): Likewise.
- (plus_di_operand): Likewise.
- (plus_si_operand): Likewise.
- (plus_si_extend_operand): Likewise.
- * config/loongarch/loongarch.md (add<mode>3): Convert to
- define_insn_and_split. Use plus_<mode>_operand predicate
- instead of arith_operand. Add alternatives for La, Lb, Lc, Ld,
- and Le constraints.
- (*addsi3_extended): Convert to define_insn_and_split. Use
- plus_si_extend_operand instead of arith_operand. Add
- alternatives for La and Le alternatives.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (Value_Range::Value_Range): New.
- (Value_Range::contains_p): New.
-
-2023-04-18 Aldy Hernandez <aldyh@redhat.com>
-
- * value-range.h (class vrange): Make m_discriminator const.
- (class irange): Make m_max_ranges const. Adjust constructors
- accordingly.
- (class unsupported_range): Construct vrange appropriately.
- (class frange): Same.
-
-2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
- definition.
-
-2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
-
- * doc/extend.texi: Add section for LoongArch Base Built-in functions.
-
-2023-04-18 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
- readable.
- (riscv_expand_epilogue): Likewise.
-
-2023-04-17 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
- stack allocation.
- (riscv_expand_epilogue): Consider save-restore in stack deallocation.
-
-2023-04-17 Andrew Pinski <apinski@marvell.com>
-
- * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
- prototype.
-
-2023-04-17 Aldy Hernandez <aldyh@redhat.com>
-
- * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
- global ranges.
-
-2023-04-17 Fei Gao <gaofei@eswincomputing.com>
-
- * config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
- parameter remaining_size.
- (riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
- (riscv_expand_prologue): Likewise.
- (riscv_expand_epilogue): Likewise.
-
-2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
-
- * config/riscv/bitmanip.md (rotrsi3_sext): Support generating
- roriw for constant counts.
- * rtl.h (reverse_rotate_by_imm_p): Add function declartion
- * simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
- (simplify_context::simplify_binary_operation_1): Use it.
- * expmed.cc (expand_shift_1): Likewise.
-
-2023-04-17 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/107769
- PR ipa/109318
- * cgraph.h (symtab_node::find_reference): Add parameter use_type.
- * ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
- (ipa_zap_jf_refdesc): New function.
- (ipa_get_jf_pass_through_refdesc_decremented): Likewise.
- (ipa_set_jf_pass_through_refdesc_decremented): Likewise.
- * ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
- the new parameter of find_reference.
- (adjust_references_in_caller): Likewise. Make sure the constant jump
- function is not used to decrement a refdec counter again. Only
- decrement refdesc counters when the pass_through jump function allows
- it. Added a detailed dump when decrementing refdesc counters.
- * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
- (ipa_set_jf_simple_pass_through): Initialize the new flag.
- (ipa_set_jf_unary_pass_through): Likewise.
- (ipa_set_jf_arith_pass_through): Likewise.
- (remove_described_reference): Provide a value for the new parameter of
- find_reference.
- (update_jump_functions_after_inlining): Zap refdesc of new jfunc if
- the previous pass_through had a flag mandating that we do so.
- (propagate_controlled_uses): Likewise. Only decrement refdesc
- counters when the pass_through jump function allows it.
- (ipa_edge_args_sum_t::duplicate): Provide a value for the new
- parameter of find_reference.
- (ipa_write_jump_function): Assert the new flag does not have to be
- streamed.
- * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
- it in searching.
-
-2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
- Di Zhao <di.zhao@amperecomputing.com>
-
- * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
- Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
- * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
- Check for the above tuning option when processing loads.
-
-2023-04-17 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109524
- * tree-vrp.cc (remove_unreachable::m_list): Change to a
- vector of pairs of block indices.
- (remove_unreachable::maybe_register_block): Adjust.
- (remove_unreachable::remove_and_update_globals): Likewise.
- Deal with removed blocks.
-
-2023-04-16 Jeff Law <jlaw@ventanamicro>
-
- PR target/109508
- * config/riscv/riscv.cc (riscv_expand_conditional_move): For
- TARGET_SFB_ALU, force the true arm into a register.
-
-2023-04-15 John David Anglin <danglin@gcc.gnu.org>
-
- PR target/104989
- * config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
- * config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
- size is zero.
- (pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
- (pa_function_arg_size): Change return type to int. Return zero
- for arguments larger than 1 GB. Update comments.
-
-2023-04-15 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109154
- * tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
- args_len - 1 COND_EXPRs rather than args_len. Formatting fix.
-
-2023-04-15 Jason Merrill <jason@redhat.com>
-
- PR c++/109514
- * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
- Overhaul lhs_ref.ref analysis.
-
-2023-04-14 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109502
- * tree-vect-stmts.cc (vectorizable_assignment): Fix
- check for conversion between mask and non-mask types.
-
-2023-04-14 Jeff Law <jlaw@ventanamicro.com>
- Jakub Jelinek <jakub@redhat.com>
-
- PR target/108947
- PR target/109040
- * combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
- word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
- smaller than word_mode.
- * simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
- <case AND>: Likewise.
-
-2023-04-14 Jakub Jelinek <jakub@redhat.com>
-
- * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
- of GEN_INT.
-
-2023-04-13 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108139
- PR tree-optimization/109462
- * gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
- equivalency check for PHI nodes.
- * gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
- does not dominate single-arg equivalency edges.
-
-2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/108910
- * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
- not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
-
-2023-04-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109491
- * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
- NULL operands test.
-
-2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109479
- * config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
- (vint16mf4_t): Ditto.
- (vint32mf2_t): Ditto.
- (vint64m1_t): Ditto.
- (vint64m2_t): Ditto.
- (vint64m4_t): Ditto.
- (vint64m8_t): Ditto.
- (vuint8mf8_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vuint32mf2_t): Ditto.
- (vuint64m1_t): Ditto.
- (vuint64m2_t): Ditto.
- (vuint64m4_t): Ditto.
- (vuint64m8_t): Ditto.
- (vfloat32mf2_t): Ditto.
- (vbool64_t): Ditto.
- * config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
- (register_vector_type): Ditto.
- (check_required_extensions): Fix condition.
- * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
- (RVV_REQUIRE_ELEN_64): New define.
- (RVV_REQUIRE_MIN_VLEN_64): Ditto.
- * config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
- (TARGET_VECTOR_FP64): Ditto.
- (ENTRY): Fix predicate.
- * config/riscv/vector-iterators.md: Fix predicate.
-
-2023-04-12 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109410
- * tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
- block if first statement of the function is a call to returns_twice
- function.
-
-2023-04-12 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109458
- * config/i386/i386.cc: Include rtl-error.h.
- (ix86_print_operand): For z modifier warning, use warning_for_asm
- if this_is_asm_operands. For Z modifier errors, use %c and code
- instead of hardcoded Z.
-
-2023-04-12 Costas Argyris <costas.argyris@gmail.com>
-
- * config/i386/x-mingw32-utf8: Remove extrataneous $@
-
-2023-04-12 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109462
- * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
- check for equivalences if NAME is a phi node.
-
-2023-04-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109473
- * tree-vect-loop.cc (vect_create_epilog_for_reduction):
- Convert scalar result to the computation type before performing
- the reduction adjustment.
-
-2023-04-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109469
- * tree-vect-slp.cc (vect_slp_function): Skip region starts with
- a returns-twice call.
-
-2023-04-12 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109434
- * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
- handle possibly throwing calls when processing the LHS
- and may-defs are not OK.
-
-2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
-
- * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
- predicate to avoid splitting arith constants.
-
-2023-04-11 Yanzhang Wang <yanzhang.wang@intel.com>
- Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- Kito Cheng <kito.cheng@sifive.com>
-
- PR target/109104
- * config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
- * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
- (emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
- * config/riscv/riscv.cc (vector_zero_call_used_regs): New.
- (riscv_zero_call_used_regs): New.
- (TARGET_ZERO_CALL_USED_REGS): New.
-
-2023-04-11 Martin Liska <mliska@suse.cz>
-
- PR driver/108241
- * opts.cc (finish_options): Drop also
- x_flag_var_tracking_assignments.
-
-2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/108888
- * tree-if-conv.cc (predicate_statements): Fix gimple call check.
-
-2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
-
- PR target/108812
- * config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
- (vsx_sign_extend_v16qi_<mode>): ... this.
- (vsx_sign_extend_hi_<mode>): Rename to...
- (vsx_sign_extend_v8hi_<mode>): ... this.
- (vsx_sign_extend_si_v2di): Rename to...
- (vsx_sign_extend_v4si_v2di): ... this.
- (vsignextend_qi_<mode>): Remove.
- (vsignextend_hi_<mode>): Remove.
- (vsignextend_si_v2di): Remove.
- (vsignextend_v2di_v1ti): Remove.
- (*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
- gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
- with gen_vsx_sign_extend_v16qi_v4si.
- * config/rs6000/rs6000.md (split for DI constant generation):
- Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
- (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
- with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
- with gen_vsx_sign_extend_v16qi_si.
- * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
- Set bif-pattern to vsx_sign_extend_v16qi_v2di.
- (__builtin_altivec_vsignextsb2w): Set bif-pattern to
- vsx_sign_extend_v16qi_v4si.
- (__builtin_altivec_visgnextsh2d): Set bif-pattern to
- vsx_sign_extend_v8hi_v2di.
- (__builtin_altivec_vsignextsh2w): Set bif-pattern to
- vsx_sign_extend_v8hi_v4si.
- (__builtin_altivec_vsignextsw2d): Set bif-pattern to
- vsx_sign_extend_si_v2di.
- (__builtin_altivec_vsignext): Set bif-pattern to
- vsx_sign_extend_v2di_v1ti.
- * config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
- gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
- gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
- gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
-
-2023-04-10 Michael Meissner <meissner@linux.ibm.com>
-
- PR target/70243
- * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
- (vsx_nfmsv4sf4): Do not generate vnmsubfp.
-
-2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
-
- * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
-
-2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
-
- * common/config/i386/cpuinfo.h (get_available_features):
- Detect AMX-COMPLEX.
- * common/config/i386/i386-common.cc
- (OPTION_MASK_ISA2_AMX_COMPLEX_SET,
- OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
- (ix86_handle_option): Handle -mamx-complex.
- * common/config/i386/i386-cpuinfo.h (enum processor_features):
- Add FEATURE_AMX_COMPLEX.
- * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
- amx-complex.
- * config.gcc: Add amxcomplexintrin.h.
- * config/i386/cpuid.h (bit_AMX_COMPLEX): New.
- * config/i386/i386-c.cc (ix86_target_macros_internal): Define
- __AMX_COMPLEX__.
- * config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
- * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
- Handle amx-complex.
- * config/i386/i386.opt: Add option -mamx-complex.
- * config/i386/immintrin.h: Include amxcomplexintrin.h.
- * doc/extend.texi: Document amx-complex.
- * doc/invoke.texi: Document -mamx-complex.
- * doc/sourcebuild.texi: Document target amx-complex.
- * config/i386/amxcomplexintrin.h: New file.
-
-2023-04-08 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109392
- * tree-vect-generic.cc (tree_vec_extract): Handle failure
- of maybe_push_res_to_seq better.
-
-2023-04-08 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
- poly-int-types.h.
- (SYSTEM_H): Depend on $(HASHTAB_H).
- * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
- dependency on $(RTL_BASE_H), remove redundant dependency on
- insn-modes.h.
-
-2023-04-06 Richard Earnshaw <rearnsha@arm.com>
-
- PR target/107674
- * config/arm/arm.cc (arm_effective_regno): New function.
- (mve_vector_mem_operand): Use it.
-
-2023-04-06 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109417
- * gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
- dependency is in SSA_NAME_FREE_LIST.
-
-2023-04-06 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/109427
- * params.opt (-param=vect-induction-float=):
- Fix option attribute typo for IntegerRange.
-
-2023-04-05 Jeff Law <jlaw@ventanamicro>
-
- PR target/108892
- * combine.cc (combine_instructions): Force re-recognition when
- after restoring the body of an insn to its original form.
-
-2023-04-05 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/108959
- * ipa-sra.cc (zap_useless_ipcp_results): New function.
- (process_isra_node_results): Call it.
-
-2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix incorrect operand order.
-
-2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc
- (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
- demand fusion.
-
-2023-04-05 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins.def: Fix typo.
- * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
- * config/riscv/vector-iterators.md: Ditto.
-
-2023-04-04 Hans-Peter Nilsson <hp@axis.com>
-
- * doc/md.texi (Including Patterns): Fix page break.
-
-2023-04-04 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109386
- * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
- foperator_le::op1_range, foperator_le::op2_range,
- foperator_gt::op1_range, foperator_gt::op2_range,
- foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
- BRS_FALSE case even if the other op is maybe_isnan, not just
- known_isnan.
- (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
- foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
- foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
- foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
- Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
- not just known_isnan.
-
-2023-04-04 Marek Polacek <polacek@redhat.com>
-
- PR sanitizer/109107
- * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
- when associating.
- * match.pd: Use TYPE_OVERFLOW_SANITIZED.
-
-2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
-
- * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
- (mve_vcreateq_f<mode>): Swap operands.
-
-2023-04-04 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
-
-2023-04-04 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109384
- * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
- Reword diagnostics about zfinx conflict with f, formatting fixes.
-
-2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
-
-2023-04-04 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109304
- * tree-profile.cc (tree_profiling): Use symtab node
- availability to decide whether to skip adjusting calls.
- Do not adjust calls to internal functions.
-
-2023-04-04 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/108807
- * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
- function for permutation control vector by considering big endianness.
-
-2023-04-04 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/108699
- * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
- (rs6000_vprtyb<mode>2): ... this.
- * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
- rs6000_vprtybv2di2.
- (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
- (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
- * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
- popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
-
-2023-04-04 Hans-Peter Nilsson <hp@axis.com>
- Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/md.texi (Insn Splitting): Tweak wording for readability.
-
-2023-04-03 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/109303
- * ipa-prop.cc (determine_known_aggregate_parts): Check that the
- offset + size will be representable in unsigned int.
-
-2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * configure.ac (ZSTD_LIB): Move before zstd.h check.
- Unset gcc_cv_header_zstd_h without libzstd.
- * configure: Regenerate.
-
-2023-04-03 Martin Liska <mliska@suse.cz>
-
- * doc/invoke.texi: Document new param.
-
-2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
-
- * doc/sourcebuild.texi (const_volatile_readonly_section): Document
- new check_effective_target function.
-
-2023-04-03 Li Xu <xuli1@eswincomputing.com>
-
- * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
- (vfloat32m8_t): Likewise
-
-2023-04-03 liuhongt <hongtao.liu@intel.com>
-
- * doc/md.texi: Document signbitm2.
-
-2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/vector.md: Fix RA constraint.
-
-2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
- * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
- * config/riscv/vector.md: Fix scalar move bug.
-
-2023-04-01 Jakub Jelinek <jakub@redhat.com>
-
- * range-op-float.cc (foperator_equal::fold_range): If at least
- one of the op ranges is not singleton and neither is NaN and all
- 4 bounds are zero, return [1, 1].
- (foperator_not_equal::fold_range): In the same case return [0, 0].
-
-2023-04-01 Jakub Jelinek <jakub@redhat.com>
-
- * range-op-float.cc (foperator_equal::fold_range): Perform the
- non-singleton handling regardless of maybe_isnan (op1, op2).
- (foperator_not_equal::fold_range): Likewise.
- (foperator_lt::fold_range, foperator_le::fold_range,
- foperator_gt::fold_range, foperator_ge::fold_range): Perform the
- real_* comparison check which results in range_false (type)
- even if maybe_isnan (op1, op2). Simplify.
- (foperator_ltgt): New class.
- (fop_ltgt): New variable.
- (floating_op_table::floating_op_table): Handle LTGT_EXPR using
- fop_ltgt.
-
-2023-04-01 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109254
- * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
- returns VOIDmode, handle it like if the register isn't used for
- passing arguments at all.
- (apply_result_size): If targetm.calls.get_raw_result_mode returns
- VOIDmode, handle it like if the register isn't used for returning
- results at all.
- * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
- means to return VOIDmode.
- * doc/tm.texi: Regenerated.
- * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
- TARGET_SVE for P0_REGNUM.
- (aarch64_function_arg_regno_p): Also return true for p0-p3.
- (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
-
-2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc: (combine_reload_insn): New function.
-
-2023-03-31 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/91645
- * range-op-float.cc (foperator_unordered_lt::fold_range,
- foperator_unordered_le::fold_range,
- foperator_unordered_gt::fold_range,
- foperator_unordered_ge::fold_range,
- foperator_unordered_equal::fold_range): Call the ordered
- fold_range on ranges with cleared NaNs.
- * value-query.cc (range_query::get_tree_range): Handle also
- COMPARISON_CLASS_P trees.
-
-2023-03-31 Kito Cheng <kito.cheng@sifive.com>
- Andrew Pinski <pinskia@gmail.com>
-
- PR target/109328
- * config/riscv/t-riscv: Add missing dependencies.
-
-2023-03-31 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386.cc (inline_memory_move_cost): Return 100
- for MASK_REGS when MODE_SIZE > 8.
-
-2023-03-31 liuhongt <hongtao.liu@intel.com>
-
- PR target/85048
- * config/i386/i386-builtin.def (BDESC): Adjust icode name from
- ufloat/ufix to floatuns/fixuns.
- * config/i386/i386-expand.cc
- (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
- * config/i386/sse.md
- (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
- Renamed to ..
- (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
- (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
- Renamed to ..
- (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
- .. this.
- (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
- Renamed to ..
- (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
- (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
- (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
- (ufloatv2siv2df2<mask_name>): Renamed to ..
- (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
- (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
- Renamed to ..
- (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
- .. this.
- (ufix_notruncv2dfv2si2): Renamed to ..
- (fixuns_notruncv2dfv2si2):.. this.
- (ufix_notruncv2dfv2si2_mask): Renamed to ..
- (fixuns_notruncv2dfv2si2_mask): .. this.
- (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
- (*fixuns_notruncv2dfv2si2_mask_1): .. this.
- (ufix_truncv2dfv2si2): Renamed to ..
- (*fixuns_truncv2dfv2si2): .. this.
- (ufix_truncv2dfv2si2_mask): Renamed to ..
- (fixuns_truncv2dfv2si2_mask): .. this.
- (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
- (*fixuns_truncv2dfv2si2_mask_1): .. this.
- (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
- (fixuns_truncv4dfv4si2<mask_name>): .. this.
- (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
- Renamed to ..
- (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
- .. this.
- (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
- (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
- .. this.
-
-2023-03-30 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109154
- * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
- * gimple-range-gori.h (may_recompute_p): Add depth param.
- * params.opt (ranger-recompute-depth): New param.
-
-2023-03-30 Jason Merrill <jason@redhat.com>
-
- PR c++/107897
- PR c++/108887
- * cgraph.h: Move reset() from cgraph_node to symtab_node.
- * cgraphunit.cc (symtab_node::reset): Adjust. Also call
- remove_from_same_comdat_group.
-
-2023-03-30 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/107561
- * gimple-ssa-warn-access.cc (get_size_range): Add flags
- argument and pass it on.
- (check_access): When querying for the size range pass
- SR_ALLOW_ZERO when the known destination size is zero.
-
-2023-03-30 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109342
- * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
- overload for edge. When that edge is a backedge use
- dominated_by_p directly.
-
-2023-03-30 liuhongt <hongtao.liu@intel.com>
-
- * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
- vpblendd instead of vpblendw for V4SI under avx2.
-
-2023-03-29 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
- for many quick operands, for register-sized modes.
-
-2023-03-29 Jiawei <jiawei@iscas.ac.cn>
-
- * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
- New check.
-
-2023-03-29 Martin Liska <mliska@suse.cz>
-
- PR bootstrap/109310
- * configure.ac: Emit a warning for deprecated option
- --enable-link-mutex.
- * configure: Regenerate.
-
-2023-03-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109331
- * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
- discover a taken edge make sure to cleanup the CFG.
-
-2023-03-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109327
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
- already removed stmts when draining to_remove.
-
-2023-03-29 Richard Biener <rguenther@suse.de>
-
- PR ipa/106124
- * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
- so we can re-create the DIE for the type if required.
-
-2023-03-29 Jakub Jelinek <jakub@redhat.com>
- Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109301
- * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
- properties_provided from PROP_gimple_opt_math to 0.
- (pass_data_expand_powcabs): Change properties_provided from 0 to
- PROP_gimple_opt_math.
-
-2023-03-29 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109154
- * tree-if-conv.cc (gen_phi_arg_condition): Handle single
- inverted condition specially by inverting at the caller.
- (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
-
-2023-03-28 David Malcolm <dmalcolm@redhat.com>
-
- PR c/107002
- * diagnostic-show-locus.cc (column_range::column_range): Factor
- out assertion conditional into...
- (column_range::valid_p): ...this new function.
- (line_corrections::add_hint): Don't attempt to consolidate hints
- if it would lead to invalid column_range instances.
-
-2023-03-28 Kito Cheng <kito.cheng@sifive.com>
-
- PR target/109312
- * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
- (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
- minor refactor.
-
-2023-03-28 Alexander Monakov <amonakov@ispras.ru>
-
- PR rtl-optimization/109187
- * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
- subtraction in three-way comparison.
-
-2023-03-28 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109265
- PR tree-optimization/109274
- * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
- not create a relation record is op1 and op2 are the same symbol.
- (gori_compute::compute_operand1_range): Pass op1 == op2 to the
- handler for this stmt, but create a new record only if this statement
- generates a relation based on the ranges.
- (gori_compute::compute_operand2_range): Ditto.
- * value-relation.h (value_relation::set_relation): Always create the
- record that is requested.
-
-2023-03-28 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/107087
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
- executable regions to avoid useless work and to better
- propagate degenerate PHIs.
-
-2023-03-28 Costas Argyris <costas.argyris@gmail.com>
-
- * config/i386/x-mingw32-utf8: update comments.
-
-2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/109072
- * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
- * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
- variable.
- * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
- New function.
- (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
- after inlining. Record which decls are loaded from. Fix handling
- of vops for loads and stores.
- * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
- (aarch64_accesses_vector_load_decl_p): Likewise.
- (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
- variable.
- (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
- that loads from a decl, treat vector stores to those decls as
- zero cost.
- (aarch64_vector_costs::finish_cost): ...and in that case,
- if the vector code does nothing more than a store, give the
- prologue a zero cost as well.
-
-2023-03-28 Richard Biener <rguenther@suse.de>
-
- PR bootstrap/84402
- PR tree-optimization/108129
- * genmatch.cc (lower_for): For (match ...) delay
- substituting into the match operator if possible.
- (dt_operand::gen_gimple_expr): For user_id look at the
- first substitute for determining how to access operands.
- (dt_operand::gen_generic_expr): Likewise.
- (dt_node::gen_kids): Properly sort user_ids according
- to their substitutes.
- (dt_node::gen_kids_1): Code-generate user_id matching.
-
-2023-03-28 Jakub Jelinek <jakub@redhat.com>
- Jonathan Wakely <jwakely@redhat.com>
-
- * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
- Use subcommand rather than sub-command in function comments.
-
-2023-03-28 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109154
- * value-range.h (frange::flush_denormals_to_zero): Make it public
- rather than private.
- * value-range.cc (frange::set): Don't call flush_denormals_to_zero
- here.
- * range-op-float.cc (range_operator_float::fold_range): Call
- flush_denormals_to_zero.
-
-2023-03-28 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/106190
- * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
- of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
-
-2023-03-28 Jakub Jelinek <jakub@redhat.com>
-
- * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
- as 4th argument to set to avoid clear_nan and union_ calls.
-
-2023-03-28 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109276
- * config/i386/i386.cc (assign_386_stack_local): For DImode
- with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
- align 32 rather than 0 to assign_stack_local.
-
-2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
-
- PR target/109140
- * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
- on operand #3 to get the final condition code. Use std::swap.
- * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
- (fucmp<gcond:code>8<P:mode>_vis): Move around.
- (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
- (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
-
-2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
-
- * doc/gm2.texi: Add missing Next, Previous and Top fields to most
- top-level sections.
-
-2023-03-28 Costas Argyris <costas.argyris@gmail.com>
-
- * config.host: Pull in i386/x-mingw32-utf8 Makefile
- fragment and reference utf8rc-mingw32.o explicitly
- for mingw hosts.
- * config/i386/sym-mingw32.cc: prevent name mangling of
- stub symbol.
- * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
- depend on manifest file explicitly.
-
-2023-03-28 Richard Biener <rguenther@suse.de>
-
- Revert:
- 2023-03-27 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/109237
- * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
-
-2023-03-28 Richard Biener <rguenther@suse.de>
-
- * common.opt (gdwarf): Remove Negative(gdwarf-).
-
-2023-03-28 Richard Biener <rguenther@suse.de>
-
- * common.opt (gdwarf): Add RejectNegative.
- (gdwarf-): Likewise.
- (ggdb): Likewise.
- (gvms): Likewise.
-
-2023-03-28 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/constraints.md ("T"): Correct to
- define_memory_constraint.
-
-2023-03-28 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md (BW2): New mode-iterator.
- (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
- peephole2s.
-
-2023-03-28 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
- for possible eliminable compares.
-
-2023-03-28 Hans-Peter Nilsson <hp@axis.com>
-
- * config/cris/constraints.md ("R"): Remove unused constraint.
-
-2023-03-27 Jonathan Wakely <jwakely@redhat.com>
-
- PR gcov-profile/109297
- * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
- (merge_stream_usage): Likewise.
- (overlap_usage): Likewise.
-
-2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
-
- PR target/109296
- * config/riscv/thead.md: Add missing mode specifiers.
-
-2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
- Jiangning Liu <jiangning.liu@amperecomputing.com>
- Manolis Tsamis <manolis.tsamis@vrull.eu>
-
- * config/aarch64/aarch64.cc: Update vector costs for ampere1.
-
-2023-03-27 Richard Biener <rguenther@suse.de>
-
- PR rtl-optimization/109237
- * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
-
-2023-03-27 Richard Biener <rguenther@suse.de>
-
- PR lto/109263
- * lto-wrapper.cc (run_gcc): Parse alternate debug options
- as well, they always enable debug.
-
-2023-03-27 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/109167
- * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
- from ...
- (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
-
-2023-03-27 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/109082
- * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
- than zero when calling vec_sld.
- (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
- zero when calling vec_sld.
- (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
- than zero when calling vec_sld.
-
-2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
- OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
- loops are represented and which fields are vectors. Add
- documentation for OMP_FOR_PRE_BODY field. Document internal
- form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
- * tree.def (OMP_FOR): Make documentation consistent with the
- Texinfo manual, to fill some gaps and correct errors.
-
-2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
-
- PR target/106282
- * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
- * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
- (handle_move_double): Call it before handle_movsi.
- * config/m68k/m68k-protos.h: Declare it.
-
-2023-03-26 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109230
- * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
-
-2023-03-26 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/105685
- * predict.cc (compute_function_frequency): Don't call
- warn_function_cold if function already has cold attribute.
-
-2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/install.texi: Remove anachronistic note
- related to languages built and separate source tarballs.
-
-2023-03-25 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/109098
- * diagnostic-format-sarif.cc (read_until_eof): Delete.
- (maybe_read_file): Delete.
- (sarif_builder::maybe_make_artifact_content_object): Use
- get_source_file_content rather than maybe_read_file.
- Reject it if it's not valid UTF-8.
- * input.cc (file_cache_slot::get_full_file_content): New.
- (get_source_file_content): New.
- (selftest::check_cpp_valid_utf8_p): New.
- (selftest::test_cpp_valid_utf8_p): New.
- (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
- * input.h (get_source_file_content): New prototype.
-
-2023-03-24 David Malcolm <dmalcolm@redhat.com>
-
- * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
- debugging options.
- (Special Functions for Debugging the Analyzer): Convert to a
- table, and rewrite in places.
- (Other Debugging Techniques): Add notes on how to compare two
- different exploded graphs.
-
-2023-03-24 David Malcolm <dmalcolm@redhat.com>
-
- PR other/109163
- * json.cc: Update comments to indicate that we now preserve
- insertion order of keys within objects.
- (object::print): Traverse keys in insertion order.
- (object::set): Preserve insertion order of keys.
- (selftest::test_writing_objects): Add an additional key to verify
- that we preserve insertion order.
- * json.h (object::m_keys): New field.
-
-2023-03-24 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109238
- * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
- predecessors which this block dominates.
-
-2023-03-24 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/106912
- * tree-profile.cc (tree_profiling): Update stmts only when
- profiling or testing coverage. Make sure to update calls
- fntype, stripping 'const' there.
-
-2023-03-24 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/109258
- * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
- if target == const0_rtx.
-
-2023-03-24 Alexandre Oliva <oliva@adacore.com>
-
- * doc/sourcebuild.texi (weak_undefined, posix_memalign):
- Document options and effective targets.
-
-2023-03-24 Costas Argyris <costas.argyris@gmail.com>
-
- * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
- optional.
-
-2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
-
- * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
- non-earlyclobber alternative.
-
-2023-03-23 Andrew Pinski <apinski@marvell.com>
-
- PR c/84900
- * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
- as a lvalue.
-
-2023-03-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/107569
- * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
- Do not push SSA names with zero uses as available leader.
- (process_bb): Likewise.
-
-2023-03-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109262
- * tree-ssa-forwprop.cc (pass_forwprop::execute): When
- combining a piecewise complex load avoid touching loads
- that throw internally. Use fun, not cfun throughout.
-
-2023-03-23 Jakub Jelinek <jakub@redhat.com>
-
- * value-range.cc (irange::irange_union, irange::intersect): Fix
- comment spelling bugs.
- * gimple-range-trace.cc (range_tracer::do_header): Likewise.
- * gimple-range-trace.h: Likewise.
- * gimple-range-edge.cc: Likewise.
- (gimple_outgoing_range_stmt_p,
- gimple_outgoing_range::switch_edge_range,
- gimple_outgoing_range::edge_range_p): Likewise.
- * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
- gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
- assume_query::assume_query, assume_query::calculate_phi): Likewise.
- * gimple-range-edge.h: Likewise.
- * value-range.h (Value_Range::set, Value_Range::lower_bound,
- Value_Range::upper_bound, frange::set_undefined): Likewise.
- * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
- gori_compute): Likewise.
- * gimple-range-fold.h (fold_using_range): Likewise.
- * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
- Likewise.
- * gimple-range-gori.cc (range_def_chain::in_chain_p,
- range_def_chain::dump, gori_map::calculate_gori,
- gori_compute::compute_operand_range_switch,
- gori_compute::logical_combine, gori_compute::refine_using_relation,
- gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
- Likewise.
- * gimple-range.h: Likewise.
- (enable_ranger): Likewise.
- * range-op.h (empty_range_varying): Likewise.
- * value-query.h (value_query): Likewise.
- * gimple-range-cache.cc (block_range_cache::set_bb_range,
- block_range_cache::dump, ssa_global_cache::clear_global_range,
- temporal_cache::temporal_value, temporal_cache::current_p,
- ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
- ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
- Likewise.
- * gimple-range-fold.cc (fur_edge::get_phi_operand,
- fur_stmt::get_operand, gimple_range_adjustment,
- fold_using_range::range_of_phi,
- fold_using_range::relation_fold_and_or): Likewise.
- * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
- * value-query.cc (range_query::value_of_expr,
- range_query::value_on_edge, range_query::query_relation): Likewise.
- * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
- intersect_range_with_nonzero_bits): Likewise.
- * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
- exit_range): Likewise.
- * value-relation.h: Likewise.
- (equiv_oracle, relation_trio::relation_trio, value_relation,
- value_relation::value_relation, pe_min): Likewise.
- * range-op-float.cc (range_operator_float::rv_fold,
- frange_arithmetic, foperator_unordered_equal::op1_range,
- foperator_div::rv_fold): Likewise.
- * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
- * value-relation.cc (equiv_oracle::query_relation,
- equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
- value_relation::apply_transitive, relation_chain_head::find_relation,
- dom_oracle::query_relation, dom_oracle::find_relation_block,
- dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
- * range-op.cc (range_operator::wi_fold_in_parts_equiv,
- create_possibly_reversed_range, adjust_op1_for_overflow,
- operator_mult::wi_fold, operator_exact_divide::op1_range,
- operator_cast::lhs_op1_relation, operator_cast::fold_pair,
- operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
- range_op_lshift_tests): Likewise.
-
-2023-03-23 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
- (move_callee_saved_registers): Detect the bug condition early.
-
-2023-03-23 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
- * config/gcn/gcn-valu.md (V_1REG_ALT): New.
- (V_2REG_ALT): New.
- (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
- (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
- (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
- * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
- * config/gcn/predicates.md (ascending_zero_int_parallel): New.
-
-2023-03-23 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109176
- * tree-vect-generic.cc (expand_vector_condition): If a has
- vector boolean type and is a comparison, also check if both
- the comparison and VEC_COND_EXPR could be successfully expanded
- individually.
-
-2023-03-23 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- PR target/108654
- PR target/108185
- * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
- for vector mask modes.
- * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
- * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
-
-2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
-
- * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
-
-2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109244
- * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
- (emit_vlmax_op): Ditto.
- * config/riscv/riscv-v.cc (get_sew): New function.
- (emit_vlmax_vsetvl): Adapt function.
- (emit_pred_op): Ditto.
- (emit_vlmax_op): Ditto.
- (emit_nonvlmax_op): Ditto.
- (legitimize_move): Fix LRA ICE.
- (gen_no_side_effects_vsetvl_rtx): Adapt function.
- * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
- (@mov<VB:mode><P:mode>_lra): Ditto.
- (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
- (*mov<VB:mode><P:mode>_lra): Ditto.
-
-2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109228
- * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
- __riscv_vlenb support.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc: Ditto.
-
-2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
- (pass_vsetvl::compute_local_backward_infos): Fix bugs.
- (pass_vsetvl::need_vsetvl): Fix bugs.
- (pass_vsetvl::backward_demand_fusion): Fix bugs.
- (pass_vsetvl::demand_fusion): Fix bugs.
- (eliminate_insn): Fix bugs.
- (insert_vsetvl): Ditto.
- (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
- * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
- * config/riscv/vector-iterators.md (nmsac): Ditto.
- (nmsub): Ditto.
- (msac): Ditto.
- (msub): Ditto.
- (nmadd): Ditto.
- (nmacc): Ditto.
- * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
- (@pred_mul_plus<mode>): Ditto.
- (*pred_madd<mode>): Ditto.
- (*pred_macc<mode>): Ditto.
- (*pred_mul_plus<mode>): Ditto.
- (@pred_mul_plus<mode>_scalar): Ditto.
- (*pred_madd<mode>_scalar): Ditto.
- (*pred_macc<mode>_scalar): Ditto.
- (*pred_mul_plus<mode>_scalar): Ditto.
- (*pred_madd<mode>_extended_scalar): Ditto.
- (*pred_macc<mode>_extended_scalar): Ditto.
- (*pred_mul_plus<mode>_extended_scalar): Ditto.
- (@pred_minus_mul<mode>): Ditto.
- (*pred_<madd_nmsub><mode>): Ditto.
- (*pred_nmsub<mode>): Ditto.
- (*pred_<macc_nmsac><mode>): Ditto.
- (*pred_nmsac<mode>): Ditto.
- (*pred_mul_<optab><mode>): Ditto.
- (*pred_minus_mul<mode>): Ditto.
- (@pred_mul_<optab><mode>_scalar): Ditto.
- (@pred_minus_mul<mode>_scalar): Ditto.
- (*pred_<madd_nmsub><mode>_scalar): Ditto.
- (*pred_nmsub<mode>_scalar): Ditto.
- (*pred_<macc_nmsac><mode>_scalar): Ditto.
- (*pred_nmsac<mode>_scalar): Ditto.
- (*pred_mul_<optab><mode>_scalar): Ditto.
- (*pred_minus_mul<mode>_scalar): Ditto.
- (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
- (*pred_nmsub<mode>_extended_scalar): Ditto.
- (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
- (*pred_nmsac<mode>_extended_scalar): Ditto.
- (*pred_mul_<optab><mode>_extended_scalar): Ditto.
- (*pred_minus_mul<mode>_extended_scalar): Ditto.
- (*pred_<madd_msub><mode>): Ditto.
- (*pred_<macc_msac><mode>): Ditto.
- (*pred_<madd_msub><mode>_scalar): Ditto.
- (*pred_<macc_msac><mode>_scalar): Ditto.
- (@pred_neg_mul_<optab><mode>): Ditto.
- (@pred_mul_neg_<optab><mode>): Ditto.
- (*pred_<nmadd_msub><mode>): Ditto.
- (*pred_<nmsub_nmadd><mode>): Ditto.
- (*pred_<nmacc_msac><mode>): Ditto.
- (*pred_<nmsac_nmacc><mode>): Ditto.
- (*pred_neg_mul_<optab><mode>): Ditto.
- (*pred_mul_neg_<optab><mode>): Ditto.
- (@pred_neg_mul_<optab><mode>_scalar): Ditto.
- (@pred_mul_neg_<optab><mode>_scalar): Ditto.
- (*pred_<nmadd_msub><mode>_scalar): Ditto.
- (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
- (*pred_<nmacc_msac><mode>_scalar): Ditto.
- (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
- (*pred_neg_mul_<optab><mode>_scalar): Ditto.
- (*pred_mul_neg_<optab><mode>_scalar): Ditto.
- (@pred_widen_neg_mul_<optab><mode>): Ditto.
- (@pred_widen_mul_neg_<optab><mode>): Ditto.
- (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
- (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
-
-2023-03-23 liuhongt <hongtao.liu@intel.com>
-
- * builtins.cc (builtin_memset_read_str): Replace
- targetm.gen_memset_scratch_rtx with gen_reg_rtx.
- (builtin_memset_gen_str): Ditto.
- * config/i386/i386-expand.cc
- (ix86_convert_const_wide_int_to_broadcast): Replace
- ix86_gen_scratch_sse_rtx with gen_reg_rtx.
- (ix86_expand_vector_move): Ditto.
- * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
- Removed.
- * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
- (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
- * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
- * doc/tm.texi.in: Ditto.
- * target.def: Ditto.
-
-2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra.cc (lra): Do not repeat inheritance and live range splitting
- when asm error is found.
-
-2023-03-22 Andrew Jenner <andrew@codesourcery.com>
-
- * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
- (gcn_expand_dpp_distribute_even_insn)
- (gcn_expand_dpp_distribute_odd_insn): Declare.
- * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
- (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
- (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
- (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
- (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
- (fms<mode>4_negop2): New patterns.
- * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
- (gcn_expand_dpp_distribute_even_insn)
- (gcn_expand_dpp_distribute_odd_insn): New functions.
- * config/gcn/gcn.md: Add entries to unspec enum.
-
-2023-03-22 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/109008
- * value-range.cc (frange::set): Add nan_state argument.
- * value-range.h (class nan_state): New.
- (frange::get_nan_state): New.
-
-2023-03-22 Martin Liska <mliska@suse.cz>
-
- * configure: Regenerate.
-
-2023-03-21 Joseph Myers <joseph@codesourcery.com>
-
- * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
- to variants.
-
-2023-03-21 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/109192
- * gimple-range-gori.cc (gori_compute::compute_operand_range):
- Terminate gori calculations if a relation is not relevant.
- * value-relation.h (value_relation::set_relation): Allow
- equality between op1 and op2 if they are the same.
-
-2023-03-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109219
- * tree-vect-loop.cc (vectorizable_reduction): Check
- slp_node, not STMT_SLP_TYPE.
- * tree-vect-stmts.cc (vectorizable_condition): Likewise.
- * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
- Remove assertion on STMT_SLP_TYPE.
-
-2023-03-21 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109215
- * tree.h (enum special_array_member): Adjust comments for int_0
- and trail_0.
- * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
- has zero sized element type and the array has variable number of
- elements or constant one or more elements.
- (component_ref_size): Adjust comments, formatting fix.
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * configure.ac: Add check for the Texinfo 6.8
- CONTENTS_OUTPUT_LOCATION customization variable and set it if
- supported.
- * configure: Regenerate.
- * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
- configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
- CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
- ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/extend.texi: Associate use_hazard_barrier_return index
- entry with its attribute.
- * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
- its attribute
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/implement-c.texi: Remove usage of @gol.
- * doc/invoke.texi: Ditto.
- * doc/sourcebuild.texi: Ditto.
- * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
- texinfo.tex versions, the bug it was working around appears to
- be gone.
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/include/texinfo.tex: Update to 2023-01-17.19.
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
- @enddefbuiltin for defining built-in functions.
- * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
- places where it should be used.
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/extend.texi (Formatted Output Function Checking): New
- subsection for grouping together printf et al.
- (Exception handling) Fix missing @ sign before copyright
- header, which lead to the copyright line leaking into
- '(gcc)Exception handling'.
- * doc/gcc.texi: Set document language to en_US.
- (@copying): Wrap front cover texts in quotations, move in manual
- description text.
-
-2023-03-21 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/gcc.texi: Add the Indices appendix, to make texinfo
- generate nice indices overview page.
-
-2023-03-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109170
- * gimple-range-op.cc (cfn_pass_through_arg1): New.
- (gimple_range_op_handler::maybe_builtin_call): Handle
- __builtin_expect via cfn_pass_through_arg1.
-
-2023-03-20 Michael Meissner <meissner@linux.ibm.com>
-
- PR target/109067
- * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
- (init_float128_ieee): Delete code to switch complex multiply and divide
- for long double.
- (complex_multiply_builtin_code): New helper function.
- (complex_divide_builtin_code): Likewise.
- (rs6000_mangle_decl_assembler_name): Add support for mangling the name
- of complex 128-bit multiply and divide built-in functions.
-
-2023-03-20 Peter Bergner <bergner@linux.ibm.com>
-
- PR target/109178
- * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
-
-2023-03-19 Jonny Grant <jg@jguk.org>
-
- * doc/extend.texi (Common Function Attributes) <nonnull>:
- Correct typo.
-
-2023-03-18 Peter Bergner <bergner@linux.ibm.com>
-
- PR rtl-optimization/109179
- * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
- insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
-
-2023-03-17 Jakub Jelinek <jakub@redhat.com>
-
- PR target/105554
- * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
- to false.
- * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
- to allocate_struct_function instead of false.
- * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
- nor DECL_RESULT here. Pass true as ABSTRACT_P to
- push_struct_function. Call targetm.target_option.relayout_function
- after it.
- (tree_function_versioning): Formatting fix.
-
-2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc: Include hooks.h.
- (combine_reload_insn): New function.
- (lra_constraints): Call it.
-
-2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
- as legitimate value.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
- (function_expander::use_widen_ternop_insn): Ditto.
- * config/riscv/vector.md (@vundefined<mode>): New pattern.
- (pred_mul_<optab><mode>_undef_merge): Remove.
- (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
- (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
- (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
- (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
-
-2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- PR target/109092
- * config/riscv/riscv.md: Fix subreg bug.
-
-2023-03-17 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/108685
- * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
- use its loop_father rather than BODY_BB's loop_father.
- (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
- If broken_loop with ordered > collapse and at least one of those
- extra loops aren't guaranteed to have at least one iteration, change
- l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
- loop_father to l0_bb's loop_father rather than l1_bb's.
-
-2023-03-17 Jakub Jelinek <jakub@redhat.com>
-
- PR plugins/108634
- * gdbhooks.py (TreePrinter.to_string): Wrap
- gdb.parse_and_eval('tree_code_type') in a try block, parse
- and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
- raises exception. Update comments for the recent tree_code_type
- changes.
-
-2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
- issues. Add more line breaks to example so it doesn't overflow
- the margins.
-
-2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/extend.texi (Common Function Attributes) <access>: Fix bad
- line breaks in examples.
- <malloc>: Fix bad line breaks in running text, also copy-edit
- for consistency.
- (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
- * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
- @gol.
- (C++ Dialect Options) <-fcontracts>: Add line break in example.
- <-Wctad-maybe-unsupported>: Likewise.
- <-Winvalid-constexpr>: Likewise.
- (Warning Options) <-Wdangling-pointer>: Likewise.
- <-Winterference-size>: Likewise.
- <-Wvla-parameter>: Likewise.
- (Static Analyzer Options): Fix bad line breaks in running text,
- plus add some missing markup.
- (Optimize Options) <openacc-privatization>: Fix more bad line
- breaks in running text.
-
-2023-03-16 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
- Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
- (expand_vec_perm_2perm_pblendv): Ditto.
-
-2023-03-16 Martin Liska <mliska@suse.cz>
-
- PR middle-end/106133
- * gcc.cc (driver_handle_option): Use x_main_input_basename
- if x_dump_base_name is null.
- * opts.cc (common_handle_option): Likewise.
-
-2023-03-16 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109123
- * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
- Do not emit -Wuse-after-free late.
- (pass_waccess::check_call): Always check call pointer uses.
-
-2023-03-16 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109141
- * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
- * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
- out from ...
- (renumber_gimple_stmt_uids): ... here and
- (renumber_gimple_stmt_uids_in_blocks): ... here.
- * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
- Use renumber_gimple_stmt_uids_in_block to also assign UIDs
- to PHIs.
- (pass_waccess::check_pointer_uses): Process all PHIs.
-
-2023-03-15 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/109097
- * diagnostic-format-sarif.cc (class sarif_invocation): New.
- (class sarif_ice_notification): New.
- (sarif_builder::m_invocation_obj): New field.
- (sarif_invocation::add_notification_for_ice): New.
- (sarif_invocation::prepare_to_flush): New.
- (sarif_ice_notification::sarif_ice_notification): New.
- (sarif_builder::sarif_builder): Add m_invocation_obj.
- (sarif_builder::end_diagnostic): Special-case DK_ICE and
- DK_ICE_NOBT.
- (sarif_builder::flush_to_file): Call prepare_to_flush on
- m_invocation_obj. Pass the latter to make_top_level_object.
- (sarif_builder::make_result_object): Move creation of "locations"
- array to...
- (sarif_builder::make_locations_arr): ...this new function.
- (sarif_builder::make_top_level_object): Add "invocation_obj" param
- and pass it to make_run_object.
- (sarif_builder::make_run_object): Add "invocation_obj" param and
- use it.
- (sarif_ice_handler): New callback.
- (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
- * diagnostic.cc (diagnostic_initialize): Initialize new field
- "ice_handler_cb".
- (diagnostic_action_after_output): If it is set, make one attempt
- to call ice_handler_cb.
- * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
-
-2023-03-15 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (expand_vec_perm_blend):
- Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
- and fix V2HImode handling.
- (expand_vec_perm_1): Try to emit BLEND instruction
- before MOVSS/MOVSD.
- * config/i386/mmx.md (*mmx_blendps): New insn pattern.
-
-2023-03-15 Tobias Burnus <tobias@codesourcery.com>
-
- * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
-
-2023-03-15 Richard Biener <rguenther@suse.de>
-
- * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
- Do not diagnose clobbers.
-
-2023-03-15 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109139
- * tree-ssa-live.cc (remove_unused_locals): Look at the
- base address for unused decls on the LHS of .DEFERRED_INIT.
-
-2023-03-15 Xi Ruoyao <xry111@xry111.site>
-
- PR other/109086
- * builtins.cc (inline_string_cmp): Force the character
- difference into "result" pseudo-register, instead of reassign
- the pseudo-register.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config.gcc: Add thead.o to RISC-V extra_objs.
- * config/riscv/peephole.md: Add mempair peephole passes.
- * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
- prototype.
- (th_mempair_operands_p): Likewise.
- (th_mempair_order_operands): Likewise.
- (th_mempair_prepare_save_restore_operands): Likewise.
- (th_mempair_save_restore_regs): Likewise.
- (th_mempair_output_move): Likewise.
- * config/riscv/riscv.cc (riscv_save_reg): Move code.
- (riscv_restore_reg): Move code.
- (riscv_for_each_saved_reg): Add code to emit mempair insns.
- * config/riscv/t-riscv: Add thead.cc.
- * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
- New insn.
- (*th_mempair_store_<GPR:mode>2): Likewise.
- (*th_mempair_load_extendsidi2): Likewise.
- (*th_mempair_load_zero_extendsidi2): Likewise.
- * config/riscv/thead.cc: New file.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
- New constraint "th_f_fmv".
- (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
- "th_r_fmv".
- * config/riscv/riscv.cc (riscv_split_doubleword_move):
- Add split code for XTheadFmv.
- (riscv_secondary_memory_needed): XTheadFmv does not need
- secondary memory.
- * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
- UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
- movdf_hardfloat_rv32.
- * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
- (th_fmv_x_w): New INSN.
- (th_fmv_x_hw): New INSN.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.md (maddhisi4): New expand.
- (msubhisi4): New expand.
- * config/riscv/thead.md (*th_mula<mode>): New pattern.
- (*th_mulawsi): New pattern.
- (*th_mulawsi2): New pattern.
- (*th_maddhisi4): New pattern.
- (*th_sextw_maddhisi4): New pattern.
- (*th_muls<mode>): New pattern.
- (*th_mulswsi): New pattern.
- (*th_mulswsi2): New pattern.
- (*th_msubhisi4): New pattern.
- (*th_sextw_msubhisi4): New pattern.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
- * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
- Add prototype.
- * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
- XTheadCondMov.
- (riscv_expand_conditional_move): New function.
- (riscv_expand_conditional_move_onesided): New function.
- * config/riscv/riscv.md: Add support for XTheadCondMov.
- * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
- support for XTheadCondMov.
- (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/bitmanip.md (clzdi2): New expand.
- (clzsi2): New expand.
- (ctz<mode>2): New expand.
- (popcount<mode>2): New expand.
- (<bitmanip_optab>si2): Rename INSN.
- (*<bitmanip_optab>si2): Hide INSN name.
- (<bitmanip_optab>di2): Rename INSN.
- (*<bitmanip_optab>di2): Hide INSN name.
- (rotrsi3): Remove INSN.
- (rotr<mode>3): Add expand.
- (*rotrsi3): New INSN.
- (rotrdi3): Rename INSN.
- (*rotrdi3): Hide INSN name.
- (rotrsi3_sext): Rename INSN.
- (*rotrsi3_sext): Hide INSN name.
- (bswap<mode>2): Remove INSN.
- (bswapdi2): Add expand.
- (bswapsi2): Add expand.
- (*bswap<mode>2): Hide INSN name.
- * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
- extraction.
- * config/riscv/riscv.md (extv<mode>): New expand.
- (extzv<mode>): New expand.
- * config/riscv/thead.md (*th_srri<mode>3): New INSN.
- (*th_ext<mode>): New INSN.
- (*th_extu<mode>): New INSN.
- (*th_clz<mode>2): New INSN.
- (*th_rev<mode>2): New INSN.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
- * config/riscv/thead.md (*th_tst<mode>3): New INSN.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv.md: Include thead.md
- * config/riscv/thead.md: New file.
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
-
-2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
-
- * common/config/riscv/riscv-common.cc: Add xthead* extensions.
- * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
- (MASK_XTHEADBB): New.
- (MASK_XTHEADBS): New.
- (MASK_XTHEADCMO): New.
- (MASK_XTHEADCONDMOV): New.
- (MASK_XTHEADFMEMIDX): New.
- (MASK_XTHEADFMV): New.
- (MASK_XTHEADINT): New.
- (MASK_XTHEADMAC): New.
- (MASK_XTHEADMEMIDX): New.
- (MASK_XTHEADMEMPAIR): New.
- (MASK_XTHEADSYNC): New.
- (TARGET_XTHEADBA): New.
- (TARGET_XTHEADBB): New.
- (TARGET_XTHEADBS): New.
- (TARGET_XTHEADCMO): New.
- (TARGET_XTHEADCONDMOV): New.
- (TARGET_XTHEADFMEMIDX): New.
- (TARGET_XTHEADFMV): New.
- (TARGET_XTHEADINT): New.
- (TARGET_XTHEADMAC): New.
- (TARGET_XTHEADMEMIDX): New.
- (TARGET_XTHEADMEMPAIR): new.
- (TARGET_XTHEADSYNC): New.
- * config/riscv/riscv.opt: Add riscv_xthead_subext.
-
-2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
-
- PR target/109117
- * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
- __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
- __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
-
-2023-03-14 Jakub Jelinek <jakub@redhat.com>
-
- PR target/109109
- * config/i386/i386-expand.cc (split_double_concat): Fix splitting
- when lo is equal to dhi and hi is a MEM which uses dlo register.
-
-2023-03-14 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/107925
- * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
- global0 instead of zeroing when it does not have as many counts as
- it should.
-
-2023-03-14 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/107925
- * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
- ipa count, remove assert, lenient_count_portion_handling, dump
- also orig_node_count.
-
-2023-03-14 Uros Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386-expand.cc (expand_vec_perm_movs):
- Handle V2SImode for TARGET_MMX_WITH_SSE.
- * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
- using V2FI mode iterator to handle both V2SI and V2SF modes.
-
-2023-03-14 Sam James <sam@gentoo.org>
-
- * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
- including <sstream> earlier.
- * system.h: Add INCLUDE_SSTREAM.
-
-2023-03-14 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-live.cc (remove_unused_locals): Do not treat
- the .DEFERRED_INIT of a variable as use, instead remove
- that if it is the only use.
-
-2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
-
- PR rtl-optimization/107762
- * expr.cc (emit_group_store): Revert latest change.
-
-2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR tree-optimization/109005
- * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
- aggregate type check.
-
-2023-03-14 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109115
- * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
- r.upper_bound () on r.undefined_p () range.
-
-2023-03-14 Jan Hubicka <hubicka@ucw.cz>
-
- PR tree-optimization/106896
- * profile-count.cc (profile_count::to_sreal_scale): Synchronize
- implementatoin with probability_in; avoid some asserts.
-
-2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
-
-2023-03-13 Sean Bright <sean@seanbright.com>
-
- * doc/invoke.texi (Warning Options): Remove errant 'See'
- before @xref.
-
-2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
- REG_OK_FOR_BASE_P): Remove.
-
-2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
- (=vd,vd,vr,vr): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_compare_insn): Add operand predicate check.
-
-2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fine tune RA constraints.
-
-2023-03-13 Tobias Burnus <tobias@codesourcery.com>
-
- * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
- hsaco assemble/link.
-
-2023-03-13 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109046
- * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
- piecewise complex loads.
-
-2023-03-12 Jakub Jelinek <jakub@redhat.com>
-
- * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
- (aarch64_bf16_ptr_type_node): Adjust comment.
- * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
- bfloat16_type_node rather than aarch64_bf16_type_node.
- (aarch64_libgcc_floating_mode_supported_p,
- aarch64_scalar_mode_supported_p): Also support BFmode.
- (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
- (aarch64_invalid_binary_op): Remove BFmode related rejections.
- (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
- * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
- (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
- aarch64_bf16_type_node.
- (aarch64_init_simd_builtin_types): Likewise.
- (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
- which is created in tree.cc already.
- * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
-
-2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
-
- PR middle-end/109031
- * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
- ensure that the type of x is as wide or wider than the type of a.
-
-2023-03-12 Tamar Christina <tamar.christina@arm.com>
-
- PR target/108583
- * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
- (*bitmask_shift_plus<mode>): New.
- * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
- (@aarch64_bitmask_udiv<mode>3): Remove.
- * config/aarch64/aarch64.cc
- (aarch64_vectorize_can_special_div_by_constant,
- TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
- (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
- aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
-
-2023-03-12 Tamar Christina <tamar.christina@arm.com>
-
- PR target/108583
- * target.def (preferred_div_as_shifts_over_mult): New.
- * doc/tm.texi.in: Document it.
- * doc/tm.texi: Regenerate.
- * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
- * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
- * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
-
-2023-03-12 Tamar Christina <tamar.christina@arm.com>
- Richard Sandiford <richard.sandiford@arm.com>
-
- PR target/108583
- * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
- single use.
-
-2023-03-12 Tamar Christina <tamar.christina@arm.com>
- Andrew MacLeod <amacleod@redhat.com>
-
- PR target/108583
- * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
- * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
- Use it.
- (gimple_range_op_handler::maybe_non_standard): New.
- * range-op.cc (class operator_widen_plus_signed,
- operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
- operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
- operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
- operator_widen_mult_unsigned::wi_fold,
- ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
- ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
- * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
- ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
-
-2023-03-12 Tamar Christina <tamar.christina@arm.com>
-
- PR target/108583
- * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
- * doc/tm.texi.in: Likewise.
- * explow.cc (round_push, align_dynamic_address): Revert previous patch.
- * expmed.cc (expand_divmod): Likewise.
- * expmed.h (expand_divmod): Likewise.
- * expr.cc (force_operand, expand_expr_divmod): Likewise.
- * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
- * target.def (can_special_div_by_const): Remove.
- * target.h: Remove tree-core.h include
- * targhooks.cc (default_can_special_div_by_const): Remove.
- * targhooks.h (default_can_special_div_by_const): Remove.
- * tree-vect-generic.cc (expand_vector_operation): Remove hook.
- * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
- * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
-
-2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/install.texi2html: Fix issue number typo in comment.
-
-2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
-
- * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
- bool.
-
-2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/invoke.texi (Optimize Options): Add markup to
- description of asan-kernel-mem-intrinsic-prefix, and clarify
- wording slightly.
-
-2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/extend.texi (Named Address Spaces): Drop a redundant link
- to AVR-LibC.
-
-2023-03-11 Jeff Law <jlaw@ventanamicro>
-
- PR web/88860
- * doc/extend.texi: Clarify Attribute Syntax a bit.
-
-2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
-
- * doc/install.texi (Prerequisites): Suggest using newer versions
- of Texinfo.
- (Final install): Clean up and modernize discussion of how to
- build or obtain the GCC manuals.
- * doc/install.texi2html: Update comment to point to the PR instead
- of "makeinfo 4.7 brokenness" (it's not specific to that version).
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR target/107703
- * optabs.cc (expand_fix): For conversions from BFmode to integral,
- use shifts to convert it to SFmode first and then convert SFmode
- to integral.
-
-2023-03-10 Andrew Pinski <apinski@marvell.com>
-
- * config/aarch64/aarch64.md: Add a new define_split
- to help combine.
-
-2023-03-10 Richard Biener <rguenther@suse.de>
-
- * tree-ssa-structalias.cc (solve_graph): Immediately
- iterate self-cycles.
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109008
- * range-op-float.cc (float_widen_lhs_range): If not
- -frounding-math and not IBM double double format, extend lhs
- range just by 0.5ulp rather than 1ulp in each direction.
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR target/107998
- * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
- $tmake_file.
- * config/i386/t-cygwin-w64: Remove.
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR plugins/108634
- * tree-core.h (tree_code_type, tree_code_length): For C++11 or
- C++14, don't declare as extern const arrays.
- (tree_code_type_tmpl, tree_code_length_tmpl): New types with
- static constexpr member arrays for C++11 or C++14.
- * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
- tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
- (TREE_CODE_LENGTH): For C++11 or C++14 use
- tree_code_length_tmpl <0>::tree_code_length instead of
- tree_code_length.
- * tree.cc (tree_code_type, tree_code_length): Remove.
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR other/108464
- * common.opt (fcanon-prefix-map): New option.
- * opts.cc: Include file-prefix-map.h.
- (flag_canon_prefix_map): New variable.
- (common_handle_option): Handle OPT_fcanon_prefix_map.
- (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
- * file-prefix-map.h (flag_canon_prefix_map): Declare.
- * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
- member.
- (add_prefix_map): Initialize canonicalize member from
- flag_canon_prefix_map, and if true canonicalize it using lrealpath.
- (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
- use lrealpath result only for map->canonicalize map entries.
- * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
- * opts-global.cc (handle_common_deferred_options): Clear
- flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
- * doc/invoke.texi (-fcanon-prefix-map): Document.
- (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
- see also for -fcanon-prefix-map.
- * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR c/108079
- * cgraphunit.cc (check_global_declaration): Don't warn for unused
- variables which have OPT_Wunused_variable warning suppressed.
-
-2023-03-10 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/109008
- * range-op-float.cc (float_widen_lhs_range): If lb is
- minimum representable finite number or ub is maximum
- representable finite number, instead of widening it to
- -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
- Temporarily clear flag_finite_math_only when canonicalizing
- the widened range.
-
-2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
- * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
- (gimple_fold_builtin): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
- (class vleff): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
- (vleff): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
- (struct fault_load_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (rvv_arg_type_info::get_tree_type): Add size_ptr.
- (gimple_folder::gimple_folder): New class.
- (gimple_folder::fold): Ditto.
- (gimple_fold_builtin): New function.
- (get_read_vl_instance): Ditto.
- (get_read_vl_decl): Ditto.
- * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
- * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
- (get_read_vl_instance): New function.
- (get_read_vl_decl): Ditto.
- * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
- (read_vl_insn_p): Ditto.
- (available_occurrence_p): Ditto.
- (backward_propagate_worthwhile_p): Ditto.
- (gen_vsetvl_pat): Adapt for vleff support.
- (get_forward_read_vl_insn): New function.
- (get_backward_fault_first_load_insn): Ditto.
- (source_equal_p): Adapt for vleff support.
- (first_ratio_invalid_for_second_sew_p): Remove.
- (first_ratio_invalid_for_second_lmul_p): Ditto.
- (first_lmul_less_than_second_lmul_p): Ditto.
- (first_ratio_less_than_second_ratio_p): Ditto.
- (support_relaxed_compatible_p): New function.
- (vector_insn_info::operator>): Remove.
- (vector_insn_info::operator>=): Refine.
- (vector_insn_info::parse_insn): Adapt for vleff support.
- (vector_insn_info::compatible_p): Ditto.
- (vector_insn_info::update_fault_first_load_avl): New function.
- (pass_vsetvl::transfer_after): Adapt for vleff support.
- (pass_vsetvl::demand_fusion): Ditto.
- (pass_vsetvl::cleanup_insns): Ditto.
- * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
- redundant condtions.
- * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
- * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
- * config/riscv/riscv.md: Adapt for vleff support.
- * config/riscv/t-riscv: Ditto.
- * config/riscv/vector-iterators.md: New iterator.
- * config/riscv/vector.md (read_vlsi): New pattern.
- (read_vldi_zero_extend): Ditto.
- (@pred_fault_load<mode>): Ditto.
-
-2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
- (function_expander::use_widen_ternop_insn): Ditto.
- * optabs.cc (maybe_gen_insn): Extend nops handling.
-
-2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
- patterns according to RVV ISA.
- * config/riscv/vector-iterators.md: New iterators.
- * config/riscv/vector.md
- (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
- (@pred_indexed_<order>load<mode>_same_eew): New pattern.
- (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
- (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
- (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
- (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
- (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
- (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
- (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
- (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
-
-2023-03-10 Michael Collison <collison@rivosinc.com>
-
- * tree-vect-loop-manip.cc (vect_do_peeling): Use
- result of constant_lower_bound instead of vf for the lower
- bound of the epilog loop trip count.
-
-2023-03-09 Tamar Christina <tamar.christina@arm.com>
-
- * passes.cc (emergency_dump_function): Finish graph generation.
-
-2023-03-09 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
- and bottom bit only.
-
-2023-03-09 Andrew Pinski <apinski@marvell.com>
-
- PR tree-optimization/108980
- * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
- Reorgnize the call to warning for not strict flexible arrays
- to be before the check of warned.
-
-2023-03-09 Jason Merrill <jason@redhat.com>
-
- * doc/extend.texi: Comment out __is_deducible docs.
-
-2023-03-09 Jason Merrill <jason@redhat.com>
-
- PR c++/105841
- * doc/extend.texi (Type Traits):: Document __is_deducible.
-
-2023-03-09 Costas Argyris <costas.argyris@gmail.com>
-
- PR driver/108865
- * config.host: add object for x86_64-*-mingw*.
- * config/i386/sym-mingw32.cc: dummy file to attach
- symbol.
- * config/i386/utf8-mingw32.rc: windres resource file.
- * config/i386/winnt-utf8.manifest: XML manifest to
- enable UTF-8.
- * config/i386/x-mingw32: reference to x-mingw32-utf8.
- * config/i386/x-mingw32-utf8: Makefile fragment to
- embed UTF-8 manifest.
-
-2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * lra-constraints.cc (process_alt_operands): Use operand modes for
- clobbered regs instead of the biggest access mode.
-
-2023-03-09 Richard Biener <rguenther@suse.de>
-
- PR middle-end/108995
- * fold-const.cc (extract_muldiv_1): Avoid folding
- (CST * b) / CST2 when sanitizing overflow and we rely on
- overflow being undefined.
-
-2023-03-09 Jakub Jelinek <jakub@redhat.com>
- Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109008
- * range-op-float.cc (float_widen_lhs_range): New function.
- (foperator_plus::op1_range, foperator_minus::op1_range,
- foperator_minus::op2_range, foperator_mult::op1_range,
- foperator_div::op1_range, foperator_div::op2_range): Use it.
-
-2023-03-07 Jonathan Grant <jg@jguk.org>
-
- PR sanitizer/81649
- * doc/invoke.texi (Instrumentation Options): Clarify
- LeakSanitizer behavior.
-
-2023-03-07 Benson Muite <benson_muite@emailplus.org>
-
- * doc/install.texi (Prerequisites): Add link to gmplib.org.
-
-2023-03-07 Pan Li <pan2.li@intel.com>
- Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- PR target/108185
- PR target/108654
- * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
- modes.
- * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
- * config/riscv/riscv.h (riscv_v_adjust_precision): New.
- * genmodes.cc (adj_precision): New.
- (ADJUST_PRECISION): New.
- (emit_mode_adjustments): Handle ADJUST_PRECISION.
-
-2023-03-07 Hans-Peter Nilsson <hp@axis.com>
-
- * doc/sourcebuild.texi: Document check_effective_target_tail_call.
-
-2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
-
- * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
- {s|u}{max|min} in QI, HI and DI modes.
- (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
- (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
- (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
- * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
- saved in SGPRs.
-
-2023-03-06 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109025
- * tree-vect-loop.cc (vect_is_simple_reduction): Verify
- the inner LC PHI use is the inner loop PHI latch definition
- before classifying an outer PHI as double reduction.
-
-2023-03-06 Jan Hubicka <hubicka@ucw.cz>
-
- PR target/108429
- * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
- generic.
- (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
- (X86_TUNE_USE_SCATTER): Likewise.
-
-2023-03-06 Xi Ruoyao <xry111@xry111.site>
-
- PR target/109000
- * config/loongarch/loongarch.h (FP_RETURN): Use
- TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
- (UNITS_PER_FP_ARG): Likewise.
-
-2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
- (pass_vsetvl::backward_demand_fusion): Ditto.
-
-2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
- SiYu Wu <siyu@isrc.iscas.ac.cn>
-
- * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
- instructions.
- (riscv_sm3p1_<mode>): New.
- (riscv_sm4ed_<mode>): New.
- (riscv_sm4ks_<mode>): New.
- * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
- * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
- ZKSH's built-in functions.
-
-2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
- SiYu Wu <siyu@isrc.iscas.ac.cn>
-
- * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
- (riscv_sha256sig1_<mode>): New.
- (riscv_sha256sum0_<mode>): New.
- (riscv_sha256sum1_<mode>): New.
- (riscv_sha512sig0h): New.
- (riscv_sha512sig0l): New.
- (riscv_sha512sig1h): New.
- (riscv_sha512sig1l): New.
- (riscv_sha512sum0r): New.
- (riscv_sha512sum1r): New.
- (riscv_sha512sig0): New.
- (riscv_sha512sig1): New.
- (riscv_sha512sum0): New.
- (riscv_sha512sum1): New.
- * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
- * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
- built-in functions.
- (DIRECT_BUILTIN): Add new.
-
-2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
- SiYu Wu <siyu@isrc.iscas.ac.cn>
-
- * config/riscv/constraints.md (D03): Add constants of bs and rnum.
- (DsA): New.
- * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
- (riscv_aes32dsmi): New.
- (riscv_aes64ds): New.
- (riscv_aes64dsm): New.
- (riscv_aes64im): New.
- (riscv_aes64ks1i): New.
- (riscv_aes64ks2): New.
- (riscv_aes32esi): New.
- (riscv_aes32esmi): New.
- (riscv_aes64es): New.
- (riscv_aes64esm): New.
- * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
- * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
- ZKNE's built-in functions.
-
-2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
- SiYu Wu <siyu@isrc.iscas.ac.cn>
-
- * config/riscv/bitmanip.md: Add ZBKB's instructions.
- * config/riscv/riscv-builtins.cc (AVAIL): Add new.
- * config/riscv/riscv.md: Add new type for crypto instructions.
- * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
- description file.
- * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
- extension's built-in function file.
-
-2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
- SiYu Wu <siyu@isrc.iscas.ac.cn>
-
- * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
- (RISCV_FTYPE_NAME3): New.
- (RISCV_ATYPE_QI): New.
- (RISCV_ATYPE_HI): New.
- (RISCV_FTYPE_ATYPES2): New.
- (RISCV_FTYPE_ATYPES3): New.
- * config/riscv/riscv-ftypes.def (2): New.
- (3): New.
-
-2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
-
- * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
- use exact_log2().
-
-2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/predicates.md (vector_any_register_operand): New predicate.
- * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
- (riscv_register_pragmas): Add builtin function check call.
- * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
- (check_builtin_call): New function.
- * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
- (class vreinterpret): Ditto.
- (class vlmul_ext): Ditto.
- (class vlmul_trunc): Ditto.
- (class vset): Ditto.
- (class vget): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
- (vluxei16): Ditto.
- (vluxei32): Ditto.
- (vluxei64): Ditto.
- (vloxei8): Ditto.
- (vloxei16): Ditto.
- (vloxei32): Ditto.
- (vloxei64): Ditto.
- (vsuxei8): Ditto.
- (vsuxei16): Ditto.
- (vsuxei32): Ditto.
- (vsuxei64): Ditto.
- (vsoxei8): Ditto.
- (vsoxei16): Ditto.
- (vsoxei32): Ditto.
- (vsoxei64): Ditto.
- (vundefined): Add new intrinsic.
- (vreinterpret): Ditto.
- (vlmul_ext): Ditto.
- (vlmul_trunc): Ditto.
- (vset): Ditto.
- (vget): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
- (struct narrow_alu_def): Ditto.
- (struct reduc_alu_def): Ditto.
- (struct vundefined_def): Ditto.
- (struct misc_def): Ditto.
- (struct vset_def): Ditto.
- (struct vget_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
- (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
- (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
- (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
- (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_LMUL1_OPS): Ditto.
- (DEF_RVV_LMUL2_OPS): Ditto.
- (DEF_RVV_LMUL4_OPS): Ditto.
- (vint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_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.
- (vuint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_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.
- (vint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vuint8m1_t): Ditto.
- (vuint8m2_t): Ditto.
- (vuint8m4_t): Ditto.
- (vuint8m8_t): Ditto.
- (vint8mf8_t): Ditto.
- (vuint8mf8_t): Ditto.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat64m1_t): Ditto.
- (vfloat64m2_t): Ditto.
- (vfloat64m4_t): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
- (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
- (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
- (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
- (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
- (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
- (DEF_RVV_LMUL1_OPS): Ditto.
- (DEF_RVV_LMUL2_OPS): Ditto.
- (DEF_RVV_LMUL4_OPS): Ditto.
- (DEF_RVV_TYPE_INDEX): Ditto.
- (required_extensions_p): Adapt for new intrinsic support/
- (get_required_extensions): New function.
- (check_required_extensions): Ditto.
- (unsigned_base_type_p): Remove.
- (rvv_arg_type_info::get_scalar_ptr_type): New function.
- (get_mode_for_bitsize): Remove.
- (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
- (rvv_arg_type_info::get_base_vector_type): Ditto.
- (rvv_arg_type_info::get_function_type_index): Ditto.
- (DEF_RVV_BASE_TYPE): New def.
- (function_builder::apply_predication): New class.
- (function_expander::mask_mode): Ditto.
- (function_checker::function_checker): Ditto.
- (function_checker::report_non_ice): Ditto.
- (function_checker::report_out_of_range): Ditto.
- (function_checker::require_immediate): Ditto.
- (function_checker::require_immediate_range): Ditto.
- (function_checker::check): Ditto.
- (check_builtin_call): Ditto.
- * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
- (DEF_RVV_BASE_TYPE): Ditto.
- (DEF_RVV_TYPE_INDEX): Ditto.
- (vbool64_t): Ditto.
- (vbool32_t): Ditto.
- (vbool16_t): Ditto.
- (vbool8_t): Ditto.
- (vbool4_t): Ditto.
- (vbool2_t): Ditto.
- (vbool1_t): Ditto.
- (vuint8mf8_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vuint8m1_t): Ditto.
- (vuint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vuint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vuint8m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_t): Ditto.
- (vint32mf2_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.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vfloat64m1_t): Ditto.
- (vfloat64m4_t): Ditto.
- (vector): Move it def.
- (scalar): Ditto.
- (mask): Ditto.
- (signed_vector): Ditto.
- (unsigned_vector): Ditto.
- (unsigned_scalar): Ditto.
- (vector_ptr): Ditto.
- (scalar_ptr): Ditto.
- (scalar_const_ptr): Ditto.
- (void): Ditto.
- (size): Ditto.
- (ptrdiff): Ditto.
- (unsigned_long): Ditto.
- (long): Ditto.
- (eew8_index): Ditto.
- (eew16_index): Ditto.
- (eew32_index): Ditto.
- (eew64_index): Ditto.
- (shift_vector): Ditto.
- (double_trunc_vector): Ditto.
- (quad_trunc_vector): Ditto.
- (oct_trunc_vector): Ditto.
- (double_trunc_scalar): Ditto.
- (double_trunc_signed_vector): Ditto.
- (double_trunc_unsigned_vector): Ditto.
- (double_trunc_unsigned_scalar): Ditto.
- (double_trunc_float_vector): Ditto.
- (float_vector): Ditto.
- (lmul1_vector): Ditto.
- (widen_lmul1_vector): Ditto.
- (eew8_interpret): Ditto.
- (eew16_interpret): Ditto.
- (eew32_interpret): Ditto.
- (eew64_interpret): Ditto.
- (vlmul_ext_x2): Ditto.
- (vlmul_ext_x4): Ditto.
- (vlmul_ext_x8): Ditto.
- (vlmul_ext_x16): Ditto.
- (vlmul_ext_x32): Ditto.
- (vlmul_ext_x64): Ditto.
- * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
- (struct function_type_info): New function.
- (struct rvv_arg_type_info): Ditto.
- (class function_checker): New class.
- (rvv_arg_type_info::get_scalar_type): New function.
- (rvv_arg_type_info::get_vector_type): Ditto.
- (function_expander::ret_mode): New function.
- (function_checker::arg_mode): Ditto.
- (function_checker::ret_mode): Ditto.
- * config/riscv/t-riscv: Add generator.
- * config/riscv/vector-iterators.md: New iterators.
- * config/riscv/vector.md (vundefined<mode>): New pattern.
- (@vundefined<mode>): Ditto.
- (@vreinterpret<mode>): Ditto.
- (@vlmul_extx2<mode>): Ditto.
- (@vlmul_extx4<mode>): Ditto.
- (@vlmul_extx8<mode>): Ditto.
- (@vlmul_extx16<mode>): Ditto.
- (@vlmul_extx32<mode>): Ditto.
- (@vlmul_extx64<mode>): Ditto.
- (*vlmul_extx2<mode>): Ditto.
- (*vlmul_extx4<mode>): Ditto.
- (*vlmul_extx8<mode>): Ditto.
- (*vlmul_extx16<mode>): Ditto.
- (*vlmul_extx32<mode>): Ditto.
- (*vlmul_extx64<mode>): Ditto.
- * config/riscv/genrvv-type-indexer.cc: New file.
-
-2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
- (slide1_sew64_helper): New function.
- * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
- (get_unknown_min_value): Ditto.
- (force_vector_length_operand): Ditto.
- (gen_no_side_effects_vsetvl_rtx): Ditto.
- (get_vl_x2_rtx): Ditto.
- (slide1_sew64_helper): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
- (class vrgather): Ditto.
- (class vrgatherei16): Ditto.
- (class vcompress): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
- (vslidedown): Ditto.
- (vslide1up): Ditto.
- (vslide1down): Ditto.
- (vfslide1up): Ditto.
- (vfslide1down): Ditto.
- (vrgather): Ditto.
- (vrgatherei16): Ditto.
- (vcompress): Ditto.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
- (vint8mf8_t): Ditto.
- (vint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_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.
- (vuint8mf8_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vuint8m1_t): Ditto.
- (vuint8m2_t): Ditto.
- (vuint8m4_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_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.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- (vfloat64m1_t): Ditto.
- (vfloat64m2_t): Ditto.
- (vfloat64m4_t): Ditto.
- (vfloat64m8_t): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
- * config/riscv/riscv.md: Adjust RVV instruction types.
- * config/riscv/vector-iterators.md (down): New iterator.
- (=vd,vr): New attribute.
- (UNSPEC_VSLIDE1UP): New unspec.
- * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
- (*pred_slide<ud><mode>): Ditto.
- (*pred_slide<ud><mode>_extended): Ditto.
- (@pred_gather<mode>): Ditto.
- (@pred_gather<mode>_scalar): Ditto.
- (@pred_gatherei16<mode>): Ditto.
- (@pred_compress<mode>): Ditto.
-
-2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
-
-2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/constraints.md (Wb1): New constraint.
- * config/riscv/predicates.md
- (vector_least_significant_set_mask_operand): New predicate.
- (vector_broadcast_mask_operand): Ditto.
- * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
- (gen_scalar_move_mask): New function.
- * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
- (class vmv_s): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
- (vmv_s): Ditto.
- (vfmv_f): Ditto.
- (vfmv_s): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
- (function_expander::use_exact_insn): New function.
- (function_expander::use_contiguous_load_insn): New function.
- (function_expander::use_contiguous_store_insn): New function.
- (function_expander::use_ternop_insn): New function.
- (function_expander::use_widen_ternop_insn): New function.
- (function_expander::use_scalar_move_insn): New function.
- * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
- * config/riscv/riscv-vector-builtins.h
- (function_expander::add_scalar_move_mask_operand): New class.
- * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
- (scalar_move_insn_p): Ditto.
- (has_vsetvl_killed_avl_p): Ditto.
- (anticipatable_occurrence_p): Ditto.
- (insert_vsetvl): Ditto.
- (get_vl_vtype_info): Ditto.
- (calculate_sew): Ditto.
- (calculate_vlmul): Ditto.
- (incompatible_avl_p): Ditto.
- (different_sew_p): Ditto.
- (different_lmul_p): Ditto.
- (different_ratio_p): Ditto.
- (different_tail_policy_p): Ditto.
- (different_mask_policy_p): Ditto.
- (possible_zero_avl_p): Ditto.
- (first_ratio_invalid_for_second_sew_p): Ditto.
- (first_ratio_invalid_for_second_lmul_p): Ditto.
- (second_ratio_invalid_for_first_sew_p): Ditto.
- (second_ratio_invalid_for_first_lmul_p): Ditto.
- (second_sew_less_than_first_sew_p): Ditto.
- (first_sew_less_than_second_sew_p): Ditto.
- (compare_lmul): Ditto.
- (second_lmul_less_than_first_lmul_p): Ditto.
- (first_lmul_less_than_second_lmul_p): Ditto.
- (first_ratio_less_than_second_ratio_p): Ditto.
- (second_ratio_less_than_first_ratio_p): Ditto.
- (DEF_INCOMPATIBLE_COND): Ditto.
- (greatest_sew): Ditto.
- (first_sew): Ditto.
- (second_sew): Ditto.
- (first_vlmul): Ditto.
- (second_vlmul): Ditto.
- (first_ratio): Ditto.
- (second_ratio): Ditto.
- (vlmul_for_first_sew_second_ratio): Ditto.
- (ratio_for_second_sew_first_vlmul): Ditto.
- (DEF_SEW_LMUL_FUSE_RULE): Ditto.
- (always_unavailable): Ditto.
- (avl_unavailable_p): Ditto.
- (sew_unavailable_p): Ditto.
- (lmul_unavailable_p): Ditto.
- (ge_sew_unavailable_p): Ditto.
- (ge_sew_lmul_unavailable_p): Ditto.
- (ge_sew_ratio_unavailable_p): Ditto.
- (DEF_UNAVAILABLE_COND): Ditto.
- (same_sew_lmul_demand_p): Ditto.
- (propagate_avl_across_demands_p): Ditto.
- (reg_available_p): Ditto.
- (avl_info::has_non_zero_avl): Ditto.
- (vl_vtype_info::has_non_zero_avl): Ditto.
- (vector_insn_info::operator>=): Refactor.
- (vector_insn_info::parse_insn): Adjust for scalar move.
- (vector_insn_info::demand_vl_vtype): Remove.
- (vector_insn_info::compatible_p): New function.
- (vector_insn_info::compatible_avl_p): Ditto.
- (vector_insn_info::compatible_vtype_p): Ditto.
- (vector_insn_info::available_p): Ditto.
- (vector_insn_info::merge): Ditto.
- (vector_insn_info::fuse_avl): Ditto.
- (vector_insn_info::fuse_sew_lmul): Ditto.
- (vector_insn_info::fuse_tail_policy): Ditto.
- (vector_insn_info::fuse_mask_policy): Ditto.
- (vector_insn_info::dump): Ditto.
- (vector_infos_manager::release): Ditto.
- (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
- (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
- (pass_vsetvl::hard_empty_block_p): Ditto.
- (pass_vsetvl::backward_demand_fusion): Ditto.
- (pass_vsetvl::forward_demand_fusion): Ditto.
- (pass_vsetvl::refine_vsetvls): Ditto.
- (pass_vsetvl::cleanup_vsetvls): Ditto.
- (pass_vsetvl::commit_vsetvls): Ditto.
- (pass_vsetvl::propagate_avl): Ditto.
- * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
- (struct demands_pair): Ditto.
- (struct demands_cond): Ditto.
- (struct demands_fuse_rule): Ditto.
- * config/riscv/vector-iterators.md: New iterator.
- * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
- (*pred_broadcast<mode>): Ditto.
- (*pred_broadcast<mode>_extended_scalar): Ditto.
- (@pred_extract_first<mode>): Ditto.
- (*pred_extract_first<mode>): Ditto.
- (@pred_extract_first_trunc<mode>): Ditto.
- * config/riscv/riscv-vsetvl.def: New file.
-
-2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
-
- * config/riscv/bitmanip.md: allow 0 constant in max/min
- pattern.
-
-2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
-
- * config/riscv/bitmanip.md: Fix wrong index in the check.
-
-2023-03-04 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/109006
- * vec.cc (test_auto_alias): Adjust comment for removal of
- m_vecdata.
- * read-rtl-function.cc (function_reader::parse_block): Likewise.
- * gdbhooks.py: Likewise.
-
-2023-03-04 Jakub Jelinek <jakub@redhat.com>
-
- PR testsuite/108973
- * selftest-diagnostic.cc
- (test_diagnostic_context::test_diagnostic_context): Set
- caret_max_width to 80.
-
-2023-03-03 Alexandre Oliva <oliva@adacore.com>
-
- * gimple-ssa-warn-access.cc
- (pass_waccess::check_dangling_stores): Skip non-stores.
-
-2023-03-03 Alexandre Oliva <oliva@adacore.com>
-
- * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
- after vmsr and vmrs, and lower the case of P0.
-
-2023-03-03 Jonathan Wakely <jwakely@redhat.com>
-
- PR middle-end/109006
- * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
-
-2023-03-03 Jonathan Wakely <jwakely@redhat.com>
-
- PR middle-end/109006
- * gdbhooks.py (VecPrinter): Adjust for new vec layout.
-
-2023-03-03 Jakub Jelinek <jakub@redhat.com>
-
- PR c/108986
- * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
- Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
- suppressed on stmt. For [static %E] warning, print access_nelts
- rather than access_size. Fix up comment wording.
-
-2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
-
- * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
- arch14 instead of z16.
-
-2023-03-03 Anthony Green <green@moxielogic.com>
-
- * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
-
-2023-03-03 Anthony Green <green@moxielogic.com>
-
- * config/moxie/constraints.md (A, B, W): Change
- define_constraint to define_memory_constraint.
-
-2023-03-03 Xi Ruoyao <xry111@xry111.site>
-
- * toplev.cc (process_options): Fix the spelling of
- "-fstack-clash-protection".
-
-2023-03-03 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/109002
- * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
- PHI-translate ANTIC_IN.
-
-2023-03-03 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108988
- * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
- size_type_node before passing it as argument to fwrite. Formatting
- fixes.
-
-2023-03-03 Richard Biener <rguenther@suse.de>
-
- PR target/108738
- * config/i386/i386.opt (--param x86-stv-max-visits): New param.
- * doc/invoke.texi (--param x86-stv-max-visits): Document it.
- * config/i386/i386-features.h (scalar_chain::max_visits): New.
- (scalar_chain::build): Add bitmap parameter, return boolean.
- (scalar_chain::add_insn): Likewise.
- (scalar_chain::analyze_register_chain): Likewise.
- * config/i386/i386-features.cc (scalar_chain::scalar_chain):
- Initialize max_visits.
- (scalar_chain::analyze_register_chain): When we exhaust
- max_visits, abort. Also abort when running into any
- disallowed insn.
- (scalar_chain::add_insn): Propagate abort.
- (scalar_chain::build): Likewise. When aborting amend
- the set of disallowed insn with the insns set.
- (convert_scalars_to_vector): Adjust. Do not convert aborted
- chains.
-
-2023-03-03 Richard Biener <rguenther@suse.de>
-
- PR debug/108772
- * dwarf2out.cc (dwarf2out_late_global_decl): Do not
- generate a DIE for a function scope static.
-
-2023-03-03 Alexandre Oliva <oliva@adacore.com>
-
- * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
-
-2023-03-02 Jakub Jelinek <jakub@redhat.com>
-
- PR target/108883
- * target.h (emit_support_tinfos_callback): New typedef.
- * targhooks.h (default_emit_support_tinfos): Declare.
- * targhooks.cc (default_emit_support_tinfos): New function.
- * target.def (emit_support_tinfos): New target hook.
- * doc/tm.texi.in (emit_support_tinfos): Document it.
- * doc/tm.texi: Regenerated.
- * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
- (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
-
-2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira-costs.cc: Include print-rtl.h.
- (record_reg_classes, scan_one_insn): Add code to print debug info.
- (record_operand_costs): Find and use smaller cost for hard reg
- move.
-
-2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
- Paul-Antoine Arras <pa@codesourcery.com>
-
- * builtins.cc (mathfn_built_in_explicit): New.
- * config/gcn/gcn.cc: Include case-cfn-macros.h.
- (mathfn_built_in_explicit): Add prototype.
- (gcn_vectorize_builtin_vectorized_function): New.
- (gcn_libc_has_function): New.
- (TARGET_LIBC_HAS_FUNCTION): Define.
- (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
-
-2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
+ (copy_body): Release SSAs in id->killed_new_ssa_names.
- PR tree-optimization/108979
- * tree-vect-stmts.cc (vectorizable_operation): Don't mask
- operations on invariants.
+2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
-2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
+ PR target/113486
+ * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
+ TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
- * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
- * config/s390/s390.cc (s390_option_override_internal): Make
- partial vector usage the default from z13 on.
- * config/s390/vector.md (len_load_v16qi): Add.
- (len_store_v16qi): Add.
+2024-01-24 Monk Chiang <monk.chiang@sifive.com>
-2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
+ PR target/113095
+ * config/riscv/sfb.md: New splitters to rewrite single bit
+ sign extension as the condition to SFB instructions.
- * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
- of constant 0 offset.
+2024-01-24 Jan Hubicka <jh@suse.cz>
-2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
+ PR middle-end/88345
+ * common.opt: (flimit-function-alignment): Reorder alphabeticaly
+ (fmin-function-alignment): New parameter.
+ * doc/invoke.texi: (-fmin-function-alignment): Document.
+ (-falign-functions,-falign-loops,-falign-labels): Mention that
+ aglinments are ignored in cold code.
+ * varasm.cc (assemble_start_function): Handle min-function-alignment.
- * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
- instead of long.
- * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
+2024-01-24 Tamar Christina <tamar.christina@arm.com>
-2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
+ PR target/109636
+ * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
+ mulv2di3): Remove.
+ * config/aarch64/iterators.md (VQDIV): Remove.
+ (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
+ SVE_I_SIMD_DI): New.
+ (VPRED, sve_lane_con): Add V4SI and V2DI.
+ * config/aarch64/aarch64-sve.md (<optab><mode>3,
+ @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
+ (mul<mode>3): New, split from <optab><mode>3.
+ (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
+ * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
+ *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
+ SVE_FULL_HSDI_SIMD_DI.
- * config.gcc: add -with-{no-}msa build option.
- * config/mips/mips.h: Likewise.
- * doc/install.texi: Likewise.
+2024-01-24 Tamar Christina <tamar.christina@arm.com>
-2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
+ PR tree-optimization/113552
+ * config/aarch64/aarch64.cc
+ (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
- PR tree-optimization/108603
- * explow.cc (convert_memory_address_addr_space_1): Only wrap
- the result of a recursive call in a CONST if no instructions
- were emitted.
+2024-01-24 Martin Jambor <mjambor@suse.cz>
-2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
+ PR ipa/113490
+ * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
+ count is equal or greater than the limit. Use the limit from the
+ callee.
- PR tree-optimization/108430
- * tree-vect-stmts.cc (vectorizable_condition): Fix handling
- of inverted condition.
+2024-01-24 YunQiang Su <syq@gcc.gnu.org>
-2023-03-02 Jakub Jelinek <jakub@redhat.com>
+ * configure.ac: Detect the explicit relocs support for
+ mips, and define C macro MIPS_EXPLICIT_RELOCS.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+ * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
+ * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
+ * config/mips/mips.cc(mips_set_compression_mode): Sorry if
+ !TARGET_EXPLICIT_RELOCS instead of just set it.
+ * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
+ TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
+ * config/mips/mips.opt: Introduce -mexplicit-relocs= option
+ and define -m(no-)explicit-relocs as aliases.
- PR c++/108934
- * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
- comparison copy the bytes from ptr to a temporary buffer and clearing
- padding bits in there.
+2024-01-24 Alex Coplan <alex.coplan@arm.com>
-2023-03-01 Tobias Burnus <tobias@codesourcery.com>
+ * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
+ to 1.
+ (-mlate-ldp-fusion): Likewise.
- PR middle-end/108545
- * gimplify.cc (struct tree_operand_hash_no_se): New.
- (omp_index_mapping_groups_1, omp_index_mapping_groups,
- omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
- omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
- oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
- gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
- of tree_operand_hash.
+2024-01-24 Tamar Christina <tamar.christina@arm.com>
-2023-03-01 LIU Hao <lh_mouse@126.com>
+ * tree-vect-loop.cc (vect_get_vect_def,
+ vect_create_epilog_for_reduction): Rename main_exit_p to
+ last_val_reduc_p.
- PR pch/14940
- * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
- Remove the size limit `pch_VA_max_size`
+2024-01-24 Tamar Christina <tamar.christina@arm.com>
-2023-03-01 Tobias Burnus <tobias@codesourcery.com>
+ PR tree-optimization/113364
+ * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
+ early exits then we must reduce from the first offset for all of them.
- PR middle-end/108546
- * omp-low.cc (lower_omp_target): Remove optional handling
- on the receiver side, i.e. inside target (data), for
- use_device_ptr.
+2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-03-01 Jakub Jelinek <jakub@redhat.com>
+ PR target/113495
+ * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
+ (get_regno): Ditto.
+ (get_bb_index): Ditto.
+ (pre_vsetvl::compute_avl_def_data): Ditto.
+ (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
+ (pre_vsetvl::pre_global_vsetvl_info): Ditto.
- PR debug/108967
- * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
- and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
+2024-01-23 Andrew Pinski <quic_apinski@quicinc.com>
+ Richard Sandiford <richard.sandiford@arm.com>
-2023-03-01 Richard Biener <rguenther@suse.de>
+ PR target/100942
+ * ccmp.cc (ccmp_candidate_p): Add outer argument.
+ Allow if the outer is true and the lhs is used more
+ than once.
+ (expand_ccmp_expr): Update call to ccmp_candidate_p.
+ * expr.h (expand_expr_real_gassign): Declare.
+ * expr.cc (expand_expr_real_gassign): New function, split out from...
+ (expand_expr_real_1): ...here.
+ * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113089
+ * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
+ (fixup_debug_use): New.
+ (fixup_debug_uses_trailing_add): New.
+ (fixup_debug_uses): New. Use it ...
+ (ldp_bb_info::fuse_pair): ... here.
+ (try_promote_writeback): Call fixup_debug_uses_trailing_add to
+ fix up debug uses of the base register that are affected by
+ folding in the trailing add insn.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113089
+ * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
+ Update trailing nondebug uses of the base register in the case
+ of cancelling writeback.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113089
+ * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
+ (debug_insn_use_iterator): New.
+ (set_info::first_debug_insn_use): New.
+ (set_info::debug_insn_uses): New.
+ * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
+ (set_info::first_debug_insn_use): New.
+ (set_info::debug_insn_uses): New.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113356
+ * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
+ Don't record hazards against the opposite insn in the pair.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113070
+ * config/aarch64/aarch64-ldp-fusion.cc
+ (struct stp_change_builder): New.
+ (decide_stp_strategy): Reanme to ...
+ (try_repurpose_store): ... this.
+ (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
+ construct stp changes. Fix up uses when inserting new stp insns.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113070
+ * rtl-ssa.h: Include hash-set.h.
+ * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
+ new_sets parameter and use it to keep track of new user-created sets.
+ (function_info::apply_changes_to_insn): Also call add_def on new sets.
+ (function_info::change_insns): Add hash_set to keep track of new
+ user-created defs. Plumb it through.
+ * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
+ apply_changes_to_insn.
+
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
+
+ PR target/113070
+ * rtl-ssa/accesses.cc (function_info::create_use): New.
+ * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
+ Ensure new uses end up referring to permanent defs.
+ * rtl-ssa/functions.h (function_info::create_use): Declare.
- PR tree-optimization/108970
- * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
- Check we can copy the BBs.
- (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
- check.
- (vect_do_peeling): Streamline error handling.
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
-2023-03-01 Richard Biener <rguenther@suse.de>
+ PR target/113070
+ * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
+ to finalize_new_accesses from the backwards placement loop, run it
+ forwards in a separate loop.
- PR tree-optimization/108950
- * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
- Check oprnd0 is defined in the loop.
- * tree-vect-loop.cc (vectorizable_reduction): Record all
- operands vector types, compute that of invariants and
- properly update their SLP nodes.
+2024-01-23 Richard Biener <rguenther@suse.de>
-2023-03-01 Kewen Lin <linkw@linux.ibm.com>
+ PR tree-optimization/113552
+ * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
+ floor_log2 instead of exact_log2 on the number of calls.
- PR target/108240
- * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
- implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
+2024-01-23 Jeff Law <jlaw@ventanamicro.com>
+ Jakub Jelinek <jakub@redhat.com>
-2023-02-28 Qing Zhao <qing.zhao@oracle.com>
+ * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
+ decl.
- PR middle-end/107411
- PR middle-end/107411
- * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
- xasprintf.
- * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
- LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
+2024-01-23 Richard Biener <rguenther@suse.de>
-2023-02-28 Jakub Jelinek <jakub@redhat.com>
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Separate single and multi-exit case when creating PHIs between
+ the main and epilogue.
- PR sanitizer/108894
- * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
- comparison rather than index > bound.
- * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
- rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
- * doc/invoke.texi (-fsanitize=bounds): Document that whether
- flexible array member-like arrays are instrumented or not depends
- on -fstrict-flex-arrays* options of strict_flex_array attributes.
- (-fsanitize=bounds-strict): Document that flexible array members
- are not instrumented.
+2024-01-23 Richard Sandiford <richard.sandiford@arm.com>
-2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
+ PR target/112989
+ * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
+ MODE_single variants of functions that don't take tuple arguments.
- PR target/108922
- Revert:
- * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
- (fmod<mode>3): Ditto.
- (fpremxf4_i387): Ditto.
- (reminderxf3): Ditto.
- (reminder<mode>3): Ditto.
- (fprem1xf4_i387): Ditto.
-
-2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
-
- * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
- generating FFS with mismatched operand and result modes, by using
- an explicit SIGN_EXTEND/ZERO_EXTEND.
- <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
- <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
-
-2023-02-27 Patrick Palka <ppalka@redhat.com>
-
- * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
- * lra-int.h (lra_change_class): Likewise.
- * recog.h (which_op_alt): Likewise.
- * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
- instead of static.
-
-2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
-
- * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
- New prototype.
- * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
- New function.
- * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
- * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
-
-2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
- (xtensa_get_config_v3): New functions.
-
-2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
-
-2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
-
- * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
- the macro to 0x1000000000.
-
-2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
-
- PR modula2/108261
- * doc/gm2.texi (-fm2-pathname): New option documented.
- (-fm2-pathnameI): New option documented.
- (-fm2-prefix=): New option documented.
- (-fruntime-modules=): Update default module list.
-
-2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
-
- PR target/108919
- * config/xtensa/xtensa-protos.h
- (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
- * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
- to xtensa_expand_call.
- (xtensa_expand_call): Emit the call and add a clobber expression
- for the static chain to it in case of windowed ABI.
- * config/xtensa/xtensa.md (call, call_value, sibcall)
- (sibcall_value): Call xtensa_expand_call and complete expansion
- right after that call.
-
-2023-02-24 Richard Biener <rguenther@suse.de>
-
- * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
- (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
- changing alignment of vec<T, A, vl_embed> and simplifying
- address.
- (vec<T, A, vl_embed>::address): Compute as this + 1.
- (vec<T, A, vl_embed>::embedded_size): Use sizeof the
- vector instead of the offset of the m_vecdata member.
- (auto_vec<T, N>::m_data): Turn storage into
- uninitialized unsigned char.
- (auto_vec<T, N>::auto_vec): Allow allocation of one
- stack member. Initialize m_vec in a special way to
- avoid later stringop overflow diagnostics.
- * vec.cc (test_auto_alias): New.
- (vec_cc_tests): Call it.
-
-2023-02-24 Richard Biener <rguenther@suse.de>
-
- * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
- take a const reference to the object, use address to
- access data.
- (vec<T, A, vl_embed>::contains): Use address to access data.
- (vec<T, A, vl_embed>::operator[]): Use address instead of
- m_vecdata to access data.
- (vec<T, A, vl_embed>::iterate): Likewise.
- (vec<T, A, vl_embed>::copy): Likewise.
- (vec<T, A, vl_embed>::quick_push): Likewise.
- (vec<T, A, vl_embed>::pop): Likewise.
- (vec<T, A, vl_embed>::quick_insert): Likewise.
- (vec<T, A, vl_embed>::ordered_remove): Likewise.
- (vec<T, A, vl_embed>::unordered_remove): Likewise.
- (vec<T, A, vl_embed>::block_remove): Likewise.
- (vec<T, A, vl_heap>::address): Likewise.
-
-2023-02-24 Martin Liska <mliska@suse.cz>
-
- PR sanitizer/108834
- * asan.cc (asan_add_global): Use proper TU name for normal
- global variables (and aux_base_name for the artificial one).
-
-2023-02-24 Jakub Jelinek <jakub@redhat.com>
-
- * config/i386/i386-builtin.def: Update description of BDESC
- and BDESC_FIRST in file comment to include mask2.
-
-2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
-
- * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
-
-2023-02-24 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/108854
- * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
- changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
- nodes and adjust their DECL_CONTEXT.
-
-2023-02-24 Jakub Jelinek <jakub@redhat.com>
-
- PR target/108881
- * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
- __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
- __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
- __builtin_ia32_cvtne2ps2bf16_v8bf,
- __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
- __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
- __builtin_ia32_cvtneps2bf16_v8sf_mask,
- __builtin_ia32_cvtneps2bf16_v8sf_maskz,
- __builtin_ia32_cvtneps2bf16_v4sf_mask,
- __builtin_ia32_cvtneps2bf16_v4sf_maskz,
- __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
- __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
- __builtin_ia32_dpbf16ps_v4sf_mask,
- __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
- OPTION_MASK_ISA_AVX512VL.
-
-2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
-
- * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
- Add non-compact 32-bit multilibs.
-
-2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
-
- * config/mips/mips.md (*clo<mode>2): New pattern.
-
-2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
-
- * config/mips/mips.h (machine_function): New variable
- use_hazard_barrier_return_p.
- * config/mips/mips.md (UNSPEC_JRHB): New unspec.
- (mips_hb_return_internal): New insn pattern.
- * config/mips/mips.cc (mips_attribute_table): Add attribute
- use_hazard_barrier_return.
- (mips_use_hazard_barrier_return_p): New static function.
- (mips_function_attr_inlinable_p): Likewise.
- (mips_compute_frame_info): Set use_hazard_barrier_return_p.
- Emit error for unsupported architecture choice.
- (mips_function_ok_for_sibcall, mips_can_use_return_insn):
- Return false for use_hazard_barrier_return.
- (mips_expand_epilogue): Emit hazard barrier return.
- * doc/extend.texi: Document use_hazard_barrier_return.
-
-2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
- (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
- for the gcc-internal headers.
-
-2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
-
- * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
- and $(POSTCOMPILE) instead of manual dependency listing.
- * config/xtensa/xtensa-dynconfig.c: Rename to ...
- * config/xtensa/xtensa-dynconfig.cc: ... this.
-
-2023-02-23 Arsen Arsenović <arsen@aarsen.me>
-
- * doc/cfg.texi: Reorder index entries around @items.
- * doc/cpp.texi: Ditto.
- * doc/cppenv.texi: Ditto.
- * doc/cppopts.texi: Ditto.
- * doc/generic.texi: Ditto.
- * doc/install.texi: Ditto.
- * doc/extend.texi: Ditto.
- * doc/invoke.texi: Ditto.
- * doc/md.texi: Ditto.
- * doc/rtl.texi: Ditto.
- * doc/tm.texi.in: Ditto.
- * doc/trouble.texi: Ditto.
- * doc/tm.texi: Regenerate.
+2024-01-23 Alex Coplan <alex.coplan@arm.com>
-2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ PR target/113114
+ * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
+ Don't assert recog success, just punt if the writeback pair
+ isn't recognized.
- * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
- the occurrence of general-purpose register used only once and for
- transferring intermediate value.
+2024-01-23 Jakub Jelinek <jakub@redhat.com>
-2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
+ ATTRIBUTE_UNUSED to decl.
- * config/xtensa/xtensa.cc (machine_function): Add new member
- 'eliminated_callee_saved_bmp'.
- (xtensa_can_eliminate_callee_saved_reg_p): New function to
- determine whether the register can be eliminated or not.
- (xtensa_expand_prologue): Add invoking the above function and
- elimination the use of callee-saved register by using its stack
- slot through the stack pointer (or the frame pointer if needed)
- directly.
- (xtensa_expand_prologue): Modify to not emit register restoration
- insn from its stack slot if the register is already eliminated.
+2024-01-23 Richard Biener <rguenther@suse.de>
-2023-02-23 Jakub Jelinek <jakub@redhat.com>
+ PR debug/107058
+ * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
+ handle unexpected but bogus DIE contexts when not checking
+ enabled.
- PR translation/108890
- * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
- around fatal_error format strings.
+2024-01-23 Jakub Jelinek <jakub@redhat.com>
-2023-02-23 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113462
+ * fold-const.cc (native_interpret_int): Don't punt if total_bytes
+ is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
+ (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
+ sizes between 129 and 8192 bytes.
- * tree-ssa-structalias.cc (handle_lhs_call): Do not
- re-create rhsc, only truncate it.
+2024-01-23 Xi Ruoyao <xry111@xry111.site>
-2023-02-23 Jakub Jelinek <jakub@redhat.com>
+ * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
+ If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
+ for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
+ (loongarch_call_tls_get_addr): Do not split symbols of
+ SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
+ EXPLICIT_RELOCS_AUTO.
- PR middle-end/106258
- * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
- BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
+2024-01-23 Richard Biener <rguenther@suse.de>
-2023-02-23 Richard Biener <rguenther@suse.de>
+ * alias.cc (known_base_value_p): Remove.
+ (find_base_value): Remove PLUS/MINUS handling
+ when both operands are not CONST_INT_P.
- * tree-if-conv.cc (tree_if_conversion): Properly manage
- memory of refs and the contained data references.
+2024-01-23 Richard Biener <rguenther@suse.de>
-2023-02-23 Richard Biener <rguenther@suse.de>
+ PR rtl-optimization/113255
+ * alias.cc (find_base_term): Remove PLUS/MINUS handling
+ when both operands are not CONST_INT_P.
- PR tree-optimization/108888
- * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
- calls to predicate.
- (predicate_statements): Only predicate calls with PLF_2.
+2024-01-23 Richard Biener <rguenther@suse.de>
-2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ PR debug/112718
+ * dwarf2out.cc (dwarf2out_finish): Reset all type units
+ for the fat part of an LTO compile.
- * config/xtensa/xtensa.md
- (zero_cost_loop_start, zero_cost_loop_end, loop_end):
- Add missing "SI:" to PLUS RTXes.
+2024-01-23 chenxiaolong <chenxiaolong@loongson.cn>
-2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
+ * doc/sourcebuild.texi: Add attributes for keywords.
- PR target/108876
- * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
- Emit (use (reg:SI A0_REG)) at the end in the sibling call
- (i.e. the same place as (return) in the normal call).
+2024-01-23 Sandra Loosemore <sandra@codesourcery.com>
-2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
+ PR c++/90463
+ * doc/invoke.texi (Warning Options): Correct lists of options
+ enabled by -Wall and -Wextra by checking against common.opt
+ and c-family/c.opt.
- Revert:
- 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
+2024-01-22 Andrew Pinski <quic_apinski@quicinc.com>
- PR target/108876
- * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
- for A0_REG.
- * config/xtensa/xtensa.md (sibcall, sibcall_internal)
- (sibcall_value, sibcall_value_internal): Add 'use' expression
- for A0_REG.
+ PR target/113030
+ * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
+ instead of cpu_optaliases.
+ (check_arch): Use arch_opt_alias instead of arch_optaliases.
-2023-02-23 Arsen Arsenović <arsen@aarsen.me>
+2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * doc/cppdiropts.texi: Reorder @opindex commands to precede
- @items they relate to.
- * doc/cppopts.texi: Ditto.
- * doc/cppwarnopts.texi: Ditto.
- * doc/invoke.texi: Ditto.
- * doc/lto.texi: Ditto.
-
-2023-02-22 Andrew Stubbs <ams@codesourcery.com>
-
- * internal-fn.cc (expand_MASK_CALL): New.
- * internal-fn.def (MASK_CALL): New.
- * internal-fn.h (expand_MASK_CALL): New prototype.
- * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
- for mask arguments also.
- * tree-if-conv.cc: Include cgraph.h.
- (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
- (predicate_statements): Convert functions to IFN_MASK_CALL.
- * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
- IFN_MASK_CALL as a SIMD function call.
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
- IFN_MASK_CALL as an inbranch SIMD function call.
- Generate the mask vector arguments.
-
-2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
- (class widen_reducop): Ditto.
- (class freducop): Ditto.
- (class widen_freducop): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
- (vredmaxu): Ditto.
- (vredmax): Ditto.
- (vredminu): Ditto.
- (vredmin): Ditto.
- (vredand): Ditto.
- (vredor): Ditto.
- (vredxor): Ditto.
- (vwredsum): Ditto.
- (vwredsumu): Ditto.
- (vfredusum): Ditto.
- (vfredosum): Ditto.
- (vfredmax): Ditto.
- (vfredmin): Ditto.
- (vfwredosum): Ditto.
- (vfwredusum): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
- (DEF_RVV_WU_OPS): Ditto.
- (DEF_RVV_WF_OPS): Ditto.
- (vint8mf8_t): Ditto.
- (vint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_t): Ditto.
- (vint32mf2_t): Ditto.
- (vint32m1_t): Ditto.
- (vint32m2_t): Ditto.
- (vint32m4_t): Ditto.
- (vint32m8_t): Ditto.
- (vuint8mf8_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vuint8m1_t): Ditto.
- (vuint8m2_t): Ditto.
- (vuint8m4_t): Ditto.
- (vuint8m8_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_t): Ditto.
- (vuint32mf2_t): Ditto.
- (vuint32m1_t): Ditto.
- (vuint32m2_t): Ditto.
- (vuint32m4_t): Ditto.
- (vuint32m8_t): Ditto.
- (vfloat32mf2_t): Ditto.
- (vfloat32m1_t): Ditto.
- (vfloat32m2_t): Ditto.
- (vfloat32m4_t): Ditto.
- (vfloat32m8_t): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
- (DEF_RVV_WU_OPS): Ditto.
- (DEF_RVV_WF_OPS): Ditto.
- (required_extensions_p): Add reduction support.
- (rvv_arg_type_info::get_base_vector_type): Ditto.
- (rvv_arg_type_info::get_tree_type): Ditto.
- * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
- * config/riscv/riscv.md: Ditto.
- * config/riscv/vector-iterators.md (minu): Ditto.
- * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
- (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
- (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
- (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
- (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
- (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
- (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
-
-2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * 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.
-
-2023-02-22 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/106258
- * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
- cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
- Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
- * cgraphclones.cc (cgraph_node::create_clone): Likewise.
-
-2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
-
- * common.opt (-Wcomplain-wrong-lang): New.
- * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
- * opts-common.cc (prune_options): Handle it.
- * opts-global.cc (complain_wrong_lang): Use it.
-
-2023-02-21 David Malcolm <dmalcolm@redhat.com>
-
- PR analyzer/108830
- * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
-
-2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
-
- PR target/108876
- * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
- for A0_REG.
- * config/xtensa/xtensa.md (sibcall, sibcall_internal)
- (sibcall_value, sibcall_value_internal): Add 'use' expression
- for A0_REG.
-
-2023-02-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108691
- * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
- assert about calls_setjmp not becoming true when it was false.
-
-2023-02-21 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108793
- * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
- Use convert operands to niter_type when computing num.
-
-2023-02-21 Richard Biener <rguenther@suse.de>
+ * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
+ * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
+ * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
- Revert:
- 2023-02-13 Richard Biener <rguenther@suse.de>
+2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR tree-optimization/108691
- * tree-cfg.cc (notice_special_calls): When the CFG is built
- honor gimple_call_ctrl_altering_p.
- * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
- temporarily if the call is not control-altering.
- * calls.cc (emit_call_1): Do not add REG_SETJMP if
- cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
+ PR target/109092
+ * config/riscv/riscv.md: Use reg instead of subreg.
-2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+2024-01-22 Tobias Burnus <tburnus@baylibre.com>
- * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
- true if register A0 (return address register) when -Og is specified.
+ PR other/111966
+ * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
+ to match the compiler default.
+ (simple_object_copy_lto_debug_sections): Never unlink the outfile
+ on error as the caller does so.
+ (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
+ (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
-2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
+2024-01-22 Richard Biener <rguenther@suse.de>
- * config/i386/predicates.md
- (general_x64constmem_operand): New predicate.
- * config/i386/i386.md (*cmpqi_ext<mode>_1):
- Use nonimm_x64constmem_operand.
- (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
- (*addqi_ext<mode>_1): Ditto.
- (*testqi_ext<mode>_1): Ditto.
- (*andqi_ext<mode>_1): Ditto.
- (*andqi_ext<mode>_1_cc): Ditto.
- (*<any_or:code>qi_ext<mode>_1): Ditto.
- (*xorqi_ext<mode>_1_cc): Ditto.
+ PR tree-optimization/113373
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Create LC PHIs in the exit blocks where necessary.
+ * tree-vect-loop.cc (vectorizable_live_operation): Do not try
+ to handle missing LC PHIs.
+ (find_connected_edge): Remove.
+ (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
-2023-02-20 Jakub Jelinek <jakub2redhat.com>
+2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR target/108862
- * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
- gen_umadddi4_highpart{,_le}.
+ * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
-2023-02-20 Kito Cheng <kito.cheng@sifive.com>
+2024-01-22 xuli <xuli1@eswincomputing.com>
- * config/riscv/riscv.md (prefetch): Use r instead of p for the
- address operand.
- (riscv_prefetchi_<mode>): Ditto.
+ PR target/113420
+ * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
+ (registered_function::overloaded_hash):refactor.
+ (resolve_overloaded_builtin):avoid internal ICE.
-2023-02-20 Richard Biener <rguenther@suse.de>
+2024-01-21 Mikael Pettersson <mikpelinux@gmail.com>
- PR tree-optimization/108816
- * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
- versioning condition split prerequesite, assert required
- invariant.
+ PR target/82420
+ PR target/111279
+ * calls.cc (emit_library_call_value_1): Pass valid TYPE
+ to emit_push_insn.
+ * expr.cc (emit_push_insn): Likewise.
-2023-02-20 Richard Biener <rguenther@suse.de>
+2024-01-21 Jeff Law <jlaw@ventanamicro.com>
- PR tree-optimization/108825
- * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
- loop-local verfication only verify there's no pending SSA
- update.
+ * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
+ correcction version of last change.
-2023-02-20 Richard Biener <rguenther@suse.de>
+2024-01-21 Jeff Law <jlaw@ventanamicro.com>
- PR tree-optimization/108819
- * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
- we have an SSA name as iv_2 as expected.
+ * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
+ fix bugs in signature.
-2023-02-18 Jakub Jelinek <jakub@redhat.com>
+2024-01-21 Roger Sayle <roger@nextmovesoftware.com>
+ Richard Biener <rguenther@suse.de>
- PR tree-optimization/108819
- * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
+ PR rtl-optimization/111267
+ * fwprop.cc (fwprop_propagation::profitabe_p): Rename
+ profitable_p method to likely_profitable_p.
+ (try_fwprop_subst_node): Update call to likely_profitable_p.
+ Only bail-out early when !prop.likely_profitable_p for instructions
+ that are not single sets. When comparing costs, bail-out if the
+ cost is unchanged and !prop.likely_profitable_p.
-2023-02-18 Jakub Jelinek <jakub@redhat.com>
+2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
- PR target/108832
- * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
- * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
- function.
- * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
- with ix86_replace_reg_with_reg.
+ PR c++/90464
+ * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
+ isn't enabled by -Wunused unless -Wextra is provided, and that
+ -Wunused does enable -Wunused-const-variable=1 for C. Clarify that
+ -Wunused doesn't enable -Wunused-* options documented as behaving
+ otherwise, and list them explicitly.
-2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
- * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
+ PR c/109708
+ * doc/invoke.texi (Warning Options): Fix broken example and
+ clean up/reorganize the others. Also describe what the short-form
+ options mean.
-2023-02-18 Xi Ruoyao <xry111@xry111.site>
+2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
- * config.gcc (triplet_abi): Set its value based on $with_abi,
- instead of $target.
- (la_canonical_triplet): Set it after $triplet_abi is set
- correctly.
- * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
- multiarch tuple for lp64d "loongarch64-linux-gnu" (without
- "f64" suffix).
+ PR c/102998
+ * doc/invoke.texi (Option Summary): Add -Warray-parameter.
+ (Warning Options): Correct/edit discussion of -Warray-parameter
+ to make the first example less confusing, and fill in missing info.
-2023-02-18 Andrew Pinski <apinski@marvell.com>
+2024-01-20 Jakub Jelinek <jakub@redhat.com>
- * match.pd: Remove #if GIMPLE around the
- "1 - a" pattern
+ PR tree-optimization/113462
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
+ Handle rhs1 INTEGER_CST like SSA_NAME.
-2023-02-18 Andrew Pinski <apinski@marvell.com>
+2024-01-20 Jakub Jelinek <jakub@redhat.com>
- * value-query.h (get_range_query): Return the global ranges
- for a nullptr func.
+ PR tree-optimization/113491
+ * tree-switch-conversion.cc (switch_conversion::build_constructors):
+ If elt.index has precision higher than sizetype, fold_convert it to
+ sizetype.
+ (switch_conversion::array_value_type): Return type if type is
+ BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
+ (switch_conversion::build_arrays): Use unsigned_type_for rather than
+ lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
+ above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision
+ higher than sizetype, use sizetype as tidx type and fold_convert the
+ subtraction to sizetype.
-2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
+2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * doc/invoke.texi (@item -Wall): Fix typo in
- -Wuse-after-free.
+ * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
+ (riscv_vector_mode_supported_any_target_p): Ditto.
-2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
-
- PR target/108831
- * config/i386/predicates.md
- (nonimm_x64constmem_operand): New predicate.
- * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
- (*subqi_ext<mode>_0): Ditto.
- (*andqi_ext<mode>_0): Ditto.
- (*<any_or:code>qi_ext<mode>_0): Ditto.
-
-2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
-
- PR target/108805
- * simplify-rtx.cc (simplify_context::simplify_subreg): Use
- int_outermode instead of GET_MODE (tem) to prevent
- VOIDmode from entering simplify_gen_subreg.
-
-2023-02-17 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108821
- * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
- move volatile accesses.
-
-2023-02-17 Richard Biener <rguenther@suse.de>
-
- * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
- called on virtual operands.
- * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
- ssa_undefined_value_p calls.
- (vn_phi_insert): Likewise.
- (set_ssa_val_to): Likewise.
- (visit_phi): Avoid extra work with equivalences for
- virtual operand PHIs.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
- class.
- (class mask_nlogic): Ditto.
- (class mask_notlogic): Ditto.
- (class vmmv): Ditto.
- (class vmclr): Ditto.
- (class vmset): Ditto.
- (class vmnot): Ditto.
- (class vcpop): Ditto.
- (class vfirst): Ditto.
- (class mask_misc): Ditto.
- (class viota): Ditto.
- (class vid): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
- (vmnand): Ditto.
- (vmandn): Ditto.
- (vmxor): Ditto.
- (vmor): Ditto.
- (vmnor): Ditto.
- (vmorn): Ditto.
- (vmxnor): Ditto.
- (vmmv): Ditto.
- (vmclr): Ditto.
- (vmset): Ditto.
- (vmnot): Ditto.
- (vcpop): Ditto.
- (vfirst): Ditto.
- (vmsbf): Ditto.
- (vmsif): Ditto.
- (vmsof): Ditto.
- (viota): Ditto.
- (vid): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
- (struct mask_alu_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc: Ditto.
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
- for dest it scalar RVV intrinsics.
- * config/riscv/vector-iterators.md (sof): New iterator.
- * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
- (@pred_<optab>not<mode>): New pattern.
- (@pred_popcount<VB:mode><P:mode>): New pattern.
- (@pred_ffs<VB:mode><P:mode>): New pattern.
- (@pred_<misc_op><mode>): New pattern.
- (@pred_iota<mode>): New pattern.
- (@pred_series<mode>): New pattern.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
- (vsbc): Ditto.
- (vmerge): Ditto.
- (vmv_v): Ditto.
- * config/riscv/riscv-vector-builtins.cc: Ditto.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
- * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
- (sew64_scalar_helper): New function.
- * config/riscv/vector.md: Normalization.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
- (vsm): Ditto.
- (vsse): Ditto.
- (vsoxei64): Ditto.
- (vsub): Ditto.
- (vand): Ditto.
- (vor): Ditto.
- (vxor): Ditto.
- (vsll): Ditto.
- (vsra): Ditto.
- (vsrl): Ditto.
- (vmin): Ditto.
- (vmax): Ditto.
- (vminu): Ditto.
- (vmaxu): Ditto.
- (vmul): Ditto.
- (vmulh): Ditto.
- (vmulhu): Ditto.
- (vmulhsu): Ditto.
- (vdiv): Ditto.
- (vrem): Ditto.
- (vdivu): Ditto.
- (vremu): Ditto.
- (vnot): Ditto.
- (vsext): Ditto.
- (vzext): Ditto.
- (vwadd): Ditto.
- (vwsub): Ditto.
- (vwmul): Ditto.
- (vwmulu): Ditto.
- (vwmulsu): Ditto.
- (vwaddu): Ditto.
- (vwsubu): Ditto.
- (vsbc): Ditto.
- (vmsbc): Ditto.
- (vnsra): Ditto.
- (vmerge): Ditto.
- (vmv_v): Ditto.
- (vmsne): Ditto.
- (vmslt): Ditto.
- (vmsgt): Ditto.
- (vmsle): Ditto.
- (vmsge): Ditto.
- (vmsltu): Ditto.
- (vmsgtu): Ditto.
- (vmsleu): Ditto.
- (vmsgeu): Ditto.
- (vnmsac): Ditto.
- (vmadd): Ditto.
- (vnmsub): Ditto.
- (vwmacc): Ditto.
- (vsadd): Ditto.
- (vssub): Ditto.
- (vssubu): Ditto.
- (vaadd): Ditto.
- (vasub): Ditto.
- (vasubu): Ditto.
- (vsmul): Ditto.
- (vssra): Ditto.
- (vssrl): Ditto.
- (vnclip): Ditto.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
- (@pred_<optab><mode>_scalar): Ditto.
- (*pred_<optab><mode>_scalar): Ditto.
- (*pred_<optab><mode>_extended_scalar): Ditto.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
- (init_builtins): Ditto.
- (mangle_builtin_type): Ditto.
- (verify_type_context): Ditto.
- (handle_pragma_vector): Ditto.
- (builtin_decl): Ditto.
- (expand_builtin): Ditto.
- (const_vec_all_same_in_range_p): Ditto.
- (legitimize_move): Ditto.
- (emit_vlmax_op): Ditto.
- (emit_nonvlmax_op): Ditto.
- (get_vlmul): Ditto.
- (get_ratio): Ditto.
- (get_ta): Ditto.
- (get_ma): Ditto.
- (get_avl_type): Ditto.
- (calculate_ratio): Ditto.
- (enum vlmul_type): Ditto.
- (simm5_p): Ditto.
- (neg_simm5_p): Ditto.
- (has_vi_variant_p): Ditto.
-
-2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (simm32_p): Remove.
- * config/riscv/riscv-v.cc (simm32_p): Ditto.
- * config/riscv/vector.md: Use immediate_operand
- instead of riscv_vector::simm32_p.
-
-2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/invoke.texi (Optimize Options): Reword the explanation
- getting minimal, maximal and default values of a parameter.
-
-2023-02-16 Patrick Palka <ppalka@redhat.com>
-
- * addresses.h: Mechanically drop 'static' from 'static inline'
- functions via s/^static inline/inline/g.
- * asan.h: Likewise.
- * attribs.h: Likewise.
- * basic-block.h: Likewise.
- * bitmap.h: Likewise.
- * cfghooks.h: Likewise.
- * cfgloop.h: Likewise.
- * cgraph.h: Likewise.
- * cselib.h: Likewise.
- * data-streamer.h: Likewise.
- * debug.h: Likewise.
- * df.h: Likewise.
- * diagnostic.h: Likewise.
- * dominance.h: Likewise.
- * dumpfile.h: Likewise.
- * emit-rtl.h: Likewise.
- * except.h: Likewise.
- * expmed.h: Likewise.
- * expr.h: Likewise.
- * fixed-value.h: Likewise.
- * gengtype.h: Likewise.
- * gimple-expr.h: Likewise.
- * gimple-iterator.h: Likewise.
- * gimple-predict.h: Likewise.
- * gimple-range-fold.h: Likewise.
- * gimple-ssa.h: Likewise.
- * gimple.h: Likewise.
- * graphite.h: Likewise.
- * hard-reg-set.h: Likewise.
- * hash-map.h: Likewise.
- * hash-set.h: Likewise.
- * hash-table.h: Likewise.
- * hwint.h: Likewise.
- * input.h: Likewise.
- * insn-addr.h: Likewise.
- * internal-fn.h: Likewise.
- * ipa-fnsummary.h: Likewise.
- * ipa-icf-gimple.h: Likewise.
- * ipa-inline.h: Likewise.
- * ipa-modref.h: Likewise.
- * ipa-prop.h: Likewise.
- * ira-int.h: Likewise.
- * ira.h: Likewise.
- * lra-int.h: Likewise.
- * lra.h: Likewise.
- * lto-streamer.h: Likewise.
- * memmodel.h: Likewise.
- * omp-general.h: Likewise.
- * optabs-query.h: Likewise.
- * optabs.h: Likewise.
- * plugin.h: Likewise.
- * pretty-print.h: Likewise.
- * range.h: Likewise.
- * read-md.h: Likewise.
- * recog.h: Likewise.
- * regs.h: Likewise.
- * rtl-iter.h: Likewise.
- * rtl.h: Likewise.
- * sbitmap.h: Likewise.
- * sched-int.h: Likewise.
- * sel-sched-ir.h: Likewise.
- * sese.h: Likewise.
- * sparseset.h: Likewise.
- * ssa-iterators.h: Likewise.
- * system.h: Likewise.
- * target-globals.h: Likewise.
- * target.h: Likewise.
- * timevar.h: Likewise.
- * tree-chrec.h: Likewise.
- * tree-data-ref.h: Likewise.
- * tree-iterator.h: Likewise.
- * tree-outof-ssa.h: Likewise.
- * tree-phinodes.h: Likewise.
- * tree-scalar-evolution.h: Likewise.
- * tree-sra.h: Likewise.
- * tree-ssa-alias.h: Likewise.
- * tree-ssa-live.h: Likewise.
- * tree-ssa-loop-manip.h: Likewise.
- * tree-ssa-loop.h: Likewise.
- * tree-ssa-operands.h: Likewise.
- * tree-ssa-propagate.h: Likewise.
- * tree-ssa-sccvn.h: Likewise.
- * tree-ssa.h: Likewise.
- * tree-ssanames.h: Likewise.
- * tree-streamer.h: Likewise.
- * tree-switch-conversion.h: Likewise.
- * tree-vectorizer.h: Likewise.
- * tree.h: Likewise.
- * wide-int.h: Likewise.
-
-2023-02-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108657
- * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
- exists and is not a SSA_NAME, call ao_ref_init even if the stmt
- is a call to internal or builtin function.
-
-2023-02-16 Jonathan Wakely <jwakely@redhat.com>
-
- * doc/invoke.texi (C++ Dialect Options): Suggest adding a
- using-declaration to unhide functions.
-
-2023-02-16 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108783
- * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
- is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
- t to curr->op. Otherwise, punt if either newop1 or newop2 are
- SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
-
-2023-02-16 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108791
- * tree-ssa-forwprop.cc (optimize_vector_load): Build
- the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
- type.
-
-2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
-
- PR target/90458
- * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
- effects of -fstack-clash-protection for TARGET_STACK_PROBE.
- (ix86_expand_prologue): Likewise.
-
-2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
-
- * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
-
-2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
-
- * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
- int248_register_operand predicate in zero_extract sub-RTX.
- (*cmpqi_ext<mode>_2): Ditto.
- (*cmpqi_ext<mode>_3): Ditto.
- (*cmpqi_ext<mode>_4): Ditto.
- (*extzvqi_mem_rex64): Ditto.
- (*extzvqi): Ditto.
- (*insvqi_1_mem_rex64): Ditto.
- (@insv<mode>_1): Ditto.
- (*insvqi_1): Ditto.
- (*insvqi_2): Ditto.
- (*insvqi_3): Ditto.
- (*extendqi<SWI24:mode>_ext_1): Ditto.
- (*addqi_ext<mode>_1): Ditto.
- (*addqi_ext<mode>_2): Ditto.
- (*subqi_ext<mode>_2): Ditto.
- (*testqi_ext<mode>_1): Ditto.
- (*testqi_ext<mode>_2): Ditto.
- (*andqi_ext<mode>_1): Ditto.
- (*andqi_ext<mode>_1_cc): Ditto.
- (*andqi_ext<mode>_2): Ditto.
- (*<any_or:code>qi_ext<mode>_1): Ditto.
- (*<any_or:code>qi_ext<mode>_2): Ditto.
- (*xorqi_ext<mode>_1_cc): Ditto.
- (*negqi_ext<mode>_2): Ditto.
- (*ashlqi_ext<mode>_2): Ditto.
- (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
-
-2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
-
- * config/i386/predicates.md (int248_register_operand):
- Rename from extr_register_operand.
- * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
- (*extzx<mode>): Ditto.
- (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
- (*ashl<mode>3_mask): Ditto.
- (*<any_shiftrt:insn><mode>3_mask): Ditto.
- (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
- (*<any_rotate:insn><mode>3_mask): Ditto.
- (*<btsc><mode>_mask): Ditto.
- (*btr<mode>_mask): Ditto.
- (*jcc_bt<mode>_mask_1): Ditto.
-
-2023-02-15 Richard Biener <rguenther@suse.de>
-
- PR middle-end/26854
- * df-core.cc (df_worklist_propagate_forward): Put later
- blocks on worklist and only earlier blocks on pending.
- (df_worklist_propagate_backward): Likewise.
- (df_worklist_dataflow_doublequeue): Change the iteration
- to process new blocks in the same iteration if that
- maintains the iteration order.
-
-2023-02-15 Marek Polacek <polacek@redhat.com>
-
- PR middle-end/106080
- * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
- instead.
-
-2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/predicates.md: Refine codes.
- * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
- * config/riscv/riscv-v.cc: Refine codes.
- * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
- enum.
- (class imac): New class.
- (enum widen_ternop_type): New enum.
- (class iwmac): New class.
- (BASE): New class.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
- (vnmsac): Ditto.
- (vmadd): Ditto.
- (vnmsub): Ditto.
- (vwmacc): Ditto.
- (vwmaccu): Ditto.
- (vwmaccsu): Ditto.
- (vwmaccus): Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (function_builder::apply_predication): Adjust for multiply-add support.
- (function_expander::add_vundef_operand): Refine codes.
- (function_expander::use_ternop_insn): New function.
- (function_expander::use_widen_ternop_insn): Ditto.
- * config/riscv/riscv-vector-builtins.h: New function.
- * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
- (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_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
- (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
- (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
- (*pred_mul_<optab><mode>_extended_scalar): Ditto.
- (@pred_widen_mul_plus<su><mode>): Ditto.
- (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
- (@pred_widen_mul_plussu<mode>): Ditto.
- (@pred_widen_mul_plussu<mode>_scalar): Ditto.
- (@pred_widen_mul_plusus<mode>_scalar): Ditto.
-
-2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * 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.
-
-2023-02-15 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/108679
- * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
- creation of non-scalar replacements even if IPA-CP knows their
- contents.
-
-2023-02-15 Jakub Jelinek <jakub@redhat.com>
-
- PR target/108787
- PR target/103109
- * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
- expander, change operand 3 to be TImode, emit maddlddi4 and
- umadddi4_highpart{,_le} with its low half and finally add the high
- half to the result.
-
-2023-02-15 Martin Liska <mliska@suse.cz>
-
- * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
-
-2023-02-15 Richard Biener <rguenther@suse.de>
-
- * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
- for with_poison and alias worklist to it.
- (sanitize_asan_mark_poison): Likewise.
-
-2023-02-15 Richard Biener <rguenther@suse.de>
-
- PR target/108738
- * config/i386/i386-features.cc (scalar_chain::add_to_queue):
- Combine bitmap test and set.
- (scalar_chain::add_insn): Likewise.
- (scalar_chain::analyze_register_chain): Remove redundant
- attempt to add to queue and instead strengthen assert.
- Sink common attempts to mark the def dual-mode.
- (scalar_chain::add_to_queue): Remove redundant insn bitmap
- check.
+2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
-2023-02-15 Richard Biener <rguenther@suse.de>
+ PR target/110934
+ * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
+ (TARGET_ZERO_CALL_USED_REGS): Define.
- PR target/108738
- * config/i386/i386-features.cc (convert_scalars_to_vector):
- Switch candidates bitmaps to tree view before building the chains.
+2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
-2023-02-15 Hans-Peter Nilsson <hp@axis.com>
+ PR target/108640
+ * config/m68k/m68k.cc (output_andsi3): Use QImode for
+ address adjusted for 1-byte RMW access.
+ (output_iorsi3): Likewise.
+ (output_xorsi3): Likewise.
- * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
- "failure trying to reload" call.
+2024-01-19 Kito Cheng <kito.cheng@sifive.com>
-2023-02-15 Hans-Peter Nilsson <hp@axis.com>
+ * doc/invoke.texi (RISC-V Options): Add list of supported
+ extensions.
- * gdbinit.in (phrs): New command.
- * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
- * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
+2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-02-14 David Faust <david.faust@oracle.com>
+ PR target/113495
+ * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
+ (RVV_VUNDEF): Ditto.
+ * config/riscv/riscv-vsetvl.cc: Add timevar.
- PR target/108790
- * config/bpf/constraints.md (q): New memory constraint.
- * config/bpf/bpf.md (zero_extendhidi2): Use it here.
- (zero_extendqidi2): Likewise.
- (zero_extendsidi2): Likewise.
- (*mov<MM:mode>): Likewise.
+2024-01-19 Richard Biener <rguenther@suse.de>
-2023-02-14 Andrew Pinski <apinski@marvell.com>
+ PR debug/113488
+ * lto-streamer-in.cc (lto_read_tree_1): When there isn't
+ an early DIE but there should be, do not pretend there is.
- PR tree-optimization/108355
- PR tree-optimization/96921
- * match.pd: Add pattern for "1 - bool_val".
+2024-01-19 Richard Biener <rguenther@suse.de>
-2023-02-14 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113494
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Handle endless loop on exit. Handle re-allocated PHI.
- * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
- basic block index hashing on the availability of ->cclhs.
- (vn_phi_eq): Avoid re-doing sanity checks for CSE but
- rely on ->cclhs availability.
- (vn_phi_lookup): Set ->cclhs only when we are eventually
- going to CSE the PHI.
- (vn_phi_insert): Likewise.
+2024-01-19 Jakub Jelinek <jakub@redhat.com>
-2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
+ PR tree-optimization/113464
+ * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
+ optimize loads into GIMPLE_ASM stmts.
- * gimplify.cc (gimplify_save_expr): Add missing guard.
+2024-01-19 Jakub Jelinek <jakub@redhat.com>
-2023-02-14 Richard Biener <rguenther@suse.de>
+ PR tree-optimization/113463
+ * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
+ Only look through NOP_EXPRs if rhs1 doesn't have wider type than
+ lhs.
- PR tree-optimization/108782
- * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
- Make sure we're not vectorizing an inner loop.
+2024-01-19 Jakub Jelinek <jakub@redhat.com>
-2023-02-14 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/113459
+ * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
+ TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
+ of SCALAR_INT_TYPE_MODE if type has BLKmode.
+ (vn_reference_lookup_3): Likewise. Formatting fix.
- PR sanitizer/108777
- * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
- * asan.h (asan_memfn_rtl): Declare.
- * asan.cc (asan_memfn_rtls): New variable.
- (asan_memfn_rtl): New function.
- * builtins.cc (expand_builtin): If
- param_asan_kernel_mem_intrinsic_prefix and function is
- kernel-{,hw}address sanitized, emit calls to
- __{,hw}asan_{memcpy,memmove,memset} rather than
- {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
- instead of flag_sanitize & SANITIZE_ADDRESS to check if
- asan_intercepted_p functions shouldn't be expanded inline.
+2024-01-19 Jakub Jelinek <jakub@redhat.com>
+ Richard Biener <rguenther@suse.de>
-2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
+ * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
+ VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
+ * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
+ but adjust_address also for BLKmode mode and MEM op0.
- PR tree-optimization/96373
- * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
- operations on the loop mask. Reject partial vectors if this isn't
- possible.
+2024-01-19 Palmer Dabbelt <palmer@rivosinc.com>
-2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
+ * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
+ extensions.
- PR rtl-optimization/108681
- * lra-spills.cc (lra_final_code_change): Extend subreg replacement
- code to handle bare uses and clobbers.
+2024-01-19 Kito Cheng <kito.cheng@sifive.com>
-2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
+ * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
- * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
- caller_save_p flag when clearing defined_p flag.
- (setup_reg_equiv): Ditto.
- * lra-constraints.cc (lra_constraints): Ditto.
+2024-01-19 Kito Cheng <kito.cheng@sifive.com>
-2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
+ * common/config/riscv/riscv-common.cc
+ (riscv_subset_list::parse_std_ext): Remove.
+ (riscv_subset_list::parse_multiletter_ext): Remove.
+ * config/riscv/riscv-subset.h
+ (riscv_subset_list::parse_std_ext): Remove.
+ (riscv_subset_list::parse_multiletter_ext): Remove.
- PR target/108516
- * config/i386/predicates.md (extr_register_operand):
- New special predicate.
- * config/i386/i386.md (*extv<mode>): Use extr_register_operand
- as operand 1 predicate.
- (*exzv<mode>): Ditto.
- (*extendqi<SWI24:mode>_ext_1): New insn pattern.
+2024-01-19 Kito Cheng <kito.cheng@sifive.com>
-2023-02-13 Richard Biener <rguenther@suse.de>
+ * common/config/riscv/riscv-common.cc
+ (riscv_subset_list::parse_single_std_ext): New parameter.
+ (riscv_subset_list::parse_single_multiletter_ext): Ditto.
+ (riscv_subset_list::parse_single_ext): Ditto.
+ (riscv_subset_list::parse): Relax the order for the input of ISA
+ string.
+ * config/riscv/riscv-subset.h
+ (riscv_subset_list::parse_single_std_ext): New parameter.
+ (riscv_subset_list::parse_single_multiletter_ext): Ditto.
+ (riscv_subset_list::parse_single_ext): Ditto.
- PR tree-optimization/28614
- * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
- walking all edges in most cases.
- (vn_nary_op_insert_pieces_predicated): Avoid repeated
- calls to can_track_predicate_on_edge unless checking is
- enabled.
- (process_bb): Instead call it once here for each edge
- we register possibly multiple predicates on.
+2024-01-19 Kito Cheng <kito.cheng@sifive.com>
-2023-02-13 Richard Biener <rguenther@suse.de>
+ * common/config/riscv/riscv-common.cc
+ (riscv_subset_list::parse_base_ext): New.
+ (riscv_subset_list::parse): Extract part of logic into
+ riscv_subset_list::parse_base_ext.
+ * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
+ New.
- PR tree-optimization/108691
- * tree-cfg.cc (notice_special_calls): When the CFG is built
- honor gimple_call_ctrl_altering_p.
- * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
- temporarily if the call is not control-altering.
- * calls.cc (emit_call_1): Do not add REG_SETJMP if
- cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
+2024-01-19 Kito Cheng <kito.cheng@sifive.com>
-2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+ * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
+ sorry message.
- PR target/108102
- * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
- (struct s390_sched_state): Initialise to zero.
- (s390_sched_variable_issue): For better debuggability also emit
- the current side.
- (s390_sched_init): Unconditionally reset scheduler state.
+2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
-2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
+ * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
+ UNSPEC_CLMUL_VC.
- * ifcvt.h (noce_if_info::cond_inverted): New field.
- * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
- values when cond_inverted is true.
- (noce_find_if_block): Allow the condition to be inverted when
- handling conditional moves.
+2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
-2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+ PR c/110029
+ * doc/extend.texi (Common Variable Attributes): Explain what
+ happens when multiple variables with cleanups are in the same scope.
- * config/s390/predicates.md (execute_operation): Use
- constrain_operands instead of extract_constrain_insn in order to
- determine wheter there exists a valid alternative.
+2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
-2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
+ PR ipa/108470
+ * doc/extend.texi (Common Function Attributes): Document that
+ noinline also disables some interprocedural optimizations and
+ improve flow to the part about using inline asm instead to
+ disable calls from being optimized away completely. Remove the
+ sentence that says noipa is mainly for internal compiler testing.
- * common/config/arc/arc-common.cc (arc_option_optimization_table):
- Remove millicode from list.
+2024-01-18 John David Anglin <danglin@gcc.gnu.org>
-2023-02-13 Martin Liska <mliska@suse.cz>
+ PR tree-optimization/69807
+ * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
- * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
+2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
-2023-02-13 Richard Biener <rguenther@suse.de>
+ PR target/108521
+ * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
+ from x86 Windows Options.
- PR tree-optimization/106722
- * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
- whether we marked a stmt.
- (mark_control_dependent_edges_necessary): When
- mark_last_stmt_necessary didn't mark any stmt make sure
- to mark its control dependent edges.
- (propagate_necessity): Likewise.
+2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
-2023-02-13 Kito Cheng <kito.cheng@sifive.com>
+ PR c/107942
+ * doc/extend.texi (C Extensions): Add new section to menu.
+ (Function Attributes): Move dangling index entries to....
+ (Const and Volatile Functions): New section.
- * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
- (DWARF_FRAME_REGISTERS): New.
- (DWARF_REG_TO_UNWIND_COLUMN): New.
+2024-01-18 David Malcolm <dmalcolm@redhat.com>
-2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
+ PR middle-end/112684
+ * toplev.cc (toplev::main): Don't ICE in
+ -fdiagnostics-generate-patch when exiting after options,
+ since no edit context will have been created.
- * doc/sourcebuild.texi: Remove (broken) direct reference to
- "The GNU configure and build system".
+2024-01-18 Richard Biener <rguenther@suse.de>
-2023-02-12 Jin Ma <jinma@linux.alibaba.com>
+ * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
+ operands vector.
- * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
- gen_add3_insn to gen_rtx_SET.
- (riscv_adjust_libcall_cfi_epilogue): Likewise.
+2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+ * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
+ when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
- * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
- (class vnclip): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
- (vasub): Ditto.
- (vaaddu): Ditto.
- (vasubu): Ditto.
- (vsmul): Ditto.
- (vssra): Ditto.
- (vssrl): Ditto.
- (vnclipu): Ditto.
- (vnclip): Ditto.
- * config/riscv/vector-iterators.md (su): Add instruction.
- (aadd): Ditto.
- (vaalu): Ditto.
- * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
- (@pred_<sat_op><mode>_scalar): Ditto.
- (*pred_<sat_op><mode>_scalar): Ditto.
- (*pred_<sat_op><mode>_extended_scalar): Ditto.
- (@pred_narrow_clip<v_su><mode>): Ditto.
- (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/constraints.md (Wbr): Remove unused constraint.
- * config/riscv/predicates.md: Fix move operand predicate.
- * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
- (class vncvt_x): Ditto.
- (class vmerge): Ditto.
- (class vmv_v): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
- (vsrl): Ditto.
- (vnsrl): Ditto.
- (vnsra): Ditto.
- (vncvt_x): Ditto.
- (vmerge): Ditto.
- (vmv_v): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
- (struct move_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
- (DEF_RVV_WEXTU_OPS): Ditto
- * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
- (v_v): Ditto.
- (v_x): Ditto.
- (x_w): Ditto.
- (x): Ditto.
- * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
- * config/riscv/vector-iterators.md (nmsac):New iterator.
- (nmsub): New iterator.
- * config/riscv/vector.md (@pred_merge<mode>): New pattern.
- (@pred_merge<mode>_scalar): New pattern.
- (*pred_merge<mode>_scalar): New pattern.
- (*pred_merge<mode>_extended_scalar): New pattern.
- (@pred_narrow_<optab><mode>): New pattern.
- (@pred_narrow_<optab><mode>_scalar): New pattern.
- (@pred_trunc<mode>): New pattern.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
- (class vmsbc): Ditto.
- (BASE): Define new class.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
- (vmsbc): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
- New class.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_exact_insn): Adjust for new support
- * config/riscv/riscv-vector-builtins.h
- (function_base::has_merge_operand_p): New function.
- * config/riscv/vector-iterators.md: New iterator.
- * config/riscv/vector.md (@pred_madc<mode>): New pattern.
- (@pred_msbc<mode>): Ditto.
- (@pred_madc<mode>_scalar): Ditto.
- (@pred_msbc<mode>_scalar): Ditto.
- (*pred_madc<mode>_scalar): Ditto.
- (*pred_madc<mode>_extended_scalar): Ditto.
- (*pred_msbc<mode>_scalar): Ditto.
- (*pred_msbc<mode>_extended_scalar): Ditto.
- (@pred_madc<mode>_overflow): Ditto.
- (@pred_msbc<mode>_overflow): Ditto.
- (@pred_madc<mode>_overflow_scalar): Ditto.
- (@pred_msbc<mode>_overflow_scalar): Ditto.
- (*pred_madc<mode>_overflow_scalar): Ditto.
- (*pred_madc<mode>_overflow_extended_scalar): Ditto.
- (*pred_msbc<mode>_overflow_scalar): Ditto.
- (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
- * config/riscv/riscv-v.cc (simm32_p): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
- (class vsbc): Ditto.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
- (vsbc): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc
- (struct no_mask_policy_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc
- (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
- (rvv_arg_type_info::get_tree_type): Ditto.
- (function_expander::use_exact_insn): Ditto.
- * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
- (function_base::use_mask_predication_p): New function.
- * config/riscv/vector-iterators.md: New iterator.
- * config/riscv/vector.md (@pred_adc<mode>): New pattern.
- (@pred_sbc<mode>): Ditto.
- (@pred_adc<mode>_scalar): Ditto.
- (@pred_sbc<mode>_scalar): Ditto.
- (*pred_adc<mode>_scalar): Ditto.
- (*pred_adc<mode>_extended_scalar): Ditto.
- (*pred_sbc<mode>_scalar): Ditto.
- (*pred_sbc<mode>_extended_scalar): Ditto.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: use "zero" reg.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
- class.
- (class vwmulsu): Ditto.
- (class vwcvt): Ditto.
- (BASE): Add integer widening support.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto
- * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
- (vwsub): New class.
- (vwmul): New class.
- (vwmulu): New class.
- (vwmulsu): New class.
- (vwaddu): New class.
- (vwsubu): New class.
- (vwcvt_x): New class.
- (vwcvtu_x): New class.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
- class.
- (struct widen_alu_def): New class.
- (SHAPE): New class.
- * config/riscv/riscv-vector-builtins-shapes.h: New class.
- * config/riscv/riscv-vector-builtins.cc
- (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
- (rvv_arg_type_info::get_tree_type): Ditto.
- * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
- (x_v): Ditto.
- * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
- widening support.
- * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
- * config/riscv/riscv.h (X0_REGNUM): New constant.
- * config/riscv/vector-iterators.md: New iterators.
- * config/riscv/vector.md
- (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
- pattern.
- (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
- Ditto.
- (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
- (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
- Ditto.
- (@pred_widen_mulsu<mode>): Ditto.
- (@pred_widen_mulsu<mode>_scalar): Ditto.
- (@pred_<optab><mode>): Ditto.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
- kito-cheng <kito.cheng@sifive.com>
-
- * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
- * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
- API support.
- (vmulhu): Ditto.
- (vmulhsu): Ditto.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
- New macro.
- (DEF_RVV_FULL_V_U_OPS): Ditto.
- (vint8mf8_t): Ditto.
- (vint8mf4_t): Ditto.
- (vint8mf2_t): Ditto.
- (vint8m1_t): Ditto.
- (vint8m2_t): Ditto.
- (vint8m4_t): Ditto.
- (vint8m8_t): Ditto.
- (vint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_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.
- (vuint8mf8_t): Ditto.
- (vuint8mf4_t): Ditto.
- (vuint8mf2_t): Ditto.
- (vuint8m1_t): Ditto.
- (vuint8m2_t): Ditto.
- (vuint8m4_t): Ditto.
- (vuint8m8_t): Ditto.
- (vuint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_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_FULL_V_I_OPS): Ditto.
- (DEF_RVV_FULL_V_U_OPS): Ditto.
- (check_required_extensions): Add vmulh support.
- (rvv_arg_type_info::get_tree_type): Ditto.
- * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
- (enum rvv_base_type): Ditto.
- * config/riscv/riscv.opt: Add 'V' extension flag.
- * config/riscv/vector-iterators.md (su): New iterator.
- * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
- (@pred_mulh<v_su><mode>_scalar): Ditto.
- (*pred_mulh<v_su><mode>_scalar): Ditto.
- (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/iterators.md: Add sign_extend/zero_extend.
- * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
- * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
- define.
- (vzext): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
- for vsext/vzext support.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
- macro define.
- (DEF_RVV_QEXTI_OPS): Ditto.
- (DEF_RVV_OEXTI_OPS): Ditto.
- (DEF_RVV_WEXTU_OPS): Ditto.
- (DEF_RVV_QEXTU_OPS): Ditto.
- (DEF_RVV_OEXTU_OPS): Ditto.
- (vint16mf4_t): Ditto.
- (vint16mf2_t): Ditto.
- (vint16m1_t): Ditto.
- (vint16m2_t): Ditto.
- (vint16m4_t): Ditto.
- (vint16m8_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.
- (vuint16mf4_t): Ditto.
- (vuint16mf2_t): Ditto.
- (vuint16m1_t): Ditto.
- (vuint16m2_t): Ditto.
- (vuint16m4_t): Ditto.
- (vuint16m8_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_WEXTI_OPS): Ditto.
- (DEF_RVV_QEXTI_OPS): Ditto.
- (DEF_RVV_OEXTI_OPS): Ditto.
- (DEF_RVV_WEXTU_OPS): Ditto.
- (DEF_RVV_QEXTU_OPS): Ditto.
- (DEF_RVV_OEXTU_OPS): Ditto.
- (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
- support.
- (rvv_arg_type_info::get_tree_type): Ditto.
- * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
- * config/riscv/vector-iterators.md (z): New attribute.
- * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
- (@pred_<optab><mode>_vf4): Ditto.
- (@pred_<optab><mode>_vf8): Ditto.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/iterators.md: Add saturating Addition && Subtraction.
- * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
- (vssub): Ditto.
- (vsaddu): Ditto.
- (vssubu): Ditto.
- * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
- support.
- (sll.vv): Ditto.
- (%3,%v4): Ditto.
- (%3,%4): Ditto.
- * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
- (@pred_<optab><mode>_scalar): New pattern.
- (*pred_<optab><mode>_scalar): New pattern.
- (*pred_<optab><mode>_extended_scalar): New pattern.
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/iterators.md: Add neg and not.
- * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
- into alu.
- (vsub): Ditto.
- (vand): Ditto.
- (vor): Ditto.
- (vxor): Ditto.
- (vsll): Ditto.
- (vsra): Ditto.
- (vsrl): Ditto.
- (vmin): Ditto.
- (vmax): Ditto.
- (vminu): Ditto.
- (vmaxu): Ditto.
- (vmul): Ditto.
- (vdiv): Ditto.
- (vrem): Ditto.
- (vdivu): Ditto.
- (vremu): Ditto.
- (vrsub): Ditto.
- (vneg): Ditto.
- (vnot): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
- (struct alu_def): Ditto.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
- * config/riscv/vector-iterators.md: New iterator.
- * config/riscv/vector.md (@pred_<optab><mode>): New pattern
-
-2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
-
-2023-02-11 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/108605
- * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
- item->offset bit position is too large to be representable as
- unsigned int byte position.
-
-2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
-
-2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
- valid_combine only when ira_use_lra_p is true.
-
-2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * params.opt (ira-simple-lra-insn-threshold): Add new param.
- * ira.cc (ira): Use the param to switch on simple LRA.
-
-2023-02-10 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108687
- * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
- back to RFD_NONE mode for calculations.
- (ranger_cache::propagate_cache): Call the internal edge range API
- with RFD_READ_ONLY instead of changing the external routine.
-
-2023-02-10 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108520
- * gimple-range-infer.cc (check_assume_func): Invoke
- gimple_range_global directly instead using global_range_query.
- * value-query.cc (get_range_global): Add function context and
- avoid calling nonnull_arg_p if not cfun.
- (gimple_range_global): Add function context pointer.
- * value-query.h (imple_range_global): Add function context.
-
-2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/constraints.md (Wdm): Adjust constraint.
- (Wbr): New constraint.
- * config/riscv/predicates.md (reg_or_int_operand): New predicate.
- * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
- (emit_vlmax_op): New function.
- (emit_nonvlmax_op): Ditto.
- (simm32_p): Ditto.
- (neg_simm5_p): Ditto.
- (has_vi_variant_p): Ditto.
- * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
- (emit_vlmax_op): New function.
- (emit_nonvlmax_op): Ditto.
- (expand_const_vector): Adjust function.
- (legitimize_move): Ditto.
- (simm32_p): New function.
- (simm5_p): Ditto.
- (neg_simm5_p): Ditto.
- (has_vi_variant_p): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
- unsigned cases.
- (vmax): Ditto.
- (vminu): Remove signed cases.
- (vmaxu): Ditto.
- (vdiv): Remove unsigned cases.
- (vrem): Ditto.
- (vdivu): Remove signed cases.
- (vremu): Ditto.
- (vadd): Adjust.
- (vsub): Ditto.
- (vrsub): New class.
- (vand): Adjust.
- (vor): Ditto.
- (vxor): Ditto.
- (vmul): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
- * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
- * config/riscv/vector-iterators.md: New iterators.
- * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
- support.
- (@pred_<optab><mode>_scalar): New pattern.
- (@pred_sub<mode>_reverse_scalar): Ditto.
- (*pred_<optab><mode>_scalar): Ditto.
- (*pred_<optab><mode>_extended_scalar): Ditto.
- (*pred_sub<mode>_reverse_scalar): Ditto.
- (*pred_sub<mode>_extended_reverse_scalar): Ditto.
-
-2023-02-10 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108724
- * tree-vect-stmts.cc (vectorizable_operation): Avoid
- using word_mode vectors when vector lowering will
- decompose them to elementwise operations.
-
-2023-02-10 Jakub Jelinek <jakub@redhat.com>
+2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
- Revert:
- 2023-02-09 Martin Liska <mliska@suse.cz>
-
- PR target/100758
- * doc/extend.texi: Document that the function
- does not work correctly for old VIA processors.
-
-2023-02-10 Andrew Pinski <apinski@marvell.com>
- Andrew Macleod <amacleod@redhat.com>
-
- PR tree-optimization/108684
- * tree-ssa-dce.cc (simple_dce_from_worklist):
- Check all ssa names and not just non-vdef ones
- before accepting the inline-asm.
- Call unlink_stmt_vdef on the statement before
- removing it.
-
-2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
-
- * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
- * ira.cc (validate_equiv_mem): Check memref address variance.
- (no_equiv): Clear caller_save_p flag.
- (update_equiv_regs): Define caller save equivalence for
- valid_combine.
- (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
- * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
- call_save_p. Use caller save equivalence depending on the arg.
- (split_reg): Adjust the call.
-
-2023-02-09 Jakub Jelinek <jakub@redhat.com>
-
- PR target/100758
- * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
- (cpu_indicator_init): Call get_available_features for all CPUs with
- max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
- fixes.
+ * config/riscv/thead.cc
+ (th_asm_output_opcode): Rewrite some instructions.
-2023-02-09 Jakub Jelinek <jakub@redhat.com>
+2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
- PR tree-optimization/108688
- * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
- of BIT_INSERT_EXPR extracting exactly all inserted bits even
- when without mode precision. Formatting fixes.
+ * config/riscv/riscv.md (none,thv,rvv): New attribute.
+ (no,yes): Add an attribute to disable alternative
+ for xtheadvector or RVV1.0.
+ * config/riscv/vector.md:
+ Disable alternatives that destination register overlaps
+ source register group for xtheadvector.
-2023-02-09 Andrew Pinski <apinski@marvell.com>
+2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
- PR tree-optimization/108688
- * match.pd (bit_field_ref [bit_insert]): Avoid generating
- BIT_FIELD_REFs of non-mode-precision integral operands.
+ * config/riscv/riscv-vector-builtins-bases.cc
+ (class th_loadstore_width): Define new builtin bases.
+ (class th_extract): Define new builtin bases.
+ (BASE): Define new builtin bases.
+ * config/riscv/riscv-vector-builtins-bases.h:
+ Define new builtin class.
+ * config/riscv/riscv-vector-builtins-shapes.cc
+ (struct th_loadstore_width_def): Define new builtin shapes.
+ (struct th_indexed_loadstore_width_def):
+ Define new builtin shapes.
+ (struct th_extract_def): Define new builtin shapes.
+ (SHAPE): Define new builtin shapes.
+ * config/riscv/riscv-vector-builtins-shapes.h:
+ Define new builtin shapes.
+ * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
+ Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
+ * config/riscv/riscv-vector-builtins.h
+ (enum required_ext): Add new XTheadVector member.
+ (struct function_group_info): Likewise.
+ * config/riscv/t-riscv:
+ Add thead-vector-builtins-functions.def
+ * config/riscv/thead-vector.md
+ (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
+ (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
+ (@pred_store_width<vlmem_op_attr><mode>): Likewise.
+ (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
+ (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
+ (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
+ (@pred_th_extract<mode>): Likewise.
+ (*pred_th_extract<mode>): Likewise.
+ * config/riscv/thead-vector-builtins-functions.def: New file.
+
+2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * config.gcc: Add files for XTheadVector intrinsics.
+ * config/riscv/autovec.md: Guard XTheadVector.
+ * config/riscv/predicates.md: Disable immediate vl
+ for XTheadVector.
+ * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
+ Add pragma for XTheadVector.
+ * config/riscv/riscv-string.cc (riscv_expand_block_move):
+ Guard XTheadVector.
+ * config/riscv/riscv-v.cc (vls_mode_valid_p):
+ Avoid autovec.
+ * config/riscv/riscv-vector-builtins-bases.cc:
+ Do not normalize vsetvl instructions for XTheadVector.
+ * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
+ New check type function.
+ (build_one): Adjust for XTheadVector.
+ * config/riscv/riscv-vector-switch.def (ENTRY):
+ Disable fractional mode for the XTheadVector extension.
+ (TUPLE_ENTRY): Likewise.
+ * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
+ Guard XTheadVector.
+ (riscv_preferred_simd_mode): Likewsie.
+ (riscv_autovectorize_vector_modes): Likewise.
+ (riscv_vector_mode_supported_any_target_p): Likewise.
+ (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
+ * config/riscv/thead.cc (th_asm_output_opcode):
+ Rewrite vsetvl instructions.
+ * config/riscv/vector.md:
+ Include thead-vector.md and change fractional LMUL
+ into 1 for vbool.
+ * config/riscv/riscv_th_vector.h: New file.
+ * config/riscv/thead-vector.md: New file.
+
+2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
+ Add new function to add assembler insn code prefix/suffix.
+ (th_asm_output_opcode):
+ Add Thead function to add assembler insn code prefix/suffix.
+ * config/riscv/riscv.cc (riscv_asm_output_opcode):
+ Implement function to add assembler insn code prefix/suffix.
+ * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
+ Add new function to add assembler insn code prefix/suffix.
+ * config/riscv/thead.cc (th_asm_output_opcode):
+ Implement Thead function to add assembler insn code
+ prefix/suffix.
+
+2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
-2023-02-09 Martin Liska <mliska@suse.cz>
+ * common/config/riscv/riscv-common.cc
+ (riscv_subset_list::parse): Add new vendor extension.
+ * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
+ Add test marco.
+ * config/riscv/riscv.opt: Add new mask.
- PR target/100758
- * doc/extend.texi: Document that the function
- does not work correctly for old VIA processors.
+2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
-2023-02-09 Andreas Schwab <schwab@suse.de>
+ * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
+ to be conditional on macosx-version-min.
- * lto-wrapper.cc (merge_and_complain): Handle
- -funwind-tables and -fasynchronous-unwind-tables.
- (append_compiler_options): Likewise.
+2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
-2023-02-09 Richard Biener <rguenther@suse.de>
+ * config/darwin.cc (darwin_objc1_section): Use the correct
+ meta-data version for constant strings.
+ (machopic_select_section): Assert if we fail to handle CFString
+ sections as Obejctive-C meta-data or drectly.
- PR tree-optimization/26854
- * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
- view around insert_updated_phi_nodes_for.
- * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
- in tree view.
- (walk_aliased_vdefs_1): Likewise.
+2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
-2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
+ * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
+ OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
+ OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
+ versions when the object format is Mach-O.
- * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
+2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
-2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+ PR target/105522
+ * config/darwin.cc (machopic_select_section): Handle C and C++
+ CFStrings.
+ (darwin_rename_builtins): Move this out of the CFString code.
+ (darwin_libc_has_function): Likewise.
+ (darwin_build_constant_cfstring): Create an anonymous var to
+ hold each CFString.
+ * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
+ CFstrings.
- PR target/108505
- * config.gcc (tm_mlib_file): Define new variable.
+2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
-2023-02-08 Jakub Jelinek <jakub@redhat.com>
+ PR bootstrap/113445
+ * haifa-sched.cc (dep_list_size): Make global.
+ * sched-deps.cc (find_inc): Use instead of sd_lists_size().
+ * sched-int.h (dep_list_size): Declare.
- PR tree-optimization/108692
- * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
- widened_code which is different from code, don't call
- vect_look_through_possible_promotion but instead just check op is
- SSA_NAME with integral type for which vect_is_simple_use is true
- and call set_op on this_unprom.
+2024-01-18 Martin Jambor <mjambor@suse.cz>
-2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
+ PR tree-optimization/110422
+ * tree-sra.cc (scan_function): Disqualify bases of operands of asm
+ gotos.
- * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
- declaration.
- * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
- definition.
- * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
- to 'aarch_ra_sign_key'.
- * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
- declaration.
- * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
- * config/arm/arm.cc (enum aarch_key_type): Remove definition.
- * config/arm/arm.opt: Define.
+2024-01-18 Richard Biener <rguenther@suse.de>
-2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
+ PR tree-optimization/113475
+ * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
+ * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
+ (phi_analyzer::~phi_analyzer): Deallocate and free collected
+ phi_grous.
+ (phi_analyzer::process_phi): Record allocated phi_groups.
- PR tree-optimization/108316
- * tree-vect-stmts.cc (get_load_store_type): When using
- internal functions for gather/scatter, make sure that the type
- of the offset argument is consistent with the offset vector type.
+2024-01-18 Richard Biener <rguenther@suse.de>
-2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
+ * tree-vect-stmts.cc (vectorizable_store): Do not allocate
+ storage for gvec_oprnds elements.
- Revert:
- 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
+2024-01-18 Richard Biener <rguenther@suse.de>
- * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
- * ira.cc (validate_equiv_mem): Check memref address variance.
- (update_equiv_regs): Define caller save equivalence for
- valid_combine.
- (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
- * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
- call_save_p. Use caller save equivalence depending on the arg.
- (split_reg): Adjust the call.
+ * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
+ prefer all later exits we can handle.
+ (vect_analyze_loop_form): Free the allocated loop body.
+ Adjust comments.
-2023-02-08 Jakub Jelinek <jakub@redhat.com>
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
- * tree.def (SAD_EXPR): Remove outdated comment about missing
- WIDEN_MINUS_EXPR.
+ * config/avr/avr-log.cc: Tabify.
-2023-02-07 Marek Polacek <polacek@redhat.com>
+2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * doc/invoke.texi: Update -fchar8_t documentation.
+ * config/riscv/autovec.md: Support vi variant.
-2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
- * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
- * ira.cc (validate_equiv_mem): Check memref address variance.
- (update_equiv_regs): Define caller save equivalence for
- valid_combine.
- (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
- * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
- call_save_p. Use caller save equivalence depending on the arg.
- (split_reg): Adjust the call.
+ * config/avr/avr-devices.cc: Tabify.
-2023-02-07 Richard Biener <rguenther@suse.de>
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
- PR tree-optimization/26854
- * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
- instead of immediate uses.
-
-2023-02-07 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/106923
- * ipa-split.cc (execute_split_functions): Don't split returns_twice
- functions.
+ * config/avr/avr-c.cc: Tabify.
-2023-02-07 Jakub Jelinek <jakub@redhat.com>
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
- PR tree-optimization/106433
- * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
- (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
+ * config/avr/driver-avr.cc: Tabify.
-2023-02-07 Jan Hubicka <jh@suse.cz>
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
- * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
- for znver4.
-
-2023-02-06 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
- (process_asm): Create a constructor for GCN_STACK_SIZE.
- (main): Parse the -mstack-size option.
-
-2023-02-06 Alex Coplan <alex.coplan@arm.com>
-
- PR target/104921
- * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
- Use correct constraint for operand 3.
-
-2023-02-06 Martin Jambor <mjambor@suse.cz>
-
- * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
-
-2023-02-06 Xi Ruoyao <xry111@xry111.site>
-
- * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
- New define_int_iterator.
- (bytepick_d_ashift_amount): Likewise.
- (bytepick_imm): New define_int_attr.
- (bytepick_w_lshiftrt_amount): Likewise.
- (bytepick_d_lshiftrt_amount): Likewise.
- (bytepick_w_<bytepick_imm>): New define_insn template.
- (bytepick_w_<bytepick_imm>_extend): Likewise.
- (bytepick_d_<bytepick_imm>): Likewise.
- (bytepick_w): Remove unused define_insn.
- (bytepick_d): Likewise.
- (UNSPEC_BYTEPICK_W): Remove unused unspec.
- (UNSPEC_BYTEPICK_D): Likewise.
- * config/loongarch/predicates.md (const_0_to_3_operand):
- Remove unused define_predicate.
- (const_0_to_7_operand): Likewise.
-
-2023-02-06 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108655
- * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
- or -fsanitize=unreachable -fsanitize-trap=unreachable return
- BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
-
-2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/install.texi (Specific): Remove PW32.
-
-2023-02-03 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108647
- * range-op.cc (operator_equal::op1_range,
- operator_not_equal::op1_range): Don't test op2 bound
- equality if op2.undefined_p (), instead set_varying.
- (operator_lt::op1_range, operator_le::op1_range,
- operator_gt::op1_range, operator_ge::op1_range): Return false if
- op2.undefined_p ().
- (operator_lt::op2_range, operator_le::op2_range,
- operator_gt::op2_range, operator_ge::op2_range): Return false if
- op1.undefined_p ().
-
-2023-02-03 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/108639
- * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
- widest_int.
- (irange::operator==): Same.
-
-2023-02-03 Aldy Hernandez <aldyh@redhat.com>
-
- PR tree-optimization/108647
- * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
- (foperator_lt::op2_range): Same.
- (foperator_le::op1_range): Same.
- (foperator_le::op2_range): Same.
- (foperator_gt::op1_range): Same.
- (foperator_gt::op2_range): Same.
- (foperator_ge::op1_range): Same.
- (foperator_ge::op2_range): Same.
- (foperator_unordered_lt::op1_range): Same.
- (foperator_unordered_lt::op2_range): Same.
- (foperator_unordered_le::op1_range): Same.
- (foperator_unordered_le::op2_range): Same.
- (foperator_unordered_gt::op1_range): Same.
- (foperator_unordered_gt::op2_range): Same.
- (foperator_unordered_ge::op1_range): Same.
- (foperator_unordered_ge::op2_range): Same.
-
-2023-02-03 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/107570
- * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
-
-2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
-
- * doc/gm2.texi (Internals): Remove from menu.
- (Using): Comment out ifnohtml conditional.
- (Documentation): Use gcc url.
- (License): Node simplified.
- (Copying): New node. Include gpl_v3_without_node.
- (Contributing): Node simplified.
- (Internals): Commented out.
- (Libraries): Node simplified.
- (Indices): Ditto.
- (Contents): Ditto.
- (Functions): Ditto.
-
-2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
-
- * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
- attribute.
- (mve_vqshluq_m_n_s<mode>): Likewise.
- (mve_vshlq_m_<supf><mode>): Likewise.
- (mve_vsriq_m_n_<supf><mode>): Likewise.
- (mve_vsubq_m_<supf><mode>): Likewise.
-
-2023-02-03 Martin Jambor <mjambor@suse.cz>
-
- PR ipa/108384
- * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
- when comparing to an IPA-CP value.
- (dump_list_of_param_indices): New function.
- (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
- Dump removed candidates using dump_list_of_param_indices.
- * ipa-param-manipulation.cc
- (ipa_param_body_adjustments::modify_expression): Add assert checking
- sizes of a VIEW_CONVERT_EXPR will match.
- (ipa_param_body_adjustments::modify_assignment): Likewise.
-
-2023-02-03 Monk Chiang <monk.chiang@sifive.com>
-
- * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
- * config/riscv/riscv.cc: Ditto.
-
-2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
- (sll.vv): Ditto.
- (%3,%4): Ditto.
- (%3,%v4): Ditto.
- * config/riscv/vector.md: Ditto.
-
-2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
- * config/riscv/riscv-vector-builtins-bases.cc: New class.
- * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
- (vsra): Ditto.
- (vsrl): Ditto.
- * config/riscv/riscv-vector-builtins.cc: Ditto.
- * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
-
-2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
-
- * toplev.cc (toplev::main): Only print the version information header
- from toplevel main().
-
-2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
-
- * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
- cond_{ashl|ashr|lshr}
-
-2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
-
- PR rtl-optimization/108086
- * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
- Adjust size-related commentary accordingly.
-
-2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
-
- PR rtl-optimization/108508
- * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
- the splay tree search gives the first clobber in the second group,
- make sure that the root of the first clobber group is updated
- correctly. Enter the new clobber group into the definition splay
- tree.
+ * config/avr/gen-avr-mmcu-texi.cc: Tabify.
-2023-02-02 Jin Ma <jinma@linux.alibaba.com>
-
- * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
- Fix finding best match score.
-
-2023-02-02 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/106746
- PR rtl-optimization/108463
- PR target/108484
- * cselib.cc (cselib_current_insn): Move declaration earlier.
- (cselib_hasher::equal): For debug only locs, temporarily override
- cselib_current_insn to their l->setting_insn for the
- rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
- promote some debug locs.
- * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
- when using cselib call cselib_lookup_from_insn on the address but
- don't substitute it.
-
-2023-02-02 Richard Biener <rguenther@suse.de>
-
- PR middle-end/108625
- * genmatch.cc (expr::gen_transform): Also disallow resimplification
- from pushing to lseq with force_leaf.
- (dt_simplify::gen_1): Likewise.
-
-2023-02-02 Andrew Stubbs <ams@codesourcery.com>
-
- * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
- (struct kernargs): Replace the common content with kernargs_abi.
- (struct heap): Delete.
- (main): Read GCN_STACK_SIZE envvar.
- Allocate space for the device stacks.
- Write the new kernargs fields.
- * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
- (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
- PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
- (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
- (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
- Set up the stacks from the values in the kernargs, not private.
- (gcn_expand_builtin_1): Match the stack configuration in the prologue.
- (gcn_hsa_declare_function_name): Turn off the private segment.
- (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
- * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
- * config/gcn/gcn.opt (mstack-size): Change the description.
-
-2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR target/108443
- * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
- * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
- addressing MVE predicate modes.
- (mve_bool_vec_to_const): Change to represent correct MVE predicate
- format.
- (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
- modes.
- (arm_vector_mode_supported_p): Likewise.
- (arm_mode_to_pred_mode): Add V2QI.
- * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
- qualifier.
- (UNOP_PRED_PRED_QUALIFIERS): New qualifier
- (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
- (v2qi_UP): New macro.
- (v4bi_UP): New macro.
- (v8bi_UP): New macro.
- (v16bi_UP): New macro.
- (arm_expand_builtin_args): Make it able to expand the new predicate
- modes.
- * config/arm/arm-modes.def (V2QI): New mode.
- * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
- Pred4x4_t): Remove unused predicate builtin types.
- * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
- __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
- __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
- * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
- vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
- * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
- of MODE_VECTOR_BOOL.
- * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
- (MVE_VPRED): Likewise.
- (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
- (MVE_vctp): New mode attribute.
- (mode1): Remove.
- (VCTPQ): Remove.
- (VCTPQ_M): Remove.
- * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
- (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
- attributes.
- (mve_vpnothi): Rename this...
- (mve_vpnotv16bi): ... to this.
- (mve_vctp<mode1>q_mhi): Rename this...
- (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
- (mve_vldrdq_gather_base_z_<supf>v2di,
- mve_vldrdq_gather_offset_z_<supf>v2di,
- mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
- mve_vstrdq_scatter_base_p_<supf>v2di,
- mve_vstrdq_scatter_offset_p_<supf>v2di,
- mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
- mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
- mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
- mve_vstrdq_scatter_base_wb_p_<supf>v2di,
- mve_vldrdq_gather_base_wb_z_<supf>v2di,
- mve_vldrdq_gather_base_nowb_z_<supf>v2di,
- mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
- predicates.
- * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
- these...
- (VCTP): ... with this.
- (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
- (VCTP_M): ... with this.
- * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
- VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
-
-2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR target/107674
- * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
- (arm_modes_tieable_p): Make MVE predicate modes tieable.
- * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
- * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
- simplify_subreg to simplify subregs where the outermode is not scalar.
-
-2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
-
- PR target/107674
- * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
- new qualifiers parameter and use unsigned short type for MVE predicate.
- (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
- parameter.
- (arm_init_crypto_builtins): Likewise.
-
-2023-02-02 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/107300
- * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
- * internal-fn.def (TRAP): Remove.
- * internal-fn.cc (expand_TRAP): Remove.
- * tree.cc (build_common_builtin_nodes): Define
- BUILT_IN_UNREACHABLE_TRAP if not yet defined.
- (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
- instead of BUILT_IN_TRAP.
- * gimple.cc (gimple_build_builtin_unreachable): Remove
- emitting internal function for BUILT_IN_TRAP.
- * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
- * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
- BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
- * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
- BUILT_IN_UNREACHABLE_TRAP.
- * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
- * tree-cfg.cc (verify_gimple_call,
- pass_warn_function_return::execute): Likewise.
- * attribs.cc (decl_attributes): Don't report exclusions on
- BUILT_IN_UNREACHABLE_TRAP either.
-
-2023-02-02 liuhongt <hongtao.liu@intel.com>
-
- PR tree-optimization/108601
- * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
- * tree-vect-loop.cc
- (vectorizable_nonlinear_induction): Remove
- vect_can_peel_nonlinear_iv_p.
- (vect_can_peel_nonlinear_iv_p): Don't peel
- nonlinear iv(mult or shift) for epilog when vf is not
- constant and moved the defination to ..
- * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
- .. Here.
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
-2023-02-02 Jakub Jelinek <jakub@redhat.com>
+ * config/avr/gen-avr-mmcu-specs.cc: Tabify.
- PR middle-end/108435
- * tree-nested.cc (convert_nonlocal_omp_clauses)
- <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
- is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
- before calling declare_vars.
- (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
- with the OMP_CLAUSE_LASTPRIVATE handling except for whether
- seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
- or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
+2024-01-18 Jakub Jelinek <jakub@redhat.com>
-2023-02-01 Tamar Christina <tamar.christina@arm.com>
+ * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
+ minline-strcmp, minline-strncmp, minline-strlen,
+ -param=riscv-vector-abi): Remove Bool keywords.
- * common/config/aarch64/aarch64-common.cc
- (struct aarch64_option_extension): Add native_detect and document struct
- a bit more.
- (all_extensions): Set new field native_detect.
- * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
- unused struct.
+2024-01-18 Jakub Jelinek <jakub@redhat.com>
-2023-02-01 Martin Liska <mliska@suse.cz>
-
- * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
- value if set.
-
-2023-02-01 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108356
- * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
- do a search of the DOM tree for a range.
-
-2023-02-01 Martin Liska <mliska@suse.cz>
-
- PR ipa/108509
- * cgraphunit.cc (walk_polymorphic_call_targets): Insert
- ony non-null values.
- * ipa.cc (walk_polymorphic_call_targets): Likewise.
-
-2023-02-01 Martin Liska <mliska@suse.cz>
-
- PR driver/108572
- * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
- -gz=zstd.
-
-2023-02-01 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/108573
- * ree.cc (combine_reaching_defs): Don't return false for paradoxical
- subregs in DEBUG_INSNs.
-
-2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
-
- * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
-
-2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390.cc (s390_restore_gpr_p): New function.
- (s390_preserve_gpr_arg_in_range_p): New function.
- (s390_preserve_gpr_arg_p): New function.
- (s390_preserve_fpr_arg_p): New function.
- (s390_register_info_stdarg_fpr): Rename to ...
- (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
- (s390_register_info_stdarg_gpr): Rename to ...
- (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
- (s390_register_info): Use the renamed functions above.
- (s390_optimize_register_info): Likewise.
- (save_fpr): Generate CFI for -mpreserve-args.
- (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
- (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
- (s390_optimize_prologue): Likewise.
- * config/s390/s390.opt: New option -mpreserve-args
-
-2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
- (restore_gprs): Likewise.
- (s390_emit_stack_tie): Make the stack_tie to be dependent on the
- frame pointer if a frame-pointer is used.
- (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
- * config/s390/s390.md (stack_tie): Add a register operand and
- rename to ...
- (@stack_tie<mode>): ... this.
-
-2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
-
- * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
- EMIT_CFI parameter.
- (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
- * reg-notes.def (REG_CFA_NOTE): New reg note definition.
-
-2023-02-01 Richard Biener <rguenther@suse.de>
-
- PR middle-end/108500
- * dominance.cc (assign_dfs_numbers): Replace recursive DFS
- with tree traversal algorithm.
-
-2023-02-01 Jason Merrill <jason@redhat.com>
-
- * doc/invoke.texi: Document -Wno-changes-meaning.
-
-2023-02-01 David Malcolm <dmalcolm@redhat.com>
-
- * doc/invoke.texi (Static Analyzer Options): Add notes about
- limitations of -fanalyzer.
-
-2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/constraints.md (vj): New.
- (vk): Ditto
- * config/riscv/iterators.md: Add more opcode.
- * config/riscv/predicates.md (vector_arith_operand): New.
- (vector_neg_arith_operand): New.
- (vector_shift_operand): New.
- * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
- * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
- (vsub): Ditto.
- (vand): Ditto.
- (vor): Ditto.
- (vxor): Ditto.
- (vsll): Ditto.
- (vsra): Ditto.
- (vsrl): Ditto.
- (vmin): Ditto.
- (vmax): Ditto.
- (vminu): Ditto.
- (vmaxu): Ditto.
- (vmul): Ditto.
- (vdiv): Ditto.
- (vrem): Ditto.
- (vdivu): Ditto.
- (vremu): Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
- (vsub): Ditto.
- (vand): Ditto.
- (vor): Ditto.
- (vxor): Ditto.
- (vsll): Ditto.
- (vsra): Ditto.
- (vsrl): Ditto.
- (vmin): Ditto.
- (vmax): Ditto.
- (vminu): Ditto.
- (vmaxu): Ditto.
- (vmul): Ditto.
- (vdiv): Ditto.
- (vrem): Ditto.
- (vdivu): Ditto.
- (vremu): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
- * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
- (DEF_RVV_U_OPS): New.
- (rvv_arg_type_info::get_base_vector_type): Handle
- RVV_BASE_shift_vector.
- (rvv_arg_type_info::get_tree_type): Ditto.
- * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
- RVV_BASE_shift_vector.
- * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
- * config/riscv/vector-iterators.md: Handle more opcode.
- * config/riscv/vector.md (@pred_<optab><mode>): New.
-
-2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
-
- PR target/108589
- * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
- REG_P on SET_DEST.
-
-2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
-
- PR tree-optimization/108608
- * tree-vect-loop.cc (vect_transform_reduction): Handle single
- def-use cycles that involve function calls rather than tree codes.
-
-2023-01-31 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108385
- * gimple-range-gori.cc (gori_compute::compute_operand_range):
- Allow VARYING computations to continue if there is a relation.
- * range-op.cc (pointer_plus_operator::op2_range): New.
-
-2023-01-31 Andrew MacLeod <amacleod@redhat.com>
-
- PR tree-optimization/108359
- * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
- (range_operator::fold_range): If op1 is equivalent to op2 then
- invoke new fold_in_parts_equiv to operate on sub-components.
- * range-op.h (wi_fold_in_parts_equiv): New prototype.
-
-2023-01-31 Andrew MacLeod <amacleod@redhat.com>
-
- * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
- not abort calculations if there is a valid relation available.
- (gori_compute::refine_using_relation): Pass correct relation trio.
- (gori_compute::compute_operand1_range): Create trio and use it.
- (gori_compute::compute_operand2_range): Ditto.
- * range-op.cc (operator_plus::op1_range): Use correct trio member.
- (operator_minus::op1_range): Use correct trio member.
- * value-relation.cc (value_relation::create_trio): New.
- * value-relation.h (value_relation::create_trio): New prototype.
-
-2023-01-31 Jakub Jelinek <jakub@redhat.com>
-
- PR target/108599
- * config/i386/i386-expand.cc
- (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
- CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
- equal to bitsize of mode.
-
-2023-01-31 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/108596
- * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
- ends with asm goto and has a crossing fallthrough edge to the same bb
- that contains at least one of its labels by restoring EDGE_CROSSING
- flag even on possible edge from cur_bb to new_bb successor.
-
-2023-01-31 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/105593
- * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
- _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
- _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
- _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
- uninitialized automatic variable __W.
-
-2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
-
-2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-protos.h (get_vector_mode): New function.
- * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
- * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
- (class loadstore): Adjust for indexed loads/stores support.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: New function declare.
- * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
- (vluxei16): Ditto.
- (vluxei32): Ditto.
- (vluxei64): Ditto.
- (vloxei8): Ditto.
- (vloxei16): Ditto.
- (vloxei32): Ditto.
- (vloxei64): Ditto.
- (vsuxei8): Ditto.
- (vsuxei16): Ditto.
- (vsuxei32): Ditto.
- (vsuxei64): Ditto.
- (vsoxei8): Ditto.
- (vsoxei16): Ditto.
- (vsoxei32): Ditto.
- (vsoxei64): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc
- (struct indexed_loadstore_def): New class.
- (SHAPE): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
- * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
- for indexed loads/stores support.
- (check_required_extensions): Ditto.
- (rvv_arg_type_info::get_base_vector_type): New function.
- (rvv_arg_type_info::get_tree_type): Ditto.
- (function_builder::add_unique_function): Adjust for indexed loads/stores
- support.
- (function_expander::use_exact_insn): New function.
- * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
- indexed loads/stores support.
- (struct rvv_arg_type_info): Ditto.
- (function_expander::index_mode): New function.
- (function_base::apply_tail_policy_p): Ditto.
- (function_base::apply_mask_policy_p): Ditto.
- * config/riscv/vector-iterators.md (unspec): New unspec.
- * config/riscv/vector.md (unspec): Ditto.
- (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
- pattern.
- (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
- (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
- (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
+ PR target/113122
+ * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
+ support. Add missing space after , in emitted assembly in some
+ cases. Formatting fixes.
-2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
+2024-01-18 Xi Ruoyao <xry111@xry111.site>
- * config.gcc: Recognize x86_64-*-gnu* targets and include
- i386/gnu64.h.
- * config/i386/gnu64.h: Define configuration for new target
- including ld.so location.
+ * config/loongarch/loongarch.md (movsi_internal): Remove
+ constraint z.
-2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
+2024-01-18 Georg-Johann Lay <avr@gjlay.de>
- * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
- ampere1a to include SM4.
+ * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
+ in the diagnostic, and capitalize the device name.
+ (print_mcu): Generate specs such that:
+ <*check_rodata_in_ram>: New.
+ <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
+ <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
+ <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
-2023-01-30 Andrew Pinski <apinski@marvell.com>
+2024-01-18 Jakub Jelinek <jakub@redhat.com>
- PR tree-optimization/108582
- * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
- for middlebb to have no phi nodes.
+ PR other/113399
+ * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
+ Common and Optimization.
-2023-01-30 Richard Biener <rguenther@suse.de>
+2024-01-18 Richard Biener <rguenther@suse.de>
- PR tree-optimization/108574
- * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
- sameval and def, ignore the equivalence if there's the
- danger of oscillating between two values.
+ PR tree-optimization/113431
+ * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
+ When there is an invariant load we might not preserve
+ scalar order.
-2023-01-30 Andreas Schwab <schwab@suse.de>
+2024-01-18 Richard Biener <rguenther@suse.de>
- * common/config/riscv/riscv-common.cc
- (riscv_option_optimization_table)
- [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
- -fasynchronous-unwind-tables and -funwind-tables.
- * config.gcc (riscv*-*-linux*): Define
- TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
+ PR tree-optimization/113374
+ * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
+ * tree-vect-loop.cc (move_early_exit_stmts): Update
+ virtual LC PHIs.
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Refactor. Preserve virtual LC PHIs on all exits.
-2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
+2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
- * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
- value of includedir.
+ * config/loongarch/loongarch.cc (loongarch_split_symbol):
+ Assign the '/u' attribute to the mem.
-2023-01-30 Richard Biener <rguenther@suse.de>
+2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
- PR ipa/108511
- * cgraph.cc (possibly_call_in_translation_unit_p): Relax
- assert.
+ PR middle-end/110847
+ * doc/invoke.texi (Option Summary): Document negative forms of
+ -Wtsan and -Wxor-used-as-pow.
+ (Warning Options): Likewise.
-2023-01-30 liuhongt <hongtao.liu@intel.com>
+2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
- * doc/invoke.texi: Ditto.
+ PR target/113429
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
-2023-01-29 Jan Hubicka <hubicka@ucw.cz>
+2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
- * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
- (stmt_may_terminate_function_p): If assuming return or EH
- volatile asm is safe.
- (find_always_executed_bbs): Fix handling of terminating BBS and
- infinite loops; add debug output.
- * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
+ * doc/extend.texi (Common Function Attributes): Re-alphabetize
+ the table.
+ (Common Variable Attributes): Likewise.
+ (Common Type Attributes): Likewise.
-2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
+2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
- * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
- off-by-one in checking the permissible shift-amount.
+ PR middle-end/111659
+ * doc/extend.texi (Common Variable Attributes): Fix long lines
+ in documentation of strict_flex_array + other minor copy-editing.
+ Add a cross-reference to -Wstrict-flex-arrays.
+ * doc/invoke.texi (Option Summary): Fix whitespace in tables
+ before -fstrict-flex-arrays and -Wstrict-flex-arrays.
+ (C Dialect Options): Combine the docs for the two
+ -fstrict-flex-arrays forms into a single entry. Note this option
+ is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
+ (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
+ Minor copy-editing. Add cross references to the strict_flex_array
+ attribute and -fstrict-flex-arrays option. Add note that this
+ option depends on -ftree-vrp.
-2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
- * doc/extend.texi (Named Address Spaces): Update link to the
- AVR-Libc manual.
+ PR target/113221
+ * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
+ only allow REG operands instead of allowing all.
-2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
- * doc/standards.texi (Standards): Fix markup.
+ * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
+ Remove redundant checks in else condition for readablity.
+ (earliest_fuse_vsetvl_info) Print iteration count in debug
+ prints.
+ (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
+ dump details in certain cases.
-2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
- * doc/standards.texi (Standards): Update link to Objective-C book.
+ * config/riscv/riscv.opt: New -param=vsetvl-strategy.
+ * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
+ * config/riscv/riscv-vsetvl.cc
+ (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
+ (pass_vsetvl::execute): Use vsetvl_strategy.
-2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-17 Jan Hubicka <jh@suse.cz>
- * doc/invoke.texi (Instrumentation Options): Update reference to
- AddressSanitizer.
+ * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
+ accidental hack reseting offset.
-2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-17 Jan Hubicka <jh@suse.cz>
- * doc/standards.texi: Update Go1 link.
+ * config/i386/i386-options.cc (ix86_option_override_internal): Fix
+ handling of X86_TUNE_AVOID_512FMA_CHAINS.
-2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-17 Jan Hubicka <jh@suse.cz>
+ Jakub Jelinek <jakub@redhat.com>
- * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
- * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
- Support vlse/vsse.
- (BASE): Ditto.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
- (vsse): New class.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::use_contiguous_load_insn): Support vlse/vsse.
- * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
- (@pred_strided_store<mode>): Ditto.
+ PR tree-optimization/110852
+ * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
+ binary operations
+ (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
+ PRED_COMBINED_VALUE_PREDICTIONS_PHI
+ * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
+ (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
-2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-17 Jakub Jelinek <jakub@redhat.com>
- * config/riscv/vector.md (tail_policy_op_idx): Remove.
- (mask_policy_op_idx): Remove.
- (avl_type_op_idx): Remove.
+ PR tree-optimization/113421
+ * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
+ comment.
+ (bitint_dom_walker::before_dom_children): Add g temporary to simplify
+ formatting. Start at vop rather than cvop even if stmt is a store
+ and needs_operand_addr.
-2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
+2024-01-17 Jakub Jelinek <jakub@redhat.com>
- PR tree-optimization/96373
- * tree.h (sign_mask_for): Declare.
- * tree.cc (sign_mask_for): New function.
- (signed_or_unsigned_type_for): For vector types, try to use the
- related_int_vector_mode.
- * genmatch.cc (commutative_op): Handle conditional internal functions.
- * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
+ PR middle-end/113410
+ * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
+ If access_nelts is integral with larger precision than sizetype,
+ fold_convert it to sizetype.
-2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
+2024-01-17 Jakub Jelinek <jakub@redhat.com>
- * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
- Use the likely minimum VF when bounding the denominators to
- the estimated number of iterations.
+ PR tree-optimization/113408
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
+ VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
+ to handle_cast.
-2023-01-27 Richard Biener <rguenther@suse.de>
+2024-01-17 Jakub Jelinek <jakub@redhat.com>
- PR target/55522
- * doc/invoke.texi (-shared): Clarify effect on -ffast-math
- and -Ofast FP environment side-effects.
+ PR middle-end/113406
+ * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
+ regardless of whether is_gimple_reg_type (restype) or not.
-2023-01-27 Richard Biener <rguenther@suse.de>
+2024-01-17 Jakub Jelinek <jakub@redhat.com>
- PR target/55522
- * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
- Don't add crtfastmath.o for -shared.
+ * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
+ funcions -> functions, and use were instead of was.
+ * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
+ and guaranteee -> guarantee.
+ * attribs.h (struct attr_access): Fix comment typo funcion -> function.
-2023-01-27 Richard Biener <rguenther@suse.de>
+2024-01-17 Jakub Jelinek <jakub@redhat.com>
- PR target/55522
- * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
- for -shared.
+ PR middle-end/113409
+ * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
+ INTEGER_TYPE.
+ (omp_extract_for_data): Use build_bitint_type rather than
+ build_nonstandard_integer_type if either iter_type or loop->v type
+ is BITINT_TYPE.
+ * omp-expand.cc (expand_omp_for_generic,
+ expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
+ BITINT_TYPE like INTEGER_TYPE.
-2023-01-27 Richard Biener <rguenther@suse.de>
+2024-01-17 Richard Biener <rguenther@suse.de>
- PR target/55522
- * config/alpha/linux.h (ENDFILE_SPEC): Don't add
- crtfastmath.o for -shared.
+ PR tree-optimization/113371
+ * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
+ Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
+ * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
+ not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
-2023-01-27 Andrew MacLeod <amacleod@redhat.com>
+2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
- PR tree-optimization/108306
- * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
- varying for shifts that are always out of void range.
- (operator_rshift::fold_range): Return [0, 0] not
- varying for shifts that are always out of void range.
+ PR rtl-optimization/96388
+ PR rtl-optimization/111554
+ * sched-deps.cc (find_inc): Avoid exponential behavior.
-2023-01-27 Andrew MacLeod <amacleod@redhat.com>
+2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
- PR tree-optimization/108447
- * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
- Do not attempt to fold HONOR_NAN types.
+ PR c/111693
+ * doc/invoke.texi (Option Summary): Move -Wuseless-cast
+ from C++ Language Options to Warning Options. Add entry for
+ -Wuse-after-free.
+ (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
+ from here....
+ (Warning Options): ...to here. Minor copy-editing to fix typo
+ and grammar.
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-17 YunQiang Su <syq@gcc.gnu.org>
- * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
- Remove _m suffix for "vop_m" C++ overloaded API name.
+ * config/mips/mips.cc (mips_compute_frame_info): If another
+ register is used as global_pointer, mark $GP live false.
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
- * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
- * config/riscv/riscv-vector-builtins-bases.h: Ditto.
- * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
- (vsm): Ditto.
- * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
- * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
- (vbool64_t): Ditto.
- (vbool32_t): Ditto.
- (vbool16_t): Ditto.
- (vbool8_t): Ditto.
- (vbool4_t): Ditto.
- (vbool2_t): Ditto.
- (vbool1_t): Ditto.
- * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
- (rvv_arg_type_info::get_tree_type): Ditto.
- (function_expander::use_contiguous_load_insn): Ditto.
- * config/riscv/vector.md (@pred_store<mode>): Ditto.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
- (vsetvl_discard_result_insn_p): New function.
- (reg_killed_by_bb_p): rename to find_reg_killed_by.
- (find_reg_killed_by): New name.
- (get_vl): allow it to be called by more functions.
- (has_vsetvl_killed_avl_p): Add condition.
- (get_avl): allow it to be called by more functions.
- (insn_should_be_added_p): New function.
- (get_all_nonphi_defs): Refine function.
- (get_all_sets): Ditto.
- (get_same_bb_set): New function.
- (any_insn_in_bb_p): Ditto.
- (any_set_in_bb_p): Ditto.
- (get_vl_vtype_info): Add VLMAX forward optimization.
- (source_equal_p): Fix issues.
- (extract_single_source): Refine.
- (avl_info::multiple_source_equal_p): New function.
- (avl_info::operator==): Adjust for final version.
- (vl_vtype_info::operator==): Ditto.
- (vl_vtype_info::same_avl_p): Ditto.
- (vector_insn_info::parse_insn): Ditto.
- (vector_insn_info::available_p): New function.
- (vector_insn_info::merge): Adjust for final version.
- (vector_insn_info::dump): Add hard_empty.
- (pass_vsetvl::hard_empty_block_p): New function.
- (pass_vsetvl::backward_demand_fusion): Adjust for final version.
- (pass_vsetvl::forward_demand_fusion): Ditto.
- (pass_vsetvl::demand_fusion): Ditto.
- (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
- (pass_vsetvl::compute_local_properties): Adjust for final version.
- (pass_vsetvl::can_refine_vsetvl_p): Ditto.
- (pass_vsetvl::refine_vsetvls): Ditto.
- (pass_vsetvl::commit_vsetvls): Ditto.
- (pass_vsetvl::propagate_avl): New function.
- (pass_vsetvl::lazy_vsetvl): Adjust for new version.
- * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
-
-2023-01-27 Jakub Jelinek <jakub@redhat.com>
-
- PR other/108560
- * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
- from size_t to int.
-
-2023-01-27 Jakub Jelinek <jakub@redhat.com>
-
- PR ipa/106061
- * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
- redirection of calls to __builtin_trap in addition to redirection
- to __builtin_unreachable.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
- (emit_vsetvl_insn): Ditto.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix constraints.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
-
-2023-01-27 Patrick Palka <ppalka@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
+ PR target/112973
+ * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
+ give the section a light copy-editing pass.
- * tree-core.h (tree_code_type, tree_code_length): For
- C++17 and later, add inline keyword, otherwise don't define
- the arrays, but declare extern arrays.
- * tree.cc (tree_code_type, tree_code_length): Define these
- arrays for C++14 and older.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.h: Change it into public.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
- pass.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
-
-2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/vector.md: Fix incorrect attributes.
-
-2023-01-27 Richard Biener <rguenther@suse.de>
-
- PR target/55522
- * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
- Don't add crtfastmath.o for -shared.
-
-2023-01-27 Alexandre Oliva <oliva@gnu.org>
-
- * doc/options.texi (option, RejectNegative): Mention that
- -g-started options are also implicitly negatable.
-
-2023-01-26 Kito Cheng <kito.cheng@sifive.com>
-
- * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
- Use get_typenode_from_name to get fixed-width integer type
- nodes.
- * config/riscv/riscv-vector-builtins.def: Update define with
- fixed-width integer type nodes.
-
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
-
- * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
- (real_insn_and_same_bb_p): New function.
- (same_bb_and_after_or_equal_p): Remove it.
- (before_p): New function.
- (reg_killed_by_bb_p): Ditto.
- (has_vsetvl_killed_avl_p): Ditto.
- (get_vl): Move location so that we can call it.
- (anticipatable_occurrence_p): Fix issue of AVL=REG support.
- (available_occurrence_p): Ditto.
- (dominate_probability_p): Remove it.
- (can_backward_propagate_p): Remove it.
- (get_all_nonphi_defs): New function.
- (get_all_predecessors): Ditto.
- (any_insn_in_bb_p): Ditto.
- (insert_vsetvl): Adjust AVL REG.
- (source_equal_p): New function.
- (extract_single_source): Ditto.
- (avl_info::single_source_equal_p): Ditto.
- (avl_info::operator==): Adjust for AVL=REG.
- (vl_vtype_info::same_avl_p): Ditto.
- (vector_insn_info::set_demand_info): Remove it.
- (vector_insn_info::compatible_p): Adjust for AVL=REG.
- (vector_insn_info::compatible_avl_p): New function.
- (vector_insn_info::merge): Adjust AVL=REG.
- (vector_insn_info::dump): Ditto.
- (pass_vsetvl::merge_successors): Remove it.
- (enum fusion_type): New enum.
- (pass_vsetvl::get_backward_fusion_type): New function.
- (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
- (pass_vsetvl::forward_demand_fusion): Ditto.
- (pass_vsetvl::demand_fusion): Ditto.
- (pass_vsetvl::prune_expressions): Ditto.
- (pass_vsetvl::compute_local_properties): Ditto.
- (pass_vsetvl::cleanup_vsetvls): Ditto.
- (pass_vsetvl::commit_vsetvls): Ditto.
- (pass_vsetvl::init): Ditto.
- * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
- (enum merge_type): New enum.
-
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
- * config/riscv/riscv-vsetvl.cc
- (vector_infos_manager::vector_infos_manager): Add probability.
- (vector_infos_manager::dump): Ditto.
- (pass_vsetvl::compute_probabilities): Ditto.
- * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
+ * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
+ * config/aarch64/aarch64-tune.md: Regenerated.
+ * doc/invoke.texi (-mcpu): Add cobalt-100 core.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
- * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
- (vector_insn_info::merge): Ditto.
- (vector_insn_info::dump): Ditto.
- (pass_vsetvl::merge_successors): Ditto.
- (pass_vsetvl::backward_demand_fusion): Ditto.
- (pass_vsetvl::forward_demand_fusion): Ditto.
- (pass_vsetvl::commit_vsetvls): Ditto.
- * config/riscv/riscv-vsetvl.h: Ditto.
+ PR target/112573
+ * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
+ badly formed CONST expressions.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Daniel Cederman <cederman@gaisler.com>
- * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
- rinsn.
+ * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Daniel Cederman <cederman@gaisler.com>
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
+ * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
+ * config/sparc/sync.md (membar_storeload): Turn into named insn
+ and add GR712RC errata workaround.
+ (membar_v8): Add GR712RC errata workaround.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Andreas Larsson <andreas@gaisler.com>
- * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
- Add pre-check for redundant flow.
+ * config/sparc/sync.md (*membar_storeload_leon3): Remove
+ (*membar_storeload): Enable for LEON
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Jakub Jelinek <jakub@redhat.com>
- * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
- (vector_infos_manager::free_bitmap_vectors): Ditto.
- (pass_vsetvl::pre_vsetvl): Adjust codes.
- * config/riscv/riscv-vsetvl.h: New function declaration.
+ PR tree-optimization/113372
+ PR middle-end/90348
+ PR middle-end/110115
+ PR middle-end/111422
+ * cfgexpand.cc (add_scope_conflicts_2): New function.
+ (add_scope_conflicts_1): Use it.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Georg-Johann Lay <avr@gjlay.de>
- * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
- (vector_insn_info::set_demand_info): New function.
- (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
- (pass_vsetvl::merge_successors): Ditto.
- (pass_vsetvl::compute_global_backward_infos): Ditto.
- (pass_vsetvl::backward_demand_fusion): Ditto.
- (pass_vsetvl::forward_demand_fusion): Ditto.
- (pass_vsetvl::demand_fusion): New function.
- (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
- * config/riscv/riscv-vsetvl.h: New function declaration.
+ * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
+ (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
+ * doc/avr-mmcu.texi: Regenerate.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
- * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
+ PR tree-optimization/113091
+ * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
+ (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
+ scalar use with new function.
+ (vect_bb_slp_mark_live_stmts): New function as entry to existing
+ overriden functions with same name.
+ (vect_slp_analyze_operations): Call new entry function to mark
+ live statements.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
- (pass_vsetvl::compute_global_backward_infos): Simplify codes.
+ PR target/113404
+ * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
+ for RVV in big-endian mode.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
- * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
- (backward_propagate_worthwhile_p): Fix non-worthwhile.
+ * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
+ (riscv_pass_in_vector_p): Delete.
+ (riscv_init_cumulative_args): Delete the checking.
+ (riscv_get_arg_info): Delete the checking.
+ (riscv_function_value): Delete the checking.
+ * config/riscv/riscv.h: Delete the member for checking.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-15 Georg-Johann Lay <avr@gjlay.de>
- * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
+ * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
- * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
- (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
- (pass_vsetvl::commit_vsetvls): Ditto.
- * config/riscv/riscv-vsetvl.h: New function declaration.
+ * config.gcc: Include riscv_bitmanip.h.
+ * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
+ * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
+ * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
+ (RISCV_BUILTIN_NO_PREFIX): New helper macro.
+ * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
+ * config/riscv/riscv-ftypes.def (2): New ftypes.
+ * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
+ (RISCV_BUILTIN_NO_PREFIX): Likewise.
+ * config/riscv/riscv_bitmanip.h: New file.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
- * config/riscv/vector.md:
+ * config.gcc: Include riscv_crypto.h.
+ * config/riscv/riscv_crypto.h: New file.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
- * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
- pred_store for vse.
- * config/riscv/riscv-vector-builtins.cc
- (function_expander::add_mem_operand): Refine function.
- (function_expander::use_contiguous_load_insn): Adjust new
- implementation.
- (function_expander::use_contiguous_store_insn): Ditto.
- * config/riscv/riscv-vector-builtins.h: Refine function.
- * config/riscv/vector.md (@pred_store<mode>): New pattern.
+ PR middle-end/113354
+ * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
+ in the insn if the corresponding operand does not require hard
+ register anymore.
-2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+2024-01-15 Georg-Johann Lay <avr@gjlay.de>
- * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
+ PR target/107201
+ * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
+ * config/avr/driver-avr.cc (avr_no_devlib): New function.
+ (avr_devicespecs_file): Use it to remove -nodevicelib from the
+ options for cores only.
+ * config/avr/avr-arch.h (avr_get_parch): New prototype.
+ * config/avr/avr-devices.cc (avr_get_parch): New function.
-2023-01-26 Marek Polacek <polacek@redhat.com>
+2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR middle-end/108543
- * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
- if it was previously set.
+ PR target/113247
+ * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
+ * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
+ * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
-2023-01-26 Jakub Jelinek <jakub@redhat.com>
+2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR tree-optimization/108540
- * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
- are singletons, use range_true even if op1 != op2
- when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
- even if intersection of the ranges is empty and one has
- zero low bound and another zero high bound, use range_true_and_false
- rather than range_false.
- (foperator_not_equal::fold_range): If both op1 and op2
- are singletons, use range_false even if op1 != op2
- when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
- even if intersection of the ranges is empty and one has
- zero low bound and another zero high bound, use range_true_and_false
- rather than range_true.
+ PR target/113281
+ * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
+ (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
+ * config/riscv/riscv-vector-costs.h: New function.
-2023-01-26 Jakub Jelinek <jakub@redhat.com>
+2024-01-15 Richard Biener <rguenther@suse.de>
- * value-relation.cc (kind_string): Add const.
- (rr_negate_table, rr_swap_table, rr_intersect_table,
- rr_union_table, rr_transitive_table): Add static const, change
- element type from relation_kind to unsigned char.
- (relation_negate, relation_swap, relation_intersect, relation_union,
- relation_transitive): Cast rr_*_table element to relation_kind.
- (relation_to_code): Add static const.
- (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
+ PR tree-optimization/113385
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ First redirect, then split the exit edge.
-2023-01-26 Richard Biener <rguenther@suse.de>
+2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR tree-optimization/108547
- * gimple-predicate-analysis.cc (value_sat_pred_p):
- Use widest_int.
+ * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
+ Remove m_num_vector_iterations.
+ * config/riscv/riscv-vector-costs.h: Ditto.
-2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
+2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
- PR tree-optimization/108522
- * tree-object-size.cc (compute_object_offset): Make EXPR
- argument non-const. Call component_ref_field_offset.
+ PR target/113156
+ * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
+ (-mbranch-cost): Set "Optimization" flag.
-2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+2024-01-15 Jakub Jelinek <jakub@redhat.com>
- * config/aarch64/aarch64-option-extensions.def (cssc): Specify
- FEATURE_STRING field.
+ PR tree-optimization/113370
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
+ set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
+ set it to just prec % limb_prec.
-2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
+2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
+ PR target/113393
+ * config/riscv/vector.md: Fix ternary attributes.
-2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
+2024-01-14 Georg-Johann Lay <avr@gjlay.de>
- PR modula2/102343
- PR modula2/108182
- * gcc.cc: Provide default specs for Modula-2 so that when the
- language is not built-in better diagnostics are emitted for
- attempts to use .mod or .m2i file extensions.
+ PR target/112944
+ * configure.ac [target=avr]: Check availability of emulations
+ avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
+ HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
+ __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
+ * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
+ * config/avr/avr-arch.h (enum avr_device_specific_features):
+ Add AVR_ISA_FLMAP.
+ * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
+ AVR_ISA_FLMAP.
+ * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
+ (avr_set_core_architecture): Set avr_arch_index.
+ (have_avrxmega2_flmap, have_avrxmega4_flmap)
+ (have_avrxmega3_rodata_in_flash): Set new static const bool according
+ to configure results.
+ (avr_rodata_in_flash_p): New function using them.
+ (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
+ track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
+ (avr_asm_named_section): Track avr_has_rodata_p.
+ (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
+ and not avr_rodata_in_flash_p ().
+ * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
+ (LINK_SPEC): Add %(link_rodata_in_ram).
+ (LINK_ARCH_SPEC): Remove.
+ * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
+ (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
+ const bool according to configure results.
+ (diagnose_mrodata_in_ram): New function.
+ (print_mcu): Generate specs with the following changes:
+ <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
+ need to extend avr/specs.h each time we add a new bell or whistle.
+ <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
+ -m[no-]rodata-in-ram.
+ <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
+ <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
+ <*cpp>: Add %(cpp_rodata_in_ram).
+ <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
+ requested.
+ <*self_spec>: Add -mflmap or %<mflmap as needed.
+
+2024-01-14 Jeff Law <jlaw@ventanamicro.com>
+
+ * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
+ not the GPR iterator. Adjust pattern name and mode attribute
+ accordingly.
-2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
+2024-01-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113361
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
+ Fix up determination of the type for > limb_prec constants.
+
+2024-01-12 Georg-Johann Lay <avr@gjlay.de>
+
+ * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
+ Add web-link to the avr-gcc wiki.
+
+2024-01-12 Georg-Johann Lay <avr@gjlay.de>
+
+ * doc/extend.texi (AVR Variable Attributes) [address]: Remove
+ documentation for a version without argument, which is not supported.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
+ (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
+ (vld1_f16_x4, vld1_f32_x4): New.
+ (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
+ (vld1_bf16_x4): New.
+ (vld1q_types_x4): Updated to use vld1q_x4
+ from arm_neon_builtins.def
+ * config/arm/arm_neon_builtins.def
+ (vld1_x4): Updated entries.
+ (vld1q_x4): New entries, but comes from the old vld1_x4
+ * config/arm/neon.md
+ (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
+ (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
+ (vld1_f16_x3, vld1_f32_x3): New.
+ (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
+ (vld1_bf16_x3): New.
+ (vld1q_types_x3): Updated to use vld1q_x3 from
+ arm_neon_builtins.def
+ * config/arm/arm_neon_builtins.def
+ (vld1_x3): Updated entries.
+ (vld1q_x3): New entries, but comes from the old vld1_x2
+ * config/arm/neon.md
+ (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
+ (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
+ (vld1_f16_x2, vld1_f32_x2): New.
+ (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
+ (vld1_bf16_x2): New.
+ (vld1q_types_x2): Updated to use vld1q_x2 from
+ arm_neon_builtins.def
+ * config/arm/arm_neon_builtins.def
+ (vld1_x2): Updated entries.
+ (vld1q_x2): New entries, but comes from the old vld1_x2
+ * config/arm/neon.md
+ (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
+ neon_vld1_x2<mode>.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
+ (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
+ (vst1q_f16_x4, vst1q_f32_x4): New.
+ (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
+ (vst1q_bf16_x4): New.
+ * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
+ * config/arm/neon.md
+ (neon_vst1q_x4<mode>): New.
+ (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
+ * config/arm/unspecs.md
+ (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
+ (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
+ (vst1q_f16_x3, vst1q_f32_x3): New.
+ (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
+ (vst1q_bf16_x3): New.
+ * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
+ * config/arm/neon.md
+ (neon_vst1q_x3<mode>): New.
+ (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
+ * config/arm/unspecs.md
+ (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
+ (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
+ (vst1q_f16_x2, vst1q_f32_x2): New.
+ (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
+ (vst1q_bf16_x2): New.
+ * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
+ * config/arm/neon.md
+ (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
+ neon_vst1_x2<mode>.
+ * config/arm/iterators.md
+ (VMEMX2): New mode iterator.
+ (VMEMX2_q): New mode attribute.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
+ (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
+ (vst1_f16_x4, vst1_f32_x4): New.
+ (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
+ (vst1_bf16_x4): New.
+ * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
+ * config/arm/neon.md (vst1_x4<mode>): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
+ (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
+ (vst1_f16_x3, vst1_f32_x3): New.
+ (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
+ (vst1_bf16_x3): New.
+ * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
+ * config/arm/neon.md (vst1_x3<mode>): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
+ (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
+ (vst1_f16_x2, vst1_f32_x2): New.
+ (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
+ (vst1_bf16_x2): New.
+ * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
+ * config/arm/neon.md (vst1_x2<mode>): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
+ (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
+ (vld1q_f16_x4, vld1q_f32_x4): New.
+ (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
+ (vld1q_bf16_x4): New.
+ * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
+ * config/arm/neon.md
+ (neon_vld1_x4<mode>): New.
+ (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
+ * config/arm/unspecs.md
+ (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
+ (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
+ (vld1q_f16_x3, vld1q_f32_x3): New.
+ (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
+ (vld1q_bf16_x3): New.
+ * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
+ * config/arm/neon.md
+ (neon_vld1_x3<mode>): New.
+ (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
+ * config/arm/unspecs.md
+ (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
+
+2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
+
+ * config/arm/arm_neon.h
+ (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
+ (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
+ (vld1q_f16_x2, vld1q_f32_x2): New.
+ (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
+ (vld1q_bf16_x2): New.
+ * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
+ * config/arm/neon.md (vld1_x2<mode>): New.
+
+2024-01-12 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/113287
+ * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
+
+2024-01-12 Tamar Christina <tamar.christina@arm.com>
+
+ * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
+ * tree-vect-loop.cc (vect_transform_loop): Likewise.
- * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
+2024-01-12 Tamar Christina <tamar.christina@arm.com>
-2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
+ PR tree-optimization/113178
+ * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
+ alternate exits.
- * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
+2024-01-12 Tamar Christina <tamar.christina@arm.com>
-2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
+ PR tree-optimization/113237
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
+ existing LCSSA variable for exit when all exits are early break.
- * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
- Fix spacing.
+2024-01-12 Tamar Christina <tamar.christina@arm.com>
-2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
+ PR tree-optimization/113137
+ PR tree-optimization/113136
+ PR tree-optimization/113172
+ PR tree-optimization/113178
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Maintain PHIs on inverted loops.
+ (vect_do_peeling): Maintain virtual PHIs on inverted loops.
+ * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
+ latch.
+ (vect_create_loop_vinfo): Record all conds instead of only alt ones.
- * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
+2024-01-12 Tamar Christina <tamar.christina@arm.com>
-2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
+ PR tree-optimization/113135
+ * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
+ dependency analysis.
- * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
+2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
-2023-01-25 Richard Biener <rguenther@suse.de>
+ * config/rs6000/host-darwin.cc (segv_handler): Use the revised
+ diagnostics class member name for abort of error.
- PR tree-optimization/108523
- * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
- backedge value for the result when using predication to
- prove equivalence.
+2024-01-12 Georg-Johann Lay <avr@gjlay.de>
-2023-01-25 Richard Biener <rguenther@suse.de>
+ * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
+ format string to %s argument.
- * doc/lto.texi (Command line options): Reword and update reference
- to removed lto_read_all_file_options.
+2024-01-12 John David Anglin <danglin@gcc.gnu.org>
+ Jakub Jelinek <jakub@redhat.com>
-2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
+ PR middle-end/113182
+ * varasm.cc (process_pending_assemble_externals,
+ assemble_external_libcall): Use targetm.strip_name_encoding
+ before calling get_identifier.
- * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
- tests.
+2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
-2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
+ PR target/113196
+ * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
+ New member variable.
+ * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
+ Declare.
+ * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
+ * config/aarch64/aarch64-simd.md
+ (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
+ (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
+ zip2 for zero-extends to...
+ (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
+ instruction. Fix big-endian handling.
+ (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
+ (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
+ zip1 for zero-extends to...
+ (<optab><Vnarrowq><mode>2): ...a split of this instruction.
+ Fix big-endian handling.
+ (*aarch64_zip1_uxtl): New pattern.
+ (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
+ (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
+ * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
+ (aarch64_gen_shareable_zero): Use it.
+ (aarch64_split_simd_shift_p): New function.
+
+2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
+ (function_beg_insn): New macro.
+ * function.cc (expand_function_start): Initialize function_beg_insn.
+
+2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/112989
+ * config/aarch64/aarch64-sve-builtins.h
+ (function_builder::m_overload_names): Replace with...
+ * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
+ new global.
+ (add_overloaded_function): Update accordingly, using get_identifier
+ to get a GGC-friendly record of the name.
+
+2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/112989
+ * config/aarch64/aarch64-sve-builtins.def: Don't include
+ aarch64-sve-builtins-sme.def.
+ (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
+ * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
+ (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
+ instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
+ requires AARCH64_FL_SME2.
+ * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
+ AARCH64_FL_SME adjustment here.
+ * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
+ include SME intrinsics.
+ (sme_function_groups): New array.
+ (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
+ (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
+
+2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/113281
+ * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
+ (struct cpu_vector_cost): Add regmove struct.
+ (get_vector_costs): Export as global.
+ * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
+ (costs::add_stmt_cost): Ditto.
+ * config/riscv/riscv.cc (get_common_costs): Export global function.
+
+2024-01-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113334
+ * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
+ wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
+ to determine if number should be extended by all ones rather than zero
+ extended.
+
+2024-01-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113330
+ * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
+ too large size.
+
+2024-01-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113323
+ * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
+ check for lhs being large/huge _BitInt not in m_names.
+
+2024-01-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113316
+ * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
+ uninitialized large/huge _BitInt arguments to calls.
+
+2024-01-12 Jakub Jelinek <jakub@redhat.com>
+
+ * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
+ TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
+ CEIL (TYPE_PRECISION (t), limb_prec).
+ (bitint_large_huge::handle_cast): Likewise.
+
+2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ PR sanitizer/113284
+ * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
+ Use assemble_function_label_final () for Power ELF V1 ABI.
+ * output.h (assemble_function_label_final): New function.
+ * varasm.cc (assemble_function_label_raw): Use
+ assemble_function_label_final ().
+ (assemble_function_label_final): New function.
+
+2024-01-12 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/113344
+ * match.pd ((double)float CMP (double)float -> float CMP float):
+ Perform result type check only for vectors.
+ * fold-const.cc (fold_binary_loc): Likewise.
+
+2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
+
+ * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
+ (usdot_prod<mode>): Ditto.
+ (sdot_prod<mode>): Ditto.
+ (udot_prod<mode>): Ditto.
- * doc/contrib.texi: Add Jose E. Marchesi.
+2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
-2023-01-25 Jakub Jelinek <jakub@redhat.com>
+ PR target/113288
+ * config/i386/i386-c.cc (ix86_target_macros_internal):
+ Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
- PR tree-optimization/108498
- * gimple-ssa-store-merging.cc (class store_operand_info):
- End coment with full stop rather than comma.
- (split_group): Likewise.
- (merged_store_group::apply_stores): Clear string_concatenation if
- start or end aren't on a byte boundary.
+2024-01-12 Richard Biener <rguenther@suse.de>
-2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
- Jakub Jelinek <jakub@redhat.com>
+ PR target/112280
+ * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
+ Do not generate code when d.testing_p.
- PR tree-optimization/108522
- * tree-object-size.cc (compute_object_offset): Use
- TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
+2024-01-12 liuhongt <hongtao.liu@intel.com>
-2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ PR target/113039
+ * doc/invoke.texi (fcf-protection=): Update documents.
- * config/xtensa/xtensa.md:
- Fix exit from loops detecting references before overwriting in the
- split pattern.
+2024-01-12 Pan Li <pan2.li@intel.com>
-2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
+ * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
+ comments of predicate func riscv_v_ext_mode_p.
- * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
- do elimination but only for hard register.
- (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
- calls of get_hard_regno.
+2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
-2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
-
- * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
- of CPU version.
+ * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
+ Modify ABI-name length of vfloat16m8_t
-2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
+2024-01-12 Li Wei <liwei@loongson.cn>
- PR target/108177
- * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
- mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
- as input operand.
+ * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
+ Adjust.
-2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+2024-01-12 Li Wei <liwei@loongson.cn>
- * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
- and only include 'csky/t-csky-linux' when enable multilib.
- * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
- define it when disable multilib.
+ * config/loongarch/loongarch.md (add<mode>3): Removed.
+ (*addsi3): New.
+ (addsi3): Ditto.
+ (adddi3): Ditto.
+ (*addsi3_extended): Removed.
+ (addsi3_extended): New.
-2023-01-24 Richard Biener <rguenther@suse.de>
+2024-01-11 Jin Ma <jinma@linux.alibaba.com>
- PR tree-optimization/108500
- * dominance.h (calculate_dominance_info): Add parameter
- to indicate fast-query compute, defaulted to true.
- * dominance.cc (calculate_dominance_info): Honor
- fast-query compute parameter.
- * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
- not compute the dominator fast-query DFS numbers.
+ * config/riscv/thead.md: Add limits for splits.
-2023-01-24 Eric Biggers <ebiggers@google.com>
+2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
- PR bootstrap/90543
- * optc-save-gen.awk: Fix copy-and-paste error.
+ PR middle-end/113322
+ * expr.cc (do_store_flag): Don't try single bit tests with
+ comparison on vector types.
-2023-01-24 Jakub Jelinek <jakub@redhat.com>
+2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
- PR c++/108474
- * cgraphbuild.cc: Include gimplify.h.
- (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
- their corresponding DECL_VALUE_EXPR expressions after unsharing.
+ PR tree-optimization/113301
+ * match.pd (`1/x`): Delay signed case until late.
-2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+2024-01-11 Georg-Johann Lay <avr@gjlay.de>
- PR target/108505
- * config.gcc (tm_file): Move the variable out of loop.
+ * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
+ and -msp8 to...
+ (AVR Internal Options): ...this new @subsubsection.
-2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
- Yang Yujie <yangyujie@loongson.cn>
+2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
- PR target/107731
- * config/loongarch/loongarch.cc (loongarch_classify_address):
- Add precessint for CONST_INT.
- (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
- (loongarch_print_operand): Increase the processing of '%c'.
- * doc/extend.texi: Adds documents for LoongArch operand modifiers.
- And port the public operand modifiers information to this document.
+ PR rtl-optimization/112918
+ * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
+ (in_class_p): Restrict condition for narrowing class in case of
+ allow_all_reload_class_changes_p.
+ (process_alt_operands): Try to match operand without and with
+ narrowing reg class. Discourage narrowing the class. Finish insn
+ matching only if there is no class narrowing.
+ (curr_insn_transform): Pass true to in_class_p for reg operand win.
-2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+2024-01-11 Richard Biener <rguenther@suse.de>
- * doc/invoke.texi (-mbranch-protection): Update documentation.
+ PR tree-optimization/112505
+ * tree-vect-loop.cc (vectorizable_induction): Reject
+ bit-precision induction.
-2023-01-23 Richard Biener <rguenther@suse.de>
+2024-01-11 Richard Biener <rguenther@suse.de>
- PR target/55522
- * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
- for -shared.
- * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
- * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
- * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
- * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
+ PR tree-optimization/113126
+ * match.pd ((double)float CMP (double)float -> float CMP float):
+ Make sure the boolean type is the same.
+ * fold-const.cc (fold_binary_loc): Likewise.
-2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+2024-01-11 Richard Biener <rguenther@suse.de>
- * config/arm/aout.h (ra_auth_code): Add entry in enum.
- * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
- to dwarf frame expression.
- (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
- (arm_expand_prologue): Update frame related information and reg notes
- for pac/pacbit insn.
- (arm_regno_class): Check for pac pseudo reigster.
- (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
- (arm_init_machine_status): Set pacspval_needed to zero.
- (arm_debugger_regno): Check for PAC register.
- (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
- register.
- (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
- (arm_unwind_emit): Update REG_CFA_REGISTER case._
- * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
- (DWARF_PAC_REGNUM): Define.
- (IS_PAC_REGNUM): Likewise.
- (enum reg_class): Add PAC_REG entry.
- (machine_function): Add pacbti_needed state to structure.
- * config/arm/arm.md (RA_AUTH_CODE): Define.
-
-2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
-
- * config.gcc ($tm_file): Update variable.
- * config/arm/arm-mlib.h: Create new header file.
- * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
- multilib arch directory.
- (MULTILIB_REUSE): Add multilib reuse rules.
- (MULTILIB_MATCHES): Add multilib match rules.
-
-2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
-
- * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
- * config/arm/arm-tables.opt: Regenerate.
- * config/arm/arm-tune.md: Likewise.
- * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
- * (-mfix-cmse-cve-2021-35465): Likewise.
-
-2023-01-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108482
- * tree-vect-generic.cc (expand_vector_operations): Fold remaining
- .LOOP_DIST_ALIAS calls.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
-
- * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
- * config/arm/arm-protos.h: Update.
- * config/arm/aarch-common-protos.h: Declare
- 'aarch_bti_arch_check'.
- * config/arm/arm.cc (aarch_bti_enabled) Update.
- (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
- (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
- * config/arm/arm.md (bti_nop): New insn.
- * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
- (aarch-bti-insert.o): New target.
- * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
- * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
- compatibility.
- (gate): Make use of 'aarch_bti_arch_check'.
- * config/arm/arm-passes.def: New file.
- * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
-
- * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
- 'aarch-bti-insert.o'.
- * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
- proto.
- * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
- (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
- (aarch64_output_mi_thunk)
- (aarch64_print_patchable_function_entry)
- (aarch64_file_end_indicate_exec_stack): Update renamed function
- calls to renamed functions.
- * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
- * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
- target.
- * config/aarch64/aarch64-bti-insert.cc: Delete.
- * config/arm/aarch-bti-insert.cc: New file including and
- generalizing code from aarch64-bti-insert.cc.
- * config/arm/aarch-common-protos.h: Update.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
-
- * config/arm/arm.h (arm_arch8m_main): Declare it.
- * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
- Declare it.
- * config/arm/arm.cc (arm_arch8m_main): Define it.
- (arm_option_reconfigure_globals): Set arm_arch8m_main.
- (arm_compute_frame_layout, arm_expand_prologue)
- (thumb2_expand_return, arm_expand_epilogue)
- (arm_conditional_register_usage): Update for pac codegen.
- (arm_current_function_pac_enabled_p): New function.
- (aarch_bti_enabled) New function.
- (use_return_insn): Return zero when pac is enabled.
- * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
- Add new patterns.
- * config/arm/unspecs.md (UNSPEC_PAC_NOP)
- (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
-
- * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
- mbranch-protection.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
-
- * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
- Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
- Srinath Parvathaneni <srinath.parvathaneni@arm.com>
-
- * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
- new pseudo register class _UVRSC_PAC.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
-
- * config/arm/arm-c.cc (arm_cpu_builtins): Define
- __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
- __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
-
- * doc/sourcebuild.texi: Document arm_pacbti_hw.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
- Richard Earnshaw <Richard.Earnshaw@arm.com>
-
- * config/arm/arm.cc (arm_configure_build_target): Parse and validate
- -mbranch-protection option and initialize appropriate data structures.
- * config/arm/arm.opt (-mbranch-protection): New option.
- * doc/invoke.texi (Arm Options): Document it.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
-
- * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
- * config/arm/arm-cpus.in (pacbti): New feature.
- * doc/invoke.texi (Arm Options): Document it.
-
-2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
- Tejas Belagod <tbelagod@arm.com>
-
- * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
- (all_architectures): Fix comment.
- (aarch64_parse_extension): Rename return type, enum value names.
- * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
- factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
- Also rename corresponding enum values.
- * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
- out aarch64_function_type and move it to common code as
- aarch_function_type in aarch-common.h.
- * config/aarch64/aarch64-protos.h: Include common types header,
- move out types aarch64_parse_opt_result and aarch64_key_type to
- aarch-common.h
- * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
- and functions out into aarch-common.h and aarch-common.cc. Fix up
- all the name changes resulting from the move.
- * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
- and enum value.
- * config/aarch64/aarch64.opt: Include aarch-common.h to import
- type move. Fix up name changes from factoring out common code and
- data.
- * config/arm/aarch-common-protos.h: Export factored out routines to both
- backends.
- * config/arm/aarch-common.cc: Include newly factored out types.
- Move all mbranch-protection code and data structures from
- aarch64.cc.
- * config/arm/aarch-common.h: New header that declares types shared
- between aarch32 and aarch64 backends.
- * config/arm/arm-protos.h: Declare types and variables that are
- made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
- aarch_ra_sign_scope and aarch_enable_bti.
- * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
- (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
- * config/arm/arm.cc: Add missing includes.
-
-2023-01-23 Tobias Burnus <tobias@codesourcery.com>
-
- * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
-
-2023-01-23 Richard Biener <rguenther@suse.de>
-
- PR tree-optimization/108449
- * cgraphunit.cc (check_global_declaration): Do not turn
- undefined statics into externs.
-
-2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
+ PR tree-optimization/112636
+ * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
+ estimate_numbers_of_iterations before querying
+ get_max_loop_iterations_int.
+ (pass_ch::execute): Initialize SCEV and loops appropriately.
- * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
- and HI input modes.
- * config/pru/pru.md (clz): Fix generated code for QI and HI
- input modes.
+2024-01-11 Georg-Johann Lay <avr@gjlay.de>
-2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
+ * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
+ Reduced Tiny.
+ * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
+ * doc/extend.texi (AVR Variable Attributes): Improve documentation
+ of io, io_low and address attributes.
+ * doc/invoke.texi (AVR Options): Add some anchors for external refs.
+ * doc/avr-mmcu.texi: Rebuild.
- * config/v850/v850.cc (v850_select_section): Put const volatile
- objects into read-only sections.
+2024-01-11 Yang Yujie <yangyujie@loongson.cn>
-2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
+ PR target/113233
+ * config/loongarch/genopts/loongarch.opt.in: Mark options with
+ the "Save" property.
+ * config/loongarch/loongarch.opt: Same.
+ * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
+ according to la_target.
+ * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
+ RESTORE} for the la_target structure; Rename option conditions
+ to have the same "la_" prefix.
+ * config/loongarch/loongarch.h: Same.
- * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
- vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
- (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
+2024-01-11 Pan Li <pan2.li@intel.com>
-2023-01-20 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108457
- * tree-ssa-loop-niter.cc (build_cltz_expr): Use
- SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
- argument instead of a temporary. Formatting fixes.
-
-2023-01-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108447
- * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
- (relation_tests): Add self-tests for relation_{intersect,union}
- commutativity.
- * selftest.h (relation_tests): Declare.
- * function-tests.cc (test_ranges): Call it.
-
-2023-01-19 H.J. Lu <hjl.tools@gmail.com>
-
- PR target/108436
- * config/i386/i386-expand.cc (ix86_expand_builtin): Check
- invalid third argument to __builtin_ia32_prefetch.
-
-2023-01-19 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/108459
- * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
- than fold_unary for NEGATE_EXPR.
-
-2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
-
- PR target/108411
- * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
- comment. Move assert about alignment a bit later.
-
-2023-01-19 Jakub Jelinek <jakub@redhat.com>
-
- PR tree-optimization/108440
- * tree-ssa-forwprop.cc: Include gimple-range.h.
- (simplify_rotate): For the forms with T2 wider than T and shift counts of
- Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
- to B. For the forms with T2 wider than T and shift counts of
- Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
- range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
- Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
- pass specific ranger instead of get_global_range_query.
- (pass_forwprop::execute): Disable that ranger at the end of pass if it has
- been created.
+ * loop-unroll.cc (insert_var_expansion_initialization): Leverage
+ MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
-2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+2024-01-11 Alex Coplan <alex.coplan@arm.com>
- * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
- exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
- the pattern.
- (aarch64_simd_vec_copy_lane<mode>): Likewise.
- (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
+ PR target/113077
+ * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
+ fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
+ (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
+ synthesize these if needed. Update caller ...
+ (ldp_bb_info::fuse_pair): ... here.
+ (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
+ and either insn is frame-related.
+ (find_trailing_add): Punt on frame-related insns.
+ * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
+ REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
-2023-01-19 Alexandre Oliva <oliva@adacore.com>
+2024-01-11 YunQiang Su <syq@gcc.gnu.org>
- PR debug/106746
- * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
- within debug insns.
+ * config/mips/mips.cc (mips_start_function_definition):
+ Add ATTRIBUTE_UNUSED.
-2023-01-18 Martin Jambor <mjambor@suse.cz>
+2024-01-11 Richard Biener <rguenther@suse.de>
- PR ipa/107944
- * cgraph.cc (cgraph_node::remove): Check whether nodes up the
- lcone_of chain also do not need the body.
+ PR middle-end/112740
+ * expr.cc (store_constructor): Check the integer vector
+ mask has a single bit per element before using sign-extension
+ to expand an uniform vector.
-2023-01-18 Richard Biener <rguenther@suse.de>
+2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- Revert:
- 2022-12-16 Richard Biener <rguenther@suse.de>
-
- PR middle-end/108086
- * tree-inline.cc (remap_ssa_name): Do not unshare the
- result from the decl_map.
-
-2023-01-18 Murray Steele <murray.steele@arm.com>
-
- PR target/108442
- * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
- function.
- (__arm_vst1q_p_s8): Likewise.
- (__arm_vld1q_z_u8): Likewise.
- (__arm_vld1q_z_s8): Likewise.
- (__arm_vst1q_p_u16): Likewise.
- (__arm_vst1q_p_s16): Likewise.
- (__arm_vld1q_z_u16): Likewise.
- (__arm_vld1q_z_s16): Likewise.
- (__arm_vst1q_p_u32): Likewise.
- (__arm_vst1q_p_s32): Likewise.
- (__arm_vld1q_z_u32): Likewise.
- (__arm_vld1q_z_s32): Likewise.
- (__arm_vld1q_z_f16): Likewise.
- (__arm_vst1q_p_f16): Likewise.
- (__arm_vld1q_z_f32): Likewise.
- (__arm_vst1q_p_f32): Likewise.
+ * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
+ preempt VLS on unknown NITERS loop.
-2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
- * config/xtensa/xtensa.md (xorsi3_internal):
- Rename from the original of "xorsi3".
- (xorsi3): New expansion pattern that emits addition rather than
- bitwise-XOR when the second source is a constant of -2147483648
- if TARGET_DENSITY.
+ * doc/invoke.texi: Add -mevex512.
-2023-01-18 Kewen Lin <linkw@linux.ibm.com>
- Andrew Pinski <apinski@marvell.com>
+2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
- PR target/108396
- * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
- vec_vsubcuqP with vec_vsubcuq.
+ * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
+ (*nor<mode>3): Likewise.
+ (nor<mode>3): Likewise.
+ (*negsi2_extended): New template.
+ (*<optab>si3_internal): Likewise.
+ (*one_cmplsi2_internal): Likewise.
+ (*norsi3_internal): Likewise.
+ (*<optab>nsi_internal): Likewise.
+ (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
+ modified bit operation to make the optimization work.
-2023-01-18 Kewen Lin <linkw@linux.ibm.com>
+2024-01-11 liuhongt <hongtao.liu@intel.com>
- PR target/108348
- * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
- support for invalid uses of MMA opaque type in function arguments.
+ PR target/104401
+ * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
-2023-01-18 liuhongt <hongtao.liu@intel.com>
+2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR target/55522
- * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
- whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
- -share or -mno-daz-ftz is specified.
- * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
- * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
+ * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
+ (get_vector_costs): Ditto.
+ (riscv_builtin_vectorization_cost): Ditto.
-2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
+2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/bpf/bpf.cc (bpf_option_override): Disable
- -fstack-protector.
+ * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
-2023-01-17 Jakub Jelinek <jakub@redhat.com>
+2024-01-10 Antoni Boucher <bouanto@zoho.com>
- PR tree-optimization/106523
- * tree-ssa-forwprop.cc (simplify_rotate): For the
- patterns with (-Y) & (B - 1) in one operand's shift
- count and Y in another, if T2 has wider precision than T,
- punt if Y could have a value in [B, B2 - 1] range.
+ PR jit/111396
+ * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
+ ipa_free_size_summary.
+ * ipa-icf.cc (ipa_icf_cc_finalize): New function.
+ * ipa-profile.cc (ipa_profile_cc_finalize): New function.
+ * ipa-prop.cc (ipa_prop_cc_finalize): New function.
+ * ipa-prop.h (ipa_prop_cc_finalize): New function.
+ * ipa-sra.cc (ipa_sra_cc_finalize): New function.
+ * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
+ ipa_sra_cc_finalize): New functions.
+ * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
+ ipa_prop_cc_finalize, ipa_profile_cc_finalize and
+ ipa_sra_cc_finalize
+ Include ipa-utils.h.
-2023-01-16 H.J. Lu <hjl.tools@gmail.com>
+2024-01-10 Jin Ma <jinma@linux.alibaba.com>
- PR target/105980
- * config/i386/i386.cc (x86_output_mi_thunk): Disable
- -mforce-indirect-call for PIC in 32-bit mode.
+ * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
+ (th_int_get_save_adjustment): Likewise.
+ (th_int_adjust_cfi_prologue): Likewise.
+ * config/riscv/riscv.cc (BITSET_P): Moved away from here.
+ (TH_INT_INTERRUPT): New macro.
+ (riscv_expand_prologue): Add the processing of XTheadInt.
+ (riscv_expand_epilogue): Likewise.
+ * config/riscv/riscv.h (BITSET_P): Moved to here.
+ * config/riscv/riscv.md: New unspec.
+ * config/riscv/thead.cc (th_int_get_mask): New function.
+ (th_int_get_save_adjustment): Likewise.
+ (th_int_adjust_cfi_prologue): Likewise.
+ * config/riscv/thead.md (th_int_push): New pattern.
+ (th_int_pop): new pattern.
+
+2024-01-10 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/112468
+ * doc/sourcebuild.texi: Document ifn_copysign.
+ * match.pd: Only apply transformation if target supports the IFN.
+
+2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR tree-optimization/112581
+ * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
+ mark_ssa_maybe_undefs.
+ * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
+ variables can not be reassociated.
+ (init_range_entry): Check for uninitialized variables too.
+ (init_reassoc): Call mark_ssa_maybe_undefs.
+
+2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
+
+ * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
+ Also handle sign extension.
+
+2024-01-10 Alex Coplan <alex.coplan@arm.com>
+
+ * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
+ to 0.
+ (-mlate-ldp-fusion): Likewise.
+
+2024-01-10 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/113287
+ * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
+ instead of using BRANCH_EDGE to determine true edge.
+
+2024-01-10 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/113078
+ * tree-vect-loop.cc (check_reduction_path): Canonicalize
+ .COND_SUB to .COND_ADD.
+
+2024-01-10 David Malcolm <dmalcolm@redhat.com>
+
+ * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
+ Handle prefix mappings before calling find_opt.
+ (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
+ "-fno-"-prefixed command-line option.
+ * opts-common.cc (get_option_prefix_remapping): New.
+ * opts.h (get_option_prefix_remapping): New decl.
+
+2024-01-10 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
+ m_urlifier to pp_output_formatted_text.
+ * pretty-print.cc: Add #define of INCLUDE_VECTOR.
+ (obstack_append_string): New overload, taking a length.
+ (urlify_quoted_string): Pass in an obstack ptr, rather than using
+ that of the pp's buffer. Generalize to handle trailing text in
+ the buffer beyond the run of quoted text.
+ (class quoting_info): New.
+ (on_begin_quote): New.
+ (on_end_quote): New.
+ (pp_format): Refactor phase 1 and phase 2 quoting support, moving
+ it to calls to on_begin_quote and on_end_quote.
+ (struct auto_obstack): New.
+ (quoting_info::handle_phase_3): New.
+ (pp_output_formatted_text): Add urlifier param. Use it if there
+ is deferred urlification. Delete m_quotes.
+ (selftest::pp_printf_with_urlifier): Pass urlifier to
+ pp_output_formatted_text.
+ (selftest::test_urlification): Update results for the existing
+ case of quoted text stradding chunks; add more such test cases.
+ * pretty-print.h (class quoting_info): New forward decl.
+ (chunk_info::m_quotes): New field.
+ (pp_output_formatted_text): Add optional urlifier param.
+
+2024-01-10 David Malcolm <dmalcolm@redhat.com>
+
+ * pretty-print.cc (selftest::test_pp_format): Add selftest
+ coverage for numbered args.
+
+2024-01-10 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/113144
+ PR tree-optimization/113145
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Update all BB that the original exits dominated.
-2023-01-16 Jan Hubicka <hubicka@ucw.cz>
+2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
- PR ipa/106077
- * ipa-modref.cc (modref_access_analysis::analyze): Use
- find_always_executed_bbs.
- * ipa-sra.cc (process_scan_results): Likewise.
- * ipa-utils.cc (stmt_may_terminate_function_p): New function.
- (find_always_executed_bbs): New function.
- * ipa-utils.h (stmt_may_terminate_function_p): Declare.
- (find_always_executed_bbs): Declare.
+ * dwarf2out.cc (modified_type_die): Extend the support of reverse
+ storage order to enumeration types if -gstrict-dwarf is not passed.
+ (gen_enumeration_type_die): Add REVERSE parameter and generate the
+ DIE immediately after the existing one if it is true.
+ (gen_tagged_type_die): Add REVERSE parameter and pass it in the
+ call to gen_enumeration_type_die.
+ (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
+ first recursive call as well as the call to gen_tagged_type_die.
+ (gen_type_die): Add REVERSE parameter and pass it in the call to
+ gen_type_die_with_usage.
-2023-01-16 Jan Hubicka <jh@suse.cz>
+2024-01-10 Jakub Jelinek <jakub@redhat.com>
- * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
- by TARGET_USE_SCATTER.
- * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
- TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
- * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
- TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
- (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
- for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
+ PR tree-optimization/113120
+ * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
+ with root->size TYPE_PRECISION don't build anything new.
+ Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
+ rather than build_nonstandard_integer_type.
-2023-01-16 Richard Biener <rguenther@suse.de>
+2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
- PR target/55522
- * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
+ * config/i386/i386.opt: Adjust document.
+ * doc/invoke.texi: Add description for
+ -mapx-inline-asm-use-gpr32.
-2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
+2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR target/96795
- PR target/107515
- * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
- (__ARM_mve_coerce3): Likewise.
+ * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
+ (avg<v_double_trunc>3_floor): New pattern.
+ (<u>avg<v_double_trunc>3_ceil): Remove.
+ (avg<v_double_trunc>3_ceil): New pattern.
+ (uavg<mode>3_floor): Ditto.
+ (uavg<mode>3_ceil): Ditto.
+ * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
+ (enum insn_type): Ditto.
+ * config/riscv/riscv-v.cc: Ditto.
+ * config/riscv/vector-iterators.md (ashiftrt): Remove.
+ (ASHIFTRT): Ditto.
+ * config/riscv/vector.md: Add VLS modes.
-2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
+2024-01-10 Kewen Lin <linkw@linux.ibm.com>
- * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
+ PR target/111480
+ * config/rs6000/vsx.md (VCZLSBB): New int iterator.
+ (vczlsbb_char): New int attribute.
+ (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
+ (vc<vczlsbb_char>zlsbb_<mode>): ... this.
+ (*vctzlsbb_zext_<mode>): Rename to ...
+ (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
+ cover vclzlsbb.
-2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
+2024-01-10 Kewen Lin <linkw@linux.ibm.com>
- * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
- (number_of_iterations_bitcount): Add call to the above.
- (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
- c[lt]z idiom recognition.
+ PR target/112606
+ * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
+ of the last argument from altivec_register_operand to any_operand. If
+ operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
+ otherwise if it doesn't satisfy altivec_register_operand, force it to
+ REG using copy_to_mode_reg.
-2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
+2024-01-10 Kewen Lin <linkw@linux.ibm.com>
- * doc/sourcebuild.texi: Add missing target attributes.
+ PR middle-end/113100
+ * builtins.cc (expand_builtin_stack_address): Guard stack point
+ adjustment with SPARC_STACK_BOUNDARY_HACK.
-2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
+2024-01-10 Yang Yujie <yangyujie@loongson.cn>
- PR tree-optimization/94793
- * tree-scalar-evolution.cc (expression_expensive_p): Add checks
- for c[lt]z optabs.
- * tree-ssa-loop-niter.cc (build_cltz_expr): New.
- (number_of_iterations_cltz_complement): New.
- (number_of_iterations_bitcount): Add call to the above.
+ * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
+ argument string definitions.
+ * config/loongarch/loongarch-str.h: Same.
+ * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
+ as aliases to -mexplicit-relocs={always,none}
+ * config/loongarch/loongarch.opt: Regenerate.
+ * config/loongarch/loongarch.cc: Same.
+
+2024-01-10 Yang Yujie <yangyujie@loongson.cn>
+
+ * config/loongarch/loongarch-def.h: Define constants with
+ enums instead of Macros.
+
+2024-01-10 Yang Yujie <yangyujie@loongson.cn>
+
+ * config/loongarch/genopts/loongarch-strings: Rename.
+ * config/loongarch/genopts/loongarch.opt.in: Same.
+ * config/loongarch/loongarch-cpu.cc: Same.
+ * config/loongarch/loongarch-def.cc: Same.
+ * config/loongarch/loongarch-def.h: Same.
+ * config/loongarch/loongarch-opts.cc: Same.
+ * config/loongarch/loongarch-opts.h: Same.
+ * config/loongarch/loongarch-str.h: Same.
+ * config/loongarch/loongarch.opt: Same.
+
+2024-01-10 Yang Yujie <yangyujie@loongson.cn>
+
+ * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
+ variable with the common la_ prefix.
+ * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
+ flags as saved using TargetVariable.
+ * config/loongarch/loongarch.opt: Same.
+ * config/loongarch/loongarch-def.h: Define evolution_set to
+ mark changes to the -march default.
+ * config/loongarch/loongarch-driver.cc: Same.
+ * config/loongarch/loongarch-opts.cc: Same.
+ * config/loongarch/loongarch-opts.h: Define and use ISA evolution
+ conditions around the la_target structure.
+ * config/loongarch/loongarch.cc: Same.
+ * config/loongarch/loongarch.md: Same.
+ * config/loongarch/loongarch-builtins.cc: Same.
+ * config/loongarch/loongarch-c.cc: Same.
+ * config/loongarch/lasx.md: Same.
+ * config/loongarch/lsx.md: Same.
+ * config/loongarch/sync.md: Same.
+
+2024-01-09 Jeff Law <jlaw@ventanamicro.com>
+
+ * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
+ no less.
+
+2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
+
+2024-01-09 Tamar Christina <tamar.christina@arm.com>
+
+ * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
+ restart_loop.
+ (vectorizable_live_operation): Likewise.
-2023-01-16 Jonathan Wakely <jwakely@redhat.com>
+2024-01-09 Tamar Christina <tamar.christina@arm.com>
- * doc/extend.texi (Common Function Attributes): Fix grammar.
+ PR tree-optimization/113199
+ * tree-vect-loop.cc (vectorizable_live_operation_1): Use
+ BIT_FIELD_REF.
-2023-01-16 Jakub Jelinek <jakub@redhat.com>
+2024-01-09 Jakub Jelinek <jakub@redhat.com>
- PR other/108413
- * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
- * config/riscv/riscv-vsetvl.cc: Likewise.
+ PR target/113270
+ * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
+ * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
+ GTY(()) declaration before the definition, drop GTY(()) drom the
+ definition.
-2023-01-16 Jakub Jelinek <jakub@redhat.com>
+2024-01-09 Richard Biener <rguenther@suse.de>
- PR c++/105593
- * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
- disable -Winit-self using pragma GCC diagnostic ignored.
- * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
- Likewise.
- * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
- _mm256_undefined_si256): Likewise.
- * config/i386/avx512fintrin.h (_mm512_undefined_pd,
- _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
- * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
- _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
+ PR tree-optimization/113026
+ * tree-vect-loop-manip.cc (vect_do_peeling): Remove
+ redundant and wrong niter bound setting. Move niter
+ bound adjustment down.
-2023-01-16 Kewen Lin <linkw@linux.ibm.com>
+2024-01-09 Tamar Christina <tamar.christina@arm.com>
- PR target/108272
- * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
- support for invalid uses in inline asm, factor out the checking and
- erroring to lambda function check_and_error_invalid_use.
+ PR middle-end/113163
+ * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
+ Reject non-linear inductions that aren't supported.
-2023-01-15 Aldy Hernandez <aldyh@redhat.com>
+2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
- PR tree-optimization/107608
- * range-op-float.cc (range_operator_float::fold_range): Avoid
- folding into INF when flag_trapping_math.
- * value-range.h (frange::known_isinf): Return false for possible NANs.
+ * config/arc/arc.cc (arc_shift_alg): New enumerated type for
+ left shift implementation strategies.
+ (arc_shift_info): Type for each entry of the shift strategy table.
+ (arc_shift_context_idx): Return a integer value for each code
+ generation context, used as an index
+ (arc_ashl_alg): Table indexed by context and shifted bit count.
+ (arc_split_ashl): Use the arc_ashl_alg table to select SImode
+ left shift implementation.
+ (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
+ provide accurate costs, when optimizing for speed or size.
-2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config.gcc (csky-*-*): Support --with-float=softfp.
+ * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
-2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+2024-01-09 Julian Brown <julian@codesourcery.com>
- * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
- Rename to xtensa_adjust_reg_alloc_order.
- * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
- Ditto. And also remove code to reorder register numbers for
- leaf functions, rename the tables, and adjust the allocation
- order for the call0 ABI to use register A0 more.
- (xtensa_leaf_regs): Remove.
- * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
- (order_regs_for_local_alloc): Rename as the above.
- (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
+ * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
+ processed out before gimplification.
+ * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
+ * tree.def (OMP_ARRAY_SECTION): New tree code.
-2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+2024-01-09 Jakub Jelinek <jakub@redhat.com>
- * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
- Change to define_insn_and_split to fold ldr+dup to ld1rq.
- * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
+ PR tree-optimization/113210
+ * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
+ value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
+ INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
+ minus 1.
-2023-01-14 Alexandre Oliva <oliva@adacore.com>
+2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
- * hash-table.h (is_deleted): Precheck !is_empty.
- (mark_deleted): Postcheck !is_empty.
- (copy constructor): Test is_empty before is_deleted.
+ PR rtl-optimization/113140
+ * reorg.cc (fill_slots_from_thread): If we are to branch after the
+ last instruction of the function, create an end label.
-2023-01-14 Alexandre Oliva <oliva@adacore.com>
+2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
+ Hongtao Liu <hongtao.liu@intel.com>
- PR target/40457
- * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
- moves.
+ PR target/112992
+ * config/i386/i386-expand.cc
+ (ix86_convert_const_wide_int_to_broadcast): Allow call to
+ ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
+ (ix86_broadcast_from_constant): Revert recent change; Return a
+ suitable MEMREF independently of mode/target combinations.
+ (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
+ to decide whether expansion is possible/preferrable. Only try
+ forcing DImode constants to memory (and trying again) if calling
+ ix86_expand_vector_init_duplicate fails with an DImode immediate
+ constant.
+ (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
+ V4SImode for suitable immediate constants.
+ <case E_V4DImode>: Try using V8SImode for suitable constants.
+ <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
+ <case E_V2HImode>: Likewise.
+ <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
+ <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
+ <label widen>: Handle CONT_INTs via simplify_binary_operation.
+ Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
+ <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
+ <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
+ (ix86_expand_vector_init): Move try using a broadcast for all_same
+ with ix86_expand_vector_init_duplicate before using constant pool.
+
+2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
+
+ * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
+
+2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
+
+ * config/arm/arm-cpus.in (cortex-m52): New cpu.
+ * config/arm/arm-tables.opt: Regenerate.
+ * config/arm/arm-tune.md: Regenerate.
-2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
+2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
- PR rtl-optimization/108274
- * function.cc (thread_prologue_and_epilogue_insns): Also update the
- DF information for calls in a few more cases.
+ * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
+ (vec_init<mode><lasxhalf>): .. this, and extend to mode.
+ (@vec_concatz<mode>): New insn pattern.
+ * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
+ Handle VALS containing two vectors.
+
+2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
+ (vundefined): Ditto.
+
+2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
+
+ * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
+ Add new function_base for crypto vector.
+ (class bitmanip): Ditto.
+ (class b_reverse):Ditto.
+ (class vwsll): Ditto.
+ (class clmul): Ditto.
+ (class vg_nhab): Ditto.
+ (class crypto_vv):Ditto.
+ (class crypto_vi):Ditto.
+ (class vaeskf2_vsm3c):Ditto.
+ (class vsm3me): Ditto.
+ (BASE): Add BASE declaration for crypto vector.
+ * config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ Add crypto vector intrinsic definition.
+ (vbrev): Ditto.
+ (vclz): Ditto.
+ (vctz): Ditto.
+ (vwsll): Ditto.
+ (vandn): Ditto.
+ (vbrev8): Ditto.
+ (vrev8): Ditto.
+ (vrol): Ditto.
+ (vror): Ditto.
+ (vclmul): Ditto.
+ (vclmulh): Ditto.
+ (vghsh): Ditto.
+ (vgmul): Ditto.
+ (vaesef): Ditto.
+ (vaesem): Ditto.
+ (vaesdf): Ditto.
+ (vaesdm): Ditto.
+ (vaesz): Ditto.
+ (vaeskf1): Ditto.
+ (vaeskf2): Ditto.
+ (vsha2ms): Ditto.
+ (vsha2ch): Ditto.
+ (vsha2cl): Ditto.
+ (vsm4k): Ditto.
+ (vsm4r): Ditto.
+ (vsm3me): Ditto.
+ (vsm3c): Ditto.
+ * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
+ Add new function_shape for crypto vector.
+ (struct crypto_vi_def): Ditto.
+ (struct crypto_vv_no_op_type_def): Ditto.
+ (SHAPE): Add SHAPE declaration of crypto vector.
+ * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
+ Add new data type for crypto vector.
+ (DEF_RVV_CRYPTO_SEW64_OPS): 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_CRYPTO_SEW32_OPS):
+ Add new data struct for crypto vector.
+ (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
+ * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
-2023-01-13 John David Anglin <danglin@gcc.gnu.org>
+2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
- * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
- * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
- define.
- * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
- (MAX_SYNC_LIBFUNC_SIZE): Define.
- (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
- enabled.
- * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
- libcall when sync libcalls are disabled.
- (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
- (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
- are disabled on 32-bit target.
- * config/pa/pa.opt (matomic-libcalls): New option.
- * doc/invoke.texi (HPPA Options): Update.
-
-2023-01-13 Alexander Monakov <amonakov@ispras.ru>
-
- PR rtl-optimization/108117
- PR rtl-optimization/108132
- * sched-deps.cc (deps_analyze_insn): Do not schedule across
- calls before reload.
-
-2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
-
- * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
- options for -mlibarch.
- * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
- * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
-
-2023-01-13 Qing Zhao <qing.zhao@oracle.com>
-
- * attribs.cc (strict_flex_array_level_of): Move this function to ...
- * attribs.h (strict_flex_array_level_of): Remove the declaration.
- * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
- replace the referece to strict_flex_array_level_of with
- DECL_NOT_FLEXARRAY.
- * tree.cc (component_ref_size): Likewise.
-
-2023-01-13 Richard Biener <rguenther@suse.de>
-
- PR target/55522
- * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
- crtfastmath.o for -shared.
- * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
-
-2023-01-13 Richard Biener <rguenther@suse.de>
-
- PR target/55522
- * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
- crtfastmath.o for -shared.
- * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
- Likewise.
- * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
- Likewise.
+ PR sanitizer/113251
+ * varasm.cc (assemble_function_label_raw): Do not call
+ asan_function_start () without the current function.
-2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
+2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
- * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
- function.
- (TARGET_DWARF_FRAME_REG_MODE): Define.
+ PR target/113225
+ * btfout.cc (btf_collect_datasec): Skip creating BTF info for
+ extern and kernel_helper attributed function decls.
-2023-01-13 Richard Biener <rguenther@suse.de>
+2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
- PR target/107209
- * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
- update EH info on the fly.
+ * btfout.cc (output_btf_strs): Changed.
-2023-01-13 Richard Biener <rguenther@suse.de>
+2024-01-08 Tobias Burnus <tobias@codesourcery.com>
- PR tree-optimization/108387
- * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
- value before inserting expression into the tables.
+ * config/gcn/mkoffload.cc (main): Handle gfx1100
+ when setting the default XNACK.
-2023-01-12 Andrew Pinski <apinski@marvell.com>
- Roger Sayle <roger@nextmovesoftware.com>
+2024-01-08 Tobias Burnus <tobias@codesourcery.com>
- PR tree-optimization/92342
- * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
- Use tcc_comparison and :c for the multiply.
- (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
+ * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
+ * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
+ (ASM_SPEC): Handle gfx1100.
+ * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
+ (enum gcn_isa): Add ISA_RDNA3.
+ (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
+ * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
+ * config/gcn/gcn.cc (gcn_option_override,
+ gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
+ (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
+ TARGET_RDNA2 to TARGET_RDNA2_PLUS.
+ (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
+ with gfx1100.
+ * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
+ (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
+ __gfx1100__.
+ * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
+ * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
+ * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
+ (isa_has_combined_avgprs, main): Handle gfx1100.
+ * config/gcn/t-omp-device (isa): Add gfx1100.
-2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
- Richard Sandiford <richard.sandiford@arm.com>
+2024-01-08 Richard Biener <rguenther@suse.de>
- PR target/105549
- * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
- Check DECL_PACKED for bitfield.
- (aarch64_layout_arg): Warn when parameter passing ABI changes.
- (aarch64_function_arg_boundary): Do not warn here.
- (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
- changes.
+ * doc/invoke.texi (-mmovbe): Clarify.
-2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
- Richard Sandiford <richard.sandiford@arm.com>
+2024-01-08 Richard Biener <rguenther@suse.de>
- * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
- comment.
- (aarch64_layout_arg): Factorize warning conditions.
- (aarch64_function_arg_boundary): Fix typo.
- * function.cc (currently_expanding_function_start): New variable.
- (expand_function_start): Handle
- currently_expanding_function_start.
- * function.h (currently_expanding_function_start): Declare.
+ PR tree-optimization/113026
+ * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
+ Avoid an epilog in more cases.
+ * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
+ epilogues niter upper bounds and estimates.
-2023-01-12 Richard Biener <rguenther@suse.de>
+2024-01-08 Jakub Jelinek <jakub@redhat.com>
- PR tree-optimization/99412
- * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
- (swap_ops_for_binary_stmt): Remove reduction handling.
- (rewrite_expr_tree_parallel): Adjust.
- (reassociate_bb): Likewise.
- * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
+ PR tree-optimization/113228
+ * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
-2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+2024-01-08 Jakub Jelinek <jakub@redhat.com>
- * config/xtensa/xtensa.md (ctzsi2, ffssi2):
- Rearrange the emitting codes.
+ PR tree-optimization/113120
+ * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
+ large _BitInt zero INTEGER_CST PHI argument.
-2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+2024-01-08 Jakub Jelinek <jakub@redhat.com>
- * config/xtensa/xtensa.md (*btrue):
- Correct value of the attribute "length" that depends on
- TARGET_DENSITY and operands, and add '?' character to the register
- constraint of the compared operand.
+ PR tree-optimization/113119
+ * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
+ both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
+ is before REALPART_EXPR.
-2023-01-12 Alexandre Oliva <oliva@adacore.com>
+2024-01-08 Georg-Johann Lay <avr@gjlay.de>
- * hash-table.h (expand): Check elements and deleted counts.
- (verify): Likewise.
+ PR target/112952
+ * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
+ range when diagnosing attribute "io" and "io_low" are out of range.
+ (avr_eval_addr_attrib): Don't ICE on empty address at that place.
+ (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
+ in contexts other than static storage.
+ (avr_asm_output_aligned_decl_common): Move output of decls with
+ attribute "address", "io", and "io_low" to...
+ (avr_output_addr_attrib): ...this new function.
+ (avr_asm_asm_output_aligned_bss): Remove output for decls with
+ attribute "address", "io", and "io_low".
+ (avr_encode_section_info): Rectify handling of decls with attribute
+ "address", "io", and "io_low".
-2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
+2024-01-08 Andrew Stubbs <ams@codesourcery.com>
- PR tree-optimization/71343
- * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
- the value number of the expression X << C the same as the value
- number for the multiplication X * (1<<C).
-
-2023-01-11 David Faust <david.faust@oracle.com>
-
- PR target/108293
- * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
- floating point modes.
+ * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
+ (elf_flags): Remove XNACK from the default value.
+ (main): Set a default XNACK according to the arch.
-2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
-
- PR tree-optimization/108199
- * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
- for bit-field references.
+2024-01-08 Andrew Stubbs <ams@codesourcery.com>
-2023-01-11 Kewen Lin <linkw@linux.ibm.com>
+ * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
+ (process_asm): Don't count avgprs.
- * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
- OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
- * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
- OPTION_MASK_P10_FUSION.
+2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
-2023-01-11 Richard Biener <rguenther@suse.de>
+ * config/i386/i386.opt: Add supported sub-features.
+ * doc/extend.texi: Add description for target attribute.
- PR tree-optimization/107767
- * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
- * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
- * tree-switch-conversion.cc (switch_conversion::collect):
- Count unique non-default targets accounting for later
- merging opportunities.
+2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
-2023-01-11 Martin Liska <mliska@suse.cz>
+ * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
- PR middle-end/107976
- * params.opt: Limit JT params.
- * stmt.cc (emit_case_dispatch_table): Use auto_vec.
+2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
+ Uros Bizjak <ubizjak@gmail.com>
-2023-01-11 Richard Biener <rguenther@suse.de>
+ PR target/113231
+ * config/i386/i386-features.cc (compute_convert_gain): Include
+ the overhead of explicit load and store (movd) instructions when
+ converting non-store scalar operations with memory destinations.
+ Various indentation whitespace fixes.
- PR tree-optimization/108352
- * tree-ssa-threadbackward.cc
- (back_threader_profitability::profitable_path_p): Adjust
- heuristic that allows non-multi-way branch threads creating
- irreducible loops.
- * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
- (--param fsm-scale-path-stmts): Adjust.
- * params.opt (--param=fsm-scale-path-blocks=): Remove.
- (-param=fsm-scale-path-stmts=): Adjust description.
+2024-01-07 Tamar Christina <tamar.christina@arm.com>
-2023-01-11 Richard Biener <rguenther@suse.de>
+ * config/arm/neon.md (cbranch<mode>4): New.
- PR tree-optimization/108353
- * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
- Remove.
- (add_ssa_edge): Simplify.
- (add_control_edge): Likewise.
- (ssa_prop_init): Likewise.
- (ssa_prop_fini): Likewise.
- (ssa_propagation_engine::ssa_propagate): Likewise.
+2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
+ * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
- * config/s390/s390.md (*not<mode>): New pattern.
+2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
-2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
- * config/xtensa/xtensa.cc (xtensa_insn_cost):
- Let insn cost for size be obtained by applying COSTS_N_INSNS()
- to instruction length and then dividing by 3.
+2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-01-10 Richard Biener <rguenther@suse.de>
+ PR target/113248
+ * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
+ Update the MAX_SEW.
- PR tree-optimization/106293
- * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
- process degenerate PHI defs.
+2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
+ * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
+ (variable_vectorized_p): Teach loop invariant.
+ (has_unexpected_spills_p): Ditto.
- PR rtl-optimization/106421
- * cprop.cc (bypass_block): Check that DEST is local to this
- function (non-NULL) before calling find_edge.
+2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-01-10 Martin Jambor <mjambor@suse.cz>
+ * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
+ * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
+ * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
- PR ipa/108110
- * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
- sort_replacements, lookup_first_base_replacement and
- m_sorted_replacements_p.
- * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
- (ipa_param_body_adjustments::register_replacement): Set
- m_sorted_replacements_p to false.
- (compare_param_body_replacement): New function.
- (ipa_param_body_adjustments::sort_replacements): Likewise.
- (ipa_param_body_adjustments::common_initialization): Call
- sort_replacements.
- (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
- m_sorted_replacements_p.
- (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
- std::lower_bound.
- (ipa_param_body_adjustments::lookup_first_base_replacement): New
- function.
- (ipa_param_body_adjustments::modify_call_stmt): Use
- lookup_first_base_replacement.
- * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
- adjustments->sort_replacements.
+2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
-2023-01-10 Richard Biener <rguenther@suse.de>
+ PR target/113104
+ * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
+ (aarch64-vect-compare-costs): ...this.
+ * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
+ Replace with...
+ (-param=aarch64-vect-compare-costs=): ...this new param.
+ * config/aarch64/aarch64.cc (aarch64_override_options_internal):
+ Don't disable it when vectorizing for Advanced SIMD only.
+ (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
+ whenever aarch64_vect_compare_costs is true.
- PR tree-optimization/108314
- * tree-vect-stmts.cc (vectorizable_condition): Do not
- perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
+2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
-2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
+ Modify the method of determining the memory offset of [x]vld/[x]vst.
+ (lasx_mxst_<lasxfmt_f>): Likewise.
+ * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
+ (loongarch_address_insns): Likewise.
+ * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
+ (lsx_st_<lsxfmt_f>): Likewise.
+ * config/loongarch/predicates.md (aq10b_operand): Likewise.
+ (aq10h_operand): Likewise.
+ (aq10w_operand): Likewise.
+ (aq10d_operand): Likewise.
- * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
+2024-01-05 Alex Coplan <alex.coplan@arm.com>
-2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ PR target/113217
+ * config/aarch64/aarch64-ldp-fusion.cc
+ (ldp_bb_info::try_fuse_pair): If the second access can throw,
+ narrow the move range to exactly that insn.
- * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
+2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
-2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ * asan.cc (asan_function_start): Drop switch_to_section ().
+ (asan_emit_stack_protection): Set .LASANPC alignment.
+ * config/i386/i386.cc: Use assemble_function_label_raw ()
+ instead of ASM_OUTPUT_LABEL ().
+ * config/s390/s390.cc (s390_asm_output_function_label):
+ Likewise.
+ * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
+ * final.cc (final_start_function_1): Drop
+ asan_function_start ().
+ * output.h (assemble_function_label_raw): New function.
+ * varasm.cc (assemble_function_label_raw): Likewise.
+
+2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_declare_function_name):
+ Use ASM_OUTPUT_FUNCTION_LABEL ().
+ * config/alpha/alpha.cc (alpha_start_function): Likewise.
+ * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
+ * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
+ * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/ia64/ia64.cc (ia64_start_function): Likewise.
+ * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
+ Likewise.
+ * config/microblaze/microblaze.cc (microblaze_function_prologue):
+ Likewise.
+ * config/mips/mips.cc (mips_start_unique_function): Return the
+ tree.
+ (mips_start_function_definition): Use
+ ASM_OUTPUT_FUNCTION_LABEL ().
+ (mips_finish_stub): Pass the tree to
+ mips_start_function_definition ().
+ (mips16_build_function_stub): Likewise.
+ (mips16_build_call_stub): Likewise.
+ (mips_output_function_prologue): Likewise.
+ * config/pa/pa.cc (pa_output_function_label): Use
+ ASM_OUTPUT_FUNCTION_LABEL ().
+ * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
+ * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
+ Likewise.
+ (rs6000_xcoff_declare_function_name): Likewise.
- * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
- defines for soft float abi.
+2024-01-05 Jakub Jelinek <jakub@redhat.com>
-2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ PR tree-optimization/113201
+ * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
+ replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
- * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
- (smart_bclri): Likewise.
- (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
- (fast_bclri): Likewise.
- (fast_cmpnesi_i): Likewise.
- (*fast_cmpltsi_i): Likewise.
- (*fast_cmpgeusi_i): Likewise.
+2024-01-05 Jakub Jelinek <jakub@redhat.com>
-2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ PR tree-optimization/90693
+ * tree-ssa-math-opts.cc (match_single_bit_test): If
+ tree_expr_nonzero_p (arg), remember it in the second argument to
+ IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
+ arg ^ (arg - 1) > arg - 1.
+ * internal-fn.cc (expand_POPCOUNT): If second argument to
+ IFN_POPCOUNT suggests arg is non-zero, try to expand it as
+ arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
- * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
- flag_fp_int_builtin_inexact || !flag_trapping_math.
- (<frm_pattern><mode>2): Likewise.
+2024-01-05 Kito Cheng <kito.cheng@sifive.com>
-2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
+ * config/riscv/riscv-v.cc (expand_load_store):
+ Remove `value`.
+ (expand_cond_len_op): Ditto.
+ (expand_gather_scatter): Ditto.
+ (expand_lanes_load_store): Ditto.
+ (expand_fold_extract_last): Ditto.
- * config/s390/s390.cc (s390_register_info): Check call_used_regs
- instead of hard-coding the register numbers for call saved
- registers.
- (s390_optimize_register_info): Likewise.
+2024-01-05 Pan Li <pan2.li@intel.com>
-2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
+ Revert:
+ 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
+
+ * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
+ Add new function_base for crypto vector.
+ (class bitmanip): Ditto.
+ (class b_reverse):Ditto.
+ (class vwsll): Ditto.
+ (class clmul): Ditto.
+ (class vg_nhab): Ditto.
+ (class crypto_vv):Ditto.
+ (class crypto_vi):Ditto.
+ (class vaeskf2_vsm3c):Ditto.
+ (class vsm3me): Ditto.
+ (BASE): Add BASE declaration for crypto vector.
+ * config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ Add crypto vector intrinsic definition.
+ (vbrev): Ditto.
+ (vclz): Ditto.
+ (vctz): Ditto.
+ (vwsll): Ditto.
+ (vandn): Ditto.
+ (vbrev8): Ditto.
+ (vrev8): Ditto.
+ (vrol): Ditto.
+ (vror): Ditto.
+ (vclmul): Ditto.
+ (vclmulh): Ditto.
+ (vghsh): Ditto.
+ (vgmul): Ditto.
+ (vaesef): Ditto.
+ (vaesem): Ditto.
+ (vaesdf): Ditto.
+ (vaesdm): Ditto.
+ (vaesz): Ditto.
+ (vaeskf1): Ditto.
+ (vaeskf2): Ditto.
+ (vsha2ms): Ditto.
+ (vsha2ch): Ditto.
+ (vsha2cl): Ditto.
+ (vsm4k): Ditto.
+ (vsm4r): Ditto.
+ (vsm3me): Ditto.
+ (vsm3c): Ditto.
+ * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
+ Add new function_shape for crypto vector.
+ (struct crypto_vi_def): Ditto.
+ (struct crypto_vv_no_op_type_def): Ditto.
+ (SHAPE): Add SHAPE declaration of crypto vector.
+ * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
+ Add new data type for crypto vector.
+ (DEF_RVV_CRYPTO_SEW64_OPS): 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_CRYPTO_SEW32_OPS):
+ Add new data struct for crypto vector.
+ (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
+ * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
+
+2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
+
+ * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
+ Add new function_base for crypto vector.
+ (class bitmanip): Ditto.
+ (class b_reverse):Ditto.
+ (class vwsll): Ditto.
+ (class clmul): Ditto.
+ (class vg_nhab): Ditto.
+ (class crypto_vv):Ditto.
+ (class crypto_vi):Ditto.
+ (class vaeskf2_vsm3c):Ditto.
+ (class vsm3me): Ditto.
+ (BASE): Add BASE declaration for crypto vector.
+ * config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
+ Add crypto vector intrinsic definition.
+ (vbrev): Ditto.
+ (vclz): Ditto.
+ (vctz): Ditto.
+ (vwsll): Ditto.
+ (vandn): Ditto.
+ (vbrev8): Ditto.
+ (vrev8): Ditto.
+ (vrol): Ditto.
+ (vror): Ditto.
+ (vclmul): Ditto.
+ (vclmulh): Ditto.
+ (vghsh): Ditto.
+ (vgmul): Ditto.
+ (vaesef): Ditto.
+ (vaesem): Ditto.
+ (vaesdf): Ditto.
+ (vaesdm): Ditto.
+ (vaesz): Ditto.
+ (vaeskf1): Ditto.
+ (vaeskf2): Ditto.
+ (vsha2ms): Ditto.
+ (vsha2ch): Ditto.
+ (vsha2cl): Ditto.
+ (vsm4k): Ditto.
+ (vsm4r): Ditto.
+ (vsm3me): Ditto.
+ (vsm3c): Ditto.
+ * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
+ Add new function_shape for crypto vector.
+ (struct crypto_vi_def): Ditto.
+ (struct crypto_vv_no_op_type_def): Ditto.
+ (SHAPE): Add SHAPE declaration of crypto vector.
+ * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
+ Add new data type for crypto vector.
+ (DEF_RVV_CRYPTO_SEW64_OPS): 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_CRYPTO_SEW32_OPS):
+ Add new data struct for crypto vector.
+ (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
+ (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
+ * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
- * doc/gm2.texi (Overview): Fix @node markers.
- (Using): Likewise. Remove subsections that were moved to Overview
- from the menu and move others around.
+2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
-2023-01-09 Richard Biener <rguenther@suse.de>
+ * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
- PR middle-end/108209
- * genmatch.cc (commutative_op): Fix return value for
- user-id with non-commutative first replacement.
+2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
-2023-01-09 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/113186
+ * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
+ Match `^` with the `==` for 1bit integral types.
+ * match.pd (maybe_cmp): Allow for bit_xor for 1bit
+ integral types.
- PR target/107453
- * calls.cc (expand_call): For calls with
- TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
- Formatting fix.
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
-2023-01-09 Richard Biener <rguenther@suse.de>
+ * toplev.cc (general_init): Pass lang_mask to urlifier.
- PR middle-end/69482
- * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
- qualified accesses also force objects to memory.
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
-2023-01-09 Martin Liska <mliska@suse.cz>
+ * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
+ param.
+ (diagnostic_context::make_option_url): Update for lang_mask param.
+ * gcc-urlifier.cc: Include "opts.h" and "options.h".
+ (gcc_urlifier::gcc_urlifier): Add lang_mask param.
+ (gcc_urlifier::m_lang_mask): New field.
+ (doc_urls): Make static.
+ (gcc_urlifier::get_url_for_quoted_text): Use label_text.
+ (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
+ Look for an option by name before trying a binary search in
+ doc_urls.
+ (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
+ (gcc_urlifier::get_url_suffix_for_option): New.
+ (make_gcc_urlifier): Add lang_mask param.
+ (selftest::gcc_urlifier_cc_tests): Update for above changes.
+ Verify that a URL is found for "-fpack-struct".
+ * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
+ * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
+ * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
+ to make_gcc_urlifier.
+ * opts-diagnostic.h (get_option_url): Add lang_mask param.
+ * opts.cc (get_option_html_page): Remove special-casing for
+ analyzer and LTO.
+ (get_option_url_suffix): New.
+ (get_option_url): Reimplement.
+ (selftest::test_get_option_html_page): Rename to...
+ (selftest::test_get_option_url_suffix): ...this and update for
+ above changes.
+ (selftest::opts_cc_tests): Update for renaming.
+ * opts.h: Include "rich-location.h".
+ (get_option_url_suffix): New decl.
+
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
+
+ * Makefile.in (ALL_OPT_URL_FILES): New.
+ (GCC_OBJS): Add options-urls.o.
+ (OBJS): Likewise.
+ (OBJS-libcommon): Likewise.
+ (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
+ inputs to opt-gather.awk.
+ (options-urls.cc): New Makefile target.
+ * opt-functions.awk (url_suffix): New function.
+ (lang_url_suffix): New function.
+ * options-urls-cc-gen.awk: New file.
+ * opts.h (get_opt_url_suffix): New decl.
+
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
+
+ * params.opt.urls: New file, autogenerated by
+ regenerate-opt-urls.py.
+
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
+
+ * common.opt.urls: New file, autogenerated by
+ regenerate-opt-urls.py.
+ * config/aarch64/aarch64.opt.urls: Likewise.
+ * config/alpha/alpha.opt.urls: Likewise.
+ * config/alpha/elf.opt.urls: Likewise.
+ * config/arc/arc-tables.opt.urls: Likewise.
+ * config/arc/arc.opt.urls: Likewise.
+ * config/arm/arm-tables.opt.urls: Likewise.
+ * config/arm/arm.opt.urls: Likewise.
+ * config/arm/vxworks.opt.urls: Likewise.
+ * config/avr/avr.opt.urls: Likewise.
+ * config/bpf/bpf.opt.urls: Likewise.
+ * config/c6x/c6x-tables.opt.urls: Likewise.
+ * config/c6x/c6x.opt.urls: Likewise.
+ * config/cris/cris.opt.urls: Likewise.
+ * config/cris/elf.opt.urls: Likewise.
+ * config/csky/csky.opt.urls: Likewise.
+ * config/csky/csky_tables.opt.urls: Likewise.
+ * config/darwin.opt.urls: Likewise.
+ * config/dragonfly.opt.urls: Likewise.
+ * config/epiphany/epiphany.opt.urls: Likewise.
+ * config/fr30/fr30.opt.urls: Likewise.
+ * config/freebsd.opt.urls: Likewise.
+ * config/frv/frv.opt.urls: Likewise.
+ * config/ft32/ft32.opt.urls: Likewise.
+ * config/fused-madd.opt.urls: Likewise.
+ * config/g.opt.urls: Likewise.
+ * config/gcn/gcn.opt.urls: Likewise.
+ * config/gnu-user.opt.urls: Likewise.
+ * config/h8300/h8300.opt.urls: Likewise.
+ * config/hpux11.opt.urls: Likewise.
+ * config/i386/cygming.opt.urls: Likewise.
+ * config/i386/cygwin.opt.urls: Likewise.
+ * config/i386/djgpp.opt.urls: Likewise.
+ * config/i386/i386.opt.urls: Likewise.
+ * config/i386/mingw-w64.opt.urls: Likewise.
+ * config/i386/mingw.opt.urls: Likewise.
+ * config/i386/nto.opt.urls: Likewise.
+ * config/ia64/ia64.opt.urls: Likewise.
+ * config/ia64/ilp32.opt.urls: Likewise.
+ * config/ia64/vms.opt.urls: Likewise.
+ * config/iq2000/iq2000.opt.urls: Likewise.
+ * config/linux-android.opt.urls: Likewise.
+ * config/linux.opt.urls: Likewise.
+ * config/lm32/lm32.opt.urls: Likewise.
+ * config/loongarch/loongarch.opt.urls: Likewise.
+ * config/lynx.opt.urls: Likewise.
+ * config/m32c/m32c.opt.urls: Likewise.
+ * config/m32r/m32r.opt.urls: Likewise.
+ * config/m68k/ieee.opt.urls: Likewise.
+ * config/m68k/m68k-tables.opt.urls: Likewise.
+ * config/m68k/m68k.opt.urls: Likewise.
+ * config/m68k/uclinux.opt.urls: Likewise.
+ * config/mcore/mcore.opt.urls: Likewise.
+ * config/microblaze/microblaze.opt.urls: Likewise.
+ * config/mips/mips-tables.opt.urls: Likewise.
+ * config/mips/mips.opt.urls: Likewise.
+ * config/mips/sde.opt.urls: Likewise.
+ * config/mmix/mmix.opt.urls: Likewise.
+ * config/mn10300/mn10300.opt.urls: Likewise.
+ * config/moxie/moxie.opt.urls: Likewise.
+ * config/msp430/msp430.opt.urls: Likewise.
+ * config/nds32/nds32-elf.opt.urls: Likewise.
+ * config/nds32/nds32-linux.opt.urls: Likewise.
+ * config/nds32/nds32.opt.urls: Likewise.
+ * config/netbsd-elf.opt.urls: Likewise.
+ * config/netbsd.opt.urls: Likewise.
+ * config/nios2/elf.opt.urls: Likewise.
+ * config/nios2/nios2.opt.urls: Likewise.
+ * config/nvptx/nvptx-gen.opt.urls: Likewise.
+ * config/nvptx/nvptx.opt.urls: Likewise.
+ * config/openbsd.opt.urls: Likewise.
+ * config/or1k/elf.opt.urls: Likewise.
+ * config/or1k/or1k.opt.urls: Likewise.
+ * config/pa/pa-hpux.opt.urls: Likewise.
+ * config/pa/pa-hpux1010.opt.urls: Likewise.
+ * config/pa/pa-hpux1111.opt.urls: Likewise.
+ * config/pa/pa-hpux1131.opt.urls: Likewise.
+ * config/pa/pa.opt.urls: Likewise.
+ * config/pa/pa64-hpux.opt.urls: Likewise.
+ * config/pdp11/pdp11.opt.urls: Likewise.
+ * config/pru/pru.opt.urls: Likewise.
+ * config/riscv/riscv.opt.urls: Likewise.
+ * config/rl78/rl78.opt.urls: Likewise.
+ * config/rpath.opt.urls: Likewise.
+ * config/rs6000/476.opt.urls: Likewise.
+ * config/rs6000/aix64.opt.urls: Likewise.
+ * config/rs6000/darwin.opt.urls: Likewise.
+ * config/rs6000/linux64.opt.urls: Likewise.
+ * config/rs6000/rs6000-tables.opt.urls: Likewise.
+ * config/rs6000/rs6000.opt.urls: Likewise.
+ * config/rs6000/sysv4.opt.urls: Likewise.
+ * config/rtems.opt.urls: Likewise.
+ * config/rx/elf.opt.urls: Likewise.
+ * config/rx/rx.opt.urls: Likewise.
+ * config/s390/s390.opt.urls: Likewise.
+ * config/s390/tpf.opt.urls: Likewise.
+ * config/sh/sh.opt.urls: Likewise.
+ * config/sh/superh.opt.urls: Likewise.
+ * config/sol2.opt.urls: Likewise.
+ * config/sparc/long-double-switch.opt.urls: Likewise.
+ * config/sparc/sparc.opt.urls: Likewise.
+ * config/stormy16/stormy16.opt.urls: Likewise.
+ * config/v850/v850.opt.urls: Likewise.
+ * config/vax/elf.opt.urls: Likewise.
+ * config/vax/vax.opt.urls: Likewise.
+ * config/visium/visium.opt.urls: Likewise.
+ * config/vms/vms.opt.urls: Likewise.
+ * config/vxworks-smp.opt.urls: Likewise.
+ * config/vxworks.opt.urls: Likewise.
+ * config/xtensa/elf.opt.urls: Likewise.
+ * config/xtensa/uclinux.opt.urls: Likewise.
+ * config/xtensa/xtensa.opt.urls: Likewise.
+ * config/bfin/bfin.opt.urls: New file.
+
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
+
+ * Makefile.in (OPT_URLS_HTML_DEPS): New.
+ (regenerate-opt-urls): New target.
+ (regenerate-opt-urls-unit-test): New target.
+ * doc/options.texi (Option properties): Add UrlSuffix and
+ description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
+ * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
+ reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
+ and Makefile.in's OPT_URLS_HTML_DEPS.
+ (Anatomy of a Target Back End): Add
+ reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
+ * regenerate-opt-urls.py: New file.
+
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-format-sarif.cc
+ (sarif_builder::make_logical_location_object): Convert to...
+ (make_sarif_logical_location_object): ...this.
+ (sarif_builder::set_any_logical_locs_arr): Update for above
+ change.
+ (sarif_builder::make_thread_flow_location_object): Call
+ maybe_add_sarif_properties on each diagnostic_event.
+ * diagnostic-format-sarif.h (class logical_location): New forward
+ decl.
+ (make_sarif_logical_location_object): New decl.
+ * diagnostic-path.h (class sarif_object): New forward decl.
+ (diagnostic_event::maybe_add_sarif_properties): New vfunc.
- PR lto/108330
- * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
- NULL (deleleted value) to a hash_set.
+2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
+ Patrick Lin <patrick@andestech.com>
+ Rufus Chen <rufus@andestech.com>
+ Monk Chiang <monk.chiang@sifive.com>
-2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
+ with Nan-boxing value.
+ * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
- * config/xtensa/xtensa.md (*splice_bits):
- New insn_and_split pattern.
+2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
+ Jeff Law <jlaw@ventanamicro.com>
-2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+ PR rtl-optimization/104914
+ * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
+ a sign or zero extension is only required if the modified field
+ overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
+ targets, don't refer to the temporarily incorrectly extended value
+ using a SUBREG, but instead generate an explicit TRUNCATE rtx.
- * config/xtensa/xtensa.cc
- (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
- New helper functions.
- (xtensa_set_return_address, xtensa_output_mi_thunk):
- Change to use the helper function.
- (xtensa_emit_adjust_stack_ptr): Ditto.
- And also change to try reusing the content of scratch register
- A9 if the register is not modified in the function body.
+2024-01-04 Pan Li <pan2.li@intel.com>
-2023-01-07 LIU Hao <lh_mouse@126.com>
+ Revert:
+ 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- PR middle-end/108300
- * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
- before <windows.h>.
- * diagnostic-color.cc: Likewise.
- * plugin.cc: Likewise.
- * prefix.cc: Likewise.
+ * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
-2023-01-06 Joseph Myers <joseph@codesourcery.com>
+2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
- for handling real integer types.
+ * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
-2023-01-06 Tamar Christina <tamar.christina@arm.com>
+2024-01-04 Kito Cheng <kito.cheng@sifive.com>
- Revert:
- 2022-12-12 Tamar Christina <tamar.christina@arm.com>
-
- * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
- (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
- aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
- @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
- reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
- aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
- vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
- (aarch64_simd_dupv2hf): New.
- * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
- Add E_V2HFmode.
- * config/aarch64/iterators.md (VHSDF_P): New.
- (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
- Vel, q, vp): Add V2HF.
- * config/arm/types.md (neon_fp_reduc_add_h): New.
-
-2023-01-06 Martin Liska <mliska@suse.cz>
-
- PR middle-end/107966
- * doc/options.texi: Fix Var documentation in internal manual.
-
-2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
+ * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
+ offset of fcsr.
- Revert:
- 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
+2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
- RTL expansion to allow condition (mask) to be shared/reused,
- by avoiding overwriting pseudos and adding REG_EQUAL notes.
+ * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
+ (compute_nregs_for_mode): Refine LMUL.
+ (max_number_of_live_regs): Ditto.
+ (compute_estimated_lmul): Ditto.
+ (has_unexpected_spills_p): Ditto.
-2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
+2024-01-04 Li Wei <liwei@loongson.cn>
- * common.opt: Add -static-libgm2.
- * config/darwin.h (LINK_SPEC): Handle static-libgm2.
- * doc/gm2.texi: Document static-libgm2.
- * gcc.cc (driver_handle_option): Allow static-libgm2.
+ * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
+ Remove useless forward declaration.
+ (loongarch_is_even_extraction): Remove useless forward declaration.
+ (loongarch_try_expand_lsx_vshuf_const): Removed.
+ (loongarch_expand_vec_perm_const_1): Merged.
+ (loongarch_is_double_duplicate): Removed.
+ (loongarch_is_center_extraction): Ditto.
+ (loongarch_is_reversing_permutation): Ditto.
+ (loongarch_is_di_misalign_extract): Ditto.
+ (loongarch_is_si_misalign_extract): Ditto.
+ (loongarch_is_lasx_lowpart_extract): Ditto.
+ (loongarch_is_op_reverse_perm): Ditto.
+ (loongarch_is_single_op_perm): Ditto.
+ (loongarch_is_divisible_perm): Ditto.
+ (loongarch_is_triple_stride_extract): Ditto.
+ (loongarch_expand_vec_perm_const_2): Merged.
+ (loongarch_expand_vec_perm_const): New.
+ (loongarch_vectorize_vec_perm_const): Adjust.
-2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
+2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
- * common/config/i386/i386-common.cc (processor_alias_table):
- Use CPU_ZNVER4 for znver4.
- * config/i386/i386.md: Add znver4.md.
- * config/i386/znver4.md: New.
+ * omp-general.cc: Fix comment typos and misplaced/confusing
+ comments. Delete redundant include of omp-general.h.
-2023-01-04 Jakub Jelinek <jakub@redhat.com>
+2024-01-04 YunQiang Su <syq@gcc.gnu.org>
- PR tree-optimization/108253
- * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
- types.
+ PR rtl-optimization/104914
+ * config/mips/mips.md (insqisi_extended): New patterns.
+ (inshisi_extended): Ditto.
-2023-01-04 Jakub Jelinek <jakub@redhat.com>
+2024-01-04 YunQiang Su <syq@gcc.gnu.org>
- PR middle-end/108237
- * generic-match-head.cc: Include tree-pass.h.
- (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
- to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
- resp. PROP_gimple_lvec property set.
+ * config/mips/mips.cc (mips_insn_cost): New function.
-2023-01-04 Jakub Jelinek <jakub@redhat.com>
+2024-01-04 YunQiang Su <syq@gcc.gnu.org>
- PR sanitizer/108256
- * convert.cc (do_narrow): Punt for MULT_EXPR if original
- type doesn't wrap around and -fsanitize=signed-integer-overflow
- is on.
- * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
+ * config/mips/mips.md (perf_ratio): New attribute.
-2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
+2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
- * common/config/i386/i386-common.cc: Add Emeraldrapids.
+ PR target/113206
+ PR target/113209
+ * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
+ (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
+ blocks belong to infinite loop.
+ (pre_vsetvl::emit_vsetvl): Remove fake edges.
+ * config/riscv/t-riscv: Add a new include file.
-2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
+2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
- * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
- for meteorlake.
+ * config/riscv/vector.md: Fix indent.
-2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
+2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
- * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
- default constructor to initialize it.
- * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
- for last and iterate to handle recursive calls. Delete leftover
- candidates at the end.
- * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
- on local clones.
- * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
- gc_candidate bit when a clone is used.
+ * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
+ OMP_CLAUSE__SIMDUID_.
+ * tree.cc (omp_clause_num_ops): Update position of entry for
+ OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
+ (omp_clause_code_name): Likewise.
-2023-01-03 Florian Weimer <fweimer@redhat.com>
+2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
- Revert:
- 2023-01-02 Florian Weimer <fweimer@redhat.com>
-
- * dwarf2cfi.cc (init_return_column_size): Remove.
- (init_one_dwarf_reg_size): Adjust.
- (generate_dwarf_reg_sizes): New function. Extracted
- from expand_builtin_init_dwarf_reg_sizes.
- (expand_builtin_init_dwarf_reg_sizes): Call
- generate_dwarf_reg_sizes.
- * target.def (init_dwarf_reg_sizes_extra): Adjust
- hook signature.
- * config/msp430/msp430.cc
- (msp430_init_dwarf_reg_sizes_extra): Adjust.
- * config/rs6000/rs6000.cc
- (rs6000_init_dwarf_reg_sizes_extra): Likewise.
- * doc/tm.texi: Update.
-
-2023-01-03 Florian Weimer <fweimer@redhat.com>
+ * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
+ printing of FUNC_MAP/IND_FUNC_MAP labels.
- Revert:
- 2023-01-02 Florian Weimer <fweimer@redhat.com>
-
- * debug.h (dwarf_reg_sizes_constant): Declare.
- * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
-
-2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
-
- PR tree-optimization/105043
- * doc/extend.texi (Object Size Checking): Split out into two
- subsections and mention _FORTIFY_SOURCE.
-
-2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
-
- * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
- RTL expansion to allow condition (mask) to be shared/reused,
- by avoiding overwriting pseudos and adding REG_EQUAL notes.
-
-2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
-
- PR target/108229
- * config/i386/i386-features.cc
- (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
- the gain/cost of converting a MEM operand.
-
-2023-01-03 Jakub Jelinek <jakub@redhat.com>
-
- PR middle-end/108264
- * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
- from source which doesn't have scalar integral mode first convert
- it to outer_mode.
-
-2023-01-03 Jakub Jelinek <jakub@redhat.com>
-
- PR rtl-optimization/108263
- * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
- asm goto to EXIT.
-
-2023-01-02 Alexander Monakov <amonakov@ispras.ru>
-
- PR target/87832
- * config/i386/lujiazui.md (lujiazui_div): New automaton.
- (lua_div): New unit.
- (lua_idiv_qi): Correct unit in the reservation.
- (lua_idiv_qi_load): Ditto.
- (lua_idiv_hi): Ditto.
- (lua_idiv_hi_load): Ditto.
- (lua_idiv_si): Ditto.
- (lua_idiv_si_load): Ditto.
- (lua_idiv_di): Ditto.
- (lua_idiv_di_load): Ditto.
- (lua_fdiv_SF): Ditto.
- (lua_fdiv_SF_load): Ditto.
- (lua_fdiv_DF): Ditto.
- (lua_fdiv_DF_load): Ditto.
- (lua_fdiv_XF): Ditto.
- (lua_fdiv_XF_load): Ditto.
- (lua_ssediv_SF): Ditto.
- (lua_ssediv_load_SF): Ditto.
- (lua_ssediv_V4SF): Ditto.
- (lua_ssediv_load_V4SF): Ditto.
- (lua_ssediv_V8SF): Ditto.
- (lua_ssediv_load_V8SF): Ditto.
- (lua_ssediv_SD): Ditto.
- (lua_ssediv_load_SD): Ditto.
- (lua_ssediv_V2DF): Ditto.
- (lua_ssediv_load_V2DF): Ditto.
- (lua_ssediv_V4DF): Ditto.
- (lua_ssediv_load_V4DF): Ditto.
-
-2023-01-02 Florian Weimer <fweimer@redhat.com>
-
- * debug.h (dwarf_reg_sizes_constant): Declare.
- * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
-
-2023-01-02 Florian Weimer <fweimer@redhat.com>
-
- * dwarf2cfi.cc (init_return_column_size): Remove.
- (init_one_dwarf_reg_size): Adjust.
- (generate_dwarf_reg_sizes): New function. Extracted
- from expand_builtin_init_dwarf_reg_sizes.
- (expand_builtin_init_dwarf_reg_sizes): Call
- generate_dwarf_reg_sizes.
- * target.def (init_dwarf_reg_sizes_extra): Adjust
- hook signature.
- * config/msp430/msp430.cc
- (msp430_init_dwarf_reg_sizes_extra): Adjust.
- * config/rs6000/rs6000.cc
- (rs6000_init_dwarf_reg_sizes_extra): Likewise.
- * doc/tm.texi: Update.
-
-2023-01-02 Jakub Jelinek <jakub@redhat.com>
+2024-01-03 Jakub Jelinek <jakub@redhat.com>
* gcc.cc (process_command): Update copyright notice dates.
* gcov-dump.cc (print_version): Ditto.
* doc/install.texi: Ditto.
* doc/invoke.texi: Ditto.
-2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
- Uroš Bizjak <ubizjak@gmail.com>
+2024-01-03 Xi Ruoyao <xry111@xry111.site>
+
+ * config/loongarch/simd.md (fmax<mode>3): New define_insn.
+ (fmin<mode>3): Likewise.
+ (reduc_fmax_scal_<mode>3): New define_expand.
+ (reduc_fmin_scal_<mode>3): Likewise.
+
+2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/113112
+ * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
+ (max_number_of_live_regs): Ditto.
+ (has_unexpected_spills_p): Ditto.
+
+2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
+ Jin Ma <jinma@linux.alibaba.com>
+ Xianmiao Qu <cooper.qu@linux.alibaba.com>
+ Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * config/riscv/vector.md:
+ Use vector_length_operand for vsetvl patterns.
+
+2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
+ (expand_cond_len_op): Add simplification of dummy len and dummy mask.
+
+2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
+
+ * config/aarch64/aarch64-tuning-flags.def
+ (AARCH64_EXTRA_TUNING_OPTION): New tuning option
+ AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
+ * config/aarch64/aarch64.cc
+ (aarch64_override_options_internal): Set
+ param_fully_pipelined_fma according to tuning option.
+ * config/aarch64/tuning_models/ampere1.h: Add
+ AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
+ * config/aarch64/tuning_models/ampere1a.h: Likewise.
+ * config/aarch64/tuning_models/ampere1b.h: Likewise.
+
+2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
+
+ * config/riscv/vector-crypto.md: Modify copyright year.
+
+2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
+
+2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config.in: Regenerate.
+ * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
+ * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
+ Added TLS Le Relax support.
+ (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
+ * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
+ * configure: Regenerate.
+ * configure.ac: Check if binutils supports TLS le relax.
+
+2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
+
+ * config/riscv/iterators.md: Add rotate insn name.
+ * config/riscv/riscv.md: Add new insns name for crypto vector.
+ * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
+ * config/riscv/vector.md: Add the corresponding attr for crypto vector.
+ * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
- * config/i386/i386.md (extendditi2): New define_insn.
- (define_split): Use DWIH mode iterator to treat new extendditi2
- identically to existing extendsidi2_1.
- (define_peephole2): Likewise.
- (define_peephole2): Likewise.
- (define_Split): Likewise.
+2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+ PR target/113112
+ * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
+ pointer type liveness count.
\f
-Copyright (C) 2023 Free Software Foundation, Inc.
+Copyright (C) 2024 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright