1 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
3 * tree-vrp.c (operand_less_p): Move to...
4 * vr-values.c (operand_less_p): ...here.
5 * tree-vrp.h (operand_less_p): Remove.
7 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
9 * tree-vrp.c (class vrp_insert): Remove prototype for
12 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
14 * tree-vrp.c (class live_names): New.
15 (live_on_edge): Move into live_names.
16 (build_assert_expr_for): Move into vrp_insert.
17 (find_assert_locations_in_bb): Rename from
18 find_assert_locations_1.
19 (process_assert_insertions_for): Move into vrp_insert.
20 (compare_assert_loc): Same.
21 (remove_range_assertions): Same.
22 (dump_asserts_for): Rename to vrp_insert::dump.
23 (debug_asserts_for): Rename to vrp_insert::debug.
24 (dump_all_asserts): Rename to vrp_insert::dump.
25 (debug_all_asserts): Rename to vrp_insert::debug.
27 2020-05-17 Aldy Hernandez <aldyh@redhat.com>
29 * tree-vrp.c (class vrp_prop): Move check_all_array_refs,
30 check_array_ref, check_mem_ref, and search_for_addr_array
32 (class array_bounds_checker): ...here.
33 (class check_array_bounds_dom_walker): Adjust to use
35 (check_all_array_refs): Move into array_bounds_checker and rename
37 (class vrp_folder): Make fold_predicate_in private.
39 2020-05-15 Jeff Law <law@redhat.com>
41 * config/h8300/h8300.md (SFI iterator): New iterator for
43 * config/h8300/peepholes.md (memory comparison): Use mode
44 iterator to consolidate 3 patterns into one.
45 (stack allocation and stack store): Handle SFmode. Handle
48 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org>
50 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require
53 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
55 * config/i386/i386.md (SWI48DWI): New mode iterator.
56 (*push<mode>2): Allow XMM registers.
57 (*pushdi2_rex64): Ditto.
58 (*pushsi2_rex64): Ditto.
60 (push XMM reg splitter): New splitter
62 (*pushdf) Change "x" operand constraint to "v".
63 (*pushsf_rex64): Ditto.
66 2020-05-15 Richard Biener <rguenther@suse.de>
68 PR tree-optimization/92260
69 * tree-vect-slp.c (vect_get_constant_vectors): Compute
70 the number of vector stmts in a canonical way.
72 2020-05-15 Martin Liska <mliska@suse.cz>
74 * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation
77 2020-05-15 Andrew Stubbs <ams@codesourcery.com>
79 * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
81 2020-05-15 Richard Biener <rguenther@suse.de>
83 PR tree-optimization/95133
84 * gimple-ssa-split-paths.c
85 (find_block_to_duplicate_for_splitting_paths): Check for
88 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org>
90 * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt
92 (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
94 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
97 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
98 OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
101 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
104 * config/i386/i386.md (isa): Add sse3_noavx.
105 (enabled): Handle sse3_noavx.
107 * config/i386/mmx.md (mmx_haddv2sf3): New expander.
108 (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX
109 alternatives. Match commutative vec_select selector operands.
110 (*mmx_haddv2sf3_low): New insn pattern.
112 (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
113 (*mmx_hsubv2sf3_low): New insn pattern.
115 2020-05-15 Richard Biener <rguenther@suse.de>
117 PR tree-optimization/33315
118 * tree-ssa-sink.c: Include tree-eh.h.
119 (sink_stats): Add commoned member.
120 (sink_common_stores_to_bb): New function implementing store
121 commoning by sinking to the successor.
122 (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned.
123 (pass_sink_code::execute): Likewise. Record commoned stores
126 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
128 PR rtl-optimization/37451, part of PR target/61837
129 * loop-doloop.c (doloop_simplify_count): New function. Simplify
130 (add -1; zero_ext; add +1) to zero_ext when not wrapping.
131 (doloop_modify): Call doloop_simplify_count.
133 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
136 * doc/sourcebuild.texi: Document effective target lgccjit.
138 2020-05-14 Andrew Stubbs <ams@codesourcery.com>
140 * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a
141 define_expand, and rename the original to ...
142 (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand.
143 (add<mode>3_zext_dup_exec): Likewise, with ...
144 (add<mode>3_vcc_zext_dup_exec): ... this.
145 (add<mode>3_zext_dup2): Likewise, with ...
146 (add<mode>3_zext_dup_exec): ... this.
147 (add<mode>3_zext_dup2_exec): Likewise, with ...
148 (add<mode>3_zext_dup2): ... this.
149 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch
150 addv64di3_zext* calls to use addv64di3_vcc_zext*.
152 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
155 * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
156 (extendv2sfv2df2): Ditto.
158 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
160 * configure: Regenerated.
162 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
164 * config/arm/arm.c (reg_needs_saving_p): New function.
165 (use_return_insn): Use reg_needs_saving_p.
166 (arm_get_vfp_saved_size): Likewise.
167 (arm_compute_frame_layout): Likewise.
168 (arm_save_coproc_regs): Likewise.
169 (thumb1_expand_epilogue): Likewise.
170 (arm_expand_epilogue_apcs_frame): Likewise.
171 (arm_expand_epilogue): Likewise.
173 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
175 * config/arm/arm.c (thumb1_expand_prologue): Update error message.
177 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
180 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
182 (floatv2siv2df2): New expander.
183 (floatunsv2siv2df2): New insn pattern.
185 (fix_truncv2dfv2si2): New expander.
186 (fixuns_truncv2dfv2si2): New insn pattern.
188 2020-05-14 Richard Sandiford <richard.sandiford@arm.com>
191 * config/aarch64/aarch64-sve-builtins.cc
192 (handle_arm_sve_vector_bits_attribute): Create a copy of the
193 original type's TYPE_MAIN_VARIANT, then reapply all the differences
194 between the original type and its main variant.
196 2020-05-14 Richard Biener <rguenther@suse.de>
199 * real.c (real_to_decimal_for_mode): Make sure we handle
200 a zero with nonzero exponent.
202 2020-05-14 Jakub Jelinek <jakub@redhat.com>
204 * Makefile.in (GTFILES): Add omp-general.c.
205 * cgraph.h (struct cgraph_node): Add declare_variant_alt and
206 calls_declare_variant_alt members and initialize them in the
208 * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct
209 calls to declare_variant_alt nodes.
210 * lto-cgraph.c (lto_output_node): Write declare_variant_alt
211 and calls_declare_variant_alt.
212 (input_overwrite_node): Read them back.
213 * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt
215 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
217 (tree_function_versioning): Copy calls_declare_variant_alt bit.
218 * omp-offload.c (execute_omp_device_lower): Call
219 omp_resolve_declare_variant on direct function calls.
220 (pass_omp_device_lower::gate): Also enable for
221 calls_declare_variant_alt functions.
222 * omp-general.c (omp_maybe_offloaded): Return false after inlining.
223 (omp_context_selector_matches): Handle the case when
224 cfun->curr_properties has PROP_gimple_any bit set.
225 (struct omp_declare_variant_entry): New type.
226 (struct omp_declare_variant_base_entry): New type.
227 (struct omp_declare_variant_hasher): New type.
228 (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal):
230 (omp_declare_variants): New variable.
231 (struct omp_declare_variant_alt_hasher): New type.
232 (omp_declare_variant_alt_hasher::hash,
233 omp_declare_variant_alt_hasher::equal): New methods.
234 (omp_declare_variant_alt): New variables.
235 (omp_resolve_late_declare_variant): New function.
236 (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant
237 when called late. Create a magic declare_variant_alt fndecl and
238 cgraph node and return that if decision needs to be deferred until
239 after gimplification.
240 * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt
244 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
245 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
246 entry block if info->after_stmt is NULL, otherwise add after that stmt
247 and update it after adding each stmt.
248 (ipa_simd_modify_function_body): Initialize info.after_stmt.
250 * function.h (struct function): Add has_omp_target bit.
251 * omp-offload.c (omp_discover_declare_target_fn_r): New function,
253 (omp_discover_declare_target_tgt_fn_r): ... this.
254 (omp_discover_declare_target_var_r): Call
255 omp_discover_declare_target_tgt_fn_r instead of
256 omp_discover_declare_target_fn_r.
257 (omp_discover_implicit_declare_target): Also queue functions with
258 has_omp_target bit set, for those walk with
259 omp_discover_declare_target_fn_r, for declare target to functions
260 walk with omp_discover_declare_target_tgt_fn_r.
262 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
265 * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id.
266 Add SSE/AVX alternative. Change operand predicates from
267 nonimmediate_operand to register_mmxmem_operand.
268 Enable instruction pattern for TARGET_MMX_WITH_SSE.
269 (fix_truncv2sfv2si2): New expander.
270 (fixuns_truncv2sfv2si2): New insn pattern.
272 (mmx_floatv2siv2sf2): rename from mmx_floatv2si2.
273 Add SSE/AVX alternative. Change operand predicates from
274 nonimmediate_operand to register_mmxmem_operand.
275 Enable instruction pattern for TARGET_MMX_WITH_SSE.
276 (floatv2siv2sf2): New expander.
277 (floatunsv2siv2sf2): New insn pattern.
279 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
281 (IX86_BUILTIN_PI2FD): Ditto.
283 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
285 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
287 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
290 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
292 * config/s390/s390.c (allocate_stack_space): Add missing updates
293 of last_probe_offset.
295 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
297 * config/s390/s390.md ("allocate_stack"): Call
298 anti_adjust_stack_and_probe_stack_clash when stack clash
299 protection is enabled.
300 * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove
301 prototype. Remove static.
302 * explow.h (anti_adjust_stack_and_probe_stack_clash): Add
305 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
307 * config/rs6000/altivec.h (vec_extractl): New #define.
308 (vec_extracth): Likewise.
309 * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.
310 (UNSPEC_EXTRACTR): Likewise.
311 (vextractl<mode>): New expansion.
312 (vextractl<mode>_internal): New insn.
313 (vextractr<mode>): New expansion.
314 (vextractr<mode>_internal): New insn.
315 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx):
316 New built-in function.
317 (__builtin_altivec_vextduhvlx): Likewise.
318 (__builtin_altivec_vextduwvlx): Likewise.
319 (__builtin_altivec_vextddvlx): Likewise.
320 (__builtin_altivec_vextdubvhx): Likewise.
321 (__builtin_altivec_vextduhvhx): Likewise.
322 (__builtin_altivec_vextduwvhx): Likewise.
323 (__builtin_altivec_vextddvhx): Likewise.
324 (__builtin_vec_extractl): New overloaded built-in function.
325 (__builtin_vec_extracth): Likewise.
326 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
327 Define overloaded forms of __builtin_vec_extractl and
328 __builtin_vec_extracth.
329 (builtin_function_type): Add cases to mark arguments of new
330 built-in functions as unsigned.
331 (rs6000_common_init_builtins): Add
332 opaque_ftype_opaque_opaque_opaque_opaque.
333 * config/rs6000/rs6000.md (du_or_d): New mode attribute.
334 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
335 for a Future Architecture): Add description of vec_extractl and
336 vec_extractr built-in functions.
338 2020-05-13 Richard Biener <rguenther@suse.de>
340 * target.def (add_stmt_cost): Add new vectype parameter.
341 * targhooks.c (default_add_stmt_cost): Adjust.
342 * targhooks.h (default_add_stmt_cost): Likewise.
343 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new
345 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
346 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
347 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
349 * tree-vectorizer.h (stmt_info_for_cost::vectype): Add.
350 (dump_stmt_cost): Add new vectype parameter.
351 (add_stmt_cost): Likewise.
352 (record_stmt_cost): Likewise.
353 (record_stmt_cost): Add overload with old signature.
354 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
356 (vect_get_known_peeling_cost): Likewise.
357 (vect_estimate_min_profitable_iters): Likewise.
358 * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter.
359 * tree-vect-stmts.c (record_stmt_cost): Likewise.
360 (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter
361 and pass down correct vectype and NULL stmt_info.
362 (vect_model_simple_cost): Adjust.
363 (vect_model_store_cost): Likewise.
365 2020-05-13 Richard Biener <rguenther@suse.de>
367 * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove.
368 (_slp_instance::group_size): Likewise.
369 * tree-vect-loop.c (vectorizable_reduction): The group size
370 is the number of lanes in the node.
371 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
372 (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE,
373 verify it matches the instance trees number of lanes.
374 (vect_slp_analyze_node_operations_1): Use the numer of lanes
375 in the node as group size.
376 (vect_bb_vectorization_profitable_p): Use the instance root
377 number of lanes for the size of life.
378 (vect_schedule_slp_instance): Use the number of lanes as
380 * tree-vect-stmts.c (vectorizable_load): Remove SLP instance
381 parameter. Use the number of lanes of the load for the group
382 size in the gap adjustment code.
383 (vect_analyze_stmt): Adjust.
384 (vect_transform_stmt): Likewise.
386 2020-05-13 Jakub Jelinek <jakub@redhat.com>
389 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
390 if the last insn is a note.
392 PR tree-optimization/95060
393 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR
394 if it is the single use of the FMA internal builtin.
396 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com>
398 PR tree-optimization/94969
399 * tree-data-dependence.c (constant_access_functions): Rename to...
400 (invariant_access_functions): ...this. Add parameter. Check for
401 invariant access function, rather than constant.
402 (build_classic_dist_vector): Call above function.
403 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
405 2020-05-13 Hongtao Liu <hongtao.liu@intel.com>
408 * doc/extend.texi (x86Operandmodifiers): Document more x86
410 * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
412 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br>
414 * tree-vrp.c (class vrp_insert): New.
415 (insert_range_assertions): Move to class vrp_insert.
416 (dump_all_asserts): Same as above.
417 (dump_asserts_for): Same as above.
418 (live): Same as above.
419 (need_assert_for): Same as above.
420 (live_on_edge): Same as above.
421 (finish_register_edge_assert_for): Same as above.
422 (find_switch_asserts): Same as above.
423 (find_assert_locations): Same as above.
424 (find_assert_locations_1): Same as above.
425 (find_conditional_asserts): Same as above.
426 (process_assert_insertions): Same as above.
427 (register_new_assert_for): Same as above.
428 (vrp_prop): New variable fun.
429 (vrp_initialize): New parameter.
430 (identify_jump_threads): Same as above.
431 (execute_vrp): Same as above.
434 2020-05-12 Keith Packard <keith.packard@sifive.com>
436 * config/riscv/riscv.c (riscv_unique_section): New.
437 (TARGET_ASM_UNIQUE_SECTION): New.
439 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com>
441 * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv.
442 * config/riscv/riscv-passes.def: New file.
443 * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare.
444 * config/riscv/riscv-shorten-memrefs.c: New file.
445 * config/riscv/riscv.c (tree-pass.h): New include.
446 (riscv_compressed_reg_p): New Function
447 (riscv_compressed_lw_offset_p): Likewise.
448 (riscv_compressed_lw_address_p): Likewise.
449 (riscv_shorten_lw_offset): Likewise.
450 (riscv_legitimize_address): Attempt to convert base + large_offset
451 to compressible new_base + small_offset.
452 (riscv_address_cost): Make anticipated compressed load/stores
453 cheaper for code size than uncompressed load/stores.
454 (riscv_register_priority): Move compressed register check to
455 riscv_compressed_reg_p.
456 * config/riscv/riscv.h (C_S_BITS): Define.
457 (CSW_MAX_OFFSET): Define.
458 * config/riscv/riscv.opt (mshorten-memefs): New option.
459 * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule.
460 (PASSES_EXTRA): Add riscv-passes.def.
461 * doc/invoke.texi: Document -mshorten-memrefs.
463 * config/riscv/riscv.c (riscv_new_address_profitable_p): New function.
464 (TARGET_NEW_ADDRESS_PROFITABLE_P): Define.
465 * doc/tm.texi: Regenerate.
466 * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook.
467 * sched-deps.c (attempt_change): Use old address if it is cheaper than
469 * target.def (new_address_profitable_p): New hook.
470 * targhooks.c (default_new_address_profitable_p): New function.
471 * targhooks.h (default_new_address_profitable_p): Declare.
473 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
476 * config/i386/mmx.md (copysignv2sf3): New expander.
477 (xorsignv2sf3): Ditto.
478 (signbitv2sf3): Ditto.
480 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
483 * config/i386/mmx.md (fmav2sf4): New insn pattern.
488 2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
490 * Makefile.in (CET_HOST_FLAGS): New.
491 (COMPILER): Add $(CET_HOST_FLAGS).
492 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
493 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't
495 * aclocal.m4: Regenerated.
496 * configure: Likewise.
498 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
501 * config/i386/mmx.md (<code>v2sf2): New insn pattern.
502 (*mmx_<code>v2sf2): New insn_and_split pattern.
503 (*mmx_nabsv2sf2): Ditto.
504 (*mmx_andnotv2sf3): New insn pattern.
505 (*mmx_<code>v2sf3): Ditto.
506 * config/i386/i386.md (absneg_op): New code attribute.
507 * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode.
508 (ix86_build_signbit_mask): Ditto.
510 2020-05-12 Richard Biener <rguenther@suse.de>
512 * tree-ssa-live.c (remove_unused_locals): Remove dead debug
515 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
517 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
518 Update prototype to include "local" argument.
519 * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add
520 "local" argument. Handle local common decls.
521 * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust
522 msp430_output_aligned_decl_common call with 0 for "local" argument.
523 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
525 2020-05-12 Richard Biener <rguenther@suse.de>
527 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
529 2020-05-12 Martin Liska <mliska@suse.cz>
533 * sanopt.c (sanitize_rewrite_addressable_params):
534 Clear DECL_NOT_GIMPLE_REG_P for argument.
536 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
538 PR tree-optimization/94980
539 * tree-vect-generic.c (expand_vector_comparison): Use
540 vector_element_bits_tree to get the element size in bits,
541 rather than using TYPE_SIZE.
542 (expand_vector_condition, vector_element): Likewise.
544 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
546 PR tree-optimization/94980
547 * tree-vect-generic.c (build_replicated_const): Take the number
548 of bits as a parameter, instead of the type of the elements.
549 (do_plus_minus): Update accordingly, using vector_element_bits
550 to calculate the correct number of bits.
551 (do_negate): Likewise.
553 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
555 PR tree-optimization/94980
556 * tree.h (vector_element_bits, vector_element_bits_tree): Declare.
557 * tree.c (vector_element_bits, vector_element_bits_tree): New.
558 * match.pd: Use the new functions instead of determining the
559 vector element size directly from TYPE_SIZE(_UNIT).
560 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
561 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
562 * tree-vect-stmts.c (vect_is_simple_cond): Likewise.
563 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
564 (expand_vector_conversion): Likewise.
565 (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as
566 a divisor. Convert the dividend to bits to compensate.
567 * tree-vect-loop.c (vectorizable_live_operation): Call
568 vector_element_bits instead of open-coding it.
570 2020-05-12 Jakub Jelinek <jakub@redhat.com>
572 * omp-offload.h (omp_discover_implicit_declare_target): Declare.
573 * omp-offload.c: Include context.h.
574 (omp_declare_target_fn_p, omp_declare_target_var_p,
575 omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
576 omp_discover_implicit_declare_target): New functions.
577 * cgraphunit.c (analyze_functions): Call
578 omp_discover_implicit_declare_target.
580 2020-05-12 Richard Biener <rguenther@suse.de>
582 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
583 literal constant &MEM[..] to a constant literal.
585 2020-05-12 Richard Biener <rguenther@suse.de>
587 PR tree-optimization/95045
588 * dbgcnt.def (lim): Add debug-counter.
589 * tree-ssa-loop-im.c: Include dbgcnt.h.
590 (find_refs_for_sm): Use lim debug counter for store motion
592 (do_store_motion): Rename form store_motion. Commit edge
594 (store_motion_loop): ... here.
595 (tree_ssa_lim): Adjust.
597 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
599 * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm.
600 (vec_ctzm): Rename to vec_cnttzm.
601 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
602 Change fourth operand for vec_ternarylogic to require
603 compatibility with unsigned SImode rather than unsigned QImode.
604 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
605 Remove overloaded forms of vec_gnb that are no longer needed.
606 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
607 for a Future Architecture): Replace vec_clzm with vec_cntlzm;
608 replace vec_ctzm with vec_cntlzm; remove four unwanted forms of
609 vec_gnb; move vec_ternarylogic documentation into this section
610 and replace const unsigned char with const unsigned int as its
613 2020-05-11 Carl Love <cel@us.ibm.com>
615 * config/rs6000/altivec.h (vec_genpcvm): New #define.
616 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
618 (XXGENPCVM_V8HI): Likewise.
619 (XXGENPCVM_V4SI): Likewise.
620 (XXGENPCVM_V2DI): Likewise.
621 (XXGENPCVM): New overloaded built-in instantiation.
622 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
623 entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
624 (altivec_expand_builtin): Add special handling for
625 FUTURE_BUILTIN_VEC_XXGENPCVM.
626 (builtin_function_type): Add handling for
627 FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
628 * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
629 (UNSPEC_XXGENPCV): New constant.
630 (xxgenpcvm_<mode>_internal): New insn.
631 (xxgenpcvm_<mode>): New expansion.
632 * doc/extend.texi: Add documentation for vec_genpcvm built-ins.
634 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
636 * config/rs6000/altivec.h (vec_strir): New #define.
637 (vec_stril): Likewise.
638 (vec_strir_p): Likewise.
639 (vec_stril_p): Likewise.
640 * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant.
641 (UNSPEC_VSTRIL): Likewise.
642 (vstrir_<mode>): New expansion.
643 (vstrir_code_<mode>): New insn.
644 (vstrir_p_<mode>): New expansion.
645 (vstrir_p_code_<mode>): New insn.
646 (vstril_<mode>): New expansion.
647 (vstril_code_<mode>): New insn.
648 (vstril_p_<mode>): New expansion.
649 (vstril_p_code_<mode>): New insn.
650 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr):
651 New built-in function.
652 (__builtin_altivec_vstrihr): Likewise.
653 (__builtin_altivec_vstribl): Likewise.
654 (__builtin_altivec_vstrihl): Likewise.
655 (__builtin_altivec_vstribr_p): Likewise.
656 (__builtin_altivec_vstrihr_p): Likewise.
657 (__builtin_altivec_vstribl_p): Likewise.
658 (__builtin_altivec_vstrihl_p): Likewise.
659 (__builtin_vec_strir): New overloaded built-in function.
660 (__builtin_vec_stril): Likewise.
661 (__builtin_vec_strir_p): Likewise.
662 (__builtin_vec_stril_p): Likewise.
663 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
664 Define overloaded forms of __builtin_vec_strir,
665 __builtin_vec_stril, __builtin_vec_strir_p, and
666 __builtin_vec_stril_p.
667 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
668 for a Future Architecture): Add description of vec_stril,
669 vec_stril_p, vec_strir, and vec_strir_p built-in functions.
671 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com>
673 * config/rs6000/altivec.h (vec_ternarylogic): New #define.
674 * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant.
676 * config/rs6000/predicates.md (u8bit_cint_operand): New predicate.
677 * config/rs6000/rs6000-builtin.def: Add handling of new macro
679 (BU_FUTURE_V_4): New macro. Use it.
680 (BU_FUTURE_OVERLOAD_4): Likewise.
681 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add
682 handling for quaternary built-in functions.
683 (altivec_resolve_overloaded_builtin): Add special-case handling
684 for __builtin_vec_xxeval.
685 * config/rs6000/rs6000-call.c: Add handling of new macro
686 RS6000_BUILTIN_4 in initialization of rs6000_builtin_info,
687 bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg,
688 bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays.
689 (altivec_overloaded_builtins): Add definitions for
690 FUTURE_BUILTIN_VEC_XXEVAL.
691 (bdesc_4arg): New array.
692 (htm_expand_builtin): Add handling for quaternary built-in
694 (rs6000_expand_quaternop_builtin): New function.
695 (rs6000_expand_builtin): Add handling for quaternary built-in
697 (rs6000_init_builtins): Initialize builtin_mode_to_type entries
698 for unsigned QImode and unsigned HImode.
699 (builtin_quaternary_function_type): New function.
700 (rs6000_common_init_builtins): Add handling of quaternary
702 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
704 (RS6000_BTC_PREDICATE): Change value of constant.
705 (RS6000_BTC_ABS): Likewise.
706 (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4.
707 * doc/extend.texi (PowerPC AltiVec Built-In Functions Available
708 for a Future Architecture): Add description of vec_ternarylogic
711 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
713 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
715 (__builtin_pextd): Likewise.
716 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
717 (UNSPEC_PEXTD): Likewise.
720 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
721 a Future Architecture): Add descriptions of __builtin_pdepd and
722 __builtin_pextd functions.
724 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
726 * config/rs6000/altivec.h (vec_clrl): New #define.
727 (vec_clrr): Likewise.
728 * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant.
729 (UNSPEC_VCLRRB): Likewise.
732 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New
734 (__builtin_altivec_vclrrb): Likewise.
735 (__builtin_vec_clrl): New overloaded built-in function.
736 (__builtin_vec_clrr): Likewise.
737 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
738 Define overloaded forms of __builtin_vec_clrl and
740 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
741 for a Future Architecture): Add descriptions of vec_clrl and
744 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
746 * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
747 built-in function definition.
748 (__builtin_cnttzdm): Likewise.
749 * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
750 (UNSPEC_CNTTZDM): Likewise.
753 * doc/extend.texi (Basic PowerPC Built-in Functions available for
754 a Future Architecture): Add descriptions of __builtin_cntlzdm and
755 __builtin_cnttzdm functions.
757 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
760 * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
762 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
764 * config/rs6000/altivec.h (vec_cfuge): New #define.
765 * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant.
767 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged):
768 New built-in function.
769 * config/rs6000/rs6000-call.c (builtin_function_type): Add
770 handling for FUTURE_BUILTIN_VCFUGED case.
771 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
772 for a Future Architecture): Add description of vec_cfuge built-in
775 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
777 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
779 (BU_FUTURE_MISC_1): Likewise.
780 (BU_FUTURE_MISC_2): Likewise.
781 (BU_FUTURE_MISC_3): Likewise.
782 (__builtin_cfuged): New built-in function definition.
783 * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant.
785 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
786 a Future Architecture): New subsubsection.
788 2020-05-11 Richard Biener <rguenther@suse.de>
790 PR tree-optimization/95049
791 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
792 between different constants.
794 2020-05-11 Richard Sandiford <richard.sandiford@arm.com>
796 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
798 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
799 Bill Schmidt <wschmidt@linux.ibm.com>
801 * config/rs6000/altivec.h (vec_gnb): New #define.
802 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
804 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
806 (BU_FUTURE_OVERLOAD_2): Likewise.
807 (BU_FUTURE_OVERLOAD_3): Likewise.
808 (__builtin_altivec_gnb): New built-in function.
809 (__buiiltin_vec_gnb): New overloaded built-in function.
810 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
811 Define overloaded forms of __builtin_vec_gnb.
812 (rs6000_expand_binop_builtin): Add error checking for 2nd argument
813 of __builtin_vec_gnb.
814 (builtin_function_type): Mark return value and arguments unsigned
815 for FUTURE_BUILTIN_VGNB.
816 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
817 for a Future Architecture): Add description of vec_gnb built-in
820 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
821 Bill Schmidt <wschmidt@linux.ibm.com>
823 * config/rs6000/altivec.h (vec_pdep): New macro implementing new
825 (vec_pext): Likewise.
826 * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant.
827 (UNSPEC_VPEXTD): Likewise.
830 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New
832 (__builtin_altivec_vpextd): Likewise.
833 * config/rs6000/rs6000-call.c (builtin_function_type): Add
834 handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD
836 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
837 for a Future Architecture): Add description of vec_pdep and
838 vec_pext built-in functions.
840 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
841 Bill Schmidt <wschmidt@linux.ibm.com>
843 * config/rs6000/altivec.h (vec_clzm): New macro.
844 (vec_ctzm): Likewise.
845 * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant.
846 (UNSPEC_VCTZDM): Likewise.
849 * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro.
850 (BU_FUTURE_V_1): Likewise.
851 (BU_FUTURE_V_2): Likewise.
852 (BU_FUTURE_V_3): Likewise.
853 (__builtin_altivec_vclzdm): New builtin definition.
854 (__builtin_altivec_vctzdm): Likewise.
855 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause
856 _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is
858 * config/rs6000/rs6000-call.c (builtin_function_type): Set return
859 value and parameter types to be unsigned for VCLZDM and VCTZDM.
860 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
861 support for TARGET_FUTURE flag.
862 * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant.
863 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
864 for a Future Architecture): New subsubsection.
866 2020-05-11 Richard Biener <rguenther@suse.de>
868 PR tree-optimization/94988
869 PR tree-optimization/95025
870 * tree-ssa-loop-im.c (seq_entry): Make a struct, add from.
871 (sm_seq_push_down): Take extra parameter denoting where we
873 (execute_sm_exit): Re-issue sm_other stores in the correct
875 (sm_seq_valid_bb): When always executed, allow sm_other to
876 prevail inbetween sm_ord and record their stored value.
877 (hoist_memory_references): Adjust refs_not_supported propagation
878 and prune sm_other from the end of the ordered sequences.
880 2020-05-11 Felix Yang <felix.yang@huawei.com>
883 * config/aarch64/aarch64.md (mov<mode>):
884 Bitcasts to the equivalent integer mode using gen_lowpart
885 instead of doing FAIL for scalar floating point move.
887 2020-05-11 Alex Coplan <alex.coplan@arm.com>
889 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case
890 to correctly calculate cost for new pattern (*csinv3_uxtw_insn3).
891 * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New.
892 (*csinv3_uxtw_insn2): New.
893 (*csinv3_uxtw_insn3): New.
894 * config/aarch64/iterators.md (neg_not_cs): New.
896 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
899 * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint
900 instead of "Yv" for AVX alternatives. Add "prefix" attribute.
901 (*mmx_addv2sf3): Ditto.
902 (*mmx_subv2sf3): Ditto.
903 (*mmx_mulv2sf3): Ditto.
904 (*mmx_<code>v2sf3): Ditto.
905 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
907 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
910 * config/i386/i386.c (ix86_vector_mode_supported_p):
911 Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE.
912 * config/i386/mmx.md (*mov<mode>_internal): Do not set
913 mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE.
915 (mmx_addv2sf3): Change operand predicates from
916 nonimmediate_operand to register_mmxmem_operand.
917 (addv2sf3): New expander.
918 (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand
919 predicates from nonimmediate_operand to register_mmxmem_operand.
920 Enable instruction pattern for TARGET_MMX_WITH_SSE.
922 (mmx_subv2sf3): Change operand predicate from
923 nonimmediate_operand to register_mmxmem_operand.
924 (mmx_subrv2sf3): Ditto.
925 (subv2sf3): New expander.
926 (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand
927 predicates from nonimmediate_operand to register_mmxmem_operand.
928 Enable instruction pattern for TARGET_MMX_WITH_SSE.
930 (mmx_mulv2sf3): Change operand predicates from
931 nonimmediate_operand to register_mmxmem_operand.
932 (mulv2sf3): New expander.
933 (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand
934 predicates from nonimmediate_operand to register_mmxmem_operand.
935 Enable instruction pattern for TARGET_MMX_WITH_SSE.
937 (mmx_<code>v2sf3): Change operand predicates from
938 nonimmediate_operand to register_mmxmem_operand.
939 (<code>v2sf3): New expander.
940 (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand
941 predicates from nonimmediate_operand to register_mmxmem_operand.
942 Enable instruction pattern for TARGET_MMX_WITH_SSE.
943 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
945 2020-05-11 Martin Liska <mliska@suse.cz>
948 * common.opt: Fix typo in option description.
950 2020-05-11 Martin Liska <mliska@suse.cz>
952 PR gcov-profile/94928
953 * gcov-io.h: Add caveat about coverage format parsing and
954 possible outdated documentation.
956 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com>
958 PR tree-optimization/83403
959 * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with
960 determine_value_range, Add fold conversion of MULT_EXPR, fix the
963 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com>
965 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
966 __ILP32__ for 32-bit targets.
968 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
970 * tree.h (expr_align): Delete.
971 * tree.c (expr_align): Likewise.
973 2020-05-09 Hans-Peter Nilsson <hp@axis.com>
975 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM
976 from end_of_function_needs.
978 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*.
979 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt:
981 * config/cris/t-elfmulti: Remove crisv32 multilib.
982 * config/cris: Remove shared-library and CRIS v32 support.
984 Move trivially from cc0 to reg:CC model, removing most optimizations.
985 * config/cris/cris.md: Remove all side-effect patterns and their
986 splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM
987 to all but post-reload control-flow and movem insns. Remove
988 constraints on all modified expanders. Remove obsoleted cc0-related
990 (attr "cc"): Remove alternative "rev".
991 (mode_iterator BWDD, DI_, SI_): New.
992 (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New.
993 ("tst<mode>"): Remove; fold as "M" alternative into compare insn.
994 ("mstep_shift", "mstep_mul"): Remove patterns.
995 ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize.
996 * config/cris/cris.c: Change all non-condition-code,
997 non-control-flow emitted insns to add a parallel with clobber of
998 CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with
999 emit_insn to use of emit_move_insn, gen_add2_insn or
1000 cris_emit_insn, as convenient.
1001 (cris_reg_overlap_mentioned_p)
1002 (cris_normal_notice_update_cc, cris_notice_update_cc): Remove.
1003 (cris_movem_load_rest_p): Don't assume all elements in a
1005 (cris_store_multiple_op_p): Ditto.
1006 (cris_emit_insn): New function.
1007 * cris/cris-protos.h (cris_emit_insn): Declare.
1010 * config/cris/cris.md (zcond): New code_iterator.
1011 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split.
1013 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define.
1015 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true.
1017 * config/cris/cris.md ("movsi"): For memory destination
1018 post-reload, generate clobberless variant. Similarly for a
1019 zero-source post-reload.
1020 ("*mov_tomem<mode>_split"): New split.
1021 ("*mov_tomem<mode>"): New insn.
1022 ("enabled", mov_tomem_enabled): Define and use to exclude "x" ->
1023 "Q>m" for less-than-SImode.
1024 ("*mov_fromzero<mode>_split"): New split.
1025 ("*mov_fromzero<mode>"): New insn.
1027 Prepare for cmpelim pass to eliminate redundant compare insns.
1028 * config/cris/cris-modes.def: New file.
1029 * config/cris/cris-protos.h (cris_select_cc_mode): Declare.
1030 (cris_notice_update_cc): Remove left-over declaration.
1031 * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define.
1032 (cris_select_cc_mode, cris_cc_modes_compatible): New functions.
1033 * config/cris/cris.h (SELECT_CC_MODE): Define.
1034 * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New
1036 (cond): New code_iterator.
1037 (nzcond): Replacement for incorrect ncond. All callers changed.
1038 (nzvccond): Replacement for ocond. All callers changed.
1039 (rnzcond): Replacement for rcond. All callers changed.
1040 (xCC): New code_attr.
1041 (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All
1043 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace
1044 CCmode with iteration over NZVCSET.
1045 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from
1047 ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi".
1048 ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>".
1049 ("*btst<mode>"): Similarly, from "*btst".
1050 ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4",
1051 iterating over cond instead of matching the comparison with
1052 ordered_comparison_operator.
1053 ("*cbranch<mode>4_btstq<CC>"): Correct label operand number.
1054 ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating
1056 ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over
1057 NZVCUSE. Remove FIXME.
1058 ("*b<nzcond:code>_reversed<mode>"): Similarly from
1059 "*b<ncond:code>_reversed", over NZUSE.
1060 ("*b<nzvccond:code>_reversed<mode>"): Similarly from
1061 "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME.
1062 ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>",
1063 over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
1064 depending on CC_NZmode vs. CCmode. Remove FIXME.
1065 ("*b<rnzcond:code>_reversed<mode>"): Similarly from
1066 "*b<rcond:code>_reversed", over NZUSE.
1067 ("*cstore<mode><code>4"): Rename from "*cstore<mode>4",
1068 iterating over cond instead of matching the comparison with
1069 ordered_comparison_operator.
1070 ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>",
1071 iterating over NZUSE.
1072 ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over
1073 NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
1074 depending on CC_NZmode vs. CCmode.
1075 ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over
1076 NZVCUSE. Remove FIXME.
1077 ("cc"): Comment on new use.
1078 ("cc_enabled"): New attribute.
1079 ("enabled"): Make default fall back to cc_enabled.
1080 ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New
1081 default_subst_attrs.
1082 ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst.
1083 ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from
1084 "*movsi_internal". Correct contents of, and rename attribute
1085 "cc" to "cc<cccc><ccnz><ccnzvc>".
1086 ("anz", "anzvc", "acc"): New define_subst_attrs.
1087 ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
1088 "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
1089 ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
1090 "movqi". Correct contents of, and rename "cc" attribute to
1091 "cc<cccc><ccnz><ccnzvc>".
1092 ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
1093 ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
1094 ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".
1095 ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"):
1096 Rename from "extend<mode>si2".
1097 ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"):
1098 Similar, from "zero_extend<mode>si2".
1099 ("*adddi3<setnz>"): Rename from "*adddi3".
1100 ("*subdi3<setnz>"): Similarly from "*subdi3".
1101 ("*addsi3<setnz>"): Similarly from "*addsi3".
1102 ("*subsi3<setnz>"): Similarly from "*subsi3".
1103 ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the
1104 "cc" attribute to "cc<ccnz>".
1105 ("*addqi3<setnz>"): Similarly from "*addqi3".
1106 ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3".
1107 ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from
1109 ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3".
1110 Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>".
1111 ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3".
1112 ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3".
1113 ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from
1114 "*expanded_andhi". Add quick cc-setting alternative for 0..31.
1115 ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3".
1116 ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename
1118 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename
1120 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename
1122 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename
1124 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename
1126 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
1128 * config/cris/cris-modes.def (CC_ZnN): New CC_MODE.
1129 * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test
1130 * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators.
1131 (znnCC, rznnCC): New code_attrs.
1132 ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove
1133 obseolete comment. Add belt-and-suspenders mode-test to condition.
1134 Add fixme regarding remaining matched-but-not-generated case.
1135 ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split.
1136 ("*cbranch<mode>4_btstqb0_<CC>"): Rename from
1137 "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC.
1138 ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE.
1139 Handle output of CC_ZnNmode.
1140 ("*b<nzcond:code>_reversed<mode>"): Ditto.
1142 * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for
1143 NEG too. Correct comment.
1144 * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from
1147 2020-05-08 Vladimir Makarov <vmakarov@redhat.com>
1149 * ira-color.c (update_costs_from_allocno): Remove
1150 conflict_cost_update_p argument. Propagate costs only along
1151 threads. Always do conflict cost update. Add printing debugging
1153 (update_costs_from_copies): Add printing debugging info.
1154 (restore_costs_from_copies): Ditto.
1155 (assign_hard_reg): Improve debug info.
1156 (push_only_colorable): Ditto. Call update_costs_from_prefs.
1157 (color_allocnos): Remove update_costs_from_prefs.
1159 2020-05-08 Richard Biener <rguenther@suse.de>
1161 * tree-vectorizer.h (vec_info::slp_loads): New.
1162 (vect_optimize_slp): Declare.
1163 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
1164 nothing when there are no loads.
1165 (vect_gather_slp_loads): Gather loads into a vector.
1166 (vect_supported_load_permutation_p): Remove.
1167 (vect_analyze_slp_instance): Do not verify permutation
1169 (vect_analyze_slp): Optimize permutations of reductions
1170 after all SLP instances have been gathered and gather
1172 (vect_optimize_slp): New function split out from
1173 vect_supported_load_permutation_p. Elide some permutations.
1174 (vect_slp_analyze_bb_1): Call vect_optimize_slp.
1175 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
1176 * tree-vect-stmts.c (vectorizable_load): Check whether
1177 the load can be permuted. When generating code assert we can.
1179 2020-05-08 Richard Biener <rguenther@suse.de>
1181 * tree-ssa-sccvn.c (rpo_avail): Change type to
1182 eliminate_dom_walker *.
1183 (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize
1184 use the DOM walker availability.
1185 (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1
1186 with vn_valueize as valueization callback.
1187 (vn_reference_maybe_forwprop_address): Likewise.
1188 * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize
1189 array_ref_low_bound.
1191 2020-05-08 Jakub Jelinek <jakub@redhat.com>
1193 PR tree-optimization/94786
1194 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New
1198 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New
1202 * tree.c (get_narrower): Reuse the op temporary instead of
1205 PR tree-optimization/94783
1206 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)):
1209 PR tree-optimization/94956
1210 * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into
1211 __builtin_ctz* + 1 if direct IFN_CTZ is supported.
1213 PR tree-optimization/94913
1214 * match.pd (A - B + -1 >= A to B >= A): New simplification.
1215 (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always
1216 true for TYPE_UNSIGNED integral types.
1219 PR rtl-optimization/94516
1220 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted
1222 * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument.
1223 Call df_notes_rescan if that argument is not true and returning true.
1224 * combine.c (adjust_for_new_dest): Pass true as second argument to
1225 remove_reg_equal_equiv_notes.
1226 * postreload.c (reload_combine_recognize_pattern): Don't call
1229 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
1231 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New
1233 (*setnbcr_<un>signed_<GPR:mode>): New define_insn.
1234 (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1.
1235 (*neg_ne_<mode>): Likewise.
1237 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
1239 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New
1241 (*setbcr_<un>signed_<GPR:mode>): Likewise.
1242 (cstore<mode>4): Use setbc[r] if available.
1243 (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE.
1244 (eq<mode>3): Use setbc for TARGET_FUTURE.
1245 (*eq<mode>3): Avoid for TARGET_FUTURE.
1246 (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE;
1247 else for non-Pmode, use gen_eq and gen_xor.
1248 (*ne<mode>3): Avoid for TARGET_FUTURE.
1249 (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1.
1251 2020-05-07 Jeff Law <law@redhat.com>
1253 * config/h8300/h8300.md: Move expanders and patterns into
1254 files based on functionality.
1255 * config/h8300/addsub.md: New file.
1256 * config/h8300/bitfield.md: New file
1257 * config/h8300/combiner.md: New file
1258 * config/h8300/divmod.md: New file
1259 * config/h8300/extensions.md: New file
1260 * config/h8300/jumpcall.md: New file
1261 * config/h8300/logical.md: New file
1262 * config/h8300/movepush.md: New file
1263 * config/h8300/multiply.md: New file
1264 * config/h8300/other.md: New file
1265 * config/h8300/proepi.md: New file
1266 * config/h8300/shiftrotate.md: New file
1267 * config/h8300/testcompare.md: New file
1269 * config/h8300/h8300.md (adds/subs splitters): Merge into single
1271 (negation expanders and patterns): Simplify and combine using
1273 (one_cmpl expanders and patterns): Likewise.
1274 (tablejump, indirect_jump patterns ): Likewise.
1275 (shift and rotate expanders and patterns): Likewise.
1276 (absolute value expander and pattern): Drop expander, rename pattern
1278 (peephole2 patterns): Move into...
1279 * config/h8300/peepholes.md: New file.
1281 * config/h8300/constraints.md (L and N): Simplify now that we're not
1282 longer supporting the original H8/300 chip.
1283 * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H.
1284 * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support.
1285 (shift_alg_hi, shift_alg_si): Similarly.
1286 (h8300_option_overrides): Similarly. Default to H8/300H. If
1287 compiling for H8/S, then turn off H8/300H. Do not update the
1288 shift_alg tables for H8/300 port.
1289 (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify
1291 (push, split_adds_subs, h8300_rtx_costs): Likewise.
1292 (h8300_print_operand, compute_mov_length): Likewise.
1293 (output_plussi, compute_plussi_length): Likewise.
1294 (compute_plussi_cc, output_logical_op): Likewise.
1295 (compute_logical_op_length, compute_logical_op_cc): Likewise.
1296 (get_shift_alg, h8300_shift_needs_scratch): Likewise.
1297 (output_a_shift, compute_a_shift_length): Likewise.
1298 (output_a_rotate, compute_a_rotate_length): Likewise.
1299 (output_simode_bld, h8300_hard_regno_mode_ok): Likewise.
1300 (h8300_modes_tieable_p, h8300_return_in_memory): Likewise.
1301 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1302 (attr_cpu, TARGET_H8300): Remove.
1303 (TARGET_DEFAULT): Update.
1304 (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible.
1305 (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise.
1306 (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise.
1307 (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise.
1308 * config/h8300/h8300.md: Simplify patterns throughout.
1309 * config/h8300/t-h8300: Update multilib configuration.
1311 * config/h8300/h8300.h (LINK_SPEC): Remove.
1312 (USER_LABEL_PREFIX): Likewise.
1314 * config/h8300/h8300.c (h8300_asm_named_section): Remove.
1315 (h8300_option_override): Remove remnants of COFF support.
1317 2020-05-07 Alan Modra <amodra@gmail.com>
1319 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace
1320 set_rtx_cost with set_src_cost.
1321 * tree-switch-conversion.c (bit_test_cluster::emit): Likewise.
1323 2020-05-07 Kewen Lin <linkw@gcc.gnu.org>
1325 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid
1326 redundant half vector handlings for no peeling gaps.
1328 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br>
1330 * tree-ssa-operands.c (operands_scanner): New class.
1331 (operands_bitmap_obstack): Remove.
1332 (n_initialized): Remove.
1333 (build_uses): Move to operands_scanner class.
1334 (build_vuse): Same as above.
1335 (build_vdef): Same as above.
1336 (verify_ssa_operands): Same as above.
1337 (finalize_ssa_uses): Same as above.
1338 (cleanup_build_arrays): Same as above.
1339 (finalize_ssa_stmt_operands): Same as above.
1340 (start_ssa_stmt_operands): Same as above.
1341 (append_use): Same as above.
1342 (append_vdef): Same as above.
1343 (add_virtual_operand): Same as above.
1344 (add_stmt_operand): Same as above.
1345 (get_mem_ref_operands): Same as above.
1346 (get_tmr_operands): Same as above.
1347 (maybe_add_call_vops): Same as above.
1348 (get_asm_stmt_operands): Same as above.
1349 (get_expr_operands): Same as above.
1350 (parse_ssa_operands): Same as above.
1351 (finalize_ssa_defs): Same as above.
1352 (build_ssa_operands): Same as above, plus create a C-like wrapper.
1353 (update_stmt_operands): Create an instance of operands_scanner.
1355 2020-05-07 Richard Biener <rguenther@suse.de>
1358 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
1359 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
1360 (refered_from_nonlocal_var): Likewise.
1361 (ipa_pta_execute): Likewise.
1363 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com>
1365 * gcc/tree-ssa-struct-alias.c: Fix comments
1367 2020-05-07 Martin Liska <mliska@suse.cz>
1369 * doc/invoke.texi: Fix 2 optindex entries.
1371 2020-05-07 Richard Biener <rguenther@suse.de>
1374 * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ...
1375 (tree_decl_common::not_gimple_reg_flag): ... to this.
1376 * tree.h (DECL_GIMPLE_REG_P): Rename ...
1377 (DECL_NOT_GIMPLE_REG_P): ... to this.
1378 * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P.
1379 (create_tmp_reg): Simplify.
1380 (create_tmp_reg_fn): Likewise.
1381 (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs.
1382 * gimplify.c (create_tmp_from_val): Simplify.
1383 (gimplify_bind_expr): Likewise.
1384 (gimplify_compound_literal_expr): Likewise.
1385 (gimplify_function_tree): Likewise.
1386 (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P.
1387 * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P.
1388 (asan_add_global): Copy it.
1389 * cgraphunit.c (cgraph_node::expand_thunk): Force args
1391 * function.c (gimplify_parameters): Copy
1392 DECL_NOT_GIMPLE_REG_P.
1393 * ipa-param-manipulation.c
1394 (ipa_param_body_adjustments::common_initialization): Simplify.
1395 (ipa_param_body_adjustments::reset_debug_stmts): Copy
1396 DECL_NOT_GIMPLE_REG_P.
1397 * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P.
1398 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
1399 * tree-cfg.c (make_blocks_1): Simplify.
1400 (verify_address): Do not verify DECL_GIMPLE_REG_P setting.
1401 * tree-eh.c (lower_eh_constructs_2): Simplify.
1402 * tree-inline.c (declare_return_variable): Adjust and
1404 (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P.
1405 (copy_result_decl_to_var): Likewise.
1406 * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment.
1407 * tree-nested.c (create_tmp_var_for): Simplify.
1408 * tree-parloops.c (separate_decls_in_region_name): Copy
1409 DECL_NOT_GIMPLE_REG_P.
1410 * tree-sra.c (create_access_replacement): Adjust and
1411 generalize partial def support.
1412 * tree-ssa-forwprop.c (pass_forwprop::execute): Set
1413 DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on.
1414 * tree-ssa.c (maybe_optimize_var): Handle clearing of
1415 TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P
1417 * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P.
1418 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
1419 DECL_NOT_GIMPLE_REG_P.
1420 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
1421 * cfgexpand.c (avoid_type_punning_on_regs): New.
1422 (discover_nonconstant_array_refs): Call
1423 avoid_type_punning_on_regs to avoid unsupported mode punning.
1425 2020-05-07 Alex Coplan <alex.coplan@arm.com>
1427 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class
1430 2020-05-07 Richard Biener <rguenther@suse.de>
1432 PR tree-optimization/57359
1433 * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove.
1434 (in_mem_ref::dep_loop): Repurpose.
1435 (LOOP_DEP_BIT): Remove.
1436 (enum dep_kind): New.
1437 (enum dep_state): Likewise.
1438 (record_loop_dependence): New function to populate the
1440 (query_loop_dependence): New function to query the dependence
1442 (memory_accesses::refs_in_loop): Rename to ...
1443 (memory_accesses::refs_loaded_in_loop): ... this and change to
1445 (outermost_indep_loop): Adjust.
1446 (mem_ref_alloc): Likewise.
1447 (gather_mem_refs_stmt): Likewise.
1448 (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down.
1449 (struct sm_aux): New.
1450 (execute_sm): Split code generation on exits, record state
1452 (enum sm_kind): New.
1453 (execute_sm_exit): Exit code generation part.
1454 (sm_seq_push_down): Helper for sm_seq_valid_bb performing
1455 dependence checking on stores reached from exits.
1456 (sm_seq_valid_bb): New function gathering SM stores on exits.
1457 (hoist_memory_references): Re-implement.
1458 (refs_independent_p): Add tbaa_p parameter and pass it down.
1459 (record_dep_loop): Remove.
1460 (ref_indep_loop_p_1): Fold into ...
1461 (ref_indep_loop_p): ... this and generalize for three kinds
1462 of dependence queries.
1463 (can_sm_ref_p): Adjust according to hoist_memory_references
1465 (store_motion_loop): Don't do anything if the set of SM
1466 candidates is empty.
1467 (tree_ssa_lim_initialize): Adjust.
1468 (tree_ssa_lim_finalize): Likewise.
1470 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
1471 Pierre-Marie de Rodat <derodat@adacore.com>
1473 * dwarf2out.c (add_data_member_location_attribute): Take into account
1474 the variant part offset in the computation of the data bit offset.
1475 (add_bit_offset_attribute): Remove CTX parameter. Pass a new context
1476 in the call to field_byte_offset.
1477 (gen_field_die): Adjust call to add_bit_offset_attribute and remove
1478 confusing assertion.
1479 (analyze_variant_discr): Deal with boolean subtypes.
1481 2020-05-07 Martin Liska <mliska@suse.cz>
1483 * lto-wrapper.c: Split arguments of MAKE environment
1486 2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
1488 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
1489 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
1490 fenv_var and new_fenv_var.
1492 2020-05-06 Jakub Jelinek <jakub@redhat.com>
1495 * config/i386/subst.md (store_mask_constraint, store_mask_predicate):
1497 (avx512dq_vextract<shuffletype>64x2_1_maskm,
1498 avx512f_vextract<shuffletype>32x4_1_maskm,
1499 vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove.
1500 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split
1502 (*avx512dq_vextract<shuffletype>64x2_1,
1503 avx512dq_vextract<shuffletype>64x2_1_mask): ... these new
1504 define_insns. Even in the masked variant allow memory output but in
1505 that case use 0 rather than 0C constraint on the source of masked-out
1507 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split
1509 (*avx512f_vextract<shuffletype>32x4_1,
1510 avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns.
1511 Even in the masked variant allow memory output but in that case use
1512 0 rather than 0C constraint on the source of masked-out elts.
1513 (vec_extract_lo_<mode><mask_name>): Split into ...
1514 (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new
1515 define_insns. Even in the masked variant allow memory output but in
1516 that case use 0 rather than 0C constraint on the source of masked-out
1518 (vec_extract_hi_<mode><mask_name>): Split into ...
1519 (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new
1520 define_insns. Even in the masked variant allow memory output but in
1521 that case use 0 rather than 0C constraint on the source of masked-out
1524 2020-05-06 qing zhao <qing.zhao@oracle.com>
1527 * common.opt: Add -flarge-source-files.
1528 * doc/invoke.texi: Document it.
1529 * toplev.c (process_options): set line_table->default_range_bits
1530 to 0 when flag_large_source_files is true.
1532 2020-05-06 Uroš Bizjak <ubizjak@gmail.com>
1535 * config/i386/predicates.md (add_comparison_operator): New predicate.
1536 * config/i386/i386.md (compare->add splitter): New splitters.
1538 2020-05-06 Richard Biener <rguenther@suse.de>
1540 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
1541 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
1542 Remove slp_instance parameter, just iterate over all scalar stmts.
1543 (vect_slp_analyze_instance_dependence): Adjust and likewise.
1544 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB
1546 (vect_schedule_slp): Just iterate over all scalar stmts.
1547 (vect_supported_load_permutation_p): Adjust.
1548 (vect_transform_slp_perm_load): Remove slp_instance parameter,
1549 instead use the number of lanes in the node as group size.
1550 * tree-vect-stmts.c (vect_model_load_cost): Get vectorization
1551 factor instead of slp_instance as parameter.
1552 (vectorizable_load): Adjust.
1554 2020-05-06 Andreas Schwab <schwab@suse.de>
1556 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h".
1557 (aarch64_get_extension_string_for_isa_flags): Don't declare.
1559 2020-05-06 Richard Biener <rguenther@suse.de>
1562 * cfgloopmanip.c (create_preheader): Require non-complex
1563 preheader edge for CP_SIMPLE_PREHEADERS.
1565 2020-05-06 Richard Biener <rguenther@suse.de>
1567 PR tree-optimization/94963
1568 * tree-ssa-loop-im.c (execute_sm_if_changed): Remove
1569 no-warning marking of the conditional store.
1570 (execute_sm): Instead mark the uninitialized state
1571 on loop entry to be not warned about.
1573 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
1575 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET,
1576 OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros.
1577 * config.gcc: Add tsxldtrkintrin.h to extra_headers.
1578 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1580 * config/i386/i386-builtin.def: Add new builtins.
1581 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1583 * config/i386/i386-options.c (ix86_target_string): Add
1585 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
1586 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
1588 * config/i386/i386.md (define_c_enum "unspec"): Add
1589 UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK.
1590 (TSXLDTRK): New define_int_iterator.
1591 ("<tsxldtrk>"): New define_insn.
1592 * config/i386/i386.opt: Add -mtsxldtrk.
1593 * config/i386/immintrin.h: Include tsxldtrkintrin.h.
1594 * config/i386/tsxldtrkintrin.h: New.
1595 * doc/invoke.texi: Document -mtsxldtrk.
1597 2020-05-06 Jakub Jelinek <jakub@redhat.com>
1599 PR tree-optimization/94921
1600 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
1603 2020-05-06 Richard Biener <rguenther@suse.de>
1605 PR tree-optimization/94965
1606 * tree-vect-stmts.c (vectorizable_load): Fix typo.
1608 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1610 * doc/install.texi: Replace Sun with Solaris as appropriate.
1611 (Tools/packages necessary for building GCC, Perl version between
1612 5.6.1 and 5.6.24): Remove Solaris 8 reference.
1613 (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove
1615 (Specific, i?86-*-solaris2*): Update version references for
1616 Solaris 11.3 and later. Remove gas 2.26 caveat.
1617 (Specific, *-*-solaris2*): Update version references for
1618 Solaris 11.3 and later. Remove boehm-gc reference.
1619 Document GMP, MPFR caveats on Solaris 11.3.
1620 (Specific, sparc-sun-solaris2*): Update Solaris 9 references.
1621 (Specific, sparc64-*-solaris2*): Likewise.
1622 Document --build requirement.
1624 2020-05-06 Jakub Jelinek <jakub@redhat.com>
1627 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
1628 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
1630 PR rtl-optimization/94873
1631 * combine.c (combine_instructions): Don't optimize using REG_EQUAL
1632 note if SET_SRC (set) has side-effects.
1634 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
1635 Wei Xiao <wei3.xiao@intel.com>
1637 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
1638 OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
1639 (ix86_handle_option): Handle -mserialize.
1640 * config.gcc (serializeintrin.h): New header file.
1641 * config/i386/cpuid.h (bit_SERIALIZE): New bit.
1642 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1644 * config/i386/i386-builtin.def: Add new builtin.
1645 * config/i386/i386-c.c (__SERIALIZE__): New macro.
1646 * config/i386/i386-options.c (ix86_target_opts_isa2_opts):
1648 * (ix86_valid_target_attribute_inner_p): Add target attribute
1650 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
1652 * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
1653 (serialize): New define_insn.
1654 * config/i386/i386.opt (mserialize): New option
1655 * config/i386/immintrin.h: Include serailizeintrin.h.
1656 * config/i386/serializeintrin.h: New header file.
1657 * doc/invoke.texi: Add documents for -mserialize.
1659 2020-05-06 Richard Biener <rguenther@suse.de>
1661 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer
1662 to/from pointer conversion checking.
1664 2020-05-05 Michael Meissner <meissner@linux.ibm.com>
1666 * config/rs6000/rs6000-builtin.def: Delete changes meant for a
1668 * config/rs6000/rs6000-c.c: Likewise.
1669 * config/rs6000/rs6000-call.c: Likewise.
1670 * config/rs6000/rs6000.c: Likewise.
1672 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
1674 * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined.
1675 (RTEMS_ENDFILE_SPEC): Likewise.
1676 (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC.
1677 (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC.
1678 (LIB_SPECS): Support -nodefaultlibs option.
1679 * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define.
1680 (RTEMS_ENDFILE_SPEC): Likewise.
1681 * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
1682 (RTEMS_ENDFILE_SPEC): Likewise.
1683 * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
1684 (RTEMS_ENDFILE_SPEC): Likewise.
1686 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1688 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
1689 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.
1691 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1693 * config/pru/pru.h: Mark R3.w0 as caller saved.
1695 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1697 * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
1698 and gen_doloop_begin_internal.
1699 (pru_reorg_loop): Use gen_pruloop with mode.
1700 * config/pru/pru.md: Use new @insn syntax.
1702 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1704 * config/pru/pru.c (pru_print_operand): Fix fall through comment.
1706 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
1708 * config/i386/i386.md (fixuns_trunc<mode>si2): Use
1709 "clobber (scratch:M)" instad of "clobber (match_scratch:M N)".
1710 (addqi3_cconly_overflow): Ditto.
1711 (umulv<mode>4): Ditto.
1712 (<s>mul<mode>3_highpart): Ditto.
1713 (tls_global_dynamic_32): Ditto.
1714 (tls_local_dynamic_base_32): Ditto.
1721 (*adddi_4): Remove "m" constraint from scratch operand.
1722 (*add<mode>_4): Ditto.
1724 2020-05-05 Jakub Jelinek <jakub@redhat.com>
1726 PR rtl-optimization/94516
1727 * postreload.c (reload_cse_simplify): When replacing sp = sp + const
1728 with sp = reg, add REG_EQUAL note with sp + const.
1729 * combine-stack-adj.c (try_apply_stack_adjustment): Change return
1730 type from int to bool. Add LIVE and OTHER_INSN arguments. Undo
1731 postreload sp = sp + const to sp = reg optimization if needed and
1733 (combine_stack_adjustments_for_block): Add LIVE argument. Handle
1734 reg = sp insn with sp + const REG_EQUAL note. Adjust
1735 try_apply_stack_adjustment caller, call
1736 df_simulate_initialize_forwards and df_simulate_one_insn_forwards.
1737 (combine_stack_adjustments): Allocate and free LIVE bitmap,
1738 adjust combine_stack_adjustments_for_block caller.
1740 2020-05-05 Martin Liska <mliska@suse.cz>
1742 PR gcov-profile/93623
1743 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
1746 2020-05-05 Martin Liska <mliska@suse.cz>
1748 * opt-functions.awk (opt_args_non_empty): New function.
1749 * opt-read.awk: Use the function for various option arguments.
1751 2020-05-05 Martin Liska <mliska@suse.cz>
1754 * lto-wrapper.c (run_gcc): When using -flto=jobserver,
1755 report warning when the jobserver is not detected.
1757 2020-05-05 Martin Liska <mliska@suse.cz>
1759 PR gcov-profile/94636
1760 * gcov.c (main): Print total lines summary at the end.
1761 (generate_results): Expect file_name always being non-null.
1762 Print newline after intermediate file is printed in order to align with
1763 what we do for normal files.
1765 2020-05-05 Martin Liska <mliska@suse.cz>
1767 * dumpfile.c (dump_switch_p): Change return type
1768 and print option suggestion.
1769 * dumpfile.h: Change return type.
1770 * opts-global.c (handle_common_deferred_options):
1771 Move error into dump_switch_p function.
1773 2020-05-05 Martin Liska <mliska@suse.cz>
1776 * alloc-pool.h: Use const for some arguments.
1777 * bitmap.h: Likewise.
1778 * mem-stats.h: Likewise.
1779 * sese.h (get_entry_bb): Likewise.
1780 (get_exit_bb): Likewise.
1782 2020-05-05 Richard Biener <rguenther@suse.de>
1784 * tree-vect-slp.c (struct vdhs_data): New.
1785 (vect_detect_hybrid_slp): New walker.
1786 (vect_detect_hybrid_slp): Rewrite.
1788 2020-05-05 Richard Biener <rguenther@suse.de>
1791 * tree-ssa-structalias.c (ipa_pta_execute): Use
1792 varpool_node::externally_visible_p ().
1793 (refered_from_nonlocal_var): Likewise.
1795 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
1797 * gcc.c (LTO_PLUGIN_SPEC): Define if not already.
1798 (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC.
1799 * config/vxworks.h (LTO_PLUGIN_SPEC): Define.
1801 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
1803 * gimplify.c (gimplify_init_constructor): Do not put the constructor
1804 into static memory if it is not complete.
1806 2020-05-05 Richard Biener <rguenther@suse.de>
1808 PR tree-optimization/94949
1809 * tree-ssa-loop-im.c (execute_sm): Check whether we use
1810 the multithreaded model or always compute the stored value
1811 before eliding a load.
1813 2020-05-05 Alex Coplan <alex.coplan@arm.com>
1815 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New.
1817 2020-05-05 Jakub Jelinek <jakub@redhat.com>
1819 PR tree-optimization/94800
1820 * match.pd (X + (X << C) to X * (1 + (1 << C)),
1821 (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New
1825 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv.
1827 PR tree-optimization/94914
1828 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0):
1831 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
1833 * config/i386/i386.md (*testqi_ext_3): Use
1834 int_nonimmediate_operand instead of manual mode checks.
1835 (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>):
1836 Use int_nonimmediate_operand predicate. Rewrite
1837 define_insn_and_split pattern to a combine pass splitter.
1839 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1841 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris.
1842 * configure: Regenerate.
1844 2020-05-05 Jakub Jelinek <jakub@redhat.com>
1847 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
1848 ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3,
1849 avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3,
1850 ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns.
1852 2020-05-04 Clement Chigot <clement.chigot@atos.net>
1853 David Edelsohn <dje.gcc@gmail.com>
1855 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit
1856 for fmodl, frexpl, ldexpl and modfl builtins.
1858 2020-05-04 Richard Sandiford <richard.sandiford@arm.com>
1861 * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the
1862 chosen lhs is different from the gcall lhs.
1863 (expand_mask_load_optab_fn): Likewise.
1864 (expand_gather_load_optab_fn): Likewise.
1866 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
1869 * config/i386/i386.md (*neg<mode>_ccc): New insn pattern.
1870 (EQ compare->LTU compare splitter): New splitter.
1871 (NE compare->NEG splitter): Ditto.
1873 2020-05-04 Marek Polacek <polacek@redhat.com>
1876 2020-04-30 Marek Polacek <polacek@redhat.com>
1879 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
1880 (check_aligned_type): Check if TYPE_USER_ALIGN match.
1882 2020-05-04 Richard Biener <rguenther@suse.de>
1884 PR tree-optimization/93891
1885 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to
1886 the original reference tree for assessing access alignment.
1888 2020-05-04 Richard Biener <rguenther@suse.de>
1890 PR tree-optimization/39612
1891 * tree-ssa-loop-im.c (im_mem_ref::loaded): New member.
1892 (set_ref_loaded_in_loop): New.
1893 (mark_ref_loaded): Likewise.
1894 (gather_mem_refs_stmt): Call mark_ref_loaded for loads.
1895 (execute_sm): Avoid issueing a load when it was not there.
1896 (execute_sm_if_changed): Avoid issueing warnings for the
1899 2020-05-04 Martin Jambor <mjambor@suse.cz>
1902 * tree-inline.c (tree_function_versioning): Leave any type conversion
1903 of replacements to setup_one_parameter and its friend
1904 force_value_to_type.
1906 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
1909 * config/i386/predicates.md (shr_comparison_operator): New predicate.
1910 * config/i386/i386.md (compare->shr splitter): New splitters.
1912 2020-05-04 Jakub Jelinek <jakub@redhat.com>
1914 PR tree-optimization/94718
1915 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification.
1917 PR tree-optimization/94718
1918 * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can,
1919 replace two nop conversions on bit_{and,ior,xor} argument
1920 and result with just one conversion on the result or another argument.
1922 PR tree-optimization/94718
1923 * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C)
1924 -> (X ^ Y) & C eqne 0 optimization to ...
1925 * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here.
1927 * opts.c (get_option_html_page): Instead of hardcoding a list of
1928 options common between C/C++ and Fortran only use gfortran/
1929 documentation for warnings that have CL_Fortran set but not
1932 2020-05-03 Uroš Bizjak <ubizjak@gmail.com>
1934 * config/i386/i386-expand.c (ix86_expand_int_movcc):
1935 Use plus_constant instead of gen_rtx_PLUS with GEN_INT.
1936 (emit_memmov): Ditto.
1937 (emit_memset): Ditto.
1938 (ix86_expand_strlensi_unroll_1): Ditto.
1939 (release_scratch_register_on_entry): Ditto.
1940 (gen_frame_set): Ditto.
1941 (ix86_emit_restore_reg_using_pop): Ditto.
1942 (ix86_emit_outlined_ms2sysv_restore): Ditto.
1943 (ix86_expand_epilogue): Ditto.
1944 (ix86_expand_split_stack_prologue): Ditto.
1945 * config/i386/i386.md (push immediate splitter): Ditto.
1949 2020-05-02 Iain Sandoe <iain@sandoe.co.uk>
1951 PR translation/93861
1952 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in
1955 2020-05-02 Jakub Jelinek <jakub@redhat.com>
1957 * config/tilegx/tilegx.md
1958 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
1959 rather than just <n>.
1961 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
1964 * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size
1965 and crtl->patch_area_entry.
1966 * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry.
1967 * opts.c (common_handle_option): Limit
1968 function_entry_patch_area_size and function_entry_patch_area_start
1969 to USHRT_MAX. Fix a typo in error message.
1970 * varasm.c (assemble_start_function): Use crtl->patch_area_size
1971 and crtl->patch_area_entry.
1972 * doc/invoke.texi: Document the maximum value for
1973 -fpatchable-function-entry.
1975 2020-05-01 Iain Sandoe <iain@sandoe.co.uk>
1977 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS.
1978 Override SUBTARGET_SHADOW_OFFSET macro.
1980 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org>
1982 * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET.
1983 * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro.
1984 * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro.
1985 * config/i386/freebsd.h: Likewise.
1986 * config/freebsd.h (LIBASAN_EARLY_SPEC): Define.
1987 LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise.
1989 2020-04-30 Alexandre Oliva <oliva@adacore.com>
1991 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1992 the newly-introduced fileio effective target.
1994 2020-04-30 Richard Sandiford <richard.sandiford@arm.com>
1996 PR rtl-optimization/94740
1997 * cse.c (cse_process_notes_1): Replace with...
1998 (cse_process_note_1): ...this new function, acting as a
1999 simplify_replace_fn_rtx callback to process_note. Handle only
2000 REGs and MEMs directly. Validate the MEM if cse_process_note
2001 changes its address.
2002 (cse_process_notes): Replace with...
2003 (cse_process_note): ...this new function.
2004 (cse_extended_basic_block): Update accordingly, iterating over
2005 the register notes and passing individual notes to cse_process_note.
2007 2020-04-30 Carl Love <cel@us.ibm.com>
2009 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.
2011 2020-04-30 Martin Jambor <mjambor@suse.cz>
2014 * cgraph.c (clone_of_p): Also consider thunks whih had their bodies
2015 saved by the inliner and thunks which had their call inlined.
2016 * ipa-inline-transform.c (save_inline_function_body): Fill in
2017 former_clone_of of new body holders.
2019 2020-04-30 Jakub Jelinek <jakub@redhat.com>
2021 * BASE-VER: Set to 11.0.0.
2023 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
2025 * pretty-print.c (pp_take_prefix): Fix spelling in comment.
2027 2020-04-30 Marek Polacek <polacek@redhat.com>
2030 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
2031 (check_aligned_type): Check if TYPE_USER_ALIGN match.
2033 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2035 * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
2036 * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable.
2037 * doc/invoke.texi (moutline-atomics): Document as on by default.
2039 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
2042 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
2043 the check for NOTE_INSN_DELETED_LABEL.
2045 2020-04-30 Jakub Jelinek <jakub@redhat.com>
2047 * configure.ac (--with-documentation-root-url,
2048 --with-changes-root-url): Diagnose URL not ending with /,
2049 use AC_DEFINE_UNQUOTED instead of AC_SUBST.
2050 * opts.h (get_changes_url): Remove.
2051 * opts.c (get_changes_url): Remove.
2052 * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL
2053 or -DCHANGES_ROOT_URL.
2054 * doc/install.texi (--with-documentation-root-url,
2055 --with-changes-root-url): Document.
2056 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call
2057 get_changes_url and free, change url variable type to const char * and
2058 set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base".
2059 * config/s390/s390.c (s390_function_arg_vector,
2060 s390_function_arg_float): Likewise.
2061 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
2063 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
2065 * config.in: Regenerate.
2066 * configure: Regenerate.
2068 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
2071 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries.
2073 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com>
2075 * config/s390/constraints.md ("j>f", "jb4"): New constraints.
2076 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
2078 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
2080 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
2081 Change constraint for vlrl/vstrl to jb4.
2083 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2085 * var-tracking.c (vt_initialize): Move variables pre and post
2086 into inner block and initialize both in order to fix warning
2087 about uninitialized use. Remove unnecessary checks for
2088 frame_pointer_needed.
2090 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2092 * toplev.c (output_stack_usage_1): Ensure that first
2093 argument to fprintf is not null.
2095 2020-04-29 Jakub Jelinek <jakub@redhat.com>
2097 * configure.ac (-with-changes-root-url): New configure option,
2098 defaulting to https://gcc.gnu.org/.
2099 * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for
2101 * pretty-print.c (get_end_url_string): New function.
2102 (pp_format): Handle %{ and %} for URLs.
2103 (pp_begin_url): Use pp_string instead of pp_printf.
2104 (pp_end_url): Use get_end_url_string.
2105 * opts.h (get_changes_url): Declare.
2106 * opts.c (get_changes_url): New function.
2107 * config/rs6000/rs6000-call.c: Include opts.h.
2108 (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead
2109 of just in GCC 10.1 in diagnostics and add URL.
2110 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise.
2111 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
2113 * config/s390/s390.c (s390_function_arg_vector,
2114 s390_function_arg_float): Likewise.
2115 * configure: Regenerated.
2118 * config/s390/s390.c (s390_function_arg_vector,
2119 s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of
2120 cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type
2121 passed to the function rather than the type of the single element.
2122 Rename cxx17_empty_base_seen variable to empty_base_seen, change
2123 type to int, and adjust diagnostics depending on if the field
2124 has [[no_unique_attribute]] or not.
2127 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
2128 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
2129 used in casts into parens.
2130 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
2131 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
2132 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
2133 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
2134 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
2135 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
2136 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
2137 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
2138 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
2139 _mm256_mask_cmp_epu8_mask): Likewise.
2140 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
2141 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
2142 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
2143 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.
2146 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
2147 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
2148 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
2149 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
2150 _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
2151 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
2152 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
2153 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
2154 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
2155 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
2156 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
2157 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
2158 _mm256_mask_i64gather_epi32): Surround macro parameter uses with
2160 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
2161 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
2162 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use
2163 as mask vector containing -1.0 or -1.0f elts, but instead vector
2164 with all bits set using _mm*_cmpeq_p? with zero operands.
2165 * config/i386/avx512fintrin.h (_mm512_i32gather_ps,
2166 _mm512_mask_i32gather_ps, _mm512_i32gather_pd,
2167 _mm512_mask_i32gather_pd, _mm512_i64gather_ps,
2168 _mm512_mask_i64gather_ps, _mm512_i64gather_pd,
2169 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
2170 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
2171 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
2172 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
2173 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
2174 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
2175 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
2176 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
2177 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
2178 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
2179 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
2180 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
2181 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with
2183 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
2184 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
2185 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
2186 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
2187 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
2188 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
2189 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
2190 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
2191 _mm512_mask_prefetch_i64scatter_ps): Likewise.
2192 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
2193 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
2194 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
2195 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
2196 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
2197 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
2198 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
2199 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
2200 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
2201 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
2202 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
2203 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
2204 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
2205 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
2206 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
2207 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
2208 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
2209 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
2210 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
2211 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
2212 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
2213 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
2214 _mm_mask_i64scatter_epi64): Likewise.
2216 2020-04-29 Jeff Law <law@redhat.com>
2218 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific
2219 division instructions are 4 bytes long.
2221 2020-04-29 Jakub Jelinek <jakub@redhat.com>
2224 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
2225 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
2226 fenv_var, fenv_clear and old_fenv variables. For fenv_addr
2227 take address of TARGET_EXPR of fenv_var with void_node initializer.
2230 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2232 PR tree-optimization/94774
2233 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize
2236 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2238 * calls.h (cxx17_empty_base_field_p): Turn into a function declaration.
2239 * calls.c (cxx17_empty_base_field_p): New function. Check
2240 DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the
2243 2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
2246 * config/i386/i386-options.c (ix86_set_indirect_branch_type):
2247 Allow -fcf-protection with -mindirect-branch=thunk-extern and
2248 -mfunction-return=thunk-extern.
2249 * doc/invoke.texi: Update notes for -fcf-protection=branch with
2250 -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern.
2252 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2254 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor.
2256 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2258 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
2259 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
2260 fenv_var and new_fenv_var.
2262 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2264 * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new
2265 effective-target keyword.
2266 (arm_arch_v8a_hard_multilib): Likewise.
2267 (arm_arch_v8a_hard): Document new dg-add-options keyword.
2268 * config/arm/arm.c (arm_return_in_memory): Note that the APCS
2269 code is deprecated and has not been updated to handle
2270 DECL_FIELD_ABI_IGNORED.
2271 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
2272 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
2273 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
2274 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
2275 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
2276 something actually is a HFA or HVA. Record whether we see a
2277 [[no_unique_address]] field that previous GCCs would not have
2278 ignored in this way.
2279 (aapcs_vfp_is_call_or_return_candidate): Update the calls to
2280 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
2281 [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the
2282 diagnostic messages.
2283 (arm_needs_doubleword_align): Add a comment explaining why we
2284 consider even zero-sized fields.
2286 2020-04-29 Richard Biener <rguenther@suse.de>
2287 Li Zekun <lizekun1@huawei.com>
2290 * tree.c (component_ref_size): Guard against error_mark_node
2291 DECL_INITIAL as it happens with LTO.
2293 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2295 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a
2296 comment explaining why we consider even zero-sized fields.
2297 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
2298 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
2299 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
2300 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
2301 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
2302 something actually is a HFA or HVA. Record whether we see a
2303 [[no_unique_address]] field that previous GCCs would not have
2304 ignored in this way.
2305 (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say
2306 whether diagnostics should be suppressed. Update the calls to
2307 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
2308 [[no_unique_address]] case.
2309 (aarch64_return_in_msb): Update call accordingly, never silencing
2311 (aarch64_function_value): Likewise.
2312 (aarch64_return_in_memory_1): Likewise.
2313 (aarch64_init_cumulative_args): Likewise.
2314 (aarch64_gimplify_va_arg_expr): Likewise.
2315 (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and
2316 use it to decide whether arch64_vfp_is_call_or_return_candidate
2318 (aarch64_pass_by_reference): Update calls accordingly.
2319 (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument
2320 to decide whether arch64_vfp_is_call_or_return_candidate should be
2323 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com>
2326 * config/aarch64/aarch64-builtins.c
2327 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
2328 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
2331 2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
2333 * configure.ac <$enable_offload_targets>: Do parsing as done
2335 * configure: Regenerate.
2337 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'.
2338 * configure: Regenerate.
2341 * rtlanal.c (set_noop_p): Handle non-constant selectors.
2344 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
2346 (TARGET_EXCEPT_UNWIND_INFO): Define.
2348 2020-04-29 Jakub Jelinek <jakub@redhat.com>
2351 * config/gcn/gcn.md (*mov<mode>_insn): Use
2352 'reg_overlap_mentioned_p' to check for overlap.
2355 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED
2356 instead of cxx17_empty_base_field_p.
2359 * tree-core.h (tree_decl_common): Note decl_flag_0 used for
2360 DECL_FIELD_ABI_IGNORED.
2361 * tree.h (DECL_FIELD_ABI_IGNORED): Define.
2362 * calls.h (cxx17_empty_base_field_p): Change into a temporary
2363 macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address"
2365 * calls.c (cxx17_empty_base_field_p): Remove.
2366 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle
2367 DECL_FIELD_ABI_IGNORED.
2368 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
2369 * lto-streamer-out.c (hash_tree): Likewise.
2370 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename
2371 cxx17_empty_base_seen to empty_base_seen, change type to int *,
2372 adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of
2373 cxx17_empty_base_field_p, if "no_unique_address" attribute is
2374 present, propagate that to the caller too.
2375 (rs6000_discover_homogeneous_aggregate): Adjust
2376 rs6000_aggregate_candidate caller, emit different diagnostics
2377 when c++17 empty base fields are present and when empty
2378 [[no_unique_address]] fields are present.
2379 * config/rs6000/rs6000.c (rs6000_special_round_type_align,
2380 darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED
2383 2020-04-29 Richard Biener <rguenther@suse.de>
2385 * tree-ssa-loop-im.c (ref_always_accessed::operator ()):
2386 Just check whether the stmt stores.
2388 2020-04-28 Alexandre Oliva <oliva@adacore.com>
2391 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
2392 output operand in emulation. Don't overwrite pseudos.
2394 2020-04-28 Jeff Law <law@redhat.com>
2396 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific
2397 multiply patterns are 4 bytes long.
2399 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2401 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option.
2402 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option.
2404 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com>
2405 Jakub Jelinek <jakub@redhat.com>
2408 * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty
2409 base class artificial fields.
2410 (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI
2411 decision is different after this fix.
2413 2020-04-28 David Malcolm <dmalcolm@redhat.com>
2419 * doc/invoke.texi (Static Analyzer Options): Remove
2420 -Wanalyzer-use-of-uninitialized-value.
2421 (-Wno-analyzer-use-of-uninitialized-value): Remove item.
2423 2020-04-28 Jakub Jelinek <jakub@redhat.com>
2425 PR tree-optimization/94809
2426 * tree.c (build_call_expr_internal_loc_array): Call
2427 process_call_operands.
2429 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
2431 * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name.
2432 * config/aarch64/aarch64-tune.md: Regenerate.
2433 * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define.
2434 (thunderx3t110_regmove_cost): Likewise.
2435 (thunderx3t110_vector_cost): Likewise.
2436 (thunderx3t110_prefetch_tune): Likewise.
2437 (thunderx3t110_tunings): Likewise.
2438 * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs):
2440 * config/aarch64/thunderx3t110.md: New file.
2441 * config/aarch64/aarch64.md: Include thunderx3t110.md.
2442 * doc/invoke.texi (AArch64 options): Add thunderx3t110.
2444 2020-04-28 Jakub Jelinek <jakub@redhat.com>
2447 * config/s390/s390.c (s390_function_arg_vector,
2448 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed.
2450 2020-04-28 Richard Sandiford <richard.sandiford@arm.com>
2452 PR tree-optimization/94727
2453 * tree-vect-stmts.c (vect_is_simple_cond): If both comparison
2454 operands are invariant booleans, use the mask type associated with the
2455 STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP.
2456 (vectorizable_condition): Pass vectype unconditionally to
2457 vect_is_simple_cond.
2459 2020-04-27 Jakub Jelinek <jakub@redhat.com>
2462 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
2463 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
2464 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.
2466 2020-04-27 David Malcolm <dmalcolm@redhat.com>
2469 * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from
2470 default value, so that it can by supplied by get_option_html_page.
2471 * configure: Regenerate.
2472 * opts.c: Include "selftest.h".
2473 (get_option_html_page): New function.
2474 (get_option_url): Use it. Reformat to place comments next to the
2475 expressions they refer to.
2476 (selftest::test_get_option_html_page): New.
2477 (selftest::opts_c_tests): New.
2478 * selftest-run-tests.c (selftest::run_tests): Call
2479 selftest::opts_c_tests.
2480 * selftest.h (selftest::opts_c_tests): New decl.
2482 2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
2484 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
2485 UINTVAL to CONST_INTs.
2487 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2489 * config/arm/constraints.md (e): Remove constraint.
2490 (Te): Define constraint.
2491 * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
2492 operand 0 from "e" to "Te".
2493 (vaddvaq_<supf><mode>): Likewise.
2494 (vaddvq_p_<supf><mode>): Likewise.
2495 (vmladavq_<supf><mode>): Likewise.
2496 (vmladavxq_s<mode>): Likewise.
2497 (vmlsdavq_s<mode>): Likewise.
2498 (vmlsdavxq_s<mode>): Likewise.
2499 (vaddvaq_p_<supf><mode>): Likewise.
2500 (vmladavaq_<supf><mode>): Likewise.
2501 (vmladavq_p_<supf><mode>): Likewise.
2502 (vmladavxq_p_s<mode>): Likewise.
2503 (vmlsdavq_p_s<mode>): Likewise.
2504 (vmlsdavxq_p_s<mode>): Likewise.
2505 (vmlsdavaxq_s<mode>): Likewise.
2506 (vmlsdavaq_s<mode>): Likewise.
2507 (vmladavaxq_s<mode>): Likewise.
2508 (vmladavaq_p_<supf><mode>): Likewise.
2509 (vmladavaxq_p_s<mode>): Likewise.
2510 (vmlsdavaq_p_s<mode>): Likewise.
2511 (vmlsdavaxq_p_s<mode>): Likewise.
2513 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
2515 * config/arm/arm.c (output_move_neon): Only get the first operand if
2518 2020-04-27 Felix Yang <felix.yang@huawei.com>
2520 PR tree-optimization/94784
2521 * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the
2522 assert around so that it checks that the two vectors have equal
2523 TYPE_VECTOR_SUBPARTS and that converting the corresponding element
2524 types is a useless_type_conversion_p.
2526 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com>
2529 * dwarf2cfi.c (struct GTY): Add ra_mangled.
2530 (cfi_row_equal_p): Check ra_mangled.
2531 (dwarf2out_frame_debug_cfa_window_save): Remove the argument,
2532 this only handles the sparc logic now.
2533 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
2534 the aarch64 specific logic.
2535 (dwarf2out_frame_debug): Update to use the new subroutines.
2536 (change_cfi_row): Check ra_mangled.
2538 2020-04-27 Jakub Jelinek <jakub@redhat.com>
2541 * config/s390/s390.c (s390_function_arg_vector,
2542 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
2544 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com>
2546 * common/config/rs6000/rs6000-common.c
2547 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off
2549 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to
2552 2020-04-27 Martin Liska <mliska@suse.cz>
2555 * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
2556 Do not remove ifunc_resolvers in remove unreachable nodes in LTO.
2558 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com>
2561 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed):
2563 (rs6000_emit_prologue_components):
2564 Check with frame_pointer_needed_indeed.
2565 (rs6000_emit_epilogue_components): Likewise.
2566 (rs6000_emit_prologue): Likewise.
2567 (rs6000_emit_epilogue): Set frame_pointer_needed_indeed.
2569 2020-04-25 David Edelsohn <dje.gcc@gmail.com>
2571 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a
2572 stack frame when debugging and flag_compare_debug is enabled.
2574 2020-04-25 Michael Meissner <meissner@linux.ibm.com>
2576 * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to
2577 enable PC-relative addressing for -mcpu=future.
2578 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move
2579 after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS.
2580 * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined,
2581 suppress PC-relative addressing.
2582 (rs6000_option_override_internal): Split up error messages
2583 checking for -mprefixed and -mpcrel. Enable -mpcrel if the target
2586 2020-04-25 Jakub Jelinek <jakub@redhat.com>
2587 Richard Biener <rguenther@suse.de>
2589 PR tree-optimization/94734
2590 PR tree-optimization/89430
2591 * tree-ssa-phiopt.c: Include tree-eh.h.
2592 (cond_store_replacement): Return false if an automatic variable
2593 access could trap. If -fstore-data-races, don't return false
2594 just because an automatic variable is addressable.
2596 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
2598 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge
2600 (add<mode>_sext_dup2_exec): Likewise.
2602 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org>
2605 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
2606 endian byteshift_val calculation.
2608 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
2610 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload.
2612 2020-04-24 Richard Sandiford <richard.sandiford@arm.com>
2614 * config/aarch64/arm_sve.h: Add a comment.
2616 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com>
2618 PR rtl-optimization/94708
2619 * combine.c (simplify_if_then_else): Add check for
2620 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode).
2622 2020-04-23 Martin Sebor <msebor@redhat.com>
2625 * common.opt (-Wno-frame-larger-than): New option.
2626 (-Wno-larger-than, -Wno-stack-usage): Same.
2628 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
2630 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands
2632 (mov<mode>_exec): Likewise.
2633 (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec.
2634 (<convop><mode><vndi>2_exec): Likewise.
2636 2019-04-23 Eric Botcazou <ebotcazou@adacore.com>
2638 PR tree-optimization/94717
2639 * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one
2640 of the stores doesn't have the same landing pad number as the first.
2641 (coalesce_immediate_stores): Do not try to coalesce the store using
2642 bswap if it doesn't have the same landing pad number as the first.
2644 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com>
2646 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2647 Replace outdated link to ELFv2 ABI.
2649 2020-04-23 Jakub Jelinek <jakub@redhat.com>
2652 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
2656 * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs
2657 temporarily with non-final second operand and updating it later,
2658 push COMPOUND_EXPRs into a vector and process it in reverse,
2659 creating COMPOUND_EXPRs with the final operands.
2661 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com>
2664 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
2665 bti c and bti j handling.
2667 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
2668 Thomas Schwinge <thomas@codesourcery.com>
2672 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on
2673 t_async and the wait arguments.
2675 2020-04-23 Richard Sandiford <richard.sandiford@arm.com>
2677 PR tree-optimization/94727
2678 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when
2679 comparing invariant scalar booleans.
2681 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com>
2682 Jakub Jelinek <jakub@redhat.com>
2685 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17
2686 empty base class artificial fields.
2687 (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is
2688 different after this fix.
2690 2020-04-23 Jakub Jelinek <jakub@redhat.com>
2693 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
2694 Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
2695 if the same type has been diagnosed most recently already.
2697 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2699 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
2701 (__arm_vbicq_n_s16): Likewise.
2702 (__arm_vbicq_n_u32): Likewise.
2703 (__arm_vbicq_n_s32): Likewise.
2704 (__arm_vbicq): Likewise.
2705 (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype.
2706 (__arm_vbicq_n_s32): Likewise.
2707 (__arm_vbicq_n_u16): Likewise.
2708 (__arm_vbicq_n_u32): Likewise.
2709 (__arm_vdupq_m_n_s8): Likewise.
2710 (__arm_vdupq_m_n_s16): Likewise.
2711 (__arm_vdupq_m_n_s32): Likewise.
2712 (__arm_vdupq_m_n_u8): Likewise.
2713 (__arm_vdupq_m_n_u16): Likewise.
2714 (__arm_vdupq_m_n_u32): Likewise.
2715 (__arm_vdupq_m_n_f16): Likewise.
2716 (__arm_vdupq_m_n_f32): Likewise.
2717 (__arm_vldrhq_gather_offset_s16): Likewise.
2718 (__arm_vldrhq_gather_offset_s32): Likewise.
2719 (__arm_vldrhq_gather_offset_u16): Likewise.
2720 (__arm_vldrhq_gather_offset_u32): Likewise.
2721 (__arm_vldrhq_gather_offset_f16): Likewise.
2722 (__arm_vldrhq_gather_offset_z_s16): Likewise.
2723 (__arm_vldrhq_gather_offset_z_s32): Likewise.
2724 (__arm_vldrhq_gather_offset_z_u16): Likewise.
2725 (__arm_vldrhq_gather_offset_z_u32): Likewise.
2726 (__arm_vldrhq_gather_offset_z_f16): Likewise.
2727 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
2728 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
2729 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
2730 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
2731 (__arm_vldrhq_gather_shifted_offset_f16): Likewise.
2732 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
2733 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
2734 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
2735 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
2736 (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise.
2737 (__arm_vldrwq_gather_offset_s32): Likewise.
2738 (__arm_vldrwq_gather_offset_u32): Likewise.
2739 (__arm_vldrwq_gather_offset_f32): Likewise.
2740 (__arm_vldrwq_gather_offset_z_s32): Likewise.
2741 (__arm_vldrwq_gather_offset_z_u32): Likewise.
2742 (__arm_vldrwq_gather_offset_z_f32): Likewise.
2743 (__arm_vldrwq_gather_shifted_offset_s32): Likewise.
2744 (__arm_vldrwq_gather_shifted_offset_u32): Likewise.
2745 (__arm_vldrwq_gather_shifted_offset_f32): Likewise.
2746 (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise.
2747 (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise.
2748 (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise.
2749 (__arm_vdwdupq_x_n_u8): Likewise.
2750 (__arm_vdwdupq_x_n_u16): Likewise.
2751 (__arm_vdwdupq_x_n_u32): Likewise.
2752 (__arm_viwdupq_x_n_u8): Likewise.
2753 (__arm_viwdupq_x_n_u16): Likewise.
2754 (__arm_viwdupq_x_n_u32): Likewise.
2755 (__arm_vidupq_x_n_u8): Likewise.
2756 (__arm_vddupq_x_n_u8): Likewise.
2757 (__arm_vidupq_x_n_u16): Likewise.
2758 (__arm_vddupq_x_n_u16): Likewise.
2759 (__arm_vidupq_x_n_u32): Likewise.
2760 (__arm_vddupq_x_n_u32): Likewise.
2761 (__arm_vldrdq_gather_offset_s64): Likewise.
2762 (__arm_vldrdq_gather_offset_u64): Likewise.
2763 (__arm_vldrdq_gather_offset_z_s64): Likewise.
2764 (__arm_vldrdq_gather_offset_z_u64): Likewise.
2765 (__arm_vldrdq_gather_shifted_offset_s64): Likewise.
2766 (__arm_vldrdq_gather_shifted_offset_u64): Likewise.
2767 (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise.
2768 (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise.
2769 (__arm_vidupq_m_n_u8): Likewise.
2770 (__arm_vidupq_m_n_u16): Likewise.
2771 (__arm_vidupq_m_n_u32): Likewise.
2772 (__arm_vddupq_m_n_u8): Likewise.
2773 (__arm_vddupq_m_n_u16): Likewise.
2774 (__arm_vddupq_m_n_u32): Likewise.
2775 (__arm_vidupq_n_u16): Likewise.
2776 (__arm_vidupq_n_u32): Likewise.
2777 (__arm_vidupq_n_u8): Likewise.
2778 (__arm_vddupq_n_u16): Likewise.
2779 (__arm_vddupq_n_u32): Likewise.
2780 (__arm_vddupq_n_u8): Likewise.
2782 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
2784 * doc/install.texi (D-Specific Options): Document
2785 --enable-libphobos-checking and --with-libphobos-druntime-only.
2787 2020-04-23 Jakub Jelinek <jakub@redhat.com>
2790 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add
2791 cxx17_empty_base_seen argument. Pass it to recursive calls.
2792 Ignore cxx17_empty_base_field_p fields after setting
2793 *cxx17_empty_base_seen to true.
2794 (rs6000_discover_homogeneous_aggregate): Adjust
2795 rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous
2796 aggregates with C++17 empty base fields.
2799 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
2800 if last_decl is error_mark_node or has such a TREE_TYPE.
2803 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
2804 if last_decl is error_mark_node or has such a TREE_TYPE.
2806 2020-04-22 Felix Yang <felix.yang@huawei.com>
2809 * config/aarch64/aarch64.h (TARGET_SVE):
2810 Add && !TARGET_GENERAL_REGS_ONLY.
2811 (TARGET_SVE2): Add && TARGET_SVE.
2812 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3,
2813 TARGET_SVE2_SM4): Add && TARGET_SVE2.
2814 * config/aarch64/aarch64-sve-builtins.h
2815 (sve_switcher::m_old_general_regs_only): New member.
2816 * config/aarch64/aarch64-sve-builtins.cc (check_required_registers):
2818 (reported_missing_registers_p): New variable.
2819 (check_required_extensions): Call check_required_registers before
2820 return if all required extenstions are present.
2821 (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in
2822 m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in
2823 global_options.x_target_flags.
2824 (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in
2825 global_options.x_target_flags if m_old_general_regs_only is true.
2827 2020-04-22 Zackery Spytz <zspytz@gmail.com>
2829 * doc/extend.exi: Add "free" to list of other builtin functions
2832 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com>
2835 * config/rs6000/sync.md (load_quadpti): Add attr "prefixed"
2837 (store_quadpti): Ditto.
2838 (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as
2839 plq will be used and doesn't need it.
2840 (atomic_store<mode>): Ditto, for pstq.
2842 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com>
2844 * doc/invoke.texi: Update flags turned on by -O3.
2846 2020-04-22 Jakub Jelinek <jakub@redhat.com>
2849 * config/ia64/ia64.c (hfa_element_mode): Ignore
2850 cxx17_empty_base_field_p fields.
2853 * calls.h (cxx17_empty_base_field_p): Declare.
2854 * calls.c (cxx17_empty_base_field_p): Define.
2856 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org>
2858 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document.
2860 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2861 Andre Vieira <andre.simoesdiasvieira@arm.com>
2862 Mihail Ionescu <mihail.ionescu@arm.com>
2864 * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu.
2865 * config/arm/arm-cpus.in (quirk_no_asmcpu): Define.
2866 (ALL_QUIRKS): Add quirk_no_asmcpu.
2867 (cortex-m55): Define new cpu.
2868 * config/arm/arm-tables.opt: Regenerate.
2869 * config/arm/arm-tune.md: Likewise.
2870 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55.
2872 2020-04-22 Richard Sandiford <richard.sandiford@arm.com>
2874 PR tree-optimization/94700
2875 * tree-ssa-forwprop.c (simplify_vector_constructor): When processing
2876 an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures
2877 of similarly-structured but distinct vector types.
2879 2020-04-21 Martin Sebor <msebor@redhat.com>
2882 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct
2883 the computation of the lower bound of the source access size.
2884 (builtin_access::generic_overlap): Remove a hack for setting ranges
2887 2020-04-21 John David Anglin <danglin@gcc.gnu.org>
2889 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete.
2890 (ASM_WEAKEN_DECL): New define.
2891 (HAVE_GAS_WEAKREF): Undefine.
2893 2020-04-21 Richard Sandiford <richard.sandiford@arm.com>
2895 PR tree-optimization/94683
2896 * tree-ssa-forwprop.c (simplify_vector_constructor): Use a
2897 VIEW_CONVERT_EXPR to handle mixtures of similarly-structured
2898 but distinct vector types.
2900 2020-04-21 Jakub Jelinek <jakub@redhat.com>
2903 * stor-layout.c (place_field, finalize_record_size): Don't emit
2904 -Wpadded warning on TYPE_ARTIFICIAL rli->t.
2905 * ubsan.c (ubsan_get_type_descriptor_type,
2906 ubsan_get_source_location_type, ubsan_create_data): Set
2908 * asan.c (asan_global_struct): Likewise.
2910 2020-04-21 Duan bo <duanbo3@huawei.com>
2913 * config/aarch64/aarch64.c: Add an error message for option conflict.
2914 * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is
2915 incompatible with -fpic, -fPIC and -mabi=ilp32.
2917 2020-04-21 Frederik Harwath <frederik@codesourcery.com>
2920 * omp-low.c (new_omp_context): Remove assignments to
2921 ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
2923 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
2925 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
2926 ("popcountv2di2_vx"): Use simplify_gen_subreg.
2928 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
2931 * config/s390/s390-builtin-types.def: Add 3 new function modes.
2932 * config/s390/s390-builtins.def: Add mode dependent low-level
2933 builtin and map the overloaded builtins to these.
2934 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
2935 ("vsel<V_HW"): ... this and rewrite the pattern with bitops.
2937 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
2939 * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo
2940 has a variable VF, prefer new_loop_vinfo if it is cheaper for the
2941 estimated VF and is no worse at double the estimated VF.
2943 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
2946 * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix
2947 order of arguments to rtx_vector_builder.
2948 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
2949 When extending the trailing constants to a full vector, replace any
2950 variables with zeros.
2952 2020-04-20 Jan Hubicka <hubicka@ucw.cz>
2955 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local
2958 2020-04-20 Martin Liska <mliska@suse.cz>
2960 * symtab.c (symtab_node::dump_references): Add space after
2962 (symtab_node::dump_referring): Likewise.
2964 2020-04-18 Jeff Law <law@redhat.com>
2967 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking
2970 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org>
2972 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2973 attributes): Document d_runtime_has_std_library.
2975 2020-04-17 Jeff Law <law@redhat.com>
2977 PR rtl-optimization/90275
2978 * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels
2979 when the destination has a REG_UNUSED note.
2981 2020-04-17 Tobias Burnus <tobias@codesourcery.com>
2984 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to
2987 2020-04-17 Richard Sandiford <richard.sandiford@arm.com>
2989 * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function.
2990 (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the
2991 cost of load and store insns if one loop iteration has enough scalar
2992 elements to use an Advanced SIMD LDP or STP.
2993 (aarch64_add_stmt_cost): Update call accordingly.
2995 2020-04-17 Jakub Jelinek <jakub@redhat.com>
2996 Jeff Law <law@redhat.com>
2999 * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than
3000 CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision,
3001 or pos + len >= 32, or pos + len is equal to operands[2] precision
3002 and operands[2] is not a register operand. During splitting perform
3003 SImode AND if operands[0] doesn't have CCZmode and pos + len is
3004 equal to mode precision.
3006 2020-04-17 Richard Biener <rguenther@suse.de>
3009 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate
3011 * dwarf2out.c (dw_val_equal_p): Fix pasto in
3012 dw_val_class_vms_delta comparison.
3013 * optabs.c (expand_binop_directly): Fix pasto in commutation
3015 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in
3018 2020-04-17 Jakub Jelinek <jakub@redhat.com>
3020 PR rtl-optimization/94618
3021 * cfgrtl.c (delete_insn_and_edges): Set purge not just when
3022 insn is the BB_END of its block, but also when it is only followed
3023 by DEBUG_INSNs in its block.
3025 PR tree-optimization/94621
3026 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN.
3027 Move id->adjust_array_error_bounds check first in the condition.
3029 2020-04-17 Martin Liska <mliska@suse.cz>
3030 Jonathan Yong <10walls@gmail.com>
3032 PR gcov-profile/94570
3033 * coverage.c (coverage_init): Use separator properly.
3035 2020-04-16 Peter Bergner <bergner@linux.ibm.com>
3037 PR rtl-optimization/93974
3038 * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
3039 (rs6000_cannot_substitute_mem_equiv_p): New function.
3041 2020-04-16 Martin Jambor <mjambor@suse.cz>
3044 * ipa-inline.h (ipa_saved_clone_sources): Declare.
3045 * ipa-inline-transform.c (ipa_saved_clone_sources): New variable.
3046 (save_inline_function_body): Link the new body holder with the
3048 * cgraph.c: Include ipa-inline.h.
3049 (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from
3050 the statement in ipa_saved_clone_sources.
3051 * cgraphunit.c: Include ipa-inline.h.
3052 (expand_all_functions): Free ipa_saved_clone_sources.
3054 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
3057 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take
3058 the VNx16BI lowpart of the recursively-generated constant.
3060 2020-04-16 Martin Liska <mliska@suse.cz>
3061 Jakub Jelinek <jakub@redhat.com>
3064 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
3065 DECL_IS_REPLACEABLE_OPERATOR during cloning.
3066 * tree-ssa-dce.c (valid_new_delete_pair_p): New function.
3067 (propagate_necessity): Check operator names.
3069 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
3071 PR rtl-optimization/94605
3072 * early-remat.c (early_remat::process_block): Handle insns that
3073 set multiple candidate registers.
3074 2020-04-16 Jan Hubicka <hubicka@ucw.cz>
3076 PR gcov-profile/93401
3077 * common.opt (profile-prefix-path): New option.
3078 * coverae.c: Include diagnostics.h.
3079 (coverage_init): Strip profile prefix path.
3080 * doc/invoke.texi (-fprofile-prefix-path): Document.
3082 2020-04-16 Richard Biener <rguenther@suse.de>
3085 * expr.c (emit_move_multi_word): Do not generate code when
3086 the destination part is undefined_operand_subword_p.
3087 * lower-subreg.c (resolve_clobber): Look through a paradoxica
3090 2020-04-16 Martin Jambor <mjambor@suse.cz>
3092 PR tree-optimization/94598
3093 * tree-sra.c (verify_sra_access_forest): Fix verification of total
3094 scalarization accesses under access to one-element arrays.
3096 2020-04-16 Jakub Jelinek <jakub@redhat.com>
3099 * function.c (assign_parm_find_data_types): Add workaround for
3100 BROKEN_VALUE_INITIALIZATION compilers.
3102 2020-04-16 Richard Biener <rguenther@suse.de>
3104 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME
3107 2020-04-15 Uroš Bizjak <ubizjak@gmail.com>
3110 * config/i386/i386-builtin.def (__builtin_ia32_movq128):
3111 Require OPTION_MASK_ISA_SSE2.
3113 2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
3116 * dumpfile.c (selftest::temp_dump_context::temp_dump_context):
3117 Don't construct a dump_context temporary to call static method.
3119 2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
3121 * config/aarch64/falkor-tag-collision-avoidance.c
3122 (valid_src_p): Check for aarch64_address_info type before
3123 accessing base field.
3125 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
3127 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
3128 (V_sz_elem2): Remove unused mode attribute.
3130 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com>
3132 * config/arm/arm.md (arm_movdi): Disallow for MVE.
3134 2020-04-15 Richard Biener <rguenther@suse.de>
3137 * tree-ssa-alias.c (same_type_for_tbaa): Defer to
3138 alias_sets_conflict_p for pointers.
3140 2020-04-14 Max Filippov <jcmvbkbc@gmail.com>
3143 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
3144 (extendhisi2_internal): Add %v1 before the load instructions.
3146 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com>
3149 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to
3150 use PC-relative addressing for TLS references.
3152 2020-04-14 Martin Jambor <mjambor@suse.cz>
3155 * ipa-sra.c: Include internal-fn.h.
3156 (enum isra_scan_context): Update comment.
3157 (scan_function): Treat calls to internal_functions like loads or stores.
3159 2020-04-14 Yang Yang <yangyang305@huawei.com>
3161 PR tree-optimization/94574
3162 * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing
3163 whether a vector-insert is rewritable using a BIT_INSERT_EXPR.
3165 2020-04-14 H.J. Lu <hongjiu.lu@intel.com>
3168 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check.
3170 2020-04-13 Martin Sebor <msebor@redhat.com>
3172 * doc/extend.texi (-Wall): Mention -Wformat-overflow and
3173 -Wformat-truncation. Move -Wzero-length-bounds last.
3174 (-Wrestrict): Document positive form of option enabled by -Wall.
3176 2020-04-13 Zachary Spytz <zspytz@gmail.com>
3178 * doc/extend.texi: Add realloc to list of built-in functions
3179 are recognized by the compiler.
3181 2020-04-13 H.J. Lu <hongjiu.lu@intel.com>
3184 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame
3185 pointer in word_mode for eh_return epilogues.
3187 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3189 * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to
3190 memory references in %B, %C and %D operand selectors when the inner
3191 operand is a post increment address.
3193 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3195 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
3196 reference by 4 bytes, and %D memory reference by 6 bytes.
3198 2020-04-11 Uroš Bizjak <ubizjak@gmail.com>
3201 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
3202 condition for V4SI, V8HI and V16QI modes.
3204 2020-04-11 Jakub Jelinek <jakub@redhat.com>
3208 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
3211 2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
3215 * omp-general.c (oacc_verify_routine_clauses): Diagnose if
3216 "#pragma omp declare target" has also been applied.
3218 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3220 * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn
3221 when to emit the epilogue_helper insn.
3222 * config/msp430/msp430.md (epilogue_helper): Add a return insn to the
3225 2020-04-09 Jakub Jelinek <jakub@redhat.com>
3228 * cselib.h (cselib_record_sp_cfa_base_equiv,
3229 cselib_sp_derived_value_p): Declare.
3230 * cselib.c (cselib_record_sp_cfa_base_equiv,
3231 cselib_sp_derived_value_p): New functions.
3232 * var-tracking.c (add_stores): Don't record MO_VAL_SET for
3233 cselib_sp_derived_value_p values.
3234 (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the
3235 start of extended basic blocks other than the first one
3236 for !frame_pointer_needed functions.
3238 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
3240 * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw)
3241 (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw)
3242 (aarch64_sve2048_hw): Document.
3243 * config/aarch64/aarch64-protos.h
3244 (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare.
3245 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
3246 __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled.
3247 * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New
3249 (find_type_suffix_for_scalar_type): Use it instead of comparing
3251 (function_resolver::infer_vector_or_tuple_type): Likewise.
3252 (function_resolver::require_vector_type): Likewise.
3253 (handle_arm_sve_vector_bits_attribute): New function.
3254 * config/aarch64/aarch64.c (pure_scalable_type_info): New class.
3255 (aarch64_attribute_table): Add arm_sve_vector_bits.
3256 (aarch64_return_in_memory_1):
3257 (pure_scalable_type_info::piece::get_rtx): New function.
3258 (pure_scalable_type_info::num_zr): Likewise.
3259 (pure_scalable_type_info::num_pr): Likewise.
3260 (pure_scalable_type_info::get_rtx): Likewise.
3261 (pure_scalable_type_info::analyze): Likewise.
3262 (pure_scalable_type_info::analyze_registers): Likewise.
3263 (pure_scalable_type_info::analyze_array): Likewise.
3264 (pure_scalable_type_info::analyze_record): Likewise.
3265 (pure_scalable_type_info::add_piece): Likewise.
3266 (aarch64_some_values_include_pst_objects_p): Likewise.
3267 (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info
3268 to analyze whether the type is returned in SVE registers.
3269 (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type
3270 is passed in SVE registers.
3271 (aarch64_pass_by_reference_1): New function, extracted from...
3272 (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info
3273 to analyze whether the type is a pure scalable type and, if so,
3274 whether it should be passed by reference.
3275 (aarch64_return_in_msb): Return false for pure scalable types.
3276 (aarch64_function_value_1): Fold back into...
3277 (aarch64_function_value): ...this function. Use
3278 pure_scalable_type_info to analyze whether the type is a pure
3279 scalable type and, if so, which registers it should use. Handle
3280 types that include pure scalable types but are not themselves
3281 pure scalable types.
3282 (aarch64_return_in_memory_1): New function, split out from...
3283 (aarch64_return_in_memory): ...here. Use pure_scalable_type_info
3284 to analyze whether the type is a pure scalable type and, if so,
3285 whether it should be returned by reference.
3286 (aarch64_layout_arg): Remove orig_mode argument. Use
3287 pure_scalable_type_info to analyze whether the type is a pure
3288 scalable type and, if so, which registers it should use. Handle
3289 types that include pure scalable types but are not themselves
3290 pure scalable types.
3291 (aarch64_function_arg): Update call accordingly.
3292 (aarch64_function_arg_advance): Likewise.
3293 (aarch64_pad_reg_upward): On big-endian targets, return false for
3294 pure scalable types that are smaller than 16 bytes.
3295 (aarch64_member_type_forces_blk): New function.
3296 (aapcs_vfp_sub_candidate): Exit early for built-in SVE types.
3297 (aarch64_short_vector_p): Return false for VECTOR_TYPEs that
3298 correspond to built-in SVE types. Do not rely on a vector mode
3299 if the type includes an pure scalable type. When returning true,
3300 assert that the mode is not an SVE mode.
3301 (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE
3302 built-in types here. When returning true, assert that the type
3303 does not have an SVE mode.
3304 (aarch64_can_change_mode_class): Don't allow anything to change
3305 between a predicate mode and a non-predicate mode. Also don't
3306 allow changes between SVE vector modes and other modes that
3307 might be bigger than 128 bits.
3308 (aarch64_invalid_binary_op): Reject binary operations that mix
3309 SVE and GNU vector types.
3310 (TARGET_MEMBER_TYPE_FORCES_BLK): Define.
3312 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
3314 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
3315 "SVE sizeless type".
3316 * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless)
3317 (sizeless_type_p): New functions.
3318 (register_builtin_types): Apply make_type_sizeless to the type.
3319 (register_tuple_type): Likewise.
3320 (verify_type_context): Use sizeless_type_p instead of builin_type_p.
3322 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
3324 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for
3327 2020-04-09 Martin Jambor <mjambor@suse.cz>
3328 Richard Biener <rguenther@suse.de>
3330 PR tree-optimization/94482
3331 * tree-sra.c (create_access_replacement): Dump new replacement with
3333 (sra_modify_expr): Fix handling of cases when the original EXPR writes
3334 to only part of the replacement.
3335 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
3336 the first operand of combinations into REAL/IMAGPART_EXPR and
3339 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
3341 * doc/sourcebuild.texi (check-function-bodies): Treat the third
3342 parameter as a list of option regexps and require each regexp
3345 2020-04-09 Andrea Corallo <andrea.corallo@arm.com>
3348 * config/aarch64/falkor-tag-collision-avoidance.c
3349 (valid_src_p): Fix missing rtx type check.
3351 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com>
3352 Richard Biener <rguenther@suse.de>
3354 PR tree-optimization/93674
3355 * tree-ssa-loop-ivopts.c (langhooks.h): New include.
3356 (add_iv_candidate_for_use): For iv_use of non integer or pointer type,
3357 or non-mode precision type, add candidate in unsigned type with the
3360 2020-04-08 Clement Chigot <clement.chigot@atos.net>
3362 * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128.
3363 * config/rs6000/aix71.h (LIB_SPEC): Likewise.
3364 * config/rs6000/aix72.h (LIB_SPEC): Likewise.
3366 2020-04-08 Jakub Jelinek <jakub@redhat.com>
3369 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P
3371 * reload1.c (eliminate_regs_1): Avoid creating
3372 (plus (reg) (const_int 0)) in DEBUG_INSNs.
3374 PR tree-optimization/94524
3375 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
3376 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
3377 op1 rather than op1 itself at the end. Punt for signed modulo by
3378 most negative constant.
3379 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
3380 modulo by most negative constant.
3382 2020-04-08 Richard Biener <rguenther@suse.de>
3384 PR rtl-optimization/93946
3385 * cse.c (cse_insn): Record the tabled expression in
3386 src_related. Verify a redundant store removal is valid.
3388 2020-04-08 H.J. Lu <hongjiu.lu@intel.com>
3391 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert
3392 ENDBR at function entry if function will be called indirectly.
3394 2020-04-08 Jakub Jelinek <jakub@redhat.com>
3397 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
3400 2020-04-08 Martin Liska <mliska@suse.cz>
3403 * gimple.c (gimple_call_operator_delete_p): Rename to...
3404 (gimple_call_replaceable_operator_delete_p): ... this.
3405 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
3406 * gimple.h (gimple_call_operator_delete_p): Rename to ...
3407 (gimple_call_replaceable_operator_delete_p): ... this.
3408 * tree-core.h (tree_function_decl): Add replaceable_operator
3410 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1):
3411 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
3412 (propagate_necessity): Use gimple_call_replaceable_operator_delete_p.
3413 (eliminate_unnecessary_stmts): Likewise.
3414 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
3415 Pack DECL_IS_REPLACEABLE_OPERATOR.
3416 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
3417 Unpack the field here.
3418 * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New.
3419 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New.
3420 (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New.
3421 * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable.
3422 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare
3423 replaceable operator flags.
3425 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
3426 Matthew Malcomson <matthew.malcomson@arm.com>
3428 * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro.
3429 (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise.
3430 (CX_TERNARY_QUALIFIERS): Likewise.
3431 (ARM_BUILTIN_CDE_PATTERN_START): Likewise.
3432 (ARM_BUILTIN_CDE_PATTERN_END): Likewise.
3433 (arm_init_acle_builtins): Initialize CDE builtins.
3434 (arm_expand_acle_builtin): Check CDE constant operands.
3435 * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range
3436 of CDE constant operand.
3437 * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for
3439 (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise.
3440 * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface.
3441 (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise.
3442 (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise.
3443 (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise.
3444 (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise.
3445 * config/arm/arm_cde_builtins.def: New file.
3446 * config/arm/iterators.md (V_reg): New attribute of SI.
3447 * config/arm/predicates.md (const_int_coproc_operand): New.
3448 (const_int_vcde1_operand, const_int_vcde2_operand): New.
3449 (const_int_vcde3_operand): New.
3450 * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New.
3451 * config/arm/vfp.md (arm_vcx1<mode>): New entry.
3452 (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise.
3453 (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise.
3455 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
3457 * config.gcc: Add arm_cde.h.
3458 * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine
3459 __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC.
3460 * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options.
3461 * config/arm/arm.c (arm_option_reconfigure_globals): Configure
3462 arm_arch_cde and arm_arch_cde_coproc to store the feature bits.
3463 * config/arm/arm.h (TARGET_CDE): New macro.
3464 * config/arm/arm_cde.h: New file.
3465 * doc/invoke.texi: Document CDE options +cdecp[0-7].
3466 * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target
3468 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise.
3470 2020-04-08 Jakub Jelinek <jakub@redhat.com>
3472 PR rtl-optimization/94516
3473 * postreload.c: Include rtl-iter.h.
3474 (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR
3475 looking for all MEMs with RTX_AUTOINC operand.
3476 (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling.
3478 2020-04-08 Tobias Burnus <tobias@codesourcery.com>
3480 * omp-grid.c (grid_eliminate_combined_simd_part): Use
3481 OMP_CLAUSE_CODE to access the omp clause code.
3483 2020-04-07 Jeff Law <law@redhat.com>
3485 PR rtl-optimization/92264
3486 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when
3487 the destination is the stack pointer.
3489 2020-04-07 Jakub Jelinek <jakub@redhat.com>
3491 PR rtl-optimization/94291
3492 PR rtl-optimization/84169
3493 * combine.c (try_combine): For split_i2i3, don't assume SET_DEST
3494 must be a REG or SUBREG of REG; if it is not one of these, don't
3497 2020-04-07 Richard Biener <rguenther@suse.de>
3500 * gimplify.c (gimplify_addr_expr): Also consider generated
3503 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3505 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs.
3507 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3509 * config/arm/arm_mve.h: Cast some pointers to expected types.
3511 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3513 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the
3514 same with '__arm_' prefix.
3516 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3518 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set.
3520 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3522 * config/arm/arm.c (arm_mve_immediate_check): Removed.
3523 * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types.
3524 (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*,
3525 mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*,
3526 mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*,
3527 mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*,
3528 mve_vqshruntq_m_n_s*): Fixed immediate constraints.
3530 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3532 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts.
3534 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3536 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
3537 * config/arm/mve/md: Fix v[id]wdup patterns.
3539 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3541 * config/arm/arm.c (output_move_neon): Deal with label + offset cases.
3542 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors.
3544 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3546 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters
3547 and remove const_ptr enums.
3549 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3551 * config/arm/arm_mve.h (vsubq_n): Merge with...
3553 (vmulq_n): Merge with...
3555 (__ARM_mve_typeid): Simplify scalar and constant detection.
3557 2020-04-07 Jakub Jelinek <jakub@redhat.com>
3560 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check
3561 for inter-lane permutation for 64-byte modes.
3564 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
3565 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
3566 Assume it is a REG after that instead of testing it and doing FAIL
3567 otherwise. Formatting fix.
3569 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
3571 * config/rs6000/t-rtems: Delete mcpu=8540 multilib.
3573 2020-04-07 Jakub Jelinek <jakub@redhat.com>
3576 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode
3577 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes.
3579 2020-04-06 Jakub Jelinek <jakub@redhat.com>
3581 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P
3582 + const0_rtx return the SP_DERIVED_VALUE_P.
3584 2020-04-06 Richard Sandiford <richard.sandiford@arm.com>
3586 PR rtl-optimization/92989
3587 * lra-lives.c (process_bb_lives): Do not treat eh_return data
3588 registers as being live at the beginning of the EH receiver.
3590 2020-04-05 Zachary Spytz <zspytz@gmail.com>
3592 * extend.texi: Add free to list of ISO C90 functions that
3593 are recognized by the compiler.
3595 2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
3597 * config/microblaze/microblaze.c (microblaze_must_save_register): Check
3600 * config/microblaze/microblaze.md (trap): Update output pattern.
3602 2020-04-04 Hannes Domani <ssbssa@yahoo.de>
3603 Jakub Jelinek <jakub@redhat.com>
3606 * dwarf2out.c (gen_subprogram_die): Look through references, pointers,
3607 arrays, pointer-to-members, function types and qualifiers when
3608 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
3609 to emit type again on definition.
3611 2020-04-04 Jan Hubicka <hubicka@ucw.cz>
3614 * ipa-fnsummary.c (vrp_will_run_p): New function.
3615 (fre_will_run_p): New function.
3616 (evaluate_properties_for_edge): Use it.
3617 * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline
3618 !optimize_debug to optimize_debug.
3620 2020-04-04 Jakub Jelinek <jakub@redhat.com>
3622 PR rtl-optimization/94468
3623 * cselib.c (references_value_p): Formatting fix.
3624 (cselib_useless_value_p): New function.
3625 (discard_useless_locs, discard_useless_values,
3626 cselib_invalidate_regno_val, cselib_invalidate_mem,
3627 cselib_record_set): Use it instead of
3628 v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx).
3631 * tree-iterator.h (expr_single): Declare.
3632 * tree-iterator.c (expr_single): New function.
3633 * tree.h (protected_set_expr_location_if_unset): Declare.
3634 * tree.c (protected_set_expr_location): Use expr_single.
3635 (protected_set_expr_location_if_unset): New function.
3637 2020-04-03 Jeff Law <law@redhat.com>
3639 PR rtl-optimization/92264
3640 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle
3641 reloading of auto-increment addressing modes.
3643 2020-04-03 H.J. Lu <hongjiu.lu@intel.com>
3646 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand
3649 2020-04-03 Jeff Law <law@redhat.com>
3651 PR rtl-optimization/92264
3652 * config/m32r/m32r.c (m32r_output_block_move): Properly account for
3653 post-increment addressing of source operands as well as residuals
3654 when computing any adjustments to the input pointer.
3656 2020-04-03 Jakub Jelinek <jakub@redhat.com>
3659 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
3660 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
3661 second half of first lane from first lane of second operand and
3662 first half of second lane from second lane of first operand.
3664 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
3666 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE.
3668 2020-04-03 Tamar Christina <tamar.christina@arm.com>
3671 * common/config/aarch64/aarch64-common.c
3672 (aarch64_get_extension_string_for_isa_flags): Handle default flags.
3674 2020-04-03 Richard Biener <rguenther@suse.de>
3677 * tree.c (array_ref_low_bound): Deal with released SSA names
3680 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com>
3682 * config/gcn/gcn.c (print_operand): Handle unordered comparison
3684 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
3685 comparison operators.
3687 2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
3689 PR tree-optimization/94443
3690 * tree-vect-loop.c (vectorizable_live_operation): Use
3691 gsi_insert_seq_before to replace gsi_insert_before.
3693 2020-04-03 Martin Liska <mliska@suse.cz>
3696 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
3697 Compare type attributes for gimple_call_fntypes.
3699 2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
3701 * alias.c (get_alias_set): Fix comment typos.
3703 2020-04-02 Fritz Reese <foreese@gcc.gnu.org>
3706 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
3707 attribute checking used by TYPE.
3709 2020-04-02 Martin Jambor <mjambor@suse.cz>
3712 * ipa-sra.c (struct caller_issues): New fields candidate and
3713 call_from_outside_comdat.
3714 (check_for_caller_issues): Check for calls from outsied of
3715 candidate's same_comdat_group.
3716 (check_all_callers_for_issues): Set up issues.candidate, check result
3718 (mark_callers_calls_comdat_local): New function.
3719 (process_isra_node_results): Set calls_comdat_local of callers if
3722 2020-04-02 Richard Biener <rguenther@suse.de>
3725 * common.opt (ffinite-loops): Initialize to zero.
3726 * opts.c (default_options_table): Remove OPT_ffinite_loops
3728 * cfgloop.h (loop::finite_p): New member.
3729 * cfgloopmanip.c (copy_loop_info): Copy finite_p.
3730 * ipa-icf-gimple.c (func_checker::compare_loops): Compare
3732 * lto-streamer-in.c (input_cfg): Stream finite_p.
3733 * lto-streamer-out.c (output_cfg): Likewise.
3734 * tree-cfg.c (replace_loop_annotate): Initialize finite_p
3735 from flag_finite_loops at CFG build time.
3736 * tree-ssa-loop-niter.c (finite_loop_p): Check the loops
3737 finite_p flag instead of flag_finite_loops.
3738 * doc/invoke.texi (ffinite-loops): Adjust documentation of
3741 2020-04-02 Richard Biener <rguenther@suse.de>
3744 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting
3745 DW_TAG_imported_unit.
3747 2020-04-02 Maciej W. Rozycki <macro@wdc.com>
3749 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux>
3750 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to
3753 2020-04-02 Kewen Lin <linkw@gcc.gnu.org>
3755 PR tree-optimization/94401
3756 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE
3757 access type when loading halves of vector to avoid peeling for gaps.
3759 2020-04-02 Jakub Jelinek <jakub@redhat.com>
3761 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in
3762 between a string literal and MIPS_SYSVERSION_SPEC macro.
3764 2020-04-02 Martin Jambor <mjambor@suse.cz>
3766 * doc/invoke.texi (Optimize Options): Document sra-max-propagations.
3768 2020-04-02 Jakub Jelinek <jakub@redhat.com>
3770 PR rtl-optimization/92264
3771 * params.opt (-param=max-find-base-term-values=): Decrease default
3774 PR rtl-optimization/92264
3775 * rtl.h (struct rtx_def): Mention that call bit is used as
3776 SP_DERIVED_VALUE_P in cselib.c.
3777 * cselib.c (SP_DERIVED_VALUE_P): Define.
3778 (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier.
3779 (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P
3780 val_rtx and sp based expression where offsets cancel each other.
3781 (preserve_constants_and_equivs): Formatting fix.
3782 (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P
3783 locs list for cfa_base_preserved_val if needed. Formatting fix.
3784 (autoinc_split): If the to be returned value is a REG, MEM or
3785 VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its
3786 locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off.
3787 (rtx_equal_for_cselib_1): Call autoinc_split even if both
3788 expressions are PLUS in Pmode with CONST_INT second operands.
3789 Handle SP_DERIVED_VALUE_P cases.
3790 (cselib_hash_plus_const_int): New function.
3791 (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT
3792 second operand, as well as for PRE_DEC etc. that ought to be
3793 hashed the same way.
3794 (cselib_subst_to_values): Substitute PLUS with Pmode and
3795 CONST_INT operand if the first operand is a VALUE which has
3796 SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the
3797 SP_DERIVED_VALUE_P + adjusted offset.
3798 (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx,
3799 set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding
3800 SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location.
3801 * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv
3802 on the sp value before calling cselib_add_permanent_equiv on the
3804 * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC
3805 in the insn without REG_INC note.
3806 (replace_read): Punt on RTX_AUTOINC in the *loc being replaced.
3807 Punt on invalid insns added by copy_to_mode_reg. Formatting fixes.
3810 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
3811 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.
3813 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3816 * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define.
3817 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
3818 * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify
3819 intrinsic defintion by adding a new builtin call to writeback into base
3821 (__arm_vldrdq_gather_base_wb_u64): Likewise.
3822 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
3823 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
3824 (__arm_vldrwq_gather_base_wb_s32): Likewise.
3825 (__arm_vldrwq_gather_base_wb_u32): Likewise.
3826 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
3827 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
3828 (__arm_vldrwq_gather_base_wb_f32): Likewise.
3829 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
3830 * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify
3831 builtin's qualifier.
3832 (vldrdq_gather_base_wb_z_u): Likewise.
3833 (vldrwq_gather_base_wb_u): Likewise.
3834 (vldrdq_gather_base_wb_u): Likewise.
3835 (vldrwq_gather_base_wb_z_s): Likewise.
3836 (vldrwq_gather_base_wb_z_f): Likewise.
3837 (vldrdq_gather_base_wb_z_s): Likewise.
3838 (vldrwq_gather_base_wb_s): Likewise.
3839 (vldrwq_gather_base_wb_f): Likewise.
3840 (vldrdq_gather_base_wb_s): Likewise.
3841 (vldrwq_gather_base_nowb_z_u): Define builtin.
3842 (vldrdq_gather_base_nowb_z_u): Likewise.
3843 (vldrwq_gather_base_nowb_u): Likewise.
3844 (vldrdq_gather_base_nowb_u): Likewise.
3845 (vldrwq_gather_base_nowb_z_s): Likewise.
3846 (vldrwq_gather_base_nowb_z_f): Likewise.
3847 (vldrdq_gather_base_nowb_z_s): Likewise.
3848 (vldrwq_gather_base_nowb_s): Likewise.
3849 (vldrwq_gather_base_nowb_f): Likewise.
3850 (vldrdq_gather_base_nowb_s): Likewise.
3851 * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL
3853 (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern.
3854 (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern.
3855 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern.
3856 (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern.
3857 (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern.
3858 (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern.
3859 (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern.
3860 (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern.
3861 (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern.
3862 (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern.
3863 (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern.
3865 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3867 * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
3868 ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
3869 ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
3870 ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
3871 ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
3872 ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
3873 ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
3874 ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
3875 ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
3877 ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
3878 ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
3879 Remove constraints from expander.
3880 * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
3881 ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
3882 ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
3883 ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
3884 ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
3885 ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.
3887 2020-04-01 Peter Bergner <bergner@linux.ibm.com>
3889 PR rtl-optimization/94123
3890 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for
3891 flag_split_wide_types_early.
3893 2020-04-01 Joerg Sonnenberger <joerg@bec.de>
3895 * doc/extend.texi (Common Function Attributes): Fix typo.
3897 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org>
3900 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition
3903 2020-04-01 Zackery Spytz <zspytz@gmail.com>
3905 * doc/extend.texi: Fix a typo in the documentation of the
3906 copy function attribute.
3908 2020-04-01 Jakub Jelinek <jakub@redhat.com>
3911 * tree-object-size.c (pass_object_sizes::execute): Don't call
3912 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
3913 call replace_call_with_value.
3915 2020-04-01 Kewen Lin <linkw@gcc.gnu.org>
3917 PR tree-optimization/94043
3918 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed
3919 phi for vec_lhs and use it for lane extraction.
3921 2020-03-31 Felix Yang <felix.yang@huawei.com>
3923 PR tree-optimization/94398
3924 * tree-vect-stmts.c (vectorizable_store): Instead of calling
3925 vect_supportable_dr_alignment, set alignment_support_scheme to
3926 dr_unaligned_supported for gather-scatter accesses.
3927 (vectorizable_load): Likewise.
3929 2020-03-31 Andrew Stubbs <ams@codesourcery.com>
3931 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF):
3933 (vnsi, VnSI, vndi, VnDI): New mode attributes.
3934 (mov<mode>): Use <VnDI> in place of V64DI.
3935 (mov<mode>_exec): Likewise.
3936 (mov<mode>_sgprbase): Likewise.
3937 (reload_out<mode>): Likewise.
3938 (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64.
3939 (gather_load<mode>v64si): Rename to ...
3940 (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI,
3941 and <VnDI> in place of V64DI.
3942 (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI.
3943 (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI.
3944 (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>.
3945 (scatter_store<mode>v64si): Rename to ...
3946 (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
3947 (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>.
3948 (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
3949 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
3950 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
3951 (ds_bpermute<mode>): Use <VnSI>.
3952 (addv64si3_vcc<exec_vcc>): Rename to ...
3953 (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
3954 (addv64si3_vcc_dup<exec_vcc>): Rename to ...
3955 (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI.
3956 (addcv64si3<exec_vcc>): Rename to ...
3957 (addc<mode>3<exec_vcc>): ... this, and use V_SI.
3958 (subv64si3_vcc<exec_vcc>): Rename to ...
3959 (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
3960 (subcv64si3<exec_vcc>): Rename to ...
3961 (subc<mode>3<exec_vcc>): ... this, and use V_SI.
3962 (addv64di3): Rename to ...
3963 (add<mode>3): ... this, and use V_DI.
3964 (addv64di3_exec): Rename to ...
3965 (add<mode>3_exec): ... this, and use V_DI.
3966 (subv64di3): Rename to ...
3967 (sub<mode>3): ... this, and use V_DI.
3968 (subv64di3_exec): Rename to ...
3969 (sub<mode>3_exec): ... this, and use V_DI.
3970 (addv64di3_zext): Rename to ...
3971 (add<mode>3_zext): ... this, and use V_DI and <VnSI>.
3972 (addv64di3_zext_exec): Rename to ...
3973 (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
3974 (addv64di3_zext_dup): Rename to ...
3975 (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>.
3976 (addv64di3_zext_dup_exec): Rename to ...
3977 (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>.
3978 (addv64di3_zext_dup2): Rename to ...
3979 (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
3980 (addv64di3_zext_dup2_exec): Rename to ...
3981 (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
3982 (addv64di3_sext_dup2): Rename to ...
3983 (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>.
3984 (addv64di3_sext_dup2_exec): Rename to ...
3985 (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>.
3986 (<su>mulv64si3_highpart<exec>): Rename to ...
3987 (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>.
3988 (mulv64di3): Rename to ...
3989 (mul<mode>3): ... this, and use V_DI and <VnSI>.
3990 (mulv64di3_exec): Rename to ...
3991 (mul<mode>3_exec): ... this, and use V_DI and <VnSI>.
3992 (mulv64di3_zext): Rename to ...
3993 (mul<mode>3_zext): ... this, and use V_DI and <VnSI>.
3994 (mulv64di3_zext_exec): Rename to ...
3995 (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
3996 (mulv64di3_zext_dup2): Rename to ...
3997 (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
3998 (mulv64di3_zext_dup2_exec): Rename to ...
3999 (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
4000 (<expander>v64di3): Rename to ...
4001 (<expander><mode>3): ... this, and use V_DI and <VnSI>.
4002 (<expander>v64di3_exec): Rename to ...
4003 (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>.
4004 (<expander>v64si3<exec>): Rename to ...
4005 (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
4006 (v<expander>v64si3<exec>): Rename to ...
4007 (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
4008 (<expander>v64si3<exec>): Rename to ...
4009 (<expander><vnsi>3<exec>): ... this, and use V_SI.
4010 (subv64df3<exec>): Rename to ...
4011 (sub<mode>3<exec>): ... this, and use V_DF.
4012 (truncv64di<mode>2): Rename to ...
4013 (trunc<vndi><mode>2): ... this, and use <VnDI>.
4014 (truncv64di<mode>2_exec): Rename to ...
4015 (trunc<vndi><mode>2_exec): ... this, and use <VnDI>.
4016 (<convop><mode>v64di2): Rename to ...
4017 (<convop><mode><vndi>2): ... this, and use <VnDI>.
4018 (<convop><mode>v64di2_exec): Rename to ...
4019 (<convop><mode><vndi>2_exec): ... this, and use <VnDI>.
4020 (vec_cmp<u>v64qidi): Rename to ...
4021 (vec_cmp<u><mode>di): ... this, and use <VnSI>.
4022 (vec_cmp<u>v64qidi_exec): Rename to ...
4023 (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>.
4024 (vcond_mask_<mode>di): Use <VnDI>.
4025 (maskload<mode>di): Likewise.
4026 (maskstore<mode>di): Likewise.
4027 (mask_gather_load<mode>v64si): Rename to ...
4028 (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
4029 (mask_scatter_store<mode>v64si): Rename to ...
4030 (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
4031 (*<reduc_op>_dpp_shr_v64di): Rename to ...
4032 (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
4033 (*plus_carry_in_dpp_shr_v64si): Rename to ...
4034 (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI.
4035 (*plus_carry_dpp_shr_v64di): Rename to ...
4036 (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
4037 (vec_seriesv64si): Rename to ...
4038 (vec_series<mode>): ... this, and use V_SI.
4039 (vec_seriesv64di): Rename to ...
4040 (vec_series<mode>): ... this, and use V_DI.
4042 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
4044 * config/arc/arc.c (arc_print_operand): Use
4045 HOST_WIDE_INT_PRINT_DEC macro.
4047 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
4049 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it.
4051 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4053 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic
4055 (__arm_vbicq): Likewise.
4057 2020-03-31 Vineet Gupta <vgupta@synopsys.com>
4059 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.
4061 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4063 * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the
4064 common section of both MVE Integer and MVE Floating Point.
4066 (vaddlvq_p): Likewise.
4067 (vaddvaq): Likewise.
4068 (vaddvq_p): Likewise.
4069 (vcmpcsq): Likewise.
4070 (vmlsdavxq): Likewise.
4071 (vmlsdavq): Likewise.
4072 (vmladavxq): Likewise.
4073 (vmladavq): Likewise.
4075 (vminavq): Likewise.
4077 (vmaxavq): Likewise.
4078 (vmlaldavq): Likewise.
4079 (vcmphiq): Likewise.
4080 (vaddlvaq): Likewise.
4081 (vrmlaldavhq): Likewise.
4082 (vrmlaldavhxq): Likewise.
4083 (vrmlsldavhq): Likewise.
4084 (vrmlsldavhxq): Likewise.
4085 (vmlsldavxq): Likewise.
4086 (vmlsldavq): Likewise.
4088 (vrmlaldavhaq): Likewise.
4089 (vcmpgeq_m_n): Likewise.
4090 (vmlsdavxq_p): Likewise.
4091 (vmlsdavq_p): Likewise.
4092 (vmlsdavaxq): Likewise.
4093 (vmlsdavaq): Likewise.
4094 (vaddvaq_p): Likewise.
4095 (vcmpcsq_m_n): Likewise.
4096 (vcmpcsq_m): Likewise.
4097 (vmladavxq_p): Likewise.
4098 (vmladavq_p): Likewise.
4099 (vmladavaxq): Likewise.
4100 (vmladavaq): Likewise.
4101 (vminvq_p): Likewise.
4102 (vminavq_p): Likewise.
4103 (vmaxvq_p): Likewise.
4104 (vmaxavq_p): Likewise.
4105 (vcmphiq_m): Likewise.
4106 (vaddlvaq_p): Likewise.
4107 (vmlaldavaq): Likewise.
4108 (vmlaldavaxq): Likewise.
4109 (vmlaldavq_p): Likewise.
4110 (vmlaldavxq_p): Likewise.
4111 (vmlsldavaq): Likewise.
4112 (vmlsldavaxq): Likewise.
4113 (vmlsldavq_p): Likewise.
4114 (vmlsldavxq_p): Likewise.
4115 (vrmlaldavhaxq): Likewise.
4116 (vrmlaldavhq_p): Likewise.
4117 (vrmlaldavhxq_p): Likewise.
4118 (vrmlsldavhaq): Likewise.
4119 (vrmlsldavhaxq): Likewise.
4120 (vrmlsldavhq_p): Likewise.
4121 (vrmlsldavhxq_p): Likewise.
4122 (vabavq_p): Likewise.
4123 (vmladavaq_p): Likewise.
4124 (vstrbq_scatter_offset): Likewise.
4125 (vstrbq_p): Likewise.
4126 (vstrbq_scatter_offset_p): Likewise.
4127 (vstrdq_scatter_base_p): Likewise.
4128 (vstrdq_scatter_base): Likewise.
4129 (vstrdq_scatter_offset_p): Likewise.
4130 (vstrdq_scatter_offset): Likewise.
4131 (vstrdq_scatter_shifted_offset_p): Likewise.
4132 (vstrdq_scatter_shifted_offset): Likewise.
4133 (vmaxq_x): Likewise.
4134 (vminq_x): Likewise.
4135 (vmovlbq_x): Likewise.
4136 (vmovltq_x): Likewise.
4137 (vmulhq_x): Likewise.
4138 (vmullbq_int_x): Likewise.
4139 (vmullbq_poly_x): Likewise.
4140 (vmulltq_int_x): Likewise.
4141 (vmulltq_poly_x): Likewise.
4144 2020-03-31 Jakub Jelinek <jakub@redhat.com>
4147 * config/aarch64/constraints.md (Uph): New constraint.
4148 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
4149 (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
4152 2020-03-31 Marc Glisse <marc.glisse@inria.fr>
4153 Jakub Jelinek <jakub@redhat.com>
4156 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
4157 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.
4159 2020-03-31 Jakub Jelinek <jakub@redhat.com>
4161 PR tree-optimization/94403
4162 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also
4163 ENUMERAL_TYPE lhs_type.
4165 PR rtl-optimization/94344
4166 * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision
4167 conversions, either on both operands of |^+ or just one. Handle
4168 also extra same precision conversion on RSHIFT_EXPR first operand
4169 provided RSHIFT_EXPR is performed in unsigned type.
4171 2020-03-30 David Malcolm <dmalcolm@redhat.com>
4173 * lra.c (finish_insn_code_data_once): Set the array elements
4174 to NULL after freeing them.
4176 2020-03-30 Andreas Schwab <schwab@suse.de>
4178 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]:
4181 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com>
4183 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code
4184 to skip defining builtins based on builtin_mask.
4186 2020-03-30 Jakub Jelinek <jakub@redhat.com>
4189 * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If
4190 !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input
4191 operand is a register. Don't enable masked variants for V*[QH]Imode.
4194 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
4195 <store_mask_constraint> instead of m in output operand constraint.
4196 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
4199 2020-03-30 Alan Modra <amodra@gmail.com>
4201 * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern.
4202 (rs6000_indirect_call_template_1): Adjust to suit.
4203 * config/rs6000/rs6000.md (call_local): Merge call_local32,
4204 call_local64, and call_local_aix.
4205 (call_value_local): Simlarly.
4206 (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit,
4207 and disable pattern when CALL_LONG.
4208 (call_indirect_aix, call_value_indirect_aix): Adjust rtl.
4209 (call_indirect_elfv2, call_indirect_pcrel): Likewise.
4210 (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise.
4212 2020-03-29 H.J. Lu <hongjiu.lu@intel.com>
4215 * doc/invoke.texi: Update -falign-functions, -falign-loops and
4216 -falign-jumps documentation.
4218 2020-03-29 Martin Liska <mliska@suse.cz>
4221 * cgraphunit.c (process_function_and_variable_attributes): Remove
4222 double 'attribute' words.
4224 2020-03-29 John David Anglin <dave.anglin@bell.net>
4226 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate
4229 2020-03-28 Jakub Jelinek <jakub@redhat.com>
4232 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const
4233 to true after setting size to integer_one_node.
4235 PR tree-optimization/94329
4236 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
4237 on the last stmt in a bb, make sure gsi_prev isn't done immediately
4240 2020-03-27 Alan Modra <amodra@gmail.com>
4243 * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile
4244 for PLT16_LO and PLT_PCREL.
4245 * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove.
4246 (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define.
4247 (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile.
4249 2020-03-27 Martin Sebor <msebor@redhat.com>
4252 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes.
4254 2020-03-27 Andrew Stubbs <ams@codesourcery.com>
4256 * config/gcn/gcn-valu.md:
4257 (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout.
4258 (VEC_1REG_MODE): Delete.
4259 (VEC_1REG_ALT): Delete.
4260 (VEC_ALL1REG_MODE): Rename to V_1REG throughout.
4261 (VEC_1REG_INT_MODE): Delete.
4262 (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout.
4263 (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout.
4264 (VEC_2REG_MODE): Rename to V_2REG throughout.
4265 (VEC_REG_MODE): Rename to V_noHI throughout.
4266 (VEC_ALLREG_MODE): Rename to V_ALL throughout.
4267 (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout.
4268 (VEC_ALLREG_INT_MODE): Rename to V_INT throughout.
4269 (VEC_INT_MODE): Delete.
4270 (VEC_FP_MODE): Rename to V_FP throughout and move to top.
4271 (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top.
4272 (FP_MODE): Delete and replace with FP throughout.
4273 (FP_1REG_MODE): Delete and replace with FP_1REG throughout.
4274 (VCMP_MODE): Rename to V_noQI throughout and move to top.
4275 (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top.
4276 * config/gcn/gcn.md (FP): New mode iterator.
4277 (FP_1REG): New mode iterator.
4279 2020-03-27 David Malcolm <dmalcolm@redhat.com>
4281 * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this
4282 now emits two .dot files.
4283 * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD.
4284 (graphviz_out::end_tr): Only close a TR, not a TD.
4285 (graphviz_out::begin_td): New.
4286 (graphviz_out::end_td): New.
4287 (graphviz_out::begin_trtd): New, replacing the old implementation
4288 of graphviz_out::begin_tr.
4289 (graphviz_out::end_tdtr): New, replacing the old implementation
4290 of graphviz_out::end_tr.
4291 * graphviz.h (graphviz_out::begin_td): New decl.
4292 (graphviz_out::end_td): New decl.
4293 (graphviz_out::begin_trtd): New decl.
4294 (graphviz_out::end_tdtr): New decl.
4296 2020-03-27 Richard Biener <rguenther@suse.de>
4299 * dwarf2out.c (should_emit_struct_debug): Return false for
4302 2020-03-27 Richard Biener <rguenther@suse.de>
4304 PR tree-optimization/94352
4305 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
4307 (ssa_propagation_engine::ssa_propagate): ... here after
4308 initializing curr_order.
4310 2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
4312 PR tree-optimization/90332
4313 * tree-vect-stmts.c (vector_vector_composition_type): New function.
4314 (get_group_load_store_type): Adjust to call
4315 vector_vector_composition_type, extend it to construct with scalar
4317 (vectorizable_load): Likewise.
4319 2020-03-27 Roman Zhuykov <zhroma@ispras.ru>
4321 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions.
4322 (create_ddg_dep_no_link): Likewise.
4323 (add_cross_iteration_register_deps): Move debug instruction check.
4324 Other minor refactoring.
4325 (add_intra_loop_mem_dep): Do not check for debug instructions.
4326 (add_inter_loop_mem_dep): Likewise.
4327 (build_intra_loop_deps): Likewise.
4328 (create_ddg): Do not include debug insns into the graph.
4329 * ddg.h (struct ddg): Remove num_debug field.
4330 * modulo-sched.c (doloop_register_get): Adjust condition.
4331 (res_MII): Remove DDG num_debug field usage.
4332 (sms_schedule_by_order): Use assertion against debug insns.
4333 (ps_has_conflicts): Drop debug insn check.
4335 2020-03-26 Jakub Jelinek <jakub@redhat.com>
4338 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST
4339 that contains exactly one non-DEBUG_BEGIN_STMT statement.
4342 * gimple.h (gimple_seq_first_nondebug_stmt): New function.
4343 (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains
4344 a single non-debug stmt followed by one or more debug stmts.
4345 * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt
4346 instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt
4347 and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and
4348 gimple_seq_last to check if outer_stmt gbind could be reused and
4349 if yes and it is surrounded by any debug stmts, move them into the
4352 PR rtl-optimization/92264
4353 * var-tracking.c (add_stores): Call cselib_set_value_sp_based even
4354 for sp based values in !frame_pointer_needed
4355 && !ACCUMULATE_OUTGOING_ARGS functions.
4357 2020-03-26 Felix Yang <felix.yang@huawei.com>
4359 PR tree-optimization/94269
4360 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
4362 operation to single basic block.
4364 2020-03-25 Jeff Law <law@redhat.com>
4366 PR rtl-optimization/90275
4367 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the
4370 2020-03-25 Jakub Jelinek <jakub@redhat.com>
4373 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to
4374 mode rather than VOIDmode.
4376 2020-03-25 Martin Sebor <msebor@redhat.com>
4379 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings
4380 even for alloca calls resulting from system macro expansion.
4381 Include inlining context in all warnings.
4383 2020-03-25 Richard Sandiford <richard.sandiford@arm.com>
4386 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
4387 FPRs to change between SDmode and DDmode.
4389 2020-03-25 Martin Sebor <msebor@redhat.com>
4391 PR tree-optimization/94131
4392 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length
4394 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming
4395 types have constant sizes.
4397 2020-03-25 Martin Liska <mliska@suse.cz>
4400 * configure.ac: Report error only when --with-zstd
4402 * configure: Regenerate.
4404 2020-03-25 Jakub Jelinek <jakub@redhat.com>
4407 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
4408 INSN_CODE (insn) to -1 when changing the pattern.
4410 2020-03-25 Martin Liska <mliska@suse.cz>
4414 * config/i386/i386-features.c (make_resolver_func): Drop
4415 public flag for resolver.
4416 * config/rs6000/rs6000.c (make_resolver_func): Add comdat
4417 group for resolver and drop public flag if possible.
4418 * multiple_target.c (create_dispatcher_calls): Drop unique_name
4419 and resolution as we want to enable LTO privatization of the default
4422 2020-03-25 Martin Liska <mliska@suse.cz>
4425 * configure.ac: Respect --without-zstd and report
4426 error when we can't find header file with --with-zstd.
4427 * configure: Regenerate.
4429 2020-03-25 Jakub Jelinek <jakub@redhat.com>
4432 * varasm.c (output_constructor_array_range): If local->index
4433 RANGE_EXPR doesn't start at the current location in the constructor,
4434 skip needed number of bytes using assemble_zeros or assert we don't
4438 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong
4439 counter instead of DECL_UID.
4441 PR tree-optimization/94300
4442 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset
4443 is positive, make sure that off + size isn't larger than needed_len.
4445 2020-03-25 Richard Biener <rguenther@suse.de>
4446 Jakub Jelinek <jakub@redhat.com>
4449 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
4451 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org>
4453 * doc/sourcebuild.texi (ARM-specific attributes): Add
4455 (Features for dg-add-options): Add arm_fp_dp.
4457 2020-03-24 John David Anglin <danglin@gcc.gnu.org>
4460 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
4462 2020-03-24 Tobias Burnus <tobias@codesourcery.com>
4465 * omp-offload.c (omp_finish_file): Fix target-link handling if
4466 targetm_common.have_named_sections is false.
4468 2020-03-24 Jakub Jelinek <jakub@redhat.com>
4471 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode
4475 * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to
4476 e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts.
4477 If not after and at *incr_pos is a debug stmt, set stmt location to
4478 location of next non-debug stmt after it if any.
4481 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
4482 GF_PLF_2, but don't add them to worklist. Don't add an assigment to
4483 worklist or set GF_PLF_2 just because it is used in a debug stmt in
4484 another bb. Formatting improvements.
4487 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and
4488 non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC
4489 regardless of whether TREE_NO_WARNING is set on it or whether
4490 warn_unused_function is true or not.
4492 2020-03-23 Jeff Law <law@redhat.com>
4494 PR rtl-optimization/90275
4497 * simplify-rtx.c (comparison_code_valid_for_mode): New function.
4498 (simplify_logical_relational_operation): Use it.
4500 2020-03-23 Jakub Jelinek <jakub@redhat.com>
4503 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on
4504 ultimate rhs and if returned something different, reconstructing
4507 2020-03-23 Lewis Hyatt <lhyatt@gmail.com>
4509 * opts.c (print_filtered_help): Improve the help text for alias options.
4511 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4512 Andre Vieira <andre.simoesdiasvieira@arm.com>
4513 Mihail Ionescu <mihail.ionescu@arm.com>
4515 * config/arm/arm_mve.h (vshlcq_m_s8): Define macro.
4516 (vshlcq_m_u8): Likewise.
4517 (vshlcq_m_s16): Likewise.
4518 (vshlcq_m_u16): Likewise.
4519 (vshlcq_m_s32): Likewise.
4520 (vshlcq_m_u32): Likewise.
4521 (__arm_vshlcq_m_s8): Define intrinsic.
4522 (__arm_vshlcq_m_u8): Likewise.
4523 (__arm_vshlcq_m_s16): Likewise.
4524 (__arm_vshlcq_m_u16): Likewise.
4525 (__arm_vshlcq_m_s32): Likewise.
4526 (__arm_vshlcq_m_u32): Likewise.
4527 (vshlcq_m): Define polymorphic variant.
4528 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE):
4529 Use builtin qualifier.
4530 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
4531 * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern.
4532 (mve_vshlcq_m_carry_<supf><mode>): Likewise.
4533 (mve_vshlcq_m_<supf><mode>): Likewise.
4535 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4537 * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier.
4538 (UQSHL_QUALIFIERS): Likewise.
4539 (ASRL_QUALIFIERS): Likewise.
4540 (SQSHL_QUALIFIERS): Likewise.
4541 * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in
4543 (sqrshr): Define macro.
4544 (sqrshrl): Likewise.
4545 (sqrshrl_sat48): Likewise.
4551 (uqrshll): Likewise.
4552 (uqrshll_sat48): Likewise.
4559 (__arm_lsll): Define intrinsic.
4560 (__arm_asrl): Likewise.
4561 (__arm_uqrshll): Likewise.
4562 (__arm_uqrshll_sat48): Likewise.
4563 (__arm_sqrshrl): Likewise.
4564 (__arm_sqrshrl_sat48): Likewise.
4565 (__arm_uqshll): Likewise.
4566 (__arm_urshrl): Likewise.
4567 (__arm_srshrl): Likewise.
4568 (__arm_sqshll): Likewise.
4569 (__arm_uqrshl): Likewise.
4570 (__arm_sqrshr): Likewise.
4571 (__arm_uqshl): Likewise.
4572 (__arm_urshr): Likewise.
4573 (__arm_sqshl): Likewise.
4574 (__arm_srshr): Likewise.
4575 * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin
4577 (UQSHL_QUALIFIERS): Likewise.
4578 (ASRL_QUALIFIERS): Likewise.
4579 (SQSHL_QUALIFIERS): Likewise.
4580 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern.
4581 (mve_sqrshrl_sat<supf>_di): Likewise.
4582 (mve_uqrshl_si): Likewise.
4583 (mve_sqrshr_si): Likewise.
4584 (mve_uqshll_di): Likewise.
4585 (mve_urshrl_di): Likewise.
4586 (mve_uqshl_si): Likewise.
4587 (mve_urshr_si): Likewise.
4588 (mve_sqshl_si): Likewise.
4589 (mve_srshr_si): Likewise.
4590 (mve_srshrl_di): Likewise.
4591 (mve_sqshll_di): Likewise.
4593 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4594 Andre Vieira <andre.simoesdiasvieira@arm.com>
4595 Mihail Ionescu <mihail.ionescu@arm.com>
4597 * config/arm/arm_mve.h (vsetq_lane_f16): Define macro.
4598 (vsetq_lane_f32): Likewise.
4599 (vsetq_lane_s16): Likewise.
4600 (vsetq_lane_s32): Likewise.
4601 (vsetq_lane_s8): Likewise.
4602 (vsetq_lane_s64): Likewise.
4603 (vsetq_lane_u8): Likewise.
4604 (vsetq_lane_u16): Likewise.
4605 (vsetq_lane_u32): Likewise.
4606 (vsetq_lane_u64): Likewise.
4607 (vgetq_lane_f16): Likewise.
4608 (vgetq_lane_f32): Likewise.
4609 (vgetq_lane_s16): Likewise.
4610 (vgetq_lane_s32): Likewise.
4611 (vgetq_lane_s8): Likewise.
4612 (vgetq_lane_s64): Likewise.
4613 (vgetq_lane_u8): Likewise.
4614 (vgetq_lane_u16): Likewise.
4615 (vgetq_lane_u32): Likewise.
4616 (vgetq_lane_u64): Likewise.
4617 (__ARM_NUM_LANES): Likewise.
4618 (__ARM_LANEQ): Likewise.
4619 (__ARM_CHECK_LANEQ): Likewise.
4620 (__arm_vsetq_lane_s16): Define intrinsic.
4621 (__arm_vsetq_lane_s32): Likewise.
4622 (__arm_vsetq_lane_s8): Likewise.
4623 (__arm_vsetq_lane_s64): Likewise.
4624 (__arm_vsetq_lane_u8): Likewise.
4625 (__arm_vsetq_lane_u16): Likewise.
4626 (__arm_vsetq_lane_u32): Likewise.
4627 (__arm_vsetq_lane_u64): Likewise.
4628 (__arm_vgetq_lane_s16): Likewise.
4629 (__arm_vgetq_lane_s32): Likewise.
4630 (__arm_vgetq_lane_s8): Likewise.
4631 (__arm_vgetq_lane_s64): Likewise.
4632 (__arm_vgetq_lane_u8): Likewise.
4633 (__arm_vgetq_lane_u16): Likewise.
4634 (__arm_vgetq_lane_u32): Likewise.
4635 (__arm_vgetq_lane_u64): Likewise.
4636 (__arm_vsetq_lane_f16): Likewise.
4637 (__arm_vsetq_lane_f32): Likewise.
4638 (__arm_vgetq_lane_f16): Likewise.
4639 (__arm_vgetq_lane_f32): Likewise.
4640 (vgetq_lane): Define polymorphic variant.
4641 (vsetq_lane): Likewise.
4642 * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL
4644 (mve_vec_extractv2didi): Likewise.
4645 (mve_vec_extract_sext_internal<mode>): Likewise.
4646 (mve_vec_extract_zext_internal<mode>): Likewise.
4647 (mve_vec_set<mode>_internal): Likewise.
4648 (mve_vec_setv2di_internal): Likewise.
4649 * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md
4651 (vec_extract<mode><V_elem_l>): Rename to
4652 "neon_vec_extract<mode><V_elem_l>".
4653 (vec_extractv2didi): Rename to "neon_vec_extractv2didi".
4654 * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL
4655 pattern common for MVE and NEON.
4656 (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both
4659 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
4661 * config/arm/mve.md (earlyclobber_32): New mode attribute.
4662 (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*,
4663 mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers.
4665 2020-03-23 Richard Biener <rguenther@suse.de>
4667 PR tree-optimization/94261
4668 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
4669 IL operand swapping code.
4670 (vect_slp_rearrange_stmts): Do not arrange isomorphic
4671 nodes that would need operation code adjustments.
4673 2020-03-23 Tobias Burnus <tobias@codesourcery.com>
4675 * doc/install.texi (amdgcn-*-amdhsa): Renamed
4676 from amdgcn-unknown-amdhsa; change
4677 amdgcn-unknown-amdhsa to amdgcn-amdhsa.
4679 2020-03-23 Richard Biener <rguenther@suse.de>
4682 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
4683 directly rather than also folding it via build_fold_addr_expr.
4685 2020-03-23 Richard Biener <rguenther@suse.de>
4687 PR tree-optimization/94266
4688 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
4689 addresses of TARGET_MEM_REFs.
4691 2020-03-23 Martin Liska <mliska@suse.cz>
4694 * symtab.c (symtab_node::clone_references): Save speculative_id
4695 as ref may be overwritten by create_reference.
4696 (symtab_node::clone_referring): Likewise.
4697 (symtab_node::clone_reference): Likewise.
4699 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
4701 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
4702 references to Darwin.
4703 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
4704 unconditionally and comment on why.
4706 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
4708 * config/darwin.c (darwin_mergeable_constant_section): Collect
4709 section anchor checks into the caller.
4710 (machopic_select_section): Collect section anchor checks into
4711 the determination of 'effective zero-size' objects. When the
4712 size is unknown, assume it is non-zero, and thus return the
4713 'generic' section for the DECL.
4715 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
4718 * config/darwin.opt: Amend options descriptions.
4720 2020-03-21 Richard Sandiford <richard.sandiford@arm.com>
4722 PR rtl-optimization/94052
4723 * lra-constraints.c (simplify_operand_subreg): Reload the inner
4724 register of a paradoxical subreg if simplify_subreg_regno fails
4725 to give a valid hard register for the outer mode.
4727 2020-03-20 Martin Jambor <mjambor@suse.cz>
4729 PR tree-optimization/93435
4730 * params.opt (sra-max-propagations): New parameter.
4731 * tree-sra.c (propagation_budget): New variable.
4732 (budget_for_propagation_access): New function.
4733 (propagate_subaccesses_from_rhs): Use it.
4734 (propagate_subaccesses_from_lhs): Likewise.
4735 (propagate_all_subaccesses): Set up and destroy propagation_budget.
4737 2020-03-20 Carl Love <cel@us.ibm.com>
4740 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4741 Add check for TARGET_FPRND for Power 7 or newer.
4743 2020-03-20 Jan Hubicka <hubicka@ucw.cz>
4746 * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag.
4747 (cgraph_edge::redirect_callee): Move here; likewise.
4748 (cgraph_node::remove_callees): Update calls_comdat_local flag.
4749 (cgraph_node::verify_node): Verify that calls_comdat_local flag match
4751 (cgraph_node::check_calls_comdat_local_p): New member function.
4752 * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare.
4753 (cgraph_edge::redirect_callee): Move offline.
4754 * ipa-fnsummary.c (compute_fn_summary): Do not compute
4755 calls_comdat_local flag here.
4756 * ipa-inline-transform.c (inline_call): Fix updating of
4757 calls_comdat_local flag.
4758 * ipa-split.c (split_function): Use true instead of 1 to set the flag.
4759 * symtab.c (symtab_node::add_to_same_comdat_group): Update
4760 calls_comdat_local flag.
4762 2020-03-20 Richard Biener <rguenther@suse.de>
4764 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree
4765 from the possibly modified root.
4767 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4768 Andre Vieira <andre.simoesdiasvieira@arm.com>
4769 Mihail Ionescu <mihail.ionescu@arm.com>
4771 * config/arm/arm_mve.h (vst1q_p_u8): Define macro.
4772 (vst1q_p_s8): Likewise.
4773 (vst2q_s8): Likewise.
4774 (vst2q_u8): Likewise.
4775 (vld1q_z_u8): Likewise.
4776 (vld1q_z_s8): Likewise.
4777 (vld2q_s8): Likewise.
4778 (vld2q_u8): Likewise.
4779 (vld4q_s8): Likewise.
4780 (vld4q_u8): Likewise.
4781 (vst1q_p_u16): Likewise.
4782 (vst1q_p_s16): Likewise.
4783 (vst2q_s16): Likewise.
4784 (vst2q_u16): Likewise.
4785 (vld1q_z_u16): Likewise.
4786 (vld1q_z_s16): Likewise.
4787 (vld2q_s16): Likewise.
4788 (vld2q_u16): Likewise.
4789 (vld4q_s16): Likewise.
4790 (vld4q_u16): Likewise.
4791 (vst1q_p_u32): Likewise.
4792 (vst1q_p_s32): Likewise.
4793 (vst2q_s32): Likewise.
4794 (vst2q_u32): Likewise.
4795 (vld1q_z_u32): Likewise.
4796 (vld1q_z_s32): Likewise.
4797 (vld2q_s32): Likewise.
4798 (vld2q_u32): Likewise.
4799 (vld4q_s32): Likewise.
4800 (vld4q_u32): Likewise.
4801 (vld4q_f16): Likewise.
4802 (vld2q_f16): Likewise.
4803 (vld1q_z_f16): Likewise.
4804 (vst2q_f16): Likewise.
4805 (vst1q_p_f16): Likewise.
4806 (vld4q_f32): Likewise.
4807 (vld2q_f32): Likewise.
4808 (vld1q_z_f32): Likewise.
4809 (vst2q_f32): Likewise.
4810 (vst1q_p_f32): Likewise.
4811 (__arm_vst1q_p_u8): Define intrinsic.
4812 (__arm_vst1q_p_s8): Likewise.
4813 (__arm_vst2q_s8): Likewise.
4814 (__arm_vst2q_u8): Likewise.
4815 (__arm_vld1q_z_u8): Likewise.
4816 (__arm_vld1q_z_s8): Likewise.
4817 (__arm_vld2q_s8): Likewise.
4818 (__arm_vld2q_u8): Likewise.
4819 (__arm_vld4q_s8): Likewise.
4820 (__arm_vld4q_u8): Likewise.
4821 (__arm_vst1q_p_u16): Likewise.
4822 (__arm_vst1q_p_s16): Likewise.
4823 (__arm_vst2q_s16): Likewise.
4824 (__arm_vst2q_u16): Likewise.
4825 (__arm_vld1q_z_u16): Likewise.
4826 (__arm_vld1q_z_s16): Likewise.
4827 (__arm_vld2q_s16): Likewise.
4828 (__arm_vld2q_u16): Likewise.
4829 (__arm_vld4q_s16): Likewise.
4830 (__arm_vld4q_u16): Likewise.
4831 (__arm_vst1q_p_u32): Likewise.
4832 (__arm_vst1q_p_s32): Likewise.
4833 (__arm_vst2q_s32): Likewise.
4834 (__arm_vst2q_u32): Likewise.
4835 (__arm_vld1q_z_u32): Likewise.
4836 (__arm_vld1q_z_s32): Likewise.
4837 (__arm_vld2q_s32): Likewise.
4838 (__arm_vld2q_u32): Likewise.
4839 (__arm_vld4q_s32): Likewise.
4840 (__arm_vld4q_u32): Likewise.
4841 (__arm_vld4q_f16): Likewise.
4842 (__arm_vld2q_f16): Likewise.
4843 (__arm_vld1q_z_f16): Likewise.
4844 (__arm_vst2q_f16): Likewise.
4845 (__arm_vst1q_p_f16): Likewise.
4846 (__arm_vld4q_f32): Likewise.
4847 (__arm_vld2q_f32): Likewise.
4848 (__arm_vld1q_z_f32): Likewise.
4849 (__arm_vst2q_f32): Likewise.
4850 (__arm_vst1q_p_f32): Likewise.
4851 (vld1q_z): Define polymorphic variant.
4854 (vst1q_p): Likewise.
4856 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier.
4858 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern.
4859 (mve_vld2q<mode>): Likewise.
4860 (mve_vld4q<mode>): Likewise.
4862 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4863 Andre Vieira <andre.simoesdiasvieira@arm.com>
4864 Mihail Ionescu <mihail.ionescu@arm.com>
4866 * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define.
4867 (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise.
4868 (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and
4869 "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array.
4870 (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC
4871 and ARM_BUILTIN_SET_FPSCR_NZCVQC.
4872 * config/arm/arm_mve.h (vadciq_s32): Define macro.
4873 (vadciq_u32): Likewise.
4874 (vadciq_m_s32): Likewise.
4875 (vadciq_m_u32): Likewise.
4876 (vadcq_s32): Likewise.
4877 (vadcq_u32): Likewise.
4878 (vadcq_m_s32): Likewise.
4879 (vadcq_m_u32): Likewise.
4880 (vsbciq_s32): Likewise.
4881 (vsbciq_u32): Likewise.
4882 (vsbciq_m_s32): Likewise.
4883 (vsbciq_m_u32): Likewise.
4884 (vsbcq_s32): Likewise.
4885 (vsbcq_u32): Likewise.
4886 (vsbcq_m_s32): Likewise.
4887 (vsbcq_m_u32): Likewise.
4888 (__arm_vadciq_s32): Define intrinsic.
4889 (__arm_vadciq_u32): Likewise.
4890 (__arm_vadciq_m_s32): Likewise.
4891 (__arm_vadciq_m_u32): Likewise.
4892 (__arm_vadcq_s32): Likewise.
4893 (__arm_vadcq_u32): Likewise.
4894 (__arm_vadcq_m_s32): Likewise.
4895 (__arm_vadcq_m_u32): Likewise.
4896 (__arm_vsbciq_s32): Likewise.
4897 (__arm_vsbciq_u32): Likewise.
4898 (__arm_vsbciq_m_s32): Likewise.
4899 (__arm_vsbciq_m_u32): Likewise.
4900 (__arm_vsbcq_s32): Likewise.
4901 (__arm_vsbcq_u32): Likewise.
4902 (__arm_vsbcq_m_s32): Likewise.
4903 (__arm_vsbcq_m_u32): Likewise.
4904 (vadciq_m): Define polymorphic variant.
4906 (vadcq_m): Likewise.
4908 (vsbciq_m): Likewise.
4910 (vsbcq_m): Likewise.
4912 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin
4914 (BINOP_UNONE_UNONE_UNONE): Likewise.
4915 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
4916 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
4917 * config/arm/mve.md (VADCIQ): Define iterator.
4918 (VADCIQ_M): Likewise.
4920 (VSBCQ_M): Likewise.
4922 (VSBCIQ_M): Likewise.
4924 (VADCQ_M): Likewise.
4925 (mve_vadciq_m_<supf>v4si): Define RTL pattern.
4926 (mve_vadciq_<supf>v4si): Likewise.
4927 (mve_vadcq_m_<supf>v4si): Likewise.
4928 (mve_vadcq_<supf>v4si): Likewise.
4929 (mve_vsbciq_m_<supf>v4si): Likewise.
4930 (mve_vsbciq_<supf>v4si): Likewise.
4931 (mve_vsbcq_m_<supf>v4si): Likewise.
4932 (mve_vsbcq_<supf>v4si): Likewise.
4933 (get_fpscr_nzcvqc): Define isns.
4934 (set_fpscr_nzcvqc): Define isns.
4935 * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define.
4936 (UNSPEC_SET_FPSCR_NZCVQC): Define.
4938 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4940 * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro.
4941 (vddupq_x_n_u16): Likewise.
4942 (vddupq_x_n_u32): Likewise.
4943 (vddupq_x_wb_u8): Likewise.
4944 (vddupq_x_wb_u16): Likewise.
4945 (vddupq_x_wb_u32): Likewise.
4946 (vdwdupq_x_n_u8): Likewise.
4947 (vdwdupq_x_n_u16): Likewise.
4948 (vdwdupq_x_n_u32): Likewise.
4949 (vdwdupq_x_wb_u8): Likewise.
4950 (vdwdupq_x_wb_u16): Likewise.
4951 (vdwdupq_x_wb_u32): Likewise.
4952 (vidupq_x_n_u8): Likewise.
4953 (vidupq_x_n_u16): Likewise.
4954 (vidupq_x_n_u32): Likewise.
4955 (vidupq_x_wb_u8): Likewise.
4956 (vidupq_x_wb_u16): Likewise.
4957 (vidupq_x_wb_u32): Likewise.
4958 (viwdupq_x_n_u8): Likewise.
4959 (viwdupq_x_n_u16): Likewise.
4960 (viwdupq_x_n_u32): Likewise.
4961 (viwdupq_x_wb_u8): Likewise.
4962 (viwdupq_x_wb_u16): Likewise.
4963 (viwdupq_x_wb_u32): Likewise.
4964 (vdupq_x_n_s8): Likewise.
4965 (vdupq_x_n_s16): Likewise.
4966 (vdupq_x_n_s32): Likewise.
4967 (vdupq_x_n_u8): Likewise.
4968 (vdupq_x_n_u16): Likewise.
4969 (vdupq_x_n_u32): Likewise.
4970 (vminq_x_s8): Likewise.
4971 (vminq_x_s16): Likewise.
4972 (vminq_x_s32): Likewise.
4973 (vminq_x_u8): Likewise.
4974 (vminq_x_u16): Likewise.
4975 (vminq_x_u32): Likewise.
4976 (vmaxq_x_s8): Likewise.
4977 (vmaxq_x_s16): Likewise.
4978 (vmaxq_x_s32): Likewise.
4979 (vmaxq_x_u8): Likewise.
4980 (vmaxq_x_u16): Likewise.
4981 (vmaxq_x_u32): Likewise.
4982 (vabdq_x_s8): Likewise.
4983 (vabdq_x_s16): Likewise.
4984 (vabdq_x_s32): Likewise.
4985 (vabdq_x_u8): Likewise.
4986 (vabdq_x_u16): Likewise.
4987 (vabdq_x_u32): Likewise.
4988 (vabsq_x_s8): Likewise.
4989 (vabsq_x_s16): Likewise.
4990 (vabsq_x_s32): Likewise.
4991 (vaddq_x_s8): Likewise.
4992 (vaddq_x_s16): Likewise.
4993 (vaddq_x_s32): Likewise.
4994 (vaddq_x_n_s8): Likewise.
4995 (vaddq_x_n_s16): Likewise.
4996 (vaddq_x_n_s32): Likewise.
4997 (vaddq_x_u8): Likewise.
4998 (vaddq_x_u16): Likewise.
4999 (vaddq_x_u32): Likewise.
5000 (vaddq_x_n_u8): Likewise.
5001 (vaddq_x_n_u16): Likewise.
5002 (vaddq_x_n_u32): Likewise.
5003 (vclsq_x_s8): Likewise.
5004 (vclsq_x_s16): Likewise.
5005 (vclsq_x_s32): Likewise.
5006 (vclzq_x_s8): Likewise.
5007 (vclzq_x_s16): Likewise.
5008 (vclzq_x_s32): Likewise.
5009 (vclzq_x_u8): Likewise.
5010 (vclzq_x_u16): Likewise.
5011 (vclzq_x_u32): Likewise.
5012 (vnegq_x_s8): Likewise.
5013 (vnegq_x_s16): Likewise.
5014 (vnegq_x_s32): Likewise.
5015 (vmulhq_x_s8): Likewise.
5016 (vmulhq_x_s16): Likewise.
5017 (vmulhq_x_s32): Likewise.
5018 (vmulhq_x_u8): Likewise.
5019 (vmulhq_x_u16): Likewise.
5020 (vmulhq_x_u32): Likewise.
5021 (vmullbq_poly_x_p8): Likewise.
5022 (vmullbq_poly_x_p16): Likewise.
5023 (vmullbq_int_x_s8): Likewise.
5024 (vmullbq_int_x_s16): Likewise.
5025 (vmullbq_int_x_s32): Likewise.
5026 (vmullbq_int_x_u8): Likewise.
5027 (vmullbq_int_x_u16): Likewise.
5028 (vmullbq_int_x_u32): Likewise.
5029 (vmulltq_poly_x_p8): Likewise.
5030 (vmulltq_poly_x_p16): Likewise.
5031 (vmulltq_int_x_s8): Likewise.
5032 (vmulltq_int_x_s16): Likewise.
5033 (vmulltq_int_x_s32): Likewise.
5034 (vmulltq_int_x_u8): Likewise.
5035 (vmulltq_int_x_u16): Likewise.
5036 (vmulltq_int_x_u32): Likewise.
5037 (vmulq_x_s8): Likewise.
5038 (vmulq_x_s16): Likewise.
5039 (vmulq_x_s32): Likewise.
5040 (vmulq_x_n_s8): Likewise.
5041 (vmulq_x_n_s16): Likewise.
5042 (vmulq_x_n_s32): Likewise.
5043 (vmulq_x_u8): Likewise.
5044 (vmulq_x_u16): Likewise.
5045 (vmulq_x_u32): Likewise.
5046 (vmulq_x_n_u8): Likewise.
5047 (vmulq_x_n_u16): Likewise.
5048 (vmulq_x_n_u32): Likewise.
5049 (vsubq_x_s8): Likewise.
5050 (vsubq_x_s16): Likewise.
5051 (vsubq_x_s32): Likewise.
5052 (vsubq_x_n_s8): Likewise.
5053 (vsubq_x_n_s16): Likewise.
5054 (vsubq_x_n_s32): Likewise.
5055 (vsubq_x_u8): Likewise.
5056 (vsubq_x_u16): Likewise.
5057 (vsubq_x_u32): Likewise.
5058 (vsubq_x_n_u8): Likewise.
5059 (vsubq_x_n_u16): Likewise.
5060 (vsubq_x_n_u32): Likewise.
5061 (vcaddq_rot90_x_s8): Likewise.
5062 (vcaddq_rot90_x_s16): Likewise.
5063 (vcaddq_rot90_x_s32): Likewise.
5064 (vcaddq_rot90_x_u8): Likewise.
5065 (vcaddq_rot90_x_u16): Likewise.
5066 (vcaddq_rot90_x_u32): Likewise.
5067 (vcaddq_rot270_x_s8): Likewise.
5068 (vcaddq_rot270_x_s16): Likewise.
5069 (vcaddq_rot270_x_s32): Likewise.
5070 (vcaddq_rot270_x_u8): Likewise.
5071 (vcaddq_rot270_x_u16): Likewise.
5072 (vcaddq_rot270_x_u32): Likewise.
5073 (vhaddq_x_n_s8): Likewise.
5074 (vhaddq_x_n_s16): Likewise.
5075 (vhaddq_x_n_s32): Likewise.
5076 (vhaddq_x_n_u8): Likewise.
5077 (vhaddq_x_n_u16): Likewise.
5078 (vhaddq_x_n_u32): Likewise.
5079 (vhaddq_x_s8): Likewise.
5080 (vhaddq_x_s16): Likewise.
5081 (vhaddq_x_s32): Likewise.
5082 (vhaddq_x_u8): Likewise.
5083 (vhaddq_x_u16): Likewise.
5084 (vhaddq_x_u32): Likewise.
5085 (vhcaddq_rot90_x_s8): Likewise.
5086 (vhcaddq_rot90_x_s16): Likewise.
5087 (vhcaddq_rot90_x_s32): Likewise.
5088 (vhcaddq_rot270_x_s8): Likewise.
5089 (vhcaddq_rot270_x_s16): Likewise.
5090 (vhcaddq_rot270_x_s32): Likewise.
5091 (vhsubq_x_n_s8): Likewise.
5092 (vhsubq_x_n_s16): Likewise.
5093 (vhsubq_x_n_s32): Likewise.
5094 (vhsubq_x_n_u8): Likewise.
5095 (vhsubq_x_n_u16): Likewise.
5096 (vhsubq_x_n_u32): Likewise.
5097 (vhsubq_x_s8): Likewise.
5098 (vhsubq_x_s16): Likewise.
5099 (vhsubq_x_s32): Likewise.
5100 (vhsubq_x_u8): Likewise.
5101 (vhsubq_x_u16): Likewise.
5102 (vhsubq_x_u32): Likewise.
5103 (vrhaddq_x_s8): Likewise.
5104 (vrhaddq_x_s16): Likewise.
5105 (vrhaddq_x_s32): Likewise.
5106 (vrhaddq_x_u8): Likewise.
5107 (vrhaddq_x_u16): Likewise.
5108 (vrhaddq_x_u32): Likewise.
5109 (vrmulhq_x_s8): Likewise.
5110 (vrmulhq_x_s16): Likewise.
5111 (vrmulhq_x_s32): Likewise.
5112 (vrmulhq_x_u8): Likewise.
5113 (vrmulhq_x_u16): Likewise.
5114 (vrmulhq_x_u32): Likewise.
5115 (vandq_x_s8): Likewise.
5116 (vandq_x_s16): Likewise.
5117 (vandq_x_s32): Likewise.
5118 (vandq_x_u8): Likewise.
5119 (vandq_x_u16): Likewise.
5120 (vandq_x_u32): Likewise.
5121 (vbicq_x_s8): Likewise.
5122 (vbicq_x_s16): Likewise.
5123 (vbicq_x_s32): Likewise.
5124 (vbicq_x_u8): Likewise.
5125 (vbicq_x_u16): Likewise.
5126 (vbicq_x_u32): Likewise.
5127 (vbrsrq_x_n_s8): Likewise.
5128 (vbrsrq_x_n_s16): Likewise.
5129 (vbrsrq_x_n_s32): Likewise.
5130 (vbrsrq_x_n_u8): Likewise.
5131 (vbrsrq_x_n_u16): Likewise.
5132 (vbrsrq_x_n_u32): Likewise.
5133 (veorq_x_s8): Likewise.
5134 (veorq_x_s16): Likewise.
5135 (veorq_x_s32): Likewise.
5136 (veorq_x_u8): Likewise.
5137 (veorq_x_u16): Likewise.
5138 (veorq_x_u32): Likewise.
5139 (vmovlbq_x_s8): Likewise.
5140 (vmovlbq_x_s16): Likewise.
5141 (vmovlbq_x_u8): Likewise.
5142 (vmovlbq_x_u16): Likewise.
5143 (vmovltq_x_s8): Likewise.
5144 (vmovltq_x_s16): Likewise.
5145 (vmovltq_x_u8): Likewise.
5146 (vmovltq_x_u16): Likewise.
5147 (vmvnq_x_s8): Likewise.
5148 (vmvnq_x_s16): Likewise.
5149 (vmvnq_x_s32): Likewise.
5150 (vmvnq_x_u8): Likewise.
5151 (vmvnq_x_u16): Likewise.
5152 (vmvnq_x_u32): Likewise.
5153 (vmvnq_x_n_s16): Likewise.
5154 (vmvnq_x_n_s32): Likewise.
5155 (vmvnq_x_n_u16): Likewise.
5156 (vmvnq_x_n_u32): Likewise.
5157 (vornq_x_s8): Likewise.
5158 (vornq_x_s16): Likewise.
5159 (vornq_x_s32): Likewise.
5160 (vornq_x_u8): Likewise.
5161 (vornq_x_u16): Likewise.
5162 (vornq_x_u32): Likewise.
5163 (vorrq_x_s8): Likewise.
5164 (vorrq_x_s16): Likewise.
5165 (vorrq_x_s32): Likewise.
5166 (vorrq_x_u8): Likewise.
5167 (vorrq_x_u16): Likewise.
5168 (vorrq_x_u32): Likewise.
5169 (vrev16q_x_s8): Likewise.
5170 (vrev16q_x_u8): Likewise.
5171 (vrev32q_x_s8): Likewise.
5172 (vrev32q_x_s16): Likewise.
5173 (vrev32q_x_u8): Likewise.
5174 (vrev32q_x_u16): Likewise.
5175 (vrev64q_x_s8): Likewise.
5176 (vrev64q_x_s16): Likewise.
5177 (vrev64q_x_s32): Likewise.
5178 (vrev64q_x_u8): Likewise.
5179 (vrev64q_x_u16): Likewise.
5180 (vrev64q_x_u32): Likewise.
5181 (vrshlq_x_s8): Likewise.
5182 (vrshlq_x_s16): Likewise.
5183 (vrshlq_x_s32): Likewise.
5184 (vrshlq_x_u8): Likewise.
5185 (vrshlq_x_u16): Likewise.
5186 (vrshlq_x_u32): Likewise.
5187 (vshllbq_x_n_s8): Likewise.
5188 (vshllbq_x_n_s16): Likewise.
5189 (vshllbq_x_n_u8): Likewise.
5190 (vshllbq_x_n_u16): Likewise.
5191 (vshlltq_x_n_s8): Likewise.
5192 (vshlltq_x_n_s16): Likewise.
5193 (vshlltq_x_n_u8): Likewise.
5194 (vshlltq_x_n_u16): Likewise.
5195 (vshlq_x_s8): Likewise.
5196 (vshlq_x_s16): Likewise.
5197 (vshlq_x_s32): Likewise.
5198 (vshlq_x_u8): Likewise.
5199 (vshlq_x_u16): Likewise.
5200 (vshlq_x_u32): Likewise.
5201 (vshlq_x_n_s8): Likewise.
5202 (vshlq_x_n_s16): Likewise.
5203 (vshlq_x_n_s32): Likewise.
5204 (vshlq_x_n_u8): Likewise.
5205 (vshlq_x_n_u16): Likewise.
5206 (vshlq_x_n_u32): Likewise.
5207 (vrshrq_x_n_s8): Likewise.
5208 (vrshrq_x_n_s16): Likewise.
5209 (vrshrq_x_n_s32): Likewise.
5210 (vrshrq_x_n_u8): Likewise.
5211 (vrshrq_x_n_u16): Likewise.
5212 (vrshrq_x_n_u32): Likewise.
5213 (vshrq_x_n_s8): Likewise.
5214 (vshrq_x_n_s16): Likewise.
5215 (vshrq_x_n_s32): Likewise.
5216 (vshrq_x_n_u8): Likewise.
5217 (vshrq_x_n_u16): Likewise.
5218 (vshrq_x_n_u32): Likewise.
5219 (vdupq_x_n_f16): Likewise.
5220 (vdupq_x_n_f32): Likewise.
5221 (vminnmq_x_f16): Likewise.
5222 (vminnmq_x_f32): Likewise.
5223 (vmaxnmq_x_f16): Likewise.
5224 (vmaxnmq_x_f32): Likewise.
5225 (vabdq_x_f16): Likewise.
5226 (vabdq_x_f32): Likewise.
5227 (vabsq_x_f16): Likewise.
5228 (vabsq_x_f32): Likewise.
5229 (vaddq_x_f16): Likewise.
5230 (vaddq_x_f32): Likewise.
5231 (vaddq_x_n_f16): Likewise.
5232 (vaddq_x_n_f32): Likewise.
5233 (vnegq_x_f16): Likewise.
5234 (vnegq_x_f32): Likewise.
5235 (vmulq_x_f16): Likewise.
5236 (vmulq_x_f32): Likewise.
5237 (vmulq_x_n_f16): Likewise.
5238 (vmulq_x_n_f32): Likewise.
5239 (vsubq_x_f16): Likewise.
5240 (vsubq_x_f32): Likewise.
5241 (vsubq_x_n_f16): Likewise.
5242 (vsubq_x_n_f32): Likewise.
5243 (vcaddq_rot90_x_f16): Likewise.
5244 (vcaddq_rot90_x_f32): Likewise.
5245 (vcaddq_rot270_x_f16): Likewise.
5246 (vcaddq_rot270_x_f32): Likewise.
5247 (vcmulq_x_f16): Likewise.
5248 (vcmulq_x_f32): Likewise.
5249 (vcmulq_rot90_x_f16): Likewise.
5250 (vcmulq_rot90_x_f32): Likewise.
5251 (vcmulq_rot180_x_f16): Likewise.
5252 (vcmulq_rot180_x_f32): Likewise.
5253 (vcmulq_rot270_x_f16): Likewise.
5254 (vcmulq_rot270_x_f32): Likewise.
5255 (vcvtaq_x_s16_f16): Likewise.
5256 (vcvtaq_x_s32_f32): Likewise.
5257 (vcvtaq_x_u16_f16): Likewise.
5258 (vcvtaq_x_u32_f32): Likewise.
5259 (vcvtnq_x_s16_f16): Likewise.
5260 (vcvtnq_x_s32_f32): Likewise.
5261 (vcvtnq_x_u16_f16): Likewise.
5262 (vcvtnq_x_u32_f32): Likewise.
5263 (vcvtpq_x_s16_f16): Likewise.
5264 (vcvtpq_x_s32_f32): Likewise.
5265 (vcvtpq_x_u16_f16): Likewise.
5266 (vcvtpq_x_u32_f32): Likewise.
5267 (vcvtmq_x_s16_f16): Likewise.
5268 (vcvtmq_x_s32_f32): Likewise.
5269 (vcvtmq_x_u16_f16): Likewise.
5270 (vcvtmq_x_u32_f32): Likewise.
5271 (vcvtbq_x_f32_f16): Likewise.
5272 (vcvttq_x_f32_f16): Likewise.
5273 (vcvtq_x_f16_u16): Likewise.
5274 (vcvtq_x_f16_s16): Likewise.
5275 (vcvtq_x_f32_s32): Likewise.
5276 (vcvtq_x_f32_u32): Likewise.
5277 (vcvtq_x_n_f16_s16): Likewise.
5278 (vcvtq_x_n_f16_u16): Likewise.
5279 (vcvtq_x_n_f32_s32): Likewise.
5280 (vcvtq_x_n_f32_u32): Likewise.
5281 (vcvtq_x_s16_f16): Likewise.
5282 (vcvtq_x_s32_f32): Likewise.
5283 (vcvtq_x_u16_f16): Likewise.
5284 (vcvtq_x_u32_f32): Likewise.
5285 (vcvtq_x_n_s16_f16): Likewise.
5286 (vcvtq_x_n_s32_f32): Likewise.
5287 (vcvtq_x_n_u16_f16): Likewise.
5288 (vcvtq_x_n_u32_f32): Likewise.
5289 (vrndq_x_f16): Likewise.
5290 (vrndq_x_f32): Likewise.
5291 (vrndnq_x_f16): Likewise.
5292 (vrndnq_x_f32): Likewise.
5293 (vrndmq_x_f16): Likewise.
5294 (vrndmq_x_f32): Likewise.
5295 (vrndpq_x_f16): Likewise.
5296 (vrndpq_x_f32): Likewise.
5297 (vrndaq_x_f16): Likewise.
5298 (vrndaq_x_f32): Likewise.
5299 (vrndxq_x_f16): Likewise.
5300 (vrndxq_x_f32): Likewise.
5301 (vandq_x_f16): Likewise.
5302 (vandq_x_f32): Likewise.
5303 (vbicq_x_f16): Likewise.
5304 (vbicq_x_f32): Likewise.
5305 (vbrsrq_x_n_f16): Likewise.
5306 (vbrsrq_x_n_f32): Likewise.
5307 (veorq_x_f16): Likewise.
5308 (veorq_x_f32): Likewise.
5309 (vornq_x_f16): Likewise.
5310 (vornq_x_f32): Likewise.
5311 (vorrq_x_f16): Likewise.
5312 (vorrq_x_f32): Likewise.
5313 (vrev32q_x_f16): Likewise.
5314 (vrev64q_x_f16): Likewise.
5315 (vrev64q_x_f32): Likewise.
5316 (__arm_vddupq_x_n_u8): Define intrinsic.
5317 (__arm_vddupq_x_n_u16): Likewise.
5318 (__arm_vddupq_x_n_u32): Likewise.
5319 (__arm_vddupq_x_wb_u8): Likewise.
5320 (__arm_vddupq_x_wb_u16): Likewise.
5321 (__arm_vddupq_x_wb_u32): Likewise.
5322 (__arm_vdwdupq_x_n_u8): Likewise.
5323 (__arm_vdwdupq_x_n_u16): Likewise.
5324 (__arm_vdwdupq_x_n_u32): Likewise.
5325 (__arm_vdwdupq_x_wb_u8): Likewise.
5326 (__arm_vdwdupq_x_wb_u16): Likewise.
5327 (__arm_vdwdupq_x_wb_u32): Likewise.
5328 (__arm_vidupq_x_n_u8): Likewise.
5329 (__arm_vidupq_x_n_u16): Likewise.
5330 (__arm_vidupq_x_n_u32): Likewise.
5331 (__arm_vidupq_x_wb_u8): Likewise.
5332 (__arm_vidupq_x_wb_u16): Likewise.
5333 (__arm_vidupq_x_wb_u32): Likewise.
5334 (__arm_viwdupq_x_n_u8): Likewise.
5335 (__arm_viwdupq_x_n_u16): Likewise.
5336 (__arm_viwdupq_x_n_u32): Likewise.
5337 (__arm_viwdupq_x_wb_u8): Likewise.
5338 (__arm_viwdupq_x_wb_u16): Likewise.
5339 (__arm_viwdupq_x_wb_u32): Likewise.
5340 (__arm_vdupq_x_n_s8): Likewise.
5341 (__arm_vdupq_x_n_s16): Likewise.
5342 (__arm_vdupq_x_n_s32): Likewise.
5343 (__arm_vdupq_x_n_u8): Likewise.
5344 (__arm_vdupq_x_n_u16): Likewise.
5345 (__arm_vdupq_x_n_u32): Likewise.
5346 (__arm_vminq_x_s8): Likewise.
5347 (__arm_vminq_x_s16): Likewise.
5348 (__arm_vminq_x_s32): Likewise.
5349 (__arm_vminq_x_u8): Likewise.
5350 (__arm_vminq_x_u16): Likewise.
5351 (__arm_vminq_x_u32): Likewise.
5352 (__arm_vmaxq_x_s8): Likewise.
5353 (__arm_vmaxq_x_s16): Likewise.
5354 (__arm_vmaxq_x_s32): Likewise.
5355 (__arm_vmaxq_x_u8): Likewise.
5356 (__arm_vmaxq_x_u16): Likewise.
5357 (__arm_vmaxq_x_u32): Likewise.
5358 (__arm_vabdq_x_s8): Likewise.
5359 (__arm_vabdq_x_s16): Likewise.
5360 (__arm_vabdq_x_s32): Likewise.
5361 (__arm_vabdq_x_u8): Likewise.
5362 (__arm_vabdq_x_u16): Likewise.
5363 (__arm_vabdq_x_u32): Likewise.
5364 (__arm_vabsq_x_s8): Likewise.
5365 (__arm_vabsq_x_s16): Likewise.
5366 (__arm_vabsq_x_s32): Likewise.
5367 (__arm_vaddq_x_s8): Likewise.
5368 (__arm_vaddq_x_s16): Likewise.
5369 (__arm_vaddq_x_s32): Likewise.
5370 (__arm_vaddq_x_n_s8): Likewise.
5371 (__arm_vaddq_x_n_s16): Likewise.
5372 (__arm_vaddq_x_n_s32): Likewise.
5373 (__arm_vaddq_x_u8): Likewise.
5374 (__arm_vaddq_x_u16): Likewise.
5375 (__arm_vaddq_x_u32): Likewise.
5376 (__arm_vaddq_x_n_u8): Likewise.
5377 (__arm_vaddq_x_n_u16): Likewise.
5378 (__arm_vaddq_x_n_u32): Likewise.
5379 (__arm_vclsq_x_s8): Likewise.
5380 (__arm_vclsq_x_s16): Likewise.
5381 (__arm_vclsq_x_s32): Likewise.
5382 (__arm_vclzq_x_s8): Likewise.
5383 (__arm_vclzq_x_s16): Likewise.
5384 (__arm_vclzq_x_s32): Likewise.
5385 (__arm_vclzq_x_u8): Likewise.
5386 (__arm_vclzq_x_u16): Likewise.
5387 (__arm_vclzq_x_u32): Likewise.
5388 (__arm_vnegq_x_s8): Likewise.
5389 (__arm_vnegq_x_s16): Likewise.
5390 (__arm_vnegq_x_s32): Likewise.
5391 (__arm_vmulhq_x_s8): Likewise.
5392 (__arm_vmulhq_x_s16): Likewise.
5393 (__arm_vmulhq_x_s32): Likewise.
5394 (__arm_vmulhq_x_u8): Likewise.
5395 (__arm_vmulhq_x_u16): Likewise.
5396 (__arm_vmulhq_x_u32): Likewise.
5397 (__arm_vmullbq_poly_x_p8): Likewise.
5398 (__arm_vmullbq_poly_x_p16): Likewise.
5399 (__arm_vmullbq_int_x_s8): Likewise.
5400 (__arm_vmullbq_int_x_s16): Likewise.
5401 (__arm_vmullbq_int_x_s32): Likewise.
5402 (__arm_vmullbq_int_x_u8): Likewise.
5403 (__arm_vmullbq_int_x_u16): Likewise.
5404 (__arm_vmullbq_int_x_u32): Likewise.
5405 (__arm_vmulltq_poly_x_p8): Likewise.
5406 (__arm_vmulltq_poly_x_p16): Likewise.
5407 (__arm_vmulltq_int_x_s8): Likewise.
5408 (__arm_vmulltq_int_x_s16): Likewise.
5409 (__arm_vmulltq_int_x_s32): Likewise.
5410 (__arm_vmulltq_int_x_u8): Likewise.
5411 (__arm_vmulltq_int_x_u16): Likewise.
5412 (__arm_vmulltq_int_x_u32): Likewise.
5413 (__arm_vmulq_x_s8): Likewise.
5414 (__arm_vmulq_x_s16): Likewise.
5415 (__arm_vmulq_x_s32): Likewise.
5416 (__arm_vmulq_x_n_s8): Likewise.
5417 (__arm_vmulq_x_n_s16): Likewise.
5418 (__arm_vmulq_x_n_s32): Likewise.
5419 (__arm_vmulq_x_u8): Likewise.
5420 (__arm_vmulq_x_u16): Likewise.
5421 (__arm_vmulq_x_u32): Likewise.
5422 (__arm_vmulq_x_n_u8): Likewise.
5423 (__arm_vmulq_x_n_u16): Likewise.
5424 (__arm_vmulq_x_n_u32): Likewise.
5425 (__arm_vsubq_x_s8): Likewise.
5426 (__arm_vsubq_x_s16): Likewise.
5427 (__arm_vsubq_x_s32): Likewise.
5428 (__arm_vsubq_x_n_s8): Likewise.
5429 (__arm_vsubq_x_n_s16): Likewise.
5430 (__arm_vsubq_x_n_s32): Likewise.
5431 (__arm_vsubq_x_u8): Likewise.
5432 (__arm_vsubq_x_u16): Likewise.
5433 (__arm_vsubq_x_u32): Likewise.
5434 (__arm_vsubq_x_n_u8): Likewise.
5435 (__arm_vsubq_x_n_u16): Likewise.
5436 (__arm_vsubq_x_n_u32): Likewise.
5437 (__arm_vcaddq_rot90_x_s8): Likewise.
5438 (__arm_vcaddq_rot90_x_s16): Likewise.
5439 (__arm_vcaddq_rot90_x_s32): Likewise.
5440 (__arm_vcaddq_rot90_x_u8): Likewise.
5441 (__arm_vcaddq_rot90_x_u16): Likewise.
5442 (__arm_vcaddq_rot90_x_u32): Likewise.
5443 (__arm_vcaddq_rot270_x_s8): Likewise.
5444 (__arm_vcaddq_rot270_x_s16): Likewise.
5445 (__arm_vcaddq_rot270_x_s32): Likewise.
5446 (__arm_vcaddq_rot270_x_u8): Likewise.
5447 (__arm_vcaddq_rot270_x_u16): Likewise.
5448 (__arm_vcaddq_rot270_x_u32): Likewise.
5449 (__arm_vhaddq_x_n_s8): Likewise.
5450 (__arm_vhaddq_x_n_s16): Likewise.
5451 (__arm_vhaddq_x_n_s32): Likewise.
5452 (__arm_vhaddq_x_n_u8): Likewise.
5453 (__arm_vhaddq_x_n_u16): Likewise.
5454 (__arm_vhaddq_x_n_u32): Likewise.
5455 (__arm_vhaddq_x_s8): Likewise.
5456 (__arm_vhaddq_x_s16): Likewise.
5457 (__arm_vhaddq_x_s32): Likewise.
5458 (__arm_vhaddq_x_u8): Likewise.
5459 (__arm_vhaddq_x_u16): Likewise.
5460 (__arm_vhaddq_x_u32): Likewise.
5461 (__arm_vhcaddq_rot90_x_s8): Likewise.
5462 (__arm_vhcaddq_rot90_x_s16): Likewise.
5463 (__arm_vhcaddq_rot90_x_s32): Likewise.
5464 (__arm_vhcaddq_rot270_x_s8): Likewise.
5465 (__arm_vhcaddq_rot270_x_s16): Likewise.
5466 (__arm_vhcaddq_rot270_x_s32): Likewise.
5467 (__arm_vhsubq_x_n_s8): Likewise.
5468 (__arm_vhsubq_x_n_s16): Likewise.
5469 (__arm_vhsubq_x_n_s32): Likewise.
5470 (__arm_vhsubq_x_n_u8): Likewise.
5471 (__arm_vhsubq_x_n_u16): Likewise.
5472 (__arm_vhsubq_x_n_u32): Likewise.
5473 (__arm_vhsubq_x_s8): Likewise.
5474 (__arm_vhsubq_x_s16): Likewise.
5475 (__arm_vhsubq_x_s32): Likewise.
5476 (__arm_vhsubq_x_u8): Likewise.
5477 (__arm_vhsubq_x_u16): Likewise.
5478 (__arm_vhsubq_x_u32): Likewise.
5479 (__arm_vrhaddq_x_s8): Likewise.
5480 (__arm_vrhaddq_x_s16): Likewise.
5481 (__arm_vrhaddq_x_s32): Likewise.
5482 (__arm_vrhaddq_x_u8): Likewise.
5483 (__arm_vrhaddq_x_u16): Likewise.
5484 (__arm_vrhaddq_x_u32): Likewise.
5485 (__arm_vrmulhq_x_s8): Likewise.
5486 (__arm_vrmulhq_x_s16): Likewise.
5487 (__arm_vrmulhq_x_s32): Likewise.
5488 (__arm_vrmulhq_x_u8): Likewise.
5489 (__arm_vrmulhq_x_u16): Likewise.
5490 (__arm_vrmulhq_x_u32): Likewise.
5491 (__arm_vandq_x_s8): Likewise.
5492 (__arm_vandq_x_s16): Likewise.
5493 (__arm_vandq_x_s32): Likewise.
5494 (__arm_vandq_x_u8): Likewise.
5495 (__arm_vandq_x_u16): Likewise.
5496 (__arm_vandq_x_u32): Likewise.
5497 (__arm_vbicq_x_s8): Likewise.
5498 (__arm_vbicq_x_s16): Likewise.
5499 (__arm_vbicq_x_s32): Likewise.
5500 (__arm_vbicq_x_u8): Likewise.
5501 (__arm_vbicq_x_u16): Likewise.
5502 (__arm_vbicq_x_u32): Likewise.
5503 (__arm_vbrsrq_x_n_s8): Likewise.
5504 (__arm_vbrsrq_x_n_s16): Likewise.
5505 (__arm_vbrsrq_x_n_s32): Likewise.
5506 (__arm_vbrsrq_x_n_u8): Likewise.
5507 (__arm_vbrsrq_x_n_u16): Likewise.
5508 (__arm_vbrsrq_x_n_u32): Likewise.
5509 (__arm_veorq_x_s8): Likewise.
5510 (__arm_veorq_x_s16): Likewise.
5511 (__arm_veorq_x_s32): Likewise.
5512 (__arm_veorq_x_u8): Likewise.
5513 (__arm_veorq_x_u16): Likewise.
5514 (__arm_veorq_x_u32): Likewise.
5515 (__arm_vmovlbq_x_s8): Likewise.
5516 (__arm_vmovlbq_x_s16): Likewise.
5517 (__arm_vmovlbq_x_u8): Likewise.
5518 (__arm_vmovlbq_x_u16): Likewise.
5519 (__arm_vmovltq_x_s8): Likewise.
5520 (__arm_vmovltq_x_s16): Likewise.
5521 (__arm_vmovltq_x_u8): Likewise.
5522 (__arm_vmovltq_x_u16): Likewise.
5523 (__arm_vmvnq_x_s8): Likewise.
5524 (__arm_vmvnq_x_s16): Likewise.
5525 (__arm_vmvnq_x_s32): Likewise.
5526 (__arm_vmvnq_x_u8): Likewise.
5527 (__arm_vmvnq_x_u16): Likewise.
5528 (__arm_vmvnq_x_u32): Likewise.
5529 (__arm_vmvnq_x_n_s16): Likewise.
5530 (__arm_vmvnq_x_n_s32): Likewise.
5531 (__arm_vmvnq_x_n_u16): Likewise.
5532 (__arm_vmvnq_x_n_u32): Likewise.
5533 (__arm_vornq_x_s8): Likewise.
5534 (__arm_vornq_x_s16): Likewise.
5535 (__arm_vornq_x_s32): Likewise.
5536 (__arm_vornq_x_u8): Likewise.
5537 (__arm_vornq_x_u16): Likewise.
5538 (__arm_vornq_x_u32): Likewise.
5539 (__arm_vorrq_x_s8): Likewise.
5540 (__arm_vorrq_x_s16): Likewise.
5541 (__arm_vorrq_x_s32): Likewise.
5542 (__arm_vorrq_x_u8): Likewise.
5543 (__arm_vorrq_x_u16): Likewise.
5544 (__arm_vorrq_x_u32): Likewise.
5545 (__arm_vrev16q_x_s8): Likewise.
5546 (__arm_vrev16q_x_u8): Likewise.
5547 (__arm_vrev32q_x_s8): Likewise.
5548 (__arm_vrev32q_x_s16): Likewise.
5549 (__arm_vrev32q_x_u8): Likewise.
5550 (__arm_vrev32q_x_u16): Likewise.
5551 (__arm_vrev64q_x_s8): Likewise.
5552 (__arm_vrev64q_x_s16): Likewise.
5553 (__arm_vrev64q_x_s32): Likewise.
5554 (__arm_vrev64q_x_u8): Likewise.
5555 (__arm_vrev64q_x_u16): Likewise.
5556 (__arm_vrev64q_x_u32): Likewise.
5557 (__arm_vrshlq_x_s8): Likewise.
5558 (__arm_vrshlq_x_s16): Likewise.
5559 (__arm_vrshlq_x_s32): Likewise.
5560 (__arm_vrshlq_x_u8): Likewise.
5561 (__arm_vrshlq_x_u16): Likewise.
5562 (__arm_vrshlq_x_u32): Likewise.
5563 (__arm_vshllbq_x_n_s8): Likewise.
5564 (__arm_vshllbq_x_n_s16): Likewise.
5565 (__arm_vshllbq_x_n_u8): Likewise.
5566 (__arm_vshllbq_x_n_u16): Likewise.
5567 (__arm_vshlltq_x_n_s8): Likewise.
5568 (__arm_vshlltq_x_n_s16): Likewise.
5569 (__arm_vshlltq_x_n_u8): Likewise.
5570 (__arm_vshlltq_x_n_u16): Likewise.
5571 (__arm_vshlq_x_s8): Likewise.
5572 (__arm_vshlq_x_s16): Likewise.
5573 (__arm_vshlq_x_s32): Likewise.
5574 (__arm_vshlq_x_u8): Likewise.
5575 (__arm_vshlq_x_u16): Likewise.
5576 (__arm_vshlq_x_u32): Likewise.
5577 (__arm_vshlq_x_n_s8): Likewise.
5578 (__arm_vshlq_x_n_s16): Likewise.
5579 (__arm_vshlq_x_n_s32): Likewise.
5580 (__arm_vshlq_x_n_u8): Likewise.
5581 (__arm_vshlq_x_n_u16): Likewise.
5582 (__arm_vshlq_x_n_u32): Likewise.
5583 (__arm_vrshrq_x_n_s8): Likewise.
5584 (__arm_vrshrq_x_n_s16): Likewise.
5585 (__arm_vrshrq_x_n_s32): Likewise.
5586 (__arm_vrshrq_x_n_u8): Likewise.
5587 (__arm_vrshrq_x_n_u16): Likewise.
5588 (__arm_vrshrq_x_n_u32): Likewise.
5589 (__arm_vshrq_x_n_s8): Likewise.
5590 (__arm_vshrq_x_n_s16): Likewise.
5591 (__arm_vshrq_x_n_s32): Likewise.
5592 (__arm_vshrq_x_n_u8): Likewise.
5593 (__arm_vshrq_x_n_u16): Likewise.
5594 (__arm_vshrq_x_n_u32): Likewise.
5595 (__arm_vdupq_x_n_f16): Likewise.
5596 (__arm_vdupq_x_n_f32): Likewise.
5597 (__arm_vminnmq_x_f16): Likewise.
5598 (__arm_vminnmq_x_f32): Likewise.
5599 (__arm_vmaxnmq_x_f16): Likewise.
5600 (__arm_vmaxnmq_x_f32): Likewise.
5601 (__arm_vabdq_x_f16): Likewise.
5602 (__arm_vabdq_x_f32): Likewise.
5603 (__arm_vabsq_x_f16): Likewise.
5604 (__arm_vabsq_x_f32): Likewise.
5605 (__arm_vaddq_x_f16): Likewise.
5606 (__arm_vaddq_x_f32): Likewise.
5607 (__arm_vaddq_x_n_f16): Likewise.
5608 (__arm_vaddq_x_n_f32): Likewise.
5609 (__arm_vnegq_x_f16): Likewise.
5610 (__arm_vnegq_x_f32): Likewise.
5611 (__arm_vmulq_x_f16): Likewise.
5612 (__arm_vmulq_x_f32): Likewise.
5613 (__arm_vmulq_x_n_f16): Likewise.
5614 (__arm_vmulq_x_n_f32): Likewise.
5615 (__arm_vsubq_x_f16): Likewise.
5616 (__arm_vsubq_x_f32): Likewise.
5617 (__arm_vsubq_x_n_f16): Likewise.
5618 (__arm_vsubq_x_n_f32): Likewise.
5619 (__arm_vcaddq_rot90_x_f16): Likewise.
5620 (__arm_vcaddq_rot90_x_f32): Likewise.
5621 (__arm_vcaddq_rot270_x_f16): Likewise.
5622 (__arm_vcaddq_rot270_x_f32): Likewise.
5623 (__arm_vcmulq_x_f16): Likewise.
5624 (__arm_vcmulq_x_f32): Likewise.
5625 (__arm_vcmulq_rot90_x_f16): Likewise.
5626 (__arm_vcmulq_rot90_x_f32): Likewise.
5627 (__arm_vcmulq_rot180_x_f16): Likewise.
5628 (__arm_vcmulq_rot180_x_f32): Likewise.
5629 (__arm_vcmulq_rot270_x_f16): Likewise.
5630 (__arm_vcmulq_rot270_x_f32): Likewise.
5631 (__arm_vcvtaq_x_s16_f16): Likewise.
5632 (__arm_vcvtaq_x_s32_f32): Likewise.
5633 (__arm_vcvtaq_x_u16_f16): Likewise.
5634 (__arm_vcvtaq_x_u32_f32): Likewise.
5635 (__arm_vcvtnq_x_s16_f16): Likewise.
5636 (__arm_vcvtnq_x_s32_f32): Likewise.
5637 (__arm_vcvtnq_x_u16_f16): Likewise.
5638 (__arm_vcvtnq_x_u32_f32): Likewise.
5639 (__arm_vcvtpq_x_s16_f16): Likewise.
5640 (__arm_vcvtpq_x_s32_f32): Likewise.
5641 (__arm_vcvtpq_x_u16_f16): Likewise.
5642 (__arm_vcvtpq_x_u32_f32): Likewise.
5643 (__arm_vcvtmq_x_s16_f16): Likewise.
5644 (__arm_vcvtmq_x_s32_f32): Likewise.
5645 (__arm_vcvtmq_x_u16_f16): Likewise.
5646 (__arm_vcvtmq_x_u32_f32): Likewise.
5647 (__arm_vcvtbq_x_f32_f16): Likewise.
5648 (__arm_vcvttq_x_f32_f16): Likewise.
5649 (__arm_vcvtq_x_f16_u16): Likewise.
5650 (__arm_vcvtq_x_f16_s16): Likewise.
5651 (__arm_vcvtq_x_f32_s32): Likewise.
5652 (__arm_vcvtq_x_f32_u32): Likewise.
5653 (__arm_vcvtq_x_n_f16_s16): Likewise.
5654 (__arm_vcvtq_x_n_f16_u16): Likewise.
5655 (__arm_vcvtq_x_n_f32_s32): Likewise.
5656 (__arm_vcvtq_x_n_f32_u32): Likewise.
5657 (__arm_vcvtq_x_s16_f16): Likewise.
5658 (__arm_vcvtq_x_s32_f32): Likewise.
5659 (__arm_vcvtq_x_u16_f16): Likewise.
5660 (__arm_vcvtq_x_u32_f32): Likewise.
5661 (__arm_vcvtq_x_n_s16_f16): Likewise.
5662 (__arm_vcvtq_x_n_s32_f32): Likewise.
5663 (__arm_vcvtq_x_n_u16_f16): Likewise.
5664 (__arm_vcvtq_x_n_u32_f32): Likewise.
5665 (__arm_vrndq_x_f16): Likewise.
5666 (__arm_vrndq_x_f32): Likewise.
5667 (__arm_vrndnq_x_f16): Likewise.
5668 (__arm_vrndnq_x_f32): Likewise.
5669 (__arm_vrndmq_x_f16): Likewise.
5670 (__arm_vrndmq_x_f32): Likewise.
5671 (__arm_vrndpq_x_f16): Likewise.
5672 (__arm_vrndpq_x_f32): Likewise.
5673 (__arm_vrndaq_x_f16): Likewise.
5674 (__arm_vrndaq_x_f32): Likewise.
5675 (__arm_vrndxq_x_f16): Likewise.
5676 (__arm_vrndxq_x_f32): Likewise.
5677 (__arm_vandq_x_f16): Likewise.
5678 (__arm_vandq_x_f32): Likewise.
5679 (__arm_vbicq_x_f16): Likewise.
5680 (__arm_vbicq_x_f32): Likewise.
5681 (__arm_vbrsrq_x_n_f16): Likewise.
5682 (__arm_vbrsrq_x_n_f32): Likewise.
5683 (__arm_veorq_x_f16): Likewise.
5684 (__arm_veorq_x_f32): Likewise.
5685 (__arm_vornq_x_f16): Likewise.
5686 (__arm_vornq_x_f32): Likewise.
5687 (__arm_vorrq_x_f16): Likewise.
5688 (__arm_vorrq_x_f32): Likewise.
5689 (__arm_vrev32q_x_f16): Likewise.
5690 (__arm_vrev64q_x_f16): Likewise.
5691 (__arm_vrev64q_x_f32): Likewise.
5692 (vabdq_x): Define polymorphic variant.
5693 (vabsq_x): Likewise.
5694 (vaddq_x): Likewise.
5695 (vandq_x): Likewise.
5696 (vbicq_x): Likewise.
5697 (vbrsrq_x): Likewise.
5698 (vcaddq_rot270_x): Likewise.
5699 (vcaddq_rot90_x): Likewise.
5700 (vcmulq_rot180_x): Likewise.
5701 (vcmulq_rot270_x): Likewise.
5702 (vcmulq_x): Likewise.
5703 (vcvtq_x): Likewise.
5704 (vcvtq_x_n): Likewise.
5705 (vcvtnq_m): Likewise.
5706 (veorq_x): Likewise.
5707 (vmaxnmq_x): Likewise.
5708 (vminnmq_x): Likewise.
5709 (vmulq_x): Likewise.
5710 (vnegq_x): Likewise.
5711 (vornq_x): Likewise.
5712 (vorrq_x): Likewise.
5713 (vrev32q_x): Likewise.
5714 (vrev64q_x): Likewise.
5715 (vrndaq_x): Likewise.
5716 (vrndmq_x): Likewise.
5717 (vrndnq_x): Likewise.
5718 (vrndpq_x): Likewise.
5719 (vrndq_x): Likewise.
5720 (vrndxq_x): Likewise.
5721 (vsubq_x): Likewise.
5722 (vcmulq_rot90_x): Likewise.
5724 (vclsq_x): Likewise.
5725 (vclzq_x): Likewise.
5726 (vhaddq_x): Likewise.
5727 (vhcaddq_rot270_x): Likewise.
5728 (vhcaddq_rot90_x): Likewise.
5729 (vhsubq_x): Likewise.
5730 (vmaxq_x): Likewise.
5731 (vminq_x): Likewise.
5732 (vmovlbq_x): Likewise.
5733 (vmovltq_x): Likewise.
5734 (vmulhq_x): Likewise.
5735 (vmullbq_int_x): Likewise.
5736 (vmullbq_poly_x): Likewise.
5737 (vmulltq_int_x): Likewise.
5738 (vmulltq_poly_x): Likewise.
5739 (vmvnq_x): Likewise.
5740 (vrev16q_x): Likewise.
5741 (vrhaddq_x): Likewise.
5742 (vrmulhq_x): Likewise.
5743 (vrshlq_x): Likewise.
5744 (vrshrq_x): Likewise.
5745 (vshllbq_x): Likewise.
5746 (vshlltq_x): Likewise.
5747 (vshlq_x_n): Likewise.
5748 (vshlq_x): Likewise.
5749 (vdwdupq_x_u8): Likewise.
5750 (vdwdupq_x_u16): Likewise.
5751 (vdwdupq_x_u32): Likewise.
5752 (viwdupq_x_u8): Likewise.
5753 (viwdupq_x_u16): Likewise.
5754 (viwdupq_x_u32): Likewise.
5755 (vidupq_x_u8): Likewise.
5756 (vddupq_x_u8): Likewise.
5757 (vidupq_x_u16): Likewise.
5758 (vddupq_x_u16): Likewise.
5759 (vidupq_x_u32): Likewise.
5760 (vddupq_x_u32): Likewise.
5761 (vshrq_x): Likewise.
5763 2020-03-20 Richard Biener <rguenther@suse.de>
5765 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts
5766 to vectorize for CTOR defs.
5768 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5769 Andre Vieira <andre.simoesdiasvieira@arm.com>
5770 Mihail Ionescu <mihail.ionescu@arm.com>
5772 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin
5774 (LDRGBWBU_QUALIFIERS): Likewise.
5775 (LDRGBWBS_Z_QUALIFIERS): Likewise.
5776 (LDRGBWBU_Z_QUALIFIERS): Likewise.
5777 (STRSBWBS_QUALIFIERS): Likewise.
5778 (STRSBWBU_QUALIFIERS): Likewise.
5779 (STRSBWBS_P_QUALIFIERS): Likewise.
5780 (STRSBWBU_P_QUALIFIERS): Likewise.
5781 * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro.
5782 (vldrdq_gather_base_wb_u64): Likewise.
5783 (vldrdq_gather_base_wb_z_s64): Likewise.
5784 (vldrdq_gather_base_wb_z_u64): Likewise.
5785 (vldrwq_gather_base_wb_f32): Likewise.
5786 (vldrwq_gather_base_wb_s32): Likewise.
5787 (vldrwq_gather_base_wb_u32): Likewise.
5788 (vldrwq_gather_base_wb_z_f32): Likewise.
5789 (vldrwq_gather_base_wb_z_s32): Likewise.
5790 (vldrwq_gather_base_wb_z_u32): Likewise.
5791 (vstrdq_scatter_base_wb_p_s64): Likewise.
5792 (vstrdq_scatter_base_wb_p_u64): Likewise.
5793 (vstrdq_scatter_base_wb_s64): Likewise.
5794 (vstrdq_scatter_base_wb_u64): Likewise.
5795 (vstrwq_scatter_base_wb_p_s32): Likewise.
5796 (vstrwq_scatter_base_wb_p_f32): Likewise.
5797 (vstrwq_scatter_base_wb_p_u32): Likewise.
5798 (vstrwq_scatter_base_wb_s32): Likewise.
5799 (vstrwq_scatter_base_wb_u32): Likewise.
5800 (vstrwq_scatter_base_wb_f32): Likewise.
5801 (__arm_vldrdq_gather_base_wb_s64): Define intrinsic.
5802 (__arm_vldrdq_gather_base_wb_u64): Likewise.
5803 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
5804 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
5805 (__arm_vldrwq_gather_base_wb_s32): Likewise.
5806 (__arm_vldrwq_gather_base_wb_u32): Likewise.
5807 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
5808 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
5809 (__arm_vstrdq_scatter_base_wb_s64): Likewise.
5810 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
5811 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
5812 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
5813 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
5814 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
5815 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
5816 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
5817 (__arm_vldrwq_gather_base_wb_f32): Likewise.
5818 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
5819 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
5820 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
5821 (vstrwq_scatter_base_wb): Define polymorphic variant.
5822 (vstrwq_scatter_base_wb_p): Likewise.
5823 (vstrdq_scatter_base_wb_p): Likewise.
5824 (vstrdq_scatter_base_wb): Likewise.
5825 * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin
5827 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL
5829 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
5830 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise.
5831 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
5832 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
5833 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise.
5834 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
5835 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
5836 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise.
5837 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
5838 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
5839 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise.
5840 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
5841 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
5842 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise.
5843 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
5844 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
5845 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise.
5846 (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise.
5847 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
5848 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise.
5849 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
5850 (mve_vldrwq_gather_base_wb_fv4sf): Likewise.
5851 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
5852 (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise.
5853 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
5854 (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise.
5855 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
5856 (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise.
5857 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
5859 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5860 Andre Vieira <andre.simoesdiasvieira@arm.com>
5861 Mihail Ionescu <mihail.ionescu@arm.com>
5863 * config/arm/arm-builtins.c
5864 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary
5866 * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro.
5867 (vddupq_m_n_u32): Likewise.
5868 (vddupq_m_n_u16): Likewise.
5869 (vddupq_m_wb_u8): Likewise.
5870 (vddupq_m_wb_u16): Likewise.
5871 (vddupq_m_wb_u32): Likewise.
5872 (vddupq_n_u8): Likewise.
5873 (vddupq_n_u32): Likewise.
5874 (vddupq_n_u16): Likewise.
5875 (vddupq_wb_u8): Likewise.
5876 (vddupq_wb_u16): Likewise.
5877 (vddupq_wb_u32): Likewise.
5878 (vdwdupq_m_n_u8): Likewise.
5879 (vdwdupq_m_n_u32): Likewise.
5880 (vdwdupq_m_n_u16): Likewise.
5881 (vdwdupq_m_wb_u8): Likewise.
5882 (vdwdupq_m_wb_u32): Likewise.
5883 (vdwdupq_m_wb_u16): Likewise.
5884 (vdwdupq_n_u8): Likewise.
5885 (vdwdupq_n_u32): Likewise.
5886 (vdwdupq_n_u16): Likewise.
5887 (vdwdupq_wb_u8): Likewise.
5888 (vdwdupq_wb_u32): Likewise.
5889 (vdwdupq_wb_u16): Likewise.
5890 (vidupq_m_n_u8): Likewise.
5891 (vidupq_m_n_u32): Likewise.
5892 (vidupq_m_n_u16): Likewise.
5893 (vidupq_m_wb_u8): Likewise.
5894 (vidupq_m_wb_u16): Likewise.
5895 (vidupq_m_wb_u32): Likewise.
5896 (vidupq_n_u8): Likewise.
5897 (vidupq_n_u32): Likewise.
5898 (vidupq_n_u16): Likewise.
5899 (vidupq_wb_u8): Likewise.
5900 (vidupq_wb_u16): Likewise.
5901 (vidupq_wb_u32): Likewise.
5902 (viwdupq_m_n_u8): Likewise.
5903 (viwdupq_m_n_u32): Likewise.
5904 (viwdupq_m_n_u16): Likewise.
5905 (viwdupq_m_wb_u8): Likewise.
5906 (viwdupq_m_wb_u32): Likewise.
5907 (viwdupq_m_wb_u16): Likewise.
5908 (viwdupq_n_u8): Likewise.
5909 (viwdupq_n_u32): Likewise.
5910 (viwdupq_n_u16): Likewise.
5911 (viwdupq_wb_u8): Likewise.
5912 (viwdupq_wb_u32): Likewise.
5913 (viwdupq_wb_u16): Likewise.
5914 (__arm_vddupq_m_n_u8): Define intrinsic.
5915 (__arm_vddupq_m_n_u32): Likewise.
5916 (__arm_vddupq_m_n_u16): Likewise.
5917 (__arm_vddupq_m_wb_u8): Likewise.
5918 (__arm_vddupq_m_wb_u16): Likewise.
5919 (__arm_vddupq_m_wb_u32): Likewise.
5920 (__arm_vddupq_n_u8): Likewise.
5921 (__arm_vddupq_n_u32): Likewise.
5922 (__arm_vddupq_n_u16): Likewise.
5923 (__arm_vdwdupq_m_n_u8): Likewise.
5924 (__arm_vdwdupq_m_n_u32): Likewise.
5925 (__arm_vdwdupq_m_n_u16): Likewise.
5926 (__arm_vdwdupq_m_wb_u8): Likewise.
5927 (__arm_vdwdupq_m_wb_u32): Likewise.
5928 (__arm_vdwdupq_m_wb_u16): Likewise.
5929 (__arm_vdwdupq_n_u8): Likewise.
5930 (__arm_vdwdupq_n_u32): Likewise.
5931 (__arm_vdwdupq_n_u16): Likewise.
5932 (__arm_vdwdupq_wb_u8): Likewise.
5933 (__arm_vdwdupq_wb_u32): Likewise.
5934 (__arm_vdwdupq_wb_u16): Likewise.
5935 (__arm_vidupq_m_n_u8): Likewise.
5936 (__arm_vidupq_m_n_u32): Likewise.
5937 (__arm_vidupq_m_n_u16): Likewise.
5938 (__arm_vidupq_n_u8): Likewise.
5939 (__arm_vidupq_m_wb_u8): Likewise.
5940 (__arm_vidupq_m_wb_u16): Likewise.
5941 (__arm_vidupq_m_wb_u32): Likewise.
5942 (__arm_vidupq_n_u32): Likewise.
5943 (__arm_vidupq_n_u16): Likewise.
5944 (__arm_vidupq_wb_u8): Likewise.
5945 (__arm_vidupq_wb_u16): Likewise.
5946 (__arm_vidupq_wb_u32): Likewise.
5947 (__arm_vddupq_wb_u8): Likewise.
5948 (__arm_vddupq_wb_u16): Likewise.
5949 (__arm_vddupq_wb_u32): Likewise.
5950 (__arm_viwdupq_m_n_u8): Likewise.
5951 (__arm_viwdupq_m_n_u32): Likewise.
5952 (__arm_viwdupq_m_n_u16): Likewise.
5953 (__arm_viwdupq_m_wb_u8): Likewise.
5954 (__arm_viwdupq_m_wb_u32): Likewise.
5955 (__arm_viwdupq_m_wb_u16): Likewise.
5956 (__arm_viwdupq_n_u8): Likewise.
5957 (__arm_viwdupq_n_u32): Likewise.
5958 (__arm_viwdupq_n_u16): Likewise.
5959 (__arm_viwdupq_wb_u8): Likewise.
5960 (__arm_viwdupq_wb_u32): Likewise.
5961 (__arm_viwdupq_wb_u16): Likewise.
5962 (vidupq_m): Define polymorphic variant.
5963 (vddupq_m): Likewise.
5964 (vidupq_u16): Likewise.
5965 (vidupq_u32): Likewise.
5966 (vidupq_u8): Likewise.
5967 (vddupq_u16): Likewise.
5968 (vddupq_u32): Likewise.
5969 (vddupq_u8): Likewise.
5970 (viwdupq_m): Likewise.
5971 (viwdupq_u16): Likewise.
5972 (viwdupq_u32): Likewise.
5973 (viwdupq_u8): Likewise.
5974 (vdwdupq_m): Likewise.
5975 (vdwdupq_u16): Likewise.
5976 (vdwdupq_u32): Likewise.
5977 (vdwdupq_u8): Likewise.
5978 * config/arm/arm_mve_builtins.def
5979 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin
5981 * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern.
5982 (mve_vidupq_u<mode>_insn): Likewise.
5983 (mve_vidupq_m_n_u<mode>): Likewise.
5984 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
5985 (mve_vddupq_n_u<mode>): Likewise.
5986 (mve_vddupq_u<mode>_insn): Likewise.
5987 (mve_vddupq_m_n_u<mode>): Likewise.
5988 (mve_vddupq_m_wb_u<mode>_insn): Likewise.
5989 (mve_vdwdupq_n_u<mode>): Likewise.
5990 (mve_vdwdupq_wb_u<mode>): Likewise.
5991 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
5992 (mve_vdwdupq_m_n_u<mode>): Likewise.
5993 (mve_vdwdupq_m_wb_u<mode>): Likewise.
5994 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
5995 (mve_viwdupq_n_u<mode>): Likewise.
5996 (mve_viwdupq_wb_u<mode>): Likewise.
5997 (mve_viwdupq_wb_u<mode>_insn): Likewise.
5998 (mve_viwdupq_m_n_u<mode>): Likewise.
5999 (mve_viwdupq_m_wb_u<mode>): Likewise.
6000 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
6002 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6004 * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro.
6005 (vreinterpretq_s16_s64): Likewise.
6006 (vreinterpretq_s16_s8): Likewise.
6007 (vreinterpretq_s16_u16): Likewise.
6008 (vreinterpretq_s16_u32): Likewise.
6009 (vreinterpretq_s16_u64): Likewise.
6010 (vreinterpretq_s16_u8): Likewise.
6011 (vreinterpretq_s32_s16): Likewise.
6012 (vreinterpretq_s32_s64): Likewise.
6013 (vreinterpretq_s32_s8): Likewise.
6014 (vreinterpretq_s32_u16): Likewise.
6015 (vreinterpretq_s32_u32): Likewise.
6016 (vreinterpretq_s32_u64): Likewise.
6017 (vreinterpretq_s32_u8): Likewise.
6018 (vreinterpretq_s64_s16): Likewise.
6019 (vreinterpretq_s64_s32): Likewise.
6020 (vreinterpretq_s64_s8): Likewise.
6021 (vreinterpretq_s64_u16): Likewise.
6022 (vreinterpretq_s64_u32): Likewise.
6023 (vreinterpretq_s64_u64): Likewise.
6024 (vreinterpretq_s64_u8): Likewise.
6025 (vreinterpretq_s8_s16): Likewise.
6026 (vreinterpretq_s8_s32): Likewise.
6027 (vreinterpretq_s8_s64): Likewise.
6028 (vreinterpretq_s8_u16): Likewise.
6029 (vreinterpretq_s8_u32): Likewise.
6030 (vreinterpretq_s8_u64): Likewise.
6031 (vreinterpretq_s8_u8): Likewise.
6032 (vreinterpretq_u16_s16): Likewise.
6033 (vreinterpretq_u16_s32): Likewise.
6034 (vreinterpretq_u16_s64): Likewise.
6035 (vreinterpretq_u16_s8): Likewise.
6036 (vreinterpretq_u16_u32): Likewise.
6037 (vreinterpretq_u16_u64): Likewise.
6038 (vreinterpretq_u16_u8): Likewise.
6039 (vreinterpretq_u32_s16): Likewise.
6040 (vreinterpretq_u32_s32): Likewise.
6041 (vreinterpretq_u32_s64): Likewise.
6042 (vreinterpretq_u32_s8): Likewise.
6043 (vreinterpretq_u32_u16): Likewise.
6044 (vreinterpretq_u32_u64): Likewise.
6045 (vreinterpretq_u32_u8): Likewise.
6046 (vreinterpretq_u64_s16): Likewise.
6047 (vreinterpretq_u64_s32): Likewise.
6048 (vreinterpretq_u64_s64): Likewise.
6049 (vreinterpretq_u64_s8): Likewise.
6050 (vreinterpretq_u64_u16): Likewise.
6051 (vreinterpretq_u64_u32): Likewise.
6052 (vreinterpretq_u64_u8): Likewise.
6053 (vreinterpretq_u8_s16): Likewise.
6054 (vreinterpretq_u8_s32): Likewise.
6055 (vreinterpretq_u8_s64): Likewise.
6056 (vreinterpretq_u8_s8): Likewise.
6057 (vreinterpretq_u8_u16): Likewise.
6058 (vreinterpretq_u8_u32): Likewise.
6059 (vreinterpretq_u8_u64): Likewise.
6060 (vreinterpretq_s32_f16): Likewise.
6061 (vreinterpretq_s32_f32): Likewise.
6062 (vreinterpretq_u16_f16): Likewise.
6063 (vreinterpretq_u16_f32): Likewise.
6064 (vreinterpretq_u32_f16): Likewise.
6065 (vreinterpretq_u32_f32): Likewise.
6066 (vreinterpretq_u64_f16): Likewise.
6067 (vreinterpretq_u64_f32): Likewise.
6068 (vreinterpretq_u8_f16): Likewise.
6069 (vreinterpretq_u8_f32): Likewise.
6070 (vreinterpretq_f16_f32): Likewise.
6071 (vreinterpretq_f16_s16): Likewise.
6072 (vreinterpretq_f16_s32): Likewise.
6073 (vreinterpretq_f16_s64): Likewise.
6074 (vreinterpretq_f16_s8): Likewise.
6075 (vreinterpretq_f16_u16): Likewise.
6076 (vreinterpretq_f16_u32): Likewise.
6077 (vreinterpretq_f16_u64): Likewise.
6078 (vreinterpretq_f16_u8): Likewise.
6079 (vreinterpretq_f32_f16): Likewise.
6080 (vreinterpretq_f32_s16): Likewise.
6081 (vreinterpretq_f32_s32): Likewise.
6082 (vreinterpretq_f32_s64): Likewise.
6083 (vreinterpretq_f32_s8): Likewise.
6084 (vreinterpretq_f32_u16): Likewise.
6085 (vreinterpretq_f32_u32): Likewise.
6086 (vreinterpretq_f32_u64): Likewise.
6087 (vreinterpretq_f32_u8): Likewise.
6088 (vreinterpretq_s16_f16): Likewise.
6089 (vreinterpretq_s16_f32): Likewise.
6090 (vreinterpretq_s64_f16): Likewise.
6091 (vreinterpretq_s64_f32): Likewise.
6092 (vreinterpretq_s8_f16): Likewise.
6093 (vreinterpretq_s8_f32): Likewise.
6094 (vuninitializedq_u8): Likewise.
6095 (vuninitializedq_u16): Likewise.
6096 (vuninitializedq_u32): Likewise.
6097 (vuninitializedq_u64): Likewise.
6098 (vuninitializedq_s8): Likewise.
6099 (vuninitializedq_s16): Likewise.
6100 (vuninitializedq_s32): Likewise.
6101 (vuninitializedq_s64): Likewise.
6102 (vuninitializedq_f16): Likewise.
6103 (vuninitializedq_f32): Likewise.
6104 (__arm_vuninitializedq_u8): Define intrinsic.
6105 (__arm_vuninitializedq_u16): Likewise.
6106 (__arm_vuninitializedq_u32): Likewise.
6107 (__arm_vuninitializedq_u64): Likewise.
6108 (__arm_vuninitializedq_s8): Likewise.
6109 (__arm_vuninitializedq_s16): Likewise.
6110 (__arm_vuninitializedq_s32): Likewise.
6111 (__arm_vuninitializedq_s64): Likewise.
6112 (__arm_vreinterpretq_s16_s32): Likewise.
6113 (__arm_vreinterpretq_s16_s64): Likewise.
6114 (__arm_vreinterpretq_s16_s8): Likewise.
6115 (__arm_vreinterpretq_s16_u16): Likewise.
6116 (__arm_vreinterpretq_s16_u32): Likewise.
6117 (__arm_vreinterpretq_s16_u64): Likewise.
6118 (__arm_vreinterpretq_s16_u8): Likewise.
6119 (__arm_vreinterpretq_s32_s16): Likewise.
6120 (__arm_vreinterpretq_s32_s64): Likewise.
6121 (__arm_vreinterpretq_s32_s8): Likewise.
6122 (__arm_vreinterpretq_s32_u16): Likewise.
6123 (__arm_vreinterpretq_s32_u32): Likewise.
6124 (__arm_vreinterpretq_s32_u64): Likewise.
6125 (__arm_vreinterpretq_s32_u8): Likewise.
6126 (__arm_vreinterpretq_s64_s16): Likewise.
6127 (__arm_vreinterpretq_s64_s32): Likewise.
6128 (__arm_vreinterpretq_s64_s8): Likewise.
6129 (__arm_vreinterpretq_s64_u16): Likewise.
6130 (__arm_vreinterpretq_s64_u32): Likewise.
6131 (__arm_vreinterpretq_s64_u64): Likewise.
6132 (__arm_vreinterpretq_s64_u8): Likewise.
6133 (__arm_vreinterpretq_s8_s16): Likewise.
6134 (__arm_vreinterpretq_s8_s32): Likewise.
6135 (__arm_vreinterpretq_s8_s64): Likewise.
6136 (__arm_vreinterpretq_s8_u16): Likewise.
6137 (__arm_vreinterpretq_s8_u32): Likewise.
6138 (__arm_vreinterpretq_s8_u64): Likewise.
6139 (__arm_vreinterpretq_s8_u8): Likewise.
6140 (__arm_vreinterpretq_u16_s16): Likewise.
6141 (__arm_vreinterpretq_u16_s32): Likewise.
6142 (__arm_vreinterpretq_u16_s64): Likewise.
6143 (__arm_vreinterpretq_u16_s8): Likewise.
6144 (__arm_vreinterpretq_u16_u32): Likewise.
6145 (__arm_vreinterpretq_u16_u64): Likewise.
6146 (__arm_vreinterpretq_u16_u8): Likewise.
6147 (__arm_vreinterpretq_u32_s16): Likewise.
6148 (__arm_vreinterpretq_u32_s32): Likewise.
6149 (__arm_vreinterpretq_u32_s64): Likewise.
6150 (__arm_vreinterpretq_u32_s8): Likewise.
6151 (__arm_vreinterpretq_u32_u16): Likewise.
6152 (__arm_vreinterpretq_u32_u64): Likewise.
6153 (__arm_vreinterpretq_u32_u8): Likewise.
6154 (__arm_vreinterpretq_u64_s16): Likewise.
6155 (__arm_vreinterpretq_u64_s32): Likewise.
6156 (__arm_vreinterpretq_u64_s64): Likewise.
6157 (__arm_vreinterpretq_u64_s8): Likewise.
6158 (__arm_vreinterpretq_u64_u16): Likewise.
6159 (__arm_vreinterpretq_u64_u32): Likewise.
6160 (__arm_vreinterpretq_u64_u8): Likewise.
6161 (__arm_vreinterpretq_u8_s16): Likewise.
6162 (__arm_vreinterpretq_u8_s32): Likewise.
6163 (__arm_vreinterpretq_u8_s64): Likewise.
6164 (__arm_vreinterpretq_u8_s8): Likewise.
6165 (__arm_vreinterpretq_u8_u16): Likewise.
6166 (__arm_vreinterpretq_u8_u32): Likewise.
6167 (__arm_vreinterpretq_u8_u64): Likewise.
6168 (__arm_vuninitializedq_f16): Likewise.
6169 (__arm_vuninitializedq_f32): Likewise.
6170 (__arm_vreinterpretq_s32_f16): Likewise.
6171 (__arm_vreinterpretq_s32_f32): Likewise.
6172 (__arm_vreinterpretq_s16_f16): Likewise.
6173 (__arm_vreinterpretq_s16_f32): Likewise.
6174 (__arm_vreinterpretq_s64_f16): Likewise.
6175 (__arm_vreinterpretq_s64_f32): Likewise.
6176 (__arm_vreinterpretq_s8_f16): Likewise.
6177 (__arm_vreinterpretq_s8_f32): Likewise.
6178 (__arm_vreinterpretq_u16_f16): Likewise.
6179 (__arm_vreinterpretq_u16_f32): Likewise.
6180 (__arm_vreinterpretq_u32_f16): Likewise.
6181 (__arm_vreinterpretq_u32_f32): Likewise.
6182 (__arm_vreinterpretq_u64_f16): Likewise.
6183 (__arm_vreinterpretq_u64_f32): Likewise.
6184 (__arm_vreinterpretq_u8_f16): Likewise.
6185 (__arm_vreinterpretq_u8_f32): Likewise.
6186 (__arm_vreinterpretq_f16_f32): Likewise.
6187 (__arm_vreinterpretq_f16_s16): Likewise.
6188 (__arm_vreinterpretq_f16_s32): Likewise.
6189 (__arm_vreinterpretq_f16_s64): Likewise.
6190 (__arm_vreinterpretq_f16_s8): Likewise.
6191 (__arm_vreinterpretq_f16_u16): Likewise.
6192 (__arm_vreinterpretq_f16_u32): Likewise.
6193 (__arm_vreinterpretq_f16_u64): Likewise.
6194 (__arm_vreinterpretq_f16_u8): Likewise.
6195 (__arm_vreinterpretq_f32_f16): Likewise.
6196 (__arm_vreinterpretq_f32_s16): Likewise.
6197 (__arm_vreinterpretq_f32_s32): Likewise.
6198 (__arm_vreinterpretq_f32_s64): Likewise.
6199 (__arm_vreinterpretq_f32_s8): Likewise.
6200 (__arm_vreinterpretq_f32_u16): Likewise.
6201 (__arm_vreinterpretq_f32_u32): Likewise.
6202 (__arm_vreinterpretq_f32_u64): Likewise.
6203 (__arm_vreinterpretq_f32_u8): Likewise.
6204 (vuninitializedq): Define polymorphic variant.
6205 (vreinterpretq_f16): Likewise.
6206 (vreinterpretq_f32): Likewise.
6207 (vreinterpretq_s16): Likewise.
6208 (vreinterpretq_s32): Likewise.
6209 (vreinterpretq_s64): Likewise.
6210 (vreinterpretq_s8): Likewise.
6211 (vreinterpretq_u16): Likewise.
6212 (vreinterpretq_u32): Likewise.
6213 (vreinterpretq_u64): Likewise.
6214 (vreinterpretq_u8): Likewise.
6216 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6217 Andre Vieira <andre.simoesdiasvieira@arm.com>
6218 Mihail Ionescu <mihail.ionescu@arm.com>
6220 * config/arm/arm_mve.h (vaddq_s8): Define macro.
6221 (vaddq_s16): Likewise.
6222 (vaddq_s32): Likewise.
6223 (vaddq_u8): Likewise.
6224 (vaddq_u16): Likewise.
6225 (vaddq_u32): Likewise.
6226 (vaddq_f16): Likewise.
6227 (vaddq_f32): Likewise.
6228 (__arm_vaddq_s8): Define intrinsic.
6229 (__arm_vaddq_s16): Likewise.
6230 (__arm_vaddq_s32): Likewise.
6231 (__arm_vaddq_u8): Likewise.
6232 (__arm_vaddq_u16): Likewise.
6233 (__arm_vaddq_u32): Likewise.
6234 (__arm_vaddq_f16): Likewise.
6235 (__arm_vaddq_f32): Likewise.
6236 (vaddq): Define polymorphic variant.
6237 * config/arm/iterators.md (VNIM): Define mode iterator for common types
6238 Neon, IWMMXT and MVE.
6239 (VNINOTM): Likewise.
6240 * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern.
6241 (mve_vaddq_f<mode>): Define RTL pattern.
6242 * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern.
6243 (addv8hf3_neon): Define RTL pattern.
6244 * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern
6246 (addv8hf3): Define standard RTL pattern for MVE and Neon.
6247 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT.
6249 2020-03-20 Martin Liska <mliska@suse.cz>
6252 * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously
6253 build_ref_for_offset function was used and it transforms off to bytes
6256 2020-03-20 Richard Biener <rguenther@suse.de>
6258 PR tree-optimization/94266
6259 * gimple-ssa-sprintf.c (get_origin_and_offset): Use the
6260 type of the underlying object to adjust for the containing
6263 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
6265 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ...
6266 (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec.
6267 * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns.
6269 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
6271 * config/arm/mve.md (mve_mov<mode>): Fix R->R case.
6273 2020-03-20 Jakub Jelinek <jakub@redhat.com>
6275 PR tree-optimization/94224
6276 * gimple-ssa-store-merging.c
6277 (imm_store_chain_info::coalesce_immediate): Don't consider overlapping
6278 or adjacent INTEGER_CST rhs_code stores as mergeable if they have
6281 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
6283 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
6285 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
6288 * cgraph.c (cgraph_node::function_symbol): Fix availability computation.
6289 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6291 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
6294 * cgraphunit.c (process_function_and_variable_attributes): warn
6295 for flatten attribute on alias.
6296 * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias.
6298 2020-03-19 Martin Liska <mliska@suse.cz>
6300 * lto-section-in.c: Add ext_symtab.
6301 * lto-streamer-out.c (write_symbol_extension_info): New.
6302 (produce_symtab_extension): New.
6303 (produce_asm_for_decls): Stream also produce_symtab_extension.
6304 * lto-streamer.h (enum lto_section_type): New section.
6306 2020-03-19 Jakub Jelinek <jakub@redhat.com>
6308 PR tree-optimization/94211
6309 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
6310 instead of estimate_num_insns for bb_seq (middle_bb). Rename
6311 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
6314 2020-03-19 Richard Biener <rguenther@suse.de>
6317 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr
6318 and build_ref_for_offset.
6320 2020-03-19 Richard Biener <rguenther@suse.de>
6323 * fold-const.c (fold_binary_loc): Avoid using
6324 build_fold_addr_expr when we really want an ADDR_EXPR.
6326 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
6328 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
6331 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
6333 PR rtl-optimization/90275
6334 * cse.c (cse_insn): Delete no-op register moves too.
6336 2020-03-18 Martin Sebor <msebor@redhat.com>
6339 * cgraphunit.c (process_function_and_variable_attributes): Also
6340 complain about weakref function definitions and drop all effects
6343 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6344 Mihail Ionescu <mihail.ionescu@arm.com>
6345 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6347 * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro.
6348 (vstrdq_scatter_base_p_u64): Likewise.
6349 (vstrdq_scatter_base_s64): Likewise.
6350 (vstrdq_scatter_base_u64): Likewise.
6351 (vstrdq_scatter_offset_p_s64): Likewise.
6352 (vstrdq_scatter_offset_p_u64): Likewise.
6353 (vstrdq_scatter_offset_s64): Likewise.
6354 (vstrdq_scatter_offset_u64): Likewise.
6355 (vstrdq_scatter_shifted_offset_p_s64): Likewise.
6356 (vstrdq_scatter_shifted_offset_p_u64): Likewise.
6357 (vstrdq_scatter_shifted_offset_s64): Likewise.
6358 (vstrdq_scatter_shifted_offset_u64): Likewise.
6359 (vstrhq_scatter_offset_f16): Likewise.
6360 (vstrhq_scatter_offset_p_f16): Likewise.
6361 (vstrhq_scatter_shifted_offset_f16): Likewise.
6362 (vstrhq_scatter_shifted_offset_p_f16): Likewise.
6363 (vstrwq_scatter_base_f32): Likewise.
6364 (vstrwq_scatter_base_p_f32): Likewise.
6365 (vstrwq_scatter_offset_f32): Likewise.
6366 (vstrwq_scatter_offset_p_f32): Likewise.
6367 (vstrwq_scatter_offset_p_s32): Likewise.
6368 (vstrwq_scatter_offset_p_u32): Likewise.
6369 (vstrwq_scatter_offset_s32): Likewise.
6370 (vstrwq_scatter_offset_u32): Likewise.
6371 (vstrwq_scatter_shifted_offset_f32): Likewise.
6372 (vstrwq_scatter_shifted_offset_p_f32): Likewise.
6373 (vstrwq_scatter_shifted_offset_p_s32): Likewise.
6374 (vstrwq_scatter_shifted_offset_p_u32): Likewise.
6375 (vstrwq_scatter_shifted_offset_s32): Likewise.
6376 (vstrwq_scatter_shifted_offset_u32): Likewise.
6377 (__arm_vstrdq_scatter_base_p_s64): Define intrinsic.
6378 (__arm_vstrdq_scatter_base_p_u64): Likewise.
6379 (__arm_vstrdq_scatter_base_s64): Likewise.
6380 (__arm_vstrdq_scatter_base_u64): Likewise.
6381 (__arm_vstrdq_scatter_offset_p_s64): Likewise.
6382 (__arm_vstrdq_scatter_offset_p_u64): Likewise.
6383 (__arm_vstrdq_scatter_offset_s64): Likewise.
6384 (__arm_vstrdq_scatter_offset_u64): Likewise.
6385 (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise.
6386 (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise.
6387 (__arm_vstrdq_scatter_shifted_offset_s64): Likewise.
6388 (__arm_vstrdq_scatter_shifted_offset_u64): Likewise.
6389 (__arm_vstrwq_scatter_offset_p_s32): Likewise.
6390 (__arm_vstrwq_scatter_offset_p_u32): Likewise.
6391 (__arm_vstrwq_scatter_offset_s32): Likewise.
6392 (__arm_vstrwq_scatter_offset_u32): Likewise.
6393 (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise.
6394 (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise.
6395 (__arm_vstrwq_scatter_shifted_offset_s32): Likewise.
6396 (__arm_vstrwq_scatter_shifted_offset_u32): Likewise.
6397 (__arm_vstrhq_scatter_offset_f16): Likewise.
6398 (__arm_vstrhq_scatter_offset_p_f16): Likewise.
6399 (__arm_vstrhq_scatter_shifted_offset_f16): Likewise.
6400 (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise.
6401 (__arm_vstrwq_scatter_base_f32): Likewise.
6402 (__arm_vstrwq_scatter_base_p_f32): Likewise.
6403 (__arm_vstrwq_scatter_offset_f32): Likewise.
6404 (__arm_vstrwq_scatter_offset_p_f32): Likewise.
6405 (__arm_vstrwq_scatter_shifted_offset_f32): Likewise.
6406 (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise.
6407 (vstrhq_scatter_offset): Define polymorphic variant.
6408 (vstrhq_scatter_offset_p): Likewise.
6409 (vstrhq_scatter_shifted_offset): Likewise.
6410 (vstrhq_scatter_shifted_offset_p): Likewise.
6411 (vstrwq_scatter_base): Likewise.
6412 (vstrwq_scatter_base_p): Likewise.
6413 (vstrwq_scatter_offset): Likewise.
6414 (vstrwq_scatter_offset_p): Likewise.
6415 (vstrwq_scatter_shifted_offset): Likewise.
6416 (vstrwq_scatter_shifted_offset_p): Likewise.
6417 (vstrdq_scatter_base_p): Likewise.
6418 (vstrdq_scatter_base): Likewise.
6419 (vstrdq_scatter_offset_p): Likewise.
6420 (vstrdq_scatter_offset): Likewise.
6421 (vstrdq_scatter_shifted_offset_p): Likewise.
6422 (vstrdq_scatter_shifted_offset): Likewise.
6423 * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier.
6424 (STRSBS_P): Likewise.
6426 (STRSBU_P): Likewise.
6428 (STRSS_P): Likewise.
6430 (STRSU_P): Likewise.
6431 * config/arm/constraints.md (Ri): Define.
6432 * config/arm/mve.md (VSTRDSBQ): Define iterator.
6433 (VSTRDSOQ): Likewise.
6434 (VSTRDSSOQ): Likewise.
6435 (VSTRWSOQ): Likewise.
6436 (VSTRWSSOQ): Likewise.
6437 (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern.
6438 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
6439 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
6440 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
6441 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
6442 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
6443 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
6444 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
6445 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
6446 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
6447 (mve_vstrwq_scatter_base_fv4sf): Likewise.
6448 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
6449 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
6450 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
6451 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
6452 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
6453 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
6454 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
6455 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
6456 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
6457 * config/arm/predicates.md (Ri): Define predicate to check immediate
6458 is the range +/-1016 and multiple of 8.
6460 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6461 Mihail Ionescu <mihail.ionescu@arm.com>
6462 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6464 * config/arm/arm_mve.h (vst1q_f32): Define macro.
6465 (vst1q_f16): Likewise.
6466 (vst1q_s8): Likewise.
6467 (vst1q_s32): Likewise.
6468 (vst1q_s16): Likewise.
6469 (vst1q_u8): Likewise.
6470 (vst1q_u32): Likewise.
6471 (vst1q_u16): Likewise.
6472 (vstrhq_f16): Likewise.
6473 (vstrhq_scatter_offset_s32): Likewise.
6474 (vstrhq_scatter_offset_s16): Likewise.
6475 (vstrhq_scatter_offset_u32): Likewise.
6476 (vstrhq_scatter_offset_u16): Likewise.
6477 (vstrhq_scatter_offset_p_s32): Likewise.
6478 (vstrhq_scatter_offset_p_s16): Likewise.
6479 (vstrhq_scatter_offset_p_u32): Likewise.
6480 (vstrhq_scatter_offset_p_u16): Likewise.
6481 (vstrhq_scatter_shifted_offset_s32): Likewise.
6482 (vstrhq_scatter_shifted_offset_s16): Likewise.
6483 (vstrhq_scatter_shifted_offset_u32): Likewise.
6484 (vstrhq_scatter_shifted_offset_u16): Likewise.
6485 (vstrhq_scatter_shifted_offset_p_s32): Likewise.
6486 (vstrhq_scatter_shifted_offset_p_s16): Likewise.
6487 (vstrhq_scatter_shifted_offset_p_u32): Likewise.
6488 (vstrhq_scatter_shifted_offset_p_u16): Likewise.
6489 (vstrhq_s32): Likewise.
6490 (vstrhq_s16): Likewise.
6491 (vstrhq_u32): Likewise.
6492 (vstrhq_u16): Likewise.
6493 (vstrhq_p_f16): Likewise.
6494 (vstrhq_p_s32): Likewise.
6495 (vstrhq_p_s16): Likewise.
6496 (vstrhq_p_u32): Likewise.
6497 (vstrhq_p_u16): Likewise.
6498 (vstrwq_f32): Likewise.
6499 (vstrwq_s32): Likewise.
6500 (vstrwq_u32): Likewise.
6501 (vstrwq_p_f32): Likewise.
6502 (vstrwq_p_s32): Likewise.
6503 (vstrwq_p_u32): Likewise.
6504 (__arm_vst1q_s8): Define intrinsic.
6505 (__arm_vst1q_s32): Likewise.
6506 (__arm_vst1q_s16): Likewise.
6507 (__arm_vst1q_u8): Likewise.
6508 (__arm_vst1q_u32): Likewise.
6509 (__arm_vst1q_u16): Likewise.
6510 (__arm_vstrhq_scatter_offset_s32): Likewise.
6511 (__arm_vstrhq_scatter_offset_s16): Likewise.
6512 (__arm_vstrhq_scatter_offset_u32): Likewise.
6513 (__arm_vstrhq_scatter_offset_u16): Likewise.
6514 (__arm_vstrhq_scatter_offset_p_s32): Likewise.
6515 (__arm_vstrhq_scatter_offset_p_s16): Likewise.
6516 (__arm_vstrhq_scatter_offset_p_u32): Likewise.
6517 (__arm_vstrhq_scatter_offset_p_u16): Likewise.
6518 (__arm_vstrhq_scatter_shifted_offset_s32): Likewise.
6519 (__arm_vstrhq_scatter_shifted_offset_s16): Likewise.
6520 (__arm_vstrhq_scatter_shifted_offset_u32): Likewise.
6521 (__arm_vstrhq_scatter_shifted_offset_u16): Likewise.
6522 (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise.
6523 (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise.
6524 (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise.
6525 (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise.
6526 (__arm_vstrhq_s32): Likewise.
6527 (__arm_vstrhq_s16): Likewise.
6528 (__arm_vstrhq_u32): Likewise.
6529 (__arm_vstrhq_u16): Likewise.
6530 (__arm_vstrhq_p_s32): Likewise.
6531 (__arm_vstrhq_p_s16): Likewise.
6532 (__arm_vstrhq_p_u32): Likewise.
6533 (__arm_vstrhq_p_u16): Likewise.
6534 (__arm_vstrwq_s32): Likewise.
6535 (__arm_vstrwq_u32): Likewise.
6536 (__arm_vstrwq_p_s32): Likewise.
6537 (__arm_vstrwq_p_u32): Likewise.
6538 (__arm_vstrwq_p_f32): Likewise.
6539 (__arm_vstrwq_f32): Likewise.
6540 (__arm_vst1q_f32): Likewise.
6541 (__arm_vst1q_f16): Likewise.
6542 (__arm_vstrhq_f16): Likewise.
6543 (__arm_vstrhq_p_f16): Likewise.
6544 (vst1q): Define polymorphic variant.
6546 (vstrhq_p): Likewise.
6547 (vstrhq_scatter_offset_p): Likewise.
6548 (vstrhq_scatter_offset): Likewise.
6549 (vstrhq_scatter_shifted_offset_p): Likewise.
6550 (vstrhq_scatter_shifted_offset): Likewise.
6551 (vstrwq_p): Likewise.
6553 * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier.
6556 (STRSS_P): Likewise.
6558 (STRSU_P): Likewise.
6561 * config/arm/mve.md (VST1Q): Define iterator.
6562 (VSTRHSOQ): Likewise.
6563 (VSTRHSSOQ): Likewise.
6566 (mve_vstrhq_fv8hf): Define RTL pattern.
6567 (mve_vstrhq_p_fv8hf): Likewise.
6568 (mve_vstrhq_p_<supf><mode>): Likewise.
6569 (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise.
6570 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
6571 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
6572 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
6573 (mve_vstrhq_<supf><mode>): Likewise.
6574 (mve_vstrwq_fv4sf): Likewise.
6575 (mve_vstrwq_p_fv4sf): Likewise.
6576 (mve_vstrwq_p_<supf>v4si): Likewise.
6577 (mve_vstrwq_<supf>v4si): Likewise.
6578 (mve_vst1q_f<mode>): Define expand.
6579 (mve_vst1q_<supf><mode>): Likewise.
6581 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6582 Mihail Ionescu <mihail.ionescu@arm.com>
6583 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6585 * config/arm/arm_mve.h (vld1q_s8): Define macro.
6586 (vld1q_s32): Likewise.
6587 (vld1q_s16): Likewise.
6588 (vld1q_u8): Likewise.
6589 (vld1q_u32): Likewise.
6590 (vld1q_u16): Likewise.
6591 (vldrhq_gather_offset_s32): Likewise.
6592 (vldrhq_gather_offset_s16): Likewise.
6593 (vldrhq_gather_offset_u32): Likewise.
6594 (vldrhq_gather_offset_u16): Likewise.
6595 (vldrhq_gather_offset_z_s32): Likewise.
6596 (vldrhq_gather_offset_z_s16): Likewise.
6597 (vldrhq_gather_offset_z_u32): Likewise.
6598 (vldrhq_gather_offset_z_u16): Likewise.
6599 (vldrhq_gather_shifted_offset_s32): Likewise.
6600 (vldrhq_gather_shifted_offset_s16): Likewise.
6601 (vldrhq_gather_shifted_offset_u32): Likewise.
6602 (vldrhq_gather_shifted_offset_u16): Likewise.
6603 (vldrhq_gather_shifted_offset_z_s32): Likewise.
6604 (vldrhq_gather_shifted_offset_z_s16): Likewise.
6605 (vldrhq_gather_shifted_offset_z_u32): Likewise.
6606 (vldrhq_gather_shifted_offset_z_u16): Likewise.
6607 (vldrhq_s32): Likewise.
6608 (vldrhq_s16): Likewise.
6609 (vldrhq_u32): Likewise.
6610 (vldrhq_u16): Likewise.
6611 (vldrhq_z_s32): Likewise.
6612 (vldrhq_z_s16): Likewise.
6613 (vldrhq_z_u32): Likewise.
6614 (vldrhq_z_u16): Likewise.
6615 (vldrwq_s32): Likewise.
6616 (vldrwq_u32): Likewise.
6617 (vldrwq_z_s32): Likewise.
6618 (vldrwq_z_u32): Likewise.
6619 (vld1q_f32): Likewise.
6620 (vld1q_f16): Likewise.
6621 (vldrhq_f16): Likewise.
6622 (vldrhq_z_f16): Likewise.
6623 (vldrwq_f32): Likewise.
6624 (vldrwq_z_f32): Likewise.
6625 (__arm_vld1q_s8): Define intrinsic.
6626 (__arm_vld1q_s32): Likewise.
6627 (__arm_vld1q_s16): Likewise.
6628 (__arm_vld1q_u8): Likewise.
6629 (__arm_vld1q_u32): Likewise.
6630 (__arm_vld1q_u16): Likewise.
6631 (__arm_vldrhq_gather_offset_s32): Likewise.
6632 (__arm_vldrhq_gather_offset_s16): Likewise.
6633 (__arm_vldrhq_gather_offset_u32): Likewise.
6634 (__arm_vldrhq_gather_offset_u16): Likewise.
6635 (__arm_vldrhq_gather_offset_z_s32): Likewise.
6636 (__arm_vldrhq_gather_offset_z_s16): Likewise.
6637 (__arm_vldrhq_gather_offset_z_u32): Likewise.
6638 (__arm_vldrhq_gather_offset_z_u16): Likewise.
6639 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
6640 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
6641 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
6642 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
6643 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
6644 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
6645 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
6646 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
6647 (__arm_vldrhq_s32): Likewise.
6648 (__arm_vldrhq_s16): Likewise.
6649 (__arm_vldrhq_u32): Likewise.
6650 (__arm_vldrhq_u16): Likewise.
6651 (__arm_vldrhq_z_s32): Likewise.
6652 (__arm_vldrhq_z_s16): Likewise.
6653 (__arm_vldrhq_z_u32): Likewise.
6654 (__arm_vldrhq_z_u16): Likewise.
6655 (__arm_vldrwq_s32): Likewise.
6656 (__arm_vldrwq_u32): Likewise.
6657 (__arm_vldrwq_z_s32): Likewise.
6658 (__arm_vldrwq_z_u32): Likewise.
6659 (__arm_vld1q_f32): Likewise.
6660 (__arm_vld1q_f16): Likewise.
6661 (__arm_vldrwq_f32): Likewise.
6662 (__arm_vldrwq_z_f32): Likewise.
6663 (__arm_vldrhq_z_f16): Likewise.
6664 (__arm_vldrhq_f16): Likewise.
6665 (vld1q): Define polymorphic variant.
6666 (vldrhq_gather_offset): Likewise.
6667 (vldrhq_gather_offset_z): Likewise.
6668 (vldrhq_gather_shifted_offset): Likewise.
6669 (vldrhq_gather_shifted_offset_z): Likewise.
6670 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
6674 (LDRGU_Z): Likewise.
6676 (LDRGS_Z): Likewise.
6678 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
6679 (V_sz_elem1): Likewise.
6680 (VLD1Q): Define iterator.
6681 (VLDRHGOQ): Likewise.
6682 (VLDRHGSOQ): Likewise.
6685 (mve_vldrhq_fv8hf): Define RTL pattern.
6686 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
6687 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
6688 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
6689 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
6690 (mve_vldrhq_<supf><mode>): Likewise.
6691 (mve_vldrhq_z_fv8hf): Likewise.
6692 (mve_vldrhq_z_<supf><mode>): Likewise.
6693 (mve_vldrwq_fv4sf): Likewise.
6694 (mve_vldrwq_<supf>v4si): Likewise.
6695 (mve_vldrwq_z_fv4sf): Likewise.
6696 (mve_vldrwq_z_<supf>v4si): Likewise.
6697 (mve_vld1q_f<mode>): Define RTL expand pattern.
6698 (mve_vld1q_<supf><mode>): Likewise.
6700 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6701 Mihail Ionescu <mihail.ionescu@arm.com>
6702 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6704 * config/arm/arm_mve.h (vld1q_s8): Define macro.
6705 (vld1q_s32): Likewise.
6706 (vld1q_s16): Likewise.
6707 (vld1q_u8): Likewise.
6708 (vld1q_u32): Likewise.
6709 (vld1q_u16): Likewise.
6710 (vldrhq_gather_offset_s32): Likewise.
6711 (vldrhq_gather_offset_s16): Likewise.
6712 (vldrhq_gather_offset_u32): Likewise.
6713 (vldrhq_gather_offset_u16): Likewise.
6714 (vldrhq_gather_offset_z_s32): Likewise.
6715 (vldrhq_gather_offset_z_s16): Likewise.
6716 (vldrhq_gather_offset_z_u32): Likewise.
6717 (vldrhq_gather_offset_z_u16): Likewise.
6718 (vldrhq_gather_shifted_offset_s32): Likewise.
6719 (vldrhq_gather_shifted_offset_s16): Likewise.
6720 (vldrhq_gather_shifted_offset_u32): Likewise.
6721 (vldrhq_gather_shifted_offset_u16): Likewise.
6722 (vldrhq_gather_shifted_offset_z_s32): Likewise.
6723 (vldrhq_gather_shifted_offset_z_s16): Likewise.
6724 (vldrhq_gather_shifted_offset_z_u32): Likewise.
6725 (vldrhq_gather_shifted_offset_z_u16): Likewise.
6726 (vldrhq_s32): Likewise.
6727 (vldrhq_s16): Likewise.
6728 (vldrhq_u32): Likewise.
6729 (vldrhq_u16): Likewise.
6730 (vldrhq_z_s32): Likewise.
6731 (vldrhq_z_s16): Likewise.
6732 (vldrhq_z_u32): Likewise.
6733 (vldrhq_z_u16): Likewise.
6734 (vldrwq_s32): Likewise.
6735 (vldrwq_u32): Likewise.
6736 (vldrwq_z_s32): Likewise.
6737 (vldrwq_z_u32): Likewise.
6738 (vld1q_f32): Likewise.
6739 (vld1q_f16): Likewise.
6740 (vldrhq_f16): Likewise.
6741 (vldrhq_z_f16): Likewise.
6742 (vldrwq_f32): Likewise.
6743 (vldrwq_z_f32): Likewise.
6744 (__arm_vld1q_s8): Define intrinsic.
6745 (__arm_vld1q_s32): Likewise.
6746 (__arm_vld1q_s16): Likewise.
6747 (__arm_vld1q_u8): Likewise.
6748 (__arm_vld1q_u32): Likewise.
6749 (__arm_vld1q_u16): Likewise.
6750 (__arm_vldrhq_gather_offset_s32): Likewise.
6751 (__arm_vldrhq_gather_offset_s16): Likewise.
6752 (__arm_vldrhq_gather_offset_u32): Likewise.
6753 (__arm_vldrhq_gather_offset_u16): Likewise.
6754 (__arm_vldrhq_gather_offset_z_s32): Likewise.
6755 (__arm_vldrhq_gather_offset_z_s16): Likewise.
6756 (__arm_vldrhq_gather_offset_z_u32): Likewise.
6757 (__arm_vldrhq_gather_offset_z_u16): Likewise.
6758 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
6759 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
6760 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
6761 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
6762 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
6763 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
6764 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
6765 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
6766 (__arm_vldrhq_s32): Likewise.
6767 (__arm_vldrhq_s16): Likewise.
6768 (__arm_vldrhq_u32): Likewise.
6769 (__arm_vldrhq_u16): Likewise.
6770 (__arm_vldrhq_z_s32): Likewise.
6771 (__arm_vldrhq_z_s16): Likewise.
6772 (__arm_vldrhq_z_u32): Likewise.
6773 (__arm_vldrhq_z_u16): Likewise.
6774 (__arm_vldrwq_s32): Likewise.
6775 (__arm_vldrwq_u32): Likewise.
6776 (__arm_vldrwq_z_s32): Likewise.
6777 (__arm_vldrwq_z_u32): Likewise.
6778 (__arm_vld1q_f32): Likewise.
6779 (__arm_vld1q_f16): Likewise.
6780 (__arm_vldrwq_f32): Likewise.
6781 (__arm_vldrwq_z_f32): Likewise.
6782 (__arm_vldrhq_z_f16): Likewise.
6783 (__arm_vldrhq_f16): Likewise.
6784 (vld1q): Define polymorphic variant.
6785 (vldrhq_gather_offset): Likewise.
6786 (vldrhq_gather_offset_z): Likewise.
6787 (vldrhq_gather_shifted_offset): Likewise.
6788 (vldrhq_gather_shifted_offset_z): Likewise.
6789 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
6793 (LDRGU_Z): Likewise.
6795 (LDRGS_Z): Likewise.
6797 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
6798 (V_sz_elem1): Likewise.
6799 (VLD1Q): Define iterator.
6800 (VLDRHGOQ): Likewise.
6801 (VLDRHGSOQ): Likewise.
6804 (mve_vldrhq_fv8hf): Define RTL pattern.
6805 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
6806 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
6807 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
6808 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
6809 (mve_vldrhq_<supf><mode>): Likewise.
6810 (mve_vldrhq_z_fv8hf): Likewise.
6811 (mve_vldrhq_z_<supf><mode>): Likewise.
6812 (mve_vldrwq_fv4sf): Likewise.
6813 (mve_vldrwq_<supf>v4si): Likewise.
6814 (mve_vldrwq_z_fv4sf): Likewise.
6815 (mve_vldrwq_z_<supf>v4si): Likewise.
6816 (mve_vld1q_f<mode>): Define RTL expand pattern.
6817 (mve_vld1q_<supf><mode>): Likewise.
6819 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6820 Mihail Ionescu <mihail.ionescu@arm.com>
6821 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6823 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin
6825 (LDRGBU_Z_QUALIFIERS): Likewise.
6826 (LDRGS_Z_QUALIFIERS): Likewise.
6827 (LDRGU_Z_QUALIFIERS): Likewise.
6828 (LDRS_Z_QUALIFIERS): Likewise.
6829 (LDRU_Z_QUALIFIERS): Likewise.
6830 * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro.
6831 (vldrbq_gather_offset_z_u8): Likewise.
6832 (vldrbq_gather_offset_z_s32): Likewise.
6833 (vldrbq_gather_offset_z_u16): Likewise.
6834 (vldrbq_gather_offset_z_u32): Likewise.
6835 (vldrbq_gather_offset_z_s8): Likewise.
6836 (vldrbq_z_s16): Likewise.
6837 (vldrbq_z_u8): Likewise.
6838 (vldrbq_z_s8): Likewise.
6839 (vldrbq_z_s32): Likewise.
6840 (vldrbq_z_u16): Likewise.
6841 (vldrbq_z_u32): Likewise.
6842 (vldrwq_gather_base_z_u32): Likewise.
6843 (vldrwq_gather_base_z_s32): Likewise.
6844 (__arm_vldrbq_gather_offset_z_s8): Define intrinsic.
6845 (__arm_vldrbq_gather_offset_z_s32): Likewise.
6846 (__arm_vldrbq_gather_offset_z_s16): Likewise.
6847 (__arm_vldrbq_gather_offset_z_u8): Likewise.
6848 (__arm_vldrbq_gather_offset_z_u32): Likewise.
6849 (__arm_vldrbq_gather_offset_z_u16): Likewise.
6850 (__arm_vldrbq_z_s8): Likewise.
6851 (__arm_vldrbq_z_s32): Likewise.
6852 (__arm_vldrbq_z_s16): Likewise.
6853 (__arm_vldrbq_z_u8): Likewise.
6854 (__arm_vldrbq_z_u32): Likewise.
6855 (__arm_vldrbq_z_u16): Likewise.
6856 (__arm_vldrwq_gather_base_z_s32): Likewise.
6857 (__arm_vldrwq_gather_base_z_u32): Likewise.
6858 (vldrbq_gather_offset_z): Define polymorphic variant.
6859 * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin
6861 (LDRGBU_Z_QUALIFIERS): Likewise.
6862 (LDRGS_Z_QUALIFIERS): Likewise.
6863 (LDRGU_Z_QUALIFIERS): Likewise.
6864 (LDRS_Z_QUALIFIERS): Likewise.
6865 (LDRU_Z_QUALIFIERS): Likewise.
6866 * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define
6868 (mve_vldrbq_z_<supf><mode>): Likewise.
6869 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
6871 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6872 Mihail Ionescu <mihail.ionescu@arm.com>
6873 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6875 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin
6877 (STRU_P_QUALIFIERS): Likewise.
6878 (STRSU_P_QUALIFIERS): Likewise.
6879 (STRSS_P_QUALIFIERS): Likewise.
6880 (STRSBS_P_QUALIFIERS): Likewise.
6881 (STRSBU_P_QUALIFIERS): Likewise.
6882 * config/arm/arm_mve.h (vstrbq_p_s8): Define macro.
6883 (vstrbq_p_s32): Likewise.
6884 (vstrbq_p_s16): Likewise.
6885 (vstrbq_p_u8): Likewise.
6886 (vstrbq_p_u32): Likewise.
6887 (vstrbq_p_u16): Likewise.
6888 (vstrbq_scatter_offset_p_s8): Likewise.
6889 (vstrbq_scatter_offset_p_s32): Likewise.
6890 (vstrbq_scatter_offset_p_s16): Likewise.
6891 (vstrbq_scatter_offset_p_u8): Likewise.
6892 (vstrbq_scatter_offset_p_u32): Likewise.
6893 (vstrbq_scatter_offset_p_u16): Likewise.
6894 (vstrwq_scatter_base_p_s32): Likewise.
6895 (vstrwq_scatter_base_p_u32): Likewise.
6896 (__arm_vstrbq_p_s8): Define intrinsic.
6897 (__arm_vstrbq_p_s32): Likewise.
6898 (__arm_vstrbq_p_s16): Likewise.
6899 (__arm_vstrbq_p_u8): Likewise.
6900 (__arm_vstrbq_p_u32): Likewise.
6901 (__arm_vstrbq_p_u16): Likewise.
6902 (__arm_vstrbq_scatter_offset_p_s8): Likewise.
6903 (__arm_vstrbq_scatter_offset_p_s32): Likewise.
6904 (__arm_vstrbq_scatter_offset_p_s16): Likewise.
6905 (__arm_vstrbq_scatter_offset_p_u8): Likewise.
6906 (__arm_vstrbq_scatter_offset_p_u32): Likewise.
6907 (__arm_vstrbq_scatter_offset_p_u16): Likewise.
6908 (__arm_vstrwq_scatter_base_p_s32): Likewise.
6909 (__arm_vstrwq_scatter_base_p_u32): Likewise.
6910 (vstrbq_p): Define polymorphic variant.
6911 (vstrbq_scatter_offset_p): Likewise.
6912 (vstrwq_scatter_base_p): Likewise.
6913 * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin
6915 (STRU_P_QUALIFIERS): Likewise.
6916 (STRSU_P_QUALIFIERS): Likewise.
6917 (STRSS_P_QUALIFIERS): Likewise.
6918 (STRSBS_P_QUALIFIERS): Likewise.
6919 (STRSBU_P_QUALIFIERS): Likewise.
6920 * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define
6922 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
6923 (mve_vstrbq_p_<supf><mode>): Likewise.
6925 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6926 Mihail Ionescu <mihail.ionescu@arm.com>
6927 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6929 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin
6931 (LDRGS_QUALIFIERS): Likewise.
6932 (LDRS_QUALIFIERS): Likewise.
6933 (LDRU_QUALIFIERS): Likewise.
6934 (LDRGBS_QUALIFIERS): Likewise.
6935 (LDRGBU_QUALIFIERS): Likewise.
6936 * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro.
6937 (vldrbq_gather_offset_s8): Likewise.
6938 (vldrbq_s8): Likewise.
6939 (vldrbq_u8): Likewise.
6940 (vldrbq_gather_offset_u16): Likewise.
6941 (vldrbq_gather_offset_s16): Likewise.
6942 (vldrbq_s16): Likewise.
6943 (vldrbq_u16): Likewise.
6944 (vldrbq_gather_offset_u32): Likewise.
6945 (vldrbq_gather_offset_s32): Likewise.
6946 (vldrbq_s32): Likewise.
6947 (vldrbq_u32): Likewise.
6948 (vldrwq_gather_base_s32): Likewise.
6949 (vldrwq_gather_base_u32): Likewise.
6950 (__arm_vldrbq_gather_offset_u8): Define intrinsic.
6951 (__arm_vldrbq_gather_offset_s8): Likewise.
6952 (__arm_vldrbq_s8): Likewise.
6953 (__arm_vldrbq_u8): Likewise.
6954 (__arm_vldrbq_gather_offset_u16): Likewise.
6955 (__arm_vldrbq_gather_offset_s16): Likewise.
6956 (__arm_vldrbq_s16): Likewise.
6957 (__arm_vldrbq_u16): Likewise.
6958 (__arm_vldrbq_gather_offset_u32): Likewise.
6959 (__arm_vldrbq_gather_offset_s32): Likewise.
6960 (__arm_vldrbq_s32): Likewise.
6961 (__arm_vldrbq_u32): Likewise.
6962 (__arm_vldrwq_gather_base_s32): Likewise.
6963 (__arm_vldrwq_gather_base_u32): Likewise.
6964 (vldrbq_gather_offset): Define polymorphic variant.
6965 * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin
6967 (LDRGS_QUALIFIERS): Likewise.
6968 (LDRS_QUALIFIERS): Likewise.
6969 (LDRU_QUALIFIERS): Likewise.
6970 (LDRGBS_QUALIFIERS): Likewise.
6971 (LDRGBU_QUALIFIERS): Likewise.
6972 * config/arm/mve.md (VLDRBGOQ): Define iterator.
6974 (VLDRWGBQ): Likewise.
6975 (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern.
6976 (mve_vldrbq_<supf><mode>): Likewise.
6977 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
6979 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6980 Mihail Ionescu <mihail.ionescu@arm.com>
6981 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6983 * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier.
6984 (STRU_QUALIFIERS): Likewise.
6985 (STRSS_QUALIFIERS): Likewise.
6986 (STRSU_QUALIFIERS): Likewise.
6987 (STRSBS_QUALIFIERS): Likewise.
6988 (STRSBU_QUALIFIERS): Likewise.
6989 * config/arm/arm_mve.h (vstrbq_s8): Define macro.
6990 (vstrbq_u8): Likewise.
6991 (vstrbq_u16): Likewise.
6992 (vstrbq_scatter_offset_s8): Likewise.
6993 (vstrbq_scatter_offset_u8): Likewise.
6994 (vstrbq_scatter_offset_u16): Likewise.
6995 (vstrbq_s16): Likewise.
6996 (vstrbq_u32): Likewise.
6997 (vstrbq_scatter_offset_s16): Likewise.
6998 (vstrbq_scatter_offset_u32): Likewise.
6999 (vstrbq_s32): Likewise.
7000 (vstrbq_scatter_offset_s32): Likewise.
7001 (vstrwq_scatter_base_s32): Likewise.
7002 (vstrwq_scatter_base_u32): Likewise.
7003 (__arm_vstrbq_scatter_offset_s8): Define intrinsic.
7004 (__arm_vstrbq_scatter_offset_s32): Likewise.
7005 (__arm_vstrbq_scatter_offset_s16): Likewise.
7006 (__arm_vstrbq_scatter_offset_u8): Likewise.
7007 (__arm_vstrbq_scatter_offset_u32): Likewise.
7008 (__arm_vstrbq_scatter_offset_u16): Likewise.
7009 (__arm_vstrbq_s8): Likewise.
7010 (__arm_vstrbq_s32): Likewise.
7011 (__arm_vstrbq_s16): Likewise.
7012 (__arm_vstrbq_u8): Likewise.
7013 (__arm_vstrbq_u32): Likewise.
7014 (__arm_vstrbq_u16): Likewise.
7015 (__arm_vstrwq_scatter_base_s32): Likewise.
7016 (__arm_vstrwq_scatter_base_u32): Likewise.
7017 (vstrbq): Define polymorphic variant.
7018 (vstrbq_scatter_offset): Likewise.
7019 (vstrwq_scatter_base): Likewise.
7020 * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin
7022 (STRU_QUALIFIERS): Likewise.
7023 (STRSS_QUALIFIERS): Likewise.
7024 (STRSU_QUALIFIERS): Likewise.
7025 (STRSBS_QUALIFIERS): Likewise.
7026 (STRSBU_QUALIFIERS): Likewise.
7027 * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator.
7028 (VSTRWSBQ): Define iterators.
7029 (VSTRBSOQ): Likewise.
7031 (mve_vstrbq_<supf><mode>): Define RTL pattern.
7032 (mve_vstrbq_scatter_offset_<supf><mode>): Likewise.
7033 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
7035 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
7036 Mihail Ionescu <mihail.ionescu@arm.com>
7037 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7039 * config/arm/arm_mve.h (vabdq_m_f32): Define macro.
7040 (vabdq_m_f16): Likewise.
7041 (vaddq_m_f32): Likewise.
7042 (vaddq_m_f16): Likewise.
7043 (vaddq_m_n_f32): Likewise.
7044 (vaddq_m_n_f16): Likewise.
7045 (vandq_m_f32): Likewise.
7046 (vandq_m_f16): Likewise.
7047 (vbicq_m_f32): Likewise.
7048 (vbicq_m_f16): Likewise.
7049 (vbrsrq_m_n_f32): Likewise.
7050 (vbrsrq_m_n_f16): Likewise.
7051 (vcaddq_rot270_m_f32): Likewise.
7052 (vcaddq_rot270_m_f16): Likewise.
7053 (vcaddq_rot90_m_f32): Likewise.
7054 (vcaddq_rot90_m_f16): Likewise.
7055 (vcmlaq_m_f32): Likewise.
7056 (vcmlaq_m_f16): Likewise.
7057 (vcmlaq_rot180_m_f32): Likewise.
7058 (vcmlaq_rot180_m_f16): Likewise.
7059 (vcmlaq_rot270_m_f32): Likewise.
7060 (vcmlaq_rot270_m_f16): Likewise.
7061 (vcmlaq_rot90_m_f32): Likewise.
7062 (vcmlaq_rot90_m_f16): Likewise.
7063 (vcmulq_m_f32): Likewise.
7064 (vcmulq_m_f16): Likewise.
7065 (vcmulq_rot180_m_f32): Likewise.
7066 (vcmulq_rot180_m_f16): Likewise.
7067 (vcmulq_rot270_m_f32): Likewise.
7068 (vcmulq_rot270_m_f16): Likewise.
7069 (vcmulq_rot90_m_f32): Likewise.
7070 (vcmulq_rot90_m_f16): Likewise.
7071 (vcvtq_m_n_s32_f32): Likewise.
7072 (vcvtq_m_n_s16_f16): Likewise.
7073 (vcvtq_m_n_u32_f32): Likewise.
7074 (vcvtq_m_n_u16_f16): Likewise.
7075 (veorq_m_f32): Likewise.
7076 (veorq_m_f16): Likewise.
7077 (vfmaq_m_f32): Likewise.
7078 (vfmaq_m_f16): Likewise.
7079 (vfmaq_m_n_f32): Likewise.
7080 (vfmaq_m_n_f16): Likewise.
7081 (vfmasq_m_n_f32): Likewise.
7082 (vfmasq_m_n_f16): Likewise.
7083 (vfmsq_m_f32): Likewise.
7084 (vfmsq_m_f16): Likewise.
7085 (vmaxnmq_m_f32): Likewise.
7086 (vmaxnmq_m_f16): Likewise.
7087 (vminnmq_m_f32): Likewise.
7088 (vminnmq_m_f16): Likewise.
7089 (vmulq_m_f32): Likewise.
7090 (vmulq_m_f16): Likewise.
7091 (vmulq_m_n_f32): Likewise.
7092 (vmulq_m_n_f16): Likewise.
7093 (vornq_m_f32): Likewise.
7094 (vornq_m_f16): Likewise.
7095 (vorrq_m_f32): Likewise.
7096 (vorrq_m_f16): Likewise.
7097 (vsubq_m_f32): Likewise.
7098 (vsubq_m_f16): Likewise.
7099 (vsubq_m_n_f32): Likewise.
7100 (vsubq_m_n_f16): Likewise.
7101 (__attribute__): Likewise.
7102 (__arm_vabdq_m_f32): Likewise.
7103 (__arm_vabdq_m_f16): Likewise.
7104 (__arm_vaddq_m_f32): Likewise.
7105 (__arm_vaddq_m_f16): Likewise.
7106 (__arm_vaddq_m_n_f32): Likewise.
7107 (__arm_vaddq_m_n_f16): Likewise.
7108 (__arm_vandq_m_f32): Likewise.
7109 (__arm_vandq_m_f16): Likewise.
7110 (__arm_vbicq_m_f32): Likewise.
7111 (__arm_vbicq_m_f16): Likewise.
7112 (__arm_vbrsrq_m_n_f32): Likewise.
7113 (__arm_vbrsrq_m_n_f16): Likewise.
7114 (__arm_vcaddq_rot270_m_f32): Likewise.
7115 (__arm_vcaddq_rot270_m_f16): Likewise.
7116 (__arm_vcaddq_rot90_m_f32): Likewise.
7117 (__arm_vcaddq_rot90_m_f16): Likewise.
7118 (__arm_vcmlaq_m_f32): Likewise.
7119 (__arm_vcmlaq_m_f16): Likewise.
7120 (__arm_vcmlaq_rot180_m_f32): Likewise.
7121 (__arm_vcmlaq_rot180_m_f16): Likewise.
7122 (__arm_vcmlaq_rot270_m_f32): Likewise.
7123 (__arm_vcmlaq_rot270_m_f16): Likewise.
7124 (__arm_vcmlaq_rot90_m_f32): Likewise.
7125 (__arm_vcmlaq_rot90_m_f16): Likewise.
7126 (__arm_vcmulq_m_f32): Likewise.
7127 (__arm_vcmulq_m_f16): Likewise.
7128 (__arm_vcmulq_rot180_m_f32): Define intrinsic.
7129 (__arm_vcmulq_rot180_m_f16): Likewise.
7130 (__arm_vcmulq_rot270_m_f32): Likewise.
7131 (__arm_vcmulq_rot270_m_f16): Likewise.
7132 (__arm_vcmulq_rot90_m_f32): Likewise.
7133 (__arm_vcmulq_rot90_m_f16): Likewise.
7134 (__arm_vcvtq_m_n_s32_f32): Likewise.
7135 (__arm_vcvtq_m_n_s16_f16): Likewise.
7136 (__arm_vcvtq_m_n_u32_f32): Likewise.
7137 (__arm_vcvtq_m_n_u16_f16): Likewise.
7138 (__arm_veorq_m_f32): Likewise.
7139 (__arm_veorq_m_f16): Likewise.
7140 (__arm_vfmaq_m_f32): Likewise.
7141 (__arm_vfmaq_m_f16): Likewise.
7142 (__arm_vfmaq_m_n_f32): Likewise.
7143 (__arm_vfmaq_m_n_f16): Likewise.
7144 (__arm_vfmasq_m_n_f32): Likewise.
7145 (__arm_vfmasq_m_n_f16): Likewise.
7146 (__arm_vfmsq_m_f32): Likewise.
7147 (__arm_vfmsq_m_f16): Likewise.
7148 (__arm_vmaxnmq_m_f32): Likewise.
7149 (__arm_vmaxnmq_m_f16): Likewise.
7150 (__arm_vminnmq_m_f32): Likewise.
7151 (__arm_vminnmq_m_f16): Likewise.
7152 (__arm_vmulq_m_f32): Likewise.
7153 (__arm_vmulq_m_f16): Likewise.
7154 (__arm_vmulq_m_n_f32): Likewise.
7155 (__arm_vmulq_m_n_f16): Likewise.
7156 (__arm_vornq_m_f32): Likewise.
7157 (__arm_vornq_m_f16): Likewise.
7158 (__arm_vorrq_m_f32): Likewise.
7159 (__arm_vorrq_m_f16): Likewise.
7160 (__arm_vsubq_m_f32): Likewise.
7161 (__arm_vsubq_m_f16): Likewise.
7162 (__arm_vsubq_m_n_f32): Likewise.
7163 (__arm_vsubq_m_n_f16): Likewise.
7164 (vabdq_m): Define polymorphic variant.
7165 (vaddq_m): Likewise.
7166 (vaddq_m_n): Likewise.
7167 (vandq_m): Likewise.
7168 (vbicq_m): Likewise.
7169 (vbrsrq_m_n): Likewise.
7170 (vcaddq_rot270_m): Likewise.
7171 (vcaddq_rot90_m): Likewise.
7172 (vcmlaq_m): Likewise.
7173 (vcmlaq_rot180_m): Likewise.
7174 (vcmlaq_rot270_m): Likewise.
7175 (vcmlaq_rot90_m): Likewise.
7176 (vcmulq_m): Likewise.
7177 (vcmulq_rot180_m): Likewise.
7178 (vcmulq_rot270_m): Likewise.
7179 (vcmulq_rot90_m): Likewise.
7180 (veorq_m): Likewise.
7181 (vfmaq_m): Likewise.
7182 (vfmaq_m_n): Likewise.
7183 (vfmasq_m_n): Likewise.
7184 (vfmsq_m): Likewise.
7185 (vmaxnmq_m): Likewise.
7186 (vminnmq_m): Likewise.
7187 (vmulq_m): Likewise.
7188 (vmulq_m_n): Likewise.
7189 (vornq_m): Likewise.
7190 (vsubq_m): Likewise.
7191 (vsubq_m_n): Likewise.
7192 (vorrq_m): Likewise.
7193 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
7195 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
7196 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
7197 * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern.
7198 (mve_vaddq_m_f<mode>): Likewise.
7199 (mve_vaddq_m_n_f<mode>): Likewise.
7200 (mve_vandq_m_f<mode>): Likewise.
7201 (mve_vbicq_m_f<mode>): Likewise.
7202 (mve_vbrsrq_m_n_f<mode>): Likewise.
7203 (mve_vcaddq_rot270_m_f<mode>): Likewise.
7204 (mve_vcaddq_rot90_m_f<mode>): Likewise.
7205 (mve_vcmlaq_m_f<mode>): Likewise.
7206 (mve_vcmlaq_rot180_m_f<mode>): Likewise.
7207 (mve_vcmlaq_rot270_m_f<mode>): Likewise.
7208 (mve_vcmlaq_rot90_m_f<mode>): Likewise.
7209 (mve_vcmulq_m_f<mode>): Likewise.
7210 (mve_vcmulq_rot180_m_f<mode>): Likewise.
7211 (mve_vcmulq_rot270_m_f<mode>): Likewise.
7212 (mve_vcmulq_rot90_m_f<mode>): Likewise.
7213 (mve_veorq_m_f<mode>): Likewise.
7214 (mve_vfmaq_m_f<mode>): Likewise.
7215 (mve_vfmaq_m_n_f<mode>): Likewise.
7216 (mve_vfmasq_m_n_f<mode>): Likewise.
7217 (mve_vfmsq_m_f<mode>): Likewise.
7218 (mve_vmaxnmq_m_f<mode>): Likewise.
7219 (mve_vminnmq_m_f<mode>): Likewise.
7220 (mve_vmulq_m_f<mode>): Likewise.
7221 (mve_vmulq_m_n_f<mode>): Likewise.
7222 (mve_vornq_m_f<mode>): Likewise.
7223 (mve_vorrq_m_f<mode>): Likewise.
7224 (mve_vsubq_m_f<mode>): Likewise.
7225 (mve_vsubq_m_n_f<mode>): Likewise.
7227 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
7228 Mihail Ionescu <mihail.ionescu@arm.com>
7229 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7231 * config/arm/arm-protos.h (arm_mve_immediate_check):
7232 * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check
7233 mode and interger value.
7234 * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro.
7235 (vmlaldavaq_p_s16): Likewise.
7236 (vmlaldavaq_p_u32): Likewise.
7237 (vmlaldavaq_p_u16): Likewise.
7238 (vmlaldavaxq_p_s32): Likewise.
7239 (vmlaldavaxq_p_s16): Likewise.
7240 (vmlaldavaxq_p_u32): Likewise.
7241 (vmlaldavaxq_p_u16): Likewise.
7242 (vmlsldavaq_p_s32): Likewise.
7243 (vmlsldavaq_p_s16): Likewise.
7244 (vmlsldavaxq_p_s32): Likewise.
7245 (vmlsldavaxq_p_s16): Likewise.
7246 (vmullbq_poly_m_p8): Likewise.
7247 (vmullbq_poly_m_p16): Likewise.
7248 (vmulltq_poly_m_p8): Likewise.
7249 (vmulltq_poly_m_p16): Likewise.
7250 (vqdmullbq_m_n_s32): Likewise.
7251 (vqdmullbq_m_n_s16): Likewise.
7252 (vqdmullbq_m_s32): Likewise.
7253 (vqdmullbq_m_s16): Likewise.
7254 (vqdmulltq_m_n_s32): Likewise.
7255 (vqdmulltq_m_n_s16): Likewise.
7256 (vqdmulltq_m_s32): Likewise.
7257 (vqdmulltq_m_s16): Likewise.
7258 (vqrshrnbq_m_n_s32): Likewise.
7259 (vqrshrnbq_m_n_s16): Likewise.
7260 (vqrshrnbq_m_n_u32): Likewise.
7261 (vqrshrnbq_m_n_u16): Likewise.
7262 (vqrshrntq_m_n_s32): Likewise.
7263 (vqrshrntq_m_n_s16): Likewise.
7264 (vqrshrntq_m_n_u32): Likewise.
7265 (vqrshrntq_m_n_u16): Likewise.
7266 (vqrshrunbq_m_n_s32): Likewise.
7267 (vqrshrunbq_m_n_s16): Likewise.
7268 (vqrshruntq_m_n_s32): Likewise.
7269 (vqrshruntq_m_n_s16): Likewise.
7270 (vqshrnbq_m_n_s32): Likewise.
7271 (vqshrnbq_m_n_s16): Likewise.
7272 (vqshrnbq_m_n_u32): Likewise.
7273 (vqshrnbq_m_n_u16): Likewise.
7274 (vqshrntq_m_n_s32): Likewise.
7275 (vqshrntq_m_n_s16): Likewise.
7276 (vqshrntq_m_n_u32): Likewise.
7277 (vqshrntq_m_n_u16): Likewise.
7278 (vqshrunbq_m_n_s32): Likewise.
7279 (vqshrunbq_m_n_s16): Likewise.
7280 (vqshruntq_m_n_s32): Likewise.
7281 (vqshruntq_m_n_s16): Likewise.
7282 (vrmlaldavhaq_p_s32): Likewise.
7283 (vrmlaldavhaq_p_u32): Likewise.
7284 (vrmlaldavhaxq_p_s32): Likewise.
7285 (vrmlsldavhaq_p_s32): Likewise.
7286 (vrmlsldavhaxq_p_s32): Likewise.
7287 (vrshrnbq_m_n_s32): Likewise.
7288 (vrshrnbq_m_n_s16): Likewise.
7289 (vrshrnbq_m_n_u32): Likewise.
7290 (vrshrnbq_m_n_u16): Likewise.
7291 (vrshrntq_m_n_s32): Likewise.
7292 (vrshrntq_m_n_s16): Likewise.
7293 (vrshrntq_m_n_u32): Likewise.
7294 (vrshrntq_m_n_u16): Likewise.
7295 (vshllbq_m_n_s8): Likewise.
7296 (vshllbq_m_n_s16): Likewise.
7297 (vshllbq_m_n_u8): Likewise.
7298 (vshllbq_m_n_u16): Likewise.
7299 (vshlltq_m_n_s8): Likewise.
7300 (vshlltq_m_n_s16): Likewise.
7301 (vshlltq_m_n_u8): Likewise.
7302 (vshlltq_m_n_u16): Likewise.
7303 (vshrnbq_m_n_s32): Likewise.
7304 (vshrnbq_m_n_s16): Likewise.
7305 (vshrnbq_m_n_u32): Likewise.
7306 (vshrnbq_m_n_u16): Likewise.
7307 (vshrntq_m_n_s32): Likewise.
7308 (vshrntq_m_n_s16): Likewise.
7309 (vshrntq_m_n_u32): Likewise.
7310 (vshrntq_m_n_u16): Likewise.
7311 (__arm_vmlaldavaq_p_s32): Define intrinsic.
7312 (__arm_vmlaldavaq_p_s16): Likewise.
7313 (__arm_vmlaldavaq_p_u32): Likewise.
7314 (__arm_vmlaldavaq_p_u16): Likewise.
7315 (__arm_vmlaldavaxq_p_s32): Likewise.
7316 (__arm_vmlaldavaxq_p_s16): Likewise.
7317 (__arm_vmlaldavaxq_p_u32): Likewise.
7318 (__arm_vmlaldavaxq_p_u16): Likewise.
7319 (__arm_vmlsldavaq_p_s32): Likewise.
7320 (__arm_vmlsldavaq_p_s16): Likewise.
7321 (__arm_vmlsldavaxq_p_s32): Likewise.
7322 (__arm_vmlsldavaxq_p_s16): Likewise.
7323 (__arm_vmullbq_poly_m_p8): Likewise.
7324 (__arm_vmullbq_poly_m_p16): Likewise.
7325 (__arm_vmulltq_poly_m_p8): Likewise.
7326 (__arm_vmulltq_poly_m_p16): Likewise.
7327 (__arm_vqdmullbq_m_n_s32): Likewise.
7328 (__arm_vqdmullbq_m_n_s16): Likewise.
7329 (__arm_vqdmullbq_m_s32): Likewise.
7330 (__arm_vqdmullbq_m_s16): Likewise.
7331 (__arm_vqdmulltq_m_n_s32): Likewise.
7332 (__arm_vqdmulltq_m_n_s16): Likewise.
7333 (__arm_vqdmulltq_m_s32): Likewise.
7334 (__arm_vqdmulltq_m_s16): Likewise.
7335 (__arm_vqrshrnbq_m_n_s32): Likewise.
7336 (__arm_vqrshrnbq_m_n_s16): Likewise.
7337 (__arm_vqrshrnbq_m_n_u32): Likewise.
7338 (__arm_vqrshrnbq_m_n_u16): Likewise.
7339 (__arm_vqrshrntq_m_n_s32): Likewise.
7340 (__arm_vqrshrntq_m_n_s16): Likewise.
7341 (__arm_vqrshrntq_m_n_u32): Likewise.
7342 (__arm_vqrshrntq_m_n_u16): Likewise.
7343 (__arm_vqrshrunbq_m_n_s32): Likewise.
7344 (__arm_vqrshrunbq_m_n_s16): Likewise.
7345 (__arm_vqrshruntq_m_n_s32): Likewise.
7346 (__arm_vqrshruntq_m_n_s16): Likewise.
7347 (__arm_vqshrnbq_m_n_s32): Likewise.
7348 (__arm_vqshrnbq_m_n_s16): Likewise.
7349 (__arm_vqshrnbq_m_n_u32): Likewise.
7350 (__arm_vqshrnbq_m_n_u16): Likewise.
7351 (__arm_vqshrntq_m_n_s32): Likewise.
7352 (__arm_vqshrntq_m_n_s16): Likewise.
7353 (__arm_vqshrntq_m_n_u32): Likewise.
7354 (__arm_vqshrntq_m_n_u16): Likewise.
7355 (__arm_vqshrunbq_m_n_s32): Likewise.
7356 (__arm_vqshrunbq_m_n_s16): Likewise.
7357 (__arm_vqshruntq_m_n_s32): Likewise.
7358 (__arm_vqshruntq_m_n_s16): Likewise.
7359 (__arm_vrmlaldavhaq_p_s32): Likewise.
7360 (__arm_vrmlaldavhaq_p_u32): Likewise.
7361 (__arm_vrmlaldavhaxq_p_s32): Likewise.
7362 (__arm_vrmlsldavhaq_p_s32): Likewise.
7363 (__arm_vrmlsldavhaxq_p_s32): Likewise.
7364 (__arm_vrshrnbq_m_n_s32): Likewise.
7365 (__arm_vrshrnbq_m_n_s16): Likewise.
7366 (__arm_vrshrnbq_m_n_u32): Likewise.
7367 (__arm_vrshrnbq_m_n_u16): Likewise.
7368 (__arm_vrshrntq_m_n_s32): Likewise.
7369 (__arm_vrshrntq_m_n_s16): Likewise.
7370 (__arm_vrshrntq_m_n_u32): Likewise.
7371 (__arm_vrshrntq_m_n_u16): Likewise.
7372 (__arm_vshllbq_m_n_s8): Likewise.
7373 (__arm_vshllbq_m_n_s16): Likewise.
7374 (__arm_vshllbq_m_n_u8): Likewise.
7375 (__arm_vshllbq_m_n_u16): Likewise.
7376 (__arm_vshlltq_m_n_s8): Likewise.
7377 (__arm_vshlltq_m_n_s16): Likewise.
7378 (__arm_vshlltq_m_n_u8): Likewise.
7379 (__arm_vshlltq_m_n_u16): Likewise.
7380 (__arm_vshrnbq_m_n_s32): Likewise.
7381 (__arm_vshrnbq_m_n_s16): Likewise.
7382 (__arm_vshrnbq_m_n_u32): Likewise.
7383 (__arm_vshrnbq_m_n_u16): Likewise.
7384 (__arm_vshrntq_m_n_s32): Likewise.
7385 (__arm_vshrntq_m_n_s16): Likewise.
7386 (__arm_vshrntq_m_n_u32): Likewise.
7387 (__arm_vshrntq_m_n_u16): Likewise.
7388 (vmullbq_poly_m): Define polymorphic variant.
7389 (vmulltq_poly_m): Likewise.
7390 (vshllbq_m): Likewise.
7391 (vshrntq_m_n): Likewise.
7392 (vshrnbq_m_n): Likewise.
7393 (vshlltq_m_n): Likewise.
7394 (vshllbq_m_n): Likewise.
7395 (vrshrntq_m_n): Likewise.
7396 (vrshrnbq_m_n): Likewise.
7397 (vqshruntq_m_n): Likewise.
7398 (vqshrunbq_m_n): Likewise.
7399 (vqdmullbq_m_n): Likewise.
7400 (vqdmullbq_m): Likewise.
7401 (vqdmulltq_m_n): Likewise.
7402 (vqdmulltq_m): Likewise.
7403 (vqrshrnbq_m_n): Likewise.
7404 (vqrshrntq_m_n): Likewise.
7405 (vqrshrunbq_m_n): Likewise.
7406 (vqrshruntq_m_n): Likewise.
7407 (vqshrnbq_m_n): Likewise.
7408 (vqshrntq_m_n): Likewise.
7409 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
7411 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
7412 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
7413 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
7414 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
7415 * config/arm/mve.md (VMLALDAVAQ_P): Define iterator.
7416 (VMLALDAVAXQ_P): Likewise.
7417 (VQRSHRNBQ_M_N): Likewise.
7418 (VQRSHRNTQ_M_N): Likewise.
7419 (VQSHRNBQ_M_N): Likewise.
7420 (VQSHRNTQ_M_N): Likewise.
7421 (VRSHRNBQ_M_N): Likewise.
7422 (VRSHRNTQ_M_N): Likewise.
7423 (VSHLLBQ_M_N): Likewise.
7424 (VSHLLTQ_M_N): Likewise.
7425 (VSHRNBQ_M_N): Likewise.
7426 (VSHRNTQ_M_N): Likewise.
7427 (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern.
7428 (mve_vmlaldavaxq_p_<supf><mode>): Likewise.
7429 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
7430 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
7431 (mve_vqshrnbq_m_n_<supf><mode>): Likewise.
7432 (mve_vqshrntq_m_n_<supf><mode>): Likewise.
7433 (mve_vrmlaldavhaq_p_sv4si): Likewise.
7434 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
7435 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
7436 (mve_vshllbq_m_n_<supf><mode>): Likewise.
7437 (mve_vshlltq_m_n_<supf><mode>): Likewise.
7438 (mve_vshrnbq_m_n_<supf><mode>): Likewise.
7439 (mve_vshrntq_m_n_<supf><mode>): Likewise.
7440 (mve_vmlsldavaq_p_s<mode>): Likewise.
7441 (mve_vmlsldavaxq_p_s<mode>): Likewise.
7442 (mve_vmullbq_poly_m_p<mode>): Likewise.
7443 (mve_vmulltq_poly_m_p<mode>): Likewise.
7444 (mve_vqdmullbq_m_n_s<mode>): Likewise.
7445 (mve_vqdmullbq_m_s<mode>): Likewise.
7446 (mve_vqdmulltq_m_n_s<mode>): Likewise.
7447 (mve_vqdmulltq_m_s<mode>): Likewise.
7448 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
7449 (mve_vqrshruntq_m_n_s<mode>): Likewise.
7450 (mve_vqshrunbq_m_n_s<mode>): Likewise.
7451 (mve_vqshruntq_m_n_s<mode>): Likewise.
7452 (mve_vrmlaldavhaq_p_uv4si): Likewise.
7453 (mve_vrmlaldavhaxq_p_sv4si): Likewise.
7454 (mve_vrmlsldavhaq_p_sv4si): Likewise.
7455 (mve_vrmlsldavhaxq_p_sv4si): Likewise.
7457 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
7458 Mihail Ionescu <mihail.ionescu@arm.com>
7459 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7461 * config/arm/arm_mve.h (vabdq_m_s8): Define macro.
7462 (vabdq_m_s32): Likewise.
7463 (vabdq_m_s16): Likewise.
7464 (vabdq_m_u8): Likewise.
7465 (vabdq_m_u32): Likewise.
7466 (vabdq_m_u16): Likewise.
7467 (vaddq_m_n_s8): Likewise.
7468 (vaddq_m_n_s32): Likewise.
7469 (vaddq_m_n_s16): Likewise.
7470 (vaddq_m_n_u8): Likewise.
7471 (vaddq_m_n_u32): Likewise.
7472 (vaddq_m_n_u16): Likewise.
7473 (vaddq_m_s8): Likewise.
7474 (vaddq_m_s32): Likewise.
7475 (vaddq_m_s16): Likewise.
7476 (vaddq_m_u8): Likewise.
7477 (vaddq_m_u32): Likewise.
7478 (vaddq_m_u16): Likewise.
7479 (vandq_m_s8): Likewise.
7480 (vandq_m_s32): Likewise.
7481 (vandq_m_s16): Likewise.
7482 (vandq_m_u8): Likewise.
7483 (vandq_m_u32): Likewise.
7484 (vandq_m_u16): Likewise.
7485 (vbicq_m_s8): Likewise.
7486 (vbicq_m_s32): Likewise.
7487 (vbicq_m_s16): Likewise.
7488 (vbicq_m_u8): Likewise.
7489 (vbicq_m_u32): Likewise.
7490 (vbicq_m_u16): Likewise.
7491 (vbrsrq_m_n_s8): Likewise.
7492 (vbrsrq_m_n_s32): Likewise.
7493 (vbrsrq_m_n_s16): Likewise.
7494 (vbrsrq_m_n_u8): Likewise.
7495 (vbrsrq_m_n_u32): Likewise.
7496 (vbrsrq_m_n_u16): Likewise.
7497 (vcaddq_rot270_m_s8): Likewise.
7498 (vcaddq_rot270_m_s32): Likewise.
7499 (vcaddq_rot270_m_s16): Likewise.
7500 (vcaddq_rot270_m_u8): Likewise.
7501 (vcaddq_rot270_m_u32): Likewise.
7502 (vcaddq_rot270_m_u16): Likewise.
7503 (vcaddq_rot90_m_s8): Likewise.
7504 (vcaddq_rot90_m_s32): Likewise.
7505 (vcaddq_rot90_m_s16): Likewise.
7506 (vcaddq_rot90_m_u8): Likewise.
7507 (vcaddq_rot90_m_u32): Likewise.
7508 (vcaddq_rot90_m_u16): Likewise.
7509 (veorq_m_s8): Likewise.
7510 (veorq_m_s32): Likewise.
7511 (veorq_m_s16): Likewise.
7512 (veorq_m_u8): Likewise.
7513 (veorq_m_u32): Likewise.
7514 (veorq_m_u16): Likewise.
7515 (vhaddq_m_n_s8): Likewise.
7516 (vhaddq_m_n_s32): Likewise.
7517 (vhaddq_m_n_s16): Likewise.
7518 (vhaddq_m_n_u8): Likewise.
7519 (vhaddq_m_n_u32): Likewise.
7520 (vhaddq_m_n_u16): Likewise.
7521 (vhaddq_m_s8): Likewise.
7522 (vhaddq_m_s32): Likewise.
7523 (vhaddq_m_s16): Likewise.
7524 (vhaddq_m_u8): Likewise.
7525 (vhaddq_m_u32): Likewise.
7526 (vhaddq_m_u16): Likewise.
7527 (vhcaddq_rot270_m_s8): Likewise.
7528 (vhcaddq_rot270_m_s32): Likewise.
7529 (vhcaddq_rot270_m_s16): Likewise.
7530 (vhcaddq_rot90_m_s8): Likewise.
7531 (vhcaddq_rot90_m_s32): Likewise.
7532 (vhcaddq_rot90_m_s16): Likewise.
7533 (vhsubq_m_n_s8): Likewise.
7534 (vhsubq_m_n_s32): Likewise.
7535 (vhsubq_m_n_s16): Likewise.
7536 (vhsubq_m_n_u8): Likewise.
7537 (vhsubq_m_n_u32): Likewise.
7538 (vhsubq_m_n_u16): Likewise.
7539 (vhsubq_m_s8): Likewise.
7540 (vhsubq_m_s32): Likewise.
7541 (vhsubq_m_s16): Likewise.
7542 (vhsubq_m_u8): Likewise.
7543 (vhsubq_m_u32): Likewise.
7544 (vhsubq_m_u16): Likewise.
7545 (vmaxq_m_s8): Likewise.
7546 (vmaxq_m_s32): Likewise.
7547 (vmaxq_m_s16): Likewise.
7548 (vmaxq_m_u8): Likewise.
7549 (vmaxq_m_u32): Likewise.
7550 (vmaxq_m_u16): Likewise.
7551 (vminq_m_s8): Likewise.
7552 (vminq_m_s32): Likewise.
7553 (vminq_m_s16): Likewise.
7554 (vminq_m_u8): Likewise.
7555 (vminq_m_u32): Likewise.
7556 (vminq_m_u16): Likewise.
7557 (vmladavaq_p_s8): Likewise.
7558 (vmladavaq_p_s32): Likewise.
7559 (vmladavaq_p_s16): Likewise.
7560 (vmladavaq_p_u8): Likewise.
7561 (vmladavaq_p_u32): Likewise.
7562 (vmladavaq_p_u16): Likewise.
7563 (vmladavaxq_p_s8): Likewise.
7564 (vmladavaxq_p_s32): Likewise.
7565 (vmladavaxq_p_s16): Likewise.
7566 (vmlaq_m_n_s8): Likewise.
7567 (vmlaq_m_n_s32): Likewise.
7568 (vmlaq_m_n_s16): Likewise.
7569 (vmlaq_m_n_u8): Likewise.
7570 (vmlaq_m_n_u32): Likewise.
7571 (vmlaq_m_n_u16): Likewise.
7572 (vmlasq_m_n_s8): Likewise.
7573 (vmlasq_m_n_s32): Likewise.
7574 (vmlasq_m_n_s16): Likewise.
7575 (vmlasq_m_n_u8): Likewise.
7576 (vmlasq_m_n_u32): Likewise.
7577 (vmlasq_m_n_u16): Likewise.
7578 (vmlsdavaq_p_s8): Likewise.
7579 (vmlsdavaq_p_s32): Likewise.
7580 (vmlsdavaq_p_s16): Likewise.
7581 (vmlsdavaxq_p_s8): Likewise.
7582 (vmlsdavaxq_p_s32): Likewise.
7583 (vmlsdavaxq_p_s16): Likewise.
7584 (vmulhq_m_s8): Likewise.
7585 (vmulhq_m_s32): Likewise.
7586 (vmulhq_m_s16): Likewise.
7587 (vmulhq_m_u8): Likewise.
7588 (vmulhq_m_u32): Likewise.
7589 (vmulhq_m_u16): Likewise.
7590 (vmullbq_int_m_s8): Likewise.
7591 (vmullbq_int_m_s32): Likewise.
7592 (vmullbq_int_m_s16): Likewise.
7593 (vmullbq_int_m_u8): Likewise.
7594 (vmullbq_int_m_u32): Likewise.
7595 (vmullbq_int_m_u16): Likewise.
7596 (vmulltq_int_m_s8): Likewise.
7597 (vmulltq_int_m_s32): Likewise.
7598 (vmulltq_int_m_s16): Likewise.
7599 (vmulltq_int_m_u8): Likewise.
7600 (vmulltq_int_m_u32): Likewise.
7601 (vmulltq_int_m_u16): Likewise.
7602 (vmulq_m_n_s8): Likewise.
7603 (vmulq_m_n_s32): Likewise.
7604 (vmulq_m_n_s16): Likewise.
7605 (vmulq_m_n_u8): Likewise.
7606 (vmulq_m_n_u32): Likewise.
7607 (vmulq_m_n_u16): Likewise.
7608 (vmulq_m_s8): Likewise.
7609 (vmulq_m_s32): Likewise.
7610 (vmulq_m_s16): Likewise.
7611 (vmulq_m_u8): Likewise.
7612 (vmulq_m_u32): Likewise.
7613 (vmulq_m_u16): Likewise.
7614 (vornq_m_s8): Likewise.
7615 (vornq_m_s32): Likewise.
7616 (vornq_m_s16): Likewise.
7617 (vornq_m_u8): Likewise.
7618 (vornq_m_u32): Likewise.
7619 (vornq_m_u16): Likewise.
7620 (vorrq_m_s8): Likewise.
7621 (vorrq_m_s32): Likewise.
7622 (vorrq_m_s16): Likewise.
7623 (vorrq_m_u8): Likewise.
7624 (vorrq_m_u32): Likewise.
7625 (vorrq_m_u16): Likewise.
7626 (vqaddq_m_n_s8): Likewise.
7627 (vqaddq_m_n_s32): Likewise.
7628 (vqaddq_m_n_s16): Likewise.
7629 (vqaddq_m_n_u8): Likewise.
7630 (vqaddq_m_n_u32): Likewise.
7631 (vqaddq_m_n_u16): Likewise.
7632 (vqaddq_m_s8): Likewise.
7633 (vqaddq_m_s32): Likewise.
7634 (vqaddq_m_s16): Likewise.
7635 (vqaddq_m_u8): Likewise.
7636 (vqaddq_m_u32): Likewise.
7637 (vqaddq_m_u16): Likewise.
7638 (vqdmladhq_m_s8): Likewise.
7639 (vqdmladhq_m_s32): Likewise.
7640 (vqdmladhq_m_s16): Likewise.
7641 (vqdmladhxq_m_s8): Likewise.
7642 (vqdmladhxq_m_s32): Likewise.
7643 (vqdmladhxq_m_s16): Likewise.
7644 (vqdmlahq_m_n_s8): Likewise.
7645 (vqdmlahq_m_n_s32): Likewise.
7646 (vqdmlahq_m_n_s16): Likewise.
7647 (vqdmlahq_m_n_u8): Likewise.
7648 (vqdmlahq_m_n_u32): Likewise.
7649 (vqdmlahq_m_n_u16): Likewise.
7650 (vqdmlsdhq_m_s8): Likewise.
7651 (vqdmlsdhq_m_s32): Likewise.
7652 (vqdmlsdhq_m_s16): Likewise.
7653 (vqdmlsdhxq_m_s8): Likewise.
7654 (vqdmlsdhxq_m_s32): Likewise.
7655 (vqdmlsdhxq_m_s16): Likewise.
7656 (vqdmulhq_m_n_s8): Likewise.
7657 (vqdmulhq_m_n_s32): Likewise.
7658 (vqdmulhq_m_n_s16): Likewise.
7659 (vqdmulhq_m_s8): Likewise.
7660 (vqdmulhq_m_s32): Likewise.
7661 (vqdmulhq_m_s16): Likewise.
7662 (vqrdmladhq_m_s8): Likewise.
7663 (vqrdmladhq_m_s32): Likewise.
7664 (vqrdmladhq_m_s16): Likewise.
7665 (vqrdmladhxq_m_s8): Likewise.
7666 (vqrdmladhxq_m_s32): Likewise.
7667 (vqrdmladhxq_m_s16): Likewise.
7668 (vqrdmlahq_m_n_s8): Likewise.
7669 (vqrdmlahq_m_n_s32): Likewise.
7670 (vqrdmlahq_m_n_s16): Likewise.
7671 (vqrdmlahq_m_n_u8): Likewise.
7672 (vqrdmlahq_m_n_u32): Likewise.
7673 (vqrdmlahq_m_n_u16): Likewise.
7674 (vqrdmlashq_m_n_s8): Likewise.
7675 (vqrdmlashq_m_n_s32): Likewise.
7676 (vqrdmlashq_m_n_s16): Likewise.
7677 (vqrdmlashq_m_n_u8): Likewise.
7678 (vqrdmlashq_m_n_u32): Likewise.
7679 (vqrdmlashq_m_n_u16): Likewise.
7680 (vqrdmlsdhq_m_s8): Likewise.
7681 (vqrdmlsdhq_m_s32): Likewise.
7682 (vqrdmlsdhq_m_s16): Likewise.
7683 (vqrdmlsdhxq_m_s8): Likewise.
7684 (vqrdmlsdhxq_m_s32): Likewise.
7685 (vqrdmlsdhxq_m_s16): Likewise.
7686 (vqrdmulhq_m_n_s8): Likewise.
7687 (vqrdmulhq_m_n_s32): Likewise.
7688 (vqrdmulhq_m_n_s16): Likewise.
7689 (vqrdmulhq_m_s8): Likewise.
7690 (vqrdmulhq_m_s32): Likewise.
7691 (vqrdmulhq_m_s16): Likewise.
7692 (vqrshlq_m_s8): Likewise.
7693 (vqrshlq_m_s32): Likewise.
7694 (vqrshlq_m_s16): Likewise.
7695 (vqrshlq_m_u8): Likewise.
7696 (vqrshlq_m_u32): Likewise.
7697 (vqrshlq_m_u16): Likewise.
7698 (vqshlq_m_n_s8): Likewise.
7699 (vqshlq_m_n_s32): Likewise.
7700 (vqshlq_m_n_s16): Likewise.
7701 (vqshlq_m_n_u8): Likewise.
7702 (vqshlq_m_n_u32): Likewise.
7703 (vqshlq_m_n_u16): Likewise.
7704 (vqshlq_m_s8): Likewise.
7705 (vqshlq_m_s32): Likewise.
7706 (vqshlq_m_s16): Likewise.
7707 (vqshlq_m_u8): Likewise.
7708 (vqshlq_m_u32): Likewise.
7709 (vqshlq_m_u16): Likewise.
7710 (vqsubq_m_n_s8): Likewise.
7711 (vqsubq_m_n_s32): Likewise.
7712 (vqsubq_m_n_s16): Likewise.
7713 (vqsubq_m_n_u8): Likewise.
7714 (vqsubq_m_n_u32): Likewise.
7715 (vqsubq_m_n_u16): Likewise.
7716 (vqsubq_m_s8): Likewise.
7717 (vqsubq_m_s32): Likewise.
7718 (vqsubq_m_s16): Likewise.
7719 (vqsubq_m_u8): Likewise.
7720 (vqsubq_m_u32): Likewise.
7721 (vqsubq_m_u16): Likewise.
7722 (vrhaddq_m_s8): Likewise.
7723 (vrhaddq_m_s32): Likewise.
7724 (vrhaddq_m_s16): Likewise.
7725 (vrhaddq_m_u8): Likewise.
7726 (vrhaddq_m_u32): Likewise.
7727 (vrhaddq_m_u16): Likewise.
7728 (vrmulhq_m_s8): Likewise.
7729 (vrmulhq_m_s32): Likewise.
7730 (vrmulhq_m_s16): Likewise.
7731 (vrmulhq_m_u8): Likewise.
7732 (vrmulhq_m_u32): Likewise.
7733 (vrmulhq_m_u16): Likewise.
7734 (vrshlq_m_s8): Likewise.
7735 (vrshlq_m_s32): Likewise.
7736 (vrshlq_m_s16): Likewise.
7737 (vrshlq_m_u8): Likewise.
7738 (vrshlq_m_u32): Likewise.
7739 (vrshlq_m_u16): Likewise.
7740 (vrshrq_m_n_s8): Likewise.
7741 (vrshrq_m_n_s32): Likewise.
7742 (vrshrq_m_n_s16): Likewise.
7743 (vrshrq_m_n_u8): Likewise.
7744 (vrshrq_m_n_u32): Likewise.
7745 (vrshrq_m_n_u16): Likewise.
7746 (vshlq_m_n_s8): Likewise.
7747 (vshlq_m_n_s32): Likewise.
7748 (vshlq_m_n_s16): Likewise.
7749 (vshlq_m_n_u8): Likewise.
7750 (vshlq_m_n_u32): Likewise.
7751 (vshlq_m_n_u16): Likewise.
7752 (vshrq_m_n_s8): Likewise.
7753 (vshrq_m_n_s32): Likewise.
7754 (vshrq_m_n_s16): Likewise.
7755 (vshrq_m_n_u8): Likewise.
7756 (vshrq_m_n_u32): Likewise.
7757 (vshrq_m_n_u16): Likewise.
7758 (vsliq_m_n_s8): Likewise.
7759 (vsliq_m_n_s32): Likewise.
7760 (vsliq_m_n_s16): Likewise.
7761 (vsliq_m_n_u8): Likewise.
7762 (vsliq_m_n_u32): Likewise.
7763 (vsliq_m_n_u16): Likewise.
7764 (vsubq_m_n_s8): Likewise.
7765 (vsubq_m_n_s32): Likewise.
7766 (vsubq_m_n_s16): Likewise.
7767 (vsubq_m_n_u8): Likewise.
7768 (vsubq_m_n_u32): Likewise.
7769 (vsubq_m_n_u16): Likewise.
7770 (__arm_vabdq_m_s8): Define intrinsic.
7771 (__arm_vabdq_m_s32): Likewise.
7772 (__arm_vabdq_m_s16): Likewise.
7773 (__arm_vabdq_m_u8): Likewise.
7774 (__arm_vabdq_m_u32): Likewise.
7775 (__arm_vabdq_m_u16): Likewise.
7776 (__arm_vaddq_m_n_s8): Likewise.
7777 (__arm_vaddq_m_n_s32): Likewise.
7778 (__arm_vaddq_m_n_s16): Likewise.
7779 (__arm_vaddq_m_n_u8): Likewise.
7780 (__arm_vaddq_m_n_u32): Likewise.
7781 (__arm_vaddq_m_n_u16): Likewise.
7782 (__arm_vaddq_m_s8): Likewise.
7783 (__arm_vaddq_m_s32): Likewise.
7784 (__arm_vaddq_m_s16): Likewise.
7785 (__arm_vaddq_m_u8): Likewise.
7786 (__arm_vaddq_m_u32): Likewise.
7787 (__arm_vaddq_m_u16): Likewise.
7788 (__arm_vandq_m_s8): Likewise.
7789 (__arm_vandq_m_s32): Likewise.
7790 (__arm_vandq_m_s16): Likewise.
7791 (__arm_vandq_m_u8): Likewise.
7792 (__arm_vandq_m_u32): Likewise.
7793 (__arm_vandq_m_u16): Likewise.
7794 (__arm_vbicq_m_s8): Likewise.
7795 (__arm_vbicq_m_s32): Likewise.
7796 (__arm_vbicq_m_s16): Likewise.
7797 (__arm_vbicq_m_u8): Likewise.
7798 (__arm_vbicq_m_u32): Likewise.
7799 (__arm_vbicq_m_u16): Likewise.
7800 (__arm_vbrsrq_m_n_s8): Likewise.
7801 (__arm_vbrsrq_m_n_s32): Likewise.
7802 (__arm_vbrsrq_m_n_s16): Likewise.
7803 (__arm_vbrsrq_m_n_u8): Likewise.
7804 (__arm_vbrsrq_m_n_u32): Likewise.
7805 (__arm_vbrsrq_m_n_u16): Likewise.
7806 (__arm_vcaddq_rot270_m_s8): Likewise.
7807 (__arm_vcaddq_rot270_m_s32): Likewise.
7808 (__arm_vcaddq_rot270_m_s16): Likewise.
7809 (__arm_vcaddq_rot270_m_u8): Likewise.
7810 (__arm_vcaddq_rot270_m_u32): Likewise.
7811 (__arm_vcaddq_rot270_m_u16): Likewise.
7812 (__arm_vcaddq_rot90_m_s8): Likewise.
7813 (__arm_vcaddq_rot90_m_s32): Likewise.
7814 (__arm_vcaddq_rot90_m_s16): Likewise.
7815 (__arm_vcaddq_rot90_m_u8): Likewise.
7816 (__arm_vcaddq_rot90_m_u32): Likewise.
7817 (__arm_vcaddq_rot90_m_u16): Likewise.
7818 (__arm_veorq_m_s8): Likewise.
7819 (__arm_veorq_m_s32): Likewise.
7820 (__arm_veorq_m_s16): Likewise.
7821 (__arm_veorq_m_u8): Likewise.
7822 (__arm_veorq_m_u32): Likewise.
7823 (__arm_veorq_m_u16): Likewise.
7824 (__arm_vhaddq_m_n_s8): Likewise.
7825 (__arm_vhaddq_m_n_s32): Likewise.
7826 (__arm_vhaddq_m_n_s16): Likewise.
7827 (__arm_vhaddq_m_n_u8): Likewise.
7828 (__arm_vhaddq_m_n_u32): Likewise.
7829 (__arm_vhaddq_m_n_u16): Likewise.
7830 (__arm_vhaddq_m_s8): Likewise.
7831 (__arm_vhaddq_m_s32): Likewise.
7832 (__arm_vhaddq_m_s16): Likewise.
7833 (__arm_vhaddq_m_u8): Likewise.
7834 (__arm_vhaddq_m_u32): Likewise.
7835 (__arm_vhaddq_m_u16): Likewise.
7836 (__arm_vhcaddq_rot270_m_s8): Likewise.
7837 (__arm_vhcaddq_rot270_m_s32): Likewise.
7838 (__arm_vhcaddq_rot270_m_s16): Likewise.
7839 (__arm_vhcaddq_rot90_m_s8): Likewise.
7840 (__arm_vhcaddq_rot90_m_s32): Likewise.
7841 (__arm_vhcaddq_rot90_m_s16): Likewise.
7842 (__arm_vhsubq_m_n_s8): Likewise.
7843 (__arm_vhsubq_m_n_s32): Likewise.
7844 (__arm_vhsubq_m_n_s16): Likewise.
7845 (__arm_vhsubq_m_n_u8): Likewise.
7846 (__arm_vhsubq_m_n_u32): Likewise.
7847 (__arm_vhsubq_m_n_u16): Likewise.
7848 (__arm_vhsubq_m_s8): Likewise.
7849 (__arm_vhsubq_m_s32): Likewise.
7850 (__arm_vhsubq_m_s16): Likewise.
7851 (__arm_vhsubq_m_u8): Likewise.
7852 (__arm_vhsubq_m_u32): Likewise.
7853 (__arm_vhsubq_m_u16): Likewise.
7854 (__arm_vmaxq_m_s8): Likewise.
7855 (__arm_vmaxq_m_s32): Likewise.
7856 (__arm_vmaxq_m_s16): Likewise.
7857 (__arm_vmaxq_m_u8): Likewise.
7858 (__arm_vmaxq_m_u32): Likewise.
7859 (__arm_vmaxq_m_u16): Likewise.
7860 (__arm_vminq_m_s8): Likewise.
7861 (__arm_vminq_m_s32): Likewise.
7862 (__arm_vminq_m_s16): Likewise.
7863 (__arm_vminq_m_u8): Likewise.
7864 (__arm_vminq_m_u32): Likewise.
7865 (__arm_vminq_m_u16): Likewise.
7866 (__arm_vmladavaq_p_s8): Likewise.
7867 (__arm_vmladavaq_p_s32): Likewise.
7868 (__arm_vmladavaq_p_s16): Likewise.
7869 (__arm_vmladavaq_p_u8): Likewise.
7870 (__arm_vmladavaq_p_u32): Likewise.
7871 (__arm_vmladavaq_p_u16): Likewise.
7872 (__arm_vmladavaxq_p_s8): Likewise.
7873 (__arm_vmladavaxq_p_s32): Likewise.
7874 (__arm_vmladavaxq_p_s16): Likewise.
7875 (__arm_vmlaq_m_n_s8): Likewise.
7876 (__arm_vmlaq_m_n_s32): Likewise.
7877 (__arm_vmlaq_m_n_s16): Likewise.
7878 (__arm_vmlaq_m_n_u8): Likewise.
7879 (__arm_vmlaq_m_n_u32): Likewise.
7880 (__arm_vmlaq_m_n_u16): Likewise.
7881 (__arm_vmlasq_m_n_s8): Likewise.
7882 (__arm_vmlasq_m_n_s32): Likewise.
7883 (__arm_vmlasq_m_n_s16): Likewise.
7884 (__arm_vmlasq_m_n_u8): Likewise.
7885 (__arm_vmlasq_m_n_u32): Likewise.
7886 (__arm_vmlasq_m_n_u16): Likewise.
7887 (__arm_vmlsdavaq_p_s8): Likewise.
7888 (__arm_vmlsdavaq_p_s32): Likewise.
7889 (__arm_vmlsdavaq_p_s16): Likewise.
7890 (__arm_vmlsdavaxq_p_s8): Likewise.
7891 (__arm_vmlsdavaxq_p_s32): Likewise.
7892 (__arm_vmlsdavaxq_p_s16): Likewise.
7893 (__arm_vmulhq_m_s8): Likewise.
7894 (__arm_vmulhq_m_s32): Likewise.
7895 (__arm_vmulhq_m_s16): Likewise.
7896 (__arm_vmulhq_m_u8): Likewise.
7897 (__arm_vmulhq_m_u32): Likewise.
7898 (__arm_vmulhq_m_u16): Likewise.
7899 (__arm_vmullbq_int_m_s8): Likewise.
7900 (__arm_vmullbq_int_m_s32): Likewise.
7901 (__arm_vmullbq_int_m_s16): Likewise.
7902 (__arm_vmullbq_int_m_u8): Likewise.
7903 (__arm_vmullbq_int_m_u32): Likewise.
7904 (__arm_vmullbq_int_m_u16): Likewise.
7905 (__arm_vmulltq_int_m_s8): Likewise.
7906 (__arm_vmulltq_int_m_s32): Likewise.
7907 (__arm_vmulltq_int_m_s16): Likewise.
7908 (__arm_vmulltq_int_m_u8): Likewise.
7909 (__arm_vmulltq_int_m_u32): Likewise.
7910 (__arm_vmulltq_int_m_u16): Likewise.
7911 (__arm_vmulq_m_n_s8): Likewise.
7912 (__arm_vmulq_m_n_s32): Likewise.
7913 (__arm_vmulq_m_n_s16): Likewise.
7914 (__arm_vmulq_m_n_u8): Likewise.
7915 (__arm_vmulq_m_n_u32): Likewise.
7916 (__arm_vmulq_m_n_u16): Likewise.
7917 (__arm_vmulq_m_s8): Likewise.
7918 (__arm_vmulq_m_s32): Likewise.
7919 (__arm_vmulq_m_s16): Likewise.
7920 (__arm_vmulq_m_u8): Likewise.
7921 (__arm_vmulq_m_u32): Likewise.
7922 (__arm_vmulq_m_u16): Likewise.
7923 (__arm_vornq_m_s8): Likewise.
7924 (__arm_vornq_m_s32): Likewise.
7925 (__arm_vornq_m_s16): Likewise.
7926 (__arm_vornq_m_u8): Likewise.
7927 (__arm_vornq_m_u32): Likewise.
7928 (__arm_vornq_m_u16): Likewise.
7929 (__arm_vorrq_m_s8): Likewise.
7930 (__arm_vorrq_m_s32): Likewise.
7931 (__arm_vorrq_m_s16): Likewise.
7932 (__arm_vorrq_m_u8): Likewise.
7933 (__arm_vorrq_m_u32): Likewise.
7934 (__arm_vorrq_m_u16): Likewise.
7935 (__arm_vqaddq_m_n_s8): Likewise.
7936 (__arm_vqaddq_m_n_s32): Likewise.
7937 (__arm_vqaddq_m_n_s16): Likewise.
7938 (__arm_vqaddq_m_n_u8): Likewise.
7939 (__arm_vqaddq_m_n_u32): Likewise.
7940 (__arm_vqaddq_m_n_u16): Likewise.
7941 (__arm_vqaddq_m_s8): Likewise.
7942 (__arm_vqaddq_m_s32): Likewise.
7943 (__arm_vqaddq_m_s16): Likewise.
7944 (__arm_vqaddq_m_u8): Likewise.
7945 (__arm_vqaddq_m_u32): Likewise.
7946 (__arm_vqaddq_m_u16): Likewise.
7947 (__arm_vqdmladhq_m_s8): Likewise.
7948 (__arm_vqdmladhq_m_s32): Likewise.
7949 (__arm_vqdmladhq_m_s16): Likewise.
7950 (__arm_vqdmladhxq_m_s8): Likewise.
7951 (__arm_vqdmladhxq_m_s32): Likewise.
7952 (__arm_vqdmladhxq_m_s16): Likewise.
7953 (__arm_vqdmlahq_m_n_s8): Likewise.
7954 (__arm_vqdmlahq_m_n_s32): Likewise.
7955 (__arm_vqdmlahq_m_n_s16): Likewise.
7956 (__arm_vqdmlahq_m_n_u8): Likewise.
7957 (__arm_vqdmlahq_m_n_u32): Likewise.
7958 (__arm_vqdmlahq_m_n_u16): Likewise.
7959 (__arm_vqdmlsdhq_m_s8): Likewise.
7960 (__arm_vqdmlsdhq_m_s32): Likewise.
7961 (__arm_vqdmlsdhq_m_s16): Likewise.
7962 (__arm_vqdmlsdhxq_m_s8): Likewise.
7963 (__arm_vqdmlsdhxq_m_s32): Likewise.
7964 (__arm_vqdmlsdhxq_m_s16): Likewise.
7965 (__arm_vqdmulhq_m_n_s8): Likewise.
7966 (__arm_vqdmulhq_m_n_s32): Likewise.
7967 (__arm_vqdmulhq_m_n_s16): Likewise.
7968 (__arm_vqdmulhq_m_s8): Likewise.
7969 (__arm_vqdmulhq_m_s32): Likewise.
7970 (__arm_vqdmulhq_m_s16): Likewise.
7971 (__arm_vqrdmladhq_m_s8): Likewise.
7972 (__arm_vqrdmladhq_m_s32): Likewise.
7973 (__arm_vqrdmladhq_m_s16): Likewise.
7974 (__arm_vqrdmladhxq_m_s8): Likewise.
7975 (__arm_vqrdmladhxq_m_s32): Likewise.
7976 (__arm_vqrdmladhxq_m_s16): Likewise.
7977 (__arm_vqrdmlahq_m_n_s8): Likewise.
7978 (__arm_vqrdmlahq_m_n_s32): Likewise.
7979 (__arm_vqrdmlahq_m_n_s16): Likewise.
7980 (__arm_vqrdmlahq_m_n_u8): Likewise.
7981 (__arm_vqrdmlahq_m_n_u32): Likewise.
7982 (__arm_vqrdmlahq_m_n_u16): Likewise.
7983 (__arm_vqrdmlashq_m_n_s8): Likewise.
7984 (__arm_vqrdmlashq_m_n_s32): Likewise.
7985 (__arm_vqrdmlashq_m_n_s16): Likewise.
7986 (__arm_vqrdmlashq_m_n_u8): Likewise.
7987 (__arm_vqrdmlashq_m_n_u32): Likewise.
7988 (__arm_vqrdmlashq_m_n_u16): Likewise.
7989 (__arm_vqrdmlsdhq_m_s8): Likewise.
7990 (__arm_vqrdmlsdhq_m_s32): Likewise.
7991 (__arm_vqrdmlsdhq_m_s16): Likewise.
7992 (__arm_vqrdmlsdhxq_m_s8): Likewise.
7993 (__arm_vqrdmlsdhxq_m_s32): Likewise.
7994 (__arm_vqrdmlsdhxq_m_s16): Likewise.
7995 (__arm_vqrdmulhq_m_n_s8): Likewise.
7996 (__arm_vqrdmulhq_m_n_s32): Likewise.
7997 (__arm_vqrdmulhq_m_n_s16): Likewise.
7998 (__arm_vqrdmulhq_m_s8): Likewise.
7999 (__arm_vqrdmulhq_m_s32): Likewise.
8000 (__arm_vqrdmulhq_m_s16): Likewise.
8001 (__arm_vqrshlq_m_s8): Likewise.
8002 (__arm_vqrshlq_m_s32): Likewise.
8003 (__arm_vqrshlq_m_s16): Likewise.
8004 (__arm_vqrshlq_m_u8): Likewise.
8005 (__arm_vqrshlq_m_u32): Likewise.
8006 (__arm_vqrshlq_m_u16): Likewise.
8007 (__arm_vqshlq_m_n_s8): Likewise.
8008 (__arm_vqshlq_m_n_s32): Likewise.
8009 (__arm_vqshlq_m_n_s16): Likewise.
8010 (__arm_vqshlq_m_n_u8): Likewise.
8011 (__arm_vqshlq_m_n_u32): Likewise.
8012 (__arm_vqshlq_m_n_u16): Likewise.
8013 (__arm_vqshlq_m_s8): Likewise.
8014 (__arm_vqshlq_m_s32): Likewise.
8015 (__arm_vqshlq_m_s16): Likewise.
8016 (__arm_vqshlq_m_u8): Likewise.
8017 (__arm_vqshlq_m_u32): Likewise.
8018 (__arm_vqshlq_m_u16): Likewise.
8019 (__arm_vqsubq_m_n_s8): Likewise.
8020 (__arm_vqsubq_m_n_s32): Likewise.
8021 (__arm_vqsubq_m_n_s16): Likewise.
8022 (__arm_vqsubq_m_n_u8): Likewise.
8023 (__arm_vqsubq_m_n_u32): Likewise.
8024 (__arm_vqsubq_m_n_u16): Likewise.
8025 (__arm_vqsubq_m_s8): Likewise.
8026 (__arm_vqsubq_m_s32): Likewise.
8027 (__arm_vqsubq_m_s16): Likewise.
8028 (__arm_vqsubq_m_u8): Likewise.
8029 (__arm_vqsubq_m_u32): Likewise.
8030 (__arm_vqsubq_m_u16): Likewise.
8031 (__arm_vrhaddq_m_s8): Likewise.
8032 (__arm_vrhaddq_m_s32): Likewise.
8033 (__arm_vrhaddq_m_s16): Likewise.
8034 (__arm_vrhaddq_m_u8): Likewise.
8035 (__arm_vrhaddq_m_u32): Likewise.
8036 (__arm_vrhaddq_m_u16): Likewise.
8037 (__arm_vrmulhq_m_s8): Likewise.
8038 (__arm_vrmulhq_m_s32): Likewise.
8039 (__arm_vrmulhq_m_s16): Likewise.
8040 (__arm_vrmulhq_m_u8): Likewise.
8041 (__arm_vrmulhq_m_u32): Likewise.
8042 (__arm_vrmulhq_m_u16): Likewise.
8043 (__arm_vrshlq_m_s8): Likewise.
8044 (__arm_vrshlq_m_s32): Likewise.
8045 (__arm_vrshlq_m_s16): Likewise.
8046 (__arm_vrshlq_m_u8): Likewise.
8047 (__arm_vrshlq_m_u32): Likewise.
8048 (__arm_vrshlq_m_u16): Likewise.
8049 (__arm_vrshrq_m_n_s8): Likewise.
8050 (__arm_vrshrq_m_n_s32): Likewise.
8051 (__arm_vrshrq_m_n_s16): Likewise.
8052 (__arm_vrshrq_m_n_u8): Likewise.
8053 (__arm_vrshrq_m_n_u32): Likewise.
8054 (__arm_vrshrq_m_n_u16): Likewise.
8055 (__arm_vshlq_m_n_s8): Likewise.
8056 (__arm_vshlq_m_n_s32): Likewise.
8057 (__arm_vshlq_m_n_s16): Likewise.
8058 (__arm_vshlq_m_n_u8): Likewise.
8059 (__arm_vshlq_m_n_u32): Likewise.
8060 (__arm_vshlq_m_n_u16): Likewise.
8061 (__arm_vshrq_m_n_s8): Likewise.
8062 (__arm_vshrq_m_n_s32): Likewise.
8063 (__arm_vshrq_m_n_s16): Likewise.
8064 (__arm_vshrq_m_n_u8): Likewise.
8065 (__arm_vshrq_m_n_u32): Likewise.
8066 (__arm_vshrq_m_n_u16): Likewise.
8067 (__arm_vsliq_m_n_s8): Likewise.
8068 (__arm_vsliq_m_n_s32): Likewise.
8069 (__arm_vsliq_m_n_s16): Likewise.
8070 (__arm_vsliq_m_n_u8): Likewise.
8071 (__arm_vsliq_m_n_u32): Likewise.
8072 (__arm_vsliq_m_n_u16): Likewise.
8073 (__arm_vsubq_m_n_s8): Likewise.
8074 (__arm_vsubq_m_n_s32): Likewise.
8075 (__arm_vsubq_m_n_s16): Likewise.
8076 (__arm_vsubq_m_n_u8): Likewise.
8077 (__arm_vsubq_m_n_u32): Likewise.
8078 (__arm_vsubq_m_n_u16): Likewise.
8079 (vqdmladhq_m): Define polymorphic variant.
8080 (vqdmladhxq_m): Likewise.
8081 (vqdmlsdhq_m): Likewise.
8082 (vqdmlsdhxq_m): Likewise.
8083 (vabdq_m): Likewise.
8084 (vandq_m): Likewise.
8085 (vbicq_m): Likewise.
8086 (vbrsrq_m_n): Likewise.
8087 (vcaddq_rot270_m): Likewise.
8088 (vcaddq_rot90_m): Likewise.
8089 (veorq_m): Likewise.
8090 (vmaxq_m): Likewise.
8091 (vminq_m): Likewise.
8092 (vmladavaq_p): Likewise.
8093 (vmlaq_m_n): Likewise.
8094 (vmlasq_m_n): Likewise.
8095 (vmulhq_m): Likewise.
8096 (vmullbq_int_m): Likewise.
8097 (vmulltq_int_m): Likewise.
8098 (vornq_m): Likewise.
8099 (vorrq_m): Likewise.
8100 (vqdmlahq_m_n): Likewise.
8101 (vqrdmlahq_m_n): Likewise.
8102 (vqrdmlashq_m_n): Likewise.
8103 (vqrshlq_m): Likewise.
8104 (vqshlq_m_n): Likewise.
8105 (vqshlq_m): Likewise.
8106 (vrhaddq_m): Likewise.
8107 (vrmulhq_m): Likewise.
8108 (vrshlq_m): Likewise.
8109 (vrshrq_m_n): Likewise.
8110 (vshlq_m_n): Likewise.
8111 (vshrq_m_n): Likewise.
8112 (vsliq_m): Likewise.
8113 (vaddq_m_n): Likewise.
8114 (vaddq_m): Likewise.
8115 (vhaddq_m_n): Likewise.
8116 (vhaddq_m): Likewise.
8117 (vhcaddq_rot270_m): Likewise.
8118 (vhcaddq_rot90_m): Likewise.
8119 (vhsubq_m): Likewise.
8120 (vhsubq_m_n): Likewise.
8121 (vmulq_m_n): Likewise.
8122 (vmulq_m): Likewise.
8123 (vqaddq_m_n): Likewise.
8124 (vqaddq_m): Likewise.
8125 (vqdmulhq_m_n): Likewise.
8126 (vqdmulhq_m): Likewise.
8127 (vsubq_m_n): Likewise.
8128 (vsliq_m_n): Likewise.
8129 (vqsubq_m_n): Likewise.
8130 (vqsubq_m): Likewise.
8131 (vqrdmulhq_m): Likewise.
8132 (vqrdmulhq_m_n): Likewise.
8133 (vqrdmlsdhxq_m): Likewise.
8134 (vqrdmlsdhq_m): Likewise.
8135 (vqrdmladhq_m): Likewise.
8136 (vqrdmladhxq_m): Likewise.
8137 (vmlsdavaxq_p): Likewise.
8138 (vmlsdavaq_p): Likewise.
8139 (vmladavaxq_p): Likewise.
8140 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
8142 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
8143 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
8144 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise.
8145 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
8146 * config/arm/mve.md (VHSUBQ_M): Define iterators.
8147 (VSLIQ_M_N): Likewise.
8148 (VQRDMLAHQ_M_N): Likewise.
8149 (VRSHLQ_M): Likewise.
8150 (VMINQ_M): Likewise.
8151 (VMULLBQ_INT_M): Likewise.
8152 (VMULHQ_M): Likewise.
8153 (VMULQ_M): Likewise.
8154 (VHSUBQ_M_N): Likewise.
8155 (VHADDQ_M_N): Likewise.
8156 (VORRQ_M): Likewise.
8157 (VRMULHQ_M): Likewise.
8158 (VQADDQ_M): Likewise.
8159 (VRSHRQ_M_N): Likewise.
8160 (VQSUBQ_M_N): Likewise.
8161 (VADDQ_M): Likewise.
8162 (VORNQ_M): Likewise.
8163 (VQDMLAHQ_M_N): Likewise.
8164 (VRHADDQ_M): Likewise.
8165 (VQSHLQ_M): Likewise.
8166 (VANDQ_M): Likewise.
8167 (VBICQ_M): Likewise.
8168 (VSHLQ_M_N): Likewise.
8169 (VCADDQ_ROT270_M): Likewise.
8170 (VQRSHLQ_M): Likewise.
8171 (VQADDQ_M_N): Likewise.
8172 (VADDQ_M_N): Likewise.
8173 (VMAXQ_M): Likewise.
8174 (VQSUBQ_M): Likewise.
8175 (VMLASQ_M_N): Likewise.
8176 (VMLADAVAQ_P): Likewise.
8177 (VBRSRQ_M_N): Likewise.
8178 (VMULQ_M_N): Likewise.
8179 (VCADDQ_ROT90_M): Likewise.
8180 (VMULLTQ_INT_M): Likewise.
8181 (VEORQ_M): Likewise.
8182 (VSHRQ_M_N): Likewise.
8183 (VSUBQ_M_N): Likewise.
8184 (VHADDQ_M): Likewise.
8185 (VABDQ_M): Likewise.
8186 (VQRDMLASHQ_M_N): Likewise.
8187 (VMLAQ_M_N): Likewise.
8188 (VQSHLQ_M_N): Likewise.
8189 (mve_vabdq_m_<supf><mode>): Define RTL pattern.
8190 (mve_vaddq_m_n_<supf><mode>): Likewise.
8191 (mve_vaddq_m_<supf><mode>): Likewise.
8192 (mve_vandq_m_<supf><mode>): Likewise.
8193 (mve_vbicq_m_<supf><mode>): Likewise.
8194 (mve_vbrsrq_m_n_<supf><mode>): Likewise.
8195 (mve_vcaddq_rot270_m_<supf><mode>): Likewise.
8196 (mve_vcaddq_rot90_m_<supf><mode>): Likewise.
8197 (mve_veorq_m_<supf><mode>): Likewise.
8198 (mve_vhaddq_m_n_<supf><mode>): Likewise.
8199 (mve_vhaddq_m_<supf><mode>): Likewise.
8200 (mve_vhsubq_m_n_<supf><mode>): Likewise.
8201 (mve_vhsubq_m_<supf><mode>): Likewise.
8202 (mve_vmaxq_m_<supf><mode>): Likewise.
8203 (mve_vminq_m_<supf><mode>): Likewise.
8204 (mve_vmladavaq_p_<supf><mode>): Likewise.
8205 (mve_vmlaq_m_n_<supf><mode>): Likewise.
8206 (mve_vmlasq_m_n_<supf><mode>): Likewise.
8207 (mve_vmulhq_m_<supf><mode>): Likewise.
8208 (mve_vmullbq_int_m_<supf><mode>): Likewise.
8209 (mve_vmulltq_int_m_<supf><mode>): Likewise.
8210 (mve_vmulq_m_n_<supf><mode>): Likewise.
8211 (mve_vmulq_m_<supf><mode>): Likewise.
8212 (mve_vornq_m_<supf><mode>): Likewise.
8213 (mve_vorrq_m_<supf><mode>): Likewise.
8214 (mve_vqaddq_m_n_<supf><mode>): Likewise.
8215 (mve_vqaddq_m_<supf><mode>): Likewise.
8216 (mve_vqdmlahq_m_n_<supf><mode>): Likewise.
8217 (mve_vqrdmlahq_m_n_<supf><mode>): Likewise.
8218 (mve_vqrdmlashq_m_n_<supf><mode>): Likewise.
8219 (mve_vqrshlq_m_<supf><mode>): Likewise.
8220 (mve_vqshlq_m_n_<supf><mode>): Likewise.
8221 (mve_vqshlq_m_<supf><mode>): Likewise.
8222 (mve_vqsubq_m_n_<supf><mode>): Likewise.
8223 (mve_vqsubq_m_<supf><mode>): Likewise.
8224 (mve_vrhaddq_m_<supf><mode>): Likewise.
8225 (mve_vrmulhq_m_<supf><mode>): Likewise.
8226 (mve_vrshlq_m_<supf><mode>): Likewise.
8227 (mve_vrshrq_m_n_<supf><mode>): Likewise.
8228 (mve_vshlq_m_n_<supf><mode>): Likewise.
8229 (mve_vshrq_m_n_<supf><mode>): Likewise.
8230 (mve_vsliq_m_n_<supf><mode>): Likewise.
8231 (mve_vsubq_m_n_<supf><mode>): Likewise.
8232 (mve_vhcaddq_rot270_m_s<mode>): Likewise.
8233 (mve_vhcaddq_rot90_m_s<mode>): Likewise.
8234 (mve_vmladavaxq_p_s<mode>): Likewise.
8235 (mve_vmlsdavaq_p_s<mode>): Likewise.
8236 (mve_vmlsdavaxq_p_s<mode>): Likewise.
8237 (mve_vqdmladhq_m_s<mode>): Likewise.
8238 (mve_vqdmladhxq_m_s<mode>): Likewise.
8239 (mve_vqdmlsdhq_m_s<mode>): Likewise.
8240 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
8241 (mve_vqdmulhq_m_n_s<mode>): Likewise.
8242 (mve_vqdmulhq_m_s<mode>): Likewise.
8243 (mve_vqrdmladhq_m_s<mode>): Likewise.
8244 (mve_vqrdmladhxq_m_s<mode>): Likewise.
8245 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
8246 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
8247 (mve_vqrdmulhq_m_n_s<mode>): Likewise.
8248 (mve_vqrdmulhq_m_s<mode>): Likewise.
8250 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8251 Mihail Ionescu <mihail.ionescu@arm.com>
8252 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8254 * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS):
8255 Define builtin qualifier.
8256 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
8257 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8258 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
8259 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8260 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8261 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8262 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
8263 * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro.
8264 (vsubq_m_s8): Likewise.
8265 (vcvtq_m_n_f16_u16): Likewise.
8266 (vqshluq_m_n_s8): Likewise.
8267 (vabavq_p_s8): Likewise.
8268 (vsriq_m_n_u8): Likewise.
8269 (vshlq_m_u8): Likewise.
8270 (vsubq_m_u8): Likewise.
8271 (vabavq_p_u8): Likewise.
8272 (vshlq_m_s8): Likewise.
8273 (vcvtq_m_n_f16_s16): Likewise.
8274 (vsriq_m_n_s16): Likewise.
8275 (vsubq_m_s16): Likewise.
8276 (vcvtq_m_n_f32_u32): Likewise.
8277 (vqshluq_m_n_s16): Likewise.
8278 (vabavq_p_s16): Likewise.
8279 (vsriq_m_n_u16): Likewise.
8280 (vshlq_m_u16): Likewise.
8281 (vsubq_m_u16): Likewise.
8282 (vabavq_p_u16): Likewise.
8283 (vshlq_m_s16): Likewise.
8284 (vcvtq_m_n_f32_s32): Likewise.
8285 (vsriq_m_n_s32): Likewise.
8286 (vsubq_m_s32): Likewise.
8287 (vqshluq_m_n_s32): Likewise.
8288 (vabavq_p_s32): Likewise.
8289 (vsriq_m_n_u32): Likewise.
8290 (vshlq_m_u32): Likewise.
8291 (vsubq_m_u32): Likewise.
8292 (vabavq_p_u32): Likewise.
8293 (vshlq_m_s32): Likewise.
8294 (__arm_vsriq_m_n_s8): Define intrinsic.
8295 (__arm_vsubq_m_s8): Likewise.
8296 (__arm_vqshluq_m_n_s8): Likewise.
8297 (__arm_vabavq_p_s8): Likewise.
8298 (__arm_vsriq_m_n_u8): Likewise.
8299 (__arm_vshlq_m_u8): Likewise.
8300 (__arm_vsubq_m_u8): Likewise.
8301 (__arm_vabavq_p_u8): Likewise.
8302 (__arm_vshlq_m_s8): Likewise.
8303 (__arm_vsriq_m_n_s16): Likewise.
8304 (__arm_vsubq_m_s16): Likewise.
8305 (__arm_vqshluq_m_n_s16): Likewise.
8306 (__arm_vabavq_p_s16): Likewise.
8307 (__arm_vsriq_m_n_u16): Likewise.
8308 (__arm_vshlq_m_u16): Likewise.
8309 (__arm_vsubq_m_u16): Likewise.
8310 (__arm_vabavq_p_u16): Likewise.
8311 (__arm_vshlq_m_s16): Likewise.
8312 (__arm_vsriq_m_n_s32): Likewise.
8313 (__arm_vsubq_m_s32): Likewise.
8314 (__arm_vqshluq_m_n_s32): Likewise.
8315 (__arm_vabavq_p_s32): Likewise.
8316 (__arm_vsriq_m_n_u32): Likewise.
8317 (__arm_vshlq_m_u32): Likewise.
8318 (__arm_vsubq_m_u32): Likewise.
8319 (__arm_vabavq_p_u32): Likewise.
8320 (__arm_vshlq_m_s32): Likewise.
8321 (__arm_vcvtq_m_n_f16_u16): Likewise.
8322 (__arm_vcvtq_m_n_f16_s16): Likewise.
8323 (__arm_vcvtq_m_n_f32_u32): Likewise.
8324 (__arm_vcvtq_m_n_f32_s32): Likewise.
8325 (vcvtq_m_n): Define polymorphic variant.
8326 (vqshluq_m_n): Likewise.
8327 (vshlq_m): Likewise.
8328 (vsriq_m_n): Likewise.
8329 (vsubq_m): Likewise.
8330 (vabavq_p): Likewise.
8331 * config/arm/arm_mve_builtins.def
8332 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use builtin qualifier.
8333 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
8334 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8335 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
8336 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8337 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8338 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8339 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
8340 * config/arm/mve.md (VABAVQ_P): Define iterator.
8341 (VSHLQ_M): Likewise.
8342 (VSRIQ_M_N): Likewise.
8343 (VSUBQ_M): Likewise.
8344 (VCVTQ_M_N_TO_F): Likewise.
8345 (mve_vabavq_p_<supf><mode>): Define RTL pattern.
8346 (mve_vqshluq_m_n_s<mode>): Likewise.
8347 (mve_vshlq_m_<supf><mode>): Likewise.
8348 (mve_vsriq_m_n_<supf><mode>): Likewise.
8349 (mve_vsubq_m_<supf><mode>): Likewise.
8350 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
8352 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8353 Mihail Ionescu <mihail.ionescu@arm.com>
8354 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8356 * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro.
8357 (vrmlsldavhaq_s32): Likewise.
8358 (vrmlsldavhaxq_s32): Likewise.
8359 (vaddlvaq_p_s32): Likewise.
8360 (vcvtbq_m_f16_f32): Likewise.
8361 (vcvtbq_m_f32_f16): Likewise.
8362 (vcvttq_m_f16_f32): Likewise.
8363 (vcvttq_m_f32_f16): Likewise.
8364 (vrev16q_m_s8): Likewise.
8365 (vrev32q_m_f16): Likewise.
8366 (vrmlaldavhq_p_s32): Likewise.
8367 (vrmlaldavhxq_p_s32): Likewise.
8368 (vrmlsldavhq_p_s32): Likewise.
8369 (vrmlsldavhxq_p_s32): Likewise.
8370 (vaddlvaq_p_u32): Likewise.
8371 (vrev16q_m_u8): Likewise.
8372 (vrmlaldavhq_p_u32): Likewise.
8373 (vmvnq_m_n_s16): Likewise.
8374 (vorrq_m_n_s16): Likewise.
8375 (vqrshrntq_n_s16): Likewise.
8376 (vqshrnbq_n_s16): Likewise.
8377 (vqshrntq_n_s16): Likewise.
8378 (vrshrnbq_n_s16): Likewise.
8379 (vrshrntq_n_s16): Likewise.
8380 (vshrnbq_n_s16): Likewise.
8381 (vshrntq_n_s16): Likewise.
8382 (vcmlaq_f16): Likewise.
8383 (vcmlaq_rot180_f16): Likewise.
8384 (vcmlaq_rot270_f16): Likewise.
8385 (vcmlaq_rot90_f16): Likewise.
8386 (vfmaq_f16): Likewise.
8387 (vfmaq_n_f16): Likewise.
8388 (vfmasq_n_f16): Likewise.
8389 (vfmsq_f16): Likewise.
8390 (vmlaldavaq_s16): Likewise.
8391 (vmlaldavaxq_s16): Likewise.
8392 (vmlsldavaq_s16): Likewise.
8393 (vmlsldavaxq_s16): Likewise.
8394 (vabsq_m_f16): Likewise.
8395 (vcvtmq_m_s16_f16): Likewise.
8396 (vcvtnq_m_s16_f16): Likewise.
8397 (vcvtpq_m_s16_f16): Likewise.
8398 (vcvtq_m_s16_f16): Likewise.
8399 (vdupq_m_n_f16): Likewise.
8400 (vmaxnmaq_m_f16): Likewise.
8401 (vmaxnmavq_p_f16): Likewise.
8402 (vmaxnmvq_p_f16): Likewise.
8403 (vminnmaq_m_f16): Likewise.
8404 (vminnmavq_p_f16): Likewise.
8405 (vminnmvq_p_f16): Likewise.
8406 (vmlaldavq_p_s16): Likewise.
8407 (vmlaldavxq_p_s16): Likewise.
8408 (vmlsldavq_p_s16): Likewise.
8409 (vmlsldavxq_p_s16): Likewise.
8410 (vmovlbq_m_s8): Likewise.
8411 (vmovltq_m_s8): Likewise.
8412 (vmovnbq_m_s16): Likewise.
8413 (vmovntq_m_s16): Likewise.
8414 (vnegq_m_f16): Likewise.
8415 (vpselq_f16): Likewise.
8416 (vqmovnbq_m_s16): Likewise.
8417 (vqmovntq_m_s16): Likewise.
8418 (vrev32q_m_s8): Likewise.
8419 (vrev64q_m_f16): Likewise.
8420 (vrndaq_m_f16): Likewise.
8421 (vrndmq_m_f16): Likewise.
8422 (vrndnq_m_f16): Likewise.
8423 (vrndpq_m_f16): Likewise.
8424 (vrndq_m_f16): Likewise.
8425 (vrndxq_m_f16): Likewise.
8426 (vcmpeqq_m_n_f16): Likewise.
8427 (vcmpgeq_m_f16): Likewise.
8428 (vcmpgeq_m_n_f16): Likewise.
8429 (vcmpgtq_m_f16): Likewise.
8430 (vcmpgtq_m_n_f16): Likewise.
8431 (vcmpleq_m_f16): Likewise.
8432 (vcmpleq_m_n_f16): Likewise.
8433 (vcmpltq_m_f16): Likewise.
8434 (vcmpltq_m_n_f16): Likewise.
8435 (vcmpneq_m_f16): Likewise.
8436 (vcmpneq_m_n_f16): Likewise.
8437 (vmvnq_m_n_u16): Likewise.
8438 (vorrq_m_n_u16): Likewise.
8439 (vqrshruntq_n_s16): Likewise.
8440 (vqshrunbq_n_s16): Likewise.
8441 (vqshruntq_n_s16): Likewise.
8442 (vcvtmq_m_u16_f16): Likewise.
8443 (vcvtnq_m_u16_f16): Likewise.
8444 (vcvtpq_m_u16_f16): Likewise.
8445 (vcvtq_m_u16_f16): Likewise.
8446 (vqmovunbq_m_s16): Likewise.
8447 (vqmovuntq_m_s16): Likewise.
8448 (vqrshrntq_n_u16): Likewise.
8449 (vqshrnbq_n_u16): Likewise.
8450 (vqshrntq_n_u16): Likewise.
8451 (vrshrnbq_n_u16): Likewise.
8452 (vrshrntq_n_u16): Likewise.
8453 (vshrnbq_n_u16): Likewise.
8454 (vshrntq_n_u16): Likewise.
8455 (vmlaldavaq_u16): Likewise.
8456 (vmlaldavaxq_u16): Likewise.
8457 (vmlaldavq_p_u16): Likewise.
8458 (vmlaldavxq_p_u16): Likewise.
8459 (vmovlbq_m_u8): Likewise.
8460 (vmovltq_m_u8): Likewise.
8461 (vmovnbq_m_u16): Likewise.
8462 (vmovntq_m_u16): Likewise.
8463 (vqmovnbq_m_u16): Likewise.
8464 (vqmovntq_m_u16): Likewise.
8465 (vrev32q_m_u8): Likewise.
8466 (vmvnq_m_n_s32): Likewise.
8467 (vorrq_m_n_s32): Likewise.
8468 (vqrshrntq_n_s32): Likewise.
8469 (vqshrnbq_n_s32): Likewise.
8470 (vqshrntq_n_s32): Likewise.
8471 (vrshrnbq_n_s32): Likewise.
8472 (vrshrntq_n_s32): Likewise.
8473 (vshrnbq_n_s32): Likewise.
8474 (vshrntq_n_s32): Likewise.
8475 (vcmlaq_f32): Likewise.
8476 (vcmlaq_rot180_f32): Likewise.
8477 (vcmlaq_rot270_f32): Likewise.
8478 (vcmlaq_rot90_f32): Likewise.
8479 (vfmaq_f32): Likewise.
8480 (vfmaq_n_f32): Likewise.
8481 (vfmasq_n_f32): Likewise.
8482 (vfmsq_f32): Likewise.
8483 (vmlaldavaq_s32): Likewise.
8484 (vmlaldavaxq_s32): Likewise.
8485 (vmlsldavaq_s32): Likewise.
8486 (vmlsldavaxq_s32): Likewise.
8487 (vabsq_m_f32): Likewise.
8488 (vcvtmq_m_s32_f32): Likewise.
8489 (vcvtnq_m_s32_f32): Likewise.
8490 (vcvtpq_m_s32_f32): Likewise.
8491 (vcvtq_m_s32_f32): Likewise.
8492 (vdupq_m_n_f32): Likewise.
8493 (vmaxnmaq_m_f32): Likewise.
8494 (vmaxnmavq_p_f32): Likewise.
8495 (vmaxnmvq_p_f32): Likewise.
8496 (vminnmaq_m_f32): Likewise.
8497 (vminnmavq_p_f32): Likewise.
8498 (vminnmvq_p_f32): Likewise.
8499 (vmlaldavq_p_s32): Likewise.
8500 (vmlaldavxq_p_s32): Likewise.
8501 (vmlsldavq_p_s32): Likewise.
8502 (vmlsldavxq_p_s32): Likewise.
8503 (vmovlbq_m_s16): Likewise.
8504 (vmovltq_m_s16): Likewise.
8505 (vmovnbq_m_s32): Likewise.
8506 (vmovntq_m_s32): Likewise.
8507 (vnegq_m_f32): Likewise.
8508 (vpselq_f32): Likewise.
8509 (vqmovnbq_m_s32): Likewise.
8510 (vqmovntq_m_s32): Likewise.
8511 (vrev32q_m_s16): Likewise.
8512 (vrev64q_m_f32): Likewise.
8513 (vrndaq_m_f32): Likewise.
8514 (vrndmq_m_f32): Likewise.
8515 (vrndnq_m_f32): Likewise.
8516 (vrndpq_m_f32): Likewise.
8517 (vrndq_m_f32): Likewise.
8518 (vrndxq_m_f32): Likewise.
8519 (vcmpeqq_m_n_f32): Likewise.
8520 (vcmpgeq_m_f32): Likewise.
8521 (vcmpgeq_m_n_f32): Likewise.
8522 (vcmpgtq_m_f32): Likewise.
8523 (vcmpgtq_m_n_f32): Likewise.
8524 (vcmpleq_m_f32): Likewise.
8525 (vcmpleq_m_n_f32): Likewise.
8526 (vcmpltq_m_f32): Likewise.
8527 (vcmpltq_m_n_f32): Likewise.
8528 (vcmpneq_m_f32): Likewise.
8529 (vcmpneq_m_n_f32): Likewise.
8530 (vmvnq_m_n_u32): Likewise.
8531 (vorrq_m_n_u32): Likewise.
8532 (vqrshruntq_n_s32): Likewise.
8533 (vqshrunbq_n_s32): Likewise.
8534 (vqshruntq_n_s32): Likewise.
8535 (vcvtmq_m_u32_f32): Likewise.
8536 (vcvtnq_m_u32_f32): Likewise.
8537 (vcvtpq_m_u32_f32): Likewise.
8538 (vcvtq_m_u32_f32): Likewise.
8539 (vqmovunbq_m_s32): Likewise.
8540 (vqmovuntq_m_s32): Likewise.
8541 (vqrshrntq_n_u32): Likewise.
8542 (vqshrnbq_n_u32): Likewise.
8543 (vqshrntq_n_u32): Likewise.
8544 (vrshrnbq_n_u32): Likewise.
8545 (vrshrntq_n_u32): Likewise.
8546 (vshrnbq_n_u32): Likewise.
8547 (vshrntq_n_u32): Likewise.
8548 (vmlaldavaq_u32): Likewise.
8549 (vmlaldavaxq_u32): Likewise.
8550 (vmlaldavq_p_u32): Likewise.
8551 (vmlaldavxq_p_u32): Likewise.
8552 (vmovlbq_m_u16): Likewise.
8553 (vmovltq_m_u16): Likewise.
8554 (vmovnbq_m_u32): Likewise.
8555 (vmovntq_m_u32): Likewise.
8556 (vqmovnbq_m_u32): Likewise.
8557 (vqmovntq_m_u32): Likewise.
8558 (vrev32q_m_u16): Likewise.
8559 (__arm_vrmlaldavhaxq_s32): Define intrinsic.
8560 (__arm_vrmlsldavhaq_s32): Likewise.
8561 (__arm_vrmlsldavhaxq_s32): Likewise.
8562 (__arm_vaddlvaq_p_s32): Likewise.
8563 (__arm_vrev16q_m_s8): Likewise.
8564 (__arm_vrmlaldavhq_p_s32): Likewise.
8565 (__arm_vrmlaldavhxq_p_s32): Likewise.
8566 (__arm_vrmlsldavhq_p_s32): Likewise.
8567 (__arm_vrmlsldavhxq_p_s32): Likewise.
8568 (__arm_vaddlvaq_p_u32): Likewise.
8569 (__arm_vrev16q_m_u8): Likewise.
8570 (__arm_vrmlaldavhq_p_u32): Likewise.
8571 (__arm_vmvnq_m_n_s16): Likewise.
8572 (__arm_vorrq_m_n_s16): Likewise.
8573 (__arm_vqrshrntq_n_s16): Likewise.
8574 (__arm_vqshrnbq_n_s16): Likewise.
8575 (__arm_vqshrntq_n_s16): Likewise.
8576 (__arm_vrshrnbq_n_s16): Likewise.
8577 (__arm_vrshrntq_n_s16): Likewise.
8578 (__arm_vshrnbq_n_s16): Likewise.
8579 (__arm_vshrntq_n_s16): Likewise.
8580 (__arm_vmlaldavaq_s16): Likewise.
8581 (__arm_vmlaldavaxq_s16): Likewise.
8582 (__arm_vmlsldavaq_s16): Likewise.
8583 (__arm_vmlsldavaxq_s16): Likewise.
8584 (__arm_vmlaldavq_p_s16): Likewise.
8585 (__arm_vmlaldavxq_p_s16): Likewise.
8586 (__arm_vmlsldavq_p_s16): Likewise.
8587 (__arm_vmlsldavxq_p_s16): Likewise.
8588 (__arm_vmovlbq_m_s8): Likewise.
8589 (__arm_vmovltq_m_s8): Likewise.
8590 (__arm_vmovnbq_m_s16): Likewise.
8591 (__arm_vmovntq_m_s16): Likewise.
8592 (__arm_vqmovnbq_m_s16): Likewise.
8593 (__arm_vqmovntq_m_s16): Likewise.
8594 (__arm_vrev32q_m_s8): Likewise.
8595 (__arm_vmvnq_m_n_u16): Likewise.
8596 (__arm_vorrq_m_n_u16): Likewise.
8597 (__arm_vqrshruntq_n_s16): Likewise.
8598 (__arm_vqshrunbq_n_s16): Likewise.
8599 (__arm_vqshruntq_n_s16): Likewise.
8600 (__arm_vqmovunbq_m_s16): Likewise.
8601 (__arm_vqmovuntq_m_s16): Likewise.
8602 (__arm_vqrshrntq_n_u16): Likewise.
8603 (__arm_vqshrnbq_n_u16): Likewise.
8604 (__arm_vqshrntq_n_u16): Likewise.
8605 (__arm_vrshrnbq_n_u16): Likewise.
8606 (__arm_vrshrntq_n_u16): Likewise.
8607 (__arm_vshrnbq_n_u16): Likewise.
8608 (__arm_vshrntq_n_u16): Likewise.
8609 (__arm_vmlaldavaq_u16): Likewise.
8610 (__arm_vmlaldavaxq_u16): Likewise.
8611 (__arm_vmlaldavq_p_u16): Likewise.
8612 (__arm_vmlaldavxq_p_u16): Likewise.
8613 (__arm_vmovlbq_m_u8): Likewise.
8614 (__arm_vmovltq_m_u8): Likewise.
8615 (__arm_vmovnbq_m_u16): Likewise.
8616 (__arm_vmovntq_m_u16): Likewise.
8617 (__arm_vqmovnbq_m_u16): Likewise.
8618 (__arm_vqmovntq_m_u16): Likewise.
8619 (__arm_vrev32q_m_u8): Likewise.
8620 (__arm_vmvnq_m_n_s32): Likewise.
8621 (__arm_vorrq_m_n_s32): Likewise.
8622 (__arm_vqrshrntq_n_s32): Likewise.
8623 (__arm_vqshrnbq_n_s32): Likewise.
8624 (__arm_vqshrntq_n_s32): Likewise.
8625 (__arm_vrshrnbq_n_s32): Likewise.
8626 (__arm_vrshrntq_n_s32): Likewise.
8627 (__arm_vshrnbq_n_s32): Likewise.
8628 (__arm_vshrntq_n_s32): Likewise.
8629 (__arm_vmlaldavaq_s32): Likewise.
8630 (__arm_vmlaldavaxq_s32): Likewise.
8631 (__arm_vmlsldavaq_s32): Likewise.
8632 (__arm_vmlsldavaxq_s32): Likewise.
8633 (__arm_vmlaldavq_p_s32): Likewise.
8634 (__arm_vmlaldavxq_p_s32): Likewise.
8635 (__arm_vmlsldavq_p_s32): Likewise.
8636 (__arm_vmlsldavxq_p_s32): Likewise.
8637 (__arm_vmovlbq_m_s16): Likewise.
8638 (__arm_vmovltq_m_s16): Likewise.
8639 (__arm_vmovnbq_m_s32): Likewise.
8640 (__arm_vmovntq_m_s32): Likewise.
8641 (__arm_vqmovnbq_m_s32): Likewise.
8642 (__arm_vqmovntq_m_s32): Likewise.
8643 (__arm_vrev32q_m_s16): Likewise.
8644 (__arm_vmvnq_m_n_u32): Likewise.
8645 (__arm_vorrq_m_n_u32): Likewise.
8646 (__arm_vqrshruntq_n_s32): Likewise.
8647 (__arm_vqshrunbq_n_s32): Likewise.
8648 (__arm_vqshruntq_n_s32): Likewise.
8649 (__arm_vqmovunbq_m_s32): Likewise.
8650 (__arm_vqmovuntq_m_s32): Likewise.
8651 (__arm_vqrshrntq_n_u32): Likewise.
8652 (__arm_vqshrnbq_n_u32): Likewise.
8653 (__arm_vqshrntq_n_u32): Likewise.
8654 (__arm_vrshrnbq_n_u32): Likewise.
8655 (__arm_vrshrntq_n_u32): Likewise.
8656 (__arm_vshrnbq_n_u32): Likewise.
8657 (__arm_vshrntq_n_u32): Likewise.
8658 (__arm_vmlaldavaq_u32): Likewise.
8659 (__arm_vmlaldavaxq_u32): Likewise.
8660 (__arm_vmlaldavq_p_u32): Likewise.
8661 (__arm_vmlaldavxq_p_u32): Likewise.
8662 (__arm_vmovlbq_m_u16): Likewise.
8663 (__arm_vmovltq_m_u16): Likewise.
8664 (__arm_vmovnbq_m_u32): Likewise.
8665 (__arm_vmovntq_m_u32): Likewise.
8666 (__arm_vqmovnbq_m_u32): Likewise.
8667 (__arm_vqmovntq_m_u32): Likewise.
8668 (__arm_vrev32q_m_u16): Likewise.
8669 (__arm_vcvtbq_m_f16_f32): Likewise.
8670 (__arm_vcvtbq_m_f32_f16): Likewise.
8671 (__arm_vcvttq_m_f16_f32): Likewise.
8672 (__arm_vcvttq_m_f32_f16): Likewise.
8673 (__arm_vrev32q_m_f16): Likewise.
8674 (__arm_vcmlaq_f16): Likewise.
8675 (__arm_vcmlaq_rot180_f16): Likewise.
8676 (__arm_vcmlaq_rot270_f16): Likewise.
8677 (__arm_vcmlaq_rot90_f16): Likewise.
8678 (__arm_vfmaq_f16): Likewise.
8679 (__arm_vfmaq_n_f16): Likewise.
8680 (__arm_vfmasq_n_f16): Likewise.
8681 (__arm_vfmsq_f16): Likewise.
8682 (__arm_vabsq_m_f16): Likewise.
8683 (__arm_vcvtmq_m_s16_f16): Likewise.
8684 (__arm_vcvtnq_m_s16_f16): Likewise.
8685 (__arm_vcvtpq_m_s16_f16): Likewise.
8686 (__arm_vcvtq_m_s16_f16): Likewise.
8687 (__arm_vdupq_m_n_f16): Likewise.
8688 (__arm_vmaxnmaq_m_f16): Likewise.
8689 (__arm_vmaxnmavq_p_f16): Likewise.
8690 (__arm_vmaxnmvq_p_f16): Likewise.
8691 (__arm_vminnmaq_m_f16): Likewise.
8692 (__arm_vminnmavq_p_f16): Likewise.
8693 (__arm_vminnmvq_p_f16): Likewise.
8694 (__arm_vnegq_m_f16): Likewise.
8695 (__arm_vpselq_f16): Likewise.
8696 (__arm_vrev64q_m_f16): Likewise.
8697 (__arm_vrndaq_m_f16): Likewise.
8698 (__arm_vrndmq_m_f16): Likewise.
8699 (__arm_vrndnq_m_f16): Likewise.
8700 (__arm_vrndpq_m_f16): Likewise.
8701 (__arm_vrndq_m_f16): Likewise.
8702 (__arm_vrndxq_m_f16): Likewise.
8703 (__arm_vcmpeqq_m_n_f16): Likewise.
8704 (__arm_vcmpgeq_m_f16): Likewise.
8705 (__arm_vcmpgeq_m_n_f16): Likewise.
8706 (__arm_vcmpgtq_m_f16): Likewise.
8707 (__arm_vcmpgtq_m_n_f16): Likewise.
8708 (__arm_vcmpleq_m_f16): Likewise.
8709 (__arm_vcmpleq_m_n_f16): Likewise.
8710 (__arm_vcmpltq_m_f16): Likewise.
8711 (__arm_vcmpltq_m_n_f16): Likewise.
8712 (__arm_vcmpneq_m_f16): Likewise.
8713 (__arm_vcmpneq_m_n_f16): Likewise.
8714 (__arm_vcvtmq_m_u16_f16): Likewise.
8715 (__arm_vcvtnq_m_u16_f16): Likewise.
8716 (__arm_vcvtpq_m_u16_f16): Likewise.
8717 (__arm_vcvtq_m_u16_f16): Likewise.
8718 (__arm_vcmlaq_f32): Likewise.
8719 (__arm_vcmlaq_rot180_f32): Likewise.
8720 (__arm_vcmlaq_rot270_f32): Likewise.
8721 (__arm_vcmlaq_rot90_f32): Likewise.
8722 (__arm_vfmaq_f32): Likewise.
8723 (__arm_vfmaq_n_f32): Likewise.
8724 (__arm_vfmasq_n_f32): Likewise.
8725 (__arm_vfmsq_f32): Likewise.
8726 (__arm_vabsq_m_f32): Likewise.
8727 (__arm_vcvtmq_m_s32_f32): Likewise.
8728 (__arm_vcvtnq_m_s32_f32): Likewise.
8729 (__arm_vcvtpq_m_s32_f32): Likewise.
8730 (__arm_vcvtq_m_s32_f32): Likewise.
8731 (__arm_vdupq_m_n_f32): Likewise.
8732 (__arm_vmaxnmaq_m_f32): Likewise.
8733 (__arm_vmaxnmavq_p_f32): Likewise.
8734 (__arm_vmaxnmvq_p_f32): Likewise.
8735 (__arm_vminnmaq_m_f32): Likewise.
8736 (__arm_vminnmavq_p_f32): Likewise.
8737 (__arm_vminnmvq_p_f32): Likewise.
8738 (__arm_vnegq_m_f32): Likewise.
8739 (__arm_vpselq_f32): Likewise.
8740 (__arm_vrev64q_m_f32): Likewise.
8741 (__arm_vrndaq_m_f32): Likewise.
8742 (__arm_vrndmq_m_f32): Likewise.
8743 (__arm_vrndnq_m_f32): Likewise.
8744 (__arm_vrndpq_m_f32): Likewise.
8745 (__arm_vrndq_m_f32): Likewise.
8746 (__arm_vrndxq_m_f32): Likewise.
8747 (__arm_vcmpeqq_m_n_f32): Likewise.
8748 (__arm_vcmpgeq_m_f32): Likewise.
8749 (__arm_vcmpgeq_m_n_f32): Likewise.
8750 (__arm_vcmpgtq_m_f32): Likewise.
8751 (__arm_vcmpgtq_m_n_f32): Likewise.
8752 (__arm_vcmpleq_m_f32): Likewise.
8753 (__arm_vcmpleq_m_n_f32): Likewise.
8754 (__arm_vcmpltq_m_f32): Likewise.
8755 (__arm_vcmpltq_m_n_f32): Likewise.
8756 (__arm_vcmpneq_m_f32): Likewise.
8757 (__arm_vcmpneq_m_n_f32): Likewise.
8758 (__arm_vcvtmq_m_u32_f32): Likewise.
8759 (__arm_vcvtnq_m_u32_f32): Likewise.
8760 (__arm_vcvtpq_m_u32_f32): Likewise.
8761 (__arm_vcvtq_m_u32_f32): Likewise.
8762 (vcvtq_m): Define polymorphic variant.
8763 (vabsq_m): Likewise.
8765 (vcmlaq_rot180): Likewise.
8766 (vcmlaq_rot270): Likewise.
8767 (vcmlaq_rot90): Likewise.
8768 (vcmpeqq_m_n): Likewise.
8769 (vcmpgeq_m_n): Likewise.
8770 (vrndxq_m): Likewise.
8771 (vrndq_m): Likewise.
8772 (vrndpq_m): Likewise.
8773 (vcmpgtq_m_n): Likewise.
8774 (vcmpgtq_m): Likewise.
8775 (vcmpleq_m): Likewise.
8776 (vcmpleq_m_n): Likewise.
8777 (vcmpltq_m_n): Likewise.
8778 (vcmpltq_m): Likewise.
8779 (vcmpneq_m): Likewise.
8780 (vcmpneq_m_n): Likewise.
8781 (vcvtbq_m): Likewise.
8782 (vcvttq_m): Likewise.
8783 (vcvtmq_m): Likewise.
8784 (vcvtnq_m): Likewise.
8785 (vcvtpq_m): Likewise.
8786 (vdupq_m_n): Likewise.
8787 (vfmaq_n): Likewise.
8789 (vfmasq_n): Likewise.
8791 (vmaxnmaq_m): Likewise.
8792 (vmaxnmavq_m): Likewise.
8793 (vmaxnmvq_m): Likewise.
8794 (vmaxnmavq_p): Likewise.
8795 (vmaxnmvq_p): Likewise.
8796 (vminnmaq_m): Likewise.
8797 (vminnmavq_p): Likewise.
8798 (vminnmvq_p): Likewise.
8799 (vrndnq_m): Likewise.
8800 (vrndaq_m): Likewise.
8801 (vrndmq_m): Likewise.
8802 (vrev64q_m): Likewise.
8803 (vrev32q_m): Likewise.
8805 (vnegq_m): Likewise.
8806 (vcmpgeq_m): Likewise.
8807 (vshrntq_n): Likewise.
8808 (vrshrntq_n): Likewise.
8809 (vmovlbq_m): Likewise.
8810 (vmovnbq_m): Likewise.
8811 (vmovntq_m): Likewise.
8812 (vmvnq_m_n): Likewise.
8813 (vmvnq_m): Likewise.
8814 (vshrnbq_n): Likewise.
8815 (vrshrnbq_n): Likewise.
8816 (vqshruntq_n): Likewise.
8817 (vrev16q_m): Likewise.
8818 (vqshrunbq_n): Likewise.
8819 (vqshrntq_n): Likewise.
8820 (vqrshruntq_n): Likewise.
8821 (vqrshrntq_n): Likewise.
8822 (vqshrnbq_n): Likewise.
8823 (vqmovuntq_m): Likewise.
8824 (vqmovntq_m): Likewise.
8825 (vqmovnbq_m): Likewise.
8826 (vorrq_m_n): Likewise.
8827 (vmovltq_m): Likewise.
8828 (vqmovunbq_m): Likewise.
8829 (vaddlvaq_p): Likewise.
8830 (vmlaldavaq): Likewise.
8831 (vmlaldavaxq): Likewise.
8832 (vmlaldavq_p): Likewise.
8833 (vmlaldavxq_p): Likewise.
8834 (vmlsldavaq): Likewise.
8835 (vmlsldavaxq): Likewise.
8836 (vmlsldavq_p): Likewise.
8837 (vmlsldavxq_p): Likewise.
8838 (vrmlaldavhaxq): Likewise.
8839 (vrmlaldavhq_p): Likewise.
8840 (vrmlaldavhxq_p): Likewise.
8841 (vrmlsldavhaq): Likewise.
8842 (vrmlsldavhaxq): Likewise.
8843 (vrmlsldavhq_p): Likewise.
8844 (vrmlsldavhxq_p): Likewise.
8845 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use
8847 (TERNOP_NONE_NONE_NONE_IMM): Likewise.
8848 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
8849 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
8850 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
8851 (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise.
8852 (TERNOP_UNONE_UNONE_NONE_IMM): Likewise.
8853 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
8854 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
8855 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
8856 * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator.
8857 (MVE_pred3): Likewise.
8858 (MVE_constraint1): Likewise.
8859 (MVE_pred1): Likewise.
8860 (VMLALDAVQ_P): Define iterator.
8861 (VQMOVNBQ_M): Likewise.
8862 (VMOVLTQ_M): Likewise.
8863 (VMOVNBQ_M): Likewise.
8864 (VRSHRNTQ_N): Likewise.
8865 (VORRQ_M_N): Likewise.
8866 (VREV32Q_M): Likewise.
8867 (VREV16Q_M): Likewise.
8868 (VQRSHRNTQ_N): Likewise.
8869 (VMOVNTQ_M): Likewise.
8870 (VMOVLBQ_M): Likewise.
8871 (VMLALDAVAQ): Likewise.
8872 (VQSHRNBQ_N): Likewise.
8873 (VSHRNBQ_N): Likewise.
8874 (VRSHRNBQ_N): Likewise.
8875 (VMLALDAVXQ_P): Likewise.
8876 (VQMOVNTQ_M): Likewise.
8877 (VMVNQ_M_N): Likewise.
8878 (VQSHRNTQ_N): Likewise.
8879 (VMLALDAVAXQ): Likewise.
8880 (VSHRNTQ_N): Likewise.
8881 (VCVTMQ_M): Likewise.
8882 (VCVTNQ_M): Likewise.
8883 (VCVTPQ_M): Likewise.
8884 (VCVTQ_M_N_FROM_F): Likewise.
8885 (VCVTQ_M_FROM_F): Likewise.
8886 (VRMLALDAVHQ_P): Likewise.
8887 (VADDLVAQ_P): Likewise.
8888 (mve_vrndq_m_f<mode>): Define RTL pattern.
8889 (mve_vabsq_m_f<mode>): Likewise.
8890 (mve_vaddlvaq_p_<supf>v4si): Likewise.
8891 (mve_vcmlaq_f<mode>): Likewise.
8892 (mve_vcmlaq_rot180_f<mode>): Likewise.
8893 (mve_vcmlaq_rot270_f<mode>): Likewise.
8894 (mve_vcmlaq_rot90_f<mode>): Likewise.
8895 (mve_vcmpeqq_m_n_f<mode>): Likewise.
8896 (mve_vcmpgeq_m_f<mode>): Likewise.
8897 (mve_vcmpgeq_m_n_f<mode>): Likewise.
8898 (mve_vcmpgtq_m_f<mode>): Likewise.
8899 (mve_vcmpgtq_m_n_f<mode>): Likewise.
8900 (mve_vcmpleq_m_f<mode>): Likewise.
8901 (mve_vcmpleq_m_n_f<mode>): Likewise.
8902 (mve_vcmpltq_m_f<mode>): Likewise.
8903 (mve_vcmpltq_m_n_f<mode>): Likewise.
8904 (mve_vcmpneq_m_f<mode>): Likewise.
8905 (mve_vcmpneq_m_n_f<mode>): Likewise.
8906 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
8907 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
8908 (mve_vcvttq_m_f16_f32v8hf): Likewise.
8909 (mve_vcvttq_m_f32_f16v4sf): Likewise.
8910 (mve_vdupq_m_n_f<mode>): Likewise.
8911 (mve_vfmaq_f<mode>): Likewise.
8912 (mve_vfmaq_n_f<mode>): Likewise.
8913 (mve_vfmasq_n_f<mode>): Likewise.
8914 (mve_vfmsq_f<mode>): Likewise.
8915 (mve_vmaxnmaq_m_f<mode>): Likewise.
8916 (mve_vmaxnmavq_p_f<mode>): Likewise.
8917 (mve_vmaxnmvq_p_f<mode>): Likewise.
8918 (mve_vminnmaq_m_f<mode>): Likewise.
8919 (mve_vminnmavq_p_f<mode>): Likewise.
8920 (mve_vminnmvq_p_f<mode>): Likewise.
8921 (mve_vmlaldavaq_<supf><mode>): Likewise.
8922 (mve_vmlaldavaxq_<supf><mode>): Likewise.
8923 (mve_vmlaldavq_p_<supf><mode>): Likewise.
8924 (mve_vmlaldavxq_p_<supf><mode>): Likewise.
8925 (mve_vmlsldavaq_s<mode>): Likewise.
8926 (mve_vmlsldavaxq_s<mode>): Likewise.
8927 (mve_vmlsldavq_p_s<mode>): Likewise.
8928 (mve_vmlsldavxq_p_s<mode>): Likewise.
8929 (mve_vmovlbq_m_<supf><mode>): Likewise.
8930 (mve_vmovltq_m_<supf><mode>): Likewise.
8931 (mve_vmovnbq_m_<supf><mode>): Likewise.
8932 (mve_vmovntq_m_<supf><mode>): Likewise.
8933 (mve_vmvnq_m_n_<supf><mode>): Likewise.
8934 (mve_vnegq_m_f<mode>): Likewise.
8935 (mve_vorrq_m_n_<supf><mode>): Likewise.
8936 (mve_vpselq_f<mode>): Likewise.
8937 (mve_vqmovnbq_m_<supf><mode>): Likewise.
8938 (mve_vqmovntq_m_<supf><mode>): Likewise.
8939 (mve_vqmovunbq_m_s<mode>): Likewise.
8940 (mve_vqmovuntq_m_s<mode>): Likewise.
8941 (mve_vqrshrntq_n_<supf><mode>): Likewise.
8942 (mve_vqrshruntq_n_s<mode>): Likewise.
8943 (mve_vqshrnbq_n_<supf><mode>): Likewise.
8944 (mve_vqshrntq_n_<supf><mode>): Likewise.
8945 (mve_vqshrunbq_n_s<mode>): Likewise.
8946 (mve_vqshruntq_n_s<mode>): Likewise.
8947 (mve_vrev32q_m_fv8hf): Likewise.
8948 (mve_vrev32q_m_<supf><mode>): Likewise.
8949 (mve_vrev64q_m_f<mode>): Likewise.
8950 (mve_vrmlaldavhaxq_sv4si): Likewise.
8951 (mve_vrmlaldavhxq_p_sv4si): Likewise.
8952 (mve_vrmlsldavhaxq_sv4si): Likewise.
8953 (mve_vrmlsldavhq_p_sv4si): Likewise.
8954 (mve_vrmlsldavhxq_p_sv4si): Likewise.
8955 (mve_vrndaq_m_f<mode>): Likewise.
8956 (mve_vrndmq_m_f<mode>): Likewise.
8957 (mve_vrndnq_m_f<mode>): Likewise.
8958 (mve_vrndpq_m_f<mode>): Likewise.
8959 (mve_vrndxq_m_f<mode>): Likewise.
8960 (mve_vrshrnbq_n_<supf><mode>): Likewise.
8961 (mve_vrshrntq_n_<supf><mode>): Likewise.
8962 (mve_vshrnbq_n_<supf><mode>): Likewise.
8963 (mve_vshrntq_n_<supf><mode>): Likewise.
8964 (mve_vcvtmq_m_<supf><mode>): Likewise.
8965 (mve_vcvtpq_m_<supf><mode>): Likewise.
8966 (mve_vcvtnq_m_<supf><mode>): Likewise.
8967 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
8968 (mve_vrev16q_m_<supf>v16qi): Likewise.
8969 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
8970 (mve_vrmlaldavhq_p_<supf>v4si): Likewise.
8971 (mve_vrmlsldavhaq_sv4si): Likewise.
8973 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8974 Mihail Ionescu <mihail.ionescu@arm.com>
8975 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8977 * config/arm/arm_mve.h (vpselq_u8): Define macro.
8978 (vpselq_s8): Likewise.
8979 (vrev64q_m_u8): Likewise.
8980 (vqrdmlashq_n_u8): Likewise.
8981 (vqrdmlahq_n_u8): Likewise.
8982 (vqdmlahq_n_u8): Likewise.
8983 (vmvnq_m_u8): Likewise.
8984 (vmlasq_n_u8): Likewise.
8985 (vmlaq_n_u8): Likewise.
8986 (vmladavq_p_u8): Likewise.
8987 (vmladavaq_u8): Likewise.
8988 (vminvq_p_u8): Likewise.
8989 (vmaxvq_p_u8): Likewise.
8990 (vdupq_m_n_u8): Likewise.
8991 (vcmpneq_m_u8): Likewise.
8992 (vcmpneq_m_n_u8): Likewise.
8993 (vcmphiq_m_u8): Likewise.
8994 (vcmphiq_m_n_u8): Likewise.
8995 (vcmpeqq_m_u8): Likewise.
8996 (vcmpeqq_m_n_u8): Likewise.
8997 (vcmpcsq_m_u8): Likewise.
8998 (vcmpcsq_m_n_u8): Likewise.
8999 (vclzq_m_u8): Likewise.
9000 (vaddvaq_p_u8): Likewise.
9001 (vsriq_n_u8): Likewise.
9002 (vsliq_n_u8): Likewise.
9003 (vshlq_m_r_u8): Likewise.
9004 (vrshlq_m_n_u8): Likewise.
9005 (vqshlq_m_r_u8): Likewise.
9006 (vqrshlq_m_n_u8): Likewise.
9007 (vminavq_p_s8): Likewise.
9008 (vminaq_m_s8): Likewise.
9009 (vmaxavq_p_s8): Likewise.
9010 (vmaxaq_m_s8): Likewise.
9011 (vcmpneq_m_s8): Likewise.
9012 (vcmpneq_m_n_s8): Likewise.
9013 (vcmpltq_m_s8): Likewise.
9014 (vcmpltq_m_n_s8): Likewise.
9015 (vcmpleq_m_s8): Likewise.
9016 (vcmpleq_m_n_s8): Likewise.
9017 (vcmpgtq_m_s8): Likewise.
9018 (vcmpgtq_m_n_s8): Likewise.
9019 (vcmpgeq_m_s8): Likewise.
9020 (vcmpgeq_m_n_s8): Likewise.
9021 (vcmpeqq_m_s8): Likewise.
9022 (vcmpeqq_m_n_s8): Likewise.
9023 (vshlq_m_r_s8): Likewise.
9024 (vrshlq_m_n_s8): Likewise.
9025 (vrev64q_m_s8): Likewise.
9026 (vqshlq_m_r_s8): Likewise.
9027 (vqrshlq_m_n_s8): Likewise.
9028 (vqnegq_m_s8): Likewise.
9029 (vqabsq_m_s8): Likewise.
9030 (vnegq_m_s8): Likewise.
9031 (vmvnq_m_s8): Likewise.
9032 (vmlsdavxq_p_s8): Likewise.
9033 (vmlsdavq_p_s8): Likewise.
9034 (vmladavxq_p_s8): Likewise.
9035 (vmladavq_p_s8): Likewise.
9036 (vminvq_p_s8): Likewise.
9037 (vmaxvq_p_s8): Likewise.
9038 (vdupq_m_n_s8): Likewise.
9039 (vclzq_m_s8): Likewise.
9040 (vclsq_m_s8): Likewise.
9041 (vaddvaq_p_s8): Likewise.
9042 (vabsq_m_s8): Likewise.
9043 (vqrdmlsdhxq_s8): Likewise.
9044 (vqrdmlsdhq_s8): Likewise.
9045 (vqrdmlashq_n_s8): Likewise.
9046 (vqrdmlahq_n_s8): Likewise.
9047 (vqrdmladhxq_s8): Likewise.
9048 (vqrdmladhq_s8): Likewise.
9049 (vqdmlsdhxq_s8): Likewise.
9050 (vqdmlsdhq_s8): Likewise.
9051 (vqdmlahq_n_s8): Likewise.
9052 (vqdmladhxq_s8): Likewise.
9053 (vqdmladhq_s8): Likewise.
9054 (vmlsdavaxq_s8): Likewise.
9055 (vmlsdavaq_s8): Likewise.
9056 (vmlasq_n_s8): Likewise.
9057 (vmlaq_n_s8): Likewise.
9058 (vmladavaxq_s8): Likewise.
9059 (vmladavaq_s8): Likewise.
9060 (vsriq_n_s8): Likewise.
9061 (vsliq_n_s8): Likewise.
9062 (vpselq_u16): Likewise.
9063 (vpselq_s16): Likewise.
9064 (vrev64q_m_u16): Likewise.
9065 (vqrdmlashq_n_u16): Likewise.
9066 (vqrdmlahq_n_u16): Likewise.
9067 (vqdmlahq_n_u16): Likewise.
9068 (vmvnq_m_u16): Likewise.
9069 (vmlasq_n_u16): Likewise.
9070 (vmlaq_n_u16): Likewise.
9071 (vmladavq_p_u16): Likewise.
9072 (vmladavaq_u16): Likewise.
9073 (vminvq_p_u16): Likewise.
9074 (vmaxvq_p_u16): Likewise.
9075 (vdupq_m_n_u16): Likewise.
9076 (vcmpneq_m_u16): Likewise.
9077 (vcmpneq_m_n_u16): Likewise.
9078 (vcmphiq_m_u16): Likewise.
9079 (vcmphiq_m_n_u16): Likewise.
9080 (vcmpeqq_m_u16): Likewise.
9081 (vcmpeqq_m_n_u16): Likewise.
9082 (vcmpcsq_m_u16): Likewise.
9083 (vcmpcsq_m_n_u16): Likewise.
9084 (vclzq_m_u16): Likewise.
9085 (vaddvaq_p_u16): Likewise.
9086 (vsriq_n_u16): Likewise.
9087 (vsliq_n_u16): Likewise.
9088 (vshlq_m_r_u16): Likewise.
9089 (vrshlq_m_n_u16): Likewise.
9090 (vqshlq_m_r_u16): Likewise.
9091 (vqrshlq_m_n_u16): Likewise.
9092 (vminavq_p_s16): Likewise.
9093 (vminaq_m_s16): Likewise.
9094 (vmaxavq_p_s16): Likewise.
9095 (vmaxaq_m_s16): Likewise.
9096 (vcmpneq_m_s16): Likewise.
9097 (vcmpneq_m_n_s16): Likewise.
9098 (vcmpltq_m_s16): Likewise.
9099 (vcmpltq_m_n_s16): Likewise.
9100 (vcmpleq_m_s16): Likewise.
9101 (vcmpleq_m_n_s16): Likewise.
9102 (vcmpgtq_m_s16): Likewise.
9103 (vcmpgtq_m_n_s16): Likewise.
9104 (vcmpgeq_m_s16): Likewise.
9105 (vcmpgeq_m_n_s16): Likewise.
9106 (vcmpeqq_m_s16): Likewise.
9107 (vcmpeqq_m_n_s16): Likewise.
9108 (vshlq_m_r_s16): Likewise.
9109 (vrshlq_m_n_s16): Likewise.
9110 (vrev64q_m_s16): Likewise.
9111 (vqshlq_m_r_s16): Likewise.
9112 (vqrshlq_m_n_s16): Likewise.
9113 (vqnegq_m_s16): Likewise.
9114 (vqabsq_m_s16): Likewise.
9115 (vnegq_m_s16): Likewise.
9116 (vmvnq_m_s16): Likewise.
9117 (vmlsdavxq_p_s16): Likewise.
9118 (vmlsdavq_p_s16): Likewise.
9119 (vmladavxq_p_s16): Likewise.
9120 (vmladavq_p_s16): Likewise.
9121 (vminvq_p_s16): Likewise.
9122 (vmaxvq_p_s16): Likewise.
9123 (vdupq_m_n_s16): Likewise.
9124 (vclzq_m_s16): Likewise.
9125 (vclsq_m_s16): Likewise.
9126 (vaddvaq_p_s16): Likewise.
9127 (vabsq_m_s16): Likewise.
9128 (vqrdmlsdhxq_s16): Likewise.
9129 (vqrdmlsdhq_s16): Likewise.
9130 (vqrdmlashq_n_s16): Likewise.
9131 (vqrdmlahq_n_s16): Likewise.
9132 (vqrdmladhxq_s16): Likewise.
9133 (vqrdmladhq_s16): Likewise.
9134 (vqdmlsdhxq_s16): Likewise.
9135 (vqdmlsdhq_s16): Likewise.
9136 (vqdmlahq_n_s16): Likewise.
9137 (vqdmladhxq_s16): Likewise.
9138 (vqdmladhq_s16): Likewise.
9139 (vmlsdavaxq_s16): Likewise.
9140 (vmlsdavaq_s16): Likewise.
9141 (vmlasq_n_s16): Likewise.
9142 (vmlaq_n_s16): Likewise.
9143 (vmladavaxq_s16): Likewise.
9144 (vmladavaq_s16): Likewise.
9145 (vsriq_n_s16): Likewise.
9146 (vsliq_n_s16): Likewise.
9147 (vpselq_u32): Likewise.
9148 (vpselq_s32): Likewise.
9149 (vrev64q_m_u32): Likewise.
9150 (vqrdmlashq_n_u32): Likewise.
9151 (vqrdmlahq_n_u32): Likewise.
9152 (vqdmlahq_n_u32): Likewise.
9153 (vmvnq_m_u32): Likewise.
9154 (vmlasq_n_u32): Likewise.
9155 (vmlaq_n_u32): Likewise.
9156 (vmladavq_p_u32): Likewise.
9157 (vmladavaq_u32): Likewise.
9158 (vminvq_p_u32): Likewise.
9159 (vmaxvq_p_u32): Likewise.
9160 (vdupq_m_n_u32): Likewise.
9161 (vcmpneq_m_u32): Likewise.
9162 (vcmpneq_m_n_u32): Likewise.
9163 (vcmphiq_m_u32): Likewise.
9164 (vcmphiq_m_n_u32): Likewise.
9165 (vcmpeqq_m_u32): Likewise.
9166 (vcmpeqq_m_n_u32): Likewise.
9167 (vcmpcsq_m_u32): Likewise.
9168 (vcmpcsq_m_n_u32): Likewise.
9169 (vclzq_m_u32): Likewise.
9170 (vaddvaq_p_u32): Likewise.
9171 (vsriq_n_u32): Likewise.
9172 (vsliq_n_u32): Likewise.
9173 (vshlq_m_r_u32): Likewise.
9174 (vrshlq_m_n_u32): Likewise.
9175 (vqshlq_m_r_u32): Likewise.
9176 (vqrshlq_m_n_u32): Likewise.
9177 (vminavq_p_s32): Likewise.
9178 (vminaq_m_s32): Likewise.
9179 (vmaxavq_p_s32): Likewise.
9180 (vmaxaq_m_s32): Likewise.
9181 (vcmpneq_m_s32): Likewise.
9182 (vcmpneq_m_n_s32): Likewise.
9183 (vcmpltq_m_s32): Likewise.
9184 (vcmpltq_m_n_s32): Likewise.
9185 (vcmpleq_m_s32): Likewise.
9186 (vcmpleq_m_n_s32): Likewise.
9187 (vcmpgtq_m_s32): Likewise.
9188 (vcmpgtq_m_n_s32): Likewise.
9189 (vcmpgeq_m_s32): Likewise.
9190 (vcmpgeq_m_n_s32): Likewise.
9191 (vcmpeqq_m_s32): Likewise.
9192 (vcmpeqq_m_n_s32): Likewise.
9193 (vshlq_m_r_s32): Likewise.
9194 (vrshlq_m_n_s32): Likewise.
9195 (vrev64q_m_s32): Likewise.
9196 (vqshlq_m_r_s32): Likewise.
9197 (vqrshlq_m_n_s32): Likewise.
9198 (vqnegq_m_s32): Likewise.
9199 (vqabsq_m_s32): Likewise.
9200 (vnegq_m_s32): Likewise.
9201 (vmvnq_m_s32): Likewise.
9202 (vmlsdavxq_p_s32): Likewise.
9203 (vmlsdavq_p_s32): Likewise.
9204 (vmladavxq_p_s32): Likewise.
9205 (vmladavq_p_s32): Likewise.
9206 (vminvq_p_s32): Likewise.
9207 (vmaxvq_p_s32): Likewise.
9208 (vdupq_m_n_s32): Likewise.
9209 (vclzq_m_s32): Likewise.
9210 (vclsq_m_s32): Likewise.
9211 (vaddvaq_p_s32): Likewise.
9212 (vabsq_m_s32): Likewise.
9213 (vqrdmlsdhxq_s32): Likewise.
9214 (vqrdmlsdhq_s32): Likewise.
9215 (vqrdmlashq_n_s32): Likewise.
9216 (vqrdmlahq_n_s32): Likewise.
9217 (vqrdmladhxq_s32): Likewise.
9218 (vqrdmladhq_s32): Likewise.
9219 (vqdmlsdhxq_s32): Likewise.
9220 (vqdmlsdhq_s32): Likewise.
9221 (vqdmlahq_n_s32): Likewise.
9222 (vqdmladhxq_s32): Likewise.
9223 (vqdmladhq_s32): Likewise.
9224 (vmlsdavaxq_s32): Likewise.
9225 (vmlsdavaq_s32): Likewise.
9226 (vmlasq_n_s32): Likewise.
9227 (vmlaq_n_s32): Likewise.
9228 (vmladavaxq_s32): Likewise.
9229 (vmladavaq_s32): Likewise.
9230 (vsriq_n_s32): Likewise.
9231 (vsliq_n_s32): Likewise.
9232 (vpselq_u64): Likewise.
9233 (vpselq_s64): Likewise.
9234 (__arm_vpselq_u8): Define intrinsic.
9235 (__arm_vpselq_s8): Likewise.
9236 (__arm_vrev64q_m_u8): Likewise.
9237 (__arm_vqrdmlashq_n_u8): Likewise.
9238 (__arm_vqrdmlahq_n_u8): Likewise.
9239 (__arm_vqdmlahq_n_u8): Likewise.
9240 (__arm_vmvnq_m_u8): Likewise.
9241 (__arm_vmlasq_n_u8): Likewise.
9242 (__arm_vmlaq_n_u8): Likewise.
9243 (__arm_vmladavq_p_u8): Likewise.
9244 (__arm_vmladavaq_u8): Likewise.
9245 (__arm_vminvq_p_u8): Likewise.
9246 (__arm_vmaxvq_p_u8): Likewise.
9247 (__arm_vdupq_m_n_u8): Likewise.
9248 (__arm_vcmpneq_m_u8): Likewise.
9249 (__arm_vcmpneq_m_n_u8): Likewise.
9250 (__arm_vcmphiq_m_u8): Likewise.
9251 (__arm_vcmphiq_m_n_u8): Likewise.
9252 (__arm_vcmpeqq_m_u8): Likewise.
9253 (__arm_vcmpeqq_m_n_u8): Likewise.
9254 (__arm_vcmpcsq_m_u8): Likewise.
9255 (__arm_vcmpcsq_m_n_u8): Likewise.
9256 (__arm_vclzq_m_u8): Likewise.
9257 (__arm_vaddvaq_p_u8): Likewise.
9258 (__arm_vsriq_n_u8): Likewise.
9259 (__arm_vsliq_n_u8): Likewise.
9260 (__arm_vshlq_m_r_u8): Likewise.
9261 (__arm_vrshlq_m_n_u8): Likewise.
9262 (__arm_vqshlq_m_r_u8): Likewise.
9263 (__arm_vqrshlq_m_n_u8): Likewise.
9264 (__arm_vminavq_p_s8): Likewise.
9265 (__arm_vminaq_m_s8): Likewise.
9266 (__arm_vmaxavq_p_s8): Likewise.
9267 (__arm_vmaxaq_m_s8): Likewise.
9268 (__arm_vcmpneq_m_s8): Likewise.
9269 (__arm_vcmpneq_m_n_s8): Likewise.
9270 (__arm_vcmpltq_m_s8): Likewise.
9271 (__arm_vcmpltq_m_n_s8): Likewise.
9272 (__arm_vcmpleq_m_s8): Likewise.
9273 (__arm_vcmpleq_m_n_s8): Likewise.
9274 (__arm_vcmpgtq_m_s8): Likewise.
9275 (__arm_vcmpgtq_m_n_s8): Likewise.
9276 (__arm_vcmpgeq_m_s8): Likewise.
9277 (__arm_vcmpgeq_m_n_s8): Likewise.
9278 (__arm_vcmpeqq_m_s8): Likewise.
9279 (__arm_vcmpeqq_m_n_s8): Likewise.
9280 (__arm_vshlq_m_r_s8): Likewise.
9281 (__arm_vrshlq_m_n_s8): Likewise.
9282 (__arm_vrev64q_m_s8): Likewise.
9283 (__arm_vqshlq_m_r_s8): Likewise.
9284 (__arm_vqrshlq_m_n_s8): Likewise.
9285 (__arm_vqnegq_m_s8): Likewise.
9286 (__arm_vqabsq_m_s8): Likewise.
9287 (__arm_vnegq_m_s8): Likewise.
9288 (__arm_vmvnq_m_s8): Likewise.
9289 (__arm_vmlsdavxq_p_s8): Likewise.
9290 (__arm_vmlsdavq_p_s8): Likewise.
9291 (__arm_vmladavxq_p_s8): Likewise.
9292 (__arm_vmladavq_p_s8): Likewise.
9293 (__arm_vminvq_p_s8): Likewise.
9294 (__arm_vmaxvq_p_s8): Likewise.
9295 (__arm_vdupq_m_n_s8): Likewise.
9296 (__arm_vclzq_m_s8): Likewise.
9297 (__arm_vclsq_m_s8): Likewise.
9298 (__arm_vaddvaq_p_s8): Likewise.
9299 (__arm_vabsq_m_s8): Likewise.
9300 (__arm_vqrdmlsdhxq_s8): Likewise.
9301 (__arm_vqrdmlsdhq_s8): Likewise.
9302 (__arm_vqrdmlashq_n_s8): Likewise.
9303 (__arm_vqrdmlahq_n_s8): Likewise.
9304 (__arm_vqrdmladhxq_s8): Likewise.
9305 (__arm_vqrdmladhq_s8): Likewise.
9306 (__arm_vqdmlsdhxq_s8): Likewise.
9307 (__arm_vqdmlsdhq_s8): Likewise.
9308 (__arm_vqdmlahq_n_s8): Likewise.
9309 (__arm_vqdmladhxq_s8): Likewise.
9310 (__arm_vqdmladhq_s8): Likewise.
9311 (__arm_vmlsdavaxq_s8): Likewise.
9312 (__arm_vmlsdavaq_s8): Likewise.
9313 (__arm_vmlasq_n_s8): Likewise.
9314 (__arm_vmlaq_n_s8): Likewise.
9315 (__arm_vmladavaxq_s8): Likewise.
9316 (__arm_vmladavaq_s8): Likewise.
9317 (__arm_vsriq_n_s8): Likewise.
9318 (__arm_vsliq_n_s8): Likewise.
9319 (__arm_vpselq_u16): Likewise.
9320 (__arm_vpselq_s16): Likewise.
9321 (__arm_vrev64q_m_u16): Likewise.
9322 (__arm_vqrdmlashq_n_u16): Likewise.
9323 (__arm_vqrdmlahq_n_u16): Likewise.
9324 (__arm_vqdmlahq_n_u16): Likewise.
9325 (__arm_vmvnq_m_u16): Likewise.
9326 (__arm_vmlasq_n_u16): Likewise.
9327 (__arm_vmlaq_n_u16): Likewise.
9328 (__arm_vmladavq_p_u16): Likewise.
9329 (__arm_vmladavaq_u16): Likewise.
9330 (__arm_vminvq_p_u16): Likewise.
9331 (__arm_vmaxvq_p_u16): Likewise.
9332 (__arm_vdupq_m_n_u16): Likewise.
9333 (__arm_vcmpneq_m_u16): Likewise.
9334 (__arm_vcmpneq_m_n_u16): Likewise.
9335 (__arm_vcmphiq_m_u16): Likewise.
9336 (__arm_vcmphiq_m_n_u16): Likewise.
9337 (__arm_vcmpeqq_m_u16): Likewise.
9338 (__arm_vcmpeqq_m_n_u16): Likewise.
9339 (__arm_vcmpcsq_m_u16): Likewise.
9340 (__arm_vcmpcsq_m_n_u16): Likewise.
9341 (__arm_vclzq_m_u16): Likewise.
9342 (__arm_vaddvaq_p_u16): Likewise.
9343 (__arm_vsriq_n_u16): Likewise.
9344 (__arm_vsliq_n_u16): Likewise.
9345 (__arm_vshlq_m_r_u16): Likewise.
9346 (__arm_vrshlq_m_n_u16): Likewise.
9347 (__arm_vqshlq_m_r_u16): Likewise.
9348 (__arm_vqrshlq_m_n_u16): Likewise.
9349 (__arm_vminavq_p_s16): Likewise.
9350 (__arm_vminaq_m_s16): Likewise.
9351 (__arm_vmaxavq_p_s16): Likewise.
9352 (__arm_vmaxaq_m_s16): Likewise.
9353 (__arm_vcmpneq_m_s16): Likewise.
9354 (__arm_vcmpneq_m_n_s16): Likewise.
9355 (__arm_vcmpltq_m_s16): Likewise.
9356 (__arm_vcmpltq_m_n_s16): Likewise.
9357 (__arm_vcmpleq_m_s16): Likewise.
9358 (__arm_vcmpleq_m_n_s16): Likewise.
9359 (__arm_vcmpgtq_m_s16): Likewise.
9360 (__arm_vcmpgtq_m_n_s16): Likewise.
9361 (__arm_vcmpgeq_m_s16): Likewise.
9362 (__arm_vcmpgeq_m_n_s16): Likewise.
9363 (__arm_vcmpeqq_m_s16): Likewise.
9364 (__arm_vcmpeqq_m_n_s16): Likewise.
9365 (__arm_vshlq_m_r_s16): Likewise.
9366 (__arm_vrshlq_m_n_s16): Likewise.
9367 (__arm_vrev64q_m_s16): Likewise.
9368 (__arm_vqshlq_m_r_s16): Likewise.
9369 (__arm_vqrshlq_m_n_s16): Likewise.
9370 (__arm_vqnegq_m_s16): Likewise.
9371 (__arm_vqabsq_m_s16): Likewise.
9372 (__arm_vnegq_m_s16): Likewise.
9373 (__arm_vmvnq_m_s16): Likewise.
9374 (__arm_vmlsdavxq_p_s16): Likewise.
9375 (__arm_vmlsdavq_p_s16): Likewise.
9376 (__arm_vmladavxq_p_s16): Likewise.
9377 (__arm_vmladavq_p_s16): Likewise.
9378 (__arm_vminvq_p_s16): Likewise.
9379 (__arm_vmaxvq_p_s16): Likewise.
9380 (__arm_vdupq_m_n_s16): Likewise.
9381 (__arm_vclzq_m_s16): Likewise.
9382 (__arm_vclsq_m_s16): Likewise.
9383 (__arm_vaddvaq_p_s16): Likewise.
9384 (__arm_vabsq_m_s16): Likewise.
9385 (__arm_vqrdmlsdhxq_s16): Likewise.
9386 (__arm_vqrdmlsdhq_s16): Likewise.
9387 (__arm_vqrdmlashq_n_s16): Likewise.
9388 (__arm_vqrdmlahq_n_s16): Likewise.
9389 (__arm_vqrdmladhxq_s16): Likewise.
9390 (__arm_vqrdmladhq_s16): Likewise.
9391 (__arm_vqdmlsdhxq_s16): Likewise.
9392 (__arm_vqdmlsdhq_s16): Likewise.
9393 (__arm_vqdmlahq_n_s16): Likewise.
9394 (__arm_vqdmladhxq_s16): Likewise.
9395 (__arm_vqdmladhq_s16): Likewise.
9396 (__arm_vmlsdavaxq_s16): Likewise.
9397 (__arm_vmlsdavaq_s16): Likewise.
9398 (__arm_vmlasq_n_s16): Likewise.
9399 (__arm_vmlaq_n_s16): Likewise.
9400 (__arm_vmladavaxq_s16): Likewise.
9401 (__arm_vmladavaq_s16): Likewise.
9402 (__arm_vsriq_n_s16): Likewise.
9403 (__arm_vsliq_n_s16): Likewise.
9404 (__arm_vpselq_u32): Likewise.
9405 (__arm_vpselq_s32): Likewise.
9406 (__arm_vrev64q_m_u32): Likewise.
9407 (__arm_vqrdmlashq_n_u32): Likewise.
9408 (__arm_vqrdmlahq_n_u32): Likewise.
9409 (__arm_vqdmlahq_n_u32): Likewise.
9410 (__arm_vmvnq_m_u32): Likewise.
9411 (__arm_vmlasq_n_u32): Likewise.
9412 (__arm_vmlaq_n_u32): Likewise.
9413 (__arm_vmladavq_p_u32): Likewise.
9414 (__arm_vmladavaq_u32): Likewise.
9415 (__arm_vminvq_p_u32): Likewise.
9416 (__arm_vmaxvq_p_u32): Likewise.
9417 (__arm_vdupq_m_n_u32): Likewise.
9418 (__arm_vcmpneq_m_u32): Likewise.
9419 (__arm_vcmpneq_m_n_u32): Likewise.
9420 (__arm_vcmphiq_m_u32): Likewise.
9421 (__arm_vcmphiq_m_n_u32): Likewise.
9422 (__arm_vcmpeqq_m_u32): Likewise.
9423 (__arm_vcmpeqq_m_n_u32): Likewise.
9424 (__arm_vcmpcsq_m_u32): Likewise.
9425 (__arm_vcmpcsq_m_n_u32): Likewise.
9426 (__arm_vclzq_m_u32): Likewise.
9427 (__arm_vaddvaq_p_u32): Likewise.
9428 (__arm_vsriq_n_u32): Likewise.
9429 (__arm_vsliq_n_u32): Likewise.
9430 (__arm_vshlq_m_r_u32): Likewise.
9431 (__arm_vrshlq_m_n_u32): Likewise.
9432 (__arm_vqshlq_m_r_u32): Likewise.
9433 (__arm_vqrshlq_m_n_u32): Likewise.
9434 (__arm_vminavq_p_s32): Likewise.
9435 (__arm_vminaq_m_s32): Likewise.
9436 (__arm_vmaxavq_p_s32): Likewise.
9437 (__arm_vmaxaq_m_s32): Likewise.
9438 (__arm_vcmpneq_m_s32): Likewise.
9439 (__arm_vcmpneq_m_n_s32): Likewise.
9440 (__arm_vcmpltq_m_s32): Likewise.
9441 (__arm_vcmpltq_m_n_s32): Likewise.
9442 (__arm_vcmpleq_m_s32): Likewise.
9443 (__arm_vcmpleq_m_n_s32): Likewise.
9444 (__arm_vcmpgtq_m_s32): Likewise.
9445 (__arm_vcmpgtq_m_n_s32): Likewise.
9446 (__arm_vcmpgeq_m_s32): Likewise.
9447 (__arm_vcmpgeq_m_n_s32): Likewise.
9448 (__arm_vcmpeqq_m_s32): Likewise.
9449 (__arm_vcmpeqq_m_n_s32): Likewise.
9450 (__arm_vshlq_m_r_s32): Likewise.
9451 (__arm_vrshlq_m_n_s32): Likewise.
9452 (__arm_vrev64q_m_s32): Likewise.
9453 (__arm_vqshlq_m_r_s32): Likewise.
9454 (__arm_vqrshlq_m_n_s32): Likewise.
9455 (__arm_vqnegq_m_s32): Likewise.
9456 (__arm_vqabsq_m_s32): Likewise.
9457 (__arm_vnegq_m_s32): Likewise.
9458 (__arm_vmvnq_m_s32): Likewise.
9459 (__arm_vmlsdavxq_p_s32): Likewise.
9460 (__arm_vmlsdavq_p_s32): Likewise.
9461 (__arm_vmladavxq_p_s32): Likewise.
9462 (__arm_vmladavq_p_s32): Likewise.
9463 (__arm_vminvq_p_s32): Likewise.
9464 (__arm_vmaxvq_p_s32): Likewise.
9465 (__arm_vdupq_m_n_s32): Likewise.
9466 (__arm_vclzq_m_s32): Likewise.
9467 (__arm_vclsq_m_s32): Likewise.
9468 (__arm_vaddvaq_p_s32): Likewise.
9469 (__arm_vabsq_m_s32): Likewise.
9470 (__arm_vqrdmlsdhxq_s32): Likewise.
9471 (__arm_vqrdmlsdhq_s32): Likewise.
9472 (__arm_vqrdmlashq_n_s32): Likewise.
9473 (__arm_vqrdmlahq_n_s32): Likewise.
9474 (__arm_vqrdmladhxq_s32): Likewise.
9475 (__arm_vqrdmladhq_s32): Likewise.
9476 (__arm_vqdmlsdhxq_s32): Likewise.
9477 (__arm_vqdmlsdhq_s32): Likewise.
9478 (__arm_vqdmlahq_n_s32): Likewise.
9479 (__arm_vqdmladhxq_s32): Likewise.
9480 (__arm_vqdmladhq_s32): Likewise.
9481 (__arm_vmlsdavaxq_s32): Likewise.
9482 (__arm_vmlsdavaq_s32): Likewise.
9483 (__arm_vmlasq_n_s32): Likewise.
9484 (__arm_vmlaq_n_s32): Likewise.
9485 (__arm_vmladavaxq_s32): Likewise.
9486 (__arm_vmladavaq_s32): Likewise.
9487 (__arm_vsriq_n_s32): Likewise.
9488 (__arm_vsliq_n_s32): Likewise.
9489 (__arm_vpselq_u64): Likewise.
9490 (__arm_vpselq_s64): Likewise.
9491 (vcmpneq_m_n): Define polymorphic variant.
9492 (vcmpneq_m): Likewise.
9493 (vqrdmlsdhq): Likewise.
9494 (vqrdmlsdhxq): Likewise.
9495 (vqrshlq_m_n): Likewise.
9496 (vqshlq_m_r): Likewise.
9497 (vrev64q_m): Likewise.
9498 (vrshlq_m_n): Likewise.
9499 (vshlq_m_r): Likewise.
9500 (vsliq_n): Likewise.
9501 (vsriq_n): Likewise.
9502 (vqrdmlashq_n): Likewise.
9503 (vqrdmlahq): Likewise.
9504 (vqrdmladhxq): Likewise.
9505 (vqrdmladhq): Likewise.
9506 (vqnegq_m): Likewise.
9507 (vqdmlsdhxq): Likewise.
9508 (vabsq_m): Likewise.
9509 (vclsq_m): Likewise.
9510 (vclzq_m): Likewise.
9511 (vcmpgeq_m): Likewise.
9512 (vcmpgeq_m_n): Likewise.
9513 (vdupq_m_n): Likewise.
9514 (vmaxaq_m): Likewise.
9515 (vmlaq_n): Likewise.
9516 (vmlasq_n): Likewise.
9517 (vmvnq_m): Likewise.
9518 (vnegq_m): Likewise.
9520 (vqdmlahq_n): Likewise.
9521 (vqrdmlahq_n): Likewise.
9522 (vqdmlsdhq): Likewise.
9523 (vqdmladhq): Likewise.
9524 (vqabsq_m): Likewise.
9525 (vminaq_m): Likewise.
9526 (vrmlaldavhaq): Likewise.
9527 (vmlsdavxq_p): Likewise.
9528 (vmlsdavq_p): Likewise.
9529 (vmlsdavaxq): Likewise.
9530 (vmlsdavaq): Likewise.
9531 (vaddvaq_p): Likewise.
9532 (vcmpcsq_m_n): Likewise.
9533 (vcmpcsq_m): Likewise.
9534 (vcmpeqq_m_n): Likewise.
9535 (vcmpeqq_m): Likewise.
9536 (vmladavxq_p): Likewise.
9537 (vmladavq_p): Likewise.
9538 (vmladavaxq): Likewise.
9539 (vmladavaq): Likewise.
9540 (vminvq_p): Likewise.
9541 (vminavq_p): Likewise.
9542 (vmaxvq_p): Likewise.
9543 (vmaxavq_p): Likewise.
9544 (vcmpltq_m_n): Likewise.
9545 (vcmpltq_m): Likewise.
9546 (vcmpleq_m): Likewise.
9547 (vcmpleq_m_n): Likewise.
9548 (vcmphiq_m_n): Likewise.
9549 (vcmphiq_m): Likewise.
9550 (vcmpgtq_m_n): Likewise.
9551 (vcmpgtq_m): Likewise.
9552 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use
9554 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
9555 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
9556 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
9557 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
9558 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
9559 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
9560 * config/arm/constraints.md (Rc): Define constraint to check constant is
9561 in the range of 0 to 15.
9562 (Re): Define constraint to check constant is in the range of 0 to 31.
9563 * config/arm/mve.md (VADDVAQ_P): Define iterator.
9564 (VCLZQ_M): Likewise.
9565 (VCMPEQQ_M_N): Likewise.
9566 (VCMPEQQ_M): Likewise.
9567 (VCMPNEQ_M_N): Likewise.
9568 (VCMPNEQ_M): Likewise.
9569 (VDUPQ_M_N): Likewise.
9570 (VMAXVQ_P): Likewise.
9571 (VMINVQ_P): Likewise.
9572 (VMLADAVAQ): Likewise.
9573 (VMLADAVQ_P): Likewise.
9574 (VMLAQ_N): Likewise.
9575 (VMLASQ_N): Likewise.
9576 (VMVNQ_M): Likewise.
9578 (VQDMLAHQ_N): Likewise.
9579 (VQRDMLAHQ_N): Likewise.
9580 (VQRDMLASHQ_N): Likewise.
9581 (VQRSHLQ_M_N): Likewise.
9582 (VQSHLQ_M_R): Likewise.
9583 (VREV64Q_M): Likewise.
9584 (VRSHLQ_M_N): Likewise.
9585 (VSHLQ_M_R): Likewise.
9586 (VSLIQ_N): Likewise.
9587 (VSRIQ_N): Likewise.
9588 (mve_vabsq_m_s<mode>): Define RTL pattern.
9589 (mve_vaddvaq_p_<supf><mode>): Likewise.
9590 (mve_vclsq_m_s<mode>): Likewise.
9591 (mve_vclzq_m_<supf><mode>): Likewise.
9592 (mve_vcmpcsq_m_n_u<mode>): Likewise.
9593 (mve_vcmpcsq_m_u<mode>): Likewise.
9594 (mve_vcmpeqq_m_n_<supf><mode>): Likewise.
9595 (mve_vcmpeqq_m_<supf><mode>): Likewise.
9596 (mve_vcmpgeq_m_n_s<mode>): Likewise.
9597 (mve_vcmpgeq_m_s<mode>): Likewise.
9598 (mve_vcmpgtq_m_n_s<mode>): Likewise.
9599 (mve_vcmpgtq_m_s<mode>): Likewise.
9600 (mve_vcmphiq_m_n_u<mode>): Likewise.
9601 (mve_vcmphiq_m_u<mode>): Likewise.
9602 (mve_vcmpleq_m_n_s<mode>): Likewise.
9603 (mve_vcmpleq_m_s<mode>): Likewise.
9604 (mve_vcmpltq_m_n_s<mode>): Likewise.
9605 (mve_vcmpltq_m_s<mode>): Likewise.
9606 (mve_vcmpneq_m_n_<supf><mode>): Likewise.
9607 (mve_vcmpneq_m_<supf><mode>): Likewise.
9608 (mve_vdupq_m_n_<supf><mode>): Likewise.
9609 (mve_vmaxaq_m_s<mode>): Likewise.
9610 (mve_vmaxavq_p_s<mode>): Likewise.
9611 (mve_vmaxvq_p_<supf><mode>): Likewise.
9612 (mve_vminaq_m_s<mode>): Likewise.
9613 (mve_vminavq_p_s<mode>): Likewise.
9614 (mve_vminvq_p_<supf><mode>): Likewise.
9615 (mve_vmladavaq_<supf><mode>): Likewise.
9616 (mve_vmladavq_p_<supf><mode>): Likewise.
9617 (mve_vmladavxq_p_s<mode>): Likewise.
9618 (mve_vmlaq_n_<supf><mode>): Likewise.
9619 (mve_vmlasq_n_<supf><mode>): Likewise.
9620 (mve_vmlsdavq_p_s<mode>): Likewise.
9621 (mve_vmlsdavxq_p_s<mode>): Likewise.
9622 (mve_vmvnq_m_<supf><mode>): Likewise.
9623 (mve_vnegq_m_s<mode>): Likewise.
9624 (mve_vpselq_<supf><mode>): Likewise.
9625 (mve_vqabsq_m_s<mode>): Likewise.
9626 (mve_vqdmlahq_n_<supf><mode>): Likewise.
9627 (mve_vqnegq_m_s<mode>): Likewise.
9628 (mve_vqrdmladhq_s<mode>): Likewise.
9629 (mve_vqrdmladhxq_s<mode>): Likewise.
9630 (mve_vqrdmlahq_n_<supf><mode>): Likewise.
9631 (mve_vqrdmlashq_n_<supf><mode>): Likewise.
9632 (mve_vqrdmlsdhq_s<mode>): Likewise.
9633 (mve_vqrdmlsdhxq_s<mode>): Likewise.
9634 (mve_vqrshlq_m_n_<supf><mode>): Likewise.
9635 (mve_vqshlq_m_r_<supf><mode>): Likewise.
9636 (mve_vrev64q_m_<supf><mode>): Likewise.
9637 (mve_vrshlq_m_n_<supf><mode>): Likewise.
9638 (mve_vshlq_m_r_<supf><mode>): Likewise.
9639 (mve_vsliq_n_<supf><mode>): Likewise.
9640 (mve_vsriq_n_<supf><mode>): Likewise.
9641 (mve_vqdmlsdhxq_s<mode>): Likewise.
9642 (mve_vqdmlsdhq_s<mode>): Likewise.
9643 (mve_vqdmladhxq_s<mode>): Likewise.
9644 (mve_vqdmladhq_s<mode>): Likewise.
9645 (mve_vmlsdavaxq_s<mode>): Likewise.
9646 (mve_vmlsdavaq_s<mode>): Likewise.
9647 (mve_vmladavaxq_s<mode>): Likewise.
9648 * config/arm/predicates.md (mve_imm_15):Define predicate to check the
9649 matching constraint Rc.
9650 (mve_imm_31): Define predicate to check the matching constraint Re.
9652 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
9654 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode.
9655 (vec_cmp<mode>di_dup): Likewise.
9656 * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1.
9658 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
9660 * config/gcn/gcn-valu.md (COND_MODE): Delete.
9661 (COND_INT_MODE): Delete.
9662 (cond_op): Add "mult".
9663 (cond_<expander><mode>): Use VEC_ALLREG_MODE.
9664 (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE.
9666 2020-03-18 Richard Biener <rguenther@suse.de>
9669 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using
9670 partial int modes or not mode-precision integer types for
9673 2020-03-18 Jakub Jelinek <jakub@redhat.com>
9675 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue
9677 * config/arc/arc.c (frame_stack_add): Likewise.
9678 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term):
9680 * ipa-predicate.c (predicate::remap_after_inlining): Likewise.
9681 * tree-ssa-strlen.h (handle_printf_call): Likewise.
9682 * tree-ssa-strlen.c (is_strlen_related_p): Likewise.
9683 * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise.
9685 2020-03-18 Duan bo <duanbo3@huawei.com>
9688 * config/aarch64/aarch64.md (ldr_got_tiny): Delete.
9689 (@ldr_got_tiny_<mode>): New pattern.
9690 (ldr_got_tiny_sidi): Likewise.
9691 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use
9692 them to handle SYMBOL_TINY_GOT for ILP32.
9694 2020-03-18 Richard Sandiford <richard.sandiford@arm.com>
9696 * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as
9697 call-preserved for SVE PCS functions.
9698 (aarch64_layout_frame): Cope with up to 12 predicate save slots.
9699 Optimize the case in which there are no following vector save slots.
9701 2020-03-18 Richard Biener <rguenther@suse.de>
9704 * fold-const.c (build_fold_addr_expr): Convert address to
9706 * asan.c (maybe_create_ssa_name): Strip useless type conversions.
9707 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1
9708 to build the ADDR_EXPR which we don't really want to simplify.
9709 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
9710 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise.
9711 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
9712 (simplify_builtin_call): Strip useless type conversions.
9713 * tree-ssa-strlen.c (new_strinfo): Likewise.
9715 2020-03-17 Alexey Neyman <stilor@att.net>
9718 * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if
9719 the debug level is terse and the declaration is public. Do not
9721 (dwarf2out_decl): Same.
9722 (add_type_attribute): Return immediately if debug level is
9725 2020-03-17 Richard Sandiford <richard.sandiford@arm.com>
9727 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
9729 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
9730 Mihail Ionescu <mihail.ionescu@arm.com>
9731 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9733 * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS):
9734 Define qualifier for ternary operands.
9735 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
9736 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9737 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9738 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
9739 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
9740 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
9741 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9742 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
9743 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9744 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
9745 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
9746 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
9747 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
9748 * config/arm/arm_mve.h (vabavq_s8): Define macro.
9749 (vabavq_s16): Likewise.
9750 (vabavq_s32): Likewise.
9751 (vbicq_m_n_s16): Likewise.
9752 (vbicq_m_n_s32): Likewise.
9753 (vbicq_m_n_u16): Likewise.
9754 (vbicq_m_n_u32): Likewise.
9755 (vcmpeqq_m_f16): Likewise.
9756 (vcmpeqq_m_f32): Likewise.
9757 (vcvtaq_m_s16_f16): Likewise.
9758 (vcvtaq_m_u16_f16): Likewise.
9759 (vcvtaq_m_s32_f32): Likewise.
9760 (vcvtaq_m_u32_f32): Likewise.
9761 (vcvtq_m_f16_s16): Likewise.
9762 (vcvtq_m_f16_u16): Likewise.
9763 (vcvtq_m_f32_s32): Likewise.
9764 (vcvtq_m_f32_u32): Likewise.
9765 (vqrshrnbq_n_s16): Likewise.
9766 (vqrshrnbq_n_u16): Likewise.
9767 (vqrshrnbq_n_s32): Likewise.
9768 (vqrshrnbq_n_u32): Likewise.
9769 (vqrshrunbq_n_s16): Likewise.
9770 (vqrshrunbq_n_s32): Likewise.
9771 (vrmlaldavhaq_s32): Likewise.
9772 (vrmlaldavhaq_u32): Likewise.
9773 (vshlcq_s8): Likewise.
9774 (vshlcq_u8): Likewise.
9775 (vshlcq_s16): Likewise.
9776 (vshlcq_u16): Likewise.
9777 (vshlcq_s32): Likewise.
9778 (vshlcq_u32): Likewise.
9779 (vabavq_u8): Likewise.
9780 (vabavq_u16): Likewise.
9781 (vabavq_u32): Likewise.
9782 (__arm_vabavq_s8): Define intrinsic.
9783 (__arm_vabavq_s16): Likewise.
9784 (__arm_vabavq_s32): Likewise.
9785 (__arm_vabavq_u8): Likewise.
9786 (__arm_vabavq_u16): Likewise.
9787 (__arm_vabavq_u32): Likewise.
9788 (__arm_vbicq_m_n_s16): Likewise.
9789 (__arm_vbicq_m_n_s32): Likewise.
9790 (__arm_vbicq_m_n_u16): Likewise.
9791 (__arm_vbicq_m_n_u32): Likewise.
9792 (__arm_vqrshrnbq_n_s16): Likewise.
9793 (__arm_vqrshrnbq_n_u16): Likewise.
9794 (__arm_vqrshrnbq_n_s32): Likewise.
9795 (__arm_vqrshrnbq_n_u32): Likewise.
9796 (__arm_vqrshrunbq_n_s16): Likewise.
9797 (__arm_vqrshrunbq_n_s32): Likewise.
9798 (__arm_vrmlaldavhaq_s32): Likewise.
9799 (__arm_vrmlaldavhaq_u32): Likewise.
9800 (__arm_vshlcq_s8): Likewise.
9801 (__arm_vshlcq_u8): Likewise.
9802 (__arm_vshlcq_s16): Likewise.
9803 (__arm_vshlcq_u16): Likewise.
9804 (__arm_vshlcq_s32): Likewise.
9805 (__arm_vshlcq_u32): Likewise.
9806 (__arm_vcmpeqq_m_f16): Likewise.
9807 (__arm_vcmpeqq_m_f32): Likewise.
9808 (__arm_vcvtaq_m_s16_f16): Likewise.
9809 (__arm_vcvtaq_m_u16_f16): Likewise.
9810 (__arm_vcvtaq_m_s32_f32): Likewise.
9811 (__arm_vcvtaq_m_u32_f32): Likewise.
9812 (__arm_vcvtq_m_f16_s16): Likewise.
9813 (__arm_vcvtq_m_f16_u16): Likewise.
9814 (__arm_vcvtq_m_f32_s32): Likewise.
9815 (__arm_vcvtq_m_f32_u32): Likewise.
9816 (vcvtaq_m): Define polymorphic variant.
9817 (vcvtq_m): Likewise.
9820 (vbicq_m_n): Likewise.
9821 (vqrshrnbq_n): Likewise.
9822 (vqrshrunbq_n): Likewise.
9823 * config/arm/arm_mve_builtins.def
9824 (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer.
9825 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
9826 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9827 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9828 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
9829 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
9830 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
9831 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9832 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
9833 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9834 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
9835 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
9836 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
9837 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
9838 * config/arm/mve.md (VBICQ_M_N): Define iterator.
9839 (VCVTAQ_M): Likewise.
9840 (VCVTQ_M_TO_F): Likewise.
9841 (VQRSHRNBQ_N): Likewise.
9844 (VRMLALDAVHAQ): Likewise.
9845 (mve_vbicq_m_n_<supf><mode>): Define RTL pattern.
9846 (mve_vcmpeqq_m_f<mode>): Likewise.
9847 (mve_vcvtaq_m_<supf><mode>): Likewise.
9848 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
9849 (mve_vqrshrnbq_n_<supf><mode>): Likewise.
9850 (mve_vqrshrunbq_n_s<mode>): Likewise.
9851 (mve_vrmlaldavhaq_<supf>v4si): Likewise.
9852 (mve_vabavq_<supf><mode>): Likewise.
9853 (mve_vshlcq_<supf><mode>): Likewise.
9854 (mve_vshlcq_<supf><mode>): Likewise.
9855 (mve_vshlcq_vec_<supf><mode>): Define RTL expand.
9856 (mve_vshlcq_carry_<supf><mode>): Likewise.
9858 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
9859 Mihail Ionescu <mihail.ionescu@arm.com>
9860 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9862 * config/arm/arm_mve.h (vqmovntq_u16): Define macro.
9863 (vqmovnbq_u16): Likewise.
9864 (vmulltq_poly_p8): Likewise.
9865 (vmullbq_poly_p8): Likewise.
9866 (vmovntq_u16): Likewise.
9867 (vmovnbq_u16): Likewise.
9868 (vmlaldavxq_u16): Likewise.
9869 (vmlaldavq_u16): Likewise.
9870 (vqmovuntq_s16): Likewise.
9871 (vqmovunbq_s16): Likewise.
9872 (vshlltq_n_u8): Likewise.
9873 (vshllbq_n_u8): Likewise.
9874 (vorrq_n_u16): Likewise.
9875 (vbicq_n_u16): Likewise.
9876 (vcmpneq_n_f16): Likewise.
9877 (vcmpneq_f16): Likewise.
9878 (vcmpltq_n_f16): Likewise.
9879 (vcmpltq_f16): Likewise.
9880 (vcmpleq_n_f16): Likewise.
9881 (vcmpleq_f16): Likewise.
9882 (vcmpgtq_n_f16): Likewise.
9883 (vcmpgtq_f16): Likewise.
9884 (vcmpgeq_n_f16): Likewise.
9885 (vcmpgeq_f16): Likewise.
9886 (vcmpeqq_n_f16): Likewise.
9887 (vcmpeqq_f16): Likewise.
9888 (vsubq_f16): Likewise.
9889 (vqmovntq_s16): Likewise.
9890 (vqmovnbq_s16): Likewise.
9891 (vqdmulltq_s16): Likewise.
9892 (vqdmulltq_n_s16): Likewise.
9893 (vqdmullbq_s16): Likewise.
9894 (vqdmullbq_n_s16): Likewise.
9895 (vorrq_f16): Likewise.
9896 (vornq_f16): Likewise.
9897 (vmulq_n_f16): Likewise.
9898 (vmulq_f16): Likewise.
9899 (vmovntq_s16): Likewise.
9900 (vmovnbq_s16): Likewise.
9901 (vmlsldavxq_s16): Likewise.
9902 (vmlsldavq_s16): Likewise.
9903 (vmlaldavxq_s16): Likewise.
9904 (vmlaldavq_s16): Likewise.
9905 (vminnmvq_f16): Likewise.
9906 (vminnmq_f16): Likewise.
9907 (vminnmavq_f16): Likewise.
9908 (vminnmaq_f16): Likewise.
9909 (vmaxnmvq_f16): Likewise.
9910 (vmaxnmq_f16): Likewise.
9911 (vmaxnmavq_f16): Likewise.
9912 (vmaxnmaq_f16): Likewise.
9913 (veorq_f16): Likewise.
9914 (vcmulq_rot90_f16): Likewise.
9915 (vcmulq_rot270_f16): Likewise.
9916 (vcmulq_rot180_f16): Likewise.
9917 (vcmulq_f16): Likewise.
9918 (vcaddq_rot90_f16): Likewise.
9919 (vcaddq_rot270_f16): Likewise.
9920 (vbicq_f16): Likewise.
9921 (vandq_f16): Likewise.
9922 (vaddq_n_f16): Likewise.
9923 (vabdq_f16): Likewise.
9924 (vshlltq_n_s8): Likewise.
9925 (vshllbq_n_s8): Likewise.
9926 (vorrq_n_s16): Likewise.
9927 (vbicq_n_s16): Likewise.
9928 (vqmovntq_u32): Likewise.
9929 (vqmovnbq_u32): Likewise.
9930 (vmulltq_poly_p16): Likewise.
9931 (vmullbq_poly_p16): Likewise.
9932 (vmovntq_u32): Likewise.
9933 (vmovnbq_u32): Likewise.
9934 (vmlaldavxq_u32): Likewise.
9935 (vmlaldavq_u32): Likewise.
9936 (vqmovuntq_s32): Likewise.
9937 (vqmovunbq_s32): Likewise.
9938 (vshlltq_n_u16): Likewise.
9939 (vshllbq_n_u16): Likewise.
9940 (vorrq_n_u32): Likewise.
9941 (vbicq_n_u32): Likewise.
9942 (vcmpneq_n_f32): Likewise.
9943 (vcmpneq_f32): Likewise.
9944 (vcmpltq_n_f32): Likewise.
9945 (vcmpltq_f32): Likewise.
9946 (vcmpleq_n_f32): Likewise.
9947 (vcmpleq_f32): Likewise.
9948 (vcmpgtq_n_f32): Likewise.
9949 (vcmpgtq_f32): Likewise.
9950 (vcmpgeq_n_f32): Likewise.
9951 (vcmpgeq_f32): Likewise.
9952 (vcmpeqq_n_f32): Likewise.
9953 (vcmpeqq_f32): Likewise.
9954 (vsubq_f32): Likewise.
9955 (vqmovntq_s32): Likewise.
9956 (vqmovnbq_s32): Likewise.
9957 (vqdmulltq_s32): Likewise.
9958 (vqdmulltq_n_s32): Likewise.
9959 (vqdmullbq_s32): Likewise.
9960 (vqdmullbq_n_s32): Likewise.
9961 (vorrq_f32): Likewise.
9962 (vornq_f32): Likewise.
9963 (vmulq_n_f32): Likewise.
9964 (vmulq_f32): Likewise.
9965 (vmovntq_s32): Likewise.
9966 (vmovnbq_s32): Likewise.
9967 (vmlsldavxq_s32): Likewise.
9968 (vmlsldavq_s32): Likewise.
9969 (vmlaldavxq_s32): Likewise.
9970 (vmlaldavq_s32): Likewise.
9971 (vminnmvq_f32): Likewise.
9972 (vminnmq_f32): Likewise.
9973 (vminnmavq_f32): Likewise.
9974 (vminnmaq_f32): Likewise.
9975 (vmaxnmvq_f32): Likewise.
9976 (vmaxnmq_f32): Likewise.
9977 (vmaxnmavq_f32): Likewise.
9978 (vmaxnmaq_f32): Likewise.
9979 (veorq_f32): Likewise.
9980 (vcmulq_rot90_f32): Likewise.
9981 (vcmulq_rot270_f32): Likewise.
9982 (vcmulq_rot180_f32): Likewise.
9983 (vcmulq_f32): Likewise.
9984 (vcaddq_rot90_f32): Likewise.
9985 (vcaddq_rot270_f32): Likewise.
9986 (vbicq_f32): Likewise.
9987 (vandq_f32): Likewise.
9988 (vaddq_n_f32): Likewise.
9989 (vabdq_f32): Likewise.
9990 (vshlltq_n_s16): Likewise.
9991 (vshllbq_n_s16): Likewise.
9992 (vorrq_n_s32): Likewise.
9993 (vbicq_n_s32): Likewise.
9994 (vrmlaldavhq_u32): Likewise.
9995 (vctp8q_m): Likewise.
9996 (vctp64q_m): Likewise.
9997 (vctp32q_m): Likewise.
9998 (vctp16q_m): Likewise.
9999 (vaddlvaq_u32): Likewise.
10000 (vrmlsldavhxq_s32): Likewise.
10001 (vrmlsldavhq_s32): Likewise.
10002 (vrmlaldavhxq_s32): Likewise.
10003 (vrmlaldavhq_s32): Likewise.
10004 (vcvttq_f16_f32): Likewise.
10005 (vcvtbq_f16_f32): Likewise.
10006 (vaddlvaq_s32): Likewise.
10007 (__arm_vqmovntq_u16): Define intrinsic.
10008 (__arm_vqmovnbq_u16): Likewise.
10009 (__arm_vmulltq_poly_p8): Likewise.
10010 (__arm_vmullbq_poly_p8): Likewise.
10011 (__arm_vmovntq_u16): Likewise.
10012 (__arm_vmovnbq_u16): Likewise.
10013 (__arm_vmlaldavxq_u16): Likewise.
10014 (__arm_vmlaldavq_u16): Likewise.
10015 (__arm_vqmovuntq_s16): Likewise.
10016 (__arm_vqmovunbq_s16): Likewise.
10017 (__arm_vshlltq_n_u8): Likewise.
10018 (__arm_vshllbq_n_u8): Likewise.
10019 (__arm_vorrq_n_u16): Likewise.
10020 (__arm_vbicq_n_u16): Likewise.
10021 (__arm_vcmpneq_n_f16): Likewise.
10022 (__arm_vcmpneq_f16): Likewise.
10023 (__arm_vcmpltq_n_f16): Likewise.
10024 (__arm_vcmpltq_f16): Likewise.
10025 (__arm_vcmpleq_n_f16): Likewise.
10026 (__arm_vcmpleq_f16): Likewise.
10027 (__arm_vcmpgtq_n_f16): Likewise.
10028 (__arm_vcmpgtq_f16): Likewise.
10029 (__arm_vcmpgeq_n_f16): Likewise.
10030 (__arm_vcmpgeq_f16): Likewise.
10031 (__arm_vcmpeqq_n_f16): Likewise.
10032 (__arm_vcmpeqq_f16): Likewise.
10033 (__arm_vsubq_f16): Likewise.
10034 (__arm_vqmovntq_s16): Likewise.
10035 (__arm_vqmovnbq_s16): Likewise.
10036 (__arm_vqdmulltq_s16): Likewise.
10037 (__arm_vqdmulltq_n_s16): Likewise.
10038 (__arm_vqdmullbq_s16): Likewise.
10039 (__arm_vqdmullbq_n_s16): Likewise.
10040 (__arm_vorrq_f16): Likewise.
10041 (__arm_vornq_f16): Likewise.
10042 (__arm_vmulq_n_f16): Likewise.
10043 (__arm_vmulq_f16): Likewise.
10044 (__arm_vmovntq_s16): Likewise.
10045 (__arm_vmovnbq_s16): Likewise.
10046 (__arm_vmlsldavxq_s16): Likewise.
10047 (__arm_vmlsldavq_s16): Likewise.
10048 (__arm_vmlaldavxq_s16): Likewise.
10049 (__arm_vmlaldavq_s16): Likewise.
10050 (__arm_vminnmvq_f16): Likewise.
10051 (__arm_vminnmq_f16): Likewise.
10052 (__arm_vminnmavq_f16): Likewise.
10053 (__arm_vminnmaq_f16): Likewise.
10054 (__arm_vmaxnmvq_f16): Likewise.
10055 (__arm_vmaxnmq_f16): Likewise.
10056 (__arm_vmaxnmavq_f16): Likewise.
10057 (__arm_vmaxnmaq_f16): Likewise.
10058 (__arm_veorq_f16): Likewise.
10059 (__arm_vcmulq_rot90_f16): Likewise.
10060 (__arm_vcmulq_rot270_f16): Likewise.
10061 (__arm_vcmulq_rot180_f16): Likewise.
10062 (__arm_vcmulq_f16): Likewise.
10063 (__arm_vcaddq_rot90_f16): Likewise.
10064 (__arm_vcaddq_rot270_f16): Likewise.
10065 (__arm_vbicq_f16): Likewise.
10066 (__arm_vandq_f16): Likewise.
10067 (__arm_vaddq_n_f16): Likewise.
10068 (__arm_vabdq_f16): Likewise.
10069 (__arm_vshlltq_n_s8): Likewise.
10070 (__arm_vshllbq_n_s8): Likewise.
10071 (__arm_vorrq_n_s16): Likewise.
10072 (__arm_vbicq_n_s16): Likewise.
10073 (__arm_vqmovntq_u32): Likewise.
10074 (__arm_vqmovnbq_u32): Likewise.
10075 (__arm_vmulltq_poly_p16): Likewise.
10076 (__arm_vmullbq_poly_p16): Likewise.
10077 (__arm_vmovntq_u32): Likewise.
10078 (__arm_vmovnbq_u32): Likewise.
10079 (__arm_vmlaldavxq_u32): Likewise.
10080 (__arm_vmlaldavq_u32): Likewise.
10081 (__arm_vqmovuntq_s32): Likewise.
10082 (__arm_vqmovunbq_s32): Likewise.
10083 (__arm_vshlltq_n_u16): Likewise.
10084 (__arm_vshllbq_n_u16): Likewise.
10085 (__arm_vorrq_n_u32): Likewise.
10086 (__arm_vbicq_n_u32): Likewise.
10087 (__arm_vcmpneq_n_f32): Likewise.
10088 (__arm_vcmpneq_f32): Likewise.
10089 (__arm_vcmpltq_n_f32): Likewise.
10090 (__arm_vcmpltq_f32): Likewise.
10091 (__arm_vcmpleq_n_f32): Likewise.
10092 (__arm_vcmpleq_f32): Likewise.
10093 (__arm_vcmpgtq_n_f32): Likewise.
10094 (__arm_vcmpgtq_f32): Likewise.
10095 (__arm_vcmpgeq_n_f32): Likewise.
10096 (__arm_vcmpgeq_f32): Likewise.
10097 (__arm_vcmpeqq_n_f32): Likewise.
10098 (__arm_vcmpeqq_f32): Likewise.
10099 (__arm_vsubq_f32): Likewise.
10100 (__arm_vqmovntq_s32): Likewise.
10101 (__arm_vqmovnbq_s32): Likewise.
10102 (__arm_vqdmulltq_s32): Likewise.
10103 (__arm_vqdmulltq_n_s32): Likewise.
10104 (__arm_vqdmullbq_s32): Likewise.
10105 (__arm_vqdmullbq_n_s32): Likewise.
10106 (__arm_vorrq_f32): Likewise.
10107 (__arm_vornq_f32): Likewise.
10108 (__arm_vmulq_n_f32): Likewise.
10109 (__arm_vmulq_f32): Likewise.
10110 (__arm_vmovntq_s32): Likewise.
10111 (__arm_vmovnbq_s32): Likewise.
10112 (__arm_vmlsldavxq_s32): Likewise.
10113 (__arm_vmlsldavq_s32): Likewise.
10114 (__arm_vmlaldavxq_s32): Likewise.
10115 (__arm_vmlaldavq_s32): Likewise.
10116 (__arm_vminnmvq_f32): Likewise.
10117 (__arm_vminnmq_f32): Likewise.
10118 (__arm_vminnmavq_f32): Likewise.
10119 (__arm_vminnmaq_f32): Likewise.
10120 (__arm_vmaxnmvq_f32): Likewise.
10121 (__arm_vmaxnmq_f32): Likewise.
10122 (__arm_vmaxnmavq_f32): Likewise.
10123 (__arm_vmaxnmaq_f32): Likewise.
10124 (__arm_veorq_f32): Likewise.
10125 (__arm_vcmulq_rot90_f32): Likewise.
10126 (__arm_vcmulq_rot270_f32): Likewise.
10127 (__arm_vcmulq_rot180_f32): Likewise.
10128 (__arm_vcmulq_f32): Likewise.
10129 (__arm_vcaddq_rot90_f32): Likewise.
10130 (__arm_vcaddq_rot270_f32): Likewise.
10131 (__arm_vbicq_f32): Likewise.
10132 (__arm_vandq_f32): Likewise.
10133 (__arm_vaddq_n_f32): Likewise.
10134 (__arm_vabdq_f32): Likewise.
10135 (__arm_vshlltq_n_s16): Likewise.
10136 (__arm_vshllbq_n_s16): Likewise.
10137 (__arm_vorrq_n_s32): Likewise.
10138 (__arm_vbicq_n_s32): Likewise.
10139 (__arm_vrmlaldavhq_u32): Likewise.
10140 (__arm_vctp8q_m): Likewise.
10141 (__arm_vctp64q_m): Likewise.
10142 (__arm_vctp32q_m): Likewise.
10143 (__arm_vctp16q_m): Likewise.
10144 (__arm_vaddlvaq_u32): Likewise.
10145 (__arm_vrmlsldavhxq_s32): Likewise.
10146 (__arm_vrmlsldavhq_s32): Likewise.
10147 (__arm_vrmlaldavhxq_s32): Likewise.
10148 (__arm_vrmlaldavhq_s32): Likewise.
10149 (__arm_vcvttq_f16_f32): Likewise.
10150 (__arm_vcvtbq_f16_f32): Likewise.
10151 (__arm_vaddlvaq_s32): Likewise.
10152 (vst4q): Define polymorphic variant.
10153 (vrndxq): Likewise.
10155 (vrndpq): Likewise.
10156 (vrndnq): Likewise.
10157 (vrndmq): Likewise.
10158 (vrndaq): Likewise.
10159 (vrev64q): Likewise.
10161 (vdupq_n): Likewise.
10163 (vrev32q): Likewise.
10164 (vcvtbq_f32): Likewise.
10165 (vcvttq_f32): Likewise.
10167 (vsubq_n): Likewise.
10168 (vbrsrq_n): Likewise.
10169 (vcvtq_n): Likewise.
10173 (vaddq_n): Likewise.
10177 (vmulq_n): Likewise.
10179 (vcaddq_rot270): Likewise.
10180 (vcmpeqq_n): Likewise.
10181 (vcmpeqq): Likewise.
10182 (vcaddq_rot90): Likewise.
10183 (vcmpgeq_n): Likewise.
10184 (vcmpgeq): Likewise.
10185 (vcmpgtq_n): Likewise.
10186 (vcmpgtq): Likewise.
10187 (vcmpgtq): Likewise.
10188 (vcmpleq_n): Likewise.
10189 (vcmpleq_n): Likewise.
10190 (vcmpleq): Likewise.
10191 (vcmpleq): Likewise.
10192 (vcmpltq_n): Likewise.
10193 (vcmpltq_n): Likewise.
10194 (vcmpltq): Likewise.
10195 (vcmpltq): Likewise.
10196 (vcmpneq_n): Likewise.
10197 (vcmpneq_n): Likewise.
10198 (vcmpneq): Likewise.
10199 (vcmpneq): Likewise.
10200 (vcmulq): Likewise.
10201 (vcmulq): Likewise.
10202 (vcmulq_rot180): Likewise.
10203 (vcmulq_rot180): Likewise.
10204 (vcmulq_rot270): Likewise.
10205 (vcmulq_rot270): Likewise.
10206 (vcmulq_rot90): Likewise.
10207 (vcmulq_rot90): Likewise.
10210 (vmaxnmaq): Likewise.
10211 (vmaxnmaq): Likewise.
10212 (vmaxnmavq): Likewise.
10213 (vmaxnmavq): Likewise.
10214 (vmaxnmq): Likewise.
10215 (vmaxnmq): Likewise.
10216 (vmaxnmvq): Likewise.
10217 (vmaxnmvq): Likewise.
10218 (vminnmaq): Likewise.
10219 (vminnmaq): Likewise.
10220 (vminnmavq): Likewise.
10221 (vminnmavq): Likewise.
10222 (vminnmq): Likewise.
10223 (vminnmq): Likewise.
10224 (vminnmvq): Likewise.
10225 (vminnmvq): Likewise.
10226 (vbicq_n): Likewise.
10227 (vqmovntq): Likewise.
10228 (vqmovntq): Likewise.
10229 (vqmovnbq): Likewise.
10230 (vqmovnbq): Likewise.
10231 (vmulltq_poly): Likewise.
10232 (vmulltq_poly): Likewise.
10233 (vmullbq_poly): Likewise.
10234 (vmullbq_poly): Likewise.
10235 (vmovntq): Likewise.
10236 (vmovntq): Likewise.
10237 (vmovnbq): Likewise.
10238 (vmovnbq): Likewise.
10239 (vmlaldavxq): Likewise.
10240 (vmlaldavxq): Likewise.
10241 (vqmovuntq): Likewise.
10242 (vqmovuntq): Likewise.
10243 (vshlltq_n): Likewise.
10244 (vshlltq_n): Likewise.
10245 (vshllbq_n): Likewise.
10246 (vshllbq_n): Likewise.
10247 (vorrq_n): Likewise.
10248 (vorrq_n): Likewise.
10249 (vmlaldavq): Likewise.
10250 (vmlaldavq): Likewise.
10251 (vqmovunbq): Likewise.
10252 (vqmovunbq): Likewise.
10253 (vqdmulltq_n): Likewise.
10254 (vqdmulltq_n): Likewise.
10255 (vqdmulltq): Likewise.
10256 (vqdmulltq): Likewise.
10257 (vqdmullbq_n): Likewise.
10258 (vqdmullbq_n): Likewise.
10259 (vqdmullbq): Likewise.
10260 (vqdmullbq): Likewise.
10261 (vaddlvaq): Likewise.
10262 (vaddlvaq): Likewise.
10263 (vrmlaldavhq): Likewise.
10264 (vrmlaldavhq): Likewise.
10265 (vrmlaldavhxq): Likewise.
10266 (vrmlaldavhxq): Likewise.
10267 (vrmlsldavhq): Likewise.
10268 (vrmlsldavhq): Likewise.
10269 (vrmlsldavhxq): Likewise.
10270 (vrmlsldavhxq): Likewise.
10271 (vmlsldavxq): Likewise.
10272 (vmlsldavxq): Likewise.
10273 (vmlsldavq): Likewise.
10274 (vmlsldavq): Likewise.
10275 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
10276 (BINOP_NONE_NONE_NONE): Likewise.
10277 (BINOP_UNONE_NONE_NONE): Likewise.
10278 (BINOP_UNONE_UNONE_IMM): Likewise.
10279 (BINOP_UNONE_UNONE_NONE): Likewise.
10280 (BINOP_UNONE_UNONE_UNONE): Likewise.
10281 * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern.
10282 (mve_vaddlvaq_<supf>v4si): Likewise.
10283 (mve_vaddq_n_f<mode>): Likewise.
10284 (mve_vandq_f<mode>): Likewise.
10285 (mve_vbicq_f<mode>): Likewise.
10286 (mve_vbicq_n_<supf><mode>): Likewise.
10287 (mve_vcaddq_rot270_f<mode>): Likewise.
10288 (mve_vcaddq_rot90_f<mode>): Likewise.
10289 (mve_vcmpeqq_f<mode>): Likewise.
10290 (mve_vcmpeqq_n_f<mode>): Likewise.
10291 (mve_vcmpgeq_f<mode>): Likewise.
10292 (mve_vcmpgeq_n_f<mode>): Likewise.
10293 (mve_vcmpgtq_f<mode>): Likewise.
10294 (mve_vcmpgtq_n_f<mode>): Likewise.
10295 (mve_vcmpleq_f<mode>): Likewise.
10296 (mve_vcmpleq_n_f<mode>): Likewise.
10297 (mve_vcmpltq_f<mode>): Likewise.
10298 (mve_vcmpltq_n_f<mode>): Likewise.
10299 (mve_vcmpneq_f<mode>): Likewise.
10300 (mve_vcmpneq_n_f<mode>): Likewise.
10301 (mve_vcmulq_f<mode>): Likewise.
10302 (mve_vcmulq_rot180_f<mode>): Likewise.
10303 (mve_vcmulq_rot270_f<mode>): Likewise.
10304 (mve_vcmulq_rot90_f<mode>): Likewise.
10305 (mve_vctp<mode1>q_mhi): Likewise.
10306 (mve_vcvtbq_f16_f32v8hf): Likewise.
10307 (mve_vcvttq_f16_f32v8hf): Likewise.
10308 (mve_veorq_f<mode>): Likewise.
10309 (mve_vmaxnmaq_f<mode>): Likewise.
10310 (mve_vmaxnmavq_f<mode>): Likewise.
10311 (mve_vmaxnmq_f<mode>): Likewise.
10312 (mve_vmaxnmvq_f<mode>): Likewise.
10313 (mve_vminnmaq_f<mode>): Likewise.
10314 (mve_vminnmavq_f<mode>): Likewise.
10315 (mve_vminnmq_f<mode>): Likewise.
10316 (mve_vminnmvq_f<mode>): Likewise.
10317 (mve_vmlaldavq_<supf><mode>): Likewise.
10318 (mve_vmlaldavxq_<supf><mode>): Likewise.
10319 (mve_vmlsldavq_s<mode>): Likewise.
10320 (mve_vmlsldavxq_s<mode>): Likewise.
10321 (mve_vmovnbq_<supf><mode>): Likewise.
10322 (mve_vmovntq_<supf><mode>): Likewise.
10323 (mve_vmulq_f<mode>): Likewise.
10324 (mve_vmulq_n_f<mode>): Likewise.
10325 (mve_vornq_f<mode>): Likewise.
10326 (mve_vorrq_f<mode>): Likewise.
10327 (mve_vorrq_n_<supf><mode>): Likewise.
10328 (mve_vqdmullbq_n_s<mode>): Likewise.
10329 (mve_vqdmullbq_s<mode>): Likewise.
10330 (mve_vqdmulltq_n_s<mode>): Likewise.
10331 (mve_vqdmulltq_s<mode>): Likewise.
10332 (mve_vqmovnbq_<supf><mode>): Likewise.
10333 (mve_vqmovntq_<supf><mode>): Likewise.
10334 (mve_vqmovunbq_s<mode>): Likewise.
10335 (mve_vqmovuntq_s<mode>): Likewise.
10336 (mve_vrmlaldavhxq_sv4si): Likewise.
10337 (mve_vrmlsldavhq_sv4si): Likewise.
10338 (mve_vrmlsldavhxq_sv4si): Likewise.
10339 (mve_vshllbq_n_<supf><mode>): Likewise.
10340 (mve_vshlltq_n_<supf><mode>): Likewise.
10341 (mve_vsubq_f<mode>): Likewise.
10342 (mve_vmulltq_poly_p<mode>): Likewise.
10343 (mve_vmullbq_poly_p<mode>): Likewise.
10344 (mve_vrmlaldavhq_<supf>v4si): Likewise.
10346 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
10347 Mihail Ionescu <mihail.ionescu@arm.com>
10348 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
10350 * config/arm/arm_mve.h (vsubq_u8): Define macro.
10351 (vsubq_n_u8): Likewise.
10352 (vrmulhq_u8): Likewise.
10353 (vrhaddq_u8): Likewise.
10354 (vqsubq_u8): Likewise.
10355 (vqsubq_n_u8): Likewise.
10356 (vqaddq_u8): Likewise.
10357 (vqaddq_n_u8): Likewise.
10358 (vorrq_u8): Likewise.
10359 (vornq_u8): Likewise.
10360 (vmulq_u8): Likewise.
10361 (vmulq_n_u8): Likewise.
10362 (vmulltq_int_u8): Likewise.
10363 (vmullbq_int_u8): Likewise.
10364 (vmulhq_u8): Likewise.
10365 (vmladavq_u8): Likewise.
10366 (vminvq_u8): Likewise.
10367 (vminq_u8): Likewise.
10368 (vmaxvq_u8): Likewise.
10369 (vmaxq_u8): Likewise.
10370 (vhsubq_u8): Likewise.
10371 (vhsubq_n_u8): Likewise.
10372 (vhaddq_u8): Likewise.
10373 (vhaddq_n_u8): Likewise.
10374 (veorq_u8): Likewise.
10375 (vcmpneq_n_u8): Likewise.
10376 (vcmphiq_u8): Likewise.
10377 (vcmphiq_n_u8): Likewise.
10378 (vcmpeqq_u8): Likewise.
10379 (vcmpeqq_n_u8): Likewise.
10380 (vcmpcsq_u8): Likewise.
10381 (vcmpcsq_n_u8): Likewise.
10382 (vcaddq_rot90_u8): Likewise.
10383 (vcaddq_rot270_u8): Likewise.
10384 (vbicq_u8): Likewise.
10385 (vandq_u8): Likewise.
10386 (vaddvq_p_u8): Likewise.
10387 (vaddvaq_u8): Likewise.
10388 (vaddq_n_u8): Likewise.
10389 (vabdq_u8): Likewise.
10390 (vshlq_r_u8): Likewise.
10391 (vrshlq_u8): Likewise.
10392 (vrshlq_n_u8): Likewise.
10393 (vqshlq_u8): Likewise.
10394 (vqshlq_r_u8): Likewise.
10395 (vqrshlq_u8): Likewise.
10396 (vqrshlq_n_u8): Likewise.
10397 (vminavq_s8): Likewise.
10398 (vminaq_s8): Likewise.
10399 (vmaxavq_s8): Likewise.
10400 (vmaxaq_s8): Likewise.
10401 (vbrsrq_n_u8): Likewise.
10402 (vshlq_n_u8): Likewise.
10403 (vrshrq_n_u8): Likewise.
10404 (vqshlq_n_u8): Likewise.
10405 (vcmpneq_n_s8): Likewise.
10406 (vcmpltq_s8): Likewise.
10407 (vcmpltq_n_s8): Likewise.
10408 (vcmpleq_s8): Likewise.
10409 (vcmpleq_n_s8): Likewise.
10410 (vcmpgtq_s8): Likewise.
10411 (vcmpgtq_n_s8): Likewise.
10412 (vcmpgeq_s8): Likewise.
10413 (vcmpgeq_n_s8): Likewise.
10414 (vcmpeqq_s8): Likewise.
10415 (vcmpeqq_n_s8): Likewise.
10416 (vqshluq_n_s8): Likewise.
10417 (vaddvq_p_s8): Likewise.
10418 (vsubq_s8): Likewise.
10419 (vsubq_n_s8): Likewise.
10420 (vshlq_r_s8): Likewise.
10421 (vrshlq_s8): Likewise.
10422 (vrshlq_n_s8): Likewise.
10423 (vrmulhq_s8): Likewise.
10424 (vrhaddq_s8): Likewise.
10425 (vqsubq_s8): Likewise.
10426 (vqsubq_n_s8): Likewise.
10427 (vqshlq_s8): Likewise.
10428 (vqshlq_r_s8): Likewise.
10429 (vqrshlq_s8): Likewise.
10430 (vqrshlq_n_s8): Likewise.
10431 (vqrdmulhq_s8): Likewise.
10432 (vqrdmulhq_n_s8): Likewise.
10433 (vqdmulhq_s8): Likewise.
10434 (vqdmulhq_n_s8): Likewise.
10435 (vqaddq_s8): Likewise.
10436 (vqaddq_n_s8): Likewise.
10437 (vorrq_s8): Likewise.
10438 (vornq_s8): Likewise.
10439 (vmulq_s8): Likewise.
10440 (vmulq_n_s8): Likewise.
10441 (vmulltq_int_s8): Likewise.
10442 (vmullbq_int_s8): Likewise.
10443 (vmulhq_s8): Likewise.
10444 (vmlsdavxq_s8): Likewise.
10445 (vmlsdavq_s8): Likewise.
10446 (vmladavxq_s8): Likewise.
10447 (vmladavq_s8): Likewise.
10448 (vminvq_s8): Likewise.
10449 (vminq_s8): Likewise.
10450 (vmaxvq_s8): Likewise.
10451 (vmaxq_s8): Likewise.
10452 (vhsubq_s8): Likewise.
10453 (vhsubq_n_s8): Likewise.
10454 (vhcaddq_rot90_s8): Likewise.
10455 (vhcaddq_rot270_s8): Likewise.
10456 (vhaddq_s8): Likewise.
10457 (vhaddq_n_s8): Likewise.
10458 (veorq_s8): Likewise.
10459 (vcaddq_rot90_s8): Likewise.
10460 (vcaddq_rot270_s8): Likewise.
10461 (vbrsrq_n_s8): Likewise.
10462 (vbicq_s8): Likewise.
10463 (vandq_s8): Likewise.
10464 (vaddvaq_s8): Likewise.
10465 (vaddq_n_s8): Likewise.
10466 (vabdq_s8): Likewise.
10467 (vshlq_n_s8): Likewise.
10468 (vrshrq_n_s8): Likewise.
10469 (vqshlq_n_s8): Likewise.
10470 (vsubq_u16): Likewise.
10471 (vsubq_n_u16): Likewise.
10472 (vrmulhq_u16): Likewise.
10473 (vrhaddq_u16): Likewise.
10474 (vqsubq_u16): Likewise.
10475 (vqsubq_n_u16): Likewise.
10476 (vqaddq_u16): Likewise.
10477 (vqaddq_n_u16): Likewise.
10478 (vorrq_u16): Likewise.
10479 (vornq_u16): Likewise.
10480 (vmulq_u16): Likewise.
10481 (vmulq_n_u16): Likewise.
10482 (vmulltq_int_u16): Likewise.
10483 (vmullbq_int_u16): Likewise.
10484 (vmulhq_u16): Likewise.
10485 (vmladavq_u16): Likewise.
10486 (vminvq_u16): Likewise.
10487 (vminq_u16): Likewise.
10488 (vmaxvq_u16): Likewise.
10489 (vmaxq_u16): Likewise.
10490 (vhsubq_u16): Likewise.
10491 (vhsubq_n_u16): Likewise.
10492 (vhaddq_u16): Likewise.
10493 (vhaddq_n_u16): Likewise.
10494 (veorq_u16): Likewise.
10495 (vcmpneq_n_u16): Likewise.
10496 (vcmphiq_u16): Likewise.
10497 (vcmphiq_n_u16): Likewise.
10498 (vcmpeqq_u16): Likewise.
10499 (vcmpeqq_n_u16): Likewise.
10500 (vcmpcsq_u16): Likewise.
10501 (vcmpcsq_n_u16): Likewise.
10502 (vcaddq_rot90_u16): Likewise.
10503 (vcaddq_rot270_u16): Likewise.
10504 (vbicq_u16): Likewise.
10505 (vandq_u16): Likewise.
10506 (vaddvq_p_u16): Likewise.
10507 (vaddvaq_u16): Likewise.
10508 (vaddq_n_u16): Likewise.
10509 (vabdq_u16): Likewise.
10510 (vshlq_r_u16): Likewise.
10511 (vrshlq_u16): Likewise.
10512 (vrshlq_n_u16): Likewise.
10513 (vqshlq_u16): Likewise.
10514 (vqshlq_r_u16): Likewise.
10515 (vqrshlq_u16): Likewise.
10516 (vqrshlq_n_u16): Likewise.
10517 (vminavq_s16): Likewise.
10518 (vminaq_s16): Likewise.
10519 (vmaxavq_s16): Likewise.
10520 (vmaxaq_s16): Likewise.
10521 (vbrsrq_n_u16): Likewise.
10522 (vshlq_n_u16): Likewise.
10523 (vrshrq_n_u16): Likewise.
10524 (vqshlq_n_u16): Likewise.
10525 (vcmpneq_n_s16): Likewise.
10526 (vcmpltq_s16): Likewise.
10527 (vcmpltq_n_s16): Likewise.
10528 (vcmpleq_s16): Likewise.
10529 (vcmpleq_n_s16): Likewise.
10530 (vcmpgtq_s16): Likewise.
10531 (vcmpgtq_n_s16): Likewise.
10532 (vcmpgeq_s16): Likewise.
10533 (vcmpgeq_n_s16): Likewise.
10534 (vcmpeqq_s16): Likewise.
10535 (vcmpeqq_n_s16): Likewise.
10536 (vqshluq_n_s16): Likewise.
10537 (vaddvq_p_s16): Likewise.
10538 (vsubq_s16): Likewise.
10539 (vsubq_n_s16): Likewise.
10540 (vshlq_r_s16): Likewise.
10541 (vrshlq_s16): Likewise.
10542 (vrshlq_n_s16): Likewise.
10543 (vrmulhq_s16): Likewise.
10544 (vrhaddq_s16): Likewise.
10545 (vqsubq_s16): Likewise.
10546 (vqsubq_n_s16): Likewise.
10547 (vqshlq_s16): Likewise.
10548 (vqshlq_r_s16): Likewise.
10549 (vqrshlq_s16): Likewise.
10550 (vqrshlq_n_s16): Likewise.
10551 (vqrdmulhq_s16): Likewise.
10552 (vqrdmulhq_n_s16): Likewise.
10553 (vqdmulhq_s16): Likewise.
10554 (vqdmulhq_n_s16): Likewise.
10555 (vqaddq_s16): Likewise.
10556 (vqaddq_n_s16): Likewise.
10557 (vorrq_s16): Likewise.
10558 (vornq_s16): Likewise.
10559 (vmulq_s16): Likewise.
10560 (vmulq_n_s16): Likewise.
10561 (vmulltq_int_s16): Likewise.
10562 (vmullbq_int_s16): Likewise.
10563 (vmulhq_s16): Likewise.
10564 (vmlsdavxq_s16): Likewise.
10565 (vmlsdavq_s16): Likewise.
10566 (vmladavxq_s16): Likewise.
10567 (vmladavq_s16): Likewise.
10568 (vminvq_s16): Likewise.
10569 (vminq_s16): Likewise.
10570 (vmaxvq_s16): Likewise.
10571 (vmaxq_s16): Likewise.
10572 (vhsubq_s16): Likewise.
10573 (vhsubq_n_s16): Likewise.
10574 (vhcaddq_rot90_s16): Likewise.
10575 (vhcaddq_rot270_s16): Likewise.
10576 (vhaddq_s16): Likewise.
10577 (vhaddq_n_s16): Likewise.
10578 (veorq_s16): Likewise.
10579 (vcaddq_rot90_s16): Likewise.
10580 (vcaddq_rot270_s16): Likewise.
10581 (vbrsrq_n_s16): Likewise.
10582 (vbicq_s16): Likewise.
10583 (vandq_s16): Likewise.
10584 (vaddvaq_s16): Likewise.
10585 (vaddq_n_s16): Likewise.
10586 (vabdq_s16): Likewise.
10587 (vshlq_n_s16): Likewise.
10588 (vrshrq_n_s16): Likewise.
10589 (vqshlq_n_s16): Likewise.
10590 (vsubq_u32): Likewise.
10591 (vsubq_n_u32): Likewise.
10592 (vrmulhq_u32): Likewise.
10593 (vrhaddq_u32): Likewise.
10594 (vqsubq_u32): Likewise.
10595 (vqsubq_n_u32): Likewise.
10596 (vqaddq_u32): Likewise.
10597 (vqaddq_n_u32): Likewise.
10598 (vorrq_u32): Likewise.
10599 (vornq_u32): Likewise.
10600 (vmulq_u32): Likewise.
10601 (vmulq_n_u32): Likewise.
10602 (vmulltq_int_u32): Likewise.
10603 (vmullbq_int_u32): Likewise.
10604 (vmulhq_u32): Likewise.
10605 (vmladavq_u32): Likewise.
10606 (vminvq_u32): Likewise.
10607 (vminq_u32): Likewise.
10608 (vmaxvq_u32): Likewise.
10609 (vmaxq_u32): Likewise.
10610 (vhsubq_u32): Likewise.
10611 (vhsubq_n_u32): Likewise.
10612 (vhaddq_u32): Likewise.
10613 (vhaddq_n_u32): Likewise.
10614 (veorq_u32): Likewise.
10615 (vcmpneq_n_u32): Likewise.
10616 (vcmphiq_u32): Likewise.
10617 (vcmphiq_n_u32): Likewise.
10618 (vcmpeqq_u32): Likewise.
10619 (vcmpeqq_n_u32): Likewise.
10620 (vcmpcsq_u32): Likewise.
10621 (vcmpcsq_n_u32): Likewise.
10622 (vcaddq_rot90_u32): Likewise.
10623 (vcaddq_rot270_u32): Likewise.
10624 (vbicq_u32): Likewise.
10625 (vandq_u32): Likewise.
10626 (vaddvq_p_u32): Likewise.
10627 (vaddvaq_u32): Likewise.
10628 (vaddq_n_u32): Likewise.
10629 (vabdq_u32): Likewise.
10630 (vshlq_r_u32): Likewise.
10631 (vrshlq_u32): Likewise.
10632 (vrshlq_n_u32): Likewise.
10633 (vqshlq_u32): Likewise.
10634 (vqshlq_r_u32): Likewise.
10635 (vqrshlq_u32): Likewise.
10636 (vqrshlq_n_u32): Likewise.
10637 (vminavq_s32): Likewise.
10638 (vminaq_s32): Likewise.
10639 (vmaxavq_s32): Likewise.
10640 (vmaxaq_s32): Likewise.
10641 (vbrsrq_n_u32): Likewise.
10642 (vshlq_n_u32): Likewise.
10643 (vrshrq_n_u32): Likewise.
10644 (vqshlq_n_u32): Likewise.
10645 (vcmpneq_n_s32): Likewise.
10646 (vcmpltq_s32): Likewise.
10647 (vcmpltq_n_s32): Likewise.
10648 (vcmpleq_s32): Likewise.
10649 (vcmpleq_n_s32): Likewise.
10650 (vcmpgtq_s32): Likewise.
10651 (vcmpgtq_n_s32): Likewise.
10652 (vcmpgeq_s32): Likewise.
10653 (vcmpgeq_n_s32): Likewise.
10654 (vcmpeqq_s32): Likewise.
10655 (vcmpeqq_n_s32): Likewise.
10656 (vqshluq_n_s32): Likewise.
10657 (vaddvq_p_s32): Likewise.
10658 (vsubq_s32): Likewise.
10659 (vsubq_n_s32): Likewise.
10660 (vshlq_r_s32): Likewise.
10661 (vrshlq_s32): Likewise.
10662 (vrshlq_n_s32): Likewise.
10663 (vrmulhq_s32): Likewise.
10664 (vrhaddq_s32): Likewise.
10665 (vqsubq_s32): Likewise.
10666 (vqsubq_n_s32): Likewise.
10667 (vqshlq_s32): Likewise.
10668 (vqshlq_r_s32): Likewise.
10669 (vqrshlq_s32): Likewise.
10670 (vqrshlq_n_s32): Likewise.
10671 (vqrdmulhq_s32): Likewise.
10672 (vqrdmulhq_n_s32): Likewise.
10673 (vqdmulhq_s32): Likewise.
10674 (vqdmulhq_n_s32): Likewise.
10675 (vqaddq_s32): Likewise.
10676 (vqaddq_n_s32): Likewise.
10677 (vorrq_s32): Likewise.
10678 (vornq_s32): Likewise.
10679 (vmulq_s32): Likewise.
10680 (vmulq_n_s32): Likewise.
10681 (vmulltq_int_s32): Likewise.
10682 (vmullbq_int_s32): Likewise.
10683 (vmulhq_s32): Likewise.
10684 (vmlsdavxq_s32): Likewise.
10685 (vmlsdavq_s32): Likewise.
10686 (vmladavxq_s32): Likewise.
10687 (vmladavq_s32): Likewise.
10688 (vminvq_s32): Likewise.
10689 (vminq_s32): Likewise.
10690 (vmaxvq_s32): Likewise.
10691 (vmaxq_s32): Likewise.
10692 (vhsubq_s32): Likewise.
10693 (vhsubq_n_s32): Likewise.
10694 (vhcaddq_rot90_s32): Likewise.
10695 (vhcaddq_rot270_s32): Likewise.
10696 (vhaddq_s32): Likewise.
10697 (vhaddq_n_s32): Likewise.
10698 (veorq_s32): Likewise.
10699 (vcaddq_rot90_s32): Likewise.
10700 (vcaddq_rot270_s32): Likewise.
10701 (vbrsrq_n_s32): Likewise.
10702 (vbicq_s32): Likewise.
10703 (vandq_s32): Likewise.
10704 (vaddvaq_s32): Likewise.
10705 (vaddq_n_s32): Likewise.
10706 (vabdq_s32): Likewise.
10707 (vshlq_n_s32): Likewise.
10708 (vrshrq_n_s32): Likewise.
10709 (vqshlq_n_s32): Likewise.
10710 (__arm_vsubq_u8): Define intrinsic.
10711 (__arm_vsubq_n_u8): Likewise.
10712 (__arm_vrmulhq_u8): Likewise.
10713 (__arm_vrhaddq_u8): Likewise.
10714 (__arm_vqsubq_u8): Likewise.
10715 (__arm_vqsubq_n_u8): Likewise.
10716 (__arm_vqaddq_u8): Likewise.
10717 (__arm_vqaddq_n_u8): Likewise.
10718 (__arm_vorrq_u8): Likewise.
10719 (__arm_vornq_u8): Likewise.
10720 (__arm_vmulq_u8): Likewise.
10721 (__arm_vmulq_n_u8): Likewise.
10722 (__arm_vmulltq_int_u8): Likewise.
10723 (__arm_vmullbq_int_u8): Likewise.
10724 (__arm_vmulhq_u8): Likewise.
10725 (__arm_vmladavq_u8): Likewise.
10726 (__arm_vminvq_u8): Likewise.
10727 (__arm_vminq_u8): Likewise.
10728 (__arm_vmaxvq_u8): Likewise.
10729 (__arm_vmaxq_u8): Likewise.
10730 (__arm_vhsubq_u8): Likewise.
10731 (__arm_vhsubq_n_u8): Likewise.
10732 (__arm_vhaddq_u8): Likewise.
10733 (__arm_vhaddq_n_u8): Likewise.
10734 (__arm_veorq_u8): Likewise.
10735 (__arm_vcmpneq_n_u8): Likewise.
10736 (__arm_vcmphiq_u8): Likewise.
10737 (__arm_vcmphiq_n_u8): Likewise.
10738 (__arm_vcmpeqq_u8): Likewise.
10739 (__arm_vcmpeqq_n_u8): Likewise.
10740 (__arm_vcmpcsq_u8): Likewise.
10741 (__arm_vcmpcsq_n_u8): Likewise.
10742 (__arm_vcaddq_rot90_u8): Likewise.
10743 (__arm_vcaddq_rot270_u8): Likewise.
10744 (__arm_vbicq_u8): Likewise.
10745 (__arm_vandq_u8): Likewise.
10746 (__arm_vaddvq_p_u8): Likewise.
10747 (__arm_vaddvaq_u8): Likewise.
10748 (__arm_vaddq_n_u8): Likewise.
10749 (__arm_vabdq_u8): Likewise.
10750 (__arm_vshlq_r_u8): Likewise.
10751 (__arm_vrshlq_u8): Likewise.
10752 (__arm_vrshlq_n_u8): Likewise.
10753 (__arm_vqshlq_u8): Likewise.
10754 (__arm_vqshlq_r_u8): Likewise.
10755 (__arm_vqrshlq_u8): Likewise.
10756 (__arm_vqrshlq_n_u8): Likewise.
10757 (__arm_vminavq_s8): Likewise.
10758 (__arm_vminaq_s8): Likewise.
10759 (__arm_vmaxavq_s8): Likewise.
10760 (__arm_vmaxaq_s8): Likewise.
10761 (__arm_vbrsrq_n_u8): Likewise.
10762 (__arm_vshlq_n_u8): Likewise.
10763 (__arm_vrshrq_n_u8): Likewise.
10764 (__arm_vqshlq_n_u8): Likewise.
10765 (__arm_vcmpneq_n_s8): Likewise.
10766 (__arm_vcmpltq_s8): Likewise.
10767 (__arm_vcmpltq_n_s8): Likewise.
10768 (__arm_vcmpleq_s8): Likewise.
10769 (__arm_vcmpleq_n_s8): Likewise.
10770 (__arm_vcmpgtq_s8): Likewise.
10771 (__arm_vcmpgtq_n_s8): Likewise.
10772 (__arm_vcmpgeq_s8): Likewise.
10773 (__arm_vcmpgeq_n_s8): Likewise.
10774 (__arm_vcmpeqq_s8): Likewise.
10775 (__arm_vcmpeqq_n_s8): Likewise.
10776 (__arm_vqshluq_n_s8): Likewise.
10777 (__arm_vaddvq_p_s8): Likewise.
10778 (__arm_vsubq_s8): Likewise.
10779 (__arm_vsubq_n_s8): Likewise.
10780 (__arm_vshlq_r_s8): Likewise.
10781 (__arm_vrshlq_s8): Likewise.
10782 (__arm_vrshlq_n_s8): Likewise.
10783 (__arm_vrmulhq_s8): Likewise.
10784 (__arm_vrhaddq_s8): Likewise.
10785 (__arm_vqsubq_s8): Likewise.
10786 (__arm_vqsubq_n_s8): Likewise.
10787 (__arm_vqshlq_s8): Likewise.
10788 (__arm_vqshlq_r_s8): Likewise.
10789 (__arm_vqrshlq_s8): Likewise.
10790 (__arm_vqrshlq_n_s8): Likewise.
10791 (__arm_vqrdmulhq_s8): Likewise.
10792 (__arm_vqrdmulhq_n_s8): Likewise.
10793 (__arm_vqdmulhq_s8): Likewise.
10794 (__arm_vqdmulhq_n_s8): Likewise.
10795 (__arm_vqaddq_s8): Likewise.
10796 (__arm_vqaddq_n_s8): Likewise.
10797 (__arm_vorrq_s8): Likewise.
10798 (__arm_vornq_s8): Likewise.
10799 (__arm_vmulq_s8): Likewise.
10800 (__arm_vmulq_n_s8): Likewise.
10801 (__arm_vmulltq_int_s8): Likewise.
10802 (__arm_vmullbq_int_s8): Likewise.
10803 (__arm_vmulhq_s8): Likewise.
10804 (__arm_vmlsdavxq_s8): Likewise.
10805 (__arm_vmlsdavq_s8): Likewise.
10806 (__arm_vmladavxq_s8): Likewise.
10807 (__arm_vmladavq_s8): Likewise.
10808 (__arm_vminvq_s8): Likewise.
10809 (__arm_vminq_s8): Likewise.
10810 (__arm_vmaxvq_s8): Likewise.
10811 (__arm_vmaxq_s8): Likewise.
10812 (__arm_vhsubq_s8): Likewise.
10813 (__arm_vhsubq_n_s8): Likewise.
10814 (__arm_vhcaddq_rot90_s8): Likewise.
10815 (__arm_vhcaddq_rot270_s8): Likewise.
10816 (__arm_vhaddq_s8): Likewise.
10817 (__arm_vhaddq_n_s8): Likewise.
10818 (__arm_veorq_s8): Likewise.
10819 (__arm_vcaddq_rot90_s8): Likewise.
10820 (__arm_vcaddq_rot270_s8): Likewise.
10821 (__arm_vbrsrq_n_s8): Likewise.
10822 (__arm_vbicq_s8): Likewise.
10823 (__arm_vandq_s8): Likewise.
10824 (__arm_vaddvaq_s8): Likewise.
10825 (__arm_vaddq_n_s8): Likewise.
10826 (__arm_vabdq_s8): Likewise.
10827 (__arm_vshlq_n_s8): Likewise.
10828 (__arm_vrshrq_n_s8): Likewise.
10829 (__arm_vqshlq_n_s8): Likewise.
10830 (__arm_vsubq_u16): Likewise.
10831 (__arm_vsubq_n_u16): Likewise.
10832 (__arm_vrmulhq_u16): Likewise.
10833 (__arm_vrhaddq_u16): Likewise.
10834 (__arm_vqsubq_u16): Likewise.
10835 (__arm_vqsubq_n_u16): Likewise.
10836 (__arm_vqaddq_u16): Likewise.
10837 (__arm_vqaddq_n_u16): Likewise.
10838 (__arm_vorrq_u16): Likewise.
10839 (__arm_vornq_u16): Likewise.
10840 (__arm_vmulq_u16): Likewise.
10841 (__arm_vmulq_n_u16): Likewise.
10842 (__arm_vmulltq_int_u16): Likewise.
10843 (__arm_vmullbq_int_u16): Likewise.
10844 (__arm_vmulhq_u16): Likewise.
10845 (__arm_vmladavq_u16): Likewise.
10846 (__arm_vminvq_u16): Likewise.
10847 (__arm_vminq_u16): Likewise.
10848 (__arm_vmaxvq_u16): Likewise.
10849 (__arm_vmaxq_u16): Likewise.
10850 (__arm_vhsubq_u16): Likewise.
10851 (__arm_vhsubq_n_u16): Likewise.
10852 (__arm_vhaddq_u16): Likewise.
10853 (__arm_vhaddq_n_u16): Likewise.
10854 (__arm_veorq_u16): Likewise.
10855 (__arm_vcmpneq_n_u16): Likewise.
10856 (__arm_vcmphiq_u16): Likewise.
10857 (__arm_vcmphiq_n_u16): Likewise.
10858 (__arm_vcmpeqq_u16): Likewise.
10859 (__arm_vcmpeqq_n_u16): Likewise.
10860 (__arm_vcmpcsq_u16): Likewise.
10861 (__arm_vcmpcsq_n_u16): Likewise.
10862 (__arm_vcaddq_rot90_u16): Likewise.
10863 (__arm_vcaddq_rot270_u16): Likewise.
10864 (__arm_vbicq_u16): Likewise.
10865 (__arm_vandq_u16): Likewise.
10866 (__arm_vaddvq_p_u16): Likewise.
10867 (__arm_vaddvaq_u16): Likewise.
10868 (__arm_vaddq_n_u16): Likewise.
10869 (__arm_vabdq_u16): Likewise.
10870 (__arm_vshlq_r_u16): Likewise.
10871 (__arm_vrshlq_u16): Likewise.
10872 (__arm_vrshlq_n_u16): Likewise.
10873 (__arm_vqshlq_u16): Likewise.
10874 (__arm_vqshlq_r_u16): Likewise.
10875 (__arm_vqrshlq_u16): Likewise.
10876 (__arm_vqrshlq_n_u16): Likewise.
10877 (__arm_vminavq_s16): Likewise.
10878 (__arm_vminaq_s16): Likewise.
10879 (__arm_vmaxavq_s16): Likewise.
10880 (__arm_vmaxaq_s16): Likewise.
10881 (__arm_vbrsrq_n_u16): Likewise.
10882 (__arm_vshlq_n_u16): Likewise.
10883 (__arm_vrshrq_n_u16): Likewise.
10884 (__arm_vqshlq_n_u16): Likewise.
10885 (__arm_vcmpneq_n_s16): Likewise.
10886 (__arm_vcmpltq_s16): Likewise.
10887 (__arm_vcmpltq_n_s16): Likewise.
10888 (__arm_vcmpleq_s16): Likewise.
10889 (__arm_vcmpleq_n_s16): Likewise.
10890 (__arm_vcmpgtq_s16): Likewise.
10891 (__arm_vcmpgtq_n_s16): Likewise.
10892 (__arm_vcmpgeq_s16): Likewise.
10893 (__arm_vcmpgeq_n_s16): Likewise.
10894 (__arm_vcmpeqq_s16): Likewise.
10895 (__arm_vcmpeqq_n_s16): Likewise.
10896 (__arm_vqshluq_n_s16): Likewise.
10897 (__arm_vaddvq_p_s16): Likewise.
10898 (__arm_vsubq_s16): Likewise.
10899 (__arm_vsubq_n_s16): Likewise.
10900 (__arm_vshlq_r_s16): Likewise.
10901 (__arm_vrshlq_s16): Likewise.
10902 (__arm_vrshlq_n_s16): Likewise.
10903 (__arm_vrmulhq_s16): Likewise.
10904 (__arm_vrhaddq_s16): Likewise.
10905 (__arm_vqsubq_s16): Likewise.
10906 (__arm_vqsubq_n_s16): Likewise.
10907 (__arm_vqshlq_s16): Likewise.
10908 (__arm_vqshlq_r_s16): Likewise.
10909 (__arm_vqrshlq_s16): Likewise.
10910 (__arm_vqrshlq_n_s16): Likewise.
10911 (__arm_vqrdmulhq_s16): Likewise.
10912 (__arm_vqrdmulhq_n_s16): Likewise.
10913 (__arm_vqdmulhq_s16): Likewise.
10914 (__arm_vqdmulhq_n_s16): Likewise.
10915 (__arm_vqaddq_s16): Likewise.
10916 (__arm_vqaddq_n_s16): Likewise.
10917 (__arm_vorrq_s16): Likewise.
10918 (__arm_vornq_s16): Likewise.
10919 (__arm_vmulq_s16): Likewise.
10920 (__arm_vmulq_n_s16): Likewise.
10921 (__arm_vmulltq_int_s16): Likewise.
10922 (__arm_vmullbq_int_s16): Likewise.
10923 (__arm_vmulhq_s16): Likewise.
10924 (__arm_vmlsdavxq_s16): Likewise.
10925 (__arm_vmlsdavq_s16): Likewise.
10926 (__arm_vmladavxq_s16): Likewise.
10927 (__arm_vmladavq_s16): Likewise.
10928 (__arm_vminvq_s16): Likewise.
10929 (__arm_vminq_s16): Likewise.
10930 (__arm_vmaxvq_s16): Likewise.
10931 (__arm_vmaxq_s16): Likewise.
10932 (__arm_vhsubq_s16): Likewise.
10933 (__arm_vhsubq_n_s16): Likewise.
10934 (__arm_vhcaddq_rot90_s16): Likewise.
10935 (__arm_vhcaddq_rot270_s16): Likewise.
10936 (__arm_vhaddq_s16): Likewise.
10937 (__arm_vhaddq_n_s16): Likewise.
10938 (__arm_veorq_s16): Likewise.
10939 (__arm_vcaddq_rot90_s16): Likewise.
10940 (__arm_vcaddq_rot270_s16): Likewise.
10941 (__arm_vbrsrq_n_s16): Likewise.
10942 (__arm_vbicq_s16): Likewise.
10943 (__arm_vandq_s16): Likewise.
10944 (__arm_vaddvaq_s16): Likewise.
10945 (__arm_vaddq_n_s16): Likewise.
10946 (__arm_vabdq_s16): Likewise.
10947 (__arm_vshlq_n_s16): Likewise.
10948 (__arm_vrshrq_n_s16): Likewise.
10949 (__arm_vqshlq_n_s16): Likewise.
10950 (__arm_vsubq_u32): Likewise.
10951 (__arm_vsubq_n_u32): Likewise.
10952 (__arm_vrmulhq_u32): Likewise.
10953 (__arm_vrhaddq_u32): Likewise.
10954 (__arm_vqsubq_u32): Likewise.
10955 (__arm_vqsubq_n_u32): Likewise.
10956 (__arm_vqaddq_u32): Likewise.
10957 (__arm_vqaddq_n_u32): Likewise.
10958 (__arm_vorrq_u32): Likewise.
10959 (__arm_vornq_u32): Likewise.
10960 (__arm_vmulq_u32): Likewise.
10961 (__arm_vmulq_n_u32): Likewise.
10962 (__arm_vmulltq_int_u32): Likewise.
10963 (__arm_vmullbq_int_u32): Likewise.
10964 (__arm_vmulhq_u32): Likewise.
10965 (__arm_vmladavq_u32): Likewise.
10966 (__arm_vminvq_u32): Likewise.
10967 (__arm_vminq_u32): Likewise.
10968 (__arm_vmaxvq_u32): Likewise.
10969 (__arm_vmaxq_u32): Likewise.
10970 (__arm_vhsubq_u32): Likewise.
10971 (__arm_vhsubq_n_u32): Likewise.
10972 (__arm_vhaddq_u32): Likewise.
10973 (__arm_vhaddq_n_u32): Likewise.
10974 (__arm_veorq_u32): Likewise.
10975 (__arm_vcmpneq_n_u32): Likewise.
10976 (__arm_vcmphiq_u32): Likewise.
10977 (__arm_vcmphiq_n_u32): Likewise.
10978 (__arm_vcmpeqq_u32): Likewise.
10979 (__arm_vcmpeqq_n_u32): Likewise.
10980 (__arm_vcmpcsq_u32): Likewise.
10981 (__arm_vcmpcsq_n_u32): Likewise.
10982 (__arm_vcaddq_rot90_u32): Likewise.
10983 (__arm_vcaddq_rot270_u32): Likewise.
10984 (__arm_vbicq_u32): Likewise.
10985 (__arm_vandq_u32): Likewise.
10986 (__arm_vaddvq_p_u32): Likewise.
10987 (__arm_vaddvaq_u32): Likewise.
10988 (__arm_vaddq_n_u32): Likewise.
10989 (__arm_vabdq_u32): Likewise.
10990 (__arm_vshlq_r_u32): Likewise.
10991 (__arm_vrshlq_u32): Likewise.
10992 (__arm_vrshlq_n_u32): Likewise.
10993 (__arm_vqshlq_u32): Likewise.
10994 (__arm_vqshlq_r_u32): Likewise.
10995 (__arm_vqrshlq_u32): Likewise.
10996 (__arm_vqrshlq_n_u32): Likewise.
10997 (__arm_vminavq_s32): Likewise.
10998 (__arm_vminaq_s32): Likewise.
10999 (__arm_vmaxavq_s32): Likewise.
11000 (__arm_vmaxaq_s32): Likewise.
11001 (__arm_vbrsrq_n_u32): Likewise.
11002 (__arm_vshlq_n_u32): Likewise.
11003 (__arm_vrshrq_n_u32): Likewise.
11004 (__arm_vqshlq_n_u32): Likewise.
11005 (__arm_vcmpneq_n_s32): Likewise.
11006 (__arm_vcmpltq_s32): Likewise.
11007 (__arm_vcmpltq_n_s32): Likewise.
11008 (__arm_vcmpleq_s32): Likewise.
11009 (__arm_vcmpleq_n_s32): Likewise.
11010 (__arm_vcmpgtq_s32): Likewise.
11011 (__arm_vcmpgtq_n_s32): Likewise.
11012 (__arm_vcmpgeq_s32): Likewise.
11013 (__arm_vcmpgeq_n_s32): Likewise.
11014 (__arm_vcmpeqq_s32): Likewise.
11015 (__arm_vcmpeqq_n_s32): Likewise.
11016 (__arm_vqshluq_n_s32): Likewise.
11017 (__arm_vaddvq_p_s32): Likewise.
11018 (__arm_vsubq_s32): Likewise.
11019 (__arm_vsubq_n_s32): Likewise.
11020 (__arm_vshlq_r_s32): Likewise.
11021 (__arm_vrshlq_s32): Likewise.
11022 (__arm_vrshlq_n_s32): Likewise.
11023 (__arm_vrmulhq_s32): Likewise.
11024 (__arm_vrhaddq_s32): Likewise.
11025 (__arm_vqsubq_s32): Likewise.
11026 (__arm_vqsubq_n_s32): Likewise.
11027 (__arm_vqshlq_s32): Likewise.
11028 (__arm_vqshlq_r_s32): Likewise.
11029 (__arm_vqrshlq_s32): Likewise.
11030 (__arm_vqrshlq_n_s32): Likewise.
11031 (__arm_vqrdmulhq_s32): Likewise.
11032 (__arm_vqrdmulhq_n_s32): Likewise.
11033 (__arm_vqdmulhq_s32): Likewise.
11034 (__arm_vqdmulhq_n_s32): Likewise.
11035 (__arm_vqaddq_s32): Likewise.
11036 (__arm_vqaddq_n_s32): Likewise.
11037 (__arm_vorrq_s32): Likewise.
11038 (__arm_vornq_s32): Likewise.
11039 (__arm_vmulq_s32): Likewise.
11040 (__arm_vmulq_n_s32): Likewise.
11041 (__arm_vmulltq_int_s32): Likewise.
11042 (__arm_vmullbq_int_s32): Likewise.
11043 (__arm_vmulhq_s32): Likewise.
11044 (__arm_vmlsdavxq_s32): Likewise.
11045 (__arm_vmlsdavq_s32): Likewise.
11046 (__arm_vmladavxq_s32): Likewise.
11047 (__arm_vmladavq_s32): Likewise.
11048 (__arm_vminvq_s32): Likewise.
11049 (__arm_vminq_s32): Likewise.
11050 (__arm_vmaxvq_s32): Likewise.
11051 (__arm_vmaxq_s32): Likewise.
11052 (__arm_vhsubq_s32): Likewise.
11053 (__arm_vhsubq_n_s32): Likewise.
11054 (__arm_vhcaddq_rot90_s32): Likewise.
11055 (__arm_vhcaddq_rot270_s32): Likewise.
11056 (__arm_vhaddq_s32): Likewise.
11057 (__arm_vhaddq_n_s32): Likewise.
11058 (__arm_veorq_s32): Likewise.
11059 (__arm_vcaddq_rot90_s32): Likewise.
11060 (__arm_vcaddq_rot270_s32): Likewise.
11061 (__arm_vbrsrq_n_s32): Likewise.
11062 (__arm_vbicq_s32): Likewise.
11063 (__arm_vandq_s32): Likewise.
11064 (__arm_vaddvaq_s32): Likewise.
11065 (__arm_vaddq_n_s32): Likewise.
11066 (__arm_vabdq_s32): Likewise.
11067 (__arm_vshlq_n_s32): Likewise.
11068 (__arm_vrshrq_n_s32): Likewise.
11069 (__arm_vqshlq_n_s32): Likewise.
11070 (vsubq): Define polymorphic variant.
11071 (vsubq_n): Likewise.
11072 (vshlq_r): Likewise.
11073 (vrshlq_n): Likewise.
11074 (vrshlq): Likewise.
11075 (vrmulhq): Likewise.
11076 (vrhaddq): Likewise.
11077 (vqsubq_n): Likewise.
11078 (vqsubq): Likewise.
11079 (vqshlq): Likewise.
11080 (vqshlq_r): Likewise.
11081 (vqshluq): Likewise.
11082 (vrshrq_n): Likewise.
11083 (vshlq_n): Likewise.
11084 (vqshluq_n): Likewise.
11085 (vqshlq_n): Likewise.
11086 (vqrshlq_n): Likewise.
11087 (vqrshlq): Likewise.
11088 (vqrdmulhq_n): Likewise.
11089 (vqrdmulhq): Likewise.
11090 (vqdmulhq_n): Likewise.
11091 (vqdmulhq): Likewise.
11092 (vqaddq_n): Likewise.
11093 (vqaddq): Likewise.
11094 (vorrq_n): Likewise.
11097 (vmulq_n): Likewise.
11099 (vmulltq_int): Likewise.
11100 (vmullbq_int): Likewise.
11101 (vmulhq): Likewise.
11103 (vminaq): Likewise.
11105 (vmaxaq): Likewise.
11106 (vhsubq_n): Likewise.
11107 (vhsubq): Likewise.
11108 (vhcaddq_rot90): Likewise.
11109 (vhcaddq_rot270): Likewise.
11110 (vhaddq_n): Likewise.
11111 (vhaddq): Likewise.
11113 (vcaddq_rot90): Likewise.
11114 (vcaddq_rot270): Likewise.
11115 (vbrsrq_n): Likewise.
11116 (vbicq_n): Likewise.
11119 (vaddq_n): Likewise.
11122 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
11123 (BINOP_NONE_NONE_NONE): Likewise.
11124 (BINOP_NONE_NONE_UNONE): Likewise.
11125 (BINOP_UNONE_NONE_IMM): Likewise.
11126 (BINOP_UNONE_NONE_NONE): Likewise.
11127 (BINOP_UNONE_UNONE_IMM): Likewise.
11128 (BINOP_UNONE_UNONE_NONE): Likewise.
11129 (BINOP_UNONE_UNONE_UNONE): Likewise.
11130 * config/arm/constraints.md (Ra): Define constraint to check constant is
11131 in the range of 0 to 7.
11132 (Rg): Define constriant to check the constant is one among 1, 2, 4
11134 * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern.
11135 (mve_vaddq_n_<supf>): Likewise.
11136 (mve_vaddvaq_<supf>): Likewise.
11137 (mve_vaddvq_p_<supf>): Likewise.
11138 (mve_vandq_<supf>): Likewise.
11139 (mve_vbicq_<supf>): Likewise.
11140 (mve_vbrsrq_n_<supf>): Likewise.
11141 (mve_vcaddq_rot270_<supf>): Likewise.
11142 (mve_vcaddq_rot90_<supf>): Likewise.
11143 (mve_vcmpcsq_n_u): Likewise.
11144 (mve_vcmpcsq_u): Likewise.
11145 (mve_vcmpeqq_n_<supf>): Likewise.
11146 (mve_vcmpeqq_<supf>): Likewise.
11147 (mve_vcmpgeq_n_s): Likewise.
11148 (mve_vcmpgeq_s): Likewise.
11149 (mve_vcmpgtq_n_s): Likewise.
11150 (mve_vcmpgtq_s): Likewise.
11151 (mve_vcmphiq_n_u): Likewise.
11152 (mve_vcmphiq_u): Likewise.
11153 (mve_vcmpleq_n_s): Likewise.
11154 (mve_vcmpleq_s): Likewise.
11155 (mve_vcmpltq_n_s): Likewise.
11156 (mve_vcmpltq_s): Likewise.
11157 (mve_vcmpneq_n_<supf>): Likewise.
11158 (mve_vddupq_n_u): Likewise.
11159 (mve_veorq_<supf>): Likewise.
11160 (mve_vhaddq_n_<supf>): Likewise.
11161 (mve_vhaddq_<supf>): Likewise.
11162 (mve_vhcaddq_rot270_s): Likewise.
11163 (mve_vhcaddq_rot90_s): Likewise.
11164 (mve_vhsubq_n_<supf>): Likewise.
11165 (mve_vhsubq_<supf>): Likewise.
11166 (mve_vidupq_n_u): Likewise.
11167 (mve_vmaxaq_s): Likewise.
11168 (mve_vmaxavq_s): Likewise.
11169 (mve_vmaxq_<supf>): Likewise.
11170 (mve_vmaxvq_<supf>): Likewise.
11171 (mve_vminaq_s): Likewise.
11172 (mve_vminavq_s): Likewise.
11173 (mve_vminq_<supf>): Likewise.
11174 (mve_vminvq_<supf>): Likewise.
11175 (mve_vmladavq_<supf>): Likewise.
11176 (mve_vmladavxq_s): Likewise.
11177 (mve_vmlsdavq_s): Likewise.
11178 (mve_vmlsdavxq_s): Likewise.
11179 (mve_vmulhq_<supf>): Likewise.
11180 (mve_vmullbq_int_<supf>): Likewise.
11181 (mve_vmulltq_int_<supf>): Likewise.
11182 (mve_vmulq_n_<supf>): Likewise.
11183 (mve_vmulq_<supf>): Likewise.
11184 (mve_vornq_<supf>): Likewise.
11185 (mve_vorrq_<supf>): Likewise.
11186 (mve_vqaddq_n_<supf>): Likewise.
11187 (mve_vqaddq_<supf>): Likewise.
11188 (mve_vqdmulhq_n_s): Likewise.
11189 (mve_vqdmulhq_s): Likewise.
11190 (mve_vqrdmulhq_n_s): Likewise.
11191 (mve_vqrdmulhq_s): Likewise.
11192 (mve_vqrshlq_n_<supf>): Likewise.
11193 (mve_vqrshlq_<supf>): Likewise.
11194 (mve_vqshlq_n_<supf>): Likewise.
11195 (mve_vqshlq_r_<supf>): Likewise.
11196 (mve_vqshlq_<supf>): Likewise.
11197 (mve_vqshluq_n_s): Likewise.
11198 (mve_vqsubq_n_<supf>): Likewise.
11199 (mve_vqsubq_<supf>): Likewise.
11200 (mve_vrhaddq_<supf>): Likewise.
11201 (mve_vrmulhq_<supf>): Likewise.
11202 (mve_vrshlq_n_<supf>): Likewise.
11203 (mve_vrshlq_<supf>): Likewise.
11204 (mve_vrshrq_n_<supf>): Likewise.
11205 (mve_vshlq_n_<supf>): Likewise.
11206 (mve_vshlq_r_<supf>): Likewise.
11207 (mve_vsubq_n_<supf>): Likewise.
11208 (mve_vsubq_<supf>): Likewise.
11209 * config/arm/predicates.md (mve_imm_7): Define predicate to check
11210 the matching constraint Ra.
11211 (mve_imm_selective_upto_8): Define predicate to check the matching
11214 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11215 Mihail Ionescu <mihail.ionescu@arm.com>
11216 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11218 * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define
11219 qualifier for binary operands.
11220 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
11221 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
11222 * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro.
11223 (vaddlvq_p_u32): Likewise.
11224 (vcmpneq_s8): Likewise.
11225 (vcmpneq_s16): Likewise.
11226 (vcmpneq_s32): Likewise.
11227 (vcmpneq_u8): Likewise.
11228 (vcmpneq_u16): Likewise.
11229 (vcmpneq_u32): Likewise.
11230 (vshlq_s8): Likewise.
11231 (vshlq_s16): Likewise.
11232 (vshlq_s32): Likewise.
11233 (vshlq_u8): Likewise.
11234 (vshlq_u16): Likewise.
11235 (vshlq_u32): Likewise.
11236 (__arm_vaddlvq_p_s32): Define intrinsic.
11237 (__arm_vaddlvq_p_u32): Likewise.
11238 (__arm_vcmpneq_s8): Likewise.
11239 (__arm_vcmpneq_s16): Likewise.
11240 (__arm_vcmpneq_s32): Likewise.
11241 (__arm_vcmpneq_u8): Likewise.
11242 (__arm_vcmpneq_u16): Likewise.
11243 (__arm_vcmpneq_u32): Likewise.
11244 (__arm_vshlq_s8): Likewise.
11245 (__arm_vshlq_s16): Likewise.
11246 (__arm_vshlq_s32): Likewise.
11247 (__arm_vshlq_u8): Likewise.
11248 (__arm_vshlq_u16): Likewise.
11249 (__arm_vshlq_u32): Likewise.
11250 (vaddlvq_p): Define polymorphic variant.
11251 (vcmpneq): Likewise.
11253 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS):
11255 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
11256 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
11257 * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern.
11258 (mve_vcmpneq_<supf><mode>): Likewise.
11259 (mve_vshlq_<supf><mode>): Likewise.
11261 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11262 Mihail Ionescu <mihail.ionescu@arm.com>
11263 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11265 * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define
11266 qualifier for binary operands.
11267 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
11268 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
11269 * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro.
11270 (vcvtq_n_s32_f32): Likewise.
11271 (vcvtq_n_u16_f16): Likewise.
11272 (vcvtq_n_u32_f32): Likewise.
11273 (vcreateq_u8): Likewise.
11274 (vcreateq_u16): Likewise.
11275 (vcreateq_u32): Likewise.
11276 (vcreateq_u64): Likewise.
11277 (vcreateq_s8): Likewise.
11278 (vcreateq_s16): Likewise.
11279 (vcreateq_s32): Likewise.
11280 (vcreateq_s64): Likewise.
11281 (vshrq_n_s8): Likewise.
11282 (vshrq_n_s16): Likewise.
11283 (vshrq_n_s32): Likewise.
11284 (vshrq_n_u8): Likewise.
11285 (vshrq_n_u16): Likewise.
11286 (vshrq_n_u32): Likewise.
11287 (__arm_vcreateq_u8): Define intrinsic.
11288 (__arm_vcreateq_u16): Likewise.
11289 (__arm_vcreateq_u32): Likewise.
11290 (__arm_vcreateq_u64): Likewise.
11291 (__arm_vcreateq_s8): Likewise.
11292 (__arm_vcreateq_s16): Likewise.
11293 (__arm_vcreateq_s32): Likewise.
11294 (__arm_vcreateq_s64): Likewise.
11295 (__arm_vshrq_n_s8): Likewise.
11296 (__arm_vshrq_n_s16): Likewise.
11297 (__arm_vshrq_n_s32): Likewise.
11298 (__arm_vshrq_n_u8): Likewise.
11299 (__arm_vshrq_n_u16): Likewise.
11300 (__arm_vshrq_n_u32): Likewise.
11301 (__arm_vcvtq_n_s16_f16): Likewise.
11302 (__arm_vcvtq_n_s32_f32): Likewise.
11303 (__arm_vcvtq_n_u16_f16): Likewise.
11304 (__arm_vcvtq_n_u32_f32): Likewise.
11305 (vshrq_n): Define polymorphic variant.
11306 * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS):
11308 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
11309 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
11310 * config/arm/constraints.md (Rb): Define constraint to check constant is
11311 in the range of 1 to 8.
11312 (Rf): Define constraint to check constant is in the range of 1 to 32.
11313 * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern.
11314 (mve_vshrq_n_<supf><mode>): Likewise.
11315 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
11316 * config/arm/predicates.md (mve_imm_8): Define predicate to check
11317 the matching constraint Rb.
11318 (mve_imm_32): Define predicate to check the matching constraint Rf.
11320 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11321 Mihail Ionescu <mihail.ionescu@arm.com>
11322 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11324 * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define
11325 qualifier for binary operands.
11326 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
11327 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
11328 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
11329 * config/arm/arm_mve.h (vsubq_n_f16): Define macro.
11330 (vsubq_n_f32): Likewise.
11331 (vbrsrq_n_f16): Likewise.
11332 (vbrsrq_n_f32): Likewise.
11333 (vcvtq_n_f16_s16): Likewise.
11334 (vcvtq_n_f32_s32): Likewise.
11335 (vcvtq_n_f16_u16): Likewise.
11336 (vcvtq_n_f32_u32): Likewise.
11337 (vcreateq_f16): Likewise.
11338 (vcreateq_f32): Likewise.
11339 (__arm_vsubq_n_f16): Define intrinsic.
11340 (__arm_vsubq_n_f32): Likewise.
11341 (__arm_vbrsrq_n_f16): Likewise.
11342 (__arm_vbrsrq_n_f32): Likewise.
11343 (__arm_vcvtq_n_f16_s16): Likewise.
11344 (__arm_vcvtq_n_f32_s32): Likewise.
11345 (__arm_vcvtq_n_f16_u16): Likewise.
11346 (__arm_vcvtq_n_f32_u32): Likewise.
11347 (__arm_vcreateq_f16): Likewise.
11348 (__arm_vcreateq_f32): Likewise.
11349 (vsubq): Define polymorphic variant.
11350 (vbrsrq): Likewise.
11351 (vcvtq_n): Likewise.
11352 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use
11354 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
11355 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
11356 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
11357 * config/arm/constraints.md (Rd): Define constraint to check constant is
11358 in the range of 1 to 16.
11359 * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern.
11360 mve_vbrsrq_n_f<mode>: Likewise.
11361 mve_vcvtq_n_to_f_<supf><mode>: Likewise.
11362 mve_vcreateq_f<mode>: Likewise.
11363 * config/arm/predicates.md (mve_imm_16): Define predicate to check
11364 the matching constraint Rd.
11366 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11367 Mihail Ionescu <mihail.ionescu@arm.com>
11368 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11370 * config/arm/arm-builtins.c (hi_UP): Define mode.
11371 * config/arm/arm.h (IS_VPR_REGNUM): Move.
11372 * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM.
11373 (APSRQ_REGNUM): Modify.
11374 (APSRGE_REGNUM): Modify.
11375 * config/arm/arm_mve.h (vctp16q): Define macro.
11376 (vctp32q): Likewise.
11377 (vctp64q): Likewise.
11378 (vctp8q): Likewise.
11380 (__arm_vctp16q): Define intrinsic.
11381 (__arm_vctp32q): Likewise.
11382 (__arm_vctp64q): Likewise.
11383 (__arm_vctp8q): Likewise.
11384 (__arm_vpnot): Likewise.
11385 * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin
11387 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern.
11388 (mve_vpnothi): Likewise.
11390 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11391 Mihail Ionescu <mihail.ionescu@arm.com>
11392 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11394 * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS.
11395 * config/arm/arm_mve.h (vdupq_n_s8): Define macro.
11396 (vdupq_n_s16): Likewise.
11397 (vdupq_n_s32): Likewise.
11398 (vabsq_s8): Likewise.
11399 (vabsq_s16): Likewise.
11400 (vabsq_s32): Likewise.
11401 (vclsq_s8): Likewise.
11402 (vclsq_s16): Likewise.
11403 (vclsq_s32): Likewise.
11404 (vclzq_s8): Likewise.
11405 (vclzq_s16): Likewise.
11406 (vclzq_s32): Likewise.
11407 (vnegq_s8): Likewise.
11408 (vnegq_s16): Likewise.
11409 (vnegq_s32): Likewise.
11410 (vaddlvq_s32): Likewise.
11411 (vaddvq_s8): Likewise.
11412 (vaddvq_s16): Likewise.
11413 (vaddvq_s32): Likewise.
11414 (vmovlbq_s8): Likewise.
11415 (vmovlbq_s16): Likewise.
11416 (vmovltq_s8): Likewise.
11417 (vmovltq_s16): Likewise.
11418 (vmvnq_s8): Likewise.
11419 (vmvnq_s16): Likewise.
11420 (vmvnq_s32): Likewise.
11421 (vrev16q_s8): Likewise.
11422 (vrev32q_s8): Likewise.
11423 (vrev32q_s16): Likewise.
11424 (vqabsq_s8): Likewise.
11425 (vqabsq_s16): Likewise.
11426 (vqabsq_s32): Likewise.
11427 (vqnegq_s8): Likewise.
11428 (vqnegq_s16): Likewise.
11429 (vqnegq_s32): Likewise.
11430 (vcvtaq_s16_f16): Likewise.
11431 (vcvtaq_s32_f32): Likewise.
11432 (vcvtnq_s16_f16): Likewise.
11433 (vcvtnq_s32_f32): Likewise.
11434 (vcvtpq_s16_f16): Likewise.
11435 (vcvtpq_s32_f32): Likewise.
11436 (vcvtmq_s16_f16): Likewise.
11437 (vcvtmq_s32_f32): Likewise.
11438 (vmvnq_u8): Likewise.
11439 (vmvnq_u16): Likewise.
11440 (vmvnq_u32): Likewise.
11441 (vdupq_n_u8): Likewise.
11442 (vdupq_n_u16): Likewise.
11443 (vdupq_n_u32): Likewise.
11444 (vclzq_u8): Likewise.
11445 (vclzq_u16): Likewise.
11446 (vclzq_u32): Likewise.
11447 (vaddvq_u8): Likewise.
11448 (vaddvq_u16): Likewise.
11449 (vaddvq_u32): Likewise.
11450 (vrev32q_u8): Likewise.
11451 (vrev32q_u16): Likewise.
11452 (vmovltq_u8): Likewise.
11453 (vmovltq_u16): Likewise.
11454 (vmovlbq_u8): Likewise.
11455 (vmovlbq_u16): Likewise.
11456 (vrev16q_u8): Likewise.
11457 (vaddlvq_u32): Likewise.
11458 (vcvtpq_u16_f16): Likewise.
11459 (vcvtpq_u32_f32): Likewise.
11460 (vcvtnq_u16_f16): Likewise.
11461 (vcvtmq_u16_f16): Likewise.
11462 (vcvtmq_u32_f32): Likewise.
11463 (vcvtaq_u16_f16): Likewise.
11464 (vcvtaq_u32_f32): Likewise.
11465 (__arm_vdupq_n_s8): Define intrinsic.
11466 (__arm_vdupq_n_s16): Likewise.
11467 (__arm_vdupq_n_s32): Likewise.
11468 (__arm_vabsq_s8): Likewise.
11469 (__arm_vabsq_s16): Likewise.
11470 (__arm_vabsq_s32): Likewise.
11471 (__arm_vclsq_s8): Likewise.
11472 (__arm_vclsq_s16): Likewise.
11473 (__arm_vclsq_s32): Likewise.
11474 (__arm_vclzq_s8): Likewise.
11475 (__arm_vclzq_s16): Likewise.
11476 (__arm_vclzq_s32): Likewise.
11477 (__arm_vnegq_s8): Likewise.
11478 (__arm_vnegq_s16): Likewise.
11479 (__arm_vnegq_s32): Likewise.
11480 (__arm_vaddlvq_s32): Likewise.
11481 (__arm_vaddvq_s8): Likewise.
11482 (__arm_vaddvq_s16): Likewise.
11483 (__arm_vaddvq_s32): Likewise.
11484 (__arm_vmovlbq_s8): Likewise.
11485 (__arm_vmovlbq_s16): Likewise.
11486 (__arm_vmovltq_s8): Likewise.
11487 (__arm_vmovltq_s16): Likewise.
11488 (__arm_vmvnq_s8): Likewise.
11489 (__arm_vmvnq_s16): Likewise.
11490 (__arm_vmvnq_s32): Likewise.
11491 (__arm_vrev16q_s8): Likewise.
11492 (__arm_vrev32q_s8): Likewise.
11493 (__arm_vrev32q_s16): Likewise.
11494 (__arm_vqabsq_s8): Likewise.
11495 (__arm_vqabsq_s16): Likewise.
11496 (__arm_vqabsq_s32): Likewise.
11497 (__arm_vqnegq_s8): Likewise.
11498 (__arm_vqnegq_s16): Likewise.
11499 (__arm_vqnegq_s32): Likewise.
11500 (__arm_vmvnq_u8): Likewise.
11501 (__arm_vmvnq_u16): Likewise.
11502 (__arm_vmvnq_u32): Likewise.
11503 (__arm_vdupq_n_u8): Likewise.
11504 (__arm_vdupq_n_u16): Likewise.
11505 (__arm_vdupq_n_u32): Likewise.
11506 (__arm_vclzq_u8): Likewise.
11507 (__arm_vclzq_u16): Likewise.
11508 (__arm_vclzq_u32): Likewise.
11509 (__arm_vaddvq_u8): Likewise.
11510 (__arm_vaddvq_u16): Likewise.
11511 (__arm_vaddvq_u32): Likewise.
11512 (__arm_vrev32q_u8): Likewise.
11513 (__arm_vrev32q_u16): Likewise.
11514 (__arm_vmovltq_u8): Likewise.
11515 (__arm_vmovltq_u16): Likewise.
11516 (__arm_vmovlbq_u8): Likewise.
11517 (__arm_vmovlbq_u16): Likewise.
11518 (__arm_vrev16q_u8): Likewise.
11519 (__arm_vaddlvq_u32): Likewise.
11520 (__arm_vcvtpq_u16_f16): Likewise.
11521 (__arm_vcvtpq_u32_f32): Likewise.
11522 (__arm_vcvtnq_u16_f16): Likewise.
11523 (__arm_vcvtmq_u16_f16): Likewise.
11524 (__arm_vcvtmq_u32_f32): Likewise.
11525 (__arm_vcvtaq_u16_f16): Likewise.
11526 (__arm_vcvtaq_u32_f32): Likewise.
11527 (__arm_vcvtaq_s16_f16): Likewise.
11528 (__arm_vcvtaq_s32_f32): Likewise.
11529 (__arm_vcvtnq_s16_f16): Likewise.
11530 (__arm_vcvtnq_s32_f32): Likewise.
11531 (__arm_vcvtpq_s16_f16): Likewise.
11532 (__arm_vcvtpq_s32_f32): Likewise.
11533 (__arm_vcvtmq_s16_f16): Likewise.
11534 (__arm_vcvtmq_s32_f32): Likewise.
11535 (vdupq_n): Define polymorphic variant.
11540 (vaddlvq): Likewise.
11541 (vaddvq): Likewise.
11542 (vmovlbq): Likewise.
11543 (vmovltq): Likewise.
11545 (vrev16q): Likewise.
11546 (vrev32q): Likewise.
11547 (vqabsq): Likewise.
11548 (vqnegq): Likewise.
11549 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
11550 (UNOP_SNONE_NONE): Likewise.
11551 (UNOP_UNONE_UNONE): Likewise.
11552 (UNOP_UNONE_NONE): Likewise.
11553 * config/arm/constraints.md (e): Define new constriant to allow only
11555 * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern.
11556 (mve_vnegq_s<mode>): Likewise.
11557 (mve_vmvnq_<supf><mode>): Likewise.
11558 (mve_vdupq_n_<supf><mode>): Likewise.
11559 (mve_vclzq_<supf><mode>): Likewise.
11560 (mve_vclsq_s<mode>): Likewise.
11561 (mve_vaddvq_<supf><mode>): Likewise.
11562 (mve_vabsq_s<mode>): Likewise.
11563 (mve_vrev32q_<supf><mode>): Likewise.
11564 (mve_vmovltq_<supf><mode>): Likewise.
11565 (mve_vmovlbq_<supf><mode>): Likewise.
11566 (mve_vcvtpq_<supf><mode>): Likewise.
11567 (mve_vcvtnq_<supf><mode>): Likewise.
11568 (mve_vcvtmq_<supf><mode>): Likewise.
11569 (mve_vcvtaq_<supf><mode>): Likewise.
11570 (mve_vrev16q_<supf>v16qi): Likewise.
11571 (mve_vaddlvq_<supf>v4si): Likewise.
11573 2020-03-17 Jakub Jelinek <jakub@redhat.com>
11575 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
11577 * tree-sra.c (create_access_replacement): Fix up duplicated word issue
11579 * read-rtl-function.c (find_param_by_name,
11580 function_reader::parse_enum_value, function_reader::get_insn_by_uid):
11582 * spellcheck.c (get_edit_distance_cutoff): Likewise.
11583 * tree-data-ref.c (create_ifn_alias_checks): Likewise.
11584 * tree.def (SWITCH_EXPR): Likewise.
11585 * selftest.c (assert_str_contains): Likewise.
11586 * ipa-param-manipulation.h (class ipa_param_body_adjustments):
11588 * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise.
11589 * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise.
11590 * langhooks.h (struct lang_hooks_for_decls): Likewise.
11591 * ipa-prop.h (struct ipa_param_descriptor): Likewise.
11592 * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store):
11594 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
11595 * tree-ssa-reassoc.c (reassociate_bb): Likewise.
11596 * tree.c (component_ref_size): Likewise.
11597 * hsa-common.c (hsa_init_compilation_unit_data): Likewise.
11598 * gimple-ssa-sprintf.c (get_string_length, format_string,
11599 format_directive): Likewise.
11600 * omp-grid.c (grid_process_kernel_body_copy): Likewise.
11601 * input.c (string_concat_db::get_string_concatenation,
11602 test_lexer_string_locations_ucn4): Likewise.
11603 * cfgexpand.c (pass_expand::execute): Likewise.
11604 * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds,
11605 maybe_diag_overlap): Likewise.
11606 * rtl.c (RTX_CODE_HWINT_P_1): Likewise.
11607 * shrink-wrap.c (spread_components): Likewise.
11608 * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse):
11610 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
11612 * dwarf2out.c (dwarf2out_early_finish): Likewise.
11613 * gimple-ssa-store-merging.c: Likewise.
11614 * ira-costs.c (record_operand_costs): Likewise.
11615 * tree-vect-loop.c (vectorizable_reduction): Likewise.
11616 * target.def (dispatch): Likewise.
11617 (validate_dims, gen_ccmp_first): Fix up duplicated word issue
11618 in documentation text.
11619 * doc/tm.texi: Regenerated.
11620 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up
11621 duplicated word issue in a comment.
11622 * config/i386/i386.c (ix86_test_loading_unspec): Likewise.
11623 * config/i386/i386-features.c (remove_partial_avx_dependency):
11625 * config/msp430/msp430.c (msp430_select_section): Likewise.
11626 * config/gcn/gcn-run.c (load_image): Likewise.
11627 * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise.
11628 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise.
11629 * config/aarch64/falkor-tag-collision-avoidance.c
11630 (single_dest_per_chain): Likewise.
11631 * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise.
11632 * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise.
11633 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise.
11634 * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant):
11636 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
11637 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
11638 * config/rs6000/rs6000-logue.c
11639 (rs6000_emit_probe_stack_range_stack_clash): Likewise.
11640 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise.
11641 Fix various other issues in the comment.
11643 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com>
11645 * config/arm/t-rmprofile: create new multilib for
11646 armv8.1-m.main+mve hard float and reuse v8-m.main ones for
11649 2020-03-17 Jakub Jelinek <jakub@redhat.com>
11651 PR tree-optimization/94015
11652 * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the
11653 function where EXP is address of the bytes being stored rather than
11654 the bytes themselves into count_nonzero_bytes_addr. Punt on zero
11655 sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs.
11656 Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before
11657 calling native_encode_expr if host or target doesn't have 8-bit
11658 chars. Formatting fixes.
11659 (count_nonzero_bytes_addr): New function.
11661 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11662 Mihail Ionescu <mihail.ionescu@arm.com>
11663 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11665 * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define.
11666 (UNOP_SNONE_NONE_QUALIFIERS): Likewise.
11667 (UNOP_SNONE_IMM_QUALIFIERS): Likewise.
11668 (UNOP_UNONE_NONE_QUALIFIERS): Likewise.
11669 (UNOP_UNONE_UNONE_QUALIFIERS): Likewise.
11670 (UNOP_UNONE_IMM_QUALIFIERS): Likewise.
11671 * config/arm/arm_mve.h (vmvnq_n_s16): Define macro.
11672 (vmvnq_n_s32): Likewise.
11673 (vrev64q_s8): Likewise.
11674 (vrev64q_s16): Likewise.
11675 (vrev64q_s32): Likewise.
11676 (vcvtq_s16_f16): Likewise.
11677 (vcvtq_s32_f32): Likewise.
11678 (vrev64q_u8): Likewise.
11679 (vrev64q_u16): Likewise.
11680 (vrev64q_u32): Likewise.
11681 (vmvnq_n_u16): Likewise.
11682 (vmvnq_n_u32): Likewise.
11683 (vcvtq_u16_f16): Likewise.
11684 (vcvtq_u32_f32): Likewise.
11685 (__arm_vmvnq_n_s16): Define intrinsic.
11686 (__arm_vmvnq_n_s32): Likewise.
11687 (__arm_vrev64q_s8): Likewise.
11688 (__arm_vrev64q_s16): Likewise.
11689 (__arm_vrev64q_s32): Likewise.
11690 (__arm_vrev64q_u8): Likewise.
11691 (__arm_vrev64q_u16): Likewise.
11692 (__arm_vrev64q_u32): Likewise.
11693 (__arm_vmvnq_n_u16): Likewise.
11694 (__arm_vmvnq_n_u32): Likewise.
11695 (__arm_vcvtq_s16_f16): Likewise.
11696 (__arm_vcvtq_s32_f32): Likewise.
11697 (__arm_vcvtq_u16_f16): Likewise.
11698 (__arm_vcvtq_u32_f32): Likewise.
11699 (vrev64q): Define polymorphic variant.
11700 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
11701 (UNOP_SNONE_NONE): Likewise.
11702 (UNOP_SNONE_IMM): Likewise.
11703 (UNOP_UNONE_UNONE): Likewise.
11704 (UNOP_UNONE_NONE): Likewise.
11705 (UNOP_UNONE_IMM): Likewise.
11706 * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern.
11707 (mve_vcvtq_from_f_<supf><mode>): Likewise.
11708 (mve_vmvnq_n_<supf><mode>): Likewise.
11710 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11711 Mihail Ionescu <mihail.ionescu@arm.com>
11712 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11714 * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro.
11715 (UNOP_NONE_SNONE_QUALIFIERS): Likewise.
11716 (UNOP_NONE_UNONE_QUALIFIERS): Likewise.
11717 * config/arm/arm_mve.h (vrndxq_f16): Define macro.
11718 (vrndxq_f32): Likewise.
11719 (vrndq_f16) Likewise.
11720 (vrndq_f32): Likewise.
11721 (vrndpq_f16): Likewise.
11722 (vrndpq_f32): Likewise.
11723 (vrndnq_f16): Likewise.
11724 (vrndnq_f32): Likewise.
11725 (vrndmq_f16): Likewise.
11726 (vrndmq_f32): Likewise.
11727 (vrndaq_f16): Likewise.
11728 (vrndaq_f32): Likewise.
11729 (vrev64q_f16): Likewise.
11730 (vrev64q_f32): Likewise.
11731 (vnegq_f16): Likewise.
11732 (vnegq_f32): Likewise.
11733 (vdupq_n_f16): Likewise.
11734 (vdupq_n_f32): Likewise.
11735 (vabsq_f16): Likewise.
11736 (vabsq_f32): Likewise.
11737 (vrev32q_f16): Likewise.
11738 (vcvttq_f32_f16): Likewise.
11739 (vcvtbq_f32_f16): Likewise.
11740 (vcvtq_f16_s16): Likewise.
11741 (vcvtq_f32_s32): Likewise.
11742 (vcvtq_f16_u16): Likewise.
11743 (vcvtq_f32_u32): Likewise.
11744 (__arm_vrndxq_f16): Define intrinsic.
11745 (__arm_vrndxq_f32): Likewise.
11746 (__arm_vrndq_f16): Likewise.
11747 (__arm_vrndq_f32): Likewise.
11748 (__arm_vrndpq_f16): Likewise.
11749 (__arm_vrndpq_f32): Likewise.
11750 (__arm_vrndnq_f16): Likewise.
11751 (__arm_vrndnq_f32): Likewise.
11752 (__arm_vrndmq_f16): Likewise.
11753 (__arm_vrndmq_f32): Likewise.
11754 (__arm_vrndaq_f16): Likewise.
11755 (__arm_vrndaq_f32): Likewise.
11756 (__arm_vrev64q_f16): Likewise.
11757 (__arm_vrev64q_f32): Likewise.
11758 (__arm_vnegq_f16): Likewise.
11759 (__arm_vnegq_f32): Likewise.
11760 (__arm_vdupq_n_f16): Likewise.
11761 (__arm_vdupq_n_f32): Likewise.
11762 (__arm_vabsq_f16): Likewise.
11763 (__arm_vabsq_f32): Likewise.
11764 (__arm_vrev32q_f16): Likewise.
11765 (__arm_vcvttq_f32_f16): Likewise.
11766 (__arm_vcvtbq_f32_f16): Likewise.
11767 (__arm_vcvtq_f16_s16): Likewise.
11768 (__arm_vcvtq_f32_s32): Likewise.
11769 (__arm_vcvtq_f16_u16): Likewise.
11770 (__arm_vcvtq_f32_u32): Likewise.
11771 (vrndxq): Define polymorphic variants.
11773 (vrndpq): Likewise.
11774 (vrndnq): Likewise.
11775 (vrndmq): Likewise.
11776 (vrndaq): Likewise.
11777 (vrev64q): Likewise.
11780 (vrev32q): Likewise.
11781 (vcvtbq_f32): Likewise.
11782 (vcvttq_f32): Likewise.
11784 * config/arm/arm_mve_builtins.def (VAR2): Define.
11786 * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern.
11787 (mve_vrndq_f<mode>): Likewise.
11788 (mve_vrndpq_f<mode>): Likewise.
11789 (mve_vrndnq_f<mode>): Likewise.
11790 (mve_vrndmq_f<mode>): Likewise.
11791 (mve_vrndaq_f<mode>): Likewise.
11792 (mve_vrev64q_f<mode>): Likewise.
11793 (mve_vnegq_f<mode>): Likewise.
11794 (mve_vdupq_n_f<mode>): Likewise.
11795 (mve_vabsq_f<mode>): Likewise.
11796 (mve_vrev32q_fv8hf): Likewise.
11797 (mve_vcvttq_f32_f16v4sf): Likewise.
11798 (mve_vcvtbq_f32_f16v4sf): Likewise.
11799 (mve_vcvtq_to_f_<supf><mode>): Likewise.
11801 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11802 Mihail Ionescu <mihail.ionescu@arm.com>
11803 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11805 * config/arm/arm-builtins.c (CF): Define mve_builtin_data.
11807 (ARM_BUILTIN_MVE_PATTERN_START): Define.
11808 (arm_init_mve_builtins): Define function.
11809 (arm_init_builtins): Add TARGET_HAVE_MVE check.
11810 (arm_expand_builtin_1): Check the range of fcode.
11811 (arm_expand_mve_builtin): Define function to expand MVE builtins.
11812 (arm_expand_builtin): Check the range of fcode.
11813 * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point
11815 (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace.
11816 (vst4q_s8): Define macro.
11817 (vst4q_s16): Likewise.
11818 (vst4q_s32): Likewise.
11819 (vst4q_u8): Likewise.
11820 (vst4q_u16): Likewise.
11821 (vst4q_u32): Likewise.
11822 (vst4q_f16): Likewise.
11823 (vst4q_f32): Likewise.
11824 (__arm_vst4q_s8): Define inline builtin.
11825 (__arm_vst4q_s16): Likewise.
11826 (__arm_vst4q_s32): Likewise.
11827 (__arm_vst4q_u8): Likewise.
11828 (__arm_vst4q_u16): Likewise.
11829 (__arm_vst4q_u32): Likewise.
11830 (__arm_vst4q_f16): Likewise.
11831 (__arm_vst4q_f32): Likewise.
11832 (__ARM_mve_typeid): Define macro with MVE types.
11833 (__ARM_mve_coerce): Define macro with _Generic feature.
11834 (vst4q): Define polymorphic variant for different vst4q builtins.
11835 * config/arm/arm_mve_builtins.def: New file.
11836 * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI
11838 * config/arm/mve.md (MVE_VLD_ST): Define iterator.
11839 (unspec): Define unspec.
11840 (mve_vst4q<mode>): Define RTL pattern.
11841 * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI
11843 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes
11845 (define_split): Allow OI mode split for MVE after reload.
11846 (define_split): Allow XI mode split for MVE after reload.
11847 * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def.
11848 (arm-builtins.o): Likewise.
11850 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org>
11852 * c-typeck.c (process_init_element): Handle constructor_type with
11853 type size represented by POLY_INT_CST.
11855 2020-03-17 Jakub Jelinek <jakub@redhat.com>
11857 PR tree-optimization/94187
11858 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if
11859 nchars - offset < nbytes.
11861 PR middle-end/94189
11862 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would
11863 emit a warning if it was enabled and don't depend on TREE_NO_WARNING
11864 for code-generation.
11866 2020-03-16 Vladimir Makarov <vmakarov@redhat.com>
11869 * lra-spills.c (remove_pseudos): Do not reuse insn alternative
11870 after changing memory subreg.
11872 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11873 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11875 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add
11876 emulator calls for dobule precision arithmetic operations for MVE.
11878 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11879 Mihail Ionescu <mihail.ionescu@arm.com>
11880 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11882 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base
11883 feature bit is on and -mfpu=auto is passed as compiler option, do not
11884 generate error on not finding any matching fpu. Because in this case
11885 fpu is not required.
11886 * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is
11887 enabled for MVE and also for all VFP extensions.
11888 (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2
11890 (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em.
11891 (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5
11892 along with feature bits mve_float.
11893 (mve): Modify add options in armv8.1-m.main arch for MVE.
11894 (mve.fp): Modify add options in armv8.1-m.main arch for MVE with
11896 * config/arm/arm.c (use_return_insn): Replace the
11897 check with TARGET_VFP_BASE.
11898 (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with
11900 (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
11901 with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as
11903 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with
11904 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE
11906 (arm_compute_frame_layout): Likewise.
11907 (arm_save_coproc_regs): Likewise.
11908 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM
11910 (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
11911 with equivalent macro TARGET_VFP_BASE.
11912 (arm_expand_epilogue_apcs_frame): Likewise.
11913 (arm_expand_epilogue): Likewise.
11914 (arm_conditional_register_usage): Likewise.
11915 (arm_declare_function_name): Add check to skip printing .fpu directive
11916 in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is
11918 * config/arm/arm.h (TARGET_VFP_BASE): Define.
11919 * config/arm/arm.md (arch): Add "mve" to arch.
11920 (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true.
11921 (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT
11922 || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE.
11923 * config/arm/constraints.md (Uf): Define to allow modification to FPCCR
11925 * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard
11926 to not allow for MVE.
11927 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs
11929 (VUNSPEC_GET_FPSCR): Define.
11930 * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS
11931 instructions which move to general-purpose Register from Floating-point
11932 Special register and vice-versa.
11933 (thumb2_movhi_fp16): Likewise.
11934 (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along
11935 with MCR and MRC instructions which set and get Floating-point Status
11936 and Control Register (FPSCR).
11937 (movdi_vfp): Modify pattern to enable Single-precision scalar float move
11939 (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar
11940 float move patterns in MVE.
11941 (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional
11942 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
11943 (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional
11944 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
11945 (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding
11946 TARGET_VFP_BASE check.
11947 (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern
11948 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
11950 (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern
11951 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
11955 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11956 Mihail Ionescu <mihail.ionescu@arm.com>
11957 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11959 * config.gcc (arm_mve.h): Include mve intrinsics header file.
11960 * config/arm/aout.h (p0): Add new register name for MVE predicated
11962 * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro
11963 common to Neon and MVE.
11964 (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK.
11965 (arm_init_simd_builtin_types): Disable poly types for MVE.
11966 (arm_init_neon_builtins): Move a check to arm_init_builtins function.
11967 (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of
11968 ARM_BUILTIN_NEON_LANE_CHECK.
11969 (mve_dereference_pointer): Add function.
11970 (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is
11972 (arm_expand_neon_builtin): Moved to arm_expand_builtin function.
11973 (arm_expand_builtin): Moved from arm_expand_neon_builtin function.
11974 * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE
11975 with floating point enabled.
11976 * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to
11977 simd_immediate_valid_for_move.
11978 (simd_immediate_valid_for_move): Renamed from
11979 neon_immediate_valid_for_move function.
11980 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate
11981 error if vfpv2 feature bit is disabled and mve feature bit is also
11982 disabled for HARD_FLOAT_ABI.
11983 (use_return_insn): Check to not push VFP regs for MVE.
11984 (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard
11986 (aapcs_vfp_allocate_return_reg): Likewise.
11987 (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2
11988 address operand for MVE.
11989 (arm_rtx_costs_internal): MVE check to determine cost of rtx.
11990 (neon_valid_immediate): Rename to simd_valid_immediate.
11991 (simd_valid_immediate): Rename from neon_valid_immediate.
11992 (simd_valid_immediate): MVE check on size of vector is 128 bits.
11993 (neon_immediate_valid_for_move): Rename to
11994 simd_immediate_valid_for_move.
11995 (simd_immediate_valid_for_move): Rename from
11996 neon_immediate_valid_for_move.
11997 (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate
11999 (neon_make_constant): Modify call to neon_valid_immediate function.
12000 (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC
12002 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions.
12003 (arm_compute_frame_layout): Calculate space for saved VFP registers for
12005 (arm_save_coproc_regs): Save coproc registers for MVE.
12006 (arm_print_operand): Add case 'E' to print memory operands for MVE.
12007 (arm_print_operand_address): Check to print register number for MVE.
12008 (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE.
12009 (arm_modes_tieable_p): Check to allow structure mode for MVE.
12010 (arm_regno_class): Add VPR_REGNUM check.
12011 (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code
12013 (arm_expand_epilogue): MVE check for enabling pop instructions in
12015 (arm_print_asm_arch_directives): Modify function to disable print of
12016 .arch_extension "mve" and "fp" for cases where MVE is enabled with
12018 (arm_vector_mode_supported_p): Check for modes available in MVE interger
12019 and MVE floating point.
12020 (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode
12022 (arm_conditional_register_usage): Enable usage of conditional regsiter
12024 (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE.
12025 (arm_declare_function_name): Modify function to disable print of
12026 .arch_extension "mve" and "fp" for cases where MVE is enabled with
12028 * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and
12029 when target general registers are required.
12030 (TARGET_HAVE_MVE_FLOAT): Likewise.
12031 (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c
12033 (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS
12034 which indicate this is not available for across function calls.
12035 (FIRST_PSEUDO_REGISTER): Modify.
12036 (VALID_MVE_MODE): Define valid MVE mode.
12037 (VALID_MVE_SI_MODE): Define valid MVE SI mode.
12038 (VALID_MVE_SF_MODE): Define valid MVE SF mode.
12039 (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode.
12040 (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence
12042 (IS_VPR_REGNUM): Macro to check for VPR_REG register.
12043 (REG_ALLOC_ORDER): Add VPR_REGNUM entry.
12044 (enum reg_class): Add VPR_REG entry.
12045 (REG_CLASS_NAMES): Add VPR_REG entry.
12046 * config/arm/arm.md (VPR_REGNUM): Define.
12047 (conds): Check is_mve_type attrbiute to differentiate "conditional" and
12048 "unconditional" instructions.
12049 (arm_movsf_soft_insn): Modify RTL to not allow for MVE.
12050 (movdf_soft_insn): Modify RTL to not allow for MVE.
12051 (vfp_pop_multiple_with_writeback): Enable for MVE.
12052 (include "mve.md"): Include mve.md file.
12053 * config/arm/arm_mve.h: Add MVE intrinsics head file.
12054 * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE
12055 for vector predicated operands.
12056 * config/arm/iterators.md (VNIM1): Define.
12057 (VNINOTM1): Define.
12058 (VHFBF_split): Define
12059 * config/arm/mve.md: New file.
12060 (mve_mov<mode>): Define RTL for move, store and load in MVE.
12061 (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for
12063 * config/arm/neon.md (neon_immediate_valid_for_move): Rename with
12064 simd_immediate_valid_for_move.
12065 (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which
12066 is common to MVE and NEON to vec-common.md file.
12067 (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check.
12068 * config/arm/predicates.md (vpr_register_operand): Define.
12069 * config/arm/t-arm: Add mve.md file.
12070 * config/arm/types.md (mve_move): Add MVE instructions mve_move to
12072 (mve_store): Add MVE instructions mve_store to attribute "type".
12073 (mve_load): Add MVE instructions mve_load to attribute "type".
12074 (is_mve_type): Define attribute.
12075 * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support
12076 standard move patterns in MVE along with NEON and IWMMXT with mode
12078 (mov<mode>): Modify RTL expand to support standard move patterns in NEON
12079 and IWMMXT with mode iterator V8HF.
12080 (movv8hf): Define RTL expand to support standard "movv8hf" pattern in
12082 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to
12083 simd_immediate_valid_for_move.
12086 2020-03-16 H.J. Lu <hongjiu.lu@intel.com>
12089 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
12090 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
12092 * config/i386/predicates.md (ext_sse_reg_operand): Removed.
12094 2020-03-16 Jakub Jelinek <jakub@redhat.com>
12097 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
12100 PR tree-optimization/94166
12101 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION
12102 as secondary comparison key.
12104 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com>
12106 PR tree-optimization/94125
12107 * tree-loop-distribution.c
12108 (loop_distribution::break_alias_scc_partitions): Update post order
12109 number for merged scc.
12111 2020-03-15 H.J. Lu <hongjiu.lu@intel.com>
12114 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and
12116 * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov
12117 for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL
12118 and ext_sse_reg_operand check.
12120 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
12122 * common.opt: Avoid redundancy in the help text.
12123 * config/arc/arc.opt: Likewise.
12124 * config/cr16/cr16.opt: Likewise.
12126 2020-03-14 Jakub Jelinek <jakub@redhat.com>
12128 PR middle-end/93566
12129 * tree-nested.c (convert_nonlocal_omp_clauses,
12130 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
12131 with C/C++ array sections.
12133 2020-03-14 H.J. Lu <hongjiu.lu@intel.com>
12136 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov
12137 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
12140 2020-03-14 Jakub Jelinek <jakub@redhat.com>
12142 * gimple-fold.c (gimple_fold_builtin_strncpy): Change
12143 "a an" to "an" in a comment.
12144 * hsa-common.h (is_a_helper): Likewise.
12145 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.
12146 * config/arc/arc.c (arc600_corereg_hazard): Likewise.
12147 * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise.
12149 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com>
12152 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a
12153 64-bit value by 64 bits (UB).
12155 2020-03-13 Vladimir Makarov <vmakarov@redhat.com>
12157 PR rtl-optimization/92303
12158 * lra-spills.c (remove_pseudos): Try to simplify memory subreg.
12160 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org>
12162 PR rtl-optimization/94148
12163 PR rtl-optimization/94042
12164 * df-core.c (BB_LAST_CHANGE_AGE): Delete.
12165 (df_worklist_propagate_forward): New parameter last_change_age, use
12166 that instead of bb->aux.
12167 (df_worklist_propagate_backward): Ditto.
12168 (df_worklist_dataflow_doublequeue): Use a local array last_change_age.
12170 2020-03-13 Richard Biener <rguenther@suse.de>
12172 PR tree-optimization/94163
12173 * tree-ssa-pre.c (create_expression_by_pieces): Check
12174 whether alignment would be zero.
12176 2020-03-13 Martin Liska <mliska@suse.cz>
12179 * lto-wrapper.c (run_gcc): Use concat for appending
12180 to collect_gcc_options.
12182 2020-03-13 Jakub Jelinek <jakub@redhat.com>
12185 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
12186 instead of GEN_INT.
12188 2020-03-13 H.J. Lu <hongjiu.lu@intel.com>
12191 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
12192 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
12193 for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
12194 TARGET_AVX512VL and ext_sse_reg_operand check.
12196 2020-03-13 Bu Le <bule1@huawei.com>
12199 * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=)
12200 (-param=aarch64-double-recp-precision=): New options.
12201 * doc/invoke.texi: Document them.
12202 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them
12203 instead of hard-coding the choice of 1 for float and 2 for double.
12205 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
12207 PR rtl-optimization/94119
12208 * resource.h (clear_hashed_info_until_next_barrier): Declare.
12209 * resource.c (clear_hashed_info_until_next_barrier): New function.
12210 * reorg.c (add_to_delay_list): Fix formatting.
12211 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on
12212 the next instruction after removing a BARRIER.
12214 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
12216 PR middle-end/92071
12217 * expmed.c (store_integral_bit_field): For fields larger than a word,
12218 call extract_bit_field on the value if the mode is BLKmode. Remove
12219 specific path for big-endian targets and tidy things up a little bit.
12221 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
12223 PR rtl-optimization/90275
12224 * cse.c (cse_insn): Delete no-op register moves too.
12226 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com>
12228 * config/rx/rx.md (CTRLREG_CPEN): Remove.
12229 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support.
12231 2020-03-12 Richard Biener <rguenther@suse.de>
12233 PR tree-optimization/94103
12234 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
12235 punning when the mode precision is not sufficient.
12237 2020-03-12 H.J. Lu <hongjiu.lu@intel.com>
12240 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI,
12241 MODE_V1DF and MODE_V2SF.
12242 * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call
12243 ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand
12246 2020-03-12 Jakub Jelinek <jakub@redhat.com>
12248 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
12249 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
12250 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
12251 * doc/tm.texi: Regenerated.
12253 PR tree-optimization/94130
12254 * tree-ssa-dse.c: Include gimplify.h.
12255 (increment_start_addr): If stmt has lhs, drop the lhs from call and
12256 set it after the call to the original value of the first argument.
12258 (decrement_count): Formatting fix.
12260 2020-03-11 Delia Burduv <delia.burduv@arm.com>
12262 * config/arm/arm-builtins.c
12263 (arm_init_simd_builtin_scalar_types): New.
12264 * config/arm/arm_neon.h (vld2_bf16): Used new builtin type.
12265 (vld2q_bf16): Used new builtin type.
12266 (vld3_bf16): Used new builtin type.
12267 (vld3q_bf16): Used new builtin type.
12268 (vld4_bf16): Used new builtin type.
12269 (vld4q_bf16): Used new builtin type.
12270 (vld2_dup_bf16): Used new builtin type.
12271 (vld2q_dup_bf16): Used new builtin type.
12272 (vld3_dup_bf16): Used new builtin type.
12273 (vld3q_dup_bf16): Used new builtin type.
12274 (vld4_dup_bf16): Used new builtin type.
12275 (vld4q_dup_bf16): Used new builtin type.
12277 2020-03-11 Jakub Jelinek <jakub@redhat.com>
12280 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
12281 at the start to switch to data section. Don't print extra newline if
12282 .globl directive has not been emitted.
12284 2020-03-11 Richard Biener <rguenther@suse.de>
12286 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]):
12289 2020-03-11 Eric Botcazou <ebotcazou@adacore.com>
12291 PR middle-end/93961
12292 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields
12293 whose type is a qualified union.
12295 2020-03-11 Jakub Jelinek <jakub@redhat.com>
12298 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
12299 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.
12302 * value-prof.c (dump_histogram_value): Use abs_hwi instead of
12304 (get_nth_most_common_value): Use abs_hwi instead of abs.
12306 PR middle-end/94111
12307 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
12308 is rvc_normal, otherwise use real_to_decimal to print the number to
12311 PR tree-optimization/94114
12312 * tree-loop-distribution.c (generate_memset_builtin): Call
12313 rewrite_to_non_trapping_overflow even on mem.
12314 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
12317 2020-03-10 Jeff Law <law@redhat.com>
12319 * config/bfin/bfin.md (movsi_insv): Add length attribute.
12321 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com>
12324 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
12325 NAN and SIGNED_ZEROR for smax/smin.
12327 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
12330 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12331 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.
12333 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
12335 * loop-iv.c (find_simple_exit): Make it static.
12336 * cfgloop.h: Remove the corresponding prototype.
12338 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
12340 * ddg.c (create_ddg): Fix intendation.
12341 (set_recurrence_length): Likewise.
12342 (create_ddg_all_sccs): Likewise.
12344 2020-03-10 Jakub Jelinek <jakub@redhat.com>
12347 * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with
12348 CCZmode instead of CCNOmode if operands[2] has DImode and pos + len
12351 2020-03-09 Jason Merrill <jason@redhat.com>
12353 * gdbinit.in (pgs): Fix typo in documentation.
12355 2020-03-09 Vladimir Makarov <vmakarov@redhat.com>
12359 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
12361 PR rtl-optimization/93564
12362 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
12363 do not honor reg alloc order.
12365 2020-03-09 Andrew Pinski <apinski@marvell.com>
12367 PR inline-asm/94095
12368 * doc/extend.texi (x86 Operand Modifiers): Fix column
12371 2020-03-09 Martin Liska <mliska@suse.cz>
12374 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12375 Remove set of str_align_loops and str_align_jumps as these
12376 should be set in previous 2 conditions in the function.
12378 2020-03-09 Jakub Jelinek <jakub@redhat.com>
12380 PR rtl-optimization/94045
12381 * params.opt (-param=max-find-base-term-values=): New option.
12382 * alias.c (find_base_term): Add cut-off for number of visited VALUEs
12383 in a single toplevel find_base_term call.
12385 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
12388 * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define.
12389 * config/aarch64/aarch64-simd.md
12390 (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul.
12391 (aarch64_vec_<su>mlal_lane<Qlane>): Likewise.
12392 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
12393 * config/aarch64/arm_neon.h:
12394 (vmlal_lane_s16): Expand using intrinsics rather than inline asm.
12395 (vmlal_lane_u16): Likewise.
12396 (vmlal_lane_s32): Likewise.
12397 (vmlal_lane_u32): Likewise.
12398 (vmlal_laneq_s16): Likewise.
12399 (vmlal_laneq_u16): Likewise.
12400 (vmlal_laneq_s32): Likewise.
12401 (vmlal_laneq_u32): Likewise.
12402 (vmull_lane_s16): Likewise.
12403 (vmull_lane_u16): Likewise.
12404 (vmull_lane_s32): Likewise.
12405 (vmull_lane_u32): Likewise.
12406 (vmull_laneq_s16): Likewise.
12407 (vmull_laneq_u16): Likewise.
12408 (vmull_laneq_s32): Likewise.
12409 (vmull_laneq_u32): Likewise.
12410 * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul.
12413 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
12415 * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax.
12416 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
12417 (aarch64_mls_elt<mode>): Likewise.
12418 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
12419 (aarch64_fma4_elt<mode>): Likewise.
12420 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
12421 (aarch64_fma4_elt_to_64v2df): Likewise.
12422 (aarch64_fnma4_elt<mode>): Likewise.
12423 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
12424 (aarch64_fnma4_elt_to_64v2df): Likewise.
12426 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12428 * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>:
12429 Specify movprfx attribute.
12430 (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise.
12432 2020-03-06 David Edelsohn <dje.gcc@gmail.com>
12435 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
12437 (TARGET_NO_FP_IN_TOC): Same.
12438 * config/rs6000/aix71.h: Same.
12439 * config/rs6000/aix72.h: Same.
12441 2020-03-06 Andrew Pinski <apinski@marvell.com>
12442 Jeff Law <law@redhat.com>
12444 PR rtl-optimization/93996
12445 * haifa-sched.c (remove_notes): Be more careful when adding
12448 2020-03-06 Delia Burduv <delia.burduv@arm.com>
12450 * config/arm/arm_neon.h (vld2_bf16): New.
12456 (vld2_dup_bf16): New.
12457 (vld2q_dup_bf16): New.
12458 (vld3_dup_bf16): New.
12459 (vld3q_dup_bf16): New.
12460 (vld4_dup_bf16): New.
12461 (vld4q_dup_bf16): New.
12462 * config/arm/arm_neon_builtins.def
12463 (vld2): Changed to VAR13 and added v4bf, v8bf
12464 (vld2_dup): Changed to VAR8 and added v4bf, v8bf
12465 (vld3): Changed to VAR13 and added v4bf, v8bf
12466 (vld3_dup): Changed to VAR8 and added v4bf, v8bf
12467 (vld4): Changed to VAR13 and added v4bf, v8bf
12468 (vld4_dup): Changed to VAR8 and added v4bf, v8bf
12469 * config/arm/iterators.md (VDXBF2): New iterator.
12470 *config/arm/neon.md (neon_vld2): Use new iterators.
12471 (neon_vld2_dup<mode): Use new iterators.
12472 (neon_vld3<mode>): Likewise.
12473 (neon_vld3qa<mode>): Likewise.
12474 (neon_vld3qb<mode>): Likewise.
12475 (neon_vld3_dup<mode>): Likewise.
12476 (neon_vld4<mode>): Likewise.
12477 (neon_vld4qa<mode>): Likewise.
12478 (neon_vld4qb<mode>): Likewise.
12479 (neon_vld4_dup<mode>): Likewise.
12480 (neon_vld2_dupv8bf): New.
12481 (neon_vld3_dupv8bf): Likewise.
12482 (neon_vld4_dupv8bf): Likewise.
12484 2020-03-06 Delia Burduv <delia.burduv@arm.com>
12486 * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef.
12487 (bfloat16x8x2_t): New typedef.
12488 (bfloat16x4x3_t): New typedef.
12489 (bfloat16x8x3_t): New typedef.
12490 (bfloat16x4x4_t): New typedef.
12491 (bfloat16x8x4_t): New typedef.
12498 * config/arm/arm-builtins.c (v2bf_UP): Define.
12500 (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype.
12501 * config/arm/arm-modes.def (V2BF): New mode.
12502 * config/arm/arm-simd-builtin-types.def
12503 (Bfloat16x2_t): New entry.
12504 * config/arm/arm_neon_builtins.def
12505 (vst2): Changed to VAR13 and added v4bf, v8bf
12506 (vst3): Changed to VAR13 and added v4bf, v8bf
12507 (vst4): Changed to VAR13 and added v4bf, v8bf
12508 * config/arm/iterators.md (VDXBF): New iterator.
12509 (VQ2BF): New iterator.
12510 *config/arm/neon.md (neon_vst2<mode>): Used new iterators.
12511 (neon_vst2<mode>): Used new iterators.
12512 (neon_vst3<mode>): Used new iterators.
12513 (neon_vst3<mode>): Used new iterators.
12514 (neon_vst3qa<mode>): Used new iterators.
12515 (neon_vst3qb<mode>): Used new iterators.
12516 (neon_vst4<mode>): Used new iterators.
12517 (neon_vst4<mode>): Used new iterators.
12518 (neon_vst4qa<mode>): Used new iterators.
12519 (neon_vst4qb<mode>): Used new iterators.
12521 2020-03-06 Delia Burduv <delia.burduv@arm.com>
12523 * config/aarch64/aarch64-simd-builtins.def
12524 (bfcvtn): New built-in function.
12525 (bfcvtn_q): New built-in function.
12526 (bfcvtn2): New built-in function.
12527 (bfcvt): New built-in function.
12528 * config/aarch64/aarch64-simd.md
12529 (aarch64_bfcvtn<q><mode>): New pattern.
12530 (aarch64_bfcvtn2v8bf): New pattern.
12531 (aarch64_bfcvtbf): New pattern.
12532 * config/aarch64/arm_bf16.h (float32_t): New typedef.
12533 (vcvth_bf16_f32): New intrinsic.
12534 * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic.
12535 (vcvtq_low_bf16_f32): New intrinsic.
12536 (vcvtq_high_bf16_f32): New intrinsic.
12537 * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator.
12538 (UNSPEC_BFCVTN): New UNSPEC.
12539 (UNSPEC_BFCVTN2): New UNSPEC.
12540 (UNSPEC_BFCVT): New UNSPEC.
12541 * config/arm/types.md (bf_cvt): New type.
12543 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
12545 * config/s390/s390.md ("tabort"): Get rid of two consecutive
12546 blanks in format string.
12548 2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
12552 * config/i386/i386-protos.h (ix86_output_ssemov): New prototype.
12553 * config/i386/i386.c (ix86_get_ssemov): New function.
12554 (ix86_output_ssemov): Likewise.
12555 * config/i386/sse.md (VMOVE:mov<mode>_internal): Call
12556 ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL
12558 (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV.
12559 (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV.
12560 Remove ext_sse_reg_operand and TARGET_AVX512VL check.
12561 (*movti_internal): Likewise.
12562 (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV.
12564 2020-03-05 Jeff Law <law@redhat.com>
12566 PR tree-optimization/91890
12567 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument.
12568 Use gimple_or_expr_nonartificial_location.
12569 (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds.
12570 Use gimple_or_expr_nonartificial_location.
12571 * gimple.c (gimple_or_expr_nonartificial_location): New function.
12572 * gimple.h (gimple_or_expr_nonartificial_location): Declare it.
12573 * tree-ssa-strlen.c (maybe_warn_overflow): Use
12574 gimple_or_expr_nonartificial_location.
12575 (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise.
12576 (maybe_warn_pointless_strcmp): Likewise.
12578 2020-03-05 Jakub Jelinek <jakub@redhat.com>
12581 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
12582 SRC and MASK arguments to __m128 from __m128d.
12583 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
12585 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
12587 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
12588 argument to __m128i from __m128d.
12589 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from
12591 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
12592 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from
12595 2020-03-05 Delia Burduv <delia.burduv@arm.com>
12597 * config/arm/arm_neon.h (vbfmmlaq_f32): New.
12598 (vbfmlalbq_f32): New.
12599 (vbfmlaltq_f32): New.
12600 (vbfmlalbq_lane_f32): New.
12601 (vbfmlaltq_lane_f32): New.
12602 (vbfmlalbq_laneq_f32): New.
12603 (vbfmlaltq_laneq_f32): New.
12604 * config/arm/arm_neon_builtins.def (vmmla): New.
12609 (vfmab_laneq): New.
12610 (vfmat_laneq): New.
12611 * config/arm/iterators.md (BF_MA): New int iterator.
12612 (bt): New int attribute.
12613 (VQXBF): Copy of VQX with V8BF.
12614 * config/arm/neon.md (neon_vmmlav8bf): New insn.
12615 (neon_vfma<bt>v8bf): New insn.
12616 (neon_vfma<bt>_lanev8bf): New insn.
12617 (neon_vfma<bt>_laneqv8bf): New expand.
12618 (neon_vget_high<mode>): Changed iterator to VQXBF.
12619 * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC.
12620 (UNSPEC_BFMAB): New UNSPEC.
12621 (UNSPEC_BFMAT): New UNSPEC.
12623 2020-03-05 Jakub Jelinek <jakub@redhat.com>
12625 PR middle-end/93399
12626 * tree-pretty-print.h (pretty_print_string): Declare.
12627 * tree-pretty-print.c (pretty_print_string): Remove forward
12628 declaration, no longer static. Change nbytes parameter type
12629 from unsigned to size_t.
12630 * print-rtl.c (print_value) <case CONST_STRING>: Use
12631 pretty_print_string and for shrink way too long strings.
12633 2020-03-05 Richard Biener <rguenther@suse.de>
12634 Jakub Jelinek <jakub@redhat.com>
12636 PR tree-optimization/93582
12637 * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR
12638 last operand as signed when looking for memset offset. Formatting
12641 2020-03-04 Andrew Pinski <apinski@marvell.com>
12644 * value-prof.c (dump_histogram_value): Use std::abs.
12646 2020-03-04 Martin Sebor <msebor@redhat.com>
12648 PR tree-optimization/93986
12649 * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int
12650 operands to the same precision widest_int to avoid ICEs.
12652 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com>
12655 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
12656 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
12657 for OPTION_MASK_ALTIVEC.
12659 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
12661 * config.gcc: Include the glibc-stdint.h header for zTPF.
12663 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
12665 * config/s390/s390.c (s390_secondary_memory_needed): Disallow
12666 direct FPR-GPR copies.
12667 (s390_register_info_gprtofpr): Disallow GPR content to be saved in
12670 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
12672 * config/s390/s390.c (s390_emit_prologue): Specify the 2 new
12673 operands to the prologue_tpf expander.
12674 (s390_emit_epilogue): Likewise.
12675 (s390_option_override_internal): Do error checking and setup for
12677 * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK)
12678 (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET)
12679 (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET)
12680 (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions.
12681 * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new
12682 operands for the check flag and the branch target.
12683 * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check")
12684 ("mtpf-trace-hook-prologue-target")
12685 ("mtpf-trace-hook-epilogue-check")
12686 ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New
12688 * doc/invoke.texi: Document -mtpf-trace-skip option. The other
12689 options are for debugging purposes and will not be documented
12692 2020-03-04 Jakub Jelinek <jakub@redhat.com>
12695 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
12697 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti
12698 argument. Change pd argument so that it can be modified. Turn
12699 constant non-CONSTRUCTOR store into non-constant if it is too large.
12700 Adjust offset and size of CONSTRUCTOR or non-constant store to avoid
12702 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust
12705 2020-02-04 Richard Biener <rguenther@suse.de>
12707 PR tree-optimization/93964
12708 * graphite-isl-ast-to-gimple.c
12709 (gcc_expression_from_isl_ast_expr_id): Add intermediate
12710 conversion for pointer to integer converts.
12711 * graphite-scop-detection.c (assign_parameter_index_in_region):
12714 2020-03-04 Martin Liska <mliska@suse.cz>
12718 * doc/invoke.texi: Clarify --help=language and --help=common
12721 2020-03-04 Jakub Jelinek <jakub@redhat.com>
12723 PR tree-optimization/94001
12724 * tree-tailcall.c (process_assignment): Before comparing op1 to
12725 *ass_var, verify *ass_var is non-NULL.
12727 2020-03-04 Kito Cheng <kito.cheng@sifive.com>
12730 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare
12733 2020-03-03 Dennis Zhang <dennis.zhang@arm.com>
12735 * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New.
12736 * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New.
12737 (vcvtq_high_f32_bf16, vcvt_bf16_f32): New.
12738 (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New.
12739 * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries.
12740 (vbfcvtv4sf, vbfcvtv4sf_high): Likewise.
12741 * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators.
12742 (V_bf_low, V_bf_cvt_m): New mode attributes.
12743 * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New.
12744 (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New.
12745 (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New.
12746 (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New
12747 * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New.
12749 2020-03-03 Jakub Jelinek <jakub@redhat.com>
12751 PR tree-optimization/93582
12752 * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument.
12753 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result
12754 members, initialize them in the constructor and if mask is non-NULL,
12755 artificially push_partial_def {} for the portions of the mask that
12757 (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to
12758 val and return (void *)-1. Formatting fix.
12759 (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization.
12761 (vn_reference_lookup): Add mask argument. If non-NULL, don't call
12762 fully_constant_vn_reference_p nor vn_reference_lookup_1 and return
12764 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
12766 (visit_stmt): Formatting fix.
12768 2020-03-03 Richard Biener <rguenther@suse.de>
12770 PR tree-optimization/93946
12771 * alias.h (refs_same_for_tbaa_p): Declare.
12772 * alias.c (refs_same_for_tbaa_p): New function.
12773 * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return
12775 * tree-ssa-scopedtables.h
12776 (avail_exprs_stack::lookup_avail_expr): Add output argument
12777 giving access to the hashtable entry.
12778 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
12780 * tree-ssa-dom.c: Include alias.h.
12781 (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before
12782 removing redundant store.
12783 * tree-ssa-sccvn.h (vn_reference_s::base_set): New member.
12784 (ao_ref_init_from_vn_reference): Adjust prototype.
12785 (vn_reference_lookup_pieces): Likewise.
12786 (vn_reference_insert_pieces): Likewise.
12787 * tree-ssa-sccvn.c: Track base alias set in addition to alias
12789 (eliminate_dom_walker::eliminate_stmt): Also check base alias
12790 set when removing redundant stores.
12791 (visit_reference_op_store): Likewise.
12792 * dse.c (record_store): Adjust valdity check for redundant
12795 2020-03-03 Jakub Jelinek <jakub@redhat.com>
12798 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder.
12800 PR rtl-optimization/94002
12801 * explow.c (plus_constant): Punt if cst has VOIDmode and
12802 get_pool_mode is different from mode.
12804 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12806 * config/arc/arc.c (leigitimate_small_data_address_p): Check if an
12807 address has an offset which fits the scalling constraint for a
12808 load/store operation.
12809 (legitimate_scaled_address_p): Update use
12810 leigitimate_small_data_address_p.
12811 (arc_print_operand): Likewise.
12812 (arc_legitimate_address_p): Likewise.
12813 (legitimate_small_data_address_p): Likewise.
12815 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12817 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
12818 (fnmasf4_fpu): Likewise.
12820 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12822 * config/arc/arc.md (adddi3): Early expand the 64bit operation into
12824 (subdi3): Likewise.
12825 (adddi3_i): Remove pattern.
12826 (subdi3_i): Likewise.
12828 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12830 * config/arc/arc.md (eh_return): Add length info.
12832 2020-03-02 David Malcolm <dmalcolm@redhat.com>
12834 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New.
12836 2020-03-02 David Malcolm <dmalcolm@redhat.com>
12838 * doc/invoke.texi (Static Analyzer Options): Add
12839 -Wanalyzer-stale-setjmp-buffer to the list of options enabled
12842 2020-03-02 Uroš Bizjak <ubizjak@gmail.com>
12845 * config/i386/i386.md (movstrict<mode>): Allow only
12846 registers with VALID_INT_MODE_P modes.
12848 2020-03-02 Andrew Stubbs <ams@codesourcery.com>
12850 * config/gcn/gcn-valu.md (dpp_move<mode>): New.
12851 (reduc_insn): Use 'U' and 'B' operand codes.
12852 (reduc_<reduc_op>_scal_<mode>): Allow all types.
12853 (reduc_<reduc_op>_scal_v64di): Delete.
12854 (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types.
12855 (*plus_carry_dpp_shr_v64si): Change to ...
12856 (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types.
12857 (mov_from_lane63_v64di): Change to ...
12858 (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes.
12859 * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size.
12860 Support UNSPEC_MOV_DPP_SHR output formats.
12861 (gcn_expand_reduc_scalar): Add "use_moves" reductions.
12862 Add "use_extends" reductions.
12863 (print_operand_address): Add 'I' and 'U' codes.
12864 * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR.
12866 2020-03-02 Martin Liska <mliska@suse.cz>
12868 * lto-wrapper.c: Fix typo in comment about
12869 C++ standard version.
12871 2020-03-01 Martin Sebor <msebor@redhat.com>
12874 * calls.c (init_attr_rdwr_indices): Correctly handle attribute.
12876 2020-03-01 Martin Sebor <msebor@redhat.com>
12878 PR middle-end/93829
12879 * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that
12880 of a pointer in the outermost ADDR_EXPRs.
12882 2020-02-28 Jeff Law <law@redhat.com>
12884 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
12885 * config/v850/v850.c (v850_asm_trampoline_template): Update
12888 2020-02-28 Michael Meissner <meissner@linux.ibm.com>
12891 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
12894 2020-02-28 Martin Liska <mliska@suse.cz>
12897 * configure.ac: Improve detection of ld_date by requiring
12898 either two dashes or none.
12899 * configure: Regenerate.
12901 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
12903 PR rtl-optimization/93564
12904 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
12905 do not honor reg alloc order.
12907 2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
12910 * config/aarch64/aarch64.c (aarch64_override_options): Fix
12911 misleading warning string.
12913 2020-02-27 Martin Sebor <msebor@redhat.com>
12915 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo.
12917 2020-02-27 Michael Meissner <meissner@linux.ibm.com>
12920 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
12921 Split the insn into two parts. This insn only does variable
12922 extract from a register.
12923 (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
12924 variable extract from memory.
12925 (vsx_extract_v4sf_var): Split the insn into two parts. This insn
12926 only does variable extract from a register.
12927 (vsx_extract_v4sf_var_load): New insn, do variable extract from
12929 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
12930 into two parts. This insn only does variable extract from a
12932 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
12933 do variable extract from memory.
12935 2020-02-27 Martin Jambor <mjambor@suse.cz>
12936 Feng Xue <fxue@os.amperecomputing.com>
12939 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with
12940 new function calls_same_node_or_its_all_contexts_clone_p.
12941 (cgraph_edge_brings_value_p): Use it.
12942 (cgraph_edge_brings_value_p): Likewise.
12943 (self_recursive_pass_through_p): Return false if caller is a clone.
12944 (self_recursive_agg_pass_through_p): Likewise.
12946 2020-02-27 Jan Hubicka <hubicka@ucw.cz>
12948 PR middle-end/92152
12949 * alias.c (ends_tbaa_access_path_p): Break out from ...
12950 (component_uses_parent_alias_set_from): ... here.
12951 * alias.h (ends_tbaa_access_path_p): Declare.
12952 * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...;
12953 handle trailing arrays past end of tbaa access path.
12954 (aliasing_component_refs_p): ... here; likewise.
12955 (nonoverlapping_refs_since_match_p): Track TBAA segment of the access
12956 path; disambiguate also past end of it.
12957 (nonoverlapping_component_refs_p): Use only TBAA segment of the access
12960 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com>
12962 * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the
12963 beginning of the file.
12964 (vcreate_bf16, vcombine_bf16): New.
12965 (vdup_n_bf16, vdupq_n_bf16): New.
12966 (vdup_lane_bf16, vdup_laneq_bf16): New.
12967 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
12968 (vduph_lane_bf16, vduph_laneq_bf16): New.
12969 (vset_lane_bf16, vsetq_lane_bf16): New.
12970 (vget_lane_bf16, vgetq_lane_bf16): New.
12971 (vget_high_bf16, vget_low_bf16): New.
12972 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
12973 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
12974 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
12975 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
12976 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
12977 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
12978 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
12979 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
12980 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
12981 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
12982 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New.
12983 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
12984 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
12985 (vreinterpretq_bf16_p128): New.
12986 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
12987 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
12988 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
12989 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
12990 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
12991 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
12992 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
12993 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
12994 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
12995 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
12996 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
12997 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
12998 (vreinterpretq_p128_bf16): New.
12999 * config/arm/arm_neon_builtins.def (VDX): Add V4BF.
13000 (V_elem): Likewise.
13001 (V_elem_l): Likewise.
13002 (VD_LANE): Likewise.
13004 (V_DOUBLE): Likewise.
13005 (VDQX): Add V4BF and V8BF.
13006 (V_two_elem, V_three_elem, V_four_elem): Likewise.
13008 (V_HALF): Likewise.
13009 (V_double_vector_mode): Likewise.
13010 (V_cmp_result): Likewise.
13011 (V_uf_sclr): Likewise.
13012 (V_sz_elem): Likewise.
13013 (Is_d_reg): Likewise.
13014 (V_mode_nunits): Likewise.
13015 * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16.
13017 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
13019 * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator.
13020 (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE.
13021 (<expander><mode>3<exec>): Likewise.
13022 (<expander><mode>3): New.
13023 (v<expander><mode>3): New.
13024 (<expander><mode>3): New.
13025 (<expander><mode>3<exec>): Rename to ...
13026 (<expander>v64si3<exec>): ... this, and change modes to V64SI.
13027 * config/gcn/gcn.md (mnemonic): Use '%B' for not.
13029 2020-02-27 Alexandre Oliva <oliva@adacore.com>
13031 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave
13034 2020-02-27 Richard Biener <rguenther@suse.de>
13036 PR tree-optimization/93508
13037 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like
13038 non-_CHK variants. Valueize their length arguments.
13040 2020-02-27 Richard Biener <rguenther@suse.de>
13042 PR tree-optimization/93953
13043 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference
13044 to the hash-map entry.
13046 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
13048 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs.
13050 2020-02-27 Mark Williams <mwilliams@fb.com>
13052 * dwarf2out.c (file_name_acquire): Call remap_debug_filename.
13053 * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
13054 -ffile-prefix-map and -fmacro-prefix-map.
13055 * lto-streamer-out.c: Include file-prefix-map.h.
13056 (lto_output_location): Remap the file part of locations.
13058 2020-02-27 Jakub Jelinek <jakub@redhat.com>
13061 * gimplify.c (gimplify_init_constructor): Don't promote readonly
13062 DECL_REGISTER variables to TREE_STATIC.
13064 PR tree-optimization/93582
13065 PR tree-optimization/93945
13066 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with
13067 non-zero INTEGER_CST second argument and ref->offset or ref->size
13068 not a multiple of BITS_PER_UNIT.
13070 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
13072 * doc/install.texi (Binaries): Update description of BullFreeware.
13074 2020-02-26 Sandra Loosemore <sandra@codesourcery.com>
13078 * doc/invoke.texi (Option Summary): Re-alphabetize warnings in
13079 C++ Language Options, Warning Options, and Static Analyzer
13080 Options lists. Document negative form of options enabled by
13081 default. Move some things around to more accurately sort
13082 warnings by category.
13083 (C++ Dialect Options, Warning Options, Static Analyzer
13084 Options): Document negative form of options when enabled by
13085 default. Move some things around to more accurately sort
13086 warnings by category. Add some missing index entries.
13087 Light copy-editing.
13089 2020-02-26 Carl Love <cel@us.ibm.com>
13092 * doc/extend.texi (PowerPC AltiVec Built-in Functions available on
13093 ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only
13094 for the vector unsigned short arguments. It is also listed as the
13095 name of the built-in for arguments vector unsigned short,
13096 vector unsigned int and vector unsigned long long built-ins. The
13097 name of the builtins for these arguments should be:
13098 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
13099 __builtin_crypto_vpmsumd respectively.
13101 2020-02-26 Richard Biener <rguenther@suse.de>
13103 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
13104 and load permutation.
13106 2020-02-26 Richard Sandiford <richard.sandiford@arm.com>
13108 PR middle-end/93843
13109 * optabs-tree.c (supportable_convert_operation): Reject types with
13112 2020-02-26 David Malcolm <dmalcolm@redhat.com>
13114 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o.
13116 2020-02-26 Jakub Jelinek <jakub@redhat.com>
13118 PR tree-optimization/93820
13119 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
13120 argument to ALL_INTEGER_CST_P boolean.
13121 (imm_store_chain_info::try_coalesce_bswap): Adjust caller.
13122 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle
13123 adjacent INTEGER_CST store into merged_store->only_constants like
13126 2020-02-25 Jakub Jelinek <jakub@redhat.com>
13129 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity
13131 * cfghooks.c (verify_flow_info): Likewise.
13132 * predict.c (combine_predictions_for_bb): Likewise.
13133 * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo,
13134 sucessor -> successor.
13135 (find_traces_1_round): Fix comment typo, destinarion -> destination.
13136 * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors ->
13138 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump
13139 message typo, sucessors -> successors.
13141 2020-02-25 Martin Sebor <msebor@redhat.com>
13143 * doc/extend.texi (attribute access): Correct an example.
13145 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
13147 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types):
13149 (aarch64_init_simd_builtin_scalar_types): Register simd_bf.
13150 (VAR15, VAR16): New.
13151 * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF.
13152 (VD): Enable for V4BF.
13154 (VQ): Enable for V8BF.
13156 (VQ_NO2E): Likewise.
13157 (VDBL, Vdbl): Add V4BF.
13158 (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF.
13159 * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef.
13160 (bfloat16x8x2_t): Likewise.
13161 (bfloat16x4x3_t): Likewise.
13162 (bfloat16x8x3_t): Likewise.
13163 (bfloat16x4x4_t): Likewise.
13164 (bfloat16x8x4_t): Likewise.
13165 (vcombine_bf16): New.
13166 (vld1_bf16, vld1_bf16_x2): New.
13167 (vld1_bf16_x3, vld1_bf16_x4): New.
13168 (vld1q_bf16, vld1q_bf16_x2): New.
13169 (vld1q_bf16_x3, vld1q_bf16_x4): New.
13170 (vld1_lane_bf16): New.
13171 (vld1q_lane_bf16): New.
13172 (vld1_dup_bf16): New.
13173 (vld1q_dup_bf16): New.
13176 (vld2_dup_bf16): New.
13177 (vld2q_dup_bf16): New.
13180 (vld3_dup_bf16): New.
13181 (vld3q_dup_bf16): New.
13184 (vld4_dup_bf16): New.
13185 (vld4q_dup_bf16): New.
13186 (vst1_bf16, vst1_bf16_x2): New.
13187 (vst1_bf16_x3, vst1_bf16_x4): New.
13188 (vst1q_bf16, vst1q_bf16_x2): New.
13189 (vst1q_bf16_x3, vst1q_bf16_x4): New.
13190 (vst1_lane_bf16): New.
13191 (vst1q_lane_bf16): New.
13199 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
13201 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF.
13202 (VALL_F16): Likewise.
13203 (VALLDI_F16): Likewise.
13205 (Vetype): Likewise.
13206 (vswap_width_name): Likewise.
13207 (VSWAP_WIDTH): Likewise.
13211 * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New.
13212 (vget_lane_bf16, vgetq_lane_bf16): New.
13213 (vcreate_bf16): New.
13214 (vdup_n_bf16, vdupq_n_bf16): New.
13215 (vdup_lane_bf16, vdup_laneq_bf16): New.
13216 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
13217 (vduph_lane_bf16, vduph_laneq_bf16): New.
13218 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
13219 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
13220 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
13221 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
13222 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
13223 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
13224 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
13225 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
13226 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
13227 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
13228 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New
13229 (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New
13230 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
13231 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
13232 (vreinterpretq_bf16_p128): New.
13233 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
13234 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
13235 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
13236 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
13237 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
13238 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
13239 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
13240 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
13241 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
13242 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
13243 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
13244 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
13245 (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New.
13246 (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New.
13247 (vreinterpretq_p128_bf16): New.
13249 2020-02-25 Dennis Zhang <dennis.zhang@arm.com>
13251 * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New
13252 (vbfdot_lane_f32, vbfdotq_laneq_f32): New.
13253 (vbfdot_laneq_f32, vbfdotq_lane_f32): New.
13254 * config/arm/arm_neon_builtins.def (vbfdot): New entry.
13255 (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise.
13256 * config/arm/iterators.md (VSF2BF): New attribute.
13257 * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry.
13258 (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise.
13259 (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise.
13261 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org>
13263 * config/arm/arm.md (required_for_purecode): New attribute.
13264 (enabled): Handle required_for_purecode.
13265 * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to
13266 work with -mpure-code.
13268 2020-02-25 Jakub Jelinek <jakub@redhat.com>
13270 PR rtl-optimization/93908
13271 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
13274 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
13276 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
13278 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
13280 * doc/install.texi (--enable-checking): Adjust wording.
13282 2020-02-25 Richard Biener <rguenther@suse.de>
13284 PR tree-optimization/93868
13285 * tree-vect-slp.c (slp_copy_subtree): New function.
13286 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before
13287 re-arranging stmts in it.
13289 2020-02-25 Jakub Jelinek <jakub@redhat.com>
13291 PR middle-end/93874
13292 * passes.c (pass_manager::dump_passes): Create a cgraph node for the
13293 dummy function and remove it at the end.
13295 PR translation/93864
13296 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo
13297 paramter -> parameter.
13298 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise.
13299 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise.
13301 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
13303 * doc/install.texi (--enable-checking): Properly document current
13305 (--enable-stage1-checking): Minor clarification about bootstrap.
13307 2020-02-24 David Malcolm <dmalcolm@redhat.com>
13310 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that
13311 -fanalyzer-checker=taint is also required.
13312 (-fanalyzer-checker=): Note that providing this option enables the
13313 given checker, and doing so may be required for checkers that are
13314 disabled by default.
13316 2020-02-24 David Malcolm <dmalcolm@redhat.com>
13318 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows
13319 significant control flow events; add a "3" which shows all
13320 control flow events; the old "3" becomes "4".
13322 2020-02-24 Jakub Jelinek <jakub@redhat.com>
13324 PR tree-optimization/93582
13325 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider
13326 pd.offset and pd.size to be counted in bits rather than bytes, add
13327 support for maxsizei that is not a multiple of BITS_PER_UNIT and
13328 handle bitfield stores and loads.
13329 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with
13330 uncomparable quantities - bytes vs. bits. Allow push_partial_def
13331 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust
13332 pd.offset/pd.size to be counted in bits rather than bytes.
13333 Formatting fix. Rename shadowed len variable to buflen.
13335 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13336 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
13339 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
13340 (driver::main): Call putenv_COLLECT_AS_OPTIONS.
13341 * opts-common.c (parse_options_from_collect_gcc_options): New function.
13342 (prepend_xassembler_to_collect_as_options): Likewise.
13343 * opts.h (parse_options_from_collect_gcc_options): Declare prototype.
13344 (prepend_xassembler_to_collect_as_options): Likewise.
13345 * lto-opts.c (lto_write_options): Stream assembler options
13346 in COLLECT_AS_OPTIONS.
13347 * lto-wrapper.c (xassembler_options_error): New static variable.
13348 (get_options_from_collect_gcc_options): Move parsing options code to
13349 parse_options_from_collect_gcc_options and call it.
13350 (merge_and_complain): Validate -Xassembler options.
13351 (append_compiler_options): Handle OPT_Xassembler.
13352 (run_gcc): Append command line -Xassembler options to
13353 collect_gcc_options.
13354 * doc/invoke.texi: Add documentation about using Xassembler
13357 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
13359 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
13361 (riscv_rtx_costs): Update cost model for LTGT.
13363 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
13365 PR rtl-optimization/93564
13366 * ira-color.c (struct update_cost_queue_elem): New member start.
13367 (queue_update_cost, get_next_update_cost): Add new arg start.
13368 (allocnos_conflict_p): New function.
13369 (update_costs_from_allocno): Add new arg conflict_cost_update_p.
13370 Add checking conflicts with allocnos_conflict_p.
13371 (update_costs_from_prefs, restore_costs_from_copies): Adjust
13372 update_costs_from_allocno calls.
13373 (update_conflict_hard_regno_costs): Add checking conflicts with
13374 allocnos_conflict_p. Adjust calls of queue_update_cost and
13375 get_next_update_cost.
13376 (assign_hard_reg): Adjust calls of queue_update_cost. Add
13378 (bucket_allocno_compare_func): Restore previous version.
13380 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
13382 * config/pa/pa.c (pa_function_value): Fix check for word and
13383 double-word size when handling aggregate return values.
13384 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
13385 that homogeneous SFmode and DFmode aggregates are passed and returned
13386 in general registers.
13388 2020-02-21 Jakub Jelinek <jakub@redhat.com>
13390 PR translation/93759
13391 * opts.c (print_filtered_help): Translate help before appending
13392 messages to it rather than after that.
13394 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
13396 PR rtl-optimization/PR92989
13397 * lra-lives.c (process_bb_lives): Restore the original order
13398 of the bb liveness update. Call make_hard_regno_dead for each
13399 register clobbered at the start of an EH receiver.
13401 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
13404 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
13405 self-recursively generated.
13407 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
13410 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
13413 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
13415 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
13416 Document new target supports option.
13418 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
13420 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
13421 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
13422 * config/arm/iterators.md (MATMUL): New iterator.
13423 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
13424 (mmla_sfx): New attribute.
13425 * config/arm/neon.md (neon_<sup>mmlav16qi): New.
13426 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
13427 (UNSPEC_MATMUL_US): New.
13429 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
13431 * config/arm/arm.md: Prevent scalar shifts from being used when big
13434 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
13435 Richard Biener <rguenther@suse.de>
13437 PR tree-optimization/93586
13438 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk
13439 after mismatched array refs; do not sure type size information to
13440 recover from unmatched referneces with !flag_strict_aliasing_p.
13442 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
13444 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ...
13445 (gather_load<mode>v64si): ... this and set operand 2 to V64SI.
13446 (scatter_store<mode>): Rename to ...
13447 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI.
13448 (scatter<mode>_exec): Delete. Move contents ...
13449 (mask_scatter_store<mode>): ... here, and rename that to ...
13450 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI.
13451 Remove mode conversion.
13452 (mask_gather_load<mode>): Rename to ...
13453 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI.
13454 Remove mode conversion.
13455 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion.
13457 2020-02-21 Martin Jambor <mjambor@suse.cz>
13459 PR tree-optimization/93845
13460 * tree-sra.c (verify_sra_access_forest): Only test access size of
13463 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
13465 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs.
13466 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber.
13467 (addv64di3_exec): Likewise.
13468 (subv64di3): Likewise.
13469 (subv64di3_exec): Likewise.
13470 (addv64di3_zext): Likewise.
13471 (addv64di3_zext_exec): Likewise.
13472 (addv64di3_zext_dup): Likewise.
13473 (addv64di3_zext_dup_exec): Likewise.
13474 (addv64di3_zext_dup2): Likewise.
13475 (addv64di3_zext_dup2_exec): Likewise.
13476 (addv64di3_sext_dup2): Likewise.
13477 (addv64di3_sext_dup2_exec): Likewise.
13478 (<expander>v64di3): Likewise.
13479 (<expander>v64di3_exec): Likewise.
13480 (*<reduc_op>_dpp_shr_v64di): Likewise.
13481 (*plus_carry_dpp_shr_v64di): Likewise.
13482 * config/gcn/gcn.md (adddi3): Likewise.
13483 (addptrdi3): Likewise.
13484 (<expander>di3): Likewise.
13486 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
13488 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
13490 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13492 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE
13493 support. Use aarch64_emit_mult instead of emitting multiplication
13494 instructions directly.
13495 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2)
13496 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders.
13498 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13500 * config/aarch64/aarch64.c (aarch64_emit_mult): New function.
13501 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult
13502 instead of emitting multiplication instructions directly.
13503 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator.
13504 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>)
13505 (@aarch64_frecps<mode>): New expanders.
13507 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13509 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
13510 on and produce uint64_ts rather than ints.
13511 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
13512 (cpu_approx_modes): Change the fields from unsigned int to uint64_t.
13514 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13516 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
13517 an unused xmsk register when handling approximate rsqrt.
13519 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13521 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
13522 flag_finite_math_only condition.
13524 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
13527 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
13528 to destination operand for shufps alternative.
13529 (*vec_extractv2si_1): Ditto.
13531 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
13534 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
13537 2020-02-20 Martin Liska <mliska@suse.cz>
13539 PR translation/93831
13540 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
13542 2020-02-20 Martin Liska <mliska@suse.cz>
13544 PR translation/93830
13545 * common/config/avr/avr-common.c: Remote trailing "|".
13547 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
13549 * collect2.c (maybe_run_lto_and_relink): Fix typo in
13552 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
13554 PR tree-optimization/93767
13555 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the
13556 access-size bias from the offset calculations for negative strides.
13558 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
13560 * collect2.c (c_file, o_file): Make const again.
13561 (ldout,lderrout, dump_ld_file): Remove.
13562 (tool_cleanup): Avoid calling not signal-safe functions.
13563 (maybe_run_lto_and_relink): Avoid possible signal handler
13564 access to unintialzed memory (lto_o_files).
13565 (main): Avoid leaking temp files in $TMPDIR.
13566 Initialize c_file/o_file with concat, which avoids exposing
13567 uninitialized memory to signal handler, which calls unlink(!).
13568 Avoid calling maybe_unlink when the main function returns,
13569 since the atexit handler is already doing this.
13570 * collect2.h (dump_ld_file, ldout, lderrout): Remove.
13572 2020-02-19 Martin Jambor <mjambor@suse.cz>
13574 PR tree-optimization/93776
13575 * tree-sra.c (create_access): Do not create zero size accesses.
13576 (get_access_for_expr): Do not search for zero sized accesses.
13578 2020-02-19 Martin Jambor <mjambor@suse.cz>
13580 PR tree-optimization/93667
13581 * tree-sra.c (scalarizable_type_p): Return false if record fields
13582 do not follow wach other.
13584 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
13586 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
13587 rather than fmv.x.s/fmv.s.x.
13589 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
13591 * config/aarch64/aarch64-simd-builtins.def
13592 (intrinsic_vec_smult_lo_): New.
13593 (intrinsic_vec_umult_lo_): Likewise.
13594 (vec_widen_smult_hi_): Likewise.
13595 (vec_widen_umult_hi_): Likewise.
13596 * config/aarch64/aarch64-simd.md
13597 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
13598 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
13599 (vmull_high_s16): Likewise.
13600 (vmull_high_s32): Likewise.
13601 (vmull_high_u8): Likewise.
13602 (vmull_high_u16): Likewise.
13603 (vmull_high_u32): Likewise.
13604 (vmull_s8): Likewise.
13605 (vmull_s16): Likewise.
13606 (vmull_s32): Likewise.
13607 (vmull_u8): Likewise.
13608 (vmull_u16): Likewise.
13609 (vmull_u32): Likewise.
13611 2020-02-18 Martin Liska <mliska@suse.cz>
13613 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
13614 bootstrap by missing removal of invalid sanity check.
13616 2020-02-18 Martin Liska <mliska@suse.cz>
13619 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
13620 Always compare LHS of gimple_assign.
13622 2020-02-18 Martin Liska <mliska@suse.cz>
13625 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
13626 and return type of functions.
13627 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
13628 Drop MALLOC attribute for void functions.
13629 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
13630 malloc_state for a new VOID clone.
13632 2020-02-18 Martin Liska <mliska@suse.cz>
13635 * common.opt: Add -fprofile-reproducibility.
13636 * doc/invoke.texi: Document it.
13637 * value-prof.c (dump_histogram_value):
13638 Document and support behavior for counters[0]
13639 being a negative value.
13640 (get_nth_most_common_value): Handle negative
13641 counters[0] in respect to flag_profile_reproducible.
13643 2020-02-18 Jakub Jelinek <jakub@redhat.com>
13646 * cgraph.c (verify_speculative_call): Use speculative_id instead of
13647 speculative_uid in messages. Remove trailing whitespace from error
13648 message. Use num_speculative_call_targets instead of
13649 num_speculative_targets in a message.
13650 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in
13651 edge messages and stmt instead of cal_stmt in reference message.
13653 PR tree-optimization/93780
13654 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
13655 before calling build_vector_type.
13656 (execute_update_addresses_taken): Likewise.
13659 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
13660 typo, functoin -> function.
13661 * tree.c (free_lang_data_in_decl): Fix comment typo,
13662 functoin -> function.
13663 * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
13665 2020-02-17 David Malcolm <dmalcolm@redhat.com>
13667 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
13669 (print_option_information): Don't call get_option_url if URLs
13672 2020-02-17 Alexandre Oliva <oliva@adacore.com>
13674 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
13675 handling of register_common-less targets.
13677 2020-02-17 Martin Liska <mliska@suse.cz>
13680 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
13682 2020-02-17 Martin Liska <mliska@suse.cz>
13684 PR translation/93755
13685 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13688 2020-02-17 Martin Liska <mliska@suse.cz>
13691 * config/rx/elf.opt: Fix typo.
13693 2020-02-17 Richard Biener <rguenther@suse.de>
13696 * opts-global.c (print_ignored_options): Use inform and
13699 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
13702 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
13704 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
13707 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
13708 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
13710 2020-02-15 Jason Merrill <jason@redhat.com>
13712 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
13714 2020-02-15 Jakub Jelinek <jakub@redhat.com>
13716 PR tree-optimization/93744
13717 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
13718 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
13719 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
13720 sure @2 in the first and @1 in the other patterns has no side-effects.
13722 2020-02-15 David Malcolm <dmalcolm@redhat.com>
13723 Bernd Edlinger <bernd.edlinger@hotmail.de>
13727 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define.
13728 * configure.ac (--with-diagnostics-urls): New configuration
13729 option, based on --with-diagnostics-color.
13730 (DIAGNOSTICS_URLS_DEFAULT): New define.
13731 * config.h: Regenerate.
13732 * configure: Regenerate.
13733 * diagnostic.c (diagnostic_urls_init): Handle -1 for
13734 DIAGNOSTICS_URLS_DEFAULT from configure-time
13735 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS
13736 and TERM_URLS environment variable.
13737 * diagnostic-url.h (diagnostic_url_format): New enum type.
13738 (diagnostic_urls_enabled_p): rename to...
13739 (determine_url_format): ... this, and change return type.
13740 * diagnostic-color.c (parse_env_vars_for_urls): New helper function.
13741 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal,
13742 the linux console, and mingw.
13743 (diagnostic_urls_enabled_p): rename to...
13744 (determine_url_format): ... this, and adjust.
13745 * pretty-print.h (pretty_printer::show_urls): rename to...
13746 (pretty_printer::url_format): ... this, and change to enum.
13747 * pretty-print.c (pretty_printer::pretty_printer,
13748 pp_begin_url, pp_end_url, test_urls): Adjust.
13749 * doc/install.texi (--with-diagnostics-urls): Document the new
13750 configuration option.
13751 (--with-diagnostics-color): Document the existing interaction
13752 with GCC_COLORS better.
13753 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS
13754 vindex reference. Update description of defaults based on the above.
13755 (-fdiagnostics-color): Update description of how -fdiagnostics-color
13756 interacts with GCC_COLORS.
13758 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
13761 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
13762 conjunction with TARGET_GNU_TLS in early return.
13764 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
13766 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
13767 the mode is not wider than UNITS_PER_WORD.
13769 2020-02-14 Martin Jambor <mjambor@suse.cz>
13771 PR tree-optimization/93516
13772 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create
13773 access of the same type as the parent.
13774 (propagate_subaccesses_from_lhs): Likewise.
13776 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
13779 * config/i386/avx512vbmi2intrin.h
13780 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
13781 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
13782 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
13783 _m512_shrdi_epi64, _m512_mask_shrdi_epi64,
13784 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
13785 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
13786 _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
13787 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
13788 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
13789 of lacking a closing parenthesis.
13790 * config/i386/avx512vbmi2vlintrin.h
13791 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
13792 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
13793 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
13794 _m256_shrdi_epi64, _m256_mask_shrdi_epi64,
13795 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
13796 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
13797 _mm256_shldi_epi32, _mm256_mask_shldi_epi32,
13798 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
13799 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
13800 _mm_shrdi_epi16, _mm_mask_shrdi_epi16,
13801 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
13802 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
13803 _mm_shrdi_epi64, _mm_mask_shrdi_epi64,
13804 _m_maskz_shrdi_epi64, _mm_shldi_epi16,
13805 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
13806 _mm_shldi_epi32, _mm_mask_shldi_epi32,
13807 _mm_maskz_shldi_epi32, _mm_shldi_epi64,
13808 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
13810 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
13813 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
13814 the target function entry.
13816 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13818 * common/config/arc/arc-common.c (arc_option_optimization_table):
13819 Disable if-conversion step when optimized for size.
13821 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13823 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
13824 R12-R15 are always in ARCOMPACT16_REGS register class.
13825 * config/arc/arc.opt (mq-class): Deprecate.
13826 * config/arc/constraint.md ("q"): Remove dependency on mq-class
13828 * doc/invoke.texi (mq-class): Update text.
13829 * common/config/arc/arc-common.c (arc_option_optimization_table):
13832 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13834 * config/arc/arc.c (arc_insn_cost): New function.
13835 (TARGET_INSN_COST): Define.
13836 * config/arc/arc.md (cost): New attribute.
13837 (add_n): Use arc_nonmemory_operand.
13838 (ashlsi3_insn): Likewise, also update constraints.
13839 (ashrsi3_insn): Likewise.
13840 (rotrsi3): Likewise.
13841 (add_shift): Likewise.
13842 * config/arc/predicates.md (arc_nonmemory_operand): New predicate.
13844 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13846 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
13848 (umulsidi_600): Likewise.
13850 2020-02-13 Jakub Jelinek <jakub@redhat.com>
13853 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
13854 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
13855 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
13856 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
13857 pass __A to the builtin followed by __W instead of __A followed by
13859 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
13860 _mm512_mask_popcnt_epi64): Likewise.
13861 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
13862 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
13863 _mm256_mask_popcnt_epi64): Likewise.
13865 PR tree-optimization/93582
13866 * fold-const.h (shift_bytes_in_array_left,
13867 shift_bytes_in_array_right): Declare.
13868 * fold-const.c (shift_bytes_in_array_left,
13869 shift_bytes_in_array_right): New function, moved from
13870 gimple-ssa-store-merging.c, no longer static.
13871 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move
13872 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left.
13873 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c.
13874 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of
13875 shift_bytes_in_array.
13876 (verify_shift_bytes_in_array): Rename to ...
13877 (verify_shift_bytes_in_array_left): ... this. Use
13878 shift_bytes_in_array_left instead of shift_bytes_in_array.
13879 (store_merging_c_tests): Call verify_shift_bytes_in_array_left
13880 instead of verify_shift_bytes_in_array.
13881 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr
13882 / native_interpret_expr where the store covers all needed bits,
13883 punt on PDP-endian, otherwise allow all involved offsets and sizes
13884 not to be byte-aligned.
13887 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and
13888 use const_0_to_255_operand predicate instead of immediate_operand.
13889 (avx512dq_fpclass<mode><mask_scalar_merge_name>,
13890 avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
13891 vgf2p8affineinvqb_<mode><mask_name>,
13892 vgf2p8affineqb_<mode><mask_name>): Drop mode from
13893 const_0_to_255_operand predicated operands.
13895 2020-02-12 Jeff Law <law@redhat.com>
13897 * config/h8300/h8300.md (comparison shortening peepholes): Use
13898 a mode iterator to merge the HImode and SImode peepholes.
13900 2020-02-12 Jakub Jelinek <jakub@redhat.com>
13902 PR middle-end/93663
13903 * real.c (is_even): Make static. Function comment fix.
13904 (is_halfway_below): Make static, don't assert R is not inf/nan,
13905 instead return false for those. Small formatting fixes.
13907 2020-02-12 Martin Sebor <msebor@redhat.com>
13909 PR middle-end/93646
13910 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename...
13911 (handle_builtin_stxncpy_strncat): ...to this. Change first argument.
13912 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation.
13913 (strlen_check_and_optimize_call): Adjust callee name.
13915 2020-02-12 Jeff Law <law@redhat.com>
13917 * config/h8300/h8300.md (comparison shortening peepholes): Drop
13918 (and (xor)) variant. Combine other two into single peephole.
13920 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
13922 PR rtl-optimization/93565
13923 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
13925 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
13927 * config/aarch64/aarch64-simd.md
13928 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern.
13929 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of
13930 generating separate ADDV and zero_extend patterns.
13931 * config/aarch64/iterators.md (VDQV_E): New iterator.
13933 2020-02-12 Jeff Law <law@redhat.com>
13935 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns,
13936 expanders, splits, etc.
13937 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise.
13938 (stpcpy_internal_<mode>, stpcpy splitter): Likewise.
13939 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise.
13940 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function.
13941 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise
13942 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused
13943 function prototype.
13944 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise.
13946 2020-02-12 Jakub Jelinek <jakub@redhat.com>
13949 * config/i386/sse.md (VI48F_256_DQ): New mode iterator.
13950 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
13951 TARGET_AVX512DQ from condition.
13952 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
13953 instead of <mask_mode512bit_condition> in condition. If
13954 TARGET_AVX512DQ is false, emit vextract*64x4 instead of
13956 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
13959 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
13962 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
13964 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
13966 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof
13967 where strlen is more legible.
13968 (rs6000_builtin_vectorized_libmass): Ditto.
13969 (rs6000_print_options_internal): Ditto.
13971 2020-02-11 Martin Sebor <msebor@redhat.com>
13973 PR tree-optimization/93683
13974 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
13976 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
13978 * config/rs6000/predicates.md (cint34_operand): Rename the
13979 -mprefixed-addr option to be -mprefixed.
13980 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename
13981 the -mprefixed-addr option to be -mprefixed.
13982 (OTHER_FUTURE_MASKS): Likewise.
13983 (POWERPC_MASKS): Likewise.
13984 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
13985 the -mprefixed-addr option to be -mprefixed. Change error
13986 messages to refer to -mprefixed.
13987 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be
13989 (rs6000_legitimate_offset_address_p): Likewise.
13990 (rs6000_mode_dependent_address): Likewise.
13991 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be
13992 "-mprefixed" for target attributes and pragmas.
13993 (address_to_insn_form): Rename the -mprefixed-addr option to be
13995 (rs6000_adjust_insn_length): Likewise.
13996 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the
13997 -mprefixed-addr option to be -mprefixed.
13998 (ASM_OUTPUT_OPCODE): Likewise.
13999 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the
14000 -mprefixed-addr option to be -mprefixed.
14001 * config/rs6000/rs6000.opt (-mprefixed): Rename the
14002 -mprefixed-addr option to be prefixed. Change the option from
14003 being undocumented to being documented.
14004 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the
14005 -mprefixed option. Update the -mpcrel documentation to mention
14008 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
14010 * ira-conflicts.c (print_hard_reg_set): Correct output for sets
14011 including FIRST_PSEUDO_REGISTER - 1.
14012 * ira-color.c (print_hard_reg_set): Ditto.
14014 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
14016 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
14017 (USTERNOP_QUALIFIERS): New define.
14018 (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
14019 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
14020 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
14021 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
14022 * config/arm/arm_neon.h (vusdot_s32): New.
14023 (vusdot_lane_s32): New.
14024 (vusdotq_lane_s32): New.
14025 (vsudot_lane_s32): New.
14026 (vsudotq_lane_s32): New.
14027 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New.
14028 * config/arm/iterators.md (DOTPROD_I8MM): New.
14029 (sup, opsuffix): Add <us/su>.
14030 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
14031 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
14033 2020-02-11 Richard Biener <rguenther@suse.de>
14035 PR tree-optimization/93661
14036 PR tree-optimization/93662
14037 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
14038 tree_to_poly_int64.
14039 * tree-sra.c (get_access_for_expr): Likewise.
14041 2020-02-10 Jakub Jelinek <jakub@redhat.com>
14044 * config/i386/sse.md (VI_256_AVX2): New mode iterator.
14045 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
14046 Change condition from TARGET_AVX2 to TARGET_AVX.
14048 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
14051 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
14052 argument of strncmp.
14054 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
14056 Try to generate zero-based comparisons.
14057 * config/cris/cris.c (cris_reduce_compare): New function.
14058 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype.
14059 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4")
14060 (cstore<mode>4"): Apply cris_reduce_compare in expanders.
14062 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
14065 * config/arm/arm.md (movsi_compare0): Allow SP as a source register
14066 in Thumb state and also as a destination in Arm state. Add T16
14069 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
14071 * md.texi (Define Subst): Match closing paren in example.
14073 2020-02-10 Jakub Jelinek <jakub@redhat.com>
14077 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
14078 arguments of strncmp.
14080 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
14083 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge
14084 but different source value.
14085 (adjust_callers_for_value_intersection): New function.
14086 (gather_edges_for_value): Adjust order of callers to let a
14087 non-self-recursive caller be the first element.
14088 (self_recursive_pass_through_p): Add a new parameter "simple", and
14089 check generalized self-recursive pass-through jump function.
14090 (self_recursive_agg_pass_through_p): Likewise.
14091 (find_more_scalar_values_for_callers_subset): Compute value from
14092 pass-through jump function for self-recursive.
14093 (intersect_with_plats): Cleanup previous implementation code for value
14094 itersection with self-recursive call edge.
14095 (intersect_with_agg_replacements): Likewise.
14096 (intersect_aggregates_with_edge): Deduce value from pass-through jump
14097 function for self-recursive call edge. Cleanup previous implementation
14098 code for value intersection with self-recursive call edge.
14099 (decide_whether_version_node): Remove dead callers and adjust order
14100 to let a non-self-recursive caller be the first element.
14102 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
14104 * recog.c: Move pass_split_before_sched2 code in front of
14105 pass_split_before_regstack.
14106 (pass_data_split_before_sched2): Rename pass to split3 from split4.
14107 (pass_data_split_before_regstack): Rename pass to split4 from split3.
14108 (rest_of_handle_split_before_sched2): Remove.
14109 (pass_split_before_sched2::execute): Unconditionally call
14111 (enable_split_before_sched2): New function.
14112 (pass_split_before_sched2::gate): Use enable_split_before_sched2.
14113 (pass_split_before_regstack::gate): Ditto.
14114 * config/nds32/nds32.c (nds32_split_double_word_load_store_p):
14115 Update name check for renamed split4 pass.
14116 * config/sh/sh.c (register_sh_passes): Update pass insertion
14117 point for renamed split4 pass.
14119 2020-02-09 Jakub Jelinek <jakub@redhat.com>
14121 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote
14122 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid
14123 copying them around between host and target.
14125 2020-02-08 Andrew Pinski <apinski@marvell.com>
14128 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
14129 STRICT_ALIGNMENT also.
14131 2020-02-08 Jim Wilson <jimw@sifive.com>
14134 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
14136 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
14137 Jakub Jelinek <jakub@redhat.com>
14140 * config/i386/i386.h (CALL_USED_REGISTERS): Make
14141 xmm16-xmm31 call-used even in 64-bit ms-abi.
14143 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
14145 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry.
14146 (simd_ummla, simd_usmmla): Likewise.
14147 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New.
14148 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New.
14149 (vusmmlaq_s32): New.
14151 2020-02-07 Richard Biener <rguenther@suse.de>
14153 PR middle-end/93519
14154 * tree-inline.c (fold_marked_statements): Do a PRE walk,
14155 skipping unreachable regions.
14156 (optimize_inline_calls): Skip folding stmts when we didn't
14159 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
14162 * config/i386/i386.c (function_arg_ms_64): Add a type argument.
14163 Don't return aggregates with only SFmode and DFmode in SSE
14165 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
14167 2020-02-07 Jakub Jelinek <jakub@redhat.com>
14170 * config/rs6000/rs6000-logue.c
14171 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn,
14172 if it fails, move rs into end_addr and retry. Add
14173 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or
14174 the insn pattern doesn't describe well what exactly happens to
14178 * config/i386/predicates.md (avx_identity_operand): Remove.
14179 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove.
14180 (avx_<castmode><avxsizesuffix>_<castmode>,
14181 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to
14182 a VEC_CONCAT of the operand and UNSPEC_CAST.
14183 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to
14184 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with
14188 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
14189 recog_data.insn if distance_non_agu_define changed it.
14191 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
14194 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0
14195 we only had X-FORM (reg+reg) addressing for vectors. Also before
14196 ISA 3.0, we only had X-FORM addressing for scalars in the
14197 traditional Altivec registers.
14199 2020-02-06 <zhongyunde@huawei.com>
14200 Vladimir Makarov <vmakarov@redhat.com>
14202 PR rtl-optimization/93561
14203 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
14204 hard register range.
14206 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
14208 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
14211 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
14213 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case
14214 where the low and the high 32 bits are equal to each other specially,
14215 with an rldimi instruction.
14217 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
14219 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
14221 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
14223 * config/arm/arm-tables.opt: Regenerate.
14225 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
14228 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare.
14229 * config/aarch64/aarch64.c (aarch64_movk_shift): New function.
14230 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern.
14232 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
14234 PR rtl-optimization/87763
14235 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
14237 2020-02-06 Delia Burduv <delia.burduv@arm.com>
14239 * config/aarch64/aarch64-simd-builtins.def
14240 (bfmlaq): New built-in function.
14241 (bfmlalb): New built-in function.
14242 (bfmlalt): New built-in function.
14243 (bfmlalb_lane): New built-in function.
14244 (bfmlalt_lane): New built-in function.
14245 * config/aarch64/aarch64-simd.md
14246 (aarch64_bfmmlaqv4sf): New pattern.
14247 (aarch64_bfmlal<bt>v4sf): New pattern.
14248 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern.
14249 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic.
14250 (vbfmlalbq_f32): New intrinsic.
14251 (vbfmlaltq_f32): New intrinsic.
14252 (vbfmlalbq_lane_f32): New intrinsic.
14253 (vbfmlaltq_lane_f32): New intrinsic.
14254 (vbfmlalbq_laneq_f32): New intrinsic.
14255 (vbfmlaltq_laneq_f32): New intrinsic.
14256 * config/aarch64/iterators.md (BF_MLA): New int iterator.
14257 (bt): New int attribute.
14259 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
14261 * config/i386/i386.md (*pushtf): Emit "#" instead of
14262 calling gcc_unreachable in insn output.
14265 (*pushsf_rex64): Ditto for alternatives other than 1.
14266 (*pushsf): Ditto for alternatives other than 1.
14268 2020-02-06 Martin Liska <mliska@suse.cz>
14270 PR gcov-profile/91971
14271 PR gcov-profile/93466
14272 * coverage.c (coverage_init): Revert mangling of
14273 path into filename. It can lead to huge filename length.
14274 Creation of subfolders seem more natural.
14276 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
14279 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
14280 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
14281 Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
14283 2020-02-06 Jakub Jelinek <jakub@redhat.com>
14286 * config/i386/predicates.md (avx_identity_operand): New predicate.
14287 * config/i386/sse.md (*avx_vec_concat<mode>_1): New
14288 define_insn_and_split.
14291 * omp-low.c (use_pointer_for_field): For nested constructs, also
14292 look for map clauses on target construct.
14293 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
14294 taskreg_nesting_level.
14297 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
14298 shared clause, call omp_notice_variable on outer context if any.
14300 2020-02-05 Jason Merrill <jason@redhat.com>
14303 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
14304 non-zero address even if weak and not yet defined.
14306 2020-02-05 Martin Sebor <msebor@redhat.com>
14308 PR tree-optimization/92765
14309 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL.
14310 * tree-ssa-strlen.c (compute_string_length): Remove.
14311 (determine_min_objsize): Remove.
14312 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic.
14313 Avoid using type size as the upper bound on string length.
14314 (handle_builtin_string_cmp): Add an argument. Adjust.
14315 (strlen_check_and_optimize_call): Pass additional argument to
14316 handle_builtin_string_cmp.
14318 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
14320 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
14321 (*pushdi2_rex64 peephole2): Unconditionally split after
14322 epilogue_completed.
14323 (*ashl<mode>3_doubleword): Ditto.
14324 (*<shift_insn><mode>3_doubleword): Ditto.
14326 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
14329 * config/rs6000/rs6000.c (get_vector_offset): Fix
14331 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
14333 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
14335 2020-02-05 David Malcolm <dmalcolm@redhat.com>
14337 * doc/analyzer.texi
14338 (Special Functions for Debugging the Analyzer): Update description
14339 of __analyzer_dump_exploded_nodes.
14341 2020-02-05 Jakub Jelinek <jakub@redhat.com>
14344 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only
14345 include sets and not clobbers in the vzeroupper pattern.
14346 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that
14347 the parallel has 17 (64-bit) or 9 (32-bit) elts.
14348 (*avx_vzeroupper_1): New define_insn_and_split.
14351 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
14352 don't run when !optimize.
14353 (pass_split_before_regstack::gate): For STACK_REGS targets, run even
14356 2020-02-05 Richard Biener <rguenther@suse.de>
14358 PR middle-end/90648
14359 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
14360 checks before matching calls.
14362 2020-02-05 Jakub Jelinek <jakub@redhat.com>
14364 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
14365 function comment typo.
14367 PR middle-end/93555
14368 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
14369 simd_clone_create failed when i == 0, adjust clone->nargs by
14372 2020-02-05 Martin Liska <mliska@suse.cz>
14375 * doc/invoke.texi: Document that one should
14376 not combine ASLR and -fpch.
14378 2020-02-04 Richard Biener <rguenther@suse.de>
14380 PR tree-optimization/93538
14381 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
14383 2020-02-04 Richard Biener <rguenther@suse.de>
14385 PR tree-optimization/91123
14386 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method.
14387 (vn_walk_cb_data::last_vuse): New member.
14388 (vn_walk_cb_data::saved_operands): Likewsie.
14389 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands.
14390 (vn_walk_cb_data::push_partial_def): Use finish.
14391 (vn_reference_lookup_2): Update last_vuse and use finish if
14392 we've saved operands.
14393 (vn_reference_lookup_3): Use finish and update calls to
14394 push_partial_defs everywhere. When translating through
14395 memcpy or aggregate copies save off operands and alias-set.
14396 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE
14397 operation for redundant store removal.
14399 2020-02-04 Richard Biener <rguenther@suse.de>
14401 PR tree-optimization/92819
14402 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
14403 generating more stmts than before.
14405 2020-02-04 Martin Liska <mliska@suse.cz>
14407 * config/arm/arm.c (arm_gen_far_branch): Move the function
14408 outside of selftests.
14410 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14412 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper
14413 function to adjust PC-relative vector addresses.
14414 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to
14415 handle vectors with PC-relative addresses.
14417 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14419 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
14421 (hard_reg_and_mode_to_addr_mask): Delete.
14422 (rs6000_adjust_vec_address): If the original vector address
14423 was REG+REG or REG+OFFSET and the element is not zero, do the add
14424 of the elements in the original address before adding the offset
14425 for the vector element. Use address_to_insn_form to validate the
14426 address using the register being loaded, rather than guessing
14427 whether the address is a DS-FORM or DQ-FORM address.
14429 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14431 * config/rs6000/rs6000.c (get_vector_offset): New helper function
14432 to calculate the offset in memory from the start of a vector of a
14433 particular element. Add code to keep the element number in
14434 bounds if the element number is variable.
14435 (rs6000_adjust_vec_address): Move calculation of offset of the
14436 vector element to get_vector_offset.
14437 (rs6000_split_vec_extract_var): Do not do the initial AND of
14438 element here, move the code to get_vector_offset.
14440 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14442 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
14445 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
14447 * config/rs6000/constraints.md: Improve documentation.
14449 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
14452 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
14453 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
14455 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
14457 * config.gcc: Remove "carrizo" support.
14458 * config/gcn/gcn-opts.h (processor_type): Likewise.
14459 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise.
14460 * config/gcn/gcn.opt (gpu_type): Likewise.
14461 * config/gcn/t-omp-device: Likewise.
14463 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
14466 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
14467 * config/arm/arm.c (arm_gen_far_branch): New function
14468 arm_gen_far_branch.
14469 * config/arm/arm.md: Update b<cond> for Thumb2 range checks.
14471 2020-02-03 Julian Brown <julian@codesourcery.com>
14472 Tobias Burnus <tobias@codesourcery.com>
14474 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
14476 2020-02-03 Jakub Jelinek <jakub@redhat.com>
14479 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit
14480 valid RTL to sum up the lowest and second lowest bytes of the popcnt
14483 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
14485 PR rtl-optimization/91333
14486 * ira-color.c (struct allocno_color_data): Add member
14488 (init_allocno_threads): Set the member up.
14489 (bucket_allocno_compare_func): Add compare hard reg
14492 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
14494 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
14496 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION.
14497 * config.in: Regenerated.
14498 * configure: Regenerated.
14499 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling
14500 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION.
14501 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
14503 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
14505 * configure: Regenerate.
14507 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
14509 PR rtl-optimization/91333
14510 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
14511 reg preferences comparison up.
14513 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
14515 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro.
14516 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to
14517 aarch64-sve-builtins-base.h.
14518 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to
14519 aarch64-sve-builtins-base.cc.
14520 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane)
14521 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
14522 (svcvtnt): Declare.
14523 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane)
14524 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
14525 (svcvtnt): New functions.
14526 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane)
14527 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
14528 (svcvtnt): New functions.
14529 (svcvt): Add a form that converts f32 to bf16.
14530 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat)
14531 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n):
14533 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
14534 Treat B as bfloat16_t.
14535 (ternary_bfloat_lane_base): New class.
14536 (ternary_bfloat_def): Likewise.
14537 (ternary_bfloat): New shape.
14538 (ternary_bfloat_lane_def): New class.
14539 (ternary_bfloat_lane): New shape.
14540 (ternary_bfloat_lanex2_def): New class.
14541 (ternary_bfloat_lanex2): New shape.
14542 (ternary_bfloat_opt_n_def): New class.
14543 (ternary_bfloat_opt_n): New shape.
14544 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro.
14545 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf)
14546 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns.
14547 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
14548 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
14549 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
14550 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise.
14551 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key
14552 the pattern off the narrow mode instead of the wider one.
14553 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator.
14554 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs.
14555 (sve_fp_op): Handle them.
14556 (SVE_BFLOAT_TERNARY_LONG): New int itertor.
14557 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
14559 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
14561 * config/aarch64/arm_sve.h: Include arm_bf16.h.
14562 * config/aarch64/aarch64-modes.def (BF): Move definition before
14563 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF.
14564 (SVE_MODES): Handle BF modes.
14565 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
14567 (aarch64_full_sve_mode): Likewise.
14568 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
14570 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF.
14571 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore)
14572 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count)
14573 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the
14575 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
14577 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro.
14578 (TYPES_all_data): Add bf16.
14579 (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
14580 (register_tuple_type): Increase buffer size.
14581 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type.
14582 (bf16): New type suffix.
14583 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv)
14584 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax)
14585 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr):
14586 Change type from all_data to all_arith.
14587 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp)
14588 (svminp): Likewise.
14590 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
14591 Matthew Malcomson <matthew.malcomson@arm.com>
14592 Richard Sandiford <richard.sandiford@arm.com>
14594 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension.
14595 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
14596 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and
14597 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define
14598 __ARM_FEATURE_MATMUL_FP64.
14599 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16)
14600 (sve): Add AARCH64_FL_F32MM to the list of extensions that should
14601 be disabled at the same time.
14602 (f32mm): New extension.
14603 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro.
14604 (AARCH64_FL_F64MM): Bump to the next bit up.
14605 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM)
14606 (TARGET_SVE_F64MM): New macros.
14607 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator.
14608 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL)
14609 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q)
14610 (UNSPEC_ZIP2Q): New unspeccs.
14611 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators.
14612 (optab, sur, perm_insn): Handle the new unspecs.
14613 (sve_fp_op): Handle UNSPEC_FMMLA. Resort.
14614 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use
14615 TARGET_SVE_F64MM instead of separate tests.
14616 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern.
14617 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise.
14618 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise.
14619 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise.
14620 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise.
14621 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro.
14622 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it.
14623 (TYPES_s_signed): New macro.
14624 (TYPES_s_integer): Use it.
14625 (TYPES_d_float): New macro.
14626 (TYPES_d_data): Use it.
14627 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare.
14628 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq)
14629 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise.
14630 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class.
14631 (svmmla): New shape.
14632 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3
14633 template parameters.
14634 (ternary_resize2_lane_base): Likewise.
14635 (ternary_resize2_base): New class.
14636 (ternary_qq_lane_base): Likewise.
14637 (ternary_intq_uintq_lane_def): Likewise.
14638 (ternary_intq_uintq_lane): New shape.
14639 (ternary_intq_uintq_opt_n_def): New class
14640 (ternary_intq_uintq_opt_n): New shape.
14641 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base.
14642 (ternary_uintq_intq_def): New class.
14643 (ternary_uintq_intq): New shape.
14644 (ternary_uintq_intq_lane_def): New class.
14645 (ternary_uintq_intq_lane): New shape.
14646 (ternary_uintq_intq_opt_n_def): New class.
14647 (ternary_uintq_intq_opt_n): New shape.
14648 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot)
14649 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla)
14650 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare.
14651 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl):
14653 (svdotprod_lane_impl): ...this new class.
14654 (svmmla_impl, svusdot_impl): New classes.
14655 (svdot_lane): Update to use svdotprod_lane_impl.
14656 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot)
14657 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New
14659 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base
14660 function, with no types defined.
14661 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New
14662 AARCH64_FL_I8MM functions.
14663 (svmmla): New AARCH64_FL_F32MM function.
14664 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6.
14665 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New
14666 AARCH64_FL_F64MM function.
14667 (REQUIRED_EXTENSIONS):
14669 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
14671 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
14674 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
14676 * config/i386/i386.md (*movoi_internal_avx): Do not check for
14677 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling.
14678 (*movti_internal): Do not check for
14679 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
14680 (*movtf_internal): Move check for TARGET_SSE2 and size optimization
14681 just after check for TARGET_AVX.
14682 (*movdf_internal): Ditto.
14683 * config/i386/mmx.md (*mov<mode>_internal): Do not check for
14684 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
14685 * config/i386/sse.md (mov<mode>_internal): Only check
14686 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check
14687 for TARGET_SSE2 and size optimization just after check for TARGET_AVX.
14688 (<sse>_andnot<mode>3<mask_name>): Move check for
14689 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX.
14690 (<code><mode>3<mask_name>): Ditto.
14691 (*andnot<mode>3): Ditto.
14692 (*andnottf3): Ditto.
14693 (*<code><mode>3): Ditto.
14694 (*<code>tf3): Ditto.
14695 (*andnot<VI:mode>3): Remove
14696 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling.
14697 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto.
14698 (*<code><VI12_AVX_AVX512F:mode>3): Ditto.
14699 (sse4_1_blendv<ssemodesuffix>): Ditto.
14700 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL):
14701 Explain that tune applies to 128bit instructions only.
14703 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
14705 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count
14706 to definition of hsa_kernel_description. Parse assembly to find SGPR
14707 and VGPR count of kernel and store in hsa_kernel_description.
14709 2020-01-31 Tamar Christina <tamar.christina@arm.com>
14711 PR rtl-optimization/91838
14712 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
14713 to truncate if allowed or reject combination.
14715 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
14717 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
14718 (find_inv_vars_cb): Likewise.
14720 2020-01-31 David Malcolm <dmalcolm@redhat.com>
14722 * calls.c (special_function_p): Split out the check for DECL_NAME
14723 being non-NULL and fndecl being extern at file scope into a
14724 new maybe_special_function_p and call it. Drop check for fndecl
14725 being non-NULL that was after a usage of DECL_NAME (fndecl).
14726 * tree.h (maybe_special_function_p): New inline function.
14728 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
14730 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
14731 (mask_gather_load<mode>): ... here, and zero-initialize the
14733 (maskload<mode>di): Zero-initialize the destination.
14734 * config/gcn/gcn.c:
14736 2020-01-30 David Malcolm <dmalcolm@redhat.com>
14739 * doc/analyzer.texi (Limitations): Note that constraints on
14740 floating-point values are currently ignored.
14742 2020-01-30 Jakub Jelinek <jakub@redhat.com>
14745 * symtab.c (symtab_node::noninterposable_alias): If localalias
14746 already exists, but is not usable, append numbers after it until
14747 a unique name is found. Formatting fix.
14749 PR middle-end/93505
14750 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
14753 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
14755 * config/gcn/gcn.c (print_operand): Handle LTGT.
14756 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
14758 2020-01-30 Richard Biener <rguenther@suse.de>
14760 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
14761 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
14763 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
14765 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
14766 without a DECL in .data.rel.ro.local.
14768 2020-01-30 Jakub Jelinek <jakub@redhat.com>
14771 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
14775 * config/i386/sse.md
14776 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ...
14777 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use
14778 any_extend code iterator instead of always zero_extend.
14779 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ...
14780 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this.
14781 Use any_extend code iterator instead of always zero_extend.
14782 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ...
14783 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this.
14784 Use any_extend code iterator instead of always zero_extend.
14785 (*sse2_pmovmskb_ext): New define_insn.
14786 (*sse2_pmovmskb_ext_lt): New define_insn_and_split.
14789 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
14790 (*popcountsi2_zext_falsedep): New define_insn.
14792 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
14794 * config.in: Regenerated.
14795 * configure: Regenerated.
14797 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
14800 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
14801 LLVM's assembler changed the default in version 9.
14803 2020-01-24 Jeff Law <law@redhat.com>
14805 PR tree-optimization/89689
14806 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
14808 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
14812 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
14814 PR rtl-optimization/87763
14815 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
14816 simplification to handle subregs as well as bare regs.
14817 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
14819 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
14822 * ira.c (ira): Revert use of simplified LRA algorithm.
14824 2020-01-29 Martin Jambor <mjambor@suse.cz>
14826 PR tree-optimization/92706
14827 * tree-sra.c (struct access): Fields first_link, last_link,
14828 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link,
14829 next_rhs_queued and grp_rhs_queued respectively, new fields
14830 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued.
14831 (struct assign_link): Field next renamed to next_rhs, new field
14832 next_lhs. Updated comment.
14833 (work_queue_head): Renamed to rhs_work_queue_head.
14834 (lhs_work_queue_head): New variable.
14835 (add_link_to_lhs): New function.
14836 (relink_to_new_repr): Also relink LHS lists.
14837 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue.
14838 (add_access_to_lhs_work_queue): New function.
14839 (pop_access_from_work_queue): Renamed to
14840 pop_access_from_rhs_work_queue.
14841 (pop_access_from_lhs_work_queue): New function.
14842 (build_accesses_from_assign): Also add links to LHS lists and to LHS
14844 (child_would_conflict_in_lacc): Renamed to
14845 child_would_conflict_in_acc. Adjusted parameter names.
14846 (create_artificial_child_access): New parameter set_grp_read, use it.
14847 (subtree_mark_written_and_enqueue): Renamed to
14848 subtree_mark_written_and_rhs_enqueue.
14849 (propagate_subaccesses_across_link): Renamed to
14850 propagate_subaccesses_from_rhs.
14851 (propagate_subaccesses_from_lhs): New function.
14852 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to
14855 2020-01-29 Martin Jambor <mjambor@suse.cz>
14857 PR tree-optimization/92706
14858 * tree-sra.c (struct access): Adjust comment of
14859 grp_total_scalarization.
14860 (find_access_in_subtree): Look for single children spanning an entire
14862 (scalarizable_type_p): Allow register accesses, adjust callers.
14863 (completely_scalarize): Remove function.
14864 (scalarize_elem): Likewise.
14865 (create_total_scalarization_access): Likewise.
14866 (sort_and_splice_var_accesses): Do not track total scalarization
14868 (analyze_access_subtree): New parameter totally, adjust to new meaning
14869 of grp_total_scalarization.
14870 (analyze_access_trees): Pass new parameter to analyze_access_subtree.
14871 (can_totally_scalarize_forest_p): New function.
14872 (create_total_scalarization_access): Likewise.
14873 (create_total_access_and_reshape): Likewise.
14874 (total_should_skip_creating_access): Likewise.
14875 (totally_scalarize_subtree): Likewise.
14876 (analyze_all_variable_accesses): Perform total scalarization after
14877 subaccess propagation using the new functions above.
14878 (initialize_constant_pool_replacements): Output initializers by
14879 traversing the access tree.
14881 2020-01-29 Martin Jambor <mjambor@suse.cz>
14883 * tree-sra.c (verify_sra_access_forest): New function.
14884 (verify_all_sra_access_forests): Likewise.
14885 (create_artificial_child_access): Set parent.
14886 (analyze_all_variable_accesses): Call the verifier.
14888 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14890 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge
14891 if called on indirect edge.
14892 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of
14893 speculative call if needed.
14895 2020-01-29 Richard Biener <rguenther@suse.de>
14897 PR tree-optimization/93428
14898 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load
14899 permutation when the load node is created.
14900 (vect_analyze_slp_instance): Re-use it here.
14902 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14904 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
14906 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
14908 PR rtl-optimization/93272
14909 * ira-lives.c (process_out_of_region_eh_regs): New function.
14910 (process_bb_node_lives): Call it.
14912 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14914 * coverage.c (read_counts_file): Make error message lowercase.
14916 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14918 * profile-count.c (profile_quality_display_names): Fix ordering.
14920 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14923 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site
14924 hash only when edge is first within the sequence.
14925 (cgraph_edge::set_call_stmt): Update handling of speculative calls.
14926 (symbol_table::create_edge): Do not set target_prob.
14927 (cgraph_edge::remove_caller): Watch for speculative calls when updating
14928 the call site hash.
14929 (cgraph_edge::make_speculative): Drop target_prob parameter.
14930 (cgraph_edge::speculative_call_info): Remove.
14931 (cgraph_edge::first_speculative_call_target): New member function.
14932 (update_call_stmt_hash_for_removing_direct_edge): New function.
14933 (cgraph_edge::resolve_speculation): Rewrite to new API.
14934 (cgraph_edge::speculative_call_for_target): New member function.
14935 (cgraph_edge::make_direct): Rewrite to new API; fix handling of
14936 multiple speculation targets.
14937 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating
14939 (verify_speculative_call): Verify that targets form an interval.
14940 * cgraph.h (cgraph_edge::speculative_call_info): Remove.
14941 (cgraph_edge::first_speculative_call_target): New member function.
14942 (cgraph_edge::next_speculative_call_target): New member function.
14943 (cgraph_edge::speculative_call_target_ref): New member function.
14944 (cgraph_edge;:speculative_call_indirect_edge): New member funtion.
14945 (cgraph_edge): Remove target_prob.
14946 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
14947 Fix handling of speculative calls.
14948 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals.
14949 * ipa-fnsummary.c (analyze_function_body): Likewise.
14950 * ipa-inline.c (speculation_useful_p): Use new speculative call API.
14951 * ipa-profile.c (dump_histogram): Fix formating.
14952 (ipa_profile_generate_summary): Watch for overflows.
14953 (ipa_profile): Do not require probablity to be 1/2; update to new API.
14954 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API.
14955 (update_indirect_edges_after_inlining): Update to new API.
14956 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call
14958 * profile-count.h: (profile_probability::adjusted): New.
14959 * tree-inline.c (copy_bb): Update to new speculative call API; fix
14960 updating of profile.
14961 * value-prof.c (gimple_ic_transform): Rename to ...
14962 (dump_ic_profile): ... this one; update dumping.
14963 (stream_in_histogram_value): Fix formating.
14964 (gimple_value_profile_transformations): Update.
14966 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
14969 * config/i386/i386.md (*movoi_internal_avx): Remove
14970 TARGET_SSE_TYPELESS_STORES check.
14971 (*movti_internal): Prefer TARGET_AVX over
14972 TARGET_SSE_TYPELESS_STORES.
14973 (*movtf_internal): Likewise.
14974 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over
14975 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check
14976 from TARGET_SSE_TYPELESS_STORES.
14978 2020-01-28 David Malcolm <dmalcolm@redhat.com>
14980 * diagnostic-core.h (warning_at): Rename overload to...
14981 (warning_meta): ...this.
14982 (emit_diagnostic_valist): Delete decl of overload taking
14983 diagnostic_metadata.
14984 * diagnostic.c (emit_diagnostic_valist): Likewise for defn.
14985 (warning_at): Rename overload taking diagnostic_metadata to...
14986 (warning_meta): ...this.
14988 2020-01-28 Richard Biener <rguenther@suse.de>
14990 PR tree-optimization/93439
14991 * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
14992 * tree-cfg.c (move_sese_region_to_fn): ... here.
14993 (verify_types_in_gimple_reference): Verify used cliques are
14996 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
14999 * config/i386/i386-options.c (set_ix86_tune_features): Add an
15000 argument of a pointer to struct gcc_options and pass it to
15001 parse_mtune_ctrl_str.
15002 (ix86_function_specific_restore): Pass opts to
15003 set_ix86_tune_features.
15004 (ix86_option_override_internal): Likewise.
15005 (parse_mtune_ctrl_str): Add an argument of a pointer to struct
15006 gcc_options and use it for x_ix86_tune_ctrl_string.
15008 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
15010 PR rtl-optimization/87763
15011 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
15012 simplification to handle subregs as well as bare regs.
15013 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
15015 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
15017 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
15018 for reduction chains that (now) include a call.
15020 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
15022 PR tree-optimization/92822
15023 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling
15024 out the don't-care elements of a vector whose significant elements
15025 are duplicates, make the don't-care elements duplicates too.
15027 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
15029 PR tree-optimization/93434
15030 * tree-predcom.c (split_data_refs_to_components): Record which
15031 components have had aliasing loads removed. Prevent store-store
15032 commoning for all such components.
15034 2020-01-28 Jakub Jelinek <jakub@redhat.com>
15037 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
15038 -1 or is_vshift is true, use new_vector with number of elts npatterns
15039 rather than new_unary_operation.
15041 PR tree-optimization/93454
15042 * gimple-fold.c (fold_array_ctor_reference): Perform
15043 elt_size.to_uhwi () just once, instead of calling it in every
15044 iteration. Punt if that value is above size of the temporary
15045 buffer. Decrease third native_encode_expr argument when
15046 bufoff + elt_sz is above size of buf.
15048 2020-01-27 Joseph Myers <joseph@codesourcery.com>
15050 * config/mips/mips.c (mips_declare_object_name)
15051 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
15053 2020-01-27 Martin Liska <mliska@suse.cz>
15055 PR gcov-profile/93403
15056 * tree-profile.c (gimple_init_gcov_profiler): Generate
15057 both __gcov_indirect_call_profiler_v4 and
15058 __gcov_indirect_call_profiler_v4_atomic.
15060 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15063 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
15065 (@aarch64_split_simd_mov<mode>): Use it.
15066 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative.
15067 Leave the vec_extract patterns to handle 2-element vectors.
15068 (aarch64_simd_mov_from_<mode>high): Likewise.
15069 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander.
15070 (vec_extractv2dfv1df): Likewise.
15072 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15074 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
15075 jump conditions for *compare_condjump<GPI:mode>.
15077 2020-01-27 David Malcolm <dmalcolm@redhat.com>
15080 * digraph.cc (test_edge::test_edge): Specify template for base
15083 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
15085 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
15087 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
15089 * config/arc/arc-protos.h (gen_mlo): Remove.
15090 (gen_mhi): Likewise.
15091 * config/arc/arc.c (AUX_MULHI): Define.
15092 (arc_must_save_reister): Special handling for r58/59.
15093 (arc_compute_frame_size): Consider mlo/mhi registers.
15094 (arc_save_callee_saves): Emit fp/sp move only when emit_move
15096 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from
15097 mlo/mhi name selection.
15098 (arc_restore_callee_saves): Don't early restore blink when ISR.
15099 (arc_expand_prologue): Add mlo/mhi saving.
15100 (arc_expand_epilogue): Add mlo/mhi restoring.
15103 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register
15104 numbering when MUL64 option is used.
15105 (DWARF2_FRAME_REG_OUT): Define.
15106 * config/arc/arc.md (arc600_stall): New pattern.
15107 (VUNSPEC_ARC_ARC600_STALL): Define.
15108 (mulsi64): Use correct mlo/mhi registers.
15109 (mulsi_600): Clean it up.
15110 * config/arc/predicates.md (mlo_operand): Remove any dependency on
15112 (mhi_operand): Likewise.
15114 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
15115 Petro Karashchenko <petro.karashchenko@ring.com>
15117 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct
15118 attributes if needed.
15119 (prepare_move_operands): Generate special unspec instruction for
15121 (arc_isuncached_mem_p): Propagate uncached attribute to each
15123 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define.
15124 (VUNSPEC_ARC_STDI): Likewise.
15125 (ALLI): New mode iterator.
15126 (mALLI): New mode attribute.
15127 (lddi): New instruction pattern.
15129 (stdidi_split): Split instruction for architectures which are not
15130 supporting ll64 option.
15131 (lddidi_split): Likewise.
15133 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15135 PR rtl-optimization/92989
15136 * lra-lives.c (process_bb_lives): Update the live-in set before
15137 processing additional clobbers.
15139 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15141 PR rtl-optimization/93170
15142 * cselib.c (cselib_invalidate_regno_val): New function, split out
15144 (cselib_invalidate_regno): ...here.
15145 (cselib_invalidated_by_call_p): New function.
15146 (cselib_process_insn): Iterate over all the hard-register entries in
15147 REG_VALUES and invalidate any that cross call-clobbered registers.
15149 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15151 * dojump.c (split_comparison): Use HONOR_NANS rather than
15152 HONOR_SNANS when splitting LTGT.
15154 2020-01-27 Martin Liska <mliska@suse.cz>
15157 * opts.c (print_filtered_help): Exclude language-specific
15158 options from --help=common unless enabled in all FEs.
15160 2020-01-27 Martin Liska <mliska@suse.cz>
15162 * opts.c (print_help): Exclude params from
15163 all except --help=param.
15165 2020-01-27 Martin Liska <mliska@suse.cz>
15168 * config/i386/i386-features.c (make_resolver_func):
15169 Align the code with ppc64 target implementation.
15170 Do not generate a unique name for resolver function.
15172 2020-01-27 Richard Biener <rguenther@suse.de>
15174 PR tree-optimization/93397
15175 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
15176 converted reduction chain SLP graph adjustment.
15178 2020-01-26 Marek Polacek <polacek@redhat.com>
15181 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
15184 2020-01-26 Jason Merrill <jason@redhat.com>
15187 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
15190 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
15192 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
15193 (rx_setmem): Likewise.
15195 2020-01-26 Jakub Jelinek <jakub@redhat.com>
15198 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
15199 Use nonimmediate_operand instead of x86_64_hilo_general_operand and
15200 drop <di> from constraint of last operand.
15203 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
15204 TARGET_AVX2 and V4DFmode not in the split condition, but in the
15205 pattern condition, though allow { 0, 0, 0, 0 } broadcast always.
15207 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
15210 * ipa-cp.c (get_info_about_necessary_edges): Remove value
15213 2020-01-24 Jeff Law <law@redhat.com>
15215 PR tree-optimization/92788
15216 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
15219 2020-01-24 Jakub Jelinek <jakub@redhat.com>
15222 * config/i386/sse.md (*avx_vperm_broadcast_v4sf,
15223 *avx_vperm_broadcast_<mode>,
15224 <sse2_avx_avx512f>_vpermil<mode><mask_name>,
15225 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
15226 Move before avx2_perm<mode>/avx512f_perm<mode>.
15229 * simplify-rtx.c (simplify_const_unary_operation,
15230 simplify_const_binary_operation): Punt for mode precision above
15231 MAX_BITSIZE_MODE_ANY_INT.
15233 2020-01-24 Andrew Pinski <apinski@marvell.com>
15235 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
15236 alu.shift_reg to 0.
15238 2020-01-24 Jeff Law <law@redhat.com>
15241 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
15242 for REGs. Call output_operand_lossage to get more reasonable
15245 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
15247 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
15248 gcn_fp_compare_operator.
15249 (vec_cmpu<mode>di): Use gcn_compare_operator.
15250 (vec_cmp<u>v64qidi): Use gcn_compare_operator.
15251 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
15252 (vec_cmpu<mode>di_exec): Use gcn_compare_operator.
15253 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
15254 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
15255 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
15256 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
15257 gcn_fp_compare_operator.
15258 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
15259 gcn_fp_compare_operator.
15260 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
15261 gcn_fp_compare_operator.
15262 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
15263 gcn_fp_compare_operator.
15265 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
15267 * doc/install.texi (Cross-Compiler-Specific Options): Document
15268 `--with-toolexeclibdir' option.
15270 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
15272 * target.def (flags_regnum): Also mention effect on delay slot filling.
15273 * doc/tm.texi: Regenerate.
15275 2020-01-23 Jeff Law <law@redhat.com>
15277 PR translation/90162
15278 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
15280 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
15283 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
15286 2020-01-23 Jakub Jelinek <jakub@redhat.com>
15288 PR rtl-optimization/93402
15289 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
15292 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
15294 * config.in: Regenerated.
15295 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
15296 for TARGET_LIBC_GNUSTACK.
15297 * configure: Regenerated.
15298 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
15299 found to be 2.31 or greater.
15301 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
15303 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
15305 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
15306 (mips_asm_file_end): New function. Delegate to
15307 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
15308 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
15310 2020-01-23 Jakub Jelinek <jakub@redhat.com>
15313 * config/i386/i386-modes.def (POImode): New mode.
15314 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
15315 * config/i386/i386.md (DPWI): New mode attribute.
15316 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
15317 (QWI): Rename to...
15318 (QPWI): ... this. Use POI instead of OI for TImode.
15319 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
15320 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
15323 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
15326 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
15328 (speculation_tracker_rev): New pattern.
15329 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
15330 Use speculation_tracker_rev to track the inverse condition.
15332 2020-01-23 Richard Biener <rguenther@suse.de>
15334 PR tree-optimization/93381
15335 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
15336 alias-set of the def as argument and record the first one.
15337 (vn_walk_cb_data::first_set): New member.
15338 (vn_reference_lookup_3): Pass the alias-set of the current def
15339 to push_partial_def. Fix alias-set used in the aggregate copy
15341 (vn_reference_lookup): Consistently set *last_vuse_ptr.
15342 * real.c (clear_significand_below): Fix out-of-bound access.
15344 2020-01-23 Jakub Jelinek <jakub@redhat.com>
15347 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
15348 New define_insn patterns.
15350 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
15352 * doc/sourcebuild.texi (check-function-bodies): Add an
15353 optional target/xfail selector.
15355 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
15357 PR rtl-optimization/93124
15358 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
15359 bare USE and CLOBBER insns.
15361 2020-01-22 Andrew Pinski <apinski@marvell.com>
15363 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
15365 2020-01-22 David Malcolm <dmalcolm@redhat.com>
15368 * gdbinit.in (break-on-saved-diagnostic): Update for move of
15369 diagnostic_manager into "ana" namespace.
15370 * selftest-run-tests.c (selftest::run_tests): Update for move of
15371 selftest::run_analyzer_selftests to
15372 ana::selftest::run_analyzer_selftests.
15374 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
15376 * cfgexpand.c (union_stack_vars): Update the size.
15378 2020-01-22 Richard Biener <rguenther@suse.de>
15380 PR tree-optimization/93381
15381 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
15382 throughout, handle all conversions the same.
15384 2020-01-22 Jakub Jelinek <jakub@redhat.com>
15387 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
15388 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
15389 predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
15390 Call force_reg on high_in2 unconditionally.
15392 2020-01-22 Martin Liska <mliska@suse.cz>
15394 PR tree-optimization/92924
15395 * profile.c (compute_value_histograms): Divide
15396 all counter values.
15398 2020-01-22 Jakub Jelinek <jakub@redhat.com>
15401 * output.h (assemble_name_resolve): Declare.
15402 * varasm.c (assemble_name_resolve): New function.
15403 (assemble_name): Use it.
15404 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
15406 2020-01-22 Joseph Myers <joseph@codesourcery.com>
15408 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
15409 update_web_docs_git instead of update_web_docs_svn.
15411 2020-01-21 Andrew Pinski <apinski@marvell.com>
15414 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0
15415 as PTR mode. Have operand 1 as being modeless, it can be P mode.
15416 (*tlsgd_small_<mode>): Likewise.
15417 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately)
15418 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode
15419 register. Convert that register back to dest using convert_mode.
15421 2020-01-21 Jim Wilson <jimw@sifive.com>
15423 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
15426 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
15427 Uros Bizjak <ubizjak@gmail.com>
15430 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
15432 (legitimize_tls_address): Do GNU2 TLS address computation in
15433 ptr_mode and zero-extend result to Pmode.
15434 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace
15435 :P with :PTR and Pmode with ptr_mode.
15436 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise.
15437 (*tls_dynamic_gnu2_call_64_<mode>): Likewise.
15438 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise.
15440 2020-01-21 Jakub Jelinek <jakub@redhat.com>
15443 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
15444 the last two operands are CONST_INT_P before using them as such.
15446 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
15448 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
15449 to get the integer element types.
15451 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
15453 * config/aarch64/aarch64-sve-builtins.h
15454 (function_expander::convert_to_pmode): Declare.
15455 * config/aarch64/aarch64-sve-builtins.cc
15456 (function_expander::convert_to_pmode): New function.
15457 (function_expander::get_contiguous_base): Use it.
15458 (function_expander::prepare_gather_address_operands): Likewise.
15459 * config/aarch64/aarch64-sve-builtins-sve2.cc
15460 (svwhilerw_svwhilewr_impl::expand): Likewise.
15462 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
15465 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set
15466 cfun->machine->label_is_assembled.
15467 (aarch64_print_patchable_function_entry): New.
15468 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
15469 * config/aarch64/aarch64.h (struct machine_function): New field,
15470 label_is_assembled.
15472 2020-01-21 David Malcolm <dmalcolm@redhat.com>
15475 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
15478 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
15481 * cgraph.c (cgraph_edge::resolve_speculation,
15482 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
15483 call_stmt_site_hash.
15485 2020-01-21 Martin Liska <mliska@suse.cz>
15487 * config/rs6000/rs6000.c (common_mode_defined): Remove
15490 2020-01-21 Richard Biener <rguenther@suse.de>
15492 PR tree-optimization/92328
15493 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve
15494 type when value-numbering same-sized store by inserting a
15496 (eliminate_dom_walker::eliminate_stmt): When eliminating
15497 a redundant store handle bit-reinterpretation of the same value.
15499 2020-01-21 Andrew Pinski <apinski@marvel.com>
15502 * tree-into-ssa.c (prepare_block_for_update_1): Split out
15504 (prepare_block_for_update): This. Use a worklist instead of
15507 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15509 * config/arm/arm.c (clear_operation_p):
15510 Initialise last_regno, skip first iteration
15511 based on the first_set value and use ints instead
15512 of the unnecessary HOST_WIDE_INTs.
15514 2020-01-21 Jakub Jelinek <jakub@redhat.com>
15517 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
15518 compare_mode other than SFmode or DFmode.
15520 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
15523 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
15524 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
15525 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
15527 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
15529 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
15531 2020-01-20 Andrew Pinski <apinski@marvell.com>
15533 PR middle-end/93242
15534 * targhooks.c (default_print_patchable_function_entry): Use
15535 output_asm_insn to emit the nop instruction.
15537 2020-01-20 Fangrui Song <maskray@google.com>
15539 PR middle-end/93194
15540 * targhooks.c (default_print_patchable_function_entry): Align to
15543 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
15546 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to
15547 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode.
15548 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ...
15549 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P.
15550 (*tls_dynamic_gnu2_lea_64): Renamed to ...
15551 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P.
15552 Remove the {q} suffix from lea.
15553 (*tls_dynamic_gnu2_call_64): Renamed to ...
15554 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P.
15555 (*tls_dynamic_gnu2_combine_64): Renamed to ...
15556 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P.
15557 Pass Pmode to gen_tls_dynamic_gnu2_64.
15559 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
15561 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
15563 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
15565 * config/aarch64/aarch64-sve-builtins-base.cc
15566 (svld1ro_impl::memory_vector_mode): Remove parameter name.
15568 2020-01-20 Richard Biener <rguenther@suse.de>
15571 * dwarf2out.c (prune_unused_types): Unconditionally mark
15572 called function DIEs.
15574 2020-01-20 Martin Liska <mliska@suse.cz>
15576 PR tree-optimization/93199
15577 * tree-eh.c (struct leh_state): Add
15578 new field outer_non_cleanup.
15579 (cleanup_is_dead_in): Pass leh_state instead
15580 of eh_region. Add a checking that state->outer_non_cleanup
15581 points to outer non-clean up region.
15582 (lower_try_finally): Record outer_non_cleanup
15584 (lower_catch): Likewise.
15585 (lower_eh_filter): Likewise.
15586 (lower_eh_must_not_throw): Likewise.
15587 (lower_cleanup): Likewise.
15589 2020-01-20 Richard Biener <rguenther@suse.de>
15591 PR tree-optimization/93094
15592 * tree-vectorizer.h (vect_loop_versioning): Adjust.
15593 (vect_transform_loop): Likewise.
15594 * tree-vectorizer.c (try_vectorize_loop_1): Pass down
15595 loop_vectorized_call to vect_transform_loop.
15596 * tree-vect-loop.c (vect_transform_loop): Pass down
15597 loop_vectorized_call to vect_loop_versioning.
15598 * tree-vect-loop-manip.c (vect_loop_versioning): Use
15599 the earlier discovered loop_vectorized_call.
15601 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
15603 * doc/contribute.texi: Update for SVN -> Git transition.
15604 * doc/install.texi: Likewise.
15606 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
15609 * cgraph.c (cgraph_edge::make_speculative): Increase number of
15610 speculative targets.
15611 (verify_speculative_call): New function
15612 (cgraph_node::verify_node): Use it.
15613 * ipa-profile.c (ipa_profile): Fix formating; do not set number of
15616 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
15619 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting.
15620 (cgraph_edge::make_direct): Remove all indirect targets.
15621 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct..
15622 (cgraph_node::verify_node): Verify that only one call_stmt or
15623 lto_stmt_uid is set.
15624 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or
15626 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt.
15627 (lto_output_ref): Simplify streaming of stmt.
15628 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid.
15630 2020-01-18 Tamar Christina <tamar.christina@arm.com>
15632 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
15633 Mark parameter unused.
15635 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
15637 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
15639 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
15641 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
15643 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
15645 * Makefile.in: Add coroutine-passes.o.
15646 * builtin-types.def (BT_CONST_SIZE): New.
15647 (BT_FN_BOOL_PTR): New.
15648 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New.
15649 * builtins.def (DEF_COROUTINE_BUILTIN): New.
15650 * coroutine-builtins.def: New file.
15651 * coroutine-passes.cc: New file.
15652 * function.h (struct GTY function): Add a bit to indicate that the
15653 function is a coroutine component.
15654 * internal-fn.c (expand_CO_FRAME): New.
15655 (expand_CO_YIELD): New.
15656 (expand_CO_SUSPN): New.
15657 (expand_CO_ACTOR): New.
15658 * internal-fn.def (CO_ACTOR): New.
15662 * passes.def: Add pass_coroutine_lower_builtins,
15663 pass_coroutine_early_expand_ifns.
15664 * tree-pass.h (make_pass_coroutine_lower_builtins): New.
15665 (make_pass_coroutine_early_expand_ifns): New.
15666 * doc/invoke.texi: Document the fcoroutines command line
15669 2020-01-18 Jakub Jelinek <jakub@redhat.com>
15671 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
15674 * config/arm/arm.c (clear_operation_p): Don't use REGNO until
15675 after checking the argument is a REG. Don't use REGNO (reg)
15676 again to set last_regno, reuse regno variable instead.
15678 2020-01-17 David Malcolm <dmalcolm@redhat.com>
15680 * doc/analyzer.texi (Limitations): Add note about NaN.
15682 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15683 Sudakshina Das <sudi.das@arm.com>
15685 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg
15686 and valid immediate.
15687 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate.
15688 (lshrdi3): Generate thumb2_lsrl for valid immediates.
15689 * config/arm/constraints.md (Pg): New.
15690 * config/arm/predicates.md (long_shift_imm): New.
15691 (arm_reg_or_long_shift_imm): Likewise.
15692 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative.
15693 (thumb2_lsll): Likewise.
15694 (thumb2_lsrl): New.
15696 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15697 Sudakshina Das <sudi.das@arm.com>
15699 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE.
15700 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE.
15701 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd
15702 register pairs for doubleword quantities for ARMv8.1M-Mainline.
15703 * config/arm/thumb2.md (thumb2_asrl): New.
15704 (thumb2_lsll): Likewise.
15706 2020-01-17 Jakub Jelinek <jakub@redhat.com>
15708 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
15711 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
15713 * gdbinit.in (help-gcc-hooks): New command.
15714 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc,
15715 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update
15718 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
15720 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
15721 correct target macro.
15723 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
15725 * config/aarch64/aarch64-protos.h
15726 (aarch64_sve_ld1ro_operand_p): New.
15727 * config/aarch64/aarch64-sve-builtins-base.cc
15728 (class load_replicate): New.
15729 (class svld1ro_impl): New.
15730 (class svld1rq_impl): Change to inherit from load_replicate.
15731 (svld1ro): New sve intrinsic function base.
15732 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro):
15733 New DEF_SVE_FUNCTION.
15734 * config/aarch64/aarch64-sve-builtins-base.h
15735 (svld1ro): New decl.
15736 * config/aarch64/aarch64-sve-builtins.cc
15737 (function_expander::add_mem_operand): Modify assert to allow
15739 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
15741 * config/aarch64/aarch64.c
15742 (aarch64_sve_ld1rq_operand_p): Implement in terms of ...
15743 (aarch64_sve_ld1rq_ld1ro_operand_p): This.
15744 (aarch64_sve_ld1ro_operand_p): New.
15745 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec.
15746 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New.
15747 * config/aarch64/predicates.md
15748 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New.
15750 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
15752 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64):
15753 Introduce this ACLE specified predefined macro.
15754 * config/aarch64/aarch64-option-extensions.def (f64mm): New.
15755 (fp): Disabling this disables f64mm.
15756 (simd): Disabling this disables f64mm.
15757 (fp16): Disabling this disables f64mm.
15758 (sve): Disabling this disables f64mm.
15759 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New.
15760 (AARCH64_ISA_F64MM): New.
15761 (TARGET_F64MM): New.
15762 * doc/invoke.texi (f64mm): Document new option.
15764 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
15766 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
15767 (neoversen1_tunings): Likewise.
15769 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
15772 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
15773 Add assert to ensure prolog has been emitted.
15774 (aarch64_split_atomic_op): Likewise.
15775 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
15776 Use epilogue_completed rather than reload_completed.
15777 (aarch64_atomic_exchange<mode>): Likewise.
15778 (aarch64_atomic_<atomic_optab><mode>): Likewise.
15779 (atomic_nand<mode>): Likewise.
15780 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
15781 (atomic_fetch_nand<mode>): Likewise.
15782 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
15783 (atomic_nand_fetch<mode>): Likewise.
15785 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
15788 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
15790 (REVERSE_CONDITION): Delete.
15791 * config/aarch64/iterators.md (CC_ONLY): New mode iterator.
15792 (CCFP_CCFPE): Likewise.
15793 (e): New mode attribute.
15794 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to...
15795 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC.
15796 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into...
15797 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern.
15798 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern.
15799 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise.
15800 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update
15801 name of generator from gen_ccmpdi to gen_ccmpccdi.
15802 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse
15803 the previous comparison but aren't able to, use the new ccmp_rev
15806 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
15808 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
15809 than testing directly for INTEGER_CST.
15810 (gimplify_target_expr, gimplify_omp_depend): Likewise.
15812 2020-01-17 Jakub Jelinek <jakub@redhat.com>
15814 PR tree-optimization/93292
15815 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
15816 get_vectype_for_scalar_type returns NULL.
15818 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
15820 * params.opt (-param=max-predicted-iterations): Increase range from 0.
15821 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
15823 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
15825 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
15827 * params.opt: (max-predicted-iterations): Set bounds.
15828 * predict.c (real_almost_one, real_br_prob_base,
15829 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove.
15830 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic
15831 probabilities; do not truncate to reg_br_prob_bases.
15832 (estimate_loops_at_level): Pass max_cyclic_prob.
15833 (estimate_loops): Compute max_cyclic_prob.
15834 (estimate_bb_frequencies): Do not initialize real_*; update calculation
15836 * profile-count.c (profile_probability::to_sreal): New.
15837 * profile-count.h (class sreal): Move up in file.
15838 (profile_probability::to_sreal): Declare.
15840 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15843 (arm_invalid_conversion): New function for target hook.
15844 (arm_invalid_unary_op): New function for target hook.
15845 (arm_invalid_binary_op): New function for target hook.
15847 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15849 * config.gcc: Add arm_bf16.h.
15850 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment.
15851 (arm_simd_builtin_std_type): Add BFmode.
15852 (arm_init_simd_builtin_types): Define element types for vector types.
15853 (arm_init_bf16_types): New function.
15854 (arm_init_builtins): Add arm_init_bf16_types function call.
15855 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes.
15856 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF.
15857 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode.
15858 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements.
15859 (arm_vector_mode_supported_p): Add V4BF, V8BF.
15860 (arm_mangle_type): Add __bf16.
15861 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE,
15862 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node,
15863 arm_bf16_ptr_type_node.
15864 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and
15865 define_split between ARM registers.
15866 * config/arm/arm_bf16.h: New file.
15867 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
15868 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New.
15869 (VQXMOV): Add V8BF.
15870 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns.
15871 * config/arm/vfp.md: Add BFmode to movhf patterns.
15873 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
15874 Andre Vieira <andre.simoesdiasvieira@arm.com>
15876 * config/arm/arm-cpus.in (mve, mve_float): New features.
15877 (dsp, mve, mve.fp): New options.
15878 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define.
15879 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M.
15880 * doc/invoke.texi: Document the armv8.1-m mve and dps options.
15882 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15883 Thomas Preud'homme <thomas.preudhomme@arm.com>
15885 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
15887 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
15888 error for using -mcmse when targeting Armv8.1-M Mainline.
15890 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15891 Thomas Preud'homme <thomas.preudhomme@arm.com>
15893 * config/arm/arm.md (nonsecure_call_internal): Do not force memory
15894 address in r4 when targeting Armv8.1-M Mainline.
15895 (nonsecure_call_value_internal): Likewise.
15896 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address
15897 a register match_operand again. Emit BLXNS when targeting
15898 Armv8.1-M Mainline.
15899 (nonsecure_call_value_reg_thumb2): Likewise.
15901 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15902 Thomas Preud'homme <thomas.preudhomme@arm.com>
15904 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early.
15905 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear
15906 variable as true when floating-point ABI is not hard. Replace
15907 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear.
15908 Generate VLSTM and VLLDM instruction respectively before and
15909 after a function call to cmse_nonsecure_call function.
15910 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec.
15911 (VUNSPEC_VLLDM): Likewise.
15912 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn.
15913 (lazy_load_multiple_insn): Likewise.
15915 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15916 Thomas Preud'homme <thomas.preudhomme@arm.com>
15918 * config/arm/arm.c (vfp_emit_fstmd): Declare early.
15919 (arm_emit_vfp_multi_reg_pop): Likewise.
15920 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP
15921 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and
15922 restore callee-saved VFP registers.
15924 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15925 Thomas Preud'homme <thomas.preudhomme@arm.com>
15927 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early.
15928 (cmse_nonsecure_call_clear_caller_saved): Rename into ...
15929 (cmse_nonsecure_call_inline_register_clear): This. Save and clear
15930 callee-saved GPRs as well as clear ip register before doing a nonsecure
15931 call then restore callee-saved GPRs after it when targeting
15932 Armv8.1-M Mainline.
15933 (arm_reorg): Adapt to function rename.
15935 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15936 Thomas Preud'homme <thomas.preudhomme@arm.com>
15938 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype.
15939 * config/arm/arm.c (clear_operation_p): Extend to be able to check a
15940 clear_vfp_multiple pattern based on a new vfp parameter.
15941 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when
15942 targeting Armv8.1-M Mainline.
15943 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers
15944 unconditionally when targeting Armv8.1-M Mainline architecture. Check
15945 whether VFP registers are available before looking call_used_regs for a
15947 * config/arm/predicates.md (clear_multiple_operation): Adapt to change
15948 of prototype of clear_operation_p.
15949 (clear_vfp_multiple_operation): New predicate.
15950 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec.
15951 * config/arm/vfp.md (clear_vfp_multiple): New define_insn.
15953 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15954 Thomas Preud'homme <thomas.preudhomme@arm.com>
15956 * config/arm/arm-protos.h (clear_operation_p): Declare.
15957 * config/arm/arm.c (clear_operation_p): New function.
15958 (cmse_clear_registers): Generate clear_multiple instruction pattern if
15959 targeting Armv8.1-M Mainline or successor.
15960 (output_return_instruction): Only output APSR register clearing if
15961 Armv8.1-M Mainline instructions not available.
15962 (thumb_exit): Likewise.
15963 * config/arm/predicates.md (clear_multiple_operation): New predicate.
15964 * config/arm/thumb2.md (clear_apsr): New define_insn.
15965 (clear_multiple): Likewise.
15966 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec.
15968 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15969 Thomas Preud'homme <thomas.preudhomme@arm.com>
15971 * config/arm/arm.c (fp_sysreg_names): Declare and define.
15972 (use_return_insn): Also return false for Armv8.1-M Mainline.
15973 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M
15974 Mainline instructions are available.
15975 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS
15976 when targeting Armv8.1-M Mainline Security Extensions.
15977 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M
15978 Mainline entry function.
15979 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if
15980 targeting Armv8.1-M Mainline or successor.
15981 (arm_expand_epilogue): Fix indentation of caller-saved register
15982 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline
15984 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro.
15985 (FP_SYSREGS): Likewise.
15986 (enum vfp_sysregs_encoding): Define enum.
15987 (fp_sysreg_names): Declare.
15988 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec.
15989 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn.
15990 (pop_fpsysreg_insn): Likewise.
15992 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15993 Thomas Preud'homme <thomas.preudhomme@arm.com>
15995 * config/arm/arm-cpus.in (armv8_1m_main): New feature.
15996 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k,
15997 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve,
15998 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a,
15999 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent.
16000 (ARMv8_1m_main): New feature group.
16001 (armv8.1-m.main): New architecture.
16002 * config/arm/arm-tables.opt: Regenerate.
16003 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize.
16004 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main.
16005 (arm_options_perform_arch_sanity_checks): Error out when targeting
16006 Armv8.1-M Mainline Security Extensions.
16007 * config/arm/arm.h (arm_arch8_1m_main): Declare.
16009 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
16011 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot,
16012 aarch64_bfdot_lane, aarch64_bfdot_laneq): New.
16013 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane,
16014 aarch64_bfdot_laneq): New.
16015 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32,
16016 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32,
16017 vbfdotq_laneq_f32): New.
16018 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype,
16019 VBFMLA_W, VBF): New.
16020 (isquadop): Add V4BF, V8BF.
16022 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
16024 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
16025 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
16026 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
16027 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
16028 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
16029 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
16030 usdot_laneq, sudot_lane,sudot_laneq): New.
16031 * config/aarch64/aarch64-simd.md (aarch64_usdot): New.
16032 (aarch64_<sur>dot_lane): New.
16033 * config/aarch64/arm_neon.h (vusdot_s32): New.
16034 (vusdotq_s32): New.
16035 (vusdot_lane_s32): New.
16036 (vsudot_lane_s32): New.
16037 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
16038 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.
16040 2020-01-16 Martin Liska <mliska@suse.cz>
16042 * value-prof.c (dump_histogram_value): Fix
16043 obvious spacing issue.
16045 2020-01-16 Andrew Pinski <apinski@marvell.com>
16047 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
16048 !storage_order_barrier_p.
16050 2020-01-16 Andrew Pinski <apinski@marvell.com>
16052 * sched-int.h (_dep): Add unused bit-field field for the padding.
16053 * sched-deps.c (init_dep_1): Init unused field.
16055 2020-01-16 Andrew Pinski <apinski@marvell.com>
16057 * optabs.h (create_expand_operand): Initialize target field also.
16059 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
16061 PR tree-optimization/92429
16062 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter.
16063 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to
16065 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
16068 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
16070 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
16071 aarch64_sve_int_mode to each mode.
16073 2020-01-15 David Malcolm <dmalcolm@redhat.com>
16075 * doc/analyzer.texi (Overview): Add note about
16076 -fdump-ipa-analyzer.
16078 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
16080 PR tree-optimization/93231
16081 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check
16082 input_type is unsigned. Use tree_to_shwi for shift constant.
16083 Check CST_STRING element size is CHAR_TYPE_SIZE bits.
16084 (simplify_count_trailing_zeroes): Add test to handle known non-zero
16085 inputs more efficiently.
16087 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
16089 * config/i386/i386.md (*movsf_internal): Do not require
16090 SSE2 ISA for alternatives 14 and 15.
16092 2020-01-15 Richard Biener <rguenther@suse.de>
16094 PR middle-end/93273
16095 * tree-eh.c (sink_clobbers): If we already visited the destination
16096 block do not defer insertion.
16097 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
16098 the purpose of defered insertion.
16100 2020-01-15 Jakub Jelinek <jakub@redhat.com>
16102 * BASE-VER: Bump to 10.0.1.
16104 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
16106 PR tree-optimization/93247
16107 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access
16108 type of the stmt that we're going to vectorize.
16110 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
16112 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
16113 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
16116 2020-01-15 Martin Liska <mliska@suse.cz>
16118 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
16119 2 calls of streamer_read_hwi in a function call.
16121 2020-01-15 Richard Biener <rguenther@suse.de>
16123 * alias.c (record_alias_subset): Avoid redundant work when
16124 subset is already recorded.
16126 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16128 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
16129 the analyzer options provide CWE identifiers.
16131 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16133 * tree-diagnostic-path.cc (path_summary::event_range::print):
16134 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
16135 using get_pure_location.
16137 2020-01-15 Jakub Jelinek <jakub@redhat.com>
16139 PR tree-optimization/93262
16140 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins,
16141 perform head trimming only if the last argument is constant,
16142 either all ones, or larger or equal to head trim, in the latter
16143 case decrease the last argument by head_trim.
16145 PR tree-optimization/93249
16146 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h.
16147 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to
16148 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't
16149 perform head trim unless we can prove there are no '\0' chars
16150 from the source among the first head_trim chars.
16152 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16154 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
16156 2020-01-15 Jakub Jelinek <jakub@redhat.com>
16159 * config/i386/sse.md
16160 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
16161 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
16162 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
16163 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
16164 just a single alternative instead of two, make operands 1 and 2
16167 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
16170 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
16173 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16175 * Makefile.in (lang_opt_files): Add analyzer.opt.
16176 (ANALYZER_OBJS): New.
16177 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o,
16178 tristate.o and ANALYZER_OBJS.
16179 (TEXI_GCCINT_FILES): Add analyzer.texi.
16180 * common.opt (-fanalyzer): New driver option.
16181 * config.in: Regenerate.
16182 * configure: Regenerate.
16183 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option.
16184 (gccdepdir): Also create depdir for "analyzer" subdir.
16185 * digraph.cc: New file.
16186 * digraph.h: New file.
16187 * doc/analyzer.texi: New file.
16188 * doc/gccint.texi ("Static Analyzer") New menu item.
16189 (analyzer.texi): Include it.
16190 * doc/invoke.texi ("Static Analyzer Options"): New list and new section.
16191 ("Warning Options"): Add static analysis warnings to the list.
16192 (-Wno-analyzer-double-fclose): New option.
16193 (-Wno-analyzer-double-free): New option.
16194 (-Wno-analyzer-exposure-through-output-file): New option.
16195 (-Wno-analyzer-file-leak): New option.
16196 (-Wno-analyzer-free-of-non-heap): New option.
16197 (-Wno-analyzer-malloc-leak): New option.
16198 (-Wno-analyzer-possible-null-argument): New option.
16199 (-Wno-analyzer-possible-null-dereference): New option.
16200 (-Wno-analyzer-null-argument): New option.
16201 (-Wno-analyzer-null-dereference): New option.
16202 (-Wno-analyzer-stale-setjmp-buffer): New option.
16203 (-Wno-analyzer-tainted-array-index): New option.
16204 (-Wno-analyzer-use-after-free): New option.
16205 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option.
16206 (-Wno-analyzer-use-of-uninitialized-value): New option.
16207 (-Wanalyzer-too-complex): New option.
16208 (-fanalyzer-call-summaries): New warning.
16209 (-fanalyzer-checker=): New warning.
16210 (-fanalyzer-fine-grained): New warning.
16211 (-fno-analyzer-state-merge): New warning.
16212 (-fno-analyzer-state-purge): New warning.
16213 (-fanalyzer-transitivity): New warning.
16214 (-fanalyzer-verbose-edges): New warning.
16215 (-fanalyzer-verbose-state-changes): New warning.
16216 (-fanalyzer-verbosity=): New warning.
16217 (-fdump-analyzer): New warning.
16218 (-fdump-analyzer-callgraph): New warning.
16219 (-fdump-analyzer-exploded-graph): New warning.
16220 (-fdump-analyzer-exploded-nodes): New warning.
16221 (-fdump-analyzer-exploded-nodes-2): New warning.
16222 (-fdump-analyzer-exploded-nodes-3): New warning.
16223 (-fdump-analyzer-supergraph): New warning.
16224 * doc/sourcebuild.texi (dg-require-dot): New.
16225 (dg-check-dot): New.
16226 * gdbinit.in (break-on-saved-diagnostic): New command.
16227 * graphviz.cc: New file.
16228 * graphviz.h: New file.
16229 * ordered-hash-map-tests.cc: New file.
16230 * ordered-hash-map.h: New file.
16231 * passes.def (pass_analyzer): Add before
16232 pass_ipa_whole_program_visibility.
16233 * selftest-run-tests.c (selftest::run_tests): Call
16234 selftest::ordered_hash_map_tests_cc_tests.
16235 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New
16237 * shortest-paths.h: New file.
16238 * timevar.def (TV_ANALYZER): New timevar.
16239 (TV_ANALYZER_SUPERGRAPH): Likewise.
16240 (TV_ANALYZER_STATE_PURGE): Likewise.
16241 (TV_ANALYZER_PLAN): Likewise.
16242 (TV_ANALYZER_SCC): Likewise.
16243 (TV_ANALYZER_WORKLIST): Likewise.
16244 (TV_ANALYZER_DUMP): Likewise.
16245 (TV_ANALYZER_DIAGNOSTICS): Likewise.
16246 (TV_ANALYZER_SHORTEST_PATHS): Likewise.
16247 * tree-pass.h (make_pass_analyzer): New decl.
16248 * tristate.cc: New file.
16249 * tristate.h: New file.
16251 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
16254 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
16255 alternatives 9 and 10.
16257 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16259 * attribs.c (excl_hash_traits::empty_zero_p): New static constant.
16260 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise.
16261 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise.
16262 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest.
16263 (selftest::hash_map_tests_c_tests): Call it.
16264 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p):
16265 New static constant, using the value of = H::empty_zero_p.
16266 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value
16267 from default_hash_traits <Value>.
16268 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value
16270 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise.
16271 * hash-table.h (hash_table::alloc_entries): Guard the loop of
16272 calls to mark_empty with !Descriptor::empty_zero_p.
16273 (hash_table::empty_slow): Conditionalize the memset call with a
16274 check that Descriptor::empty_zero_p; otherwise, loop through the
16275 entries calling mark_empty on them.
16276 * hash-traits.h (int_hash::empty_zero_p): New static constant.
16277 (pointer_hash::empty_zero_p): Likewise.
16278 (pair_hash::empty_zero_p): Likewise.
16279 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p):
16281 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise.
16282 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise.
16283 * profile.c (location_triplet_hash::empty_zero_p): Likewise.
16284 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise.
16285 (sanopt_tree_couple_hash::empty_zero_p): Likewise.
16286 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise.
16287 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise.
16288 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise.
16289 * tree-vectorizer.h
16290 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p):
16293 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
16295 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
16296 fix typo on return value.
16298 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
16301 * cgraph.c (symbol_table::create_edge): Init speculative_id and
16303 (cgraph_edge::make_speculative): Add param for setting speculative_id
16305 (cgraph_edge::speculative_call_info): Update comments and find reference
16306 by speculative_id for multiple indirect targets.
16307 (cgraph_edge::resolve_speculation): Decrease the speculations
16308 for indirect edge, drop it's speculative if not direct target
16309 left. Update comments.
16310 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
16311 (cgraph_node::dump): Print num_speculative_call_targets.
16312 (cgraph_node::verify_node): Don't report error if speculative
16313 edge not include statement.
16314 (cgraph_edge::num_speculative_call_targets_p): New function.
16315 * cgraph.h (int common_target_id): Remove.
16316 (int common_target_probability): Remove.
16317 (num_speculative_call_targets): New variable.
16318 (make_speculative): Add param for setting speculative_id.
16319 (cgraph_edge::num_speculative_call_targets_p): New declare.
16320 (target_prob): New variable.
16321 (speculative_id): New variable.
16322 * ipa-fnsummary.c (analyze_function_body): Create and duplicate
16323 call summaries for multiple speculative call targets.
16324 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id.
16325 * ipa-profile.c (struct speculative_call_target): New struct.
16326 (class speculative_call_summary): New class.
16327 (class speculative_call_summaries): New class.
16328 (call_sums): New variable.
16329 (ipa_profile_generate_summary): Generate indirect multiple targets summaries.
16330 (ipa_profile_write_edge_summary): New function.
16331 (ipa_profile_write_summary): Stream out indirect multiple targets summaries.
16332 (ipa_profile_dump_all_summaries): New function.
16333 (ipa_profile_read_edge_summary): New function.
16334 (ipa_profile_read_summary_section): New function.
16335 (ipa_profile_read_summary): Stream in indirect multiple targets summaries.
16336 (ipa_profile): Generate num_speculative_call_targets from
16338 * ipa-ref.h (speculative_id): New variable.
16339 * ipa-utils.c (ipa_merge_profiles): Update with target_prob.
16340 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and
16341 common_target_probability. Stream out speculative_id and
16342 num_speculative_call_targets.
16343 (input_edge): Likewise.
16344 * predict.c (dump_prediction): Remove edges count assert to be
16346 * symtab.c (symtab_node::create_reference): Init speculative_id.
16347 (symtab_node::clone_references): Clone speculative_id.
16348 (symtab_node::clone_referring): Clone speculative_id.
16349 (symtab_node::clone_reference): Clone speculative_id.
16350 (symtab_node::clear_stmts_in_references): Clear speculative_id.
16351 * tree-inline.c (copy_bb): Duplicate all the speculative edges
16352 if indirect call contains multiple speculative targets.
16353 * value-prof.h (check_ic_target): Remove.
16354 * value-prof.c (gimple_value_profile_transformations):
16355 Use void function gimple_ic_transform.
16356 * value-prof.c (gimple_ic_transform): Handle topn case.
16357 Fix comment typos. Change it to a void function.
16359 2020-01-13 Andrew Pinski <apinski@marvell.com>
16361 * config/aarch64/aarch64-cores.def (octeontx2): New define.
16362 (octeontx2t98): New define.
16363 (octeontx2t96): New define.
16364 (octeontx2t93): New define.
16365 (octeontx2f95): New define.
16366 (octeontx2f95n): New define.
16367 (octeontx2f95mm): New define.
16368 * config/aarch64/aarch64-tune.md: Regenerate.
16369 * doc/invoke.texi (-mcpu=): Document the new cpu types.
16371 2020-01-13 Jason Merrill <jason@redhat.com>
16373 PR c++/33799 - destroy return value if local cleanup throws.
16374 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
16376 2020-01-13 Martin Liska <mliska@suse.cz>
16378 * ipa-cp.c (get_max_overall_size): Use newly
16379 renamed param param_ipa_cp_unit_growth.
16380 * params.opt: Remove legacy param name.
16382 2020-01-13 Martin Sebor <msebor@redhat.com>
16384 PR tree-optimization/93213
16385 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
16386 stores to be eliminated.
16388 2020-01-13 Martin Liska <mliska@suse.cz>
16390 * opts.c (print_help): Do not print CL_PARAM
16391 and CL_WARNING for CL_OPTIMIZATION.
16393 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
16396 * doc/invoke.texi (Warning Options): Add caveat about some warnings
16397 depending on optimization settings.
16399 2020-01-13 Jakub Jelinek <jakub@redhat.com>
16401 PR tree-optimization/90838
16402 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
16403 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
16404 argument rather than to initialize temporary for targets that
16405 don't use the mode argument at all. Initialize ctzval to avoid
16408 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
16410 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
16411 * tree-core.h: Document it.
16412 * gimplify.c (gimplify_omp_workshare): Set it.
16413 * omp-low.c (lower_omp_target): Use it.
16414 * tree-pretty-print.c (dump_omp_clause): Print it.
16416 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
16417 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
16419 2020-01-10 David Malcolm <dmalcolm@redhat.com>
16421 * Makefile.in (OBJS): Add tree-diagnostic-path.o.
16422 * common.opt (fdiagnostics-path-format=): New option.
16423 (diagnostic_path_format): New enum.
16424 (fdiagnostics-show-path-depths): New option.
16425 * coretypes.h (diagnostic_event_id_t): New forward decl.
16426 * diagnostic-color.c (color_dict): Add "path".
16427 * diagnostic-event-id.h: New file.
16428 * diagnostic-format-json.cc (json_from_expanded_location): Make
16430 (json_end_diagnostic): Call context->make_json_for_path if it
16431 exists and the diagnostic has a path.
16432 (diagnostic_output_format_init): Clear context->print_path.
16433 * diagnostic-path.h: New file.
16434 * diagnostic-show-locus.c (colorizer::set_range): Special-case
16435 when printing a run of events in a diagnostic_path so that they
16436 all get the same color.
16437 (layout::m_diagnostic_path_p): New field.
16438 (layout::layout): Initialize it.
16439 (layout::print_any_labels): Don't colorize the label text for an
16440 event in a diagnostic_path.
16441 (gcc_rich_location::add_location_if_nearby): Add
16442 "restrict_to_current_line_spans" and "label" params. Pass the
16443 former to layout.maybe_add_location_range; pass the latter
16444 when calling add_range.
16445 * diagnostic.c: Include "diagnostic-path.h".
16446 (diagnostic_initialize): Initialize context->path_format and
16447 context->show_path_depths.
16448 (diagnostic_show_any_path): New function.
16449 (diagnostic_path::interprocedural_p): New function.
16450 (diagnostic_report_diagnostic): Call diagnostic_show_any_path.
16451 (simple_diagnostic_path::num_events): New function.
16452 (simple_diagnostic_path::get_event): New function.
16453 (simple_diagnostic_path::add_event): New function.
16454 (simple_diagnostic_event::simple_diagnostic_event): New ctor.
16455 (simple_diagnostic_event::~simple_diagnostic_event): New dtor.
16456 (debug): New overload taking a diagnostic_path *.
16457 * diagnostic.def (DK_DIAGNOSTIC_PATH): New.
16458 * diagnostic.h (enum diagnostic_path_format): New enum.
16459 (json::value): New forward decl.
16460 (diagnostic_context::path_format): New field.
16461 (diagnostic_context::show_path_depths): New field.
16462 (diagnostic_context::print_path): New callback field.
16463 (diagnostic_context::make_json_for_path): New callback field.
16464 (diagnostic_show_any_path): New decl.
16465 (json_from_expanded_location): New decl.
16466 * doc/invoke.texi (-fdiagnostics-path-format=): New option.
16467 (-fdiagnostics-show-path-depths): New option.
16468 (-fdiagnostics-color): Add "path" to description of default
16469 GCC_COLORS; describe it.
16470 (-fdiagnostics-format=json): Document how diagnostic paths are
16471 represented in the JSON output format.
16472 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
16473 Add optional params "restrict_to_current_line_spans" and "label".
16474 * opts.c (common_handle_option): Handle
16475 OPT_fdiagnostics_path_format_ and
16476 OPT_fdiagnostics_show_path_depths.
16477 * pretty-print.c: Include "diagnostic-event-id.h".
16478 (pp_format): Implement "%@" format code for printing
16479 diagnostic_event_id_t *.
16480 (selftest::test_pp_format): Add tests for "%@".
16481 * selftest-run-tests.c (selftest::run_tests): Call
16482 selftest::tree_diagnostic_path_cc_tests.
16483 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
16484 * toplev.c (general_init): Initialize global_dc->path_format and
16485 global_dc->show_path_depths.
16486 * tree-diagnostic-path.cc: New file.
16487 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
16488 non-static. Drop "diagnostic" param in favor of storing the
16489 original value of "where" and re-using it.
16490 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of
16491 maybe_unwind_expanded_macro_loc.
16492 (tree_diagnostics_defaults): Initialize context->print_path and
16493 context->make_json_for_path.
16494 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New
16496 (default_tree_make_json_for_path): New decl.
16497 (maybe_unwind_expanded_macro_loc): New decl.
16499 2020-01-10 Jakub Jelinek <jakub@redhat.com>
16501 PR tree-optimization/93210
16502 * fold-const.h (native_encode_initializer,
16503 can_native_interpret_type_p): Declare.
16504 * fold-const.c (native_encode_string): Fix up handling with off != -1,
16506 (native_encode_initializer): New function, moved from dwarf2out.c.
16507 Adjust to native_encode_expr compatible arguments, including dry-run
16508 and partial extraction modes. Don't handle STRING_CST.
16509 (can_native_interpret_type_p): No longer static.
16510 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
16511 offset / BITS_PER_UNIT fits into int and don't call it if
16512 can_native_interpret_type_p fails. If suboff is NULL and for
16513 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
16514 native_encode_initializer.
16515 (fold_const_aggregate_ref_1): Formatting fix.
16516 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
16517 (tree_add_const_value_attribute): Adjust caller.
16519 PR tree-optimization/90838
16520 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
16521 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
16522 CTZ_DEFINED_VALUE_AT_ZERO.
16524 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
16526 PR inline-asm/93027
16527 * lra-constraints.c (match_reload): Permit input operands have the
16528 same mode as output while other input operands have a different
16531 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
16533 PR tree-optimization/90838
16534 * tree-ssa-forwprop.c (check_ctz_array): Add new function.
16535 (check_ctz_string): Likewise.
16536 (optimize_count_trailing_zeroes): Likewise.
16537 (simplify_count_trailing_zeroes): Likewise.
16538 (pass_forwprop::execute): Try ctz simplification.
16539 * match.pd: Add matching for ctz idioms.
16541 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
16543 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
16545 (aarch64_invalid_unary_op): New function for target hook.
16546 (aarch64_invalid_binary_op): New function for target hook.
16548 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
16550 * config.gcc: Add arm_bf16.h.
16551 * config/aarch64/aarch64-builtins.c
16552 (aarch64_simd_builtin_std_type): Add BFmode.
16553 (aarch64_init_simd_builtin_types): Define element types for vector
16555 (aarch64_init_bf16_types): New function.
16556 (aarch64_general_init_builtins): Add arm_init_bf16_types function call.
16557 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
16559 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
16560 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
16562 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
16563 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
16564 * config/aarch64/aarch64.c
16565 (aarch64_classify_vector_mode): Add support for BF types.
16566 (aarch64_gimplify_va_arg_expr): Add support for BF types.
16567 (aarch64_vq_mode): Add support for BF types.
16568 (aarch64_simd_container_mode): Add support for BF types.
16569 (aarch64_mangle_type): Add support for BF scalar type.
16570 * config/aarch64/aarch64.md: Add BFmode to movhf pattern.
16571 * config/aarch64/arm_bf16.h: New file.
16572 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
16573 * config/aarch64/iterators.md: Add BF types to mode attributes.
16574 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
16576 2020-01-10 Jason Merrill <jason@redhat.com>
16578 PR c++/93173 - incorrect tree sharing.
16579 * gimplify.c (copy_if_shared): No longer static.
16580 * gimplify.h: Declare it.
16582 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16584 * doc/invoke.texi (-msve-vector-bits=): Document that
16585 -msve-vector-bits=128 now generates VL-specific code for
16586 little-endian targets.
16587 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
16588 build_vector_type_for_mode to construct the data vector types.
16589 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
16590 VL-specific code for -msve-vector-bits=128 on little-endian targets.
16591 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes
16592 for 128-bit vectors.
16594 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16596 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
16599 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16601 * config/aarch64/aarch64-builtins.c
16602 (aarch64_builtin_vectorized_function): Check for specific vector modes,
16603 rather than checking the number of elements and the element mode.
16605 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16607 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
16608 get_related_vectype_for_scalar_type rather than build_vector_type
16609 to create the index type for a conditional reduction.
16611 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16613 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
16614 for any type of gather or scatter, including strided accesses.
16616 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
16618 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
16621 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
16623 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
16624 get_dr_vinfo_offset
16625 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init
16626 parameter and its use to reset DR_OFFSET's.
16627 (vect_transform_loop): Remove orig_drs_init argument.
16628 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
16629 member of dr_vec_info rather than the offset of the associated
16630 data_reference's innermost_loop_behavior.
16631 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
16632 (vect_do_peeling): Remove orig_drs_init parameter and its construction.
16633 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
16634 get_dr_vinfo_offset.
16635 (vectorizable_store): Likewise.
16636 (vectorizable_load): Likewise.
16638 2020-01-10 Richard Biener <rguenther@suse.de>
16640 * gimple-ssa-store-merging
16641 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
16643 2020-01-10 Martin Liska <mliska@suse.cz>
16646 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
16647 encapsulation that was there before r280040.
16649 2020-01-10 Richard Biener <rguenther@suse.de>
16651 PR middle-end/93199
16652 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
16653 sequences to avoid walking them again for secondary opportunities.
16654 (pass_lower_eh_dispatch::execute): Instead actually insert
16657 2020-01-10 Richard Biener <rguenther@suse.de>
16659 PR middle-end/93199
16660 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
16661 (cleanup_all_empty_eh): Walk landing pads in reverse order to
16662 avoid quadraticness.
16664 2020-01-10 Martin Jambor <mjambor@suse.cz>
16666 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization.
16667 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it
16668 to get param_ipa_sra_max_replacements.
16669 (param_splitting_across_edge): Pass the caller to
16670 pull_accesses_from_callee.
16672 2020-01-10 Martin Jambor <mjambor@suse.cz>
16674 * params.opt (param_ipcp_unit_growth): Mark as Optimization.
16675 * ipa-cp.c (max_new_size): Removed.
16676 (orig_overall_size): New variable.
16677 (get_max_overall_size): New function.
16678 (estimate_local_effects): Use it. Adjust dump.
16679 (decide_about_value): Likewise.
16680 (ipcp_propagate_stage): Do not calculate max_new_size, just store
16681 orig_overall_size. Adjust dump.
16682 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size.
16684 2020-01-10 Martin Jambor <mjambor@suse.cz>
16686 * params.opt (param_ipa_max_agg_items): Mark as Optimization
16687 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use
16688 instead of param_ipa_max_agg_items.
16689 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from
16690 optimization info for the callee.
16692 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
16694 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
16695 markers if debug_inline_points is false.
16697 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
16699 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
16701 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
16702 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and
16703 aarch64-sve-builtins-sve2.h.
16704 (aarch64-sve-builtins-sve2.o): New rule.
16705 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro.
16706 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise.
16707 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise.
16708 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise.
16709 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
16710 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and
16712 * config/aarch64/aarch64-sve.md: Update comments with SVE2
16713 instructions that are handled here.
16714 (@cond_asrd<mode>): Generalize to...
16715 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this.
16716 (*cond_asrd<mode>_2): Generalize to...
16717 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this.
16718 (*cond_asrd<mode>_z): Generalize to...
16719 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this.
16720 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec.
16721 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise.
16722 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise.
16723 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New
16725 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
16726 (@aarch64_scatter_stnt<mode>): Likewise.
16727 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
16728 (@aarch64_mul_lane_<mode>): Likewise.
16729 (@aarch64_sve_suqadd<mode>_const): Likewise.
16730 (*<sur>h<addsub><mode>): Generalize to...
16731 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this
16733 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander.
16734 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern.
16735 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise.
16736 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise.
16737 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise.
16738 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise.
16739 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise.
16740 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise.
16741 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander.
16742 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern.
16743 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise.
16744 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise.
16745 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise.
16746 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>)
16747 (@aarch64_sve_add_mul_lane_<mode>): Likewise.
16748 (@aarch64_sve_sub_mul_lane_<mode>): Likewise.
16749 (@aarch64_sve2_xar<mode>): Likewise.
16750 (@aarch64_sve2_bcax<mode>): Likewise.
16751 (*aarch64_sve2_eor3<mode>): Rename to...
16752 (@aarch64_sve2_eor3<mode>): ...this.
16753 (@aarch64_sve2_bsl<mode>): New expander.
16754 (@aarch64_sve2_nbsl<mode>): Likewise.
16755 (@aarch64_sve2_bsl1n<mode>): Likewise.
16756 (@aarch64_sve2_bsl2n<mode>): Likewise.
16757 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise.
16758 (*aarch64_sve2_sra<mode>): Add MOVPRFX support.
16759 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern.
16760 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise.
16761 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander.
16762 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern.
16763 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise.
16764 (<su>mull<bt><Vwide>): Generalize to...
16765 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new
16767 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>)
16768 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>)
16769 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>)
16770 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16771 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>)
16772 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16773 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>)
16774 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16775 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>)
16776 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16777 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns.
16778 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>)
16779 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise.
16780 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise.
16781 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise.
16782 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise.
16783 (<SHRNB:r>shrnb<mode>): Generalize to...
16784 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this
16786 (<SHRNT:r>shrnt<mode>): Generalize to...
16787 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
16789 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern.
16790 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise.
16791 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander.
16792 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern.
16793 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise.
16794 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise.
16795 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise.
16796 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise.
16797 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise.
16798 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise.
16799 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
16800 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander.
16801 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern.
16802 (@aarch64_sve2_cvtnt<mode>): Likewise.
16803 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
16804 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander.
16805 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern.
16806 (@aarch64_sve2_cvtxnt<mode>): Likewise.
16807 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
16808 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander.
16809 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern.
16810 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
16811 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander.
16812 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern.
16813 (@aarch64_sve2_pmul<mode>): Likewise.
16814 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise.
16815 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise.
16816 (@aarch64_sve2_tbl2<mode>): Likewise.
16817 (@aarch64_sve2_tbx<mode>): Likewise.
16818 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise.
16819 (@aarch64_sve2_histcnt<mode>): Likewise.
16820 (@aarch64_sve2_histseg<mode>): Likewise.
16821 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
16822 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
16823 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
16824 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise.
16825 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise.
16826 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise.
16827 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise.
16828 (<su>mulh<r>s<mode>3): Update after above pattern name changes.
16829 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY)
16830 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI)
16831 (SVE2_PMULL_PAIR_I): New mode iterators.
16832 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP)
16833 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT)
16834 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA)
16835 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT)
16836 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT)
16837 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP)
16838 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT)
16839 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP)
16840 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH)
16841 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR)
16842 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT)
16843 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB)
16844 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT)
16845 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP)
16846 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT)
16847 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90)
16848 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB)
16849 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB)
16850 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB)
16851 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB)
16852 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT)
16853 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB)
16854 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT)
16855 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT)
16856 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT)
16857 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT)
16858 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT)
16859 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs.
16860 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT)
16861 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS)
16862 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move
16864 (VNARROW, Ventype): New mode attributes.
16865 (Vewtype): Handle VNx2DI. Fix typo in comment.
16866 (VDOUBLE): New mode attribute.
16867 (sve_lane_con): Handle VNx8HI.
16868 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2.
16869 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus.
16870 (sve_int_op, sve_int_op_rev): Handle the above codes.
16871 (sve_pred_int_rhs2_operand): Likewise.
16872 (MULLBT, SHRNB, SHRNT): Delete.
16873 (SVE_INT_SHIFT_IMM): New int iterator.
16874 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI
16875 and UNSPEC_WHILEHS for TARGET_SVE2.
16876 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT)
16877 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG)
16878 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB)
16879 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR)
16880 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators.
16881 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise.
16882 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD)
16883 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise.
16884 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA)
16885 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG)
16886 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise.
16887 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE)
16888 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE)
16889 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise.
16890 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise.
16891 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise.
16892 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise.
16893 (optab): Handle the new unspecs.
16894 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB
16896 (lr): Handle the new unspecs.
16898 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs.
16899 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op)
16900 (sve_int_qsub_op): New int attributes.
16901 (sve_fp_op, rot): Handle the new unspecs.
16902 * config/aarch64/aarch64-sve-builtins.h
16903 (function_resolver::require_matching_pointer_type): Declare.
16904 (function_resolver::resolve_unary): Add an optional boolean argument.
16905 (function_resolver::finish_opt_n_resolution): Add an optional
16906 type_suffix_index argument.
16907 (gimple_folder::redirect_call): Declare.
16908 (gimple_expander::prepare_gather_address_operands): Add an optional
16910 * config/aarch64/aarch64-sve-builtins.cc: Include
16911 aarch64-sve-builtins-sve2.h.
16912 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros.
16913 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise.
16914 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise.
16915 (TYPES_hsd_integer): Use TYPES_hsd_signed.
16916 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros.
16917 (TYPES_s_unsigned): Likewise.
16918 (TYPES_s_integer): Use TYPES_s_unsigned.
16919 (TYPES_sd_signed, TYPES_sd_unsigned): New macros.
16920 (TYPES_sd_integer): Use them.
16921 (TYPES_d_unsigned): New macro.
16922 (TYPES_d_integer): Use it.
16923 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros.
16924 (TYPES_cvt_narrow): Likewise.
16925 (DEF_SVE_TYPES_ARRAY): Include the new types macros above.
16926 (preds_mx): New variable.
16927 (function_builder::add_overloaded_function): Allow the new feature
16928 set to be more restrictive than the original one.
16929 (function_resolver::infer_pointer_type): Remove qualifiers from
16930 the pointer type before printing it.
16931 (function_resolver::require_matching_pointer_type): New function.
16932 (function_resolver::resolve_sv_displacement): Handle functions
16933 that don't support 32-bit vector indices or svint32_t vector offsets.
16934 (function_resolver::finish_opt_n_resolution): Take the inferred type
16935 as a separate argument.
16936 (function_resolver::resolve_unary): Optionally treat all forms in
16937 the same way as normal merging functions.
16938 (gimple_folder::redirect_call): New function.
16939 (function_expander::prepare_gather_address_operands): Add an argument
16940 that says whether scaled forms are available. If they aren't,
16941 handle scaling of vector indices and don't add the extension and
16943 (function_expander::map_to_unspecs): If aarch64_sve isn't available,
16944 fall back to using cond_* instead.
16945 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function):
16946 Split out the member variables into...
16947 (rtx_code_function_base): ...this new base class.
16948 (rtx_code_function_rotated): Inherit rtx_code_function_base.
16949 (unspec_based_function): Split out the member variables into...
16950 (unspec_based_function_base): ...this new base class.
16951 (unspec_based_function_rotated): Inherit unspec_based_function_base.
16952 (unspec_based_function_exact_insn): New class.
16953 (unspec_based_add_function, unspec_based_add_lane_function)
16954 (unspec_based_lane_function, unspec_based_pred_function)
16955 (unspec_based_qadd_function, unspec_based_qadd_lane_function)
16956 (unspec_based_qsub_function, unspec_based_qsub_lane_function)
16957 (unspec_based_sub_function, unspec_based_sub_lane_function): New
16959 (unspec_based_fused_function): New class.
16960 (unspec_based_mla_function, unspec_based_mls_function): New typedefs.
16961 (unspec_based_fused_lane_function): New class.
16962 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New
16964 (CODE_FOR_MODE1): New macro.
16965 (fixed_insn_function): New class.
16966 (while_comparison): Likewise.
16967 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane)
16968 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n)
16969 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr)
16970 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted)
16971 (load_gather_sv_restricted, shift_left_imm_long): Declare.
16972 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise.
16973 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise.
16974 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted)
16975 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane)
16976 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate)
16977 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint)
16978 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt)
16979 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise.
16980 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
16981 Also add an initial argument for unary_convert_narrowt, regardless
16982 of the predication type.
16983 (build_32_64): Allow loads and stores to specify MODE_none.
16984 (build_sv_index64, build_sv_uint_offset): New functions.
16985 (long_type_suffix): New function.
16986 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes.
16987 (binary_imm_long_base, load_gather_sv_base): Likewise.
16988 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise.
16989 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise.
16990 (unary_narrowb_base, unary_narrowt_base): Likewise.
16991 (binary_long_lane_def, binary_long_lane): New shape.
16992 (binary_long_opt_n_def, binary_long_opt_n): Likewise.
16993 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise.
16994 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise.
16995 (binary_to_uint_def, binary_to_uint): Likewise.
16996 (binary_wide_def, binary_wide): Likewise.
16997 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise.
16998 (compare_def, compare): Likewise.
16999 (compare_ptr_def, compare_ptr): Likewise.
17000 (load_ext_gather_index_restricted_def,
17001 load_ext_gather_index_restricted): Likewise.
17002 (load_ext_gather_offset_restricted_def,
17003 load_ext_gather_offset_restricted): Likewise.
17004 (load_gather_sv_def): Inherit from load_gather_sv_base.
17005 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape.
17006 (shift_left_imm_def, shift_left_imm): Likewise.
17007 (shift_left_imm_long_def, shift_left_imm_long): Likewise.
17008 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise.
17009 (store_scatter_index_restricted_def,
17010 store_scatter_index_restricted): Likewise.
17011 (store_scatter_offset_restricted_def,
17012 store_scatter_offset_restricted): Likewise.
17013 (tbl_tuple_def, tbl_tuple): Likewise.
17014 (ternary_long_lane_def, ternary_long_lane): Likewise.
17015 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise.
17016 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base.
17017 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape
17018 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base.
17019 (ternary_qq_rotate_def, ternary_qq_rotate): New shape.
17020 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise.
17021 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise.
17022 (ternary_uint_def, ternary_uint): Likewise.
17023 (unary_convert): Fix typo in comment.
17024 (unary_convert_narrowt_def, unary_convert_narrowt): New shape.
17025 (unary_long_def, unary_long): Likewise.
17026 (unary_narrowb_def, unary_narrowb): Likewise.
17027 (unary_narrowt_def, unary_narrowt): Likewise.
17028 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise.
17029 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise.
17030 (unary_to_int_def, unary_to_int): Likewise.
17031 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla)
17032 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions.
17033 (svasrd_impl): Delete.
17034 (svcadd_impl::expand): Handle integer operations too.
17035 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the
17036 new functions to derive the unspec numbers.
17037 (svmla_svmls_lane_impl): Replace with...
17038 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle
17039 integer operations too.
17040 (svwhile_impl): Rename to...
17041 (svwhilelx_impl): ...this and inherit from while_comparison.
17042 (svasrd): Use unspec_based_function.
17043 (svmla_lane): Use svmla_lane_impl.
17044 (svmls_lane): Use svmls_lane_impl.
17045 (svrecpe, svrsqrte): Handle unsigned integer operations too.
17046 (svwhilele, svwhilelt): Use svwhilelx_impl.
17047 * config/aarch64/aarch64-sve-builtins-sve2.h: New file.
17048 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
17049 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
17050 * config/aarch64/aarch64-sve-builtins.def: Include
17051 aarch64-sve-builtins-sve2.def.
17053 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17055 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p)
17056 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument.
17057 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p)
17058 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar
17059 immediates as well as vector ones.
17060 * config/aarch64/predicates.md (aarch64_sve_arith_immediate)
17061 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate)
17062 (aarch64_sve_qsub_immediate): Update calls accordingly.
17064 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17066 * config/aarch64/aarch64-sve2.md: Add banner comments.
17067 (<su>mulh<r>s<mode>3): Move further up file.
17068 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>)
17069 (*aarch64_sve2_sra<mode>): Move further down file.
17070 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too.
17072 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17074 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW
17075 and UNSPEC_WHILEWR.
17076 (while_optab_cmp): Handle them.
17077 * config/aarch64/aarch64-sve.md
17078 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public
17079 and add a "@" marker.
17080 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it
17081 instead of gen_aarch64_sve2_while_ptest.
17082 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete.
17084 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17086 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to...
17087 (UNSPEC_WHILELE): ...this.
17088 (UNSPEC_WHILE_LO): Rename to...
17089 (UNSPEC_WHILELO): ...this.
17090 (UNSPEC_WHILE_LS): Rename to...
17091 (UNSPEC_WHILELS): ...this.
17092 (UNSPEC_WHILE_LT): Rename to...
17093 (UNSPEC_WHILELT): ...this.
17094 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly.
17095 (cmp_op, while_optab_cmp): Likewise.
17096 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise.
17097 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise.
17098 (svwhilelt): Likewise.
17100 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17102 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete.
17103 (unary_to_uint): Define.
17104 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def)
17105 (unary_count): Rename to...
17106 (unary_to_uint_def, unary_to_uint): ...this.
17107 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly.
17109 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17111 * config/aarch64/aarch64-sve-builtins-functions.h
17112 (code_for_mode_function): New class.
17113 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros.
17114 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl)
17115 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete.
17116 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0.
17117 (svmul_lane, svtmad): Use CODE_FOR_MODE0.
17119 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17121 * config/aarch64/iterators.md (addsub): New code attribute.
17122 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
17124 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change
17125 in the asm string and attributes. Fix indentation.
17126 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>):
17128 (@aarch64_sve_<optab><mode>): ...this.
17129 * config/aarch64/aarch64-sve-builtins.h
17130 (function_expander::expand_signed_unpred_op): Delete.
17131 * config/aarch64/aarch64-sve-builtins.cc
17132 (function_expander::expand_signed_unpred_op): Likewise.
17133 (function_expander::map_to_rtx_codes): If the optab isn't defined,
17134 try using code_for_aarch64_sve instead.
17135 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete.
17136 (svqsub_impl): Likewise.
17137 (svqadd, svqsub): Use rtx_code_function instead.
17139 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17141 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
17142 (HADDSUB, sur, addsub): Remove them.
17144 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17146 * tree-nrv.c (pass_return_slot::execute): Handle all internal
17147 functions the same way, rather than singling out those that
17148 aren't mapped directly to optabs.
17150 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17152 * target.def (compatible_vector_types_p): New target hook.
17153 * hooks.h (hook_bool_const_tree_const_tree_true): Declare.
17154 * hooks.c (hook_bool_const_tree_const_tree_true): New function.
17155 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook.
17156 * doc/tm.texi: Regenerate.
17157 * gimple-expr.c: Include target.h.
17158 (useless_type_conversion_p): Use targetm.compatible_vector_types_p.
17159 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New
17161 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define.
17162 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
17163 Use the original predicate if it already has a suitable type.
17165 2020-01-09 Martin Jambor <mjambor@suse.cz>
17167 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct,
17168 resolve_speculation and redirect_call_stmt_to_callee static. Change
17169 return type of set_call_stmt to cgraph_edge *.
17170 * auto-profile.c (afdo_indirect_call): Adjust call to
17171 redirect_call_stmt_to_callee.
17172 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *,
17173 make the this pointer explicit, adjust self-recursive calls and the
17174 call top make_direct. Return the resulting edge.
17175 (cgraph_edge::remove): Make this pointer explicit.
17176 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove.
17177 (cgraph_edge::make_direct): Likewise, adjust call to
17178 resolve_speculation.
17179 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust
17180 call to set_call_stmt.
17181 (cgraph_update_edges_for_call_stmt_node): Update call to
17182 set_call_stmt and remove.
17183 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
17184 Renamed edge to master_edge. Adjusted calls to set_call_stmt.
17185 (cgraph_node::create_edge_including_clones): Moved "first" definition
17186 of edge to the block where it was used. Adjusted calls to
17188 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to
17189 cgraph_edge::remove.
17190 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to
17191 make_direct and redirect_call_stmt_to_callee.
17192 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to
17193 resolve_speculation and make_direct.
17194 * ipa-inline-transform.c (inline_transform): Adjust call to
17195 redirect_call_stmt_to_callee.
17196 (check_speculations_1):: Adjust call to resolve_speculation.
17197 * ipa-inline.c (resolve_noninline_speculation): Adjust call to
17198 resolve-speculation.
17199 (inline_small_functions): Adjust call to resolve_speculation.
17200 (ipa_inline): Likewise.
17201 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to
17203 * ipa-visibility.c (function_and_variable_visibility): Make iteration
17204 safe with regards to edge removal, adjust calls to
17205 redirect_call_stmt_to_callee.
17206 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct
17207 and redirect_call_stmt_to_callee.
17208 * multiple_target.c (create_dispatcher_calls): Adjust call to
17209 redirect_call_stmt_to_callee
17210 (redirect_to_specific_clone): Likewise.
17211 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
17212 Adjust calls to cgraph_edge::remove.
17213 * tree-inline.c (copy_bb): Adjust call to set_call_stmt.
17214 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee.
17215 (expand_call_inline): Adjust call to cgraph_edge::remove.
17217 2020-01-09 Martin Liska <mliska@suse.cz>
17219 * params.opt: Set Optimization for
17220 param_max_speculative_devirt_maydefs.
17222 2020-01-09 Martin Sebor <msebor@redhat.com>
17224 PR middle-end/93200
17226 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
17228 2020-01-09 Martin Liska <mliska@suse.cz>
17230 * auto-profile.c (auto_profile): Use opt_for_fn
17232 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
17233 (propagate_vals_across_arith_jfunc): Likewise.
17234 (hint_time_bonus): Likewise.
17235 (incorporate_penalties): Likewise.
17236 (good_cloning_opportunity_p): Likewise.
17237 (perform_estimation_of_a_value): Likewise.
17238 (estimate_local_effects): Likewise.
17239 (ipcp_propagate_stage): Likewise.
17240 * ipa-fnsummary.c (decompose_param_expr): Likewise.
17241 (set_switch_stmt_execution_predicate): Likewise.
17242 (analyze_function_body): Likewise.
17243 * ipa-inline-analysis.c (offline_size): Likewise.
17244 * ipa-inline.c (early_inliner): Likewise.
17245 * ipa-prop.c (ipa_analyze_node): Likewise.
17246 (ipcp_transform_function): Likewise.
17247 * ipa-sra.c (process_scan_results): Likewise.
17248 (ipa_sra_summarize_function): Likewise.
17249 * params.opt: Rename ipcp-unit-growth to
17250 ipa-cp-unit-growth. Add Optimization for various
17251 IPA-related parameters.
17253 2020-01-09 Richard Biener <rguenther@suse.de>
17255 PR middle-end/93054
17256 * gimplify.c (gimplify_expr): Deal with NOP definitions.
17258 2020-01-09 Richard Biener <rguenther@suse.de>
17260 PR tree-optimization/93040
17261 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
17263 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
17265 * common/config/avr/avr-common.c (avr_option_optimization_table)
17266 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
17268 2020-01-09 Martin Liska <mliska@suse.cz>
17270 * cgraphclones.c (symbol_table::materialize_all_clones):
17271 Use cgraph_node::dump_name.
17273 2020-01-09 Jakub Jelinek <jakub@redhat.com>
17275 PR inline-asm/93202
17276 * config/riscv/riscv.c (riscv_print_operand_reloc): Use
17277 output_operand_lossage instead of gcc_unreachable.
17278 * doc/md.texi (riscv f constraint): Fix typo.
17281 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
17282 SWI. Use <general_hilo_operand> instead of <general_operand>. Use
17283 CONST_SCALAR_INT_P instead of CONST_INT_P.
17284 (*subv<mode>4_1): Rename to ...
17285 (subv<mode>4_1): ... this.
17286 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
17287 define_insn_and_split patterns.
17288 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
17291 2020-01-08 David Malcolm <dmalcolm@redhat.com>
17293 * vec.c (class selftest::count_dtor): New class.
17294 (selftest::test_auto_delete_vec): New test.
17295 (selftest::vec_c_tests): Call it.
17296 * vec.h (class auto_delete_vec): New class template.
17297 (auto_delete_vec<T>::~auto_delete_vec): New dtor.
17299 2020-01-08 David Malcolm <dmalcolm@redhat.com>
17301 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
17303 2020-01-08 Jim Wilson <jimw@sifive.com>
17305 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
17306 use of TLS_MODEL_LOCAL_EXEC when not pic.
17308 2020-01-08 David Malcolm <dmalcolm@redhat.com>
17310 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
17313 2020-01-08 Jakub Jelinek <jakub@redhat.com>
17316 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
17317 *stack_protect_set_3 peephole2): Also check that the second
17318 insns source is general_operand.
17321 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
17322 predicate for output operand instead of register_operand.
17323 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with
17324 memory destination and non-memory operands[2].
17326 2020-01-08 Martin Liska <mliska@suse.cz>
17328 * cgraph.c (cgraph_node::dump): Use ::dump_name or
17329 ::dump_asm_name instead of (::name or ::asm_name).
17330 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
17331 * cgraphunit.c (walk_polymorphic_call_targets): Likewise.
17332 (analyze_functions): Likewise.
17333 (expand_all_functions): Likewise.
17334 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
17335 (propagate_bits_across_jump_function): Likewise.
17336 (dump_profile_updates): Likewise.
17337 (ipcp_store_bits_results): Likewise.
17338 (ipcp_store_vr_results): Likewise.
17339 * ipa-devirt.c (dump_targets): Likewise.
17340 * ipa-fnsummary.c (analyze_function_body): Likewise.
17341 * ipa-hsa.c (check_warn_node_versionable): Likewise.
17342 (process_hsa_functions): Likewise.
17343 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
17344 (set_alias_uids): Likewise.
17345 * ipa-inline-transform.c (save_inline_function_body): Likewise.
17346 * ipa-inline.c (recursive_inlining): Likewise.
17347 (inline_to_all_callers_1): Likewise.
17348 (ipa_inline): Likewise.
17349 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
17350 (ipa_propagate_frequency): Likewise.
17351 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
17352 (remove_described_reference): Likewise.
17353 * ipa-pure-const.c (worse_state): Likewise.
17354 (check_retval_uses): Likewise.
17355 (analyze_function): Likewise.
17356 (propagate_pure_const): Likewise.
17357 (propagate_nothrow): Likewise.
17358 (dump_malloc_lattice): Likewise.
17359 (propagate_malloc): Likewise.
17360 (pass_local_pure_const::execute): Likewise.
17361 * ipa-visibility.c (optimize_weakref): Likewise.
17362 (function_and_variable_visibility): Likewise.
17363 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
17364 (ipa_discover_variable_flags): Likewise.
17365 * lto-streamer-out.c (output_function): Likewise.
17366 (output_constructor): Likewise.
17367 * tree-inline.c (copy_bb): Likewise.
17368 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
17369 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
17371 2020-01-08 Richard Biener <rguenther@suse.de>
17373 PR middle-end/93199
17374 * tree-eh.c (sink_clobbers): Update virtual operands for
17375 the first and last stmt only. Add a dry-run capability.
17376 (pass_lower_eh_dispatch::execute): Perform clobber sinking
17377 after CFG manipulations and in RPO order to catch all
17378 secondary opportunities reliably.
17380 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
17383 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
17385 2019-01-08 Richard Biener <rguenther@suse.de>
17387 PR middle-end/93199
17388 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
17389 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust
17390 virtual operand, also updating SSA use.
17391 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
17392 Update stmt after resetting virtual operand.
17393 (tree_loop_interchange::move_code_to_inner_loop): Likewise.
17394 * gimple-iterator.c (gsi_remove): When not removing the stmt
17395 permanently do not delink immediate uses or mark the stmt modified.
17397 2020-01-08 Martin Liska <mliska@suse.cz>
17399 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
17400 (ipa_call_context::estimate_size_and_time): Likewise.
17401 (inline_analyze_function): Likewise.
17403 2020-01-08 Martin Liska <mliska@suse.cz>
17405 * cgraph.c (cgraph_node::dump): Use systematically
17408 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
17410 Add -nodevicespecs option for avr.
17413 * config/avr/avr.opt (-nodevicespecs): New driver option.
17414 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue
17415 "-specs=device-specs/..." if that option is not set.
17416 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
17418 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
17420 Implement 64-bit double functions for avr.
17423 * config.gcc (tm_defines) [target=avr]: Support --with-libf7,
17424 --with-double-comparison.
17425 * doc/install.texi: Document them.
17426 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
17427 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
17428 <WITH_DOUBLE_COMPARISON>: New built-in defines.
17429 * doc/invoke.texi (AVR Built-in Macros): Document them.
17430 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
17431 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
17432 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
17434 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
17437 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
17438 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
17439 when only building rm-profile multilibs.
17441 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
17444 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
17445 lattice for a value to check.
17446 (propagate_vals_across_arith_jfunc): Add an assertion to ensure
17447 finite propagation in self-recursive scc.
17449 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
17451 * ipa-inline.c (caller_growth_limits): Restore the AND.
17453 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
17455 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
17456 (VEC_ALLREG_ALT): New iterator.
17457 (VEC_ALLREG_INT_MODE): New iterator.
17458 (VCMP_MODE): New iterator.
17459 (VCMP_MODE_INT): New iterator.
17460 (vec_cmpu<mode>di): Use VCMP_MODE_INT.
17461 (vec_cmp<u>v64qidi): New define_expand.
17462 (vec_cmp<mode>di_exec): Use VCMP_MODE.
17463 (vec_cmpu<mode>di_exec): New define_expand.
17464 (vec_cmp<u>v64qidi_exec): New define_expand.
17465 (vec_cmp<mode>di_dup): Use VCMP_MODE.
17466 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
17467 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
17468 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
17469 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
17470 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
17471 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
17472 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
17473 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
17474 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
17476 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
17477 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend.
17479 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
17481 * config/gcn/constraints.md (DA): Update description and match.
17483 (Db): New constraint.
17484 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
17486 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
17487 Implement 'Db' mixed immediate type.
17488 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
17489 (addcv64si3_dup<exec_vcc>): Delete.
17490 (subcv64si3<exec_vcc>): Rework constraints.
17491 (addv64di3): Rework constraints.
17492 (addv64di3_exec): Rework constraints.
17493 (subv64di3): Rework constraints.
17494 (addv64di3_dup): Delete.
17495 (addv64di3_dup_exec): Delete.
17496 (addv64di3_zext): Rework constraints.
17497 (addv64di3_zext_exec): Rework constraints.
17498 (addv64di3_zext_dup): Rework constraints.
17499 (addv64di3_zext_dup_exec): Rework constraints.
17500 (addv64di3_zext_dup2): Rework constraints.
17501 (addv64di3_zext_dup2_exec): Rework constraints.
17502 (addv64di3_sext_dup2): Rework constraints.
17503 (addv64di3_sext_dup2_exec): Rework constraints.
17505 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
17507 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
17508 existing target checks.
17510 2020-01-07 Richard Biener <rguenther@suse.de>
17512 * doc/install.texi: Bump minimal supported MPC version.
17514 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
17516 * langhooks-def.h (lhd_simulate_enum_decl): Declare.
17517 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
17518 * langhooks.c: Include stor-layout.h.
17519 (lhd_simulate_enum_decl): New function.
17520 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
17521 handle_arm_sve_h for the LTO frontend.
17522 (register_vector_type): Cope with null returns from pushdecl.
17524 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
17526 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
17527 (aarch64_sve::nvectors_if_data_type): Replace with...
17528 (aarch64_sve::builtin_type_p): ...this.
17529 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
17530 (find_vector_type): Delete.
17531 (add_sve_type_attribute): New function.
17532 (lookup_sve_type_attribute): Likewise.
17533 (register_builtin_types): Add an "SVE type" attribute to each type.
17534 (register_tuple_type): Likewise.
17535 (svbool_type_p, nvectors_if_data_type): Delete.
17536 (mangle_builtin_type): Use lookup_sve_type_attribute.
17537 (builtin_type_p): Likewise. Add an overload that returns the
17538 number of constituent vector and predicate registers.
17539 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
17540 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
17541 instead of aarch64_sve_argument_p.
17542 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
17543 (aarch64_pass_by_reference): Likewise.
17544 (aarch64_function_value_1): Likewise.
17545 (aarch64_return_in_memory): Likewise.
17546 (aarch64_layout_arg): Likewise.
17548 2020-01-07 Jakub Jelinek <jakub@redhat.com>
17550 PR tree-optimization/93156
17551 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
17552 least significant bit is always clear.
17554 PR tree-optimization/93118
17555 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new
17556 simplifier with two intermediate conversions.
17558 2020-01-07 Martin Liska <mliska@suse.cz>
17560 * params.opt: Add Optimization for various parameters.
17562 2020-01-07 Martin Liska <mliska@suse.cz>
17565 * doc/extend.texi: Explain cloning for target_clone
17568 2020-01-07 Martin Liska <mliska@suse.cz>
17570 PR tree-optimization/92860
17571 * common.opt: Make in Optimization option
17572 as it is affected by -O0, which is an Optimization
17574 * tree-inline.c (tree_inlinable_function_p):
17575 Use opt_for_fn for warn_inline.
17576 (expand_call_inline): Likewise.
17578 2020-01-07 Martin Liska <mliska@suse.cz>
17580 PR tree-optimization/92860
17581 * common.opt: Make flag_ree as optimization
17584 2020-01-07 Martin Liska <mliska@suse.cz>
17586 PR optimization/92860
17587 * params.opt: Mark param_min_crossjump_insns with Optimization
17590 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
17592 * ipa-inline-analysis.c (estimate_growth): Fix typo.
17593 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
17595 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
17597 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
17598 helper function to return the valid addressing formats for a given
17599 hard register and mode.
17600 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
17602 * config/rs6000/constraints.md (Q constraint): Update
17604 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
17607 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
17608 Use 'Q' for doing vector extract from memory.
17609 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
17611 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
17612 doing vector extract from memory.
17613 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
17614 extract from memory.
17616 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
17617 for the offset being 34-bits when -mcpu=future is used.
17619 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
17621 * config/pa/pa.md: Revert change to use ordered_comparison_operator
17622 instead of cmpib_comparison_operator in cmpib patterns.
17623 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal
17624 of cmpib_comparison_operator. Revise comment.
17626 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17628 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
17629 in an IFN_DIV_POW2 node to be equal.
17631 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17633 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
17634 (vect_check_scalar_mask): ...this.
17635 (vectorizable_store, vectorizable_load): Update call accordingly.
17636 (vectorizable_call): Use vect_check_scalar_mask to check the mask
17637 argument in calls to conditional internal functions.
17639 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
17641 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
17642 '0' matching inputs.
17643 (subv64di3_exec): Likewise.
17645 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
17647 * config/mips/mips.c (vr4130_align_insns): Fix typo.
17648 * doc/md.texi (movstr): Likewise.
17650 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
17652 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
17655 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17657 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
17659 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents
17660 to a temporary file and use move-if-change to update the real
17661 file where necessary.
17663 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17665 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
17666 rather than Upa for CPY /M.
17668 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
17670 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
17673 2020-01-06 Martin Liska <mliska@suse.cz>
17675 PR tree-optimization/92860
17676 * params.opt: Mark param_max_combine_insns with Optimization
17679 2020-01-05 Jakub Jelinek <jakub@redhat.com>
17682 * config/i386/i386.md (SWIDWI): New mode iterator.
17683 (DWI, dwi): Add TImode variants.
17684 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use
17685 <general_hilo_operand> instead of <general_operand>. Use
17686 CONST_SCALAR_INT_P instead of CONST_INT_P.
17687 (*addv<mode>4_1): Rename to ...
17688 (addv<mode>4_1): ... this.
17689 (QWI): New mode attribute.
17690 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
17691 define_insn_and_split patterns.
17692 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
17694 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use
17695 <general_hilo_operand> instead of <general_operand>.
17696 (*addcarry<mode>_1): New define_insn.
17697 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
17699 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
17701 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
17702 Use "call" instead of "set".
17704 2020-01-03 Martin Jambor <mjambor@suse.cz>
17707 * ipa-cp.c (print_all_lattices): Skip functions without info.
17709 2020-01-03 Jakub Jelinek <jakub@redhat.com>
17712 * config/i386/i386-options.c (ix86_simd_clone_adjust): If
17713 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
17714 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
17715 for 'e' simd clones.
17718 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
17720 (mprefer-vector-width=): Add Save.
17721 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
17722 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
17723 (ix86_debug_options, ix86_function_specific_print): Adjust
17724 ix86_target_string callers.
17725 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
17726 (ix86_valid_target_attribute_tree): Likewise.
17727 * config/i386/i386-options.h (ix86_target_string): Add PVW argument.
17728 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust
17729 ix86_target_string caller.
17732 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
17733 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode
17734 instead of gen_int_shift_amount + convert_modes.
17736 PR rtl-optimization/93088
17737 * loop-iv.c (find_single_def_src): Punt after looking through
17738 128 reg copies for regs with single definitions. Move definitions
17741 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
17743 * config/arm/arm-c.c (arm_cpu_builtins): Define
17744 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
17745 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
17746 __ARM_BF16_FORMAT_ALTERNATIVE when enabled.
17747 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
17748 * config/arm/arm-tables.opt: Regenerated.
17749 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize
17750 arm_arch_i8mm and arm_arch_bf16 when enabled.
17751 * config/arm/arm.h (TARGET_I8MM): New macro.
17752 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
17753 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
17754 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
17755 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
17756 (v8_6_a_simd_variants): New.
17757 (v8_*_a_simd_variants): Add i8mm and bf16.
17758 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.
17760 2020-01-02 Jakub Jelinek <jakub@redhat.com>
17763 * predict.c (compute_function_frequency): Don't call
17764 warn_function_cold on functions that already have cold attribute.
17766 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
17769 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
17770 COMDAT group function labels in .data.rel.ro.local section.
17771 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
17774 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of
17775 comparison_operator in B and S integer comparisons. Likewise, use
17776 ordered_comparison_operator instead of cmpib_comparison_operator in
17778 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
17780 2020-01-01 Jakub Jelinek <jakub@redhat.com>
17782 Update copyright years.
17784 * gcc.c (process_command): Update copyright notice dates.
17785 * gcov-dump.c (print_version): Ditto.
17786 * gcov.c (print_version): Ditto.
17787 * gcov-tool.c (print_version): Ditto.
17788 * gengtype.c (create_file): Ditto.
17789 * doc/cpp.texi: Bump @copying's copyright year.
17790 * doc/cppinternals.texi: Ditto.
17791 * doc/gcc.texi: Ditto.
17792 * doc/gccint.texi: Ditto.
17793 * doc/gcov.texi: Ditto.
17794 * doc/install.texi: Ditto.
17795 * doc/invoke.texi: Ditto.
17797 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
17799 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
17802 2020-01-01 Jakub Jelinek <jakub@redhat.com>
17804 PR tree-optimization/93098
17805 * match.pd (popcount): For shift amounts, use integer_onep
17806 or wi::to_widest () == cst instead of tree_to_uhwi () == cst
17807 tests. Make sure that precision is power of two larger than or equal
17808 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
17809 instead of ULL suffixed constants. Formatting fixes.
17811 Copyright (C) 2020 Free Software Foundation, Inc.
17813 Copying and distribution of this file, with or without modification,
17814 are permitted in any medium without royalty provided the copyright
17815 notice and this notice are preserved.