| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::adjust_range): Call new |
| intersect routine. |
| * gimple-range-fold.cc (adjust_pointer_diff_expr): Ditto. |
| (adjust_imagpart_expr): Ditto. |
| * value-range.cc (irange::irange_intersect): Call new routine if |
| RHS is a single pair. |
| (irange::intersect): New wide_int version. |
| * value-range.h (class irange): New prototype. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): |
| Add parameter to limit size when recognizing switches. |
| (gimple_outgoing_range::edge_range_p): Check size limit. |
| * gimple-range-edge.h (gimple_outgoing_range): Add size field. |
| * gimple-range-gori.cc (gori_map::calculate_gori): Ignore switches |
| that exceed the size limit. |
| (gori_compute::gori_compute): Add initializer. |
| * params.opt (evrp-switch-limit): New. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.h (irange::set_varying): Use TYPE_MIN_VALUE and |
| TYPE_MAX_VALUE instead of creating new trees when possible. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::adjust_range): Check for |
| zero and non-zero more efficently. |
| |
| 2021-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR c/102605 |
| * dumpfile.h (TDF_GIMPLE_VAL): New. |
| (dump_flag): Re-order and adjust TDF_* flags. Make |
| the enum uint32_t. Use std::underlying_type in the |
| operator overloads. |
| (optgroup_flag): Likewise for the operator overloads. |
| * tree-pretty-print.c (dump_generic_node): Wrap ADDR_EXPR |
| in _Literal if TDF_GIMPLE_VAL. |
| * gimple-pretty-print.c (dump_gimple_assign): Add |
| TDF_GIMPLE_VAL to flags when dumping operands where only |
| is_gimple_val are allowed. |
| (dump_gimple_cond): Likewise. |
| |
| 2021-10-06 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove redundant if |
| condition. |
| |
| 2021-10-05 qing zhao <qing.zhao@oracle.com> |
| |
| PR middle-end/102359 |
| * gimplify.c (gimplify_decl_expr): Not add initialization for an |
| auto variable when it has been initialized by frontend. |
| |
| 2021-10-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): |
| Loosen restrictions |
| |
| 2021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * common/config/avr/avr-common.c (avr_handle_option): Mark |
| argument as ATTRIBUTE_UNUSED. |
| |
| 2021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): |
| Undefine before redefinition. |
| |
| 2021-10-05 Richard Biener <rguenther@suse.de> |
| |
| * toplev.c (no_backend): Remove global var. |
| (process_options): Pass in no_backend, move post_options |
| langhook call to toplev::main. |
| (do_compile): Pass in no_backend, move process_options call |
| to toplev::main. |
| (toplev::run_self_tests): Check no_backend at the caller. |
| (toplev::main): Call post_options and process_options |
| split out from do_compile, do self-tests only if |
| no_backend is initialized. |
| |
| 2021-10-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (dump_function_to_file): Dump the UID of the |
| function as part of the name when requested. |
| * tree-pretty-print.c (dump_function_name): Dump the UID when |
| requested and the langhook produced the actual name. |
| |
| 2021-10-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102587 |
| PR middle-end/102285 |
| * internal-fn.c (expand_DEFERRED_INIT): Fall back to |
| zero-initialization as last resort, use the constant |
| size as given by the DEFERRED_INIT argument to build |
| the initializer. |
| |
| 2021-10-04 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/97573 |
| * doc/invoke.texi: Document -Warray-compare. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| * gimplify.c (is_var_need_auto_init): DECL_HARD_REGISTER |
| variables are not to be initialized. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| * expr.h (non_mem_decl_p): Declare. |
| (mem_ref_refers_to_non_mem_p): Likewise. |
| * expr.c (non_mem_decl_p): Export. |
| (mem_ref_refers_to_non_mem_p): Likewise. |
| * internal-fn.c (expand_DEFERRED_INIT): Do not expand the LHS |
| but check the base with mem_ref_refers_to_non_mem_p |
| and non_mem_decl_p. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102570 |
| * tree-ssa-sccvn.h (vn_reference_op_struct): Document |
| we are using clique for the internal function code. |
| * tree-ssa-sccvn.c (vn_reference_op_eq): Compare the |
| internal function code. |
| (print_vn_reference_ops): Print the internal function code. |
| (vn_reference_op_compute_hash): Hash it. |
| (copy_reference_ops_from_call): Record it. |
| (visit_stmt): Remove the restriction around internal function |
| calls. |
| (fully_constant_vn_reference_p): Use fold_const_call and handle |
| internal functions. |
| (vn_reference_eq): Compare call return types. |
| * tree-ssa-pre.c (create_expression_by_pieces): Handle |
| generating calls to internal functions. |
| (compute_avail): Remove the restriction around internal function |
| calls. |
| |
| 2021-10-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102560 |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Remove static |
| marker for invalid_range. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102587 |
| * internal-fn.c (expand_DEFERRED_INIT): Guard register |
| initialization path an avoid initializing VLA registers |
| with it. |
| |
| 2021-10-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete. |
| |
| 2021-10-03 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): Check opt_index if it is a part |
| of cl_options. |
| |
| 2021-10-02 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102563 |
| * range-op.cc (operator_lshift::op1_range): Do not clobber |
| range. |
| |
| 2021-10-02 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): save_decoded_options[0] is program |
| name and so it should be skipped. |
| |
| 2021-10-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102546 |
| * range-op.cc (operator_lshift::op1_range): Teach range-ops that |
| X << Y is non-zero implies X is also non-zero. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New |
| Cortex-X2 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New |
| Cortex-A710 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New |
| Cortex-A510 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Martin Sebor <msebor@redhat.com> |
| |
| PR c/102103 |
| * doc/invoke.texi (-Waddress): Update. |
| * gengtype.c (write_types): Avoid -Waddress. |
| * poly-int.h (POLY_SET_COEFF): Avoid using null. |
| |
| 2021-10-01 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR debug/102373 |
| * config/pa/pa.c (pa_option_override): Default to dwarf version 4 |
| on hppa64-hpux. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_FL_V9): Update value. |
| |
| 2021-10-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::compute_ranges): Use |
| get_path_oracle. |
| * gimple-range-path.h (class path_range_query): Remove shadowed |
| m_oracle field. |
| (path_range_query::get_path_oracle): New. |
| |
| 2021-10-01 Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR sanitizer/102515 |
| * doc/invoke.texi (-fsanitize=integer-divide-by-zero): Remove |
| INT_MIN / -1 division detection from here ... |
| (-fsanitize=signed-integer-overflow): ... and add it here. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Added |
| armv9-a. |
| * config/aarch64/aarch64.h (AARCH64_FL_V9): New. |
| (AARCH64_FL_FOR_ARCH9): New flags for Armv9-A. |
| (AARCH64_ISA_V9): New ISA flag. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): Save decoded optimization options. |
| * toplev.h (save_opt_decoded_options): New. |
| * doc/extend.texi: Be more clear about optimize and target |
| attributes. |
| |
| 2021-10-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * explow.c: Include langhooks.h. |
| (set_stack_check_libfunc): Build a proper function type. |
| |
| 2021-10-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR c++/64697 |
| * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do |
| not return true for external weak function symbols in medium model. |
| |
| 2021-10-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_ORDER_REPRODUCIBLE): Define. |
| * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_ORDER>: Print |
| reproducible: for OMP_CLAUSE_ORDER_REPRODUCIBLE. |
| * omp-general.c (omp_extract_for_data): If OMP_CLAUSE_ORDER is seen |
| without OMP_CLAUSE_ORDER_UNCONSTRAINED, overwrite sched_kind to |
| OMP_CLAUSE_SCHEDULE_STATIC. |
| |
| 2021-10-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102518 |
| * tree-inline.c (setup_one_parameter): Avoid substituting |
| an invariant into contexts where a GIMPLE register is not valid. |
| |
| 2021-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/arm/arm-cpus.in: Add Cortex-R52+ CPU. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-09-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89954 |
| * config/i386/i386.md |
| (sign_extend:WIDE (any_logic:NARROW (memory, immediate)) splitters): |
| New splitters. |
| |
| 2021-09-30 Tobias Burnus <tobias@codesourcery.com> |
| |
| * omp-low.c (omp_runtime_api_call): Add omp_aligned_{,c}alloc and |
| omp_{c,re}alloc, fix omp_alloc/omp_free. |
| |
| 2021-09-30 Martin Liska <mliska@suse.cz> |
| |
| * defaults.h (ASM_OUTPUT_ASCII): Do not hide global variable |
| asm_out_file and stream directly to MYFILE. |
| |
| 2021-09-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): |
| Restore and fix condition under which we apply npeel to |
| the DRs misalignment value. |
| |
| 2021-09-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): |
| Fix npeel check for variable amount of peeling. |
| |
| 2021-09-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| * lto-wrapper.c (run_gcc): Plug snprintf overflow. |
| |
| 2021-09-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range.cc (gimple_ranger::debug): New. |
| * gimple-range.h (class gimple_ranger): Add debug. |
| |
| 2021-09-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/102519 |
| * tree-vrp.c (hybrid_threader::~hybrid_threader): Free m_query. |
| |
| 2021-09-29 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| PR debug/102507 |
| * btfout.c (GTY): Add GTY (()) albeit for cosmetic only purpose. |
| (btf_finalize): Empty the hash_map btf_var_ids. |
| |
| 2021-09-29 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (thread_through_all_blocks): Return bool. |
| (execute_vrp_threader): Return TODO_* flags. |
| (pass_data_vrp_threader): Set todo_flags_finish to 0. |
| |
| 2021-09-29 Aldy Hernandez <aldyh@redhat.com> |
| |
| * timevar.def (TV_TREE_VRP_THREADER): New. |
| * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass. |
| |
| 2021-09-29 David Faust <david.faust@oracle.com> |
| |
| * config.gcc (bpf-*-*): Do not overwrite extra_headers. |
| |
| 2021-09-29 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_BINOP_PPU): Define |
| new type qualifier enum. |
| (TYPES_TERNOP_SSSU): Likewise. |
| (TYPES_TERNOP_PPPU): Likewise. |
| * config/aarch64/aarch64-simd-builtins.def: Define PPU, SSU, |
| PPPU and SSSU builtin generator macros for qtbl1 and qtbx1 |
| Neon builtins. |
| * config/aarch64/arm_neon.h (vqtbl1_p8): Use type-qualified |
| builtin and remove casts. |
| (vqtbl1_s8): Likewise. |
| (vqtbl1q_p8): Likewise. |
| (vqtbl1q_s8): Likewise. |
| (vqtbx1_s8): Likewise. |
| (vqtbx1_p8): Likewise. |
| (vqtbx1q_s8): Likewise. |
| (vqtbx1q_p8): Likewise. |
| (vtbl1_p8): Likewise. |
| (vtbl2_p8): Likewise. |
| (vtbx2_p8): Likewise. |
| |
| 2021-09-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_dr_misalign_for_aligned_access): |
| New helper. |
| (vect_update_misalignment_for_peel): Use it to update |
| misaligned to the value necessary for an aligned access. |
| (vect_get_peeling_costs_all_drs): Likewise. |
| (vect_enhance_data_refs_alignment): Likewise. |
| |
| 2021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_cpymem): Count number of |
| emitted operations and adjust heuristic for code size. |
| |
| 2021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_setmem): Count number of |
| emitted operations and adjust heuristic for code size. |
| |
| 2021-09-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102504 |
| * gimplify.c (gimplify_scan_omp_clauses): Use omp_check_private even |
| in OMP_SCOPE clauses, not just on worksharing construct clauses. |
| |
| 2021-09-28 Geng Qi <gengqi@linux.alibaba.com> |
| |
| * config/riscv/riscv.md (mulv<mode>4): Call gen_smul<mode>3_highpart. |
| (<u>mulditi3): Call <su>muldi3_highpart. |
| (<u>muldi3_highpart): Rename to <su>muldi3_highpart. |
| (<u>mulsidi3): Call <su>mulsi3_highpart. |
| (<u>mulsi3_highpart): Rename to <su>mulsi3_highpart. |
| |
| 2021-09-28 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DSYMUTIL_SPEC): Recognize D sources. |
| |
| 2021-09-28 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. |
| (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one |
| of the fixed regs. |
| |
| 2021-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_FL_LS64): Define |
| (AARCH64_FL_V8_7): Likewise. |
| (AARCH64_FL_FOR_ARCH8_7): Likewise. |
| * config/aarch64/aarch64-arches.def (armv8.7-a): Define. |
| * config/aarch64/aarch64-option-extensions.def (ls64): Define. |
| * doc/invoke.texi: Document the above. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dbgcnt.c (dbg_cnt_counter): New. |
| * dbgcnt.h (dbg_cnt_counter): New. |
| * dumpfile.c (dump_options): Add entry for TDF_THREADING. |
| * dumpfile.h (enum dump_flag): Add TDF_THREADING. |
| * gimple-range-path.cc (DEBUG_SOLVER): Use TDF_THREADING. |
| * tree-ssa-threadupdate.c (dump_jump_thread_path): Dump out |
| debug counter. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * cfgcleanup.c (pass_jump::execute): Check |
| flag_expensive_optimizations. |
| (pass_jump_after_combine::gate): Same. |
| * doc/invoke.texi (-fthread-jumps): Enable for -O1. |
| * opts.c (default_options_table): Enable -fthread-jumps at -O1. |
| * tree-ssa-threadupdate.c |
| (fwd_jt_path_registry::remove_jump_threads_including): Bail unless |
| flag_thread_jumps. |
| |
| 2021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * tree-ssa-reassoc.c (biased_names): New global. |
| (propagate_bias_p): New function. |
| (loop_carried_phi): Remove. |
| (propagate_rank): Propagate bias along single uses. |
| (get_rank): Update biased_names when needed. |
| |
| 2021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * passes.def (pass_reassoc): Rename parameter to early_p. |
| * tree-ssa-reassoc.c (reassoc_bias_loop_carried_phi_ranks_p): |
| New variable. |
| (phi_rank): Don't bias loop-carried phi ranks |
| before vectorization pass. |
| (execute_reassoc): Add bias_loop_carried_phi_ranks_p parameter. |
| (pass_reassoc::pass_reassoc): Add bias_loop_carried_phi_ranks_p |
| initializer. |
| (pass_reassoc::set_param): Set bias_loop_carried_phi_ranks_p |
| value. |
| (pass_reassoc::execute): Pass bias_loop_carried_phi_ranks_p to |
| execute_reassoc. |
| (pass_reassoc::bias_loop_carried_phi_ranks_p): New member. |
| |
| 2021-09-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102498 |
| * config/i386/i386.c (standard_80387_constant_p): Don't recognize |
| special 80387 instruction XFmode constants if flag_rounding_math. |
| |
| 2021-09-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/100112 |
| * tree-ssa-sccvn.c (visit_reference_op_load): Record the |
| referece into the hashtable twice in case last_vuse is |
| different from the original vuse on the stmt. |
| |
| 2021-09-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102492 |
| * gimplify.c (gimplify_adjust_omp_clauses_1): Don't call the |
| omp_finish_clause langhook on implicitly added OMP_CLAUSE_PRIVATE |
| clauses on SIMD constructs. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102511 |
| * gimple-range-path.cc (path_range_query::range_on_path_entry): |
| Return VARYING when nothing found. |
| |
| 2021-09-28 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/102230 |
| * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Add |
| V2HF mode check. |
| (VALID_SSE2_REG_VHF_MODE): Add V4HFmode and V2HFmode. |
| (VALID_MMX_REG_MODE): Add V4HFmode. |
| (SSE_REG_MODE_P): Replace VALID_AVX512FP16_REG_MODE with |
| vector mode condition. |
| * config/i386/i386.c (classify_argument): Parse V4HF/V2HF |
| via sse regs. |
| (function_arg_32): Add V4HFmode. |
| (function_arg_advance_32): Likewise. |
| * config/i386/i386.md (mode): Add V4HF/V2HF. |
| (MODE_SIZE): Likewise. |
| * config/i386/mmx.md (MMXMODE): Add V4HF mode. |
| (V_32): Add V2HF mode. |
| (VHF_32_64): New mode iterator. |
| (*mov<mode>_internal): Adjust sse alternatives to support |
| V4HF mode move. |
| (*mov<mode>_internal): Adjust sse alternatives to support |
| V2HF mode move. |
| (<insn><mode>3): New define_insn for add/sub/mul/div. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Check |
| flag_thread_jumps. |
| (pass_early_thread_jumps::gate): Same. |
| * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): |
| Return if !flag_thread_jumps. |
| * tree-ssa-threadupdate.c |
| (jt_path_registry::register_jump_thread): Assert that |
| flag_thread_jumps is true. |
| |
| 2021-09-28 liuhongt <hongtao.liu@intel.com> |
| |
| * simplify-rtx.c |
| (simplify_context::simplify_binary_operation_1): Relax |
| condition of simplifying (vec_concat:M (vec_select op0 |
| index0)(vec_select op1 index1)) to allow different modes |
| between op0 and M, but have same inner mode. |
| |
| 2021-09-28 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.c (emit_reduc_half): Handle |
| V8HF/V16HF/V32HFmode. |
| * config/i386/sse.md (REDUC_SSE_PLUS_MODE): Add V8HF. |
| (REDUC_SSE_SMINMAX_MODE): Ditto. |
| (REDUC_PLUS_MODE): Add V16HF and V32HF. |
| (REDUC_SMINMAX_MODE): Ditto. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc |
| (path_range_query::precompute_ranges_in_block): Rename to... |
| (path_range_query::compute_ranges_in_block): ...this. |
| (path_range_query::precompute_ranges): Rename to... |
| (path_range_query::compute_ranges): ...this. |
| (path_range_query::precompute_relations): Rename to... |
| (path_range_query::compute_relations): ...this. |
| (path_range_query::precompute_phi_relations): Rename to... |
| (path_range_query::compute_phi_relations): ...this. |
| * gimple-range-path.h: Rename precompute* to compute*. |
| * tree-ssa-threadbackward.c |
| (back_threader::find_taken_edge_switch): Same. |
| (back_threader::find_taken_edge_cond): Same. |
| * tree-ssa-threadedge.c |
| (hybrid_jt_simplifier::compute_ranges_from_state): Same. |
| (hybrid_jt_state::register_equivs_stmt): Inline... |
| * tree-ssa-threadedge.h: ...here. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (lhs_of_dominating_assert): Remove. |
| (class vrp_jt_state): Remove. |
| (class vrp_jt_simplifier): Remove. |
| (vrp_jt_simplifier::simplify): Remove. |
| (class vrp_jump_threader): Remove. |
| (vrp_jump_threader::vrp_jump_threader): Remove. |
| (vrp_jump_threader::~vrp_jump_threader): Remove. |
| (vrp_jump_threader::before_dom_children): Remove. |
| (vrp_jump_threader::after_dom_children): Remove. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * passes.def (pass_vrp_threader): New. |
| * tree-pass.h (make_pass_vrp_threader): Add make_pass_vrp_threader. |
| * tree-ssa-threadedge.c (hybrid_jt_state::register_equivs_stmt): New. |
| (hybrid_jt_simplifier::hybrid_jt_simplifier): New. |
| (hybrid_jt_simplifier::simplify): New. |
| (hybrid_jt_simplifier::compute_ranges_from_state): New. |
| * tree-ssa-threadedge.h (class hybrid_jt_state): New. |
| (class hybrid_jt_simplifier): New. |
| * tree-vrp.c (execute_vrp): Remove ASSERT_EXPR based jump |
| threader. |
| (class hybrid_threader): New. |
| (hybrid_threader::hybrid_threader): New. |
| (hybrid_threader::~hybrid_threader): New. |
| (hybrid_threader::before_dom_children): New. |
| (hybrid_threader::after_dom_children): New. |
| (execute_vrp_threader): New. |
| (class pass_vrp_threader): New. |
| (make_pass_vrp_threader): New. |
| |
| 2021-09-27 Martin Liska <mliska@suse.cz> |
| |
| * output.h (enum section_flag): New. |
| (SECTION_FORGET): Remove. |
| (SECTION_ENTSIZE): Make it (1UL << 8) - 1. |
| (SECTION_STYLE_MASK): Define it based on other enum |
| values. |
| * varasm.c (switch_to_section): Remove unused handling of |
| SECTION_FORGET. |
| |
| 2021-09-27 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Add new variable flag_default_complex_method. |
| * opts.c (finish_options): Handle flags related to |
| x_flag_complex_method. |
| * toplev.c (process_options): Remove option handling related |
| to flag_complex_method. |
| |
| 2021-09-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102450 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid using |
| type_for_size, instead use int_mode_for_size. |
| |
| 2021-09-27 Andrew Pinski <apinski@marvell.com> |
| |
| PR c/94726 |
| * gimplify.c (gimplify_save_expr): Return early |
| if the type of val is error_mark_node. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssanames.c (ssa_name_has_boolean_range): Use |
| get_range_query. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove |
| vrp_visit_cond_stmt. |
| * tree-ssa-dom.c (cprop_operand): Convert to range_query API. |
| (cprop_into_stmt): Same. |
| (dom_opt_dom_walker::optimize_stmt): Same. |
| |
| 2021-09-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/97351 |
| PR tree-optimization/97352 |
| PR tree-optimization/82426 |
| * tree-vectorizer.h (dr_misalignment): Add vector type |
| argument. |
| (aligned_access_p): Likewise. |
| (known_alignment_for_access_p): Likewise. |
| (vect_supportable_dr_alignment): Likewise. |
| (vect_known_alignment_in_bytes): Likewise. Refactor. |
| (DR_MISALIGNMENT): Remove. |
| (vect_update_shared_vectype): Likewise. |
| * tree-vect-data-refs.c (dr_misalignment): Refactor, handle |
| a vector type with larger alignment requirement and apply |
| the negative step adjustment here. |
| (vect_calculate_target_alignment): Remove. |
| (vect_compute_data_ref_alignment): Get explicit vector type |
| argument, do not apply a negative step alignment adjustment |
| here. |
| (vect_slp_analyze_node_alignment): Re-analyze alignment |
| when we re-visit the DR with a bigger desired alignment but |
| keep more precise results from smaller alignments. |
| * tree-vect-slp.c (vect_update_shared_vectype): Remove. |
| (vect_slp_analyze_node_operations_1): Do not update the |
| shared vector type on stmts. |
| * tree-vect-stmts.c (vect_analyze_stmt): Push/pop the |
| vector type of an SLP node to the representative stmt-info. |
| (vect_transform_stmt): Likewise. |
| |
| 2021-09-27 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101059 |
| * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. |
| (reduc_plus_scal_v4sf): .. this, New define_expand. |
| (reduc_plus_scal_v2df): .. and this, New define_expand. |
| |
| 2021-09-26 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/extend.texi (Half-Precision): Remove storage only |
| description for _Float16 w/o avx512fp16. |
| |
| 2021-09-25 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/constraints.md (Rrio): New constraint. |
| * config/pru/predicates.md (regio_operand): New predicate. |
| * config/pru/pru-pragma.c (pru_register_pragmas): Register |
| the __regio_symbol address space. |
| * config/pru/pru-protos.h (pru_symref2ioregno): Declaration. |
| * config/pru/pru.c (pru_symref2ioregno): New helper function. |
| (pru_legitimate_address_p): Remove. |
| (pru_addr_space_legitimate_address_p): Use the address space |
| aware hook variant. |
| (pru_nongeneric_pointer_addrspace): New helper function. |
| (pru_insert_attributes): New function to validate __regio_symbol |
| usage. |
| (TARGET_INSERT_ATTRIBUTES): New macro. |
| (TARGET_LEGITIMATE_ADDRESS_P): Remove. |
| (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): New macro. |
| * config/pru/pru.h (enum reg_class): Add REGIO_REGS class. |
| * config/pru/pru.md (*regio_readsi): New pattern to read I/O |
| registers. |
| (*regio_nozext_writesi): New pattern to write to I/O registers. |
| (*regio_zext_write_r30<EQS0:mode>): Ditto. |
| * doc/extend.texi: Document the new PRU Named Address Space. |
| |
| 2021-09-24 Patrick Palka <ppalka@redhat.com> |
| |
| PR c++/98216 |
| PR c++/91292 |
| * real.c (encode_ieee_double): Avoid unwanted sign extension. |
| (encode_ieee_quad): Likewise. |
| |
| 2021-09-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/102147 |
| * ira-build.c (ira_conflict_vector_profitable_p): Make |
| profitability calculation independent of host compiler pointer and |
| IRA_INT_BITS sizes. |
| |
| 2021-09-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): |
| Move debugging header... |
| (path_range_query::precompute_ranges): ...here. |
| (path_range_query::internal_range_of_expr): Do not call |
| range_on_path_entry if NAME is defined in the current block. |
| |
| 2021-09-24 Richard Biener <rguenther@suse.de> |
| |
| * cfghooks.c (verify_flow_info): Verify unallocated BB and |
| edge flags are not set. |
| |
| 2021-09-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): |
| New. |
| (jt_path_registry::register_jump_thread): Call |
| cancel_invalid_paths. |
| * tree-ssa-threadupdate.h (class jt_path_registry): Add |
| cancel_invalid_paths. |
| |
| 2021-09-24 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR tree-optimization/102400 |
| * tree-ssa-sccvn.c (vn_reference_insert_pieces): Initialize |
| result_vdef to zero value. |
| |
| 2021-09-24 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR tree-optimization/102451 |
| * tree-ssa-dse.c (delete_dead_or_redundant_call): Record bb of stmt |
| before removal. |
| |
| 2021-09-24 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (cond_<insn><mode>): Extend to support |
| vector HFmodes. |
| (cond_mul<mode>): Likewise. |
| (cond_div<mode>): Likewise. |
| (cond_<code><mode>): Likewise. |
| (cond_fma<mode>): Likewise. |
| (cond_fms<mode>): Likewise. |
| (cond_fnma<mode>): Likewise. |
| (cond_fnms<mode>): Likewise. |
| |
| 2021-09-23 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102463 |
| * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): If |
| there is no range-ops handler, don't look for a relation. |
| |
| 2021-09-23 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::ranger_cache): Take |
| non-executable_edge flag as parameter. |
| * gimple-range-cache.h (ranger_cache): Adjust prototype. |
| * gimple-range-gori.cc (gori_compute::gori_compute): Take |
| non-executable_edge flag as parameter. |
| (gori_compute::outgoing_edge_range_p): Check new flag. |
| * gimple-range-gori.h (gori_compute): Adjust prototype. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Create new flag. |
| (gimple_ranger::range_on_edge): Check new flag. |
| * gimple-range.h (gimple_ranger::non_executable_edge_flag): New. |
| * gimple-ssa-evrp.c (rvrp_folder): Pass ranger flag to simplifer. |
| (hybrid_folder::hybrid_folder): Set ranger non-executable flag value. |
| (hybrid_folder::fold_stmt): Set flag value in the simplifer. |
| * vr-values.c (simplify_using_ranges::set_and_propagate_unexecutable): |
| Use not_executable flag if provided inmstead of EDGE_EXECUTABLE. |
| (simplify_using_ranges::simplify_switch_using_ranges): Clear |
| EDGE_EXECUTABLE like it originally did. |
| (simplify_using_ranges::cleanup_edges_and_switches): Clear any |
| NON_EXECUTABLE flags. |
| (simplify_using_ranges::simplify_using_ranges): Adjust. |
| * vr-values.h (class simplify_using_ranges): Adjust. |
| (simplify_using_ranges::set_range_query): Add non-executable flag param. |
| |
| 2021-09-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/102024 |
| * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect |
| zero-width bit fields and return indicator. |
| (rs6000_discover_homogeneous_aggregate): Diagnose when the |
| presence of a zero-width bit field changes parameter passing in |
| GCC 12. |
| |
| 2021-09-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): |
| Remove dominator check. |
| |
| 2021-09-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::precompute_relations): |
| Hoist edge calculations before using EDGE_SUCC. |
| |
| 2021-09-23 Jonathan Wakely <jwakely@redhat.com> |
| |
| * configure.ac: Fix --with-multilib-list description. |
| * configure: Regenerate. |
| |
| 2021-09-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102448 |
| * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): |
| Clear alignment info copied from DR_PTR_INFO. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_use_mask_cmp_p): Enable |
| HFmode mask_cmp. |
| * config/i386/sse.md (sseintvecmodelower): Add HF vector modes. |
| (<avx512>_store<mode>_mask): Extend to support HF vector modes. |
| (vec_cmp<mode><avx512fmaskmodelower>): Likewise. |
| (vcond_mask_<mode><avx512fmaskmodelower>): Likewise. |
| (vcond<mode><mode>): New expander. |
| (vcond<mode><sseintvecmodelower>): Likewise. |
| (vcond<sseintvecmodelower><mode>): Likewise. |
| (vcondu<mode><sseintvecmodelower>): Likewise. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (extend<ssePHmodelower><mode>2): |
| New expander. |
| (extendv4hf<mode>2): Likewise. |
| (extendv2hfv2df2): Likewise. |
| (trunc<mode><ssePHmodelower>2): Likewise. |
| (avx512fp16_vcvt<castmode>2ph_<mode>): Rename to ... |
| (trunc<mode>v4hf2): ... this, and drop constraints. |
| (avx512fp16_vcvtpd2ph_v2df): Rename to ... |
| (truncv2dfv2hf2): ... this, and likewise. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (float<floatunssuffix><mode><ssePHmodelower>2): |
| New expander. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): |
| Rename to ... |
| (float<floatunssuffix><mode>v4hf2): ... this, and drop constraints. |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Rename to ... |
| (float<floatunssuffix>v2div2hf2): ... this, and likewise. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.md (fix<fixunssuffix>_trunchf<mode>2): New expander. |
| (fixuns_trunchfhi2): Likewise. |
| (*fixuns_trunchfsi2zext): New define_insn. |
| * config/i386/sse.md (ssePHmodelower): New mode_attr. |
| (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): |
| New expander for same element vector fix_truncate. |
| (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): |
| Likewise for V4HF to V4SI/V4DI fix_truncate. |
| (fix<fixunssuffix>_truncv2hfv2di2): |
| Likeise for V2HF to V2DI fix_truncate. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.md (<code>hf3): New expander. |
| |
| 2021-09-23 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (FMAMODEM): extend to handle FP16. |
| (VFH_SF_AVX512VL): Extend to handle HFmode. |
| (VF_SF_AVX512VL): Deleted. |
| |
| 2021-09-23 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (rinthf2): New expander. |
| (nearbyinthf2): New expander. |
| |
| 2021-09-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-dom.c (class dom_jump_threader_simplifier): Rename... |
| (class dom_jt_state): ...this and provide virtual overrides. |
| (dom_jt_state::register_equiv): New. |
| (class dom_jt_simplifier): Rename from |
| dom_jump_threader_simplifier. |
| (dom_jump_threader_simplifier::simplify): Rename... |
| (dom_jt_simplifier::simplify): ...to this. |
| (pass_dominator::execute): Use dom_jt_simplifier and |
| dom_jt_state. |
| * tree-ssa-threadedge.c (jump_threader::jump_threader): |
| Clean-up. |
| (jt_state::register_equivs_stmt): Abstract out... |
| (jump_threader::record_temporary_equivalences_from_stmts_at_dest): |
| ...from here. |
| (jump_threader::thread_around_empty_blocks): Update state. |
| (jump_threader::thread_through_normal_block): Same. |
| (jt_state::jt_state): Remove. |
| (jt_state::push): Remove pass specific bits. Keep block vector |
| updated. |
| (jt_state::append_path): New. |
| (jt_state::pop): Remove pass specific bits. |
| (jt_state::register_equiv): Same. |
| (jt_state::record_ranges_from_stmt): Same. |
| (jt_state::register_equivs_on_edge): Same. Rename... |
| (jt_state::register_equivs_edge): ...to this. |
| (jt_state::dump): New. |
| (jt_state::debug): New. |
| (jump_threader_simplifier::simplify): Remove. |
| (jt_state::get_path): New. |
| * tree-ssa-threadedge.h (class jt_simplifier): Make into a base |
| class. Expose common functionality as virtual methods. |
| (class jump_threader_simplifier): Same. Rename... |
| (class jt_simplifier): ...to this. |
| * tree-vrp.c (class vrp_jump_threader_simplifier): Rename... |
| (class vrp_jt_simplifier): ...to this. Provide pass specific |
| overrides. |
| (class vrp_jt_state): New. |
| (vrp_jump_threader_simplifier::simplify): Rename... |
| (vrp_jt_simplifier::simplify): ...to this. Inline code from |
| what used to be the base class. |
| (vrp_jump_threader::vrp_jump_threader): Use vrp_jt_state and |
| vrp_jt_simplifier. |
| |
| 2021-09-22 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR fortran/55534 |
| * doc/invoke.texi (-Wno-missing-include-dirs.): Document Fortran |
| behavior. |
| |
| 2021-09-22 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * match.pd (negation simplifications): Implement some negation |
| folding transformations from fold-const.c's fold_negate_expr. |
| * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Add a SIMPLIFY |
| argument, to control whether the op should be simplified prior |
| to looking up/assigning a value number. |
| (vn_nary_build_or_lookup): Update call to vn_nary_build_or_lookup_1. |
| (vn_nary_simplify): Likewise. |
| (visit_nary_op): Likewise, but when constructing a NEGATE_EXPR |
| now call vn_nary_build_or_lookup_1 disabling simplification. |
| |
| 2021-09-22 Jiufu Guo <guojiufu@linux.ibm.com> |
| |
| PR tree-optimization/102087 |
| * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): |
| Update bound/cmp/control for niter. |
| |
| 2021-09-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_range_op): |
| Move check for non-empty BB here. |
| (fur_source::register_outgoing_edges): ...from here. |
| |
| 2021-09-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Remove call to improve_range_with_equivs. |
| (path_range_query::improve_range_with_equivs): Remove |
| * gimple-range-path.h: Remove improve_range_with_equivs. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: |
| (_mm512_mask_blend_ph): New intrinsic. |
| (_mm512_permutex2var_ph): Ditto. |
| (_mm512_permutexvar_ph): Ditto. |
| * config/i386/avx512fp16vlintrin.h: |
| (_mm256_mask_blend_ph): New intrinsic. |
| (_mm256_permutex2var_ph): Ditto. |
| (_mm256_permutexvar_ph): Ditto. |
| (_mm_mask_blend_ph): Ditto. |
| (_mm_permutex2var_ph): Ditto. |
| (_mm_permutexvar_ph): Ditto. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: Add new intrinsics. |
| (_mm512_conj_pch): New intrinsic. |
| (_mm512_mask_conj_pch): Ditto. |
| (_mm512_maskz_conj_pch): Ditto. |
| * config/i386/avx512fp16vlintrin.h: Add new intrinsics. |
| (_mm256_conj_pch): New intrinsic. |
| (_mm256_mask_conj_pch): Ditto. |
| (_mm256_maskz_conj_pch): Ditto. |
| (_mm_conj_pch): Ditto. |
| (_mm_mask_conj_pch): Ditto. |
| (_mm_maskz_conj_pch): Ditto. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_MM512_REDUCE_OP): New macro |
| (_mm512_reduce_add_ph): New intrinsic. |
| (_mm512_reduce_mul_ph): Ditto. |
| (_mm512_reduce_min_ph): Ditto. |
| (_mm512_reduce_max_ph): Ditto. |
| * config/i386/avx512fp16vlintrin.h |
| (_MM256_REDUCE_OP/_MM_REDUCE_OP): New macro. |
| (_mm256_reduce_add_ph): New intrinsic. |
| (_mm256_reduce_mul_ph): Ditto. |
| (_mm256_reduce_min_ph): Ditto. |
| (_mm256_reduce_max_ph): Ditto. |
| (_mm_reduce_add_ph): Ditto. |
| (_mm_reduce_mul_ph): Ditto. |
| (_mm_reduce_min_ph): Ditto. |
| (_mm_reduce_max_ph): Ditto. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (__m512h_u, __m256h_u, |
| __m128h_u): New typedef. |
| (_mm512_load_ph): New intrinsic. |
| (_mm256_load_ph): Ditto. |
| (_mm_load_ph): Ditto. |
| (_mm512_loadu_ph): Ditto. |
| (_mm256_loadu_ph): Ditto. |
| (_mm_loadu_ph): Ditto. |
| (_mm512_store_ph): Ditto. |
| (_mm256_store_ph): Ditto. |
| (_mm_store_ph): Ditto. |
| (_mm512_storeu_ph): Ditto. |
| (_mm256_storeu_ph): Ditto. |
| (_mm_storeu_ph): Ditto. |
| (_mm512_abs_ph): Ditto. |
| * config/i386/avx512fp16vlintrin.h |
| (_mm_abs_ph): Ditto. |
| (_mm256_abs_ph): Ditto. |
| |
| 2021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/tpf.md (prologue_tpf, epilogue_tpf): Add cc clobber. |
| |
| 2021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/102222 |
| * config/s390/s390.c (s390_expand_insv): Emit a normal move if it |
| is actually a full copy of the source operand into the target. |
| Don't emit a strict low part move if source and target mode match. |
| |
| 2021-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102415 |
| * omp-expand.c (expand_omp_single): If region->exit is NULL, |
| assert region->entry is GIMPLE_OMP_SCOPE region and return. |
| |
| 2021-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_ALLOCATE_ALIGN): Define. |
| * tree.c (omp_clause_num_ops): Change number of OMP_CLAUSE_ALLOCATE |
| arguments from 2 to 3. |
| * tree-pretty-print.c (dump_omp_clause): Print allocator() around |
| allocate clause allocator and print align if present. |
| * omp-low.c (scan_sharing_clauses): Force allocate_map entry even |
| for omp_default_mem_alloc if align modifier is present. If align |
| modifier is present, use TREE_LIST to encode both allocator and |
| align. |
| (lower_private_allocate, lower_rec_input_clauses, create_task_copyfn): |
| Handle align modifier on allocator clause if present. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (define_attr "isa"): Add |
| fma_or_avx512vl. |
| (define_attr "enabled"): Correspond fma_or_avx512vl to |
| TARGET_FMA || TARGET_AVX512VL. |
| * config/i386/mmx.md (fmav2sf4): Extend to AVX512 fma. |
| (fmsv2sf4): Ditto. |
| (fnmav2sf4): Ditto. |
| (fnmsv2sf4): Ditto. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (cstorehf3): New define_expand. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (<rounding_insn>hf2): New expander. |
| (sse4_1_round<mode>2): Extend from MODEF to MODEFH. |
| * config/i386/sse.md (*sse4_1_round<ssescalarmodesuffix>): |
| Extend from VF_128 to VFH_128. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.c (i386-features.c): Handle |
| E_HFmode. |
| * config/i386/i386.md (sqrthf2): New expander. |
| (*sqrthf2): New define_insn. |
| * config/i386/sse.md |
| (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): |
| Extend to VFH_128. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_mask_fcmadd_sch): |
| New intrinsic. |
| (_mm_mask3_fcmadd_sch): Likewise. |
| (_mm_maskz_fcmadd_sch): Likewise. |
| (_mm_fcmadd_sch): Likewise. |
| (_mm_mask_fmadd_sch): Likewise. |
| (_mm_mask3_fmadd_sch): Likewise. |
| (_mm_maskz_fmadd_sch): Likewise. |
| (_mm_fmadd_sch): Likewise. |
| (_mm_mask_fcmadd_round_sch): Likewise. |
| (_mm_mask3_fcmadd_round_sch): Likewise. |
| (_mm_maskz_fcmadd_round_sch): Likewise. |
| (_mm_fcmadd_round_sch): Likewise. |
| (_mm_mask_fmadd_round_sch): Likewise. |
| (_mm_mask3_fmadd_round_sch): Likewise. |
| (_mm_maskz_fmadd_round_sch): Likewise. |
| (_mm_fmadd_round_sch): Likewise. |
| (_mm_fcmul_sch): Likewise. |
| (_mm_mask_fcmul_sch): Likewise. |
| (_mm_maskz_fcmul_sch): Likewise. |
| (_mm_fmul_sch): Likewise. |
| (_mm_mask_fmul_sch): Likewise. |
| (_mm_maskz_fmul_sch): Likewise. |
| (_mm_fcmul_round_sch): Likewise. |
| (_mm_mask_fcmul_round_sch): Likewise. |
| (_mm_maskz_fcmul_round_sch): Likewise. |
| (_mm_fmul_round_sch): Likewise. |
| (_mm_mask_fmul_round_sch): Likewise. |
| (_mm_maskz_fmul_round_sch): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md |
| (avx512fp16_fmaddcsh_v8hf_maskz<round_expand_name>): New expander. |
| (avx512fp16_fcmaddcsh_v8hf_maskz<round_expand_name>): Ditto. |
| (avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>): |
| New define insn. |
| (avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Ditto. |
| (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>): |
| Ditto. |
| * config/i386/subst.md (mask_scalarcz_name): New. |
| (mask_scalarc_name): Ditto. |
| (mask_scalarc_operand3): Ditto. |
| (mask_scalarcz_operand4): Ditto. |
| (round_scalarcz_name): Ditto. |
| (round_scalarc_mask_operand3): Ditto. |
| (round_scalarcz_mask_operand4): Ditto. |
| (round_scalarc_mask_op3): Ditto. |
| (round_scalarcz_mask_op4): Ditto. |
| (round_scalarcz_constraint): Ditto. |
| (round_scalarcz_nimm_predicate): Ditto. |
| (mask_scalarcz): Ditto. |
| (mask_scalarc): Ditto. |
| (round_scalarcz): Ditto. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_fcmadd_pch): |
| New intrinsic. |
| (_mm512_mask_fcmadd_pch): Likewise. |
| (_mm512_mask3_fcmadd_pch): Likewise. |
| (_mm512_maskz_fcmadd_pch): Likewise. |
| (_mm512_fmadd_pch): Likewise. |
| (_mm512_mask_fmadd_pch): Likewise. |
| (_mm512_mask3_fmadd_pch): Likewise. |
| (_mm512_maskz_fmadd_pch): Likewise. |
| (_mm512_fcmadd_round_pch): Likewise. |
| (_mm512_mask_fcmadd_round_pch): Likewise. |
| (_mm512_mask3_fcmadd_round_pch): Likewise. |
| (_mm512_maskz_fcmadd_round_pch): Likewise. |
| (_mm512_fmadd_round_pch): Likewise. |
| (_mm512_mask_fmadd_round_pch): Likewise. |
| (_mm512_mask3_fmadd_round_pch): Likewise. |
| (_mm512_maskz_fmadd_round_pch): Likewise. |
| (_mm512_fcmul_pch): Likewise. |
| (_mm512_mask_fcmul_pch): Likewise. |
| (_mm512_maskz_fcmul_pch): Likewise. |
| (_mm512_fmul_pch): Likewise. |
| (_mm512_mask_fmul_pch): Likewise. |
| (_mm512_maskz_fmul_pch): Likewise. |
| (_mm512_fcmul_round_pch): Likewise. |
| (_mm512_mask_fcmul_round_pch): Likewise. |
| (_mm512_maskz_fcmul_round_pch): Likewise. |
| (_mm512_fmul_round_pch): Likewise. |
| (_mm512_mask_fmul_round_pch): Likewise. |
| (_mm512_maskz_fmul_round_pch): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_fmadd_pch): |
| New intrinsic. |
| (_mm_mask_fmadd_pch): Likewise. |
| (_mm_mask3_fmadd_pch): Likewise. |
| (_mm_maskz_fmadd_pch): Likewise. |
| (_mm256_fmadd_pch): Likewise. |
| (_mm256_mask_fmadd_pch): Likewise. |
| (_mm256_mask3_fmadd_pch): Likewise. |
| (_mm256_maskz_fmadd_pch): Likewise. |
| (_mm_fcmadd_pch): Likewise. |
| (_mm_mask_fcmadd_pch): Likewise. |
| (_mm_mask3_fcmadd_pch): Likewise. |
| (_mm_maskz_fcmadd_pch): Likewise. |
| (_mm256_fcmadd_pch): Likewise. |
| (_mm256_mask_fcmadd_pch): Likewise. |
| (_mm256_mask3_fcmadd_pch): Likewise. |
| (_mm256_maskz_fcmadd_pch): Likewise. |
| (_mm_fmul_pch): Likewise. |
| (_mm_mask_fmul_pch): Likewise. |
| (_mm_maskz_fmul_pch): Likewise. |
| (_mm256_fmul_pch): Likewise. |
| (_mm256_mask_fmul_pch): Likewise. |
| (_mm256_maskz_fmul_pch): Likewise. |
| (_mm_fcmul_pch): Likewise. |
| (_mm_mask_fcmul_pch): Likewise. |
| (_mm_maskz_fcmul_pch): Likewise. |
| (_mm256_fcmul_pch): Likewise. |
| (_mm256_mask_fcmul_pch): Likewise. |
| (_mm256_maskz_fcmul_pch): Likewise. |
| * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF_V8HF_V8HF, |
| V8HF_FTYPE_V16HF_V16HF_V16HF, V16HF_FTYPE_V16HF_V16HF_V16HF_UQI, |
| V32HF_FTYPE_V32HF_V32HF_V32HF_INT, |
| V32HF_FTYPE_V32HF_V32HF_V32HF_UHI_INT): Add new builtin types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.c: Handle new builtin types. |
| * config/i386/subst.md (SUBST_CV): New. |
| (maskc_name): Ditto. |
| (maskc_operand3): Ditto. |
| (maskc): Ditto. |
| (sdc_maskz_name): Ditto. |
| (sdc_mask_op4): Ditto. |
| (sdc_mask_op5): Ditto. |
| (sdc_mask_mode512bit_condition): Ditto. |
| (sdc): Ditto. |
| (round_maskc_operand3): Ditto. |
| (round_sdc_mask_operand4): Ditto. |
| (round_maskc_op3): Ditto. |
| (round_sdc_mask_op4): Ditto. |
| (round_saeonly_sdc_mask_operand5): Ditto. |
| * config/i386/sse.md (unspec): Add complex fma unspecs. |
| (avx512fmaskcmode): New. |
| (UNSPEC_COMPLEX_F_C_MA): Ditto. |
| (UNSPEC_COMPLEX_F_C_MUL): Ditto. |
| (complexopname): Ditto. |
| (<avx512>_fmaddc_<mode>_maskz<round_expand_name>): New expander. |
| (<avx512>_fcmaddc_<mode>_maskz<round_expand_name>): Ditto. |
| (fma_<complexopname>_<mode><sdc_maskz_name><round_name>): New |
| define insn. |
| (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto. |
| (<avx512>_<complexopname>_<mode><maskc_name><round_name>): Ditto. |
| |
| 2021-09-22 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.opt (rs6000-density-pct-threshold, |
| rs6000-density-size-threshold, rs6000-density-penalty, |
| rs6000-density-load-pct-threshold, |
| rs6000-density-load-num-threshold): New parameter. |
| * config/rs6000/rs6000.c (rs6000_density_test): Adjust with |
| corresponding parameters. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::defined_outside_path): |
| New. |
| (path_range_query::range_on_path_entry): New. |
| (path_range_query::internal_range_of_expr): Resolve unknowns |
| with ranger. |
| (path_range_query::improve_range_with_equivs): New. |
| (path_range_query::ssa_range_in_phi): Resolve unknowns with |
| ranger. |
| * gimple-range-path.h (class path_range_query): Add |
| defined_outside_path, range_on_path_entry, and |
| improve_range_with_equivs. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::add_to_imports): New. |
| (path_range_query::add_copies_to_imports): New. |
| (path_range_query::precompute_ranges): Call |
| add_copies_to_imports. |
| * gimple-range-path.h (class path_range_query): Add prototypes |
| for add_copies_to_imports and add_to_imports. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Remove useless code. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.h (class fur_source): Make oracle protected. |
| * gimple-range-path.cc (path_range_query::path_range_query): Add |
| resolve argument. Initialize oracle. |
| (path_range_query::~path_range_query): Delete oracle. |
| (path_range_query::range_of_stmt): Adapt to use relations. |
| (path_range_query::precompute_ranges): Pre-compute relations. |
| (class jt_fur_source): New |
| (jt_fur_source::jt_fur_source): New. |
| (jt_fur_source::register_relation): New. |
| (jt_fur_source::query_relation): New. |
| (path_range_query::precompute_relations): New. |
| (path_range_query::precompute_phi_relations): New. |
| * gimple-range-path.h (path_range_query): Add resolve argument. |
| Add oracle, precompute_relations, precompute_phi_relations. |
| * tree-ssa-threadbackward.c (back_threader::back_threader): Pass |
| resolve argument to solver. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_range_op): |
| Rename postfold_gcond_edges to register_outgoing_edges and |
| adapt. |
| (fold_using_range::postfold_gcond_edges): Rename... |
| (fur_source::register_outgoing_edges): ...to this. |
| * gimple-range-fold.h (postfold_gcond_edges): Rename to |
| register_outgoing_edges and move to fur_source. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Check |
| dom_info_available_p. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::non_null_ref): Use create |
| and quick_grow_cleared instead of safe_grow_cleared. |
| |
| 2021-09-21 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR other/102408 |
| * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Evaluate |
| 'random ()' to '0'. |
| |
| 2021-09-21 Richard Earnshaw <rearnsha@arm.com> |
| |
| * configure.ac: Detect when the assembler supports new-style |
| architecture extensions. |
| * common/config/arm/arm-common.c (arm_rewrite_mcpu): Return |
| the full CPU string if the assembler can grok it. |
| (arm_rewrite_march): Likewise but for the architecture. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2021-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102421 |
| * tree-vect-loop.c (vect_dissolve_slp_only_groups): Copy and |
| adjust alignment info. |
| |
| 2021-09-21 Kewen Lin <linkw@linux.ibm.com> |
| |
| * ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent |
| bitfield stream out. |
| |
| 2021-09-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Ignore |
| undefined edges, apply an equivalence if appropriate. |
| * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Return |
| UNDEFINED if EDGE_EXECUTABLE is not set. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Set all edges |
| as EXECUTABLE upon startup. |
| (gimple_ranger::range_on_edge): Return UNDEFINED for edges without |
| EDGE_EXECUTABLE set. |
| * vr-values.c (set_and_propagate_unexecutable): New. |
| (simplify_using_ranges::fold_cond): Call set_and_propagate. |
| (simplify_using_ranges::simplify_switch_using_ranges): Ditto. |
| * vr-values.h: Add prototype. |
| |
| 2021-09-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (equiv_oracle::register_initial_def): New. |
| (equiv_oracle::register_relation): Call register_initial_def. |
| (equiv_oracle::add_equiv_to_block): New. Split register_relation. |
| (relation_oracle::register_stmt): Check def block of PHI arguments. |
| * value-relation.h (equiv_oracle): Add new prototypes. |
| |
| 2021-09-20 Matthias Kretz <m.kretz@gsi.de> |
| |
| * cppbuiltin.c (define_builtin_macros_for_compilation_flags): |
| Define __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__, |
| __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and |
| __ROUNDING_MATH__ according to their corresponding flags. |
| * doc/cpp.texi: Document __RECIPROCAL_MATH__, |
| __NO_SIGNED_ZEROS__, __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, |
| and __ROUNDING_MATH__. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_load): Use the vectype |
| from the SLP node. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): |
| Do not compute alignment of the vectorized access here. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): |
| Store -1 for runtime alias peeling iterations. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Obsolete hppa[12]*-*-hpux10* and hppa[12]*-*-hpux11*. |
| |
| 2021-09-20 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * input.c (string_concat_db::record_string_concatenation) |
| (string_concat_db::get_string_concatenation): Skip for |
| 'RESERVED_LOCATION_P'. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/65206 |
| * tree-data-ref.h (struct data_reference): Add alt_indices, |
| order it last. |
| * tree-data-ref.c (free_data_ref): Release alt_indices. |
| (dr_analyze_indices): Work on struct indices and get DR_REF as tree. |
| (create_data_ref): Adjust. |
| (initialize_data_dependence_relation): Split into head |
| and tail. When the base objects fail to match up try |
| again with pointer-based analysis of indices. |
| * tree-vectorizer.c (vec_info_shared::check_datarefs): Do |
| not compare the lazily computed alternate set of indices. |
| |
| 2021-09-20 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * gcc.c: Test for execute OK when we find the |
| programs for assembler linker and dsymutil and those |
| were specified at configure-time. |
| |
| 2021-09-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102403 |
| * gimple-predicate-analysis.cc (predicate::init_from_control_deps): |
| Correct a function pre/postcondition. |
| |
| 2021-09-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102243 |
| * tree-ssa-strlen.c (get_range): Handle null cfun. |
| |
| 2021-09-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 |
| unwinder shim as a convenience library. |
| |
| 2021-09-19 Andrew Pinski <apinski@marvell.com> |
| |
| * doc/install.texi: Add note about |
| binutils 2.35 is required for LTO usage. |
| |
| 2021-09-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader_registry::register_path): Use push_edge. |
| * tree-ssa-threadedge.c |
| (jump_threader::thread_around_empty_blocks): Same. |
| (jump_threader::thread_through_normal_block): Same. |
| (jump_threader::thread_across_edge): Same. Also, use auto_bitmap. |
| Tidy up code. |
| * tree-ssa-threadupdate.c |
| (jt_path_registry::allocate_thread_edge): Remove. |
| (jt_path_registry::push_edge): New. |
| (dump_jump_thread_path): Make static. |
| * tree-ssa-threadupdate.h (allocate_thread_edge): Remove. |
| (push_edge): New. |
| |
| 2021-09-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): Add |
| header. |
| (path_range_query::dump): Remove extern declaration of dump_ranger. |
| * gimple-range-trace.cc (dump_ranger): Add DEBUG_FUNCTION marker. |
| * gimple-range-trace.h (dump_ranger): Add prototype. |
| |
| 2021-09-19 John Ericson <git@JohnEricson.me> |
| |
| * gcc.c (find_a_program): New function, factored out of... |
| (find_a_file): Here. |
| (execute): Use find_a_program when looking for programs rather |
| than find_a_file. |
| |
| 2021-09-19 Matwey V. Kornilov <matwey.kornilov@gmail.com> |
| |
| * config/avr/avr-mcus.def: Add atmega324pb. |
| * doc/avr-mmcu.texi: Corresponding changes. |
| |
| 2021-09-19 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/88173 |
| * match.pd (cmp @0 REAL_CST@1): When @0 is also REAL_CST, apply |
| the same transformations as to @1. For comparisons against NaN, |
| don't check HONOR_SNANS but confirm that neither operand is a |
| signaling NaN. |
| |
| 2021-09-19 Benjamin Peterson <benjamin@locrian.net> |
| |
| * attribs.c (make_unique_name): Delete. |
| * attribs.h (make_unique_name): Delete. |
| |
| 2021-09-19 Andrew Pinski <apinski@marvell.com> |
| |
| * lra-constraints.c (check_and_process_move): Assert |
| that dclass and sclass are greater than or equal to NO_REGS. |
| |
| 2021-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_ORDER_UNCONSTRAINED): Define. |
| * tree-pretty-print.c (dump_omp_clause): Print unconstrained: |
| for OMP_CLAUSE_ORDER_UNCONSTRAINED. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.c (remove_partial_avx_dependency): |
| Restrict TARGET_USE_VECTOR_FP_CONVERTS and |
| TARGET_USE_VECTOR_CONVERTS to conversion instructions only. |
| |
| 2021-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (omp_default_clause): For C/C++ default({,first}private), |
| if file/namespace scope variable doesn't have predetermined sharing, |
| treat it as if there was default(none). |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_fmadd_sh): |
| New intrinsic. |
| (_mm_mask_fmadd_sh): Likewise. |
| (_mm_mask3_fmadd_sh): Likewise. |
| (_mm_maskz_fmadd_sh): Likewise. |
| (_mm_fmadd_round_sh): Likewise. |
| (_mm_mask_fmadd_round_sh): Likewise. |
| (_mm_mask3_fmadd_round_sh): Likewise. |
| (_mm_maskz_fmadd_round_sh): Likewise. |
| (_mm_fnmadd_sh): Likewise. |
| (_mm_mask_fnmadd_sh): Likewise. |
| (_mm_mask3_fnmadd_sh): Likewise. |
| (_mm_maskz_fnmadd_sh): Likewise. |
| (_mm_fnmadd_round_sh): Likewise. |
| (_mm_mask_fnmadd_round_sh): Likewise. |
| (_mm_mask3_fnmadd_round_sh): Likewise. |
| (_mm_maskz_fnmadd_round_sh): Likewise. |
| (_mm_fmsub_sh): Likewise. |
| (_mm_mask_fmsub_sh): Likewise. |
| (_mm_mask3_fmsub_sh): Likewise. |
| (_mm_maskz_fmsub_sh): Likewise. |
| (_mm_fmsub_round_sh): Likewise. |
| (_mm_mask_fmsub_round_sh): Likewise. |
| (_mm_mask3_fmsub_round_sh): Likewise. |
| (_mm_maskz_fmsub_round_sh): Likewise. |
| (_mm_fnmsub_sh): Likewise. |
| (_mm_mask_fnmsub_sh): Likewise. |
| (_mm_mask3_fnmsub_sh): Likewise. |
| (_mm_maskz_fnmsub_sh): Likewise. |
| (_mm_fnmsub_round_sh): Likewise. |
| (_mm_mask_fnmsub_round_sh): Likewise. |
| (_mm_mask3_fnmsub_round_sh): Likewise. |
| (_mm_maskz_fnmsub_round_sh): Likewise. |
| * config/i386/i386-builtin-types.def |
| (V8HF_FTYPE_V8HF_V8HF_V8HF_UQI_INT): New builtin type. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.c: Handle new builtin type. |
| * config/i386/sse.md (fmai_vmfmadd_<mode><round_name>): |
| Ajdust to support FP16. |
| (fmai_vmfmsub_<mode><round_name>): Ditto. |
| (fmai_vmfnmadd_<mode><round_name>): Ditto. |
| (fmai_vmfnmsub_<mode><round_name>): Ditto. |
| (*fmai_fmadd_<mode>): Ditto. |
| (*fmai_fmsub_<mode>): Ditto. |
| (*fmai_fnmadd_<mode><round_name>): Ditto. |
| (*fmai_fnmsub_<mode><round_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_mask<round_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_mask3<round_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_maskz_1<round_name>): Ditto. |
| (*avx512f_vmfmsub_<mode>_mask<round_name>): Ditto. |
| (avx512f_vmfmsub_<mode>_mask3<round_name>): Ditto. |
| (*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Ditto. |
| (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. |
| (*avx512f_vmfnmsub_<mode>_mask3<round_name>): Ditto. |
| (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. |
| (*avx512f_vmfnmadd_<mode>_mask<round_name>): Renamed to ... |
| (avx512f_vmfnmadd_<mode>_mask<round_name>) ... this, and |
| adjust to support FP16. |
| (avx512f_vmfnmadd_<mode>_mask3<round_name>): Ditto. |
| (avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Ditto. |
| (avx512f_vmfnmadd_<mode>_maskz<round_expand_name>): New |
| expander. |
| |
| 2021-09-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/sse.md (avx512fmaskmodelower): Extend to support |
| HF modes. |
| (maskload<mode><avx512fmaskmodelower>): Ditto. |
| (maskstore<mode><avx512fmaskmodelower>): Ditto. |
| |
| 2021-09-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): |
| Handle HFmode. |
| (ix86_expand_copysign): Ditto. |
| (ix86_expand_xorsign): Ditto. |
| * config/i386/i386.c (ix86_build_const_vector): Handle HF vector |
| modes. |
| (ix86_build_signbit_mask): Ditto. |
| (ix86_can_change_mode_class): Ditto. |
| * config/i386/i386.md |
| (SSEMODEF): Add HFmode. |
| (ssevecmodef): Ditto. |
| (<code>hf2): New define_expand. |
| (*<code>hf2_1): New define_insn_and_split. |
| (copysign<mode>): Extend to support HFmode under AVX512FP16. |
| (xorsign<mode>): Ditto. |
| * config/i386/sse.md (VFB): New mode iterator. |
| (VFB_128_256): Ditto. |
| (VFB_512): Ditto. |
| (sseintvecmode2): Support HF vector mode. |
| (<code><mode>2): Use new mode iterator. |
| (*<code><mode>2): Ditto. |
| (copysign<mode>3): Ditto. |
| (xorsign<mode>3): Ditto. |
| (<code><mode>3<mask_name>): Ditto. |
| (<code><mode>3<mask_name>): Ditto. |
| (<sse>_andnot<mode>3<mask_name>): Adjust for HF vector mode. |
| (<sse>_andnot<mode>3<mask_name>): Ditto. |
| (*<code><mode>3<mask_name>): Ditto. |
| (*<code><mode>3<mask_name>): Ditto. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_mask_fmadd_ph): |
| New intrinsic. |
| (_mm512_mask3_fmadd_ph): Likewise. |
| (_mm512_maskz_fmadd_ph): Likewise. |
| (_mm512_fmadd_round_ph): Likewise. |
| (_mm512_mask_fmadd_round_ph): Likewise. |
| (_mm512_mask3_fmadd_round_ph): Likewise. |
| (_mm512_maskz_fmadd_round_ph): Likewise. |
| (_mm512_fnmadd_ph): Likewise. |
| (_mm512_mask_fnmadd_ph): Likewise. |
| (_mm512_mask3_fnmadd_ph): Likewise. |
| (_mm512_maskz_fnmadd_ph): Likewise. |
| (_mm512_fnmadd_round_ph): Likewise. |
| (_mm512_mask_fnmadd_round_ph): Likewise. |
| (_mm512_mask3_fnmadd_round_ph): Likewise. |
| (_mm512_maskz_fnmadd_round_ph): Likewise. |
| (_mm512_fmsub_ph): Likewise. |
| (_mm512_mask_fmsub_ph): Likewise. |
| (_mm512_mask3_fmsub_ph): Likewise. |
| (_mm512_maskz_fmsub_ph): Likewise. |
| (_mm512_fmsub_round_ph): Likewise. |
| (_mm512_mask_fmsub_round_ph): Likewise. |
| (_mm512_mask3_fmsub_round_ph): Likewise. |
| (_mm512_maskz_fmsub_round_ph): Likewise. |
| (_mm512_fnmsub_ph): Likewise. |
| (_mm512_mask_fnmsub_ph): Likewise. |
| (_mm512_mask3_fnmsub_ph): Likewise. |
| (_mm512_maskz_fnmsub_ph): Likewise. |
| (_mm512_fnmsub_round_ph): Likewise. |
| (_mm512_mask_fnmsub_round_ph): Likewise. |
| (_mm512_mask3_fnmsub_round_ph): Likewise. |
| (_mm512_maskz_fnmsub_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm256_fmadd_ph): |
| New intrinsic. |
| (_mm256_mask_fmadd_ph): Likewise. |
| (_mm256_mask3_fmadd_ph): Likewise. |
| (_mm256_maskz_fmadd_ph): Likewise. |
| (_mm_fmadd_ph): Likewise. |
| (_mm_mask_fmadd_ph): Likewise. |
| (_mm_mask3_fmadd_ph): Likewise. |
| (_mm_maskz_fmadd_ph): Likewise. |
| (_mm256_fnmadd_ph): Likewise. |
| (_mm256_mask_fnmadd_ph): Likewise. |
| (_mm256_mask3_fnmadd_ph): Likewise. |
| (_mm256_maskz_fnmadd_ph): Likewise. |
| (_mm_fnmadd_ph): Likewise. |
| (_mm_mask_fnmadd_ph): Likewise. |
| (_mm_mask3_fnmadd_ph): Likewise. |
| (_mm_maskz_fnmadd_ph): Likewise. |
| (_mm256_fmsub_ph): Likewise. |
| (_mm256_mask_fmsub_ph): Likewise. |
| (_mm256_mask3_fmsub_ph): Likewise. |
| (_mm256_maskz_fmsub_ph): Likewise. |
| (_mm_fmsub_ph): Likewise. |
| (_mm_mask_fmsub_ph): Likewise. |
| (_mm_mask3_fmsub_ph): Likewise. |
| (_mm_maskz_fmsub_ph): Likewise. |
| (_mm256_fnmsub_ph): Likewise. |
| (_mm256_mask_fnmsub_ph): Likewise. |
| (_mm256_mask3_fnmsub_ph): Likewise. |
| (_mm256_maskz_fnmsub_ph): Likewise. |
| (_mm_fnmsub_ph): Likewise. |
| (_mm_mask_fnmsub_ph): Likewise. |
| (_mm_mask3_fnmsub_ph): Likewise. |
| (_mm_maskz_fnmsub_ph): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md |
| (<avx512>_fmadd_<mode>_maskz<round_expand_name>): Adjust to |
| support HF vector modes. |
| (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fmadd_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fmadd_<mode>_mask3<round_name>): Ditto. |
| (<avx512>_fmsub_<mode>_maskz<round_expand_name>): Ditto. |
| (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fmsub_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fmsub_<mode>_mask3<round_name>): Ditto. |
| (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fnmadd_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fnmadd_<mode>_mask3<round_name>): Ditto. |
| (<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Ditto. |
| (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fnmsub_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fnmsub_<mode>_mask3<round_name>): Ditto. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_fmaddsub_ph): |
| New intrinsic. |
| (_mm512_mask_fmaddsub_ph): Likewise. |
| (_mm512_mask3_fmaddsub_ph): Likewise. |
| (_mm512_maskz_fmaddsub_ph): Likewise. |
| (_mm512_fmaddsub_round_ph): Likewise. |
| (_mm512_mask_fmaddsub_round_ph): Likewise. |
| (_mm512_mask3_fmaddsub_round_ph): Likewise. |
| (_mm512_maskz_fmaddsub_round_ph): Likewise. |
| (_mm512_mask_fmsubadd_ph): Likewise. |
| (_mm512_mask3_fmsubadd_ph): Likewise. |
| (_mm512_maskz_fmsubadd_ph): Likewise. |
| (_mm512_fmsubadd_round_ph): Likewise. |
| (_mm512_mask_fmsubadd_round_ph): Likewise. |
| (_mm512_mask3_fmsubadd_round_ph): Likewise. |
| (_mm512_maskz_fmsubadd_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm256_fmaddsub_ph): |
| New intrinsic. |
| (_mm256_mask_fmaddsub_ph): Likewise. |
| (_mm256_mask3_fmaddsub_ph): Likewise. |
| (_mm256_maskz_fmaddsub_ph): Likewise. |
| (_mm_fmaddsub_ph): Likewise. |
| (_mm_mask_fmaddsub_ph): Likewise. |
| (_mm_mask3_fmaddsub_ph): Likewise. |
| (_mm_maskz_fmaddsub_ph): Likewise. |
| (_mm256_fmsubadd_ph): Likewise. |
| (_mm256_mask_fmsubadd_ph): Likewise. |
| (_mm256_mask3_fmsubadd_ph): Likewise. |
| (_mm256_maskz_fmsubadd_ph): Likewise. |
| (_mm_fmsubadd_ph): Likewise. |
| (_mm_mask_fmsubadd_ph): Likewise. |
| (_mm_mask3_fmsubadd_ph): Likewise. |
| (_mm_maskz_fmsubadd_ph): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md (VFH_SF_AVX512VL): New mode iterator. |
| * (<avx512>_fmsubadd_<mode>_maskz<round_expand_name>): New expander. |
| * (<avx512>_fmaddsub_<mode>_maskz<round_expand_name>): Use |
| VFH_SF_AVX512VL. |
| * (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| * (<avx512>_fmaddsub_<mode>_mask<round_name>): Ditto. |
| * (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto. |
| * (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| * (<avx512>_fmsubadd_<mode>_mask<round_name>): Ditto. |
| * (<avx512>_fmsubadd_<mode>_mask3<round_name>): Ditto. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/87767 |
| * config/i386/i386.c (ix86_print_operand): Handle |
| V8HF/V16HF/V32HFmode. |
| * config/i386/i386.h (VALID_BCST_MODE_P): Add HFmode. |
| * config/i386/sse.md (avx512bcst): Remove. |
| |
| 2021-09-17 Martin Sebor <msebor@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-predicate-analysis.o. |
| * tree-ssa-uninit.c (max_phi_args): Move to gimple-predicate-analysis. |
| (MASK_SET_BIT, MASK_TEST_BIT, MASK_EMPTY): Same. |
| (check_defs): Add comment. |
| (can_skip_redundant_opnd): Update comment. |
| (compute_uninit_opnds_pos): Adjust to namespace change. |
| (find_pdom): Move to gimple-predicate-analysis.cc. |
| (find_dom): Same. |
| (struct uninit_undef_val_t): New. |
| (is_non_loop_exit_postdominating): Move to gimple-predicate-analysis.cc. |
| (find_control_equiv_block): Same. |
| (MAX_NUM_CHAINS, MAX_CHAIN_LEN, MAX_POSTDOM_CHECK): Same. |
| (MAX_SWITCH_CASES): Same. |
| (compute_control_dep_chain): Same. |
| (find_uninit_use): Use predicate analyzer. |
| (struct pred_info): Move to gimple-predicate-analysis. |
| (convert_control_dep_chain_into_preds): Same. |
| (find_predicates): Same. |
| (collect_phi_def_edges): Same. |
| (warn_uninitialized_phi): Use predicate analyzer. |
| (find_def_preds): Move to gimple-predicate-analysis. |
| (dump_pred_info): Same. |
| (dump_pred_chain): Same. |
| (dump_predicates): Same. |
| (destroy_predicate_vecs): Remove. |
| (execute_late_warn_uninitialized): New. |
| (get_cmp_code): Move to gimple-predicate-analysis. |
| (is_value_included_in): Same. |
| (value_sat_pred_p): Same. |
| (find_matching_predicate_in_rest_chains): Same. |
| (is_use_properly_guarded): Same. |
| (prune_uninit_phi_opnds): Same. |
| (find_var_cmp_const): Same. |
| (use_pred_not_overlap_with_undef_path_pred): Same. |
| (pred_equal_p): Same. |
| (is_neq_relop_p): Same. |
| (is_neq_zero_form_p): Same. |
| (pred_expr_equal_p): Same. |
| (is_pred_expr_subset_of): Same. |
| (is_pred_chain_subset_of): Same. |
| (is_included_in): Same. |
| (is_superset_of): Same. |
| (pred_neg_p): Same. |
| (simplify_pred): Same. |
| (simplify_preds_2): Same. |
| (simplify_preds_3): Same. |
| (simplify_preds_4): Same. |
| (simplify_preds): Same. |
| (push_pred): Same. |
| (push_to_worklist): Same. |
| (get_pred_info_from_cmp): Same. |
| (is_degenerated_phi): Same. |
| (normalize_one_pred_1): Same. |
| (normalize_one_pred): Same. |
| (normalize_one_pred_chain): Same. |
| (normalize_preds): Same. |
| (can_one_predicate_be_invalidated_p): Same. |
| (can_chain_union_be_invalidated_p): Same. |
| (uninit_uses_cannot_happen): Same. |
| (pass_late_warn_uninitialized::execute): Define. |
| * gimple-predicate-analysis.cc: New file. |
| * gimple-predicate-analysis.h: New file. |
| |
| 2021-09-17 Julian Brown <julian@codesourcery.com> |
| |
| * config/gcn/gcn.c (gimple.h): Include. |
| (gcn_fork_join): Emit barrier for worker-level joins. |
| * omp-oacc-neuter-broadcast.cc (find_local_vars_to_propagate): Add |
| writes_gang_private bitmap parameter. Set bit for blocks |
| containing gang-private variable writes. |
| (worker_single_simple): Don't emit barrier after predicated block. |
| (worker_single_copy): Don't emit barrier if we're not broadcasting |
| anything and the block contains no gang-private writes. |
| (neuter_worker_single): Don't predicate blocks that only contain |
| NOPs or internal marker functions. Pass has_gang_private_write |
| argument to worker_single_copy. |
| (oacc_do_neutering): Add writes_gang_private bitmap handling. |
| |
| 2021-09-17 Julian Brown <julian@codesourcery.com> |
| |
| * config/gcn/gcn-protos.h |
| (gcn_goacc_create_worker_broadcast_record): Update prototype. |
| * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Use |
| preallocated block of LDS memory. Do not cache/share decls for |
| reduction temporaries between invocations. |
| (gcn_goacc_reduction_teardown): Unshare VAR on second use. |
| (gcn_goacc_create_worker_broadcast_record): Add OFFSET parameter |
| and return temporary LDS space at that offset. Return pointer in |
| "sender" case. |
| * config/gcn/gcn.c (acc_lds_size, gang_private_hwm, lds_allocs): |
| New global vars. |
| (ACC_LDS_SIZE): Define as acc_lds_size. |
| (gcn_init_machine_status): Don't initialise lds_allocated, |
| lds_allocs, reduc_decls fields of machine function struct. |
| (gcn_option_override): Handle default size for gang-private |
| variables and -mgang-private-size option. |
| (gcn_expand_prologue): Use LDS_SIZE instead of LDS_SIZE-1 when |
| initialising M0_REG. |
| (gcn_shared_mem_layout): New function. |
| (gcn_print_lds_decl): Update comment. Use global lds_allocs map and |
| gang_private_hwm variable. |
| (TARGET_GOACC_SHARED_MEM_LAYOUT): Define target hook. |
| * config/gcn/gcn.h (machine_function): Remove lds_allocated, |
| lds_allocs, reduc_decls. Add reduction_base, reduction_limit. |
| * config/gcn/gcn.opt (gang_private_size_opt): New global. |
| (mgang-private-size=): New option. |
| * doc/tm.texi.in (TARGET_GOACC_SHARED_MEM_LAYOUT): Place |
| documentation hook. |
| * doc/tm.texi: Regenerate. |
| * omp-oacc-neuter-broadcast.cc (targhooks.h, diagnostic-core.h): |
| Add includes. |
| (build_sender_ref): Handle sender_decl being pointer. |
| (worker_single_copy): Add PLACEMENT and ISOLATE_BROADCASTS |
| parameters. Pass placement argument to |
| create_worker_broadcast_record hook invocations. Handle |
| sender_decl being pointer and isolate_broadcasts inserting extra |
| barriers. |
| (blk_offset_map_t): Add typedef. |
| (neuter_worker_single): Add BLK_OFFSET_MAP parameter. Pass |
| preallocated range to worker_single_copy call. |
| (dfs_broadcast_reachable_1): New function. |
| (idx_decl_pair_t, used_range_vec_t): New typedefs. |
| (sort_size_descending): New function. |
| (addr_range): New class. |
| (splay_tree_compare_addr_range, splay_tree_free_key) |
| (first_fit_range, merge_ranges_1, merge_ranges): New functions. |
| (execute_omp_oacc_neuter_broadcast): Rename to... |
| (oacc_do_neutering): ... this. Add BOUNDS_LO, BOUNDS_HI |
| parameters. Arrange layout of shared memory for broadcast |
| operations. |
| (execute_omp_oacc_neuter_broadcast): New function. |
| (pass_omp_oacc_neuter_broadcast::gate): Remove num_workers==1 |
| handling from here. Enable pass for all OpenACC routines in order |
| to call shared memory-layout hook. |
| * target.def (create_worker_broadcast_record): Add OFFSET |
| parameter. |
| (shared_mem_layout): New hook. |
| |
| 2021-09-17 Julian Brown <julian@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc |
| (pass_omp_oacc_neuter_broadcast::gate): Disable if num_workers is |
| 1. |
| (execute_omp_oacc_neuter_broadcast): Adjust. |
| |
| 2021-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (class equiv_chain): Move to header file. |
| (path_oracle::path_oracle): New. |
| (path_oracle::~path_oracle): New. |
| (path_oracle::register_relation): New. |
| (path_oracle::query_relation): New. |
| (path_oracle::reset_path): New. |
| (path_oracle::dump): New. |
| * value-relation.h (class equiv_chain): Move to here. |
| (class path_oracle): New. |
| |
| 2021-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a DOM |
| based oracle. |
| * gimple-range-fold.cc (fur_depend::register_relation): Use |
| register_stmt/edge routines. |
| * value-relation.cc (equiv_chain::find): Relocate from equiv_oracle. |
| (equiv_oracle::equiv_oracle): Create self equivalence cache. |
| (equiv_oracle::~equiv_oracle): Release same. |
| (equiv_oracle::equiv_set): Return entry from self equiv cache if there |
| are no equivalences. |
| (equiv_oracle::find_equiv_block): Move list find to equiv_chain. |
| (equiv_oracle::register_relation): Rename from register_equiv. |
| (relation_chain_head::find_relation): Relocate from dom_oracle. |
| (relation_oracle::register_stmt): New. |
| (relation_oracle::register_edge): New. |
| (dom_oracle::*): Rename from relation_oracle. |
| (dom_oracle::register_relation): Adjust to call equiv_oracle. |
| (dom_oracle::set_one_relation): Split from register_relation. |
| (dom_oracle::register_transitives): Consolidate 2 methods. |
| (dom_oracle::find_relation_block): Move core to relation_chain. |
| (dom_oracle::query_relation): Rename from find_relation_dom and adjust. |
| * value-relation.h (class relation_oracle): New pure virtual base. |
| (class equiv_oracle): Inherit from relation_oracle and adjust. |
| (class dom_oracle): Rename from old relation_oracle and adjust. |
| |
| 2021-09-17 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102200 |
| * pointer-query.cc (access_ref::inform_access): Handle MIN/MAX_EXPR. |
| (handle_min_max_size): Change argument. Store original SSA_NAME for |
| operands to potentially distinct (sub)objects. |
| (compute_objsize_r): Adjust call to the above. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000-builtins.h): New include. |
| (rs6000_new_builtin_vectorized_function): New function. |
| (rs6000_new_builtin_md_vectorized_function): Likewise. |
| (rs6000_builtin_vectorized_function): Call |
| rs6000_new_builtin_vectorized_function. |
| (rs6000_builtin_md_vectorized_function): Call |
| rs6000_new_builtin_md_vectorized_function. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def (ASSEMBLE_ACC): Add mmaint flag. |
| (ASSEMBLE_PAIR): Likewise. |
| (BUILD_ACC): Likewise. |
| (DISASSEMBLE_ACC): Likewise. |
| (DISASSEMBLE_PAIR): Likewise. |
| (PMXVBF16GER2): Likewise. |
| (PMXVBF16GER2NN): Likewise. |
| (PMXVBF16GER2NP): Likewise. |
| (PMXVBF16GER2PN): Likewise. |
| (PMXVBF16GER2PP): Likewise. |
| (PMXVF16GER2): Likewise. |
| (PMXVF16GER2NN): Likewise. |
| (PMXVF16GER2NP): Likewise. |
| (PMXVF16GER2PN): Likewise. |
| (PMXVF16GER2PP): Likewise. |
| (PMXVF32GER): Likewise. |
| (PMXVF32GERNN): Likewise. |
| (PMXVF32GERNP): Likewise. |
| (PMXVF32GERPN): Likewise. |
| (PMXVF32GERPP): Likewise. |
| (PMXVF64GER): Likewise. |
| (PMXVF64GERNN): Likewise. |
| (PMXVF64GERNP): Likewise. |
| (PMXVF64GERPN): Likewise. |
| (PMXVF64GERPP): Likewise. |
| (PMXVI16GER2): Likewise. |
| (PMXVI16GER2PP): Likewise. |
| (PMXVI16GER2S): Likewise. |
| (PMXVI16GER2SPP): Likewise. |
| (PMXVI4GER8): Likewise. |
| (PMXVI4GER8PP): Likewise. |
| (PMXVI8GER4): Likewise. |
| (PMXVI8GER4PP): Likewise. |
| (PMXVI8GER4SPP): Likewise. |
| (XVBF16GER2): Likewise. |
| (XVBF16GER2NN): Likewise. |
| (XVBF16GER2NP): Likewise. |
| (XVBF16GER2PN): Likewise. |
| (XVBF16GER2PP): Likewise. |
| (XVF16GER2): Likewise. |
| (XVF16GER2NN): Likewise. |
| (XVF16GER2NP): Likewise. |
| (XVF16GER2PN): Likewise. |
| (XVF16GER2PP): Likewise. |
| (XVF32GER): Likewise. |
| (XVF32GERNN): Likewise. |
| (XVF32GERNP): Likewise. |
| (XVF32GERPN): Likewise. |
| (XVF32GERPP): Likewise. |
| (XVF64GER): Likewise. |
| (XVF64GERNN): Likewise. |
| (XVF64GERNP): Likewise. |
| (XVF64GERPN): Likewise. |
| (XVF64GERPP): Likewise. |
| (XVI16GER2): Likewise. |
| (XVI16GER2PP): Likewise. |
| (XVI16GER2S): Likewise. |
| (XVI16GER2SPP): Likewise. |
| (XVI4GER8): Likewise. |
| (XVI4GER8PP): Likewise. |
| (XVI8GER4): Likewise. |
| (XVI8GER4PP): Likewise. |
| (XVI8GER4SPP): Likewise. |
| (XXMFACC): Likewise. |
| (XXMTACC): Likewise. |
| (XXSETACCZ): Likewise. |
| (ASSEMBLE_PAIR_V): Likewise. |
| (BUILD_PAIR): Likewise. |
| (DISASSEMBLE_PAIR_V): Likewise. |
| (LXVP): New. |
| (STXVP): New. |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_mma_builtin): |
| Handle RS6000_BIF_LXVP and RS6000_BIF_STXVP. |
| * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add ismmaint. |
| (parse_bif_attrs): Handle ismmaint. |
| (write_decls): Add bif_mmaint_bit and bif_is_mmaint. |
| (write_bif_static_init): Handle ismmaint. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): New |
| forward decl. |
| (rs6000_gimple_fold_builtin): Call rs6000_gimple_fold_new_builtin. |
| (rs6000_new_builtin_valid_without_lhs): New function. |
| (rs6000_gimple_fold_new_mma_builtin): Likewise. |
| (rs6000_gimple_fold_new_builtin): Likewise. |
| |
| 2021-09-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * hash-table.h (hash_table<Descriptor, Lazy, Allocator>::expand): |
| Destruct stale Value objects. |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): |
| Update. |
| |
| 2021-09-17 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR c/102245 |
| * match.pd (shift optimizations): Disable recent sign-changing |
| optimization for shifts by zero, these will be folded later. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def (__builtin_mffsl): Move from |
| [power9] to [always]. |
| |
| 2021-09-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_load): Do not frob |
| stmt_info for SLP. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-features.c (remove_partial_avx_dependency): |
| Also check TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY and |
| and TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY before generating |
| vxorps. |
| * config/i386/i386.h (TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): |
| New. |
| (TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. |
| * config/i386/i386.md (SSE FP to FP splitters): Replace |
| TARGET_SSE_PARTIAL_REG_DEPENDENCY with |
| TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY. |
| (SSE INT to FP splitter): Replace TARGET_SSE_PARTIAL_REG_DEPENDENCY |
| with TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY. |
| * config/i386/x86-tune.def |
| (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): New. |
| (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101900 |
| * config/i386/i386-features.c (remove_partial_avx_dependency): |
| Check TARGET_USE_VECTOR_FP_CONVERTS and TARGET_USE_VECTOR_CONVERTS |
| before generating vxorps. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-options.c (processor_cost_table): Use |
| tremont_cost for Tremont. |
| * config/i386/x86-tune-costs.h (tremont_memcpy): New. |
| (tremont_memset): Likewise. |
| (tremont_cost): Likewise. |
| * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): |
| Enable for Tremont. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * common/config/i386/i386-common.c: Use Haswell scheduling model |
| for Tremont. |
| * config/i386/i386.c (ix86_sched_init_global): Prepare for Tremont |
| scheduling pass. |
| * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Tremont |
| issue rate to 4. |
| (ix86_adjust_cost): Handle Tremont. |
| * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): |
| Enable for Tremont. |
| (X86_TUNE_USE_LEAVE): Likewise. |
| (X86_TUNE_PUSH_MEMORY): Likewise. |
| (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. |
| (X86_TUNE_USE_CLTD): Likewise. |
| (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. |
| (X86_TUNE_AVOID_MFENCE): Likewise. |
| (X86_TUNE_SSE_TYPELESS_STORES): Likewise. |
| (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. |
| (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Disable for Tremont. |
| (X86_TUNE_FOUR_JUMP_LIMIT): Likewise. |
| (X86_TUNE_OPT_AGU): Likewise. |
| (X86_TUNE_AVOID_LEA_FOR_ADDR): Likewise. |
| (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Likewise. |
| (X86_TUNE_EXPAND_ABS): Likewise. |
| (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Likewise. |
| (X86_TUNE_SLOW_PSHUFB): Likewise. |
| |
| 2021-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/102306 |
| * combine.c (try_combine): Abort the combination if we are about to |
| duplicate volatile references. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_undefined_ph): |
| New intrinsic. |
| (_mm256_undefined_ph): Likewise. |
| (_mm512_undefined_ph): Likewise. |
| (_mm_cvtsh_h): Likewise. |
| (_mm256_cvtsh_h): Likewise. |
| (_mm512_cvtsh_h): Likewise. |
| (_mm512_castph_ps): Likewise. |
| (_mm512_castph_pd): Likewise. |
| (_mm512_castph_si512): Likewise. |
| (_mm512_castph512_ph128): Likewise. |
| (_mm512_castph512_ph256): Likewise. |
| (_mm512_castph128_ph512): Likewise. |
| (_mm512_castph256_ph512): Likewise. |
| (_mm512_zextph128_ph512): Likewise. |
| (_mm512_zextph256_ph512): Likewise. |
| (_mm512_castps_ph): Likewise. |
| (_mm512_castpd_ph): Likewise. |
| (_mm512_castsi512_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_castph_ps): |
| New intrinsic. |
| (_mm256_castph_ps): Likewise. |
| (_mm_castph_pd): Likewise. |
| (_mm256_castph_pd): Likewise. |
| (_mm_castph_si128): Likewise. |
| (_mm256_castph_si256): Likewise. |
| (_mm_castps_ph): Likewise. |
| (_mm256_castps_ph): Likewise. |
| (_mm_castpd_ph): Likewise. |
| (_mm256_castpd_ph): Likewise. |
| (_mm_castsi128_ph): Likewise. |
| (_mm256_castsi256_ph): Likewise. |
| (_mm256_castph256_ph128): Likewise. |
| (_mm256_castph128_ph256): Likewise. |
| (_mm256_zextph128_ph256): Likewise. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_cvtsh_ss): |
| New intrinsic. |
| (_mm_mask_cvtsh_ss): Likewise. |
| (_mm_maskz_cvtsh_ss): Likewise. |
| (_mm_cvtsh_sd): Likewise. |
| (_mm_mask_cvtsh_sd): Likewise. |
| (_mm_maskz_cvtsh_sd): Likewise. |
| (_mm_cvt_roundsh_ss): Likewise. |
| (_mm_mask_cvt_roundsh_ss): Likewise. |
| (_mm_maskz_cvt_roundsh_ss): Likewise. |
| (_mm_cvt_roundsh_sd): Likewise. |
| (_mm_mask_cvt_roundsh_sd): Likewise. |
| (_mm_maskz_cvt_roundsh_sd): Likewise. |
| (_mm_cvtss_sh): Likewise. |
| (_mm_mask_cvtss_sh): Likewise. |
| (_mm_maskz_cvtss_sh): Likewise. |
| (_mm_cvtsd_sh): Likewise. |
| (_mm_mask_cvtsd_sh): Likewise. |
| (_mm_maskz_cvtsd_sh): Likewise. |
| (_mm_cvt_roundss_sh): Likewise. |
| (_mm_mask_cvt_roundss_sh): Likewise. |
| (_mm_maskz_cvt_roundss_sh): Likewise. |
| (_mm_cvt_roundsd_sh): Likewise. |
| (_mm_mask_cvt_roundsd_sh): Likewise. |
| (_mm_maskz_cvt_roundsd_sh): Likewise. |
| * config/i386/i386-builtin-types.def |
| (V8HF_FTYPE_V2DF_V8HF_V8HF_UQI_INT, |
| V8HF_FTYPE_V4SF_V8HF_V8HF_UQI_INT, |
| V2DF_FTYPE_V8HF_V2DF_V2DF_UQI_INT, |
| V4SF_FTYPE_V8HF_V4SF_V4SF_UQI_INT): Add new builtin types. |
| * config/i386/i386-builtin.def: Add corrresponding new builtins. |
| * config/i386/i386-expand.c: Handle new builtin types. |
| * config/i386/sse.md (VF48_128): New mode iterator. |
| (avx512fp16_vcvtsh2<ssescalarmodesuffix><mask_scalar_name><round_saeonly_scalar_name>): |
| New. |
| (avx512fp16_vcvt<ssescalarmodesuffix>2sh<mask_scalar_name><round_scalar_name>): |
| Ditto. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvtph_pd): |
| New intrinsic. |
| (_mm512_mask_cvtph_pd): Likewise. |
| (_mm512_maskz_cvtph_pd): Likewise. |
| (_mm512_cvt_roundph_pd): Likewise. |
| (_mm512_mask_cvt_roundph_pd): Likewise. |
| (_mm512_maskz_cvt_roundph_pd): Likewise. |
| (_mm512_cvtxph_ps): Likewise. |
| (_mm512_mask_cvtxph_ps): Likewise. |
| (_mm512_maskz_cvtxph_ps): Likewise. |
| (_mm512_cvtx_roundph_ps): Likewise. |
| (_mm512_mask_cvtx_roundph_ps): Likewise. |
| (_mm512_maskz_cvtx_roundph_ps): Likewise. |
| (_mm512_cvtxps_ph): Likewise. |
| (_mm512_mask_cvtxps_ph): Likewise. |
| (_mm512_maskz_cvtxps_ph): Likewise. |
| (_mm512_cvtx_roundps_ph): Likewise. |
| (_mm512_mask_cvtx_roundps_ph): Likewise. |
| (_mm512_maskz_cvtx_roundps_ph): Likewise. |
| (_mm512_cvtpd_ph): Likewise. |
| (_mm512_mask_cvtpd_ph): Likewise. |
| (_mm512_maskz_cvtpd_ph): Likewise. |
| (_mm512_cvt_roundpd_ph): Likewise. |
| (_mm512_mask_cvt_roundpd_ph): Likewise. |
| (_mm512_maskz_cvt_roundpd_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvtph_pd): |
| New intrinsic. |
| (_mm_mask_cvtph_pd): Likewise. |
| (_mm_maskz_cvtph_pd): Likewise. |
| (_mm256_cvtph_pd): Likewise. |
| (_mm256_mask_cvtph_pd): Likewise. |
| (_mm256_maskz_cvtph_pd): Likewise. |
| (_mm_cvtxph_ps): Likewise. |
| (_mm_mask_cvtxph_ps): Likewise. |
| (_mm_maskz_cvtxph_ps): Likewise. |
| (_mm256_cvtxph_ps): Likewise. |
| (_mm256_mask_cvtxph_ps): Likewise. |
| (_mm256_maskz_cvtxph_ps): Likewise. |
| (_mm_cvtxps_ph): Likewise. |
| (_mm_mask_cvtxps_ph): Likewise. |
| (_mm_maskz_cvtxps_ph): Likewise. |
| (_mm256_cvtxps_ph): Likewise. |
| (_mm256_mask_cvtxps_ph): Likewise. |
| (_mm256_maskz_cvtxps_ph): Likewise. |
| (_mm_cvtpd_ph): Likewise. |
| (_mm_mask_cvtpd_ph): Likewise. |
| (_mm_maskz_cvtpd_ph): Likewise. |
| (_mm256_cvtpd_ph): Likewise. |
| (_mm256_mask_cvtpd_ph): Likewise. |
| (_mm256_maskz_cvtpd_ph): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-expand.c: Handle new builtin types. |
| * config/i386/sse.md |
| (VF4_128_8_256): New. |
| (VF48H_AVX512VL): Ditto. |
| (ssePHmode): Add HF vector modes. |
| (castmode): Add new convertable modes. |
| (qq2phsuff): Ditto. |
| (ph2pssuffix): New. |
| (avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>): Ditto. |
| (avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. |
| (avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>_mask_1): Ditto. |
| (avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>): |
| Ditto. |
| (avx512fp16_float_extend_ph<mode>2<mask_name>): Ditto. |
| (*avx512fp16_float_extend_ph<mode>2_load<mask_name>): Ditto. |
| (avx512fp16_float_extend_phv2df2<mask_name>): Ditto. |
| (*avx512fp16_float_extend_phv2df2_load<mask_name>): Ditto. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_cvttsh_i32): |
| New intrinsic. |
| (_mm_cvttsh_u32): Likewise. |
| (_mm_cvtt_roundsh_i32): Likewise. |
| (_mm_cvtt_roundsh_u32): Likewise. |
| (_mm_cvttsh_i64): Likewise. |
| (_mm_cvttsh_u64): Likewise. |
| (_mm_cvtt_roundsh_i64): Likewise. |
| (_mm_cvtt_roundsh_u64): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<round_saeonly_name>): |
| New. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvttph_epi32): |
| New intrinsic. |
| (_mm512_mask_cvttph_epi32): Likewise. |
| (_mm512_maskz_cvttph_epi32): Likewise. |
| (_mm512_cvtt_roundph_epi32): Likewise. |
| (_mm512_mask_cvtt_roundph_epi32): Likewise. |
| (_mm512_maskz_cvtt_roundph_epi32): Likewise. |
| (_mm512_cvttph_epu32): Likewise. |
| (_mm512_mask_cvttph_epu32): Likewise. |
| (_mm512_maskz_cvttph_epu32): Likewise. |
| (_mm512_cvtt_roundph_epu32): Likewise. |
| (_mm512_mask_cvtt_roundph_epu32): Likewise. |
| (_mm512_maskz_cvtt_roundph_epu32): Likewise. |
| (_mm512_cvttph_epi64): Likewise. |
| (_mm512_mask_cvttph_epi64): Likewise. |
| (_mm512_maskz_cvttph_epi64): Likewise. |
| (_mm512_cvtt_roundph_epi64): Likewise. |
| (_mm512_mask_cvtt_roundph_epi64): Likewise. |
| (_mm512_maskz_cvtt_roundph_epi64): Likewise. |
| (_mm512_cvttph_epu64): Likewise. |
| (_mm512_mask_cvttph_epu64): Likewise. |
| (_mm512_maskz_cvttph_epu64): Likewise. |
| (_mm512_cvtt_roundph_epu64): Likewise. |
| (_mm512_mask_cvtt_roundph_epu64): Likewise. |
| (_mm512_maskz_cvtt_roundph_epu64): Likewise. |
| (_mm512_cvttph_epi16): Likewise. |
| (_mm512_mask_cvttph_epi16): Likewise. |
| (_mm512_maskz_cvttph_epi16): Likewise. |
| (_mm512_cvtt_roundph_epi16): Likewise. |
| (_mm512_mask_cvtt_roundph_epi16): Likewise. |
| (_mm512_maskz_cvtt_roundph_epi16): Likewise. |
| (_mm512_cvttph_epu16): Likewise. |
| (_mm512_mask_cvttph_epu16): Likewise. |
| (_mm512_maskz_cvttph_epu16): Likewise. |
| (_mm512_cvtt_roundph_epu16): Likewise. |
| (_mm512_mask_cvtt_roundph_epu16): Likewise. |
| (_mm512_maskz_cvtt_roundph_epu16): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvttph_epi32): |
| New intirnsic. |
| (_mm_mask_cvttph_epi32): Likewise. |
| (_mm_maskz_cvttph_epi32): Likewise. |
| (_mm256_cvttph_epi32): Likewise. |
| (_mm256_mask_cvttph_epi32): Likewise. |
| (_mm256_maskz_cvttph_epi32): Likewise. |
| (_mm_cvttph_epu32): Likewise. |
| (_mm_mask_cvttph_epu32): Likewise. |
| (_mm_maskz_cvttph_epu32): Likewise. |
| (_mm256_cvttph_epu32): Likewise. |
| (_mm256_mask_cvttph_epu32): Likewise. |
| (_mm256_maskz_cvttph_epu32): Likewise. |
| (_mm_cvttph_epi64): Likewise. |
| (_mm_mask_cvttph_epi64): Likewise. |
| (_mm_maskz_cvttph_epi64): Likewise. |
| (_mm256_cvttph_epi64): Likewise. |
| (_mm256_mask_cvttph_epi64): Likewise. |
| (_mm256_maskz_cvttph_epi64): Likewise. |
| (_mm_cvttph_epu64): Likewise. |
| (_mm_mask_cvttph_epu64): Likewise. |
| (_mm_maskz_cvttph_epu64): Likewise. |
| (_mm256_cvttph_epu64): Likewise. |
| (_mm256_mask_cvttph_epu64): Likewise. |
| (_mm256_maskz_cvttph_epu64): Likewise. |
| (_mm_cvttph_epi16): Likewise. |
| (_mm_mask_cvttph_epi16): Likewise. |
| (_mm_maskz_cvttph_epi16): Likewise. |
| (_mm256_cvttph_epi16): Likewise. |
| (_mm256_mask_cvttph_epi16): Likewise. |
| (_mm256_maskz_cvttph_epi16): Likewise. |
| (_mm_cvttph_epu16): Likewise. |
| (_mm_mask_cvttph_epu16): Likewise. |
| (_mm_maskz_cvttph_epu16): Likewise. |
| (_mm256_cvttph_epu16): Likewise. |
| (_mm256_mask_cvttph_epu16): Likewise. |
| (_mm256_maskz_cvttph_epu16): Likewise. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/sse.md |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>): |
| New. |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>): Ditto. |
| (*avx512fp16_fix<fixunssuffix>_trunc<mode>2_load<mask_name>): Ditto. |
| (avx512fp16_fix<fixunssuffix>_truncv2di2<mask_name>): Ditto. |
| (avx512fp16_fix<fixunssuffix>_truncv2di2_load<mask_name>): Ditto. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_cvtsh_i32): New intrinsic. |
| (_mm_cvtsh_u32): Likewise. |
| (_mm_cvt_roundsh_i32): Likewise. |
| (_mm_cvt_roundsh_u32): Likewise. |
| (_mm_cvtsh_i64): Likewise. |
| (_mm_cvtsh_u64): Likewise. |
| (_mm_cvt_roundsh_i64): Likewise. |
| (_mm_cvt_roundsh_u64): Likewise. |
| (_mm_cvti32_sh): Likewise. |
| (_mm_cvtu32_sh): Likewise. |
| (_mm_cvt_roundi32_sh): Likewise. |
| (_mm_cvt_roundu32_sh): Likewise. |
| (_mm_cvti64_sh): Likewise. |
| (_mm_cvtu64_sh): Likewise. |
| (_mm_cvt_roundi64_sh): Likewise. |
| (_mm_cvt_roundu64_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c (ix86_expand_round_builtin): |
| Handle new builtin types. |
| * config/i386/sse.md |
| (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix><round_name>): |
| New define_insn. |
| (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix>_2): Likewise. |
| (avx512fp16_vcvt<floatsuffix>si2sh<rex64namesuffix><round_name>): Likewise. |
| |
| 2021-09-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (rs6000-builtins.h): New include. |
| (altivec_resolve_new_overloaded_builtin): New forward decl. |
| (rs6000_new_builtin_type_compatible): New function. |
| (altivec_resolve_overloaded_builtin): Call |
| altivec_resolve_new_overloaded_builtin. |
| (altivec_build_new_resolved_builtin): New function. |
| (altivec_resolve_new_overloaded_builtin): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_new_builtin_is_supported): |
| Likewise. |
| * config/rs6000/rs6000-gen-builtins.c (write_decls): Remove _p from |
| name of rs6000_new_builtin_is_supported. |
| |
| 2021-09-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_decompose_address): |
| Change return type to bool. |
| * config/i386/i386.c (ix86_decompose_address): Ditto. |
| |
| 2021-09-16 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR target/102353 |
| * config/rs6000/t-rs6000 (build/rs6000-gen-builtins.o, build/rbtree.o): |
| Added 'build/' to target, use build/%.o rule. |
| (build/rs6000-gen-builtins$(build_exeext)): Add 'build/' and |
| '$(build_exeext)' to target and 'build/' for the *.o files. |
| (rs6000-builtins.c): Update for those changes; run rs6000-gen-builtins |
| with $(RUN_GEN). |
| |
| 2021-09-16 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Do not check caller count sums if |
| the body has been removed. Remove trailing whitespace. |
| |
| 2021-09-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102360 |
| * internal-fn.c (expand_DEFERRED_INIT): Make pattern-init |
| of non-memory more robust. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 |
| * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs |
| (leon5_adjust_cost): Increase cost of store with data dependency |
| on ALU instruction and FPU anti-dependencies. |
| (sparc_option_override): Add LEON5 costs |
| (sparc_adjust_cost): Add LEON5 cost adjustments |
| * config/sparc/sparc.h: Add LEON5 |
| * config/sparc/sparc.md: Include LEON5 scheduling information |
| * config/sparc/sparc.opt: Add LEON5 |
| * doc/invoke.texi: Add LEON5 |
| * config/sparc/leon5.md: New file. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.md (stack_protect_set32): Add NOP to prevent |
| sensitive sequence for B2BST errata workaround. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin |
| functions with atomic instruction in the UT700 errata workaround. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (next_active_non_empty_insn): New function |
| that returns next active non empty assembly instruction. |
| (sparc_do_work_around_errata): Use new function. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (store_insn_p): Add predicate for store |
| attributes. |
| (load_insn_p): Add predicate for load attributes. |
| (sparc_do_work_around_errata): Use new predicates. |
| |
| 2021-09-16 Andreas Larsson <andreas@gaisler.com> |
| |
| * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for |
| LEON and LEON3. |
| |
| 2021-09-16 Martin Liska <mliska@suse.cz> |
| |
| * config/mips/netbsd.h: Fix typo in name of a macro. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/102080 |
| * match.pd: Check mask type when doing cond_op related gimple |
| simplification. |
| * tree.c (is_truth_type_for): New function. |
| * tree.h (is_truth_type_for): New declaration. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvtepi32_ph): New |
| intrinsic. |
| (_mm512_mask_cvtepi32_ph): Likewise. |
| (_mm512_maskz_cvtepi32_ph): Likewise. |
| (_mm512_cvt_roundepi32_ph): Likewise. |
| (_mm512_mask_cvt_roundepi32_ph): Likewise. |
| (_mm512_maskz_cvt_roundepi32_ph): Likewise. |
| (_mm512_cvtepu32_ph): Likewise. |
| (_mm512_mask_cvtepu32_ph): Likewise. |
| (_mm512_maskz_cvtepu32_ph): Likewise. |
| (_mm512_cvt_roundepu32_ph): Likewise. |
| (_mm512_mask_cvt_roundepu32_ph): Likewise. |
| (_mm512_maskz_cvt_roundepu32_ph): Likewise. |
| (_mm512_cvtepi64_ph): Likewise. |
| (_mm512_mask_cvtepi64_ph): Likewise. |
| (_mm512_maskz_cvtepi64_ph): Likewise. |
| (_mm512_cvt_roundepi64_ph): Likewise. |
| (_mm512_mask_cvt_roundepi64_ph): Likewise. |
| (_mm512_maskz_cvt_roundepi64_ph): Likewise. |
| (_mm512_cvtepu64_ph): Likewise. |
| (_mm512_mask_cvtepu64_ph): Likewise. |
| (_mm512_maskz_cvtepu64_ph): Likewise. |
| (_mm512_cvt_roundepu64_ph): Likewise. |
| (_mm512_mask_cvt_roundepu64_ph): Likewise. |
| (_mm512_maskz_cvt_roundepu64_ph): Likewise. |
| (_mm512_cvtepi16_ph): Likewise. |
| (_mm512_mask_cvtepi16_ph): Likewise. |
| (_mm512_maskz_cvtepi16_ph): Likewise. |
| (_mm512_cvt_roundepi16_ph): Likewise. |
| (_mm512_mask_cvt_roundepi16_ph): Likewise. |
| (_mm512_maskz_cvt_roundepi16_ph): Likewise. |
| (_mm512_cvtepu16_ph): Likewise. |
| (_mm512_mask_cvtepu16_ph): Likewise. |
| (_mm512_maskz_cvtepu16_ph): Likewise. |
| (_mm512_cvt_roundepu16_ph): Likewise. |
| (_mm512_mask_cvt_roundepu16_ph): Likewise. |
| (_mm512_maskz_cvt_roundepu16_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvtepi32_ph): New |
| intrinsic. |
| (_mm_mask_cvtepi32_ph): Likewise. |
| (_mm_maskz_cvtepi32_ph): Likewise. |
| (_mm256_cvtepi32_ph): Likewise. |
| (_mm256_mask_cvtepi32_ph): Likewise. |
| (_mm256_maskz_cvtepi32_ph): Likewise. |
| (_mm_cvtepu32_ph): Likewise. |
| (_mm_mask_cvtepu32_ph): Likewise. |
| (_mm_maskz_cvtepu32_ph): Likewise. |
| (_mm256_cvtepu32_ph): Likewise. |
| (_mm256_mask_cvtepu32_ph): Likewise. |
| (_mm256_maskz_cvtepu32_ph): Likewise. |
| (_mm_cvtepi64_ph): Likewise. |
| (_mm_mask_cvtepi64_ph): Likewise. |
| (_mm_maskz_cvtepi64_ph): Likewise. |
| (_mm256_cvtepi64_ph): Likewise. |
| (_mm256_mask_cvtepi64_ph): Likewise. |
| (_mm256_maskz_cvtepi64_ph): Likewise. |
| (_mm_cvtepu64_ph): Likewise. |
| (_mm_mask_cvtepu64_ph): Likewise. |
| (_mm_maskz_cvtepu64_ph): Likewise. |
| (_mm256_cvtepu64_ph): Likewise. |
| (_mm256_mask_cvtepu64_ph): Likewise. |
| (_mm256_maskz_cvtepu64_ph): Likewise. |
| (_mm_cvtepi16_ph): Likewise. |
| (_mm_mask_cvtepi16_ph): Likewise. |
| (_mm_maskz_cvtepi16_ph): Likewise. |
| (_mm256_cvtepi16_ph): Likewise. |
| (_mm256_mask_cvtepi16_ph): Likewise. |
| (_mm256_maskz_cvtepi16_ph): Likewise. |
| (_mm_cvtepu16_ph): Likewise. |
| (_mm_mask_cvtepu16_ph): Likewise. |
| (_mm_maskz_cvtepu16_ph): Likewise. |
| (_mm256_cvtepu16_ph): Likewise. |
| (_mm256_mask_cvtepu16_ph): Likewise. |
| (_mm256_maskz_cvtepu16_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/i386-modes.def: Declare V2HF and V6HF. |
| * config/i386/sse.md (VI2H_AVX512VL): New. |
| (qq2phsuff): Ditto. |
| (sseintvecmode): Add HF vector modes. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>): |
| New. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask_1): Ditto. |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. |
| (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask_1): Ditto. |
| * config/i386/subst.md (round_qq2phsuff): New subst_attr. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvtph_epi32): |
| New intrinsic/ |
| (_mm512_mask_cvtph_epi32): Likewise. |
| (_mm512_maskz_cvtph_epi32): Likewise. |
| (_mm512_cvt_roundph_epi32): Likewise. |
| (_mm512_mask_cvt_roundph_epi32): Likewise. |
| (_mm512_maskz_cvt_roundph_epi32): Likewise. |
| (_mm512_cvtph_epu32): Likewise. |
| (_mm512_mask_cvtph_epu32): Likewise. |
| (_mm512_maskz_cvtph_epu32): Likewise. |
| (_mm512_cvt_roundph_epu32): Likewise. |
| (_mm512_mask_cvt_roundph_epu32): Likewise. |
| (_mm512_maskz_cvt_roundph_epu32): Likewise. |
| (_mm512_cvtph_epi64): Likewise. |
| (_mm512_mask_cvtph_epi64): Likewise. |
| (_mm512_maskz_cvtph_epi64): Likewise. |
| (_mm512_cvt_roundph_epi64): Likewise. |
| (_mm512_mask_cvt_roundph_epi64): Likewise. |
| (_mm512_maskz_cvt_roundph_epi64): Likewise. |
| (_mm512_cvtph_epu64): Likewise. |
| (_mm512_mask_cvtph_epu64): Likewise. |
| (_mm512_maskz_cvtph_epu64): Likewise. |
| (_mm512_cvt_roundph_epu64): Likewise. |
| (_mm512_mask_cvt_roundph_epu64): Likewise. |
| (_mm512_maskz_cvt_roundph_epu64): Likewise. |
| (_mm512_cvtph_epi16): Likewise. |
| (_mm512_mask_cvtph_epi16): Likewise. |
| (_mm512_maskz_cvtph_epi16): Likewise. |
| (_mm512_cvt_roundph_epi16): Likewise. |
| (_mm512_mask_cvt_roundph_epi16): Likewise. |
| (_mm512_maskz_cvt_roundph_epi16): Likewise. |
| (_mm512_cvtph_epu16): Likewise. |
| (_mm512_mask_cvtph_epu16): Likewise. |
| (_mm512_maskz_cvtph_epu16): Likewise. |
| (_mm512_cvt_roundph_epu16): Likewise. |
| (_mm512_mask_cvt_roundph_epu16): Likewise. |
| (_mm512_maskz_cvt_roundph_epu16): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvtph_epi32): |
| New intrinsic. |
| (_mm_mask_cvtph_epi32): Likewise. |
| (_mm_maskz_cvtph_epi32): Likewise. |
| (_mm256_cvtph_epi32): Likewise. |
| (_mm256_mask_cvtph_epi32): Likewise. |
| (_mm256_maskz_cvtph_epi32): Likewise. |
| (_mm_cvtph_epu32): Likewise. |
| (_mm_mask_cvtph_epu32): Likewise. |
| (_mm_maskz_cvtph_epu32): Likewise. |
| (_mm256_cvtph_epu32): Likewise. |
| (_mm256_mask_cvtph_epu32): Likewise. |
| (_mm256_maskz_cvtph_epu32): Likewise. |
| (_mm_cvtph_epi64): Likewise. |
| (_mm_mask_cvtph_epi64): Likewise. |
| (_mm_maskz_cvtph_epi64): Likewise. |
| (_mm256_cvtph_epi64): Likewise. |
| (_mm256_mask_cvtph_epi64): Likewise. |
| (_mm256_maskz_cvtph_epi64): Likewise. |
| (_mm_cvtph_epu64): Likewise. |
| (_mm_mask_cvtph_epu64): Likewise. |
| (_mm_maskz_cvtph_epu64): Likewise. |
| (_mm256_cvtph_epu64): Likewise. |
| (_mm256_mask_cvtph_epu64): Likewise. |
| (_mm256_maskz_cvtph_epu64): Likewise. |
| (_mm_cvtph_epi16): Likewise. |
| (_mm_mask_cvtph_epi16): Likewise. |
| (_mm_maskz_cvtph_epi16): Likewise. |
| (_mm256_cvtph_epi16): Likewise. |
| (_mm256_mask_cvtph_epi16): Likewise. |
| (_mm256_maskz_cvtph_epi16): Likewise. |
| (_mm_cvtph_epu16): Likewise. |
| (_mm_mask_cvtph_epu16): Likewise. |
| (_mm_maskz_cvtph_epu16): Likewise. |
| (_mm256_cvtph_epu16): Likewise. |
| (_mm256_mask_cvtph_epu16): Likewise. |
| (_mm256_maskz_cvtph_epu16): Likewise. |
| * config/i386/i386-builtin-types.def: Add new builtin types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (sseintconvert): New. |
| (ssePHmode): Ditto. |
| (UNSPEC_US_FIX_NOTRUNC): Ditto. |
| (sseintconvertsignprefix): Ditto. |
| (avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode><mask_name><round_name>): |
| Ditto. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm_cvtsi16_si128): |
| New intrinsic. |
| (_mm_cvtsi128_si16): Likewise. |
| (_mm_mask_load_sh): Likewise. |
| (_mm_maskz_load_sh): Likewise. |
| (_mm_mask_store_sh): Likewise. |
| (_mm_move_sh): Likewise. |
| (_mm_mask_move_sh): Likewise. |
| (_mm_maskz_move_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_special_args_builtin): Handle new builtin types. |
| (ix86_expand_vector_init_one_nonzero): Adjust for FP16 target. |
| * config/i386/sse.md (VI2F): New mode iterator. |
| (vec_set<mode>_0): Use new mode iterator. |
| (avx512f_mov<ssescalarmodelower>_mask): Adjust for HF vector mode. |
| (avx512f_store<mode>_mask): Ditto. |
| |
| 2021-09-16 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mtoc-fusion): Remove. |
| |
| 2021-09-15 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): |
| Proceed if no symbol summary or the symbol alias flag is false. |
| |
| 2021-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/88578 |
| PR c++/102295 |
| * varasm.c (output_constructor_regular_field): Instead of assertion |
| that array_size_for_constructor result is equal to size of |
| TREE_TYPE (local->val) in bytes, assert that the type size is greater |
| or equal to array_size_for_constructor result and use type size as |
| fieldsize. |
| |
| 2021-09-15 Martin Liska <mliska@suse.cz> |
| |
| PR target/102351 |
| * config/i386/vxworks.h: Use new macro TARGET_CPU_P. |
| |
| 2021-09-15 Martin Liska <mliska@suse.cz> |
| |
| PR target/102349 |
| * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): |
| Check that we have a symbol summary for a symbol. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR target/102348 |
| * config/rs6000/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE |
| to inherit from elfos.h |
| |
| 2021-09-15 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102327 |
| * config/i386/i386-expand.c |
| (ix86_expand_vector_init_interleave): Use puncklwd to pack 2 |
| HFmodes. |
| (ix86_expand_vector_set): Use blendw instead of pinsrw. |
| * config/i386/i386.c (ix86_can_change_mode_class): Adjust for |
| AVX512FP16 which supports 16bit vector load. |
| * config/i386/sse.md (avx512bw_interleave_highv32hi<mask_name>): |
| Rename to .. |
| (avx512bw_interleave_high<mode><mask_name>): .. this, and |
| extend to V32HFmode. |
| (avx2_interleave_highv16hi<mask_name>): Rename to .. |
| (avx2_interleave_high<mode><mask_name>): .. this, and extend |
| to V16HFmode. |
| (vec_interleave_highv8hi<mask_name>): Rename to .. |
| (vec_interleave_high<mode><mask_name>): .. this, and extend to V8HFmode. |
| (<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>): |
| Rename to .. |
| (<mask_codefor>avx512bw_interleave_low<mode><mask_name>): |
| this, and extend to V32HFmode. |
| (avx2_interleave_lowv16hi<mask_name>): Rename to .. |
| (avx2_interleave_low<mode><mask_name>): .. this, and extend to V16HFmode. |
| (vec_interleave_lowv8hi<mask_name>): Rename to .. |
| (vec_interleave_low<mode><mask_name>): .. this, and extend to V8HFmode. |
| (sse4_1_pblendw): Rename to .. |
| (sse4_1_pblend<blendsuf>): .. this, and extend to V8HFmode. |
| (avx2_pblendph): New define_expand. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Refactor, use |
| sseintmodesuffix instead of ssemodesuffix. |
| (blendsuf): New mode attr. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (dr_misalignment): Move out of line. |
| (dr_target_alignment): New. |
| (DR_TARGET_ALIGNMENT): Wrap dr_target_alignment. |
| (set_dr_target_alignment): New. |
| (SET_DR_TARGET_ALIGNMENT): Wrap set_dr_target_alignment. |
| * tree-vect-data-refs.c (dr_misalignment): Compute and |
| return the group members misalignment. |
| (vect_compute_data_ref_alignment): Use SET_DR_TARGET_ALIGNMENT. |
| (vect_analyze_data_refs_alignment): Compute alignment only |
| for the first element of a DR group. |
| (vect_slp_analyze_node_alignment): Likewise. |
| |
| 2021-09-15 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: Adjust all builtin calls. |
| * config/i386/avx512fp16vlintrin.h: Likewise. |
| * config/i386/i386-builtin.def: Adjust builtin name and |
| enumeration to match AVX512F style. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102318 |
| * tree-vect-loop.c (vect_transform_cycle_phi): Revert |
| previous change and do the mode conversion separately from |
| the sign conversion. |
| |
| 2021-09-15 Hongtao Liu <hongtao.liu@intel.com> |
| Peter Cordes <peter@cordes.ca> |
| |
| PR target/91103 |
| * config/i386/sse.md (extract_suf): Add V8SF/V8SI/V4DF/V4DI. |
| (*vec_extract<mode><ssescalarmodelower>_valign): Output |
| vextract{i,f}{32x4,64x2} instruction when byte_offset % 16 == |
| 0. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Remove vax-*-openbsd* configuration. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Remove m68k-openbsd. |
| |
| 2021-09-15 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/102336 |
| * config/xtensa/t-xtensa (TM_H): Add include/xtensa-config.h. |
| |
| 2021-09-14 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_XXSETACCZ. |
| (unspecv): Add UNSPECV_MMA_XXSETACCZ. |
| (*mma_xxsetaccz): Delete. |
| (mma_xxsetaccz): Change to define_insn. Remove operand 1. |
| Use UNSPECV_MMA_XXSETACCZ. Update comment. |
| * config/rs6000/rs6000.c (rs6000_rtx_costs): Use UNSPECV_MMA_XXSETACCZ. |
| |
| 2021-09-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * Makefile.in: Remove variables related to applying no-PIE |
| to the exes on $build. |
| * configure: Regenerate. |
| * configure.ac: Remove configuration related to applying |
| no-PIE to the exes on $build. |
| |
| 2021-09-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (doloop_end): Add missing mode. |
| (loop_end): Likewise. |
| |
| 2021-09-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (goa_stabilize_expr): Add depth argument, propagate |
| it to recursive calls, for depth above 7 just gimplify or return. |
| Perform a test even for MODIFY_EXPR, ADDR_EXPR, COMPOUND_EXPR with |
| __builtin_clear_padding and TARGET_EXPR. |
| (gimplify_omp_atomic): Adjust goa_stabilize_expr callers. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_fpclass_sh_mask): |
| New intrinsic. |
| (_mm_mask_fpclass_sh_mask): Likewise. |
| (_mm512_mask_fpclass_ph_mask): Likewise. |
| (_mm512_fpclass_ph_mask): Likewise. |
| (_mm_getexp_sh): Likewise. |
| (_mm_mask_getexp_sh): Likewise. |
| (_mm_maskz_getexp_sh): Likewise. |
| (_mm512_getexp_ph): Likewise. |
| (_mm512_mask_getexp_ph): Likewise. |
| (_mm512_maskz_getexp_ph): Likewise. |
| (_mm_getexp_round_sh): Likewise. |
| (_mm_mask_getexp_round_sh): Likewise. |
| (_mm_maskz_getexp_round_sh): Likewise. |
| (_mm512_getexp_round_ph): Likewise. |
| (_mm512_mask_getexp_round_ph): Likewise. |
| (_mm512_maskz_getexp_round_ph): Likewise. |
| (_mm_getmant_sh): Likewise. |
| (_mm_mask_getmant_sh): Likewise. |
| (_mm_maskz_getmant_sh): Likewise. |
| (_mm512_getmant_ph): Likewise. |
| (_mm512_mask_getmant_ph): Likewise. |
| (_mm512_maskz_getmant_ph): Likewise. |
| (_mm_getmant_round_sh): Likewise. |
| (_mm_mask_getmant_round_sh): Likewise. |
| (_mm_maskz_getmant_round_sh): Likewise. |
| (_mm512_getmant_round_ph): Likewise. |
| (_mm512_mask_getmant_round_ph): Likewise. |
| (_mm512_maskz_getmant_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_mask_fpclass_ph_mask): |
| New intrinsic. |
| (_mm_fpclass_ph_mask): Likewise. |
| (_mm256_mask_fpclass_ph_mask): Likewise. |
| (_mm256_fpclass_ph_mask): Likewise. |
| (_mm256_getexp_ph): Likewise. |
| (_mm256_mask_getexp_ph): Likewise. |
| (_mm256_maskz_getexp_ph): Likewise. |
| (_mm_getexp_ph): Likewise. |
| (_mm_mask_getexp_ph): Likewise. |
| (_mm_maskz_getexp_ph): Likewise. |
| (_mm256_getmant_ph): Likewise. |
| (_mm256_mask_getmant_ph): Likewise. |
| (_mm256_maskz_getmant_ph): Likewise. |
| (_mm_getmant_ph): Likewise. |
| (_mm_mask_getmant_ph): Likewise. |
| (_mm_maskz_getmant_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (vecmemsuffix): Add HF vector modes. |
| (<avx512>_getexp<mode><mask_name><round_saeonly_name>): Adjust |
| to support HF vector modes. |
| (avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name): |
| Ditto. |
| (avx512dq_fpclass<mode><mask_scalar_merge_name>): Ditto. |
| (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Ditto. |
| (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Ditto. |
| (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): |
| Ditto. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_reduce_ph): |
| New intrinsic. |
| (_mm512_mask_reduce_ph): Likewise. |
| (_mm512_maskz_reduce_ph): Likewise. |
| (_mm512_reduce_round_ph): Likewise. |
| (_mm512_mask_reduce_round_ph): Likewise. |
| (_mm512_maskz_reduce_round_ph): Likewise. |
| (_mm_reduce_sh): Likewise. |
| (_mm_mask_reduce_sh): Likewise. |
| (_mm_maskz_reduce_sh): Likewise. |
| (_mm_reduce_round_sh): Likewise. |
| (_mm_mask_reduce_round_sh): Likewise. |
| (_mm_maskz_reduce_round_sh): Likewise. |
| (_mm512_roundscale_ph): Likewise. |
| (_mm512_mask_roundscale_ph): Likewise. |
| (_mm512_maskz_roundscale_ph): Likewise. |
| (_mm512_roundscale_round_ph): Likewise. |
| (_mm512_mask_roundscale_round_ph): Likewise. |
| (_mm512_maskz_roundscale_round_ph): Likewise. |
| (_mm_roundscale_sh): Likewise. |
| (_mm_mask_roundscale_sh): Likewise. |
| (_mm_maskz_roundscale_sh): Likewise. |
| (_mm_roundscale_round_sh): Likewise. |
| (_mm_mask_roundscale_round_sh): Likewise. |
| (_mm_maskz_roundscale_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h: (_mm_reduce_ph): |
| New intrinsic. |
| (_mm_mask_reduce_ph): Likewise. |
| (_mm_maskz_reduce_ph): Likewise. |
| (_mm256_reduce_ph): Likewise. |
| (_mm256_mask_reduce_ph): Likewise. |
| (_mm256_maskz_reduce_ph): Likewise. |
| (_mm_roundscale_ph): Likewise. |
| (_mm_mask_roundscale_ph): Likewise. |
| (_mm_maskz_roundscale_ph): Likewise. |
| (_mm256_roundscale_ph): Likewise. |
| (_mm256_mask_roundscale_ph): Likewise. |
| (_mm256_maskz_roundscale_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (<mask_codefor>reducep<mode><mask_name>): |
| Renamed to ... |
| (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): |
| ... this, and adjust for round operands. |
| (reduces<mode><mask_scalar_name>): Likewise, with ... |
| (reduces<mode><mask_scalar_name><round_saeonly_scalar_name): |
| ... this. |
| (<avx512>_rndscale<mode><mask_name><round_saeonly_name>): |
| Adjust for HF vector modes. |
| (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>): |
| Ditto. |
| (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_rcp_ph): |
| New intrinsic. |
| (_mm512_mask_rcp_ph): Likewise. |
| (_mm512_maskz_rcp_ph): Likewise. |
| (_mm_rcp_sh): Likewise. |
| (_mm_mask_rcp_sh): Likewise. |
| (_mm_maskz_rcp_sh): Likewise. |
| (_mm512_scalef_ph): Likewise. |
| (_mm512_mask_scalef_ph): Likewise. |
| (_mm512_maskz_scalef_ph): Likewise. |
| (_mm512_scalef_round_ph): Likewise. |
| (_mm512_mask_scalef_round_ph): Likewise. |
| (_mm512_maskz_scalef_round_ph): Likewise. |
| (_mm_scalef_sh): Likewise. |
| (_mm_mask_scalef_sh): Likewise. |
| (_mm_maskz_scalef_sh): Likewise. |
| (_mm_scalef_round_sh): Likewise. |
| (_mm_mask_scalef_round_sh): Likewise. |
| (_mm_maskz_scalef_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_rcp_ph): |
| New intrinsic. |
| (_mm256_rcp_ph): Likewise. |
| (_mm_mask_rcp_ph): Likewise. |
| (_mm256_mask_rcp_ph): Likewise. |
| (_mm_maskz_rcp_ph): Likewise. |
| (_mm256_maskz_rcp_ph): Likewise. |
| (_mm_scalef_ph): Likewise. |
| (_mm256_scalef_ph): Likewise. |
| (_mm_mask_scalef_ph): Likewise. |
| (_mm256_mask_scalef_ph): Likewise. |
| (_mm_maskz_scalef_ph): Likewise. |
| (_mm256_maskz_scalef_ph): Likewise. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/sse.md (VFH_AVX512VL): New. |
| (avx512fp16_rcp<mode>2<mask_name>): Ditto. |
| (avx512fp16_vmrcpv8hf2<mask_scalar_name>): Ditto. |
| (avx512f_vmscalef<mode><mask_scalar_name><round_scalar_name>): |
| Adjust to support HF vector modes. |
| (<avx512>_scalef<mode><mask_name><round_name>): Ditto. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_sqrt_ph): |
| New intrinsic. |
| (_mm512_mask_sqrt_ph): Likewise. |
| (_mm512_maskz_sqrt_ph): Likewise. |
| (_mm512_sqrt_round_ph): Likewise. |
| (_mm512_mask_sqrt_round_ph): Likewise. |
| (_mm512_maskz_sqrt_round_ph): Likewise. |
| (_mm512_rsqrt_ph): Likewise. |
| (_mm512_mask_rsqrt_ph): Likewise. |
| (_mm512_maskz_rsqrt_ph): Likewise. |
| (_mm_rsqrt_sh): Likewise. |
| (_mm_mask_rsqrt_sh): Likewise. |
| (_mm_maskz_rsqrt_sh): Likewise. |
| (_mm_sqrt_sh): Likewise. |
| (_mm_mask_sqrt_sh): Likewise. |
| (_mm_maskz_sqrt_sh): Likewise. |
| (_mm_sqrt_round_sh): Likewise. |
| (_mm_mask_sqrt_round_sh): Likewise. |
| (_mm_maskz_sqrt_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_sqrt_ph): New intrinsic. |
| (_mm256_sqrt_ph): Likewise. |
| (_mm_mask_sqrt_ph): Likewise. |
| (_mm256_mask_sqrt_ph): Likewise. |
| (_mm_maskz_sqrt_ph): Likewise. |
| (_mm256_maskz_sqrt_ph): Likewise. |
| (_mm_rsqrt_ph): Likewise. |
| (_mm256_rsqrt_ph): Likewise. |
| (_mm_mask_rsqrt_ph): Likewise. |
| (_mm256_mask_rsqrt_ph): Likewise. |
| (_mm_maskz_rsqrt_ph): Likewise. |
| (_mm256_maskz_rsqrt_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtins. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (VF_AVX512FP16VL): New. |
| (sqrt<mode>2): Adjust for HF vector modes. |
| (<sse>_sqrt<mode>2<mask_name><round_name>): Likewise. |
| (<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): |
| Likewise. |
| (<sse>_rsqrt<mode>2<mask_name>): New. |
| (avx512fp16_vmrsqrtv8hf2<mask_scalar_name>): Likewise. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR bootstrap/101574 |
| * diagnostic-spec.c (warning_suppressed_at, copy_warning): Handle |
| 'RESERVED_LOCATION_P' locations. |
| * warning-control.cc (get_nowarn_spec, suppress_warning) |
| (copy_warning): Likewise. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * diagnostic-spec.h (typedef xint_hash_t): Use 'location_t' instead of... |
| (typedef key_type_t): ... this. Remove. |
| (nowarn_map): Document. |
| * diagnostic-spec.c (nowarn_map): Likewise. |
| * warning-control.cc (convert_to_key): Evolve functions into... |
| (get_location): ... these. Adjust all users. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * warning-control.cc (copy_warning): Remove 'nowarn_map' setup. |
| |
| 2021-09-13 Jason Merrill <jason@redhat.com> |
| |
| * params.opt: Add destructive-interference-size and |
| constructive-interference-size. |
| * doc/invoke.texi: Document them. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Set them. |
| * config/arm/arm.c (arm_option_override): Set them. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Set them. |
| |
| 2021-09-13 Martin Liska <mliska@suse.cz> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101696 |
| * common/config/i386/cpuinfo.h (cpu_indicator_init): Add support |
| for x86-64 micro levels for __builtin_cpu_supports. |
| * common/config/i386/i386-cpuinfo.h (enum feature_priority): |
| Add priorities for the micro-arch levels. |
| (enum processor_features): Add new features. |
| * common/config/i386/i386-isas.h: Add micro-arch features. |
| * config/i386/i386-builtins.c (get_builtin_code_for_version): |
| Support the micro-arch levels by callsing |
| __builtin_cpu_supports. |
| * doc/extend.texi: Document that the levels are support by |
| __builtin_cpu_supports. |
| |
| 2021-09-13 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/95969 |
| * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin_lane_check): |
| New function. |
| (aarch64_general_fold_builtin): Handle AARCH64_SIMD_BUILTIN_LANE_CHECK. |
| (aarch64_general_gimple_fold_builtin): Likewise. |
| |
| 2021-09-13 Andrew Pinski <apinski@marvell.com> |
| |
| * config.gcc: Add m32r-*-linux* and m32rle-*-linux* |
| to the Unsupported targets list. |
| Remove support for m32r-*-linux* and m32rle-*-linux*. |
| * config/m32r/linux.h: Removed. |
| * config/m32r/t-linux: Removed. |
| |
| 2021-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/102252 |
| * config/aarch64/aarch64.c (aarch64_classify_address): Don't allow |
| register index for SVE predicate modes. |
| |
| 2021-09-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Remove FSM |
| references. |
| (back_threader_registry::register_path): Same. |
| * tree-ssa-threadedge.c |
| (jump_threader::simplify_control_stmt_condition): Same. |
| * tree-ssa-threadupdate.c (jt_path_registry::jt_path_registry): |
| Add backedge_threads argument. |
| (fwd_jt_path_registry::fwd_jt_path_registry): Pass |
| backedge_threads argument. |
| (back_jt_path_registry::back_jt_path_registry): Same. |
| (dump_jump_thread_path): Adjust for FSM removal. |
| (back_jt_path_registry::rewire_first_differing_edge): Same. |
| (back_jt_path_registry::adjust_paths_after_duplication): Same. |
| (back_jt_path_registry::update_cfg): Same. |
| (jt_path_registry::register_jump_thread): Same. |
| * tree-ssa-threadupdate.h (enum jump_thread_edge_type): Remove |
| EDGE_FSM_THREAD. |
| (class back_jt_path_registry): Add backedge_threads to |
| constructor. |
| |
| 2021-09-13 Martin Liska <mliska@suse.cz> |
| |
| PR c++/101331 |
| * asan.h (sanitize_coverage_p): Handle when fn == NULL. |
| |
| 2021-09-13 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101935 |
| * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New. |
| (TARGET_AVX256_STORE_BY_PIECES): Likewise. |
| (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and |
| TARGET_AVX256_STORE_BY_PIECES instead of |
| TARGET_AVX256_SPLIT_UNALIGNED_LOAD and |
| TARGET_AVX256_SPLIT_UNALIGNED_STORE. |
| (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead |
| of TARGET_AVX256_SPLIT_UNALIGNED_STORE. |
| * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New. |
| (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. |
| |
| 2021-09-13 liuhongt <hongtao.liu@intel.com> |
| |
| PR bootstrap/102302 |
| * expmed.c (extract_bit_field_using_extv): Use |
| gen_lowpart_if_possible instead of gen_lowpart to avoid ICE. |
| |
| 2021-09-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (OBJS): Add value-pointer-equiv.o. |
| * gimple-ssa-evrp.c (class ssa_equiv_stack): Move to |
| value-pointer-equiv.*. |
| (ssa_equiv_stack::ssa_equiv_stack): Same. |
| (ssa_equiv_stack::enter): Same. |
| (ssa_equiv_stack::leave): Same. |
| (ssa_equiv_stack::push_replacement): Same. |
| (ssa_equiv_stack::get_replacement): Same. |
| (is_pointer_ssa): Same. |
| (class pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::~pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::set_global_equiv): Same. |
| (pointer_equiv_analyzer::set_cond_equiv): Same. |
| (pointer_equiv_analyzer::get_equiv): Same. |
| (pointer_equiv_analyzer::enter): Same. |
| (pointer_equiv_analyzer::leave): Same. |
| (pointer_equiv_analyzer::get_equiv_expr): Same. |
| (pta_valueize): Same. |
| (pointer_equiv_analyzer::visit_stmt): Same. |
| (pointer_equiv_analyzer::visit_edge): Same. |
| (hybrid_folder::value_of_expr): Same. |
| (hybrid_folder::value_on_edge): Same. |
| * value-pointer-equiv.cc: New file. |
| * value-pointer-equiv.h: New file. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding |
| memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * config/arm/arm.md (movmisaligndi): New define_expand. |
| * config/arm/vec-common.md (movmisalign<mode>): Iterate over VDQ mode. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * emit-rtl.c (gen_highpart): Use adjust_address to handle |
| MEM rather than calling simplify_gen_subreg. |
| |
| 2021-09-13 Jan-Benedict Glaw <jbglaw@Å‚ug-owl.de> |
| |
| * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment |
| define into a block. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/darwin.h (DARWIN_PREFER_DWARF): Do not define. |
| * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Do not |
| change based on DARWIN_PREFER_DWARF not being defined. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE |
| to inherit from elfos.h |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Add cr16-*-* to the list of obsoleted targets. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/avr/elf.h (PREFERRED_DEBUGGING_TYPE): Remove |
| override, pick up DWARF2_DEBUG define from elfos.h |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/rx/rx.h (PREFERRED_DEBUGGING_TYPE): Always define to |
| DWARF2_DEBUG. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/alpha/vms.h (PREFERRED_DEBUGGING_TYPE): Define to |
| DWARF2_DEBUG. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/cygming.h: Always default to DWARF2 debugging. |
| Do not define DBX_DEBUGGING_INFO, that's done via dbxcoff.h |
| already. |
| * doc/install.texi: Document binutils 2.16 as minimum |
| requirement for mingw. |
| |
| 2021-09-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (struct rs6000_cost_data): New members |
| nstmts, nloads and extra_ctor_cost. |
| (rs6000_density_test): Add load density related heuristics. Do |
| extra costing on vector construction statements if need. |
| (rs6000_init_cost): Init new members. |
| (rs6000_update_target_cost_per_stmt): New function. |
| (rs6000_add_stmt_cost): Factor vect_nonmem hunk out to function |
| rs6000_update_target_cost_per_stmt and call it. |
| |
| 2021-09-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (struct rs6000_cost_data): Remove typedef. |
| (rs6000_init_cost): Adjust. |
| |
| 2021-09-13 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md: (UNSPEC_COPYSIGN): Remove. |
| (UNSPEC_XORSIGN): Ditto. |
| |
| 2021-09-12 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_move): Preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. |
| |
| 2021-09-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class back_threader_registry): Use |
| back_jt_path_registry. |
| * tree-ssa-threadedge.c (jump_threader::jump_threader): Use |
| fwd_jt_path_registry. |
| * tree-ssa-threadedge.h (class jump_threader): Same.. |
| * tree-ssa-threadupdate.c |
| (jump_thread_path_registry::jump_thread_path_registry): Rename... |
| (jt_path_registry::jt_path_registry): ...to this. |
| (jump_thread_path_registry::~jump_thread_path_registry): Rename... |
| (jt_path_registry::~jt_path_registry): ...this. |
| (fwd_jt_path_registry::fwd_jt_path_registry): New. |
| (fwd_jt_path_registry::~fwd_jt_path_registry): New. |
| (jump_thread_path_registry::allocate_thread_edge): Rename... |
| (jt_path_registry::allocate_thread_edge): ...to this. |
| (jump_thread_path_registry::allocate_thread_path): Rename... |
| (jt_path_registry::allocate_thread_path): ...to this. |
| (jump_thread_path_registry::lookup_redirection_data): Rename... |
| (fwd_jt_path_registry::lookup_redirection_data): ...to this. |
| (jump_thread_path_registry::thread_block_1): Rename... |
| (fwd_jt_path_registry::thread_block_1): ...to this. |
| (jump_thread_path_registry::thread_block): Rename... |
| (fwd_jt_path_registry::thread_block): ...to this. |
| (jt_path_registry::thread_through_loop_header): Rename... |
| (fwd_jt_path_registry::thread_through_loop_header): ...to this. |
| (jump_thread_path_registry::mark_threaded_blocks): Rename... |
| (fwd_jt_path_registry::mark_threaded_blocks): ...to this. |
| (jump_thread_path_registry::debug_path): Rename... |
| (jt_path_registry::debug_path): ...to this. |
| (jump_thread_path_registry::dump): Rename... |
| (jt_path_registry::debug): ...to this. |
| (jump_thread_path_registry::rewire_first_differing_edge): Rename... |
| (back_jt_path_registry::rewire_first_differing_edge): ...to this. |
| (jump_thread_path_registry::adjust_paths_after_duplication): Rename... |
| (back_jt_path_registry::adjust_paths_after_duplication): ...to this. |
| (jump_thread_path_registry::duplicate_thread_path): Rename... |
| (back_jt_path_registry::duplicate_thread_path): ...to this. Also, |
| drop ill-formed candidates. |
| (jump_thread_path_registry::remove_jump_threads_including): Rename... |
| (fwd_jt_path_registry::remove_jump_threads_including): ...to this. |
| (jt_path_registry::thread_through_all_blocks): New. |
| (back_jt_path_registry::update_cfg): New. |
| (fwd_jt_path_registry::update_cfg): New. |
| (jump_thread_path_registry::register_jump_thread): Rename... |
| (jt_path_registry::register_jump_thread): ...to this. |
| * tree-ssa-threadupdate.h (class jump_thread_path_registry): |
| Abstract to... |
| (class jt_path_registry): ...here. |
| (class fwd_jt_path_registry): New. |
| (class back_jt_path_registry): New. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| * emit-rtl.c (validate_subreg): Get rid of all float-int |
| special cases. |
| |
| 2021-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_memory_order): Add OMP_MEMORY_ORDER_MASK, |
| OMP_FAIL_MEMORY_ORDER_UNSPECIFIED, OMP_FAIL_MEMORY_ORDER_RELAXED, |
| OMP_FAIL_MEMORY_ORDER_ACQUIRE, OMP_FAIL_MEMORY_ORDER_RELEASE, |
| OMP_FAIL_MEMORY_ORDER_ACQ_REL, OMP_FAIL_MEMORY_ORDER_SEQ_CST and |
| OMP_FAIL_MEMORY_ORDER_MASK enumerators. |
| (OMP_FAIL_MEMORY_ORDER_SHIFT): Define. |
| * gimple-pretty-print.c (dump_gimple_omp_atomic_load, |
| dump_gimple_omp_atomic_store): Print [weak] for weak atomic |
| load/store. |
| * gimple.h (enum gf_mask): Change GF_OMP_ATOMIC_MEMORY_ORDER |
| to 6-bit mask, adjust GF_OMP_ATOMIC_NEED_VALUE value and add |
| GF_OMP_ATOMIC_WEAK. |
| (gimple_omp_atomic_weak_p, gimple_omp_atomic_set_weak): New inline |
| functions. |
| * tree.h (OMP_ATOMIC_WEAK): Define. |
| * tree-pretty-print.c (dump_omp_atomic_memory_order): Adjust for |
| fail memory order being encoded in the same enum and also print |
| fail clause if present. |
| (dump_generic_node): Print weak clause if OMP_ATOMIC_WEAK. |
| * gimplify.c (goa_stabilize_expr): Add target_expr and rhs arguments, |
| handle pre_p == NULL case as a test mode that only returns value |
| but doesn't change gimplify nor change anything otherwise, adjust |
| recursive calls, add MODIFY_EXPR, ADDR_EXPR, COND_EXPR, TARGET_EXPR |
| and CALL_EXPR handling, adjust COMPOUND_EXPR handling for |
| __builtin_clear_padding calls, for !rhs gimplify as lvalue rather |
| than rvalue. |
| (gimplify_omp_atomic): Adjust goa_stabilize_expr caller. Handle |
| COND_EXPR rhs. Set weak flag on gimple load/store for |
| OMP_ATOMIC_WEAK. |
| * omp-expand.c (omp_memory_order_to_fail_memmodel): New function. |
| (omp_memory_order_to_memmodel): Adjust for fail clause encoded |
| in the same enum. |
| (expand_omp_atomic_cas): New function. |
| (expand_omp_atomic_pipeline): Use omp_memory_order_to_fail_memmodel |
| function. |
| (expand_omp_atomic): Attempt to optimize atomic compare and exchange |
| using expand_omp_atomic_cas. |
| |
| 2021-09-10 Aldy Hernandez <aldyh@redhat.com> |
| Michael Matz <matz@suse.de> |
| |
| * tree-pass.h (PROP_loop_opts_done): New. |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Intersect with global range. |
| * tree-ssa-loop.c (tree_ssa_loop_done): Set PROP_loop_opts_done. |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Disable |
| threading through latches until after loop optimizations have run. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * doc/invoke.texi: Document BPF -mcpu, -mjmpext, -mjmp32 and -malu32 |
| options. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf-opts.h (bpf_isa_version): New enum. |
| * config/bpf/bpf-protos.h (bpf_expand_cbranch): New. |
| * config/bpf/bpf.c (bpf_option_override): Handle -mcpu option. |
| (bpf_expand_cbranch): New function. |
| * config/bpf/bpf.md (AM mode iterator): Conditionalize support for SI |
| mode. |
| (zero_extendsidi2): Only use mov32 instruction if it is available. |
| (SIM mode iterator): Conditionalize support for SI mode. |
| (JM mode iterator): New. |
| (cbranchdi4): Update name, use new JM iterator. Use bpf_expand_cbranch. |
| (*branch_on_di): Update name, use new JM iterator. |
| * config/bpf/bpf.opt: (mjmpext): New option. |
| (malu32): Likewise. |
| (mjmp32): Likewise. |
| (mcpu): Likewise. |
| (bpf_isa): New enum. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.md (zero_extendhidi2): Add new output template |
| for register-to-register extensions. |
| (zero_extendqidi2): Likewise. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102273 |
| * internal-fn.c (expand_DEFERRED_INIT): Always expand non-SSA vars. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102269 |
| * gimplify.c (is_var_need_auto_init): Empty types do not need |
| initialization. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| * configure.ac (--with-stabs): Remove. |
| * configure: Regenerate. |
| * doc/install.texi: Remove --with-stabs documentation. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_cmp_ph_mask): |
| New intrinsic. |
| (_mm512_mask_cmp_ph_mask): Likewise. |
| (_mm512_cmp_round_ph_mask): Likewise. |
| (_mm512_mask_cmp_round_ph_mask): Likewise. |
| (_mm_cmp_sh_mask): Likewise. |
| (_mm_mask_cmp_sh_mask): Likewise. |
| (_mm_cmp_round_sh_mask): Likewise. |
| (_mm_mask_cmp_round_sh_mask): Likewise. |
| (_mm_comieq_sh): Likewise. |
| (_mm_comilt_sh): Likewise. |
| (_mm_comile_sh): Likewise. |
| (_mm_comigt_sh): Likewise. |
| (_mm_comige_sh): Likewise. |
| (_mm_comineq_sh): Likewise. |
| (_mm_ucomieq_sh): Likewise. |
| (_mm_ucomilt_sh): Likewise. |
| (_mm_ucomile_sh): Likewise. |
| (_mm_ucomigt_sh): Likewise. |
| (_mm_ucomige_sh): Likewise. |
| (_mm_ucomineq_sh): Likewise. |
| (_mm_comi_round_sh): Likewise. |
| (_mm_comi_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cmp_ph_mask): New intrinsic. |
| (_mm_mask_cmp_ph_mask): Likewise. |
| (_mm256_cmp_ph_mask): Likewise. |
| (_mm256_mask_cmp_ph_mask): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/i386.md (ssevecmode): Add HF mode. |
| (MODEFH): New mode iterator. |
| * config/i386/sse.md |
| (V48H_AVX512VL): New mode iterator to support HF vector modes. |
| Ajdust corresponding description. |
| (ssecmpintprefix): New. |
| (VI12_AVX512VL): Adjust to support HF vector modes. |
| (cmp_imm_predicate): Likewise. |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): |
| Likewise. |
| (avx512f_vmcmp<mode>3<round_saeonly_name>): Likewise. |
| (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Likewise. |
| (<sse>_<unord>comi<round_saeonly_name>): Likewise. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_max_ph): New intrinsic. |
| (_mm512_mask_max_ph): Likewise. |
| (_mm512_maskz_max_ph): Likewise. |
| (_mm512_min_ph): Likewise. |
| (_mm512_mask_min_ph): Likewise. |
| (_mm512_maskz_min_ph): Likewise. |
| (_mm512_max_round_ph): Likewise. |
| (_mm512_mask_max_round_ph): Likewise. |
| (_mm512_maskz_max_round_ph): Likewise. |
| (_mm512_min_round_ph): Likewise. |
| (_mm512_mask_min_round_ph): Likewise. |
| (_mm512_maskz_min_round_ph): Likewise. |
| (_mm_max_sh): Likewise. |
| (_mm_mask_max_sh): Likewise. |
| (_mm_maskz_max_sh): Likewise. |
| (_mm_min_sh): Likewise. |
| (_mm_mask_min_sh): Likewise. |
| (_mm_maskz_min_sh): Likewise. |
| (_mm_max_round_sh): Likewise. |
| (_mm_mask_max_round_sh): Likewise. |
| (_mm_maskz_max_round_sh): Likewise. |
| (_mm_min_round_sh): Likewise. |
| (_mm_mask_min_round_sh): Likewise. |
| (_mm_maskz_min_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_max_ph): New intrinsic. |
| (_mm256_max_ph): Likewise. |
| (_mm_mask_max_ph): Likewise. |
| (_mm256_mask_max_ph): Likewise. |
| (_mm_maskz_max_ph): Likewise. |
| (_mm256_maskz_max_ph): Likewise. |
| (_mm_min_ph): Likewise. |
| (_mm256_min_ph): Likewise. |
| (_mm_mask_min_ph): Likewise. |
| (_mm256_mask_min_ph): Likewise. |
| (_mm_maskz_min_ph): Likewise. |
| (_mm256_maskz_min_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| * config/i386/sse.md |
| (<code><mode>3<mask_name><round_saeonly_name>): Adjust to |
| support HF vector modes. |
| (*<code><mode>3<mask_name><round_saeonly_name>): Likewise. |
| (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): |
| Likewise. |
| (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): |
| Likewise. |
| * config/i386/subst.md (round_saeonly_mode512bit_condition): |
| Adjust for HF vector modes. |
| |
| 2021-09-10 Liu, Hongtao <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_add_sh): New intrinsic. |
| (_mm_mask_add_sh): Likewise. |
| (_mm_maskz_add_sh): Likewise. |
| (_mm_sub_sh): Likewise. |
| (_mm_mask_sub_sh): Likewise. |
| (_mm_maskz_sub_sh): Likewise. |
| (_mm_mul_sh): Likewise. |
| (_mm_mask_mul_sh): Likewise. |
| (_mm_maskz_mul_sh): Likewise. |
| (_mm_div_sh): Likewise. |
| (_mm_mask_div_sh): Likewise. |
| (_mm_maskz_div_sh): Likewise. |
| (_mm_add_round_sh): Likewise. |
| (_mm_mask_add_round_sh): Likewise. |
| (_mm_maskz_add_round_sh): Likewise. |
| (_mm_sub_round_sh): Likewise. |
| (_mm_mask_sub_round_sh): Likewise. |
| (_mm_maskz_sub_round_sh): Likewise. |
| (_mm_mul_round_sh): Likewise. |
| (_mm_mask_mul_round_sh): Likewise. |
| (_mm_maskz_mul_round_sh): Likewise. |
| (_mm_div_round_sh): Likewise. |
| (_mm_mask_div_round_sh): Likewise. |
| (_mm_maskz_div_round_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_round_builtin): Handle new builtins. |
| * config/i386/sse.md (VF_128): Change description. |
| (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>): |
| Adjust to support HF vector modes. |
| (<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>): |
| Likewise. |
| |
| 2021-09-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.c |
| (ix86_avx256_split_vector_move_misalign): Handle V16HF mode. |
| * config/i386/i386.c |
| (ix86_preferred_simd_mode): Handle HF mode. |
| * config/i386/sse.md (V_256H): New mode iterator. |
| (avx_vextractf128<mode>): Use it. |
| (VEC_INIT_MODE): Align vector HFmode condition to vector |
| HImodes since there're no real HF instruction used. |
| (VEC_INIT_HALF_MODE): Ditto. |
| (VIHF): Ditto. |
| (VIHF_AVX512BW): Ditto. |
| (*vec_extracthf): Ditto. |
| (VEC_EXTRACT_MODE): Ditto. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR target/102255 |
| * config/dbx.h: Remove. |
| * config/dbxcoff.h: Do not define PREFERRED_DEBUGGING_TYPE. |
| * config/lynx.h: Likewise. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_copysign): Expand |
| right into ANDNOT + AND + IOR, using paradoxical subregs. |
| (ix86_split_copysign_const): Remove. |
| (ix86_split_copysign_var): Ditto. |
| * config/i386/i386-protos.h (ix86_split_copysign_const): Dotto. |
| (ix86_split_copysign_var): Ditto. |
| * config/i386/i386.md (@copysign<mode>3_const): Ditto. |
| (@copysign<mode>3_var): Ditto. |
| |
| 2021-09-09 qing zhao <qing.zhao@oracle.com> |
| |
| * builtins.c (expand_builtin_memset): Make external visible. |
| * builtins.h (expand_builtin_memset): Declare extern. |
| * common.opt (ftrivial-auto-var-init=): New option. |
| * doc/extend.texi: Document the uninitialized attribute. |
| * doc/invoke.texi: Document -ftrivial-auto-var-init. |
| * flag-types.h (enum auto_init_type): New enumerated type |
| auto_init_type. |
| * gimple-fold.c (clear_padding_type): Add one new parameter. |
| (clear_padding_union): Likewise. |
| (clear_padding_emit_loop): Likewise. |
| (clear_type_padding_in_mask): Likewise. |
| (gimple_fold_builtin_clear_padding): Handle this new parameter. |
| * gimplify.c (gimple_add_init_for_auto_var): New function. |
| (gimple_add_padding_init_for_auto_var): New function. |
| (is_var_need_auto_init): New function. |
| (gimplify_decl_expr): Add initialization to automatic variables per |
| users' requests. |
| (gimplify_call_expr): Add one new parameter for call to |
| __builtin_clear_padding. |
| (gimplify_init_constructor): Add padding initialization in the end. |
| * internal-fn.c (INIT_PATTERN_VALUE): New macro. |
| (expand_DEFERRED_INIT): New function. |
| * internal-fn.def (DEFERRED_INIT): New internal function. |
| * tree-cfg.c (verify_gimple_call): Verify calls to .DEFERRED_INIT. |
| * tree-sra.c (generate_subtree_deferred_init): New function. |
| (scan_function): Avoid setting cannot_scalarize_away_bitmap for |
| calls to .DEFERRED_INIT. |
| (sra_modify_deferred_init): New function. |
| (sra_modify_function_body): Handle calls to DEFERRED_INIT specially. |
| * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. |
| * tree-ssa-uninit.c (warn_uninit): Handle calls to DEFERRED_INIT |
| specially. |
| (check_defs): Likewise. |
| (warn_uninitialized_vars): Likewise. |
| * tree-ssa.c (ssa_undefined_value_p): Likewise. |
| * tree.c (build_common_builtin_nodes): Build tree node for |
| BUILT_IN_CLEAR_PADDING when needed. |
| |
| 2021-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Walk |
| into all subloops. |
| |
| 2021-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Integrate |
| DOM walk from get_loop_body_in_dom_order using a worklist |
| approach. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| * config.gcc: Add avx512fp16vlintrin.h. |
| * config/i386/avx512fp16intrin.h: (_mm512_add_ph): New intrinsic. |
| (_mm512_mask_add_ph): Likewise. |
| (_mm512_maskz_add_ph): Likewise. |
| (_mm512_sub_ph): Likewise. |
| (_mm512_mask_sub_ph): Likewise. |
| (_mm512_maskz_sub_ph): Likewise. |
| (_mm512_mul_ph): Likewise. |
| (_mm512_mask_mul_ph): Likewise. |
| (_mm512_maskz_mul_ph): Likewise. |
| (_mm512_div_ph): Likewise. |
| (_mm512_mask_div_ph): Likewise. |
| (_mm512_maskz_div_ph): Likewise. |
| (_mm512_add_round_ph): Likewise. |
| (_mm512_mask_add_round_ph): Likewise. |
| (_mm512_maskz_add_round_ph): Likewise. |
| (_mm512_sub_round_ph): Likewise. |
| (_mm512_mask_sub_round_ph): Likewise. |
| (_mm512_maskz_sub_round_ph): Likewise. |
| (_mm512_mul_round_ph): Likewise. |
| (_mm512_mask_mul_round_ph): Likewise. |
| (_mm512_maskz_mul_round_ph): Likewise. |
| (_mm512_div_round_ph): Likewise. |
| (_mm512_mask_div_round_ph): Likewise. |
| (_mm512_maskz_div_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h: New header. |
| * config/i386/i386-builtin-types.def (V16HF, V8HF, V32HF): |
| Add new builtin types. |
| * config/i386/i386-builtin.def: Add corresponding builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Likewise. |
| * config/i386/immintrin.h: Include avx512fp16vlintrin.h |
| * config/i386/sse.md (VFH): New mode_iterator. |
| (VF2H): Likewise. |
| (avx512fmaskmode): Add HF vector modes. |
| (avx512fmaskhalfmode): Likewise. |
| (<plusminus_insn><mode>3<mask_name><round_name>): Adjust to for |
| HF vector modes. |
| (*<plusminus_insn><mode>3<mask_name><round_name>): Likewise. |
| (mul<mode>3<mask_name><round_name>): Likewise. |
| (*mul<mode>3<mask_name><round_name>): Likewise. |
| (div<mode>3): Likewise. |
| (<sse>_div<mode>3<mask_name><round_name>): Likewise. |
| * config/i386/subst.md (SUBST_V): Add HF vector modes. |
| (SUBST_A): Likewise. |
| (round_mode512bit_condition): Adjust for V32HFmode. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101059 |
| * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. |
| (reduc_plus_scal_v4sf): .. this, New define_expand. |
| (reduc_plus_scal_v2df): .. and this, New define_expand. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/91103 |
| * config/i386/sse.md (*vec_extract<mode><ssescalarmodelower>_valign): |
| New define_insn. |
| |
| 2021-09-08 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/60318 |
| * doc/trouble.texi (Copy Assignment): Fix description of |
| behaviour and fix code in example. |
| |
| 2021-09-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/102107 |
| * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use |
| r11 instead of r12 for restoring CR. |
| |
| 2021-09-08 Jakub Jelinek <jakub@redhat.com> |
| liuhongt <hongtao.liu@intel.com> |
| |
| PR target/89984 |
| * config/i386/i386.md (@xorsign<mode>3_1): Remove. |
| * config/i386/i386-expand.c (ix86_expand_xorsign): Expand right away |
| into AND with mask and XOR, using paradoxical subregs. |
| (ix86_split_xorsign): Remove. |
| * config/i386/i386-protos.h (ix86_split_xorsign): Remove. |
| |
| 2021-09-08 Di Zhao <dizhao@os.amperecomputing.com> |
| |
| * tree-ssa-sccvn.c (vn_nary_op_insert_into): fix result compare |
| |
| 2021-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102224 |
| * config/i386/i386.md (xorsign<mode>3): If operands[1] is equal to |
| operands[2], emit abs<mode>2 instead. |
| (@xorsign<mode>3_1): Add early-clobbers for output operand, enable |
| first alternative even for avx, add another alternative with |
| =&Yv <- 0, Yv, Yvm constraints. |
| * config/i386/i386-expand.c (ix86_split_xorsign): If op0 is equal |
| to op1, emit vpandn instead. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_set_ph): New intrinsic. |
| (_mm256_set_ph): Likewise. |
| (_mm512_set_ph): Likewise. |
| (_mm_setr_ph): Likewise. |
| (_mm256_setr_ph): Likewise. |
| (_mm512_setr_ph): Likewise. |
| (_mm_set1_ph): Likewise. |
| (_mm256_set1_ph): Likewise. |
| (_mm512_set1_ph): Likewise. |
| (_mm_setzero_ph): Likewise. |
| (_mm256_setzero_ph): Likewise. |
| (_mm512_setzero_ph): Likewise. |
| (_mm_set_sh): Likewise. |
| (_mm_load_sh): Likewise. |
| (_mm_store_sh): Likewise. |
| * config/i386/i386-builtin-types.def (V8HF): New type. |
| (DEF_FUNCTION_TYPE (V8HF, V8HI)): New builtin function type |
| * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): |
| Support vector HFmodes. |
| (ix86_expand_vector_init_one_nonzero): Likewise. |
| (ix86_expand_vector_init_one_var): Likewise. |
| (ix86_expand_vector_init_interleave): Likewise. |
| (ix86_expand_vector_init_general): Likewise. |
| (ix86_expand_vector_set): Likewise. |
| (ix86_expand_vector_extract): Likewise. |
| (ix86_expand_vector_init_concat): Likewise. |
| (ix86_expand_sse_movcc): Handle vector HFmodes. |
| (ix86_expand_vector_set_var): Ditto. |
| * config/i386/i386-modes.def: Add HF vector modes in comment. |
| * config/i386/i386.c (classify_argument): Add HF vector modes. |
| (ix86_hard_regno_mode_ok): Allow HF vector modes for AVX512FP16. |
| (ix86_vector_mode_supported_p): Likewise. |
| (ix86_set_reg_reg_cost): Handle vector HFmode. |
| (ix86_get_ssemov): Handle vector HFmode. |
| (function_arg_advance_64): Pass unamed V16HFmode and V32HFmode |
| by stack. |
| (function_arg_advance_32): Pass V8HF/V16HF/V32HF by sse reg for 32bit |
| mode. |
| (function_arg_advance_32): Ditto. |
| * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): New. |
| (VALID_AVX256_REG_OR_OI_MODE): Rename to .. |
| (VALID_AVX256_REG_OR_OI_VHF_MODE): .. this, and add V16HF. |
| (VALID_SSE2_REG_VHF_MODE): New. |
| (VALID_AVX512VL_128_REG_MODE): Add V8HF and TImode. |
| (SSE_REG_MODE_P): Add vector HFmode. |
| * config/i386/i386.md (mode): Add HF vector modes. |
| (MODE_SIZE): Likewise. |
| (ssemodesuffix): Add ph suffix for HF vector modes. |
| * config/i386/sse.md (VFH_128): New mode iterator. |
| (VMOVE): Adjust for HF vector modes. |
| (V): Likewise. |
| (V_256_512): Likewise. |
| (avx512): Likewise. |
| (avx512fmaskmode): Likewise. |
| (shuffletype): Likewise. |
| (sseinsnmode): Likewise. |
| (ssedoublevecmode): Likewise. |
| (ssehalfvecmode): Likewise. |
| (ssehalfvecmodelower): Likewise. |
| (ssePScmode): Likewise. |
| (ssescalarmode): Likewise. |
| (ssescalarmodelower): Likewise. |
| (sseintprefix): Likewise. |
| (i128): Likewise. |
| (bcstscalarsuff): Likewise. |
| (xtg_mode): Likewise. |
| (VI12HF_AVX512VL): New mode_iterator. |
| (VF_AVX512FP16): Likewise. |
| (VIHF): Likewise. |
| (VIHF_256): Likewise. |
| (VIHF_AVX512BW): Likewise. |
| (V16_256): Likewise. |
| (V32_512): Likewise. |
| (sseintmodesuffix): New mode_attr. |
| (sse): Add scalar and vector HFmodes. |
| (ssescalarmode): Add vector HFmode mapping. |
| (ssescalarmodesuffix): Add sh suffix for HFmode. |
| (*<sse>_vm<insn><mode>3): Use VFH_128. |
| (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. |
| (*ieee_<ieee_maxmin><mode>3): Likewise. |
| (<avx512>_blendm<mode>): New define_insn. |
| (vec_setv8hf): New define_expand. |
| (vec_set<mode>_0): New define_insn for HF vector set. |
| (*avx512fp16_movsh): Likewise. |
| (avx512fp16_movsh): Likewise. |
| (vec_extract_lo_v32hi): Rename to ... |
| (vec_extract_lo_<mode>): ... this, and adjust to allow HF |
| vector modes. |
| (vec_extract_hi_v32hi): Likewise. |
| (vec_extract_hi_<mode>): Likewise. |
| (vec_extract_lo_v16hi): Likewise. |
| (vec_extract_lo_<mode>): Likewise. |
| (vec_extract_hi_v16hi): Likewise. |
| (vec_extract_hi_<mode>): Likewise. |
| (vec_set_hi_v16hi): Likewise. |
| (vec_set_hi_<mode>): Likewise. |
| (vec_set_lo_v16hi): Likewise. |
| (vec_set_lo_<mode>): Likewise. |
| (*vec_extract<mode>_0): New define_insn_and_split for HF |
| vector extract. |
| (*vec_extracthf): New define_insn. |
| (VEC_EXTRACT_MODE): Add HF vector modes. |
| (PINSR_MODE): Add V8HF. |
| (sse2p4_1): Likewise. |
| (pinsr_evex_isa): Likewise. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support |
| insert for V8HFmode. |
| (pbroadcast_evex_isa): Add HF vector modes. |
| (AVX2_VEC_DUP_MODE): Likewise. |
| (VEC_INIT_MODE): Likewise. |
| (VEC_INIT_HALF_MODE): Likewise. |
| (avx2_pbroadcast<mode>): Adjust to support HF vector mode |
| broadcast. |
| (avx2_pbroadcast<mode>_1): Likewise. |
| (<avx512>_vec_dup<mode>_1): Likewise. |
| (<avx512>_vec_dup<mode><mask_name>): Likewise. |
| (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): |
| Likewise. |
| |
| 2021-09-08 Guo, Xuepeng <xuepeng.guo@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| Liu Hongtao <hongtao.liu@intel.com> |
| Wang Hongyu <hongyu.wang@intel.com> |
| Xu Dianhong <dianhong.xu@intel.com> |
| |
| * common/config/i386/cpuinfo.h (get_available_features): |
| Detect FEATURE_AVX512FP16. |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_AVX512FP16_SET, |
| OPTION_MASK_ISA_AVX512FP16_UNSET, |
| OPTION_MASK_ISA2_AVX512FP16_SET, |
| OPTION_MASK_ISA2_AVX512FP16_UNSET): New. |
| (OPTION_MASK_ISA2_AVX512BW_UNSET, |
| OPTION_MASK_ISA2_AVX512BF16_UNSET): Add AVX512FP16. |
| (ix86_handle_option): Handle -mavx512fp16. |
| * common/config/i386/i386-cpuinfo.h (enum processor_features): |
| Add FEATURE_AVX512FP16. |
| * common/config/i386/i386-isas.h: Add entry for AVX512FP16. |
| * config.gcc: Add avx512fp16intrin.h. |
| * config/i386/avx512fp16intrin.h: New intrinsic header. |
| * config/i386/cpuid.h: Add bit_AVX512FP16. |
| * config/i386/i386-builtin-types.def: (FLOAT16): New primitive type. |
| * config/i386/i386-builtins.c: Support _Float16 type for i386 |
| backend. |
| (ix86_register_float16_builtin_type): New function. |
| (ix86_float16_type_node): New. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512FP16__. |
| * config/i386/i386-expand.c (ix86_expand_branch): Support |
| HFmode. |
| (ix86_prepare_fp_compare_args): Adjust TARGET_SSE_MATH && |
| SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. |
| (ix86_expand_fp_movcc): Ditto. |
| * config/i386/i386-isa.def: Add PTA define for AVX512FP16. |
| * config/i386/i386-options.c (isa2_opts): Add -mavx512fp16. |
| (ix86_valid_target_attribute_inner_p): Add avx512fp16 attribute. |
| * config/i386/i386.c (ix86_get_ssemov): Use |
| vmovdqu16/vmovw/vmovsh for HFmode/HImode scalar or vector. |
| (ix86_get_excess_precision): Use |
| FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when TARGET_AVX512FP16 |
| existed. |
| (sse_store_index): Use SFmode cost for HFmode cost. |
| (inline_memory_move_cost): Add HFmode, and perfer SSE cost over |
| GPR cost for HFmode. |
| (ix86_hard_regno_mode_ok): Allow HImode in sse register. |
| (ix86_mangle_type): Add manlging for _Float16 type. |
| (inline_secondary_memory_needed): No memory is needed for |
| 16bit movement between gpr and sse reg under |
| TARGET_AVX512FP16. |
| (ix86_multiplication_cost): Adjust TARGET_SSE_MATH && |
| SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. |
| (ix86_division_cost): Ditto. |
| (ix86_rtx_costs): Ditto. |
| (ix86_add_stmt_cost): Ditto. |
| (ix86_optab_supported_p): Ditto. |
| * config/i386/i386.h (VALID_AVX512F_SCALAR_MODE): Add HFmode. |
| (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Add HFmode. |
| (PTA_SAPPHIRERAPIDS): Add PTA_AVX512FP16. |
| * config/i386/i386.md (mode): Add HFmode. |
| (MODE_SIZE): Add HFmode. |
| (isa): Add avx512fp16. |
| (enabled): Handle avx512fp16. |
| (ssemodesuffix): Add sh suffix for HFmode. |
| (comm): Add mult, div. |
| (plusminusmultdiv): New code iterator. |
| (insn): Add mult, div. |
| (*movhf_internal): Adjust for avx512fp16 instruction. |
| (*movhi_internal): Ditto. |
| (*cmpi<unord>hf): New define_insn for HFmode. |
| (*ieee_s<ieee_maxmin>hf3): Likewise. |
| (extendhf<mode>2): Likewise. |
| (trunc<mode>hf2): Likewise. |
| (float<floatunssuffix><mode>hf2): Likewise. |
| (*<insn>hf): Likewise. |
| (cbranchhf4): New expander. |
| (movhfcc): Likewise. |
| (<insn>hf3): Likewise. |
| (mulhf3): Likewise. |
| (divhf3): Likewise. |
| * config/i386/i386.opt: Add mavx512fp16. |
| * config/i386/immintrin.h: Include avx512fp16intrin.h. |
| * doc/invoke.texi: Add mavx512fp16. |
| * doc/extend.texi: Add avx512fp16 Usage Notes. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * common.opt: Support -fexcess-precision=16. |
| * config/aarch64/aarch64.c (aarch64_excess_precision): Return |
| FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when |
| EXCESS_PRECISION_TYPE_FLOAT16. |
| * config/arm/arm.c (arm_excess_precision): Ditto. |
| * config/i386/i386.c (ix86_get_excess_precision): Ditto. |
| * config/m68k/m68k.c (m68k_excess_precision): Issue an error |
| when EXCESS_PRECISION_TYPE_FLOAT16. |
| * config/s390/s390.c (s390_excess_precision): Ditto. |
| * coretypes.h (enum excess_precision_type): Add |
| EXCESS_PRECISION_TYPE_FLOAT16. |
| * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Update documents. |
| * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): Ditto. |
| * doc/extend.texi (Half-Precision): Document |
| -fexcess-precision=16. |
| * flag-types.h (enum excess_precision): Add |
| EXCESS_PRECISION_FLOAT16. |
| * target.def (excess_precision): Update document. |
| * tree.c (excess_precision_type): Set excess_precision_type to |
| EXCESS_PRECISION_FLOAT16 when -fexcess-precision=16. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/extend.texi: (@node Floating Types): Adjust the wording. |
| (@node Half-Precision): Ditto. |
| |
| 2021-09-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| PR target/102115 |
| * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add |
| 'CONST_INT_P (src)' to the condition of the block that tries to |
| eliminate literal when loading integer contant. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * doc/extend.texi (BPF Type Attributes) New node. |
| Document new preserve_access_index attribute. |
| Document new preserve_access_index builtin. |
| * doc/invoke.texi: Document -mco-re and -mno-co-re options. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.c: Adjust includes. |
| (bpf_handle_preserve_access_index_attribute): New function. |
| (bpf_attribute_table): Use it here. |
| (bpf_builtins): Add BPF_BUILTIN_PRESERVE_ACCESS_INDEX. |
| (bpf_option_override): Handle "-mco-re" option. |
| (bpf_asm_init_sections): New. |
| (TARGET_ASM_INIT_SECTIONS): Redefine. |
| (bpf_file_end): New. |
| (TARGET_ASM_FILE_END): Redefine. |
| (bpf_init_builtins): Add "__builtin_preserve_access_index". |
| (bpf_core_compute, bpf_core_get_index): New. |
| (is_attr_preserve_access): New. |
| (bpf_expand_builtin): Handle new builtins. |
| (bpf_core_newdecl, bpf_core_is_maybe_aggregate_access): New. |
| (bpf_core_walk): New. |
| (bpf_resolve_overloaded_builtin): New. |
| (TARGET_RESOLVE_OVERLOADED_BUILTIN): Redefine. |
| (handle_attr): New. |
| (pass_bpf_core_attr): New RTL pass. |
| * config/bpf/bpf-passes.def: New file. |
| * config/bpf/bpf-protos.h (make_pass_bpf_core_attr): New. |
| * config/bpf/coreout.c: New file. |
| * config/bpf/coreout.h: Likewise. |
| * config/bpf/t-bpf (TM_H): Add $(srcdir)/config/bpf/coreout.h. |
| (coreout.o): New rule. |
| (PASSES_EXTRA): Add $(srcdir)/config/bpf/bpf-passes.def. |
| * config.gcc (bpf): Add coreout.h to extra_headers. |
| Add coreout.o to extra_objs. |
| Add $(srcdir)/config/bpf/coreout.c to target_gtfiles. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * btfout.c (get_btf_id): Function is no longer static. |
| * ctfc.h: Expose it here. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * ctfc.c (ctf_lookup_tree_type): New function. |
| * ctfc.h: Likewise. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * ctfc.c (ctf_dtd_lookup): Function is no longer static. |
| * ctfc.h: Analogous change. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * dwarf2out.c (lookup_type_die): Function is no longer static. |
| * dwarf2out.h: Expose it here. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * dwarf2ctf.c (ctf_debug_finalize): Make it static. |
| (ctf_debug_early_finish): New definition. |
| (ctf_debug_finish): Likewise. |
| * dwarf2ctf.h (ctf_debug_finalize): Remove declaration. |
| (ctf_debug_early_finish): New declaration. |
| (ctf_debug_finish): Likewise. |
| * dwarf2out.c (dwarf2out_finish): Invoke ctf_debug_finish. |
| (dwarf2out_early_finish): Invoke ctf_debug_early_finish. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO |
| support when compiling for CO-RE. |
| * config/bpf/bpf.opt: Add new command line option -mco-re. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * flag-types.h (enum debug_info_type): Add new enum |
| DINFO_TYPE_BTF_WITH_CORE. |
| (BTF_WITH_CORE_DEBUG): New bitmask. |
| * flags.h (btf_with_core_debuginfo_p): New declaration. |
| * opts.c (btf_with_core_debuginfo_p): New definition. |
| |
| 2021-09-07 Jason Merrill <jason@redhat.com> |
| |
| * tree.h (error_operand_p): Change to inline function. |
| |
| 2021-09-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (forwarder_block_p): Rename to... |
| (empty_block_with_phis_p): ...this. |
| (potentially_threadable_block): Same. |
| (jump_threader::thread_through_normal_block): Same. |
| |
| 2021-09-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/101947 |
| * dwarf2out.c (mark_base_types): New overloaded function. |
| (dwarf2out_early_finish): Invoke it on the COMDAT type list as well |
| as the compilation unit, and call move_marked_base_types afterward. |
| |
| 2021-09-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/85819 |
| * config/i386/i386-expand.c (ix86_expand_convert_uns_sisf_sse): |
| Enable FMA. |
| (ix86_expand_vector_convert_uns_vsivsf): Likewise. |
| |
| 2021-09-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102226 |
| * tree-vect-loop.c (vect_transform_cycle_phi): Record |
| the converted value for the epilogue PHI use. |
| |
| 2021-09-07 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80223 |
| * ipa-inline.c (can_inline_edge_p): Similarly to sanitizer |
| options, do not inline when no_profile_instrument_function |
| attributes are different in early inliner. It's fine to inline |
| it after PGO instrumentation. |
| |
| 2021-09-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101555 |
| * tree-ssa-pre.c (translate_vuse_through_block): Do not |
| perform an alias walk to determine the validity of the |
| mem at the start of the block which is already guaranteed |
| by means of prune_clobbered_mems. |
| (phi_translate_1): Pass edge to translate_vuse_through_block. |
| |
| 2021-09-07 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/97142 |
| * config/rs6000/rs6000.md (fmod<mode>3): New define_expand. |
| (remainder<mode>3): Likewise. |
| |
| 2021-09-07 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_file_start): add .module for |
| arch and ase. |
| |
| 2021-09-06 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * wide-int.cc (wi::clz): Reorder tests to ensure the result |
| is zero for all negative values. |
| |
| 2021-09-06 Tobias Burnus <tobias@codesourcery.com> |
| |
| * doc/invoke.texi (-foffload-options): Fix @opindex. |
| |
| 2021-09-06 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/89984 |
| * config/i386/i386-expand.c (ix86_split_xorsign): Use operands[2]. |
| * config/i386/i386.md (@xorsign<mode>3_1): Add non-destructive |
| source alternative for AVX. |
| |
| 2021-09-06 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/102182 |
| * optabs.c (expand_fix): Add from1 to avoid from being |
| overwritten. |
| |
| 2021-09-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (modified_type_die): Deal with all array types earlier |
| and use local variable consistently throughout the function. |
<
|