[OpenMP] Fix 'omp exit data' for Fortran arrays (PR 94635)
[gcc.git] / gcc / ChangeLog
1 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
2
3 PR middle-end/94635
4 * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
5 OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
6 item is 'delete:'.
7
8 2020-05-15 Uroš Bizjak <ubizjak@gmail.com>
9
10 PR target/95046
11 * config/i386/i386.md (isa): Add sse3_noavx.
12 (enabled): Handle sse3_noavx.
13
14 * config/i386/mmx.md (mmx_haddv2sf3): New expander.
15 (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX
16 alternatives. Match commutative vec_select selector operands.
17 (*mmx_haddv2sf3_low): New insn pattern.
18
19 (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
20 (*mmx_hsubv2sf3_low): New insn pattern.
21
22 2020-05-15 Richard Biener <rguenther@suse.de>
23
24 PR tree-optimization/33315
25 * tree-ssa-sink.c: Include tree-eh.h.
26 (sink_stats): Add commoned member.
27 (sink_common_stores_to_bb): New function implementing store
28 commoning by sinking to the successor.
29 (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned.
30 (pass_sink_code::execute): Likewise. Record commoned stores
31 in statistics.
32
33 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
34
35 PR rtl-optimization/37451, part of PR target/61837
36 * loop-doloop.c (doloop_simplify_count): New function. Simplify
37 (add -1; zero_ext; add +1) to zero_ext when not wrapping.
38 (doloop_modify): Call doloop_simplify_count.
39
40 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
41
42 PR jit/94778
43 * doc/sourcebuild.texi: Document effective target lgccjit.
44
45 2020-05-14 Andrew Stubbs <ams@codesourcery.com>
46
47 * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a
48 define_expand, and rename the original to ...
49 (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand.
50 (add<mode>3_zext_dup_exec): Likewise, with ...
51 (add<mode>3_vcc_zext_dup_exec): ... this.
52 (add<mode>3_zext_dup2): Likewise, with ...
53 (add<mode>3_zext_dup_exec): ... this.
54 (add<mode>3_zext_dup2_exec): Likewise, with ...
55 (add<mode>3_zext_dup2): ... this.
56 * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch
57 addv64di3_zext* calls to use addv64di3_vcc_zext*.
58
59 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
60
61 PR target/95046
62 * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
63 (extendv2sfv2df2): Ditto.
64
65 2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
66
67 * configure: Regenerated.
68
69 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
70
71 * config/arm/arm.c (reg_needs_saving_p): New function.
72 (use_return_insn): Use reg_needs_saving_p.
73 (arm_get_vfp_saved_size): Likewise.
74 (arm_compute_frame_layout): Likewise.
75 (arm_save_coproc_regs): Likewise.
76 (thumb1_expand_epilogue): Likewise.
77 (arm_expand_epilogue_apcs_frame): Likewise.
78 (arm_expand_epilogue): Likewise.
79
80 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org>
81
82 * config/arm/arm.c (thumb1_expand_prologue): Update error message.
83
84 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
85
86 PR target/95046
87 * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
88
89 (floatv2siv2df2): New expander.
90 (floatunsv2siv2df2): New insn pattern.
91
92 (fix_truncv2dfv2si2): New expander.
93 (fixuns_truncv2dfv2si2): New insn pattern.
94
95 2020-05-14 Richard Sandiford <richard.sandiford@arm.com>
96
97 PR target/95105
98 * config/aarch64/aarch64-sve-builtins.cc
99 (handle_arm_sve_vector_bits_attribute): Create a copy of the
100 original type's TYPE_MAIN_VARIANT, then reapply all the differences
101 between the original type and its main variant.
102
103 2020-05-14 Richard Biener <rguenther@suse.de>
104
105 PR middle-end/95118
106 * real.c (real_to_decimal_for_mode): Make sure we handle
107 a zero with nonzero exponent.
108
109 2020-05-14 Jakub Jelinek <jakub@redhat.com>
110
111 * Makefile.in (GTFILES): Add omp-general.c.
112 * cgraph.h (struct cgraph_node): Add declare_variant_alt and
113 calls_declare_variant_alt members and initialize them in the
114 ctor.
115 * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct
116 calls to declare_variant_alt nodes.
117 * lto-cgraph.c (lto_output_node): Write declare_variant_alt
118 and calls_declare_variant_alt.
119 (input_overwrite_node): Read them back.
120 * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt
121 bit.
122 * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
123 bit.
124 (tree_function_versioning): Copy calls_declare_variant_alt bit.
125 * omp-offload.c (execute_omp_device_lower): Call
126 omp_resolve_declare_variant on direct function calls.
127 (pass_omp_device_lower::gate): Also enable for
128 calls_declare_variant_alt functions.
129 * omp-general.c (omp_maybe_offloaded): Return false after inlining.
130 (omp_context_selector_matches): Handle the case when
131 cfun->curr_properties has PROP_gimple_any bit set.
132 (struct omp_declare_variant_entry): New type.
133 (struct omp_declare_variant_base_entry): New type.
134 (struct omp_declare_variant_hasher): New type.
135 (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal):
136 New methods.
137 (omp_declare_variants): New variable.
138 (struct omp_declare_variant_alt_hasher): New type.
139 (omp_declare_variant_alt_hasher::hash,
140 omp_declare_variant_alt_hasher::equal): New methods.
141 (omp_declare_variant_alt): New variables.
142 (omp_resolve_late_declare_variant): New function.
143 (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant
144 when called late. Create a magic declare_variant_alt fndecl and
145 cgraph node and return that if decision needs to be deferred until
146 after gimplification.
147 * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt
148 bit.
149
150 PR middle-end/95108
151 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
152 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
153 entry block if info->after_stmt is NULL, otherwise add after that stmt
154 and update it after adding each stmt.
155 (ipa_simd_modify_function_body): Initialize info.after_stmt.
156
157 * function.h (struct function): Add has_omp_target bit.
158 * omp-offload.c (omp_discover_declare_target_fn_r): New function,
159 old renamed to ...
160 (omp_discover_declare_target_tgt_fn_r): ... this.
161 (omp_discover_declare_target_var_r): Call
162 omp_discover_declare_target_tgt_fn_r instead of
163 omp_discover_declare_target_fn_r.
164 (omp_discover_implicit_declare_target): Also queue functions with
165 has_omp_target bit set, for those walk with
166 omp_discover_declare_target_fn_r, for declare target to functions
167 walk with omp_discover_declare_target_tgt_fn_r.
168
169 2020-05-14 Uroš Bizjak <ubizjak@gmail.com>
170
171 PR target/95046
172 * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id.
173 Add SSE/AVX alternative. Change operand predicates from
174 nonimmediate_operand to register_mmxmem_operand.
175 Enable instruction pattern for TARGET_MMX_WITH_SSE.
176 (fix_truncv2sfv2si2): New expander.
177 (fixuns_truncv2sfv2si2): New insn pattern.
178
179 (mmx_floatv2siv2sf2): rename from mmx_floatv2si2.
180 Add SSE/AVX alternative. Change operand predicates from
181 nonimmediate_operand to register_mmxmem_operand.
182 Enable instruction pattern for TARGET_MMX_WITH_SSE.
183 (floatv2siv2sf2): New expander.
184 (floatunsv2siv2sf2): New insn pattern.
185
186 * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
187 Update for rename.
188 (IX86_BUILTIN_PI2FD): Ditto.
189
190 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
191
192 * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
193 expander.
194 * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
195 expanders.
196
197 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
198
199 * config/s390/s390.c (allocate_stack_space): Add missing updates
200 of last_probe_offset.
201
202 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com>
203
204 * config/s390/s390.md ("allocate_stack"): Call
205 anti_adjust_stack_and_probe_stack_clash when stack clash
206 protection is enabled.
207 * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove
208 prototype. Remove static.
209 * explow.h (anti_adjust_stack_and_probe_stack_clash): Add
210 prototype.
211
212 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
213
214 * config/rs6000/altivec.h (vec_extractl): New #define.
215 (vec_extracth): Likewise.
216 * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.
217 (UNSPEC_EXTRACTR): Likewise.
218 (vextractl<mode>): New expansion.
219 (vextractl<mode>_internal): New insn.
220 (vextractr<mode>): New expansion.
221 (vextractr<mode>_internal): New insn.
222 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx):
223 New built-in function.
224 (__builtin_altivec_vextduhvlx): Likewise.
225 (__builtin_altivec_vextduwvlx): Likewise.
226 (__builtin_altivec_vextddvlx): Likewise.
227 (__builtin_altivec_vextdubvhx): Likewise.
228 (__builtin_altivec_vextduhvhx): Likewise.
229 (__builtin_altivec_vextduwvhx): Likewise.
230 (__builtin_altivec_vextddvhx): Likewise.
231 (__builtin_vec_extractl): New overloaded built-in function.
232 (__builtin_vec_extracth): Likewise.
233 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
234 Define overloaded forms of __builtin_vec_extractl and
235 __builtin_vec_extracth.
236 (builtin_function_type): Add cases to mark arguments of new
237 built-in functions as unsigned.
238 (rs6000_common_init_builtins): Add
239 opaque_ftype_opaque_opaque_opaque_opaque.
240 * config/rs6000/rs6000.md (du_or_d): New mode attribute.
241 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
242 for a Future Architecture): Add description of vec_extractl and
243 vec_extractr built-in functions.
244
245 2020-05-13 Richard Biener <rguenther@suse.de>
246
247 * target.def (add_stmt_cost): Add new vectype parameter.
248 * targhooks.c (default_add_stmt_cost): Adjust.
249 * targhooks.h (default_add_stmt_cost): Likewise.
250 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new
251 vectype parameter.
252 * config/arm/arm.c (arm_add_stmt_cost): Likewise.
253 * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
254 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
255
256 * tree-vectorizer.h (stmt_info_for_cost::vectype): Add.
257 (dump_stmt_cost): Add new vectype parameter.
258 (add_stmt_cost): Likewise.
259 (record_stmt_cost): Likewise.
260 (record_stmt_cost): Add overload with old signature.
261 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
262 Adjust.
263 (vect_get_known_peeling_cost): Likewise.
264 (vect_estimate_min_profitable_iters): Likewise.
265 * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter.
266 * tree-vect-stmts.c (record_stmt_cost): Likewise.
267 (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter
268 and pass down correct vectype and NULL stmt_info.
269 (vect_model_simple_cost): Adjust.
270 (vect_model_store_cost): Likewise.
271
272 2020-05-13 Richard Biener <rguenther@suse.de>
273
274 * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove.
275 (_slp_instance::group_size): Likewise.
276 * tree-vect-loop.c (vectorizable_reduction): The group size
277 is the number of lanes in the node.
278 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
279 (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE,
280 verify it matches the instance trees number of lanes.
281 (vect_slp_analyze_node_operations_1): Use the numer of lanes
282 in the node as group size.
283 (vect_bb_vectorization_profitable_p): Use the instance root
284 number of lanes for the size of life.
285 (vect_schedule_slp_instance): Use the number of lanes as
286 group_size.
287 * tree-vect-stmts.c (vectorizable_load): Remove SLP instance
288 parameter. Use the number of lanes of the load for the group
289 size in the gap adjustment code.
290 (vect_analyze_stmt): Adjust.
291 (vect_transform_stmt): Likewise.
292
293 2020-05-13 Jakub Jelinek <jakub@redhat.com>
294
295 PR debug/95080
296 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
297 if the last insn is a note.
298
299 PR tree-optimization/95060
300 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR
301 if it is the single use of the FMA internal builtin.
302
303 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com>
304
305 PR tree-optimization/94969
306 * tree-data-dependence.c (constant_access_functions): Rename to...
307 (invariant_access_functions): ...this. Add parameter. Check for
308 invariant access function, rather than constant.
309 (build_classic_dist_vector): Call above function.
310 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
311
312 2020-05-13 Hongtao Liu <hongtao.liu@intel.com>
313
314 PR target/94118
315 * doc/extend.texi (x86Operandmodifiers): Document more x86
316 operand modifier.
317 * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
318
319 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br>
320
321 * tree-vrp.c (class vrp_insert): New.
322 (insert_range_assertions): Move to class vrp_insert.
323 (dump_all_asserts): Same as above.
324 (dump_asserts_for): Same as above.
325 (live): Same as above.
326 (need_assert_for): Same as above.
327 (live_on_edge): Same as above.
328 (finish_register_edge_assert_for): Same as above.
329 (find_switch_asserts): Same as above.
330 (find_assert_locations): Same as above.
331 (find_assert_locations_1): Same as above.
332 (find_conditional_asserts): Same as above.
333 (process_assert_insertions): Same as above.
334 (register_new_assert_for): Same as above.
335 (vrp_prop): New variable fun.
336 (vrp_initialize): New parameter.
337 (identify_jump_threads): Same as above.
338 (execute_vrp): Same as above.
339
340
341 2020-05-12 Keith Packard <keith.packard@sifive.com>
342
343 * config/riscv/riscv.c (riscv_unique_section): New.
344 (TARGET_ASM_UNIQUE_SECTION): New.
345
346 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com>
347
348 * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv.
349 * config/riscv/riscv-passes.def: New file.
350 * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare.
351 * config/riscv/riscv-shorten-memrefs.c: New file.
352 * config/riscv/riscv.c (tree-pass.h): New include.
353 (riscv_compressed_reg_p): New Function
354 (riscv_compressed_lw_offset_p): Likewise.
355 (riscv_compressed_lw_address_p): Likewise.
356 (riscv_shorten_lw_offset): Likewise.
357 (riscv_legitimize_address): Attempt to convert base + large_offset
358 to compressible new_base + small_offset.
359 (riscv_address_cost): Make anticipated compressed load/stores
360 cheaper for code size than uncompressed load/stores.
361 (riscv_register_priority): Move compressed register check to
362 riscv_compressed_reg_p.
363 * config/riscv/riscv.h (C_S_BITS): Define.
364 (CSW_MAX_OFFSET): Define.
365 * config/riscv/riscv.opt (mshorten-memefs): New option.
366 * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule.
367 (PASSES_EXTRA): Add riscv-passes.def.
368 * doc/invoke.texi: Document -mshorten-memrefs.
369
370 * config/riscv/riscv.c (riscv_new_address_profitable_p): New function.
371 (TARGET_NEW_ADDRESS_PROFITABLE_P): Define.
372 * doc/tm.texi: Regenerate.
373 * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook.
374 * sched-deps.c (attempt_change): Use old address if it is cheaper than
375 new address.
376 * target.def (new_address_profitable_p): New hook.
377 * targhooks.c (default_new_address_profitable_p): New function.
378 * targhooks.h (default_new_address_profitable_p): Declare.
379
380 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
381
382 PR target/95046
383 * config/i386/mmx.md (copysignv2sf3): New expander.
384 (xorsignv2sf3): Ditto.
385 (signbitv2sf3): Ditto.
386
387 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
388
389 PR target/95046
390 * config/i386/mmx.md (fmav2sf4): New insn pattern.
391 (fmsv2sf4): Ditto.
392 (fnmav2sf4): Ditto.
393 (fnmsv2sf4): Ditto.
394
395 2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
396
397 * Makefile.in (CET_HOST_FLAGS): New.
398 (COMPILER): Add $(CET_HOST_FLAGS).
399 * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
400 AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't
401 enabled.
402 * aclocal.m4: Regenerated.
403 * configure: Likewise.
404
405 2020-05-12 Uroš Bizjak <ubizjak@gmail.com>
406
407 PR target/95046
408 * config/i386/mmx.md (<code>v2sf2): New insn pattern.
409 (*mmx_<code>v2sf2): New insn_and_split pattern.
410 (*mmx_nabsv2sf2): Ditto.
411 (*mmx_andnotv2sf3): New insn pattern.
412 (*mmx_<code>v2sf3): Ditto.
413 * config/i386/i386.md (absneg_op): New code attribute.
414 * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode.
415 (ix86_build_signbit_mask): Ditto.
416
417 2020-05-12 Richard Biener <rguenther@suse.de>
418
419 * tree-ssa-live.c (remove_unused_locals): Remove dead debug
420 bind resets.
421
422 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
423
424 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
425 Update prototype to include "local" argument.
426 * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add
427 "local" argument. Handle local common decls.
428 * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust
429 msp430_output_aligned_decl_common call with 0 for "local" argument.
430 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
431
432 2020-05-12 Richard Biener <rguenther@suse.de>
433
434 * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
435
436 2020-05-12 Martin Liska <mliska@suse.cz>
437
438 PR sanitizer/95033
439 PR sanitizer/95051
440 * sanopt.c (sanitize_rewrite_addressable_params):
441 Clear DECL_NOT_GIMPLE_REG_P for argument.
442
443 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
444
445 PR tree-optimization/94980
446 * tree-vect-generic.c (expand_vector_comparison): Use
447 vector_element_bits_tree to get the element size in bits,
448 rather than using TYPE_SIZE.
449 (expand_vector_condition, vector_element): Likewise.
450
451 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
452
453 PR tree-optimization/94980
454 * tree-vect-generic.c (build_replicated_const): Take the number
455 of bits as a parameter, instead of the type of the elements.
456 (do_plus_minus): Update accordingly, using vector_element_bits
457 to calculate the correct number of bits.
458 (do_negate): Likewise.
459
460 2020-05-12 Richard Sandiford <richard.sandiford@arm.com>
461
462 PR tree-optimization/94980
463 * tree.h (vector_element_bits, vector_element_bits_tree): Declare.
464 * tree.c (vector_element_bits, vector_element_bits_tree): New.
465 * match.pd: Use the new functions instead of determining the
466 vector element size directly from TYPE_SIZE(_UNIT).
467 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
468 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
469 * tree-vect-stmts.c (vect_is_simple_cond): Likewise.
470 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
471 (expand_vector_conversion): Likewise.
472 (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as
473 a divisor. Convert the dividend to bits to compensate.
474 * tree-vect-loop.c (vectorizable_live_operation): Call
475 vector_element_bits instead of open-coding it.
476
477 2020-05-12 Jakub Jelinek <jakub@redhat.com>
478
479 * omp-offload.h (omp_discover_implicit_declare_target): Declare.
480 * omp-offload.c: Include context.h.
481 (omp_declare_target_fn_p, omp_declare_target_var_p,
482 omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
483 omp_discover_implicit_declare_target): New functions.
484 * cgraphunit.c (analyze_functions): Call
485 omp_discover_implicit_declare_target.
486
487 2020-05-12 Richard Biener <rguenther@suse.de>
488
489 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
490 literal constant &MEM[..] to a constant literal.
491
492 2020-05-12 Richard Biener <rguenther@suse.de>
493
494 PR tree-optimization/95045
495 * dbgcnt.def (lim): Add debug-counter.
496 * tree-ssa-loop-im.c: Include dbgcnt.h.
497 (find_refs_for_sm): Use lim debug counter for store motion
498 candidates.
499 (do_store_motion): Rename form store_motion. Commit edge
500 insertions...
501 (store_motion_loop): ... here.
502 (tree_ssa_lim): Adjust.
503
504 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
505
506 * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm.
507 (vec_ctzm): Rename to vec_cnttzm.
508 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
509 Change fourth operand for vec_ternarylogic to require
510 compatibility with unsigned SImode rather than unsigned QImode.
511 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
512 Remove overloaded forms of vec_gnb that are no longer needed.
513 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
514 for a Future Architecture): Replace vec_clzm with vec_cntlzm;
515 replace vec_ctzm with vec_cntlzm; remove four unwanted forms of
516 vec_gnb; move vec_ternarylogic documentation into this section
517 and replace const unsigned char with const unsigned int as its
518 fourth argument.
519
520 2020-05-11 Carl Love <cel@us.ibm.com>
521
522 * config/rs6000/altivec.h (vec_genpcvm): New #define.
523 * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
524 instantiation.
525 (XXGENPCVM_V8HI): Likewise.
526 (XXGENPCVM_V4SI): Likewise.
527 (XXGENPCVM_V2DI): Likewise.
528 (XXGENPCVM): New overloaded built-in instantiation.
529 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
530 entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
531 (altivec_expand_builtin): Add special handling for
532 FUTURE_BUILTIN_VEC_XXGENPCVM.
533 (builtin_function_type): Add handling for
534 FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
535 * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
536 (UNSPEC_XXGENPCV): New constant.
537 (xxgenpcvm_<mode>_internal): New insn.
538 (xxgenpcvm_<mode>): New expansion.
539 * doc/extend.texi: Add documentation for vec_genpcvm built-ins.
540
541 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
542
543 * config/rs6000/altivec.h (vec_strir): New #define.
544 (vec_stril): Likewise.
545 (vec_strir_p): Likewise.
546 (vec_stril_p): Likewise.
547 * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant.
548 (UNSPEC_VSTRIL): Likewise.
549 (vstrir_<mode>): New expansion.
550 (vstrir_code_<mode>): New insn.
551 (vstrir_p_<mode>): New expansion.
552 (vstrir_p_code_<mode>): New insn.
553 (vstril_<mode>): New expansion.
554 (vstril_code_<mode>): New insn.
555 (vstril_p_<mode>): New expansion.
556 (vstril_p_code_<mode>): New insn.
557 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr):
558 New built-in function.
559 (__builtin_altivec_vstrihr): Likewise.
560 (__builtin_altivec_vstribl): Likewise.
561 (__builtin_altivec_vstrihl): Likewise.
562 (__builtin_altivec_vstribr_p): Likewise.
563 (__builtin_altivec_vstrihr_p): Likewise.
564 (__builtin_altivec_vstribl_p): Likewise.
565 (__builtin_altivec_vstrihl_p): Likewise.
566 (__builtin_vec_strir): New overloaded built-in function.
567 (__builtin_vec_stril): Likewise.
568 (__builtin_vec_strir_p): Likewise.
569 (__builtin_vec_stril_p): Likewise.
570 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
571 Define overloaded forms of __builtin_vec_strir,
572 __builtin_vec_stril, __builtin_vec_strir_p, and
573 __builtin_vec_stril_p.
574 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
575 for a Future Architecture): Add description of vec_stril,
576 vec_stril_p, vec_strir, and vec_strir_p built-in functions.
577
578 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com>
579
580 * config/rs6000/altivec.h (vec_ternarylogic): New #define.
581 * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant.
582 (xxeval): New insn.
583 * config/rs6000/predicates.md (u8bit_cint_operand): New predicate.
584 * config/rs6000/rs6000-builtin.def: Add handling of new macro
585 RS6000_BUILTIN_4.
586 (BU_FUTURE_V_4): New macro. Use it.
587 (BU_FUTURE_OVERLOAD_4): Likewise.
588 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add
589 handling for quaternary built-in functions.
590 (altivec_resolve_overloaded_builtin): Add special-case handling
591 for __builtin_vec_xxeval.
592 * config/rs6000/rs6000-call.c: Add handling of new macro
593 RS6000_BUILTIN_4 in initialization of rs6000_builtin_info,
594 bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg,
595 bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays.
596 (altivec_overloaded_builtins): Add definitions for
597 FUTURE_BUILTIN_VEC_XXEVAL.
598 (bdesc_4arg): New array.
599 (htm_expand_builtin): Add handling for quaternary built-in
600 functions.
601 (rs6000_expand_quaternop_builtin): New function.
602 (rs6000_expand_builtin): Add handling for quaternary built-in
603 functions.
604 (rs6000_init_builtins): Initialize builtin_mode_to_type entries
605 for unsigned QImode and unsigned HImode.
606 (builtin_quaternary_function_type): New function.
607 (rs6000_common_init_builtins): Add handling of quaternary
608 operations.
609 * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
610 constant.
611 (RS6000_BTC_PREDICATE): Change value of constant.
612 (RS6000_BTC_ABS): Likewise.
613 (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4.
614 * doc/extend.texi (PowerPC AltiVec Built-In Functions Available
615 for a Future Architecture): Add description of vec_ternarylogic
616 built-in function.
617
618 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
619
620 * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
621 function.
622 (__builtin_pextd): Likewise.
623 * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
624 (UNSPEC_PEXTD): Likewise.
625 (pdepd): New insn.
626 (pextd): Likewise.
627 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
628 a Future Architecture): Add descriptions of __builtin_pdepd and
629 __builtin_pextd functions.
630
631 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
632
633 * config/rs6000/altivec.h (vec_clrl): New #define.
634 (vec_clrr): Likewise.
635 * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant.
636 (UNSPEC_VCLRRB): Likewise.
637 (vclrlb): New insn.
638 (vclrrb): Likewise.
639 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New
640 built-in function.
641 (__builtin_altivec_vclrrb): Likewise.
642 (__builtin_vec_clrl): New overloaded built-in function.
643 (__builtin_vec_clrr): Likewise.
644 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
645 Define overloaded forms of __builtin_vec_clrl and
646 __builtin_vec_clrr.
647 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
648 for a Future Architecture): Add descriptions of vec_clrl and
649 vec_clrr.
650
651 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
652
653 * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
654 built-in function definition.
655 (__builtin_cnttzdm): Likewise.
656 * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
657 (UNSPEC_CNTTZDM): Likewise.
658 (cntlzdm): New insn.
659 (cnttzdm): Likewise.
660 * doc/extend.texi (Basic PowerPC Built-in Functions available for
661 a Future Architecture): Add descriptions of __builtin_cntlzdm and
662 __builtin_cnttzdm functions.
663
664 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
665
666 PR target/95046
667 * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
668
669 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
670
671 * config/rs6000/altivec.h (vec_cfuge): New #define.
672 * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant.
673 (vcfuged): New insn.
674 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged):
675 New built-in function.
676 * config/rs6000/rs6000-call.c (builtin_function_type): Add
677 handling for FUTURE_BUILTIN_VCFUGED case.
678 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
679 for a Future Architecture): Add description of vec_cfuge built-in
680 function.
681
682 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
683
684 * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
685 #define.
686 (BU_FUTURE_MISC_1): Likewise.
687 (BU_FUTURE_MISC_2): Likewise.
688 (BU_FUTURE_MISC_3): Likewise.
689 (__builtin_cfuged): New built-in function definition.
690 * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant.
691 (cfuged): New insn.
692 * doc/extend.texi (Basic PowerPC Built-in Functions Available for
693 a Future Architecture): New subsubsection.
694
695 2020-05-11 Richard Biener <rguenther@suse.de>
696
697 PR tree-optimization/95049
698 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
699 between different constants.
700
701 2020-05-11 Richard Sandiford <richard.sandiford@arm.com>
702
703 * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
704
705 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
706 Bill Schmidt <wschmidt@linux.ibm.com>
707
708 * config/rs6000/altivec.h (vec_gnb): New #define.
709 * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
710 (vgnb): New insn.
711 * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
712 #define.
713 (BU_FUTURE_OVERLOAD_2): Likewise.
714 (BU_FUTURE_OVERLOAD_3): Likewise.
715 (__builtin_altivec_gnb): New built-in function.
716 (__buiiltin_vec_gnb): New overloaded built-in function.
717 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
718 Define overloaded forms of __builtin_vec_gnb.
719 (rs6000_expand_binop_builtin): Add error checking for 2nd argument
720 of __builtin_vec_gnb.
721 (builtin_function_type): Mark return value and arguments unsigned
722 for FUTURE_BUILTIN_VGNB.
723 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
724 for a Future Architecture): Add description of vec_gnb built-in
725 function.
726
727 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
728 Bill Schmidt <wschmidt@linux.ibm.com>
729
730 * config/rs6000/altivec.h (vec_pdep): New macro implementing new
731 built-in function.
732 (vec_pext): Likewise.
733 * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant.
734 (UNSPEC_VPEXTD): Likewise.
735 (vpdepd): New insn.
736 (vpextd): Likewise.
737 * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New
738 built-in function.
739 (__builtin_altivec_vpextd): Likewise.
740 * config/rs6000/rs6000-call.c (builtin_function_type): Add
741 handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD
742 cases.
743 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
744 for a Future Architecture): Add description of vec_pdep and
745 vec_pext built-in functions.
746
747 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
748 Bill Schmidt <wschmidt@linux.ibm.com>
749
750 * config/rs6000/altivec.h (vec_clzm): New macro.
751 (vec_ctzm): Likewise.
752 * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant.
753 (UNSPEC_VCTZDM): Likewise.
754 (vclzdm): New insn.
755 (vctzdm): Likewise.
756 * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro.
757 (BU_FUTURE_V_1): Likewise.
758 (BU_FUTURE_V_2): Likewise.
759 (BU_FUTURE_V_3): Likewise.
760 (__builtin_altivec_vclzdm): New builtin definition.
761 (__builtin_altivec_vctzdm): Likewise.
762 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause
763 _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is
764 set.
765 * config/rs6000/rs6000-call.c (builtin_function_type): Set return
766 value and parameter types to be unsigned for VCLZDM and VCTZDM.
767 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
768 support for TARGET_FUTURE flag.
769 * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant.
770 * doc/extend.texi (PowerPC Altivec Built-in Functions Available
771 for a Future Architecture): New subsubsection.
772
773 2020-05-11 Richard Biener <rguenther@suse.de>
774
775 PR tree-optimization/94988
776 PR tree-optimization/95025
777 * tree-ssa-loop-im.c (seq_entry): Make a struct, add from.
778 (sm_seq_push_down): Take extra parameter denoting where we
779 moved the ref to.
780 (execute_sm_exit): Re-issue sm_other stores in the correct
781 order.
782 (sm_seq_valid_bb): When always executed, allow sm_other to
783 prevail inbetween sm_ord and record their stored value.
784 (hoist_memory_references): Adjust refs_not_supported propagation
785 and prune sm_other from the end of the ordered sequences.
786
787 2020-05-11 Felix Yang <felix.yang@huawei.com>
788
789 PR target/94991
790 * config/aarch64/aarch64.md (mov<mode>):
791 Bitcasts to the equivalent integer mode using gen_lowpart
792 instead of doing FAIL for scalar floating point move.
793
794 2020-05-11 Alex Coplan <alex.coplan@arm.com>
795
796 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case
797 to correctly calculate cost for new pattern (*csinv3_uxtw_insn3).
798 * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New.
799 (*csinv3_uxtw_insn2): New.
800 (*csinv3_uxtw_insn3): New.
801 * config/aarch64/iterators.md (neg_not_cs): New.
802
803 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
804
805 PR target/95046
806 * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint
807 instead of "Yv" for AVX alternatives. Add "prefix" attribute.
808 (*mmx_addv2sf3): Ditto.
809 (*mmx_subv2sf3): Ditto.
810 (*mmx_mulv2sf3): Ditto.
811 (*mmx_<code>v2sf3): Ditto.
812 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
813
814 2020-05-11 Uroš Bizjak <ubizjak@gmail.com>
815
816 PR target/95046
817 * config/i386/i386.c (ix86_vector_mode_supported_p):
818 Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE.
819 * config/i386/mmx.md (*mov<mode>_internal): Do not set
820 mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE.
821
822 (mmx_addv2sf3): Change operand predicates from
823 nonimmediate_operand to register_mmxmem_operand.
824 (addv2sf3): New expander.
825 (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand
826 predicates from nonimmediate_operand to register_mmxmem_operand.
827 Enable instruction pattern for TARGET_MMX_WITH_SSE.
828
829 (mmx_subv2sf3): Change operand predicate from
830 nonimmediate_operand to register_mmxmem_operand.
831 (mmx_subrv2sf3): Ditto.
832 (subv2sf3): New expander.
833 (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand
834 predicates from nonimmediate_operand to register_mmxmem_operand.
835 Enable instruction pattern for TARGET_MMX_WITH_SSE.
836
837 (mmx_mulv2sf3): Change operand predicates from
838 nonimmediate_operand to register_mmxmem_operand.
839 (mulv2sf3): New expander.
840 (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand
841 predicates from nonimmediate_operand to register_mmxmem_operand.
842 Enable instruction pattern for TARGET_MMX_WITH_SSE.
843
844 (mmx_<code>v2sf3): Change operand predicates from
845 nonimmediate_operand to register_mmxmem_operand.
846 (<code>v2sf3): New expander.
847 (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand
848 predicates from nonimmediate_operand to register_mmxmem_operand.
849 Enable instruction pattern for TARGET_MMX_WITH_SSE.
850 (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
851
852 2020-05-11 Martin Liska <mliska@suse.cz>
853
854 PR c/95040
855 * common.opt: Fix typo in option description.
856
857 2020-05-11 Martin Liska <mliska@suse.cz>
858
859 PR gcov-profile/94928
860 * gcov-io.h: Add caveat about coverage format parsing and
861 possible outdated documentation.
862
863 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com>
864
865 PR tree-optimization/83403
866 * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with
867 determine_value_range, Add fold conversion of MULT_EXPR, fix the
868 previous PLUS_EXPR.
869
870 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com>
871
872 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
873 __ILP32__ for 32-bit targets.
874
875 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
876
877 * tree.h (expr_align): Delete.
878 * tree.c (expr_align): Likewise.
879
880 2020-05-09 Hans-Peter Nilsson <hp@axis.com>
881
882 * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM
883 from end_of_function_needs.
884
885 * config.gcc: Remove support for crisv32-*-* and cris-*-linux*.
886 * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt:
887 Remove.
888 * config/cris/t-elfmulti: Remove crisv32 multilib.
889 * config/cris: Remove shared-library and CRIS v32 support.
890
891 Move trivially from cc0 to reg:CC model, removing most optimizations.
892 * config/cris/cris.md: Remove all side-effect patterns and their
893 splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM
894 to all but post-reload control-flow and movem insns. Remove
895 constraints on all modified expanders. Remove obsoleted cc0-related
896 references.
897 (attr "cc"): Remove alternative "rev".
898 (mode_iterator BWDD, DI_, SI_): New.
899 (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New.
900 ("tst<mode>"): Remove; fold as "M" alternative into compare insn.
901 ("mstep_shift", "mstep_mul"): Remove patterns.
902 ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize.
903 * config/cris/cris.c: Change all non-condition-code,
904 non-control-flow emitted insns to add a parallel with clobber of
905 CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with
906 emit_insn to use of emit_move_insn, gen_add2_insn or
907 cris_emit_insn, as convenient.
908 (cris_reg_overlap_mentioned_p)
909 (cris_normal_notice_update_cc, cris_notice_update_cc): Remove.
910 (cris_movem_load_rest_p): Don't assume all elements in a
911 PARALLEL are SETs.
912 (cris_store_multiple_op_p): Ditto.
913 (cris_emit_insn): New function.
914 * cris/cris-protos.h (cris_emit_insn): Declare.
915
916 PR target/93372
917 * config/cris/cris.md (zcond): New code_iterator.
918 ("*cbranch<mode>4_btstq<CC>"): New insn_and_split.
919
920 * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define.
921
922 * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true.
923
924 * config/cris/cris.md ("movsi"): For memory destination
925 post-reload, generate clobberless variant. Similarly for a
926 zero-source post-reload.
927 ("*mov_tomem<mode>_split"): New split.
928 ("*mov_tomem<mode>"): New insn.
929 ("enabled", mov_tomem_enabled): Define and use to exclude "x" ->
930 "Q>m" for less-than-SImode.
931 ("*mov_fromzero<mode>_split"): New split.
932 ("*mov_fromzero<mode>"): New insn.
933
934 Prepare for cmpelim pass to eliminate redundant compare insns.
935 * config/cris/cris-modes.def: New file.
936 * config/cris/cris-protos.h (cris_select_cc_mode): Declare.
937 (cris_notice_update_cc): Remove left-over declaration.
938 * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define.
939 (cris_select_cc_mode, cris_cc_modes_compatible): New functions.
940 * config/cris/cris.h (SELECT_CC_MODE): Define.
941 * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New
942 mode_iterators.
943 (cond): New code_iterator.
944 (nzcond): Replacement for incorrect ncond. All callers changed.
945 (nzvccond): Replacement for ocond. All callers changed.
946 (rnzcond): Replacement for rcond. All callers changed.
947 (xCC): New code_attr.
948 (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All
949 users changed.
950 ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace
951 CCmode with iteration over NZVCSET.
952 ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from
953 "*cmp_ext<mode>".
954 ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi".
955 ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>".
956 ("*btst<mode>"): Similarly, from "*btst".
957 ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4",
958 iterating over cond instead of matching the comparison with
959 ordered_comparison_operator.
960 ("*cbranch<mode>4_btstq<CC>"): Correct label operand number.
961 ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating
962 over NZUSE.
963 ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over
964 NZVCUSE. Remove FIXME.
965 ("*b<nzcond:code>_reversed<mode>"): Similarly from
966 "*b<ncond:code>_reversed", over NZUSE.
967 ("*b<nzvccond:code>_reversed<mode>"): Similarly from
968 "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME.
969 ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>",
970 over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
971 depending on CC_NZmode vs. CCmode. Remove FIXME.
972 ("*b<rnzcond:code>_reversed<mode>"): Similarly from
973 "*b<rcond:code>_reversed", over NZUSE.
974 ("*cstore<mode><code>4"): Rename from "*cstore<mode>4",
975 iterating over cond instead of matching the comparison with
976 ordered_comparison_operator.
977 ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>",
978 iterating over NZUSE.
979 ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over
980 NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice,
981 depending on CC_NZmode vs. CCmode.
982 ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over
983 NZVCUSE. Remove FIXME.
984 ("cc"): Comment on new use.
985 ("cc_enabled"): New attribute.
986 ("enabled"): Make default fall back to cc_enabled.
987 ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New
988 default_subst_attrs.
989 ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst.
990 ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from
991 "*movsi_internal". Correct contents of, and rename attribute
992 "cc" to "cc<cccc><ccnz><ccnzvc>".
993 ("anz", "anzvc", "acc"): New define_subst_attrs.
994 ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
995 "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
996 ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
997 "movqi". Correct contents of, and rename "cc" attribute to
998 "cc<cccc><ccnz><ccnzvc>".
999 ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
1000 ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
1001 ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".
1002 ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"):
1003 Rename from "extend<mode>si2".
1004 ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"):
1005 Similar, from "zero_extend<mode>si2".
1006 ("*adddi3<setnz>"): Rename from "*adddi3".
1007 ("*subdi3<setnz>"): Similarly from "*subdi3".
1008 ("*addsi3<setnz>"): Similarly from "*addsi3".
1009 ("*subsi3<setnz>"): Similarly from "*subsi3".
1010 ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the
1011 "cc" attribute to "cc<ccnz>".
1012 ("*addqi3<setnz>"): Similarly from "*addqi3".
1013 ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3".
1014 ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from
1015 "*expanded_andsi".
1016 ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3".
1017 Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>".
1018 ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3".
1019 ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3".
1020 ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from
1021 "*expanded_andhi". Add quick cc-setting alternative for 0..31.
1022 ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3".
1023 ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename
1024 from "xorsi3".
1025 ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename
1026 from "one_cmplsi2".
1027 ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename
1028 from "<shlr>si3".
1029 ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename
1030 from "clzsi2".
1031 ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename
1032 from "bswapsi2".
1033 ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3".
1034
1035 * config/cris/cris-modes.def (CC_ZnN): New CC_MODE.
1036 * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test
1037 * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators.
1038 (znnCC, rznnCC): New code_attrs.
1039 ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove
1040 obseolete comment. Add belt-and-suspenders mode-test to condition.
1041 Add fixme regarding remaining matched-but-not-generated case.
1042 ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split.
1043 ("*cbranch<mode>4_btstqb0_<CC>"): Rename from
1044 "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC.
1045 ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE.
1046 Handle output of CC_ZnNmode.
1047 ("*b<nzcond:code>_reversed<mode>"): Ditto.
1048
1049 * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for
1050 NEG too. Correct comment.
1051 * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from
1052 "neg<mode>2".
1053
1054 2020-05-08 Vladimir Makarov <vmakarov@redhat.com>
1055
1056 * ira-color.c (update_costs_from_allocno): Remove
1057 conflict_cost_update_p argument. Propagate costs only along
1058 threads. Always do conflict cost update. Add printing debugging
1059 info.
1060 (update_costs_from_copies): Add printing debugging info.
1061 (restore_costs_from_copies): Ditto.
1062 (assign_hard_reg): Improve debug info.
1063 (push_only_colorable): Ditto. Call update_costs_from_prefs.
1064 (color_allocnos): Remove update_costs_from_prefs.
1065
1066 2020-05-08 Richard Biener <rguenther@suse.de>
1067
1068 * tree-vectorizer.h (vec_info::slp_loads): New.
1069 (vect_optimize_slp): Declare.
1070 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do
1071 nothing when there are no loads.
1072 (vect_gather_slp_loads): Gather loads into a vector.
1073 (vect_supported_load_permutation_p): Remove.
1074 (vect_analyze_slp_instance): Do not verify permutation
1075 validity here.
1076 (vect_analyze_slp): Optimize permutations of reductions
1077 after all SLP instances have been gathered and gather
1078 all loads.
1079 (vect_optimize_slp): New function split out from
1080 vect_supported_load_permutation_p. Elide some permutations.
1081 (vect_slp_analyze_bb_1): Call vect_optimize_slp.
1082 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
1083 * tree-vect-stmts.c (vectorizable_load): Check whether
1084 the load can be permuted. When generating code assert we can.
1085
1086 2020-05-08 Richard Biener <rguenther@suse.de>
1087
1088 * tree-ssa-sccvn.c (rpo_avail): Change type to
1089 eliminate_dom_walker *.
1090 (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize
1091 use the DOM walker availability.
1092 (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1
1093 with vn_valueize as valueization callback.
1094 (vn_reference_maybe_forwprop_address): Likewise.
1095 * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize
1096 array_ref_low_bound.
1097
1098 2020-05-08 Jakub Jelinek <jakub@redhat.com>
1099
1100 PR tree-optimization/94786
1101 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New
1102 simplification.
1103
1104 PR target/94857
1105 * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New
1106 define_peephole2.
1107
1108 PR middle-end/94724
1109 * tree.c (get_narrower): Reuse the op temporary instead of
1110 shadowing it.
1111
1112 PR tree-optimization/94783
1113 * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)):
1114 New simplification.
1115
1116 PR tree-optimization/94956
1117 * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into
1118 __builtin_ctz* + 1 if direct IFN_CTZ is supported.
1119
1120 PR tree-optimization/94913
1121 * match.pd (A - B + -1 >= A to B >= A): New simplification.
1122 (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always
1123 true for TYPE_UNSIGNED integral types.
1124
1125 PR bootstrap/94961
1126 PR rtl-optimization/94516
1127 * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted
1128 to false.
1129 * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument.
1130 Call df_notes_rescan if that argument is not true and returning true.
1131 * combine.c (adjust_for_new_dest): Pass true as second argument to
1132 remove_reg_equal_equiv_notes.
1133 * postreload.c (reload_combine_recognize_pattern): Don't call
1134 df_notes_rescan.
1135
1136 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
1137
1138 * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New
1139 define_insn.
1140 (*setnbcr_<un>signed_<GPR:mode>): New define_insn.
1141 (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1.
1142 (*neg_ne_<mode>): Likewise.
1143
1144 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
1145
1146 * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New
1147 define_insn.
1148 (*setbcr_<un>signed_<GPR:mode>): Likewise.
1149 (cstore<mode>4): Use setbc[r] if available.
1150 (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE.
1151 (eq<mode>3): Use setbc for TARGET_FUTURE.
1152 (*eq<mode>3): Avoid for TARGET_FUTURE.
1153 (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE;
1154 else for non-Pmode, use gen_eq and gen_xor.
1155 (*ne<mode>3): Avoid for TARGET_FUTURE.
1156 (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1.
1157
1158 2020-05-07 Jeff Law <law@redhat.com>
1159
1160 * config/h8300/h8300.md: Move expanders and patterns into
1161 files based on functionality.
1162 * config/h8300/addsub.md: New file.
1163 * config/h8300/bitfield.md: New file
1164 * config/h8300/combiner.md: New file
1165 * config/h8300/divmod.md: New file
1166 * config/h8300/extensions.md: New file
1167 * config/h8300/jumpcall.md: New file
1168 * config/h8300/logical.md: New file
1169 * config/h8300/movepush.md: New file
1170 * config/h8300/multiply.md: New file
1171 * config/h8300/other.md: New file
1172 * config/h8300/proepi.md: New file
1173 * config/h8300/shiftrotate.md: New file
1174 * config/h8300/testcompare.md: New file
1175
1176 * config/h8300/h8300.md (adds/subs splitters): Merge into single
1177 splitter.
1178 (negation expanders and patterns): Simplify and combine using
1179 iterators.
1180 (one_cmpl expanders and patterns): Likewise.
1181 (tablejump, indirect_jump patterns ): Likewise.
1182 (shift and rotate expanders and patterns): Likewise.
1183 (absolute value expander and pattern): Drop expander, rename pattern
1184 to just "abssf2"
1185 (peephole2 patterns): Move into...
1186 * config/h8300/peepholes.md: New file.
1187
1188 * config/h8300/constraints.md (L and N): Simplify now that we're not
1189 longer supporting the original H8/300 chip.
1190 * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H.
1191 * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support.
1192 (shift_alg_hi, shift_alg_si): Similarly.
1193 (h8300_option_overrides): Similarly. Default to H8/300H. If
1194 compiling for H8/S, then turn off H8/300H. Do not update the
1195 shift_alg tables for H8/300 port.
1196 (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify
1197 where possible.
1198 (push, split_adds_subs, h8300_rtx_costs): Likewise.
1199 (h8300_print_operand, compute_mov_length): Likewise.
1200 (output_plussi, compute_plussi_length): Likewise.
1201 (compute_plussi_cc, output_logical_op): Likewise.
1202 (compute_logical_op_length, compute_logical_op_cc): Likewise.
1203 (get_shift_alg, h8300_shift_needs_scratch): Likewise.
1204 (output_a_shift, compute_a_shift_length): Likewise.
1205 (output_a_rotate, compute_a_rotate_length): Likewise.
1206 (output_simode_bld, h8300_hard_regno_mode_ok): Likewise.
1207 (h8300_modes_tieable_p, h8300_return_in_memory): Likewise.
1208 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1209 (attr_cpu, TARGET_H8300): Remove.
1210 (TARGET_DEFAULT): Update.
1211 (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible.
1212 (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise.
1213 (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise.
1214 (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise.
1215 * config/h8300/h8300.md: Simplify patterns throughout.
1216 * config/h8300/t-h8300: Update multilib configuration.
1217
1218 * config/h8300/h8300.h (LINK_SPEC): Remove.
1219 (USER_LABEL_PREFIX): Likewise.
1220
1221 * config/h8300/h8300.c (h8300_asm_named_section): Remove.
1222 (h8300_option_override): Remove remnants of COFF support.
1223
1224 2020-05-07 Alan Modra <amodra@gmail.com>
1225
1226 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace
1227 set_rtx_cost with set_src_cost.
1228 * tree-switch-conversion.c (bit_test_cluster::emit): Likewise.
1229
1230 2020-05-07 Kewen Lin <linkw@gcc.gnu.org>
1231
1232 * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid
1233 redundant half vector handlings for no peeling gaps.
1234
1235 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br>
1236
1237 * tree-ssa-operands.c (operands_scanner): New class.
1238 (operands_bitmap_obstack): Remove.
1239 (n_initialized): Remove.
1240 (build_uses): Move to operands_scanner class.
1241 (build_vuse): Same as above.
1242 (build_vdef): Same as above.
1243 (verify_ssa_operands): Same as above.
1244 (finalize_ssa_uses): Same as above.
1245 (cleanup_build_arrays): Same as above.
1246 (finalize_ssa_stmt_operands): Same as above.
1247 (start_ssa_stmt_operands): Same as above.
1248 (append_use): Same as above.
1249 (append_vdef): Same as above.
1250 (add_virtual_operand): Same as above.
1251 (add_stmt_operand): Same as above.
1252 (get_mem_ref_operands): Same as above.
1253 (get_tmr_operands): Same as above.
1254 (maybe_add_call_vops): Same as above.
1255 (get_asm_stmt_operands): Same as above.
1256 (get_expr_operands): Same as above.
1257 (parse_ssa_operands): Same as above.
1258 (finalize_ssa_defs): Same as above.
1259 (build_ssa_operands): Same as above, plus create a C-like wrapper.
1260 (update_stmt_operands): Create an instance of operands_scanner.
1261
1262 2020-05-07 Richard Biener <rguenther@suse.de>
1263
1264 PR ipa/94947
1265 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
1266 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
1267 (refered_from_nonlocal_var): Likewise.
1268 (ipa_pta_execute): Likewise.
1269
1270 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com>
1271
1272 * gcc/tree-ssa-struct-alias.c: Fix comments
1273
1274 2020-05-07 Martin Liska <mliska@suse.cz>
1275
1276 * doc/invoke.texi: Fix 2 optindex entries.
1277
1278 2020-05-07 Richard Biener <rguenther@suse.de>
1279
1280 PR middle-end/94703
1281 * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ...
1282 (tree_decl_common::not_gimple_reg_flag): ... to this.
1283 * tree.h (DECL_GIMPLE_REG_P): Rename ...
1284 (DECL_NOT_GIMPLE_REG_P): ... to this.
1285 * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P.
1286 (create_tmp_reg): Simplify.
1287 (create_tmp_reg_fn): Likewise.
1288 (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs.
1289 * gimplify.c (create_tmp_from_val): Simplify.
1290 (gimplify_bind_expr): Likewise.
1291 (gimplify_compound_literal_expr): Likewise.
1292 (gimplify_function_tree): Likewise.
1293 (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P.
1294 * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P.
1295 (asan_add_global): Copy it.
1296 * cgraphunit.c (cgraph_node::expand_thunk): Force args
1297 to be GIMPLE regs.
1298 * function.c (gimplify_parameters): Copy
1299 DECL_NOT_GIMPLE_REG_P.
1300 * ipa-param-manipulation.c
1301 (ipa_param_body_adjustments::common_initialization): Simplify.
1302 (ipa_param_body_adjustments::reset_debug_stmts): Copy
1303 DECL_NOT_GIMPLE_REG_P.
1304 * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P.
1305 * sanopt.c (sanitize_rewrite_addressable_params): Likewise.
1306 * tree-cfg.c (make_blocks_1): Simplify.
1307 (verify_address): Do not verify DECL_GIMPLE_REG_P setting.
1308 * tree-eh.c (lower_eh_constructs_2): Simplify.
1309 * tree-inline.c (declare_return_variable): Adjust and
1310 generalize.
1311 (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P.
1312 (copy_result_decl_to_var): Likewise.
1313 * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment.
1314 * tree-nested.c (create_tmp_var_for): Simplify.
1315 * tree-parloops.c (separate_decls_in_region_name): Copy
1316 DECL_NOT_GIMPLE_REG_P.
1317 * tree-sra.c (create_access_replacement): Adjust and
1318 generalize partial def support.
1319 * tree-ssa-forwprop.c (pass_forwprop::execute): Set
1320 DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on.
1321 * tree-ssa.c (maybe_optimize_var): Handle clearing of
1322 TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P
1323 independently.
1324 * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P.
1325 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
1326 DECL_NOT_GIMPLE_REG_P.
1327 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
1328 * cfgexpand.c (avoid_type_punning_on_regs): New.
1329 (discover_nonconstant_array_refs): Call
1330 avoid_type_punning_on_regs to avoid unsupported mode punning.
1331
1332 2020-05-07 Alex Coplan <alex.coplan@arm.com>
1333
1334 * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class
1335 from definition.
1336
1337 2020-05-07 Richard Biener <rguenther@suse.de>
1338
1339 PR tree-optimization/57359
1340 * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove.
1341 (in_mem_ref::dep_loop): Repurpose.
1342 (LOOP_DEP_BIT): Remove.
1343 (enum dep_kind): New.
1344 (enum dep_state): Likewise.
1345 (record_loop_dependence): New function to populate the
1346 dependence cache.
1347 (query_loop_dependence): New function to query the dependence
1348 cache.
1349 (memory_accesses::refs_in_loop): Rename to ...
1350 (memory_accesses::refs_loaded_in_loop): ... this and change to
1351 only record loads.
1352 (outermost_indep_loop): Adjust.
1353 (mem_ref_alloc): Likewise.
1354 (gather_mem_refs_stmt): Likewise.
1355 (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down.
1356 (struct sm_aux): New.
1357 (execute_sm): Split code generation on exits, record state
1358 into new hash-map.
1359 (enum sm_kind): New.
1360 (execute_sm_exit): Exit code generation part.
1361 (sm_seq_push_down): Helper for sm_seq_valid_bb performing
1362 dependence checking on stores reached from exits.
1363 (sm_seq_valid_bb): New function gathering SM stores on exits.
1364 (hoist_memory_references): Re-implement.
1365 (refs_independent_p): Add tbaa_p parameter and pass it down.
1366 (record_dep_loop): Remove.
1367 (ref_indep_loop_p_1): Fold into ...
1368 (ref_indep_loop_p): ... this and generalize for three kinds
1369 of dependence queries.
1370 (can_sm_ref_p): Adjust according to hoist_memory_references
1371 changes.
1372 (store_motion_loop): Don't do anything if the set of SM
1373 candidates is empty.
1374 (tree_ssa_lim_initialize): Adjust.
1375 (tree_ssa_lim_finalize): Likewise.
1376
1377 2020-05-07 Eric Botcazou <ebotcazou@adacore.com>
1378 Pierre-Marie de Rodat <derodat@adacore.com>
1379
1380 * dwarf2out.c (add_data_member_location_attribute): Take into account
1381 the variant part offset in the computation of the data bit offset.
1382 (add_bit_offset_attribute): Remove CTX parameter. Pass a new context
1383 in the call to field_byte_offset.
1384 (gen_field_die): Adjust call to add_bit_offset_attribute and remove
1385 confusing assertion.
1386 (analyze_variant_discr): Deal with boolean subtypes.
1387
1388 2020-05-07 Martin Liska <mliska@suse.cz>
1389
1390 * lto-wrapper.c: Split arguments of MAKE environment
1391 variable.
1392
1393 2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
1394
1395 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
1396 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
1397 fenv_var and new_fenv_var.
1398
1399 2020-05-06 Jakub Jelinek <jakub@redhat.com>
1400
1401 PR target/93069
1402 * config/i386/subst.md (store_mask_constraint, store_mask_predicate):
1403 Remove.
1404 (avx512dq_vextract<shuffletype>64x2_1_maskm,
1405 avx512f_vextract<shuffletype>32x4_1_maskm,
1406 vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove.
1407 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split
1408 into ...
1409 (*avx512dq_vextract<shuffletype>64x2_1,
1410 avx512dq_vextract<shuffletype>64x2_1_mask): ... these new
1411 define_insns. Even in the masked variant allow memory output but in
1412 that case use 0 rather than 0C constraint on the source of masked-out
1413 elts.
1414 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split
1415 into ...
1416 (*avx512f_vextract<shuffletype>32x4_1,
1417 avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns.
1418 Even in the masked variant allow memory output but in that case use
1419 0 rather than 0C constraint on the source of masked-out elts.
1420 (vec_extract_lo_<mode><mask_name>): Split into ...
1421 (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new
1422 define_insns. Even in the masked variant allow memory output but in
1423 that case use 0 rather than 0C constraint on the source of masked-out
1424 elts.
1425 (vec_extract_hi_<mode><mask_name>): Split into ...
1426 (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new
1427 define_insns. Even in the masked variant allow memory output but in
1428 that case use 0 rather than 0C constraint on the source of masked-out
1429 elts.
1430
1431 2020-05-06 qing zhao <qing.zhao@oracle.com>
1432
1433 PR c/94230
1434 * common.opt: Add -flarge-source-files.
1435 * doc/invoke.texi: Document it.
1436 * toplev.c (process_options): set line_table->default_range_bits
1437 to 0 when flag_large_source_files is true.
1438
1439 2020-05-06 Uroš Bizjak <ubizjak@gmail.com>
1440
1441 PR target/94913
1442 * config/i386/predicates.md (add_comparison_operator): New predicate.
1443 * config/i386/i386.md (compare->add splitter): New splitters.
1444
1445 2020-05-06 Richard Biener <rguenther@suse.de>
1446
1447 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
1448 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
1449 Remove slp_instance parameter, just iterate over all scalar stmts.
1450 (vect_slp_analyze_instance_dependence): Adjust and likewise.
1451 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB
1452 parameter.
1453 (vect_schedule_slp): Just iterate over all scalar stmts.
1454 (vect_supported_load_permutation_p): Adjust.
1455 (vect_transform_slp_perm_load): Remove slp_instance parameter,
1456 instead use the number of lanes in the node as group size.
1457 * tree-vect-stmts.c (vect_model_load_cost): Get vectorization
1458 factor instead of slp_instance as parameter.
1459 (vectorizable_load): Adjust.
1460
1461 2020-05-06 Andreas Schwab <schwab@suse.de>
1462
1463 * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h".
1464 (aarch64_get_extension_string_for_isa_flags): Don't declare.
1465
1466 2020-05-06 Richard Biener <rguenther@suse.de>
1467
1468 PR middle-end/94964
1469 * cfgloopmanip.c (create_preheader): Require non-complex
1470 preheader edge for CP_SIMPLE_PREHEADERS.
1471
1472 2020-05-06 Richard Biener <rguenther@suse.de>
1473
1474 PR tree-optimization/94963
1475 * tree-ssa-loop-im.c (execute_sm_if_changed): Remove
1476 no-warning marking of the conditional store.
1477 (execute_sm): Instead mark the uninitialized state
1478 on loop entry to be not warned about.
1479
1480 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
1481
1482 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET,
1483 OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros.
1484 * config.gcc: Add tsxldtrkintrin.h to extra_headers.
1485 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1486 TSXLDTRK.
1487 * config/i386/i386-builtin.def: Add new builtins.
1488 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1489 __TSXLDTRK__.
1490 * config/i386/i386-options.c (ix86_target_string): Add
1491 -mtsxldtrk.
1492 (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
1493 * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
1494 New.
1495 * config/i386/i386.md (define_c_enum "unspec"): Add
1496 UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK.
1497 (TSXLDTRK): New define_int_iterator.
1498 ("<tsxldtrk>"): New define_insn.
1499 * config/i386/i386.opt: Add -mtsxldtrk.
1500 * config/i386/immintrin.h: Include tsxldtrkintrin.h.
1501 * config/i386/tsxldtrkintrin.h: New.
1502 * doc/invoke.texi: Document -mtsxldtrk.
1503
1504 2020-05-06 Jakub Jelinek <jakub@redhat.com>
1505
1506 PR tree-optimization/94921
1507 * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New
1508 simplifications.
1509
1510 2020-05-06 Richard Biener <rguenther@suse.de>
1511
1512 PR tree-optimization/94965
1513 * tree-vect-stmts.c (vectorizable_load): Fix typo.
1514
1515 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1516
1517 * doc/install.texi: Replace Sun with Solaris as appropriate.
1518 (Tools/packages necessary for building GCC, Perl version between
1519 5.6.1 and 5.6.24): Remove Solaris 8 reference.
1520 (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove
1521 TGCware reference.
1522 (Specific, i?86-*-solaris2*): Update version references for
1523 Solaris 11.3 and later. Remove gas 2.26 caveat.
1524 (Specific, *-*-solaris2*): Update version references for
1525 Solaris 11.3 and later. Remove boehm-gc reference.
1526 Document GMP, MPFR caveats on Solaris 11.3.
1527 (Specific, sparc-sun-solaris2*): Update Solaris 9 references.
1528 (Specific, sparc64-*-solaris2*): Likewise.
1529 Document --build requirement.
1530
1531 2020-05-06 Jakub Jelinek <jakub@redhat.com>
1532
1533 PR target/94950
1534 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
1535 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
1536
1537 PR rtl-optimization/94873
1538 * combine.c (combine_instructions): Don't optimize using REG_EQUAL
1539 note if SET_SRC (set) has side-effects.
1540
1541 2020-05-06 Hongtao Liu <hongtao.liu@intel.com>
1542 Wei Xiao <wei3.xiao@intel.com>
1543
1544 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
1545 OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
1546 (ix86_handle_option): Handle -mserialize.
1547 * config.gcc (serializeintrin.h): New header file.
1548 * config/i386/cpuid.h (bit_SERIALIZE): New bit.
1549 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1550 -mserialize.
1551 * config/i386/i386-builtin.def: Add new builtin.
1552 * config/i386/i386-c.c (__SERIALIZE__): New macro.
1553 * config/i386/i386-options.c (ix86_target_opts_isa2_opts):
1554 Add -mserialize.
1555 * (ix86_valid_target_attribute_inner_p): Add target attribute
1556 * for serialize.
1557 * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
1558 New macros.
1559 * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
1560 (serialize): New define_insn.
1561 * config/i386/i386.opt (mserialize): New option
1562 * config/i386/immintrin.h: Include serailizeintrin.h.
1563 * config/i386/serializeintrin.h: New header file.
1564 * doc/invoke.texi: Add documents for -mserialize.
1565
1566 2020-05-06 Richard Biener <rguenther@suse.de>
1567
1568 * tree-cfg.c (verify_gimple_assign_unary): Adjust integer
1569 to/from pointer conversion checking.
1570
1571 2020-05-05 Michael Meissner <meissner@linux.ibm.com>
1572
1573 * config/rs6000/rs6000-builtin.def: Delete changes meant for a
1574 private branch.
1575 * config/rs6000/rs6000-c.c: Likewise.
1576 * config/rs6000/rs6000-call.c: Likewise.
1577 * config/rs6000/rs6000.c: Likewise.
1578
1579 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
1580
1581 * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined.
1582 (RTEMS_ENDFILE_SPEC): Likewise.
1583 (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC.
1584 (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC.
1585 (LIB_SPECS): Support -nodefaultlibs option.
1586 * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define.
1587 (RTEMS_ENDFILE_SPEC): Likewise.
1588 * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
1589 (RTEMS_ENDFILE_SPEC): Likewise.
1590 * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
1591 (RTEMS_ENDFILE_SPEC): Likewise.
1592
1593 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1594
1595 * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
1596 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.
1597
1598 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1599
1600 * config/pru/pru.h: Mark R3.w0 as caller saved.
1601
1602 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1603
1604 * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
1605 and gen_doloop_begin_internal.
1606 (pru_reorg_loop): Use gen_pruloop with mode.
1607 * config/pru/pru.md: Use new @insn syntax.
1608
1609 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu>
1610
1611 * config/pru/pru.c (pru_print_operand): Fix fall through comment.
1612
1613 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
1614
1615 * config/i386/i386.md (fixuns_trunc<mode>si2): Use
1616 "clobber (scratch:M)" instad of "clobber (match_scratch:M N)".
1617 (addqi3_cconly_overflow): Ditto.
1618 (umulv<mode>4): Ditto.
1619 (<s>mul<mode>3_highpart): Ditto.
1620 (tls_global_dynamic_32): Ditto.
1621 (tls_local_dynamic_base_32): Ditto.
1622 (atanxf2): Ditto.
1623 (asinxf2): Ditto.
1624 (acosxf2): Ditto.
1625 (logxf2): Ditto.
1626 (log10xf2): Ditto.
1627 (log2xf2): Ditto.
1628 (*adddi_4): Remove "m" constraint from scratch operand.
1629 (*add<mode>_4): Ditto.
1630
1631 2020-05-05 Jakub Jelinek <jakub@redhat.com>
1632
1633 PR rtl-optimization/94516
1634 * postreload.c (reload_cse_simplify): When replacing sp = sp + const
1635 with sp = reg, add REG_EQUAL note with sp + const.
1636 * combine-stack-adj.c (try_apply_stack_adjustment): Change return
1637 type from int to bool. Add LIVE and OTHER_INSN arguments. Undo
1638 postreload sp = sp + const to sp = reg optimization if needed and
1639 possible.
1640 (combine_stack_adjustments_for_block): Add LIVE argument. Handle
1641 reg = sp insn with sp + const REG_EQUAL note. Adjust
1642 try_apply_stack_adjustment caller, call
1643 df_simulate_initialize_forwards and df_simulate_one_insn_forwards.
1644 (combine_stack_adjustments): Allocate and free LIVE bitmap,
1645 adjust combine_stack_adjustments_for_block caller.
1646
1647 2020-05-05 Martin Liska <mliska@suse.cz>
1648
1649 PR gcov-profile/93623
1650 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
1651 reality.
1652
1653 2020-05-05 Martin Liska <mliska@suse.cz>
1654
1655 * opt-functions.awk (opt_args_non_empty): New function.
1656 * opt-read.awk: Use the function for various option arguments.
1657
1658 2020-05-05 Martin Liska <mliska@suse.cz>
1659
1660 PR driver/94330
1661 * lto-wrapper.c (run_gcc): When using -flto=jobserver,
1662 report warning when the jobserver is not detected.
1663
1664 2020-05-05 Martin Liska <mliska@suse.cz>
1665
1666 PR gcov-profile/94636
1667 * gcov.c (main): Print total lines summary at the end.
1668 (generate_results): Expect file_name always being non-null.
1669 Print newline after intermediate file is printed in order to align with
1670 what we do for normal files.
1671
1672 2020-05-05 Martin Liska <mliska@suse.cz>
1673
1674 * dumpfile.c (dump_switch_p): Change return type
1675 and print option suggestion.
1676 * dumpfile.h: Change return type.
1677 * opts-global.c (handle_common_deferred_options):
1678 Move error into dump_switch_p function.
1679
1680 2020-05-05 Martin Liska <mliska@suse.cz>
1681
1682 PR c/92472
1683 * alloc-pool.h: Use const for some arguments.
1684 * bitmap.h: Likewise.
1685 * mem-stats.h: Likewise.
1686 * sese.h (get_entry_bb): Likewise.
1687 (get_exit_bb): Likewise.
1688
1689 2020-05-05 Richard Biener <rguenther@suse.de>
1690
1691 * tree-vect-slp.c (struct vdhs_data): New.
1692 (vect_detect_hybrid_slp): New walker.
1693 (vect_detect_hybrid_slp): Rewrite.
1694
1695 2020-05-05 Richard Biener <rguenther@suse.de>
1696
1697 PR ipa/94947
1698 * tree-ssa-structalias.c (ipa_pta_execute): Use
1699 varpool_node::externally_visible_p ().
1700 (refered_from_nonlocal_var): Likewise.
1701
1702 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
1703
1704 * gcc.c (LTO_PLUGIN_SPEC): Define if not already.
1705 (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC.
1706 * config/vxworks.h (LTO_PLUGIN_SPEC): Define.
1707
1708 2020-05-05 Eric Botcazou <ebotcazou@adacore.com>
1709
1710 * gimplify.c (gimplify_init_constructor): Do not put the constructor
1711 into static memory if it is not complete.
1712
1713 2020-05-05 Richard Biener <rguenther@suse.de>
1714
1715 PR tree-optimization/94949
1716 * tree-ssa-loop-im.c (execute_sm): Check whether we use
1717 the multithreaded model or always compute the stored value
1718 before eliding a load.
1719
1720 2020-05-05 Alex Coplan <alex.coplan@arm.com>
1721
1722 * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New.
1723
1724 2020-05-05 Jakub Jelinek <jakub@redhat.com>
1725
1726 PR tree-optimization/94800
1727 * match.pd (X + (X << C) to X * (1 + (1 << C)),
1728 (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New
1729 canonicalizations.
1730
1731 PR target/94942
1732 * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv.
1733
1734 PR tree-optimization/94914
1735 * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0):
1736 New simplification.
1737
1738 2020-05-05 Uroš Bizjak <ubizjak@gmail.com>
1739
1740 * config/i386/i386.md (*testqi_ext_3): Use
1741 int_nonimmediate_operand instead of manual mode checks.
1742 (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>):
1743 Use int_nonimmediate_operand predicate. Rewrite
1744 define_insn_and_split pattern to a combine pass splitter.
1745
1746 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1747
1748 * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris.
1749 * configure: Regenerate.
1750
1751 2020-05-05 Jakub Jelinek <jakub@redhat.com>
1752
1753 PR target/94460
1754 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
1755 ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3,
1756 avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3,
1757 ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns.
1758
1759 2020-05-04 Clement Chigot <clement.chigot@atos.net>
1760 David Edelsohn <dje.gcc@gmail.com>
1761
1762 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit
1763 for fmodl, frexpl, ldexpl and modfl builtins.
1764
1765 2020-05-04 Richard Sandiford <richard.sandiford@arm.com>
1766
1767 PR middle-end/94941
1768 * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the
1769 chosen lhs is different from the gcall lhs.
1770 (expand_mask_load_optab_fn): Likewise.
1771 (expand_gather_load_optab_fn): Likewise.
1772
1773 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
1774
1775 PR target/94795
1776 * config/i386/i386.md (*neg<mode>_ccc): New insn pattern.
1777 (EQ compare->LTU compare splitter): New splitter.
1778 (NE compare->NEG splitter): Ditto.
1779
1780 2020-05-04 Marek Polacek <polacek@redhat.com>
1781
1782 Revert:
1783 2020-04-30 Marek Polacek <polacek@redhat.com>
1784
1785 PR c++/94775
1786 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
1787 (check_aligned_type): Check if TYPE_USER_ALIGN match.
1788
1789 2020-05-04 Richard Biener <rguenther@suse.de>
1790
1791 PR tree-optimization/93891
1792 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to
1793 the original reference tree for assessing access alignment.
1794
1795 2020-05-04 Richard Biener <rguenther@suse.de>
1796
1797 PR tree-optimization/39612
1798 * tree-ssa-loop-im.c (im_mem_ref::loaded): New member.
1799 (set_ref_loaded_in_loop): New.
1800 (mark_ref_loaded): Likewise.
1801 (gather_mem_refs_stmt): Call mark_ref_loaded for loads.
1802 (execute_sm): Avoid issueing a load when it was not there.
1803 (execute_sm_if_changed): Avoid issueing warnings for the
1804 conditional store.
1805
1806 2020-05-04 Martin Jambor <mjambor@suse.cz>
1807
1808 PR ipa/93385
1809 * tree-inline.c (tree_function_versioning): Leave any type conversion
1810 of replacements to setup_one_parameter and its friend
1811 force_value_to_type.
1812
1813 2020-05-04 Uroš Bizjak <ubizjak@gmail.com>
1814
1815 PR target/94650
1816 * config/i386/predicates.md (shr_comparison_operator): New predicate.
1817 * config/i386/i386.md (compare->shr splitter): New splitters.
1818
1819 2020-05-04 Jakub Jelinek <jakub@redhat.com>
1820
1821 PR tree-optimization/94718
1822 * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification.
1823
1824 PR tree-optimization/94718
1825 * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can,
1826 replace two nop conversions on bit_{and,ior,xor} argument
1827 and result with just one conversion on the result or another argument.
1828
1829 PR tree-optimization/94718
1830 * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C)
1831 -> (X ^ Y) & C eqne 0 optimization to ...
1832 * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here.
1833
1834 * opts.c (get_option_html_page): Instead of hardcoding a list of
1835 options common between C/C++ and Fortran only use gfortran/
1836 documentation for warnings that have CL_Fortran set but not
1837 CL_C or CL_CXX.
1838
1839 2020-05-03 Uroš Bizjak <ubizjak@gmail.com>
1840
1841 * config/i386/i386-expand.c (ix86_expand_int_movcc):
1842 Use plus_constant instead of gen_rtx_PLUS with GEN_INT.
1843 (emit_memmov): Ditto.
1844 (emit_memset): Ditto.
1845 (ix86_expand_strlensi_unroll_1): Ditto.
1846 (release_scratch_register_on_entry): Ditto.
1847 (gen_frame_set): Ditto.
1848 (ix86_emit_restore_reg_using_pop): Ditto.
1849 (ix86_emit_outlined_ms2sysv_restore): Ditto.
1850 (ix86_expand_epilogue): Ditto.
1851 (ix86_expand_split_stack_prologue): Ditto.
1852 * config/i386/i386.md (push immediate splitter): Ditto.
1853 (strmov): Ditto.
1854 (strset): Ditto.
1855
1856 2020-05-02 Iain Sandoe <iain@sandoe.co.uk>
1857
1858 PR translation/93861
1859 * config/darwin-driver.c (darwin_driver_init): Adjust spelling in
1860 a warning.
1861
1862 2020-05-02 Jakub Jelinek <jakub@redhat.com>
1863
1864 * config/tilegx/tilegx.md
1865 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
1866 rather than just <n>.
1867
1868 2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
1869
1870 PR target/93492
1871 * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size
1872 and crtl->patch_area_entry.
1873 * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry.
1874 * opts.c (common_handle_option): Limit
1875 function_entry_patch_area_size and function_entry_patch_area_start
1876 to USHRT_MAX. Fix a typo in error message.
1877 * varasm.c (assemble_start_function): Use crtl->patch_area_size
1878 and crtl->patch_area_entry.
1879 * doc/invoke.texi: Document the maximum value for
1880 -fpatchable-function-entry.
1881
1882 2020-05-01 Iain Sandoe <iain@sandoe.co.uk>
1883
1884 * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS.
1885 Override SUBTARGET_SHADOW_OFFSET macro.
1886
1887 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org>
1888
1889 * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET.
1890 * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro.
1891 * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro.
1892 * config/i386/freebsd.h: Likewise.
1893 * config/freebsd.h (LIBASAN_EARLY_SPEC): Define.
1894 LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise.
1895
1896 2020-04-30 Alexandre Oliva <oliva@adacore.com>
1897
1898 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1899 the newly-introduced fileio effective target.
1900
1901 2020-04-30 Richard Sandiford <richard.sandiford@arm.com>
1902
1903 PR rtl-optimization/94740
1904 * cse.c (cse_process_notes_1): Replace with...
1905 (cse_process_note_1): ...this new function, acting as a
1906 simplify_replace_fn_rtx callback to process_note. Handle only
1907 REGs and MEMs directly. Validate the MEM if cse_process_note
1908 changes its address.
1909 (cse_process_notes): Replace with...
1910 (cse_process_note): ...this new function.
1911 (cse_extended_basic_block): Update accordingly, iterating over
1912 the register notes and passing individual notes to cse_process_note.
1913
1914 2020-04-30 Carl Love <cel@us.ibm.com>
1915
1916 * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.
1917
1918 2020-04-30 Martin Jambor <mjambor@suse.cz>
1919
1920 PR ipa/94856
1921 * cgraph.c (clone_of_p): Also consider thunks whih had their bodies
1922 saved by the inliner and thunks which had their call inlined.
1923 * ipa-inline-transform.c (save_inline_function_body): Fill in
1924 former_clone_of of new body holders.
1925
1926 2020-04-30 Jakub Jelinek <jakub@redhat.com>
1927
1928 * BASE-VER: Set to 11.0.0.
1929
1930 2020-04-30 Jonathan Wakely <jwakely@redhat.com>
1931
1932 * pretty-print.c (pp_take_prefix): Fix spelling in comment.
1933
1934 2020-04-30 Marek Polacek <polacek@redhat.com>
1935
1936 PR c++/94775
1937 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
1938 (check_aligned_type): Check if TYPE_USER_ALIGN match.
1939
1940 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1941
1942 * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define.
1943 * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable.
1944 * doc/invoke.texi (moutline-atomics): Document as on by default.
1945
1946 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
1947
1948 PR target/94748
1949 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
1950 the check for NOTE_INSN_DELETED_LABEL.
1951
1952 2020-04-30 Jakub Jelinek <jakub@redhat.com>
1953
1954 * configure.ac (--with-documentation-root-url,
1955 --with-changes-root-url): Diagnose URL not ending with /,
1956 use AC_DEFINE_UNQUOTED instead of AC_SUBST.
1957 * opts.h (get_changes_url): Remove.
1958 * opts.c (get_changes_url): Remove.
1959 * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL
1960 or -DCHANGES_ROOT_URL.
1961 * doc/install.texi (--with-documentation-root-url,
1962 --with-changes-root-url): Document.
1963 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call
1964 get_changes_url and free, change url variable type to const char * and
1965 set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base".
1966 * config/s390/s390.c (s390_function_arg_vector,
1967 s390_function_arg_float): Likewise.
1968 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
1969 Likewise.
1970 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
1971 Likewise.
1972 * config.in: Regenerate.
1973 * configure: Regenerate.
1974
1975 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
1976
1977 PR target/57002
1978 * config/arm/arm.c (isr_attribute_args): Remove duplicate entries.
1979
1980 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com>
1981
1982 * config/s390/constraints.md ("j>f", "jb4"): New constraints.
1983 * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
1984 macro definitions.
1985 * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
1986 separate expander.
1987 ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
1988 Change constraint for vlrl/vstrl to jb4.
1989
1990 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1991
1992 * var-tracking.c (vt_initialize): Move variables pre and post
1993 into inner block and initialize both in order to fix warning
1994 about uninitialized use. Remove unnecessary checks for
1995 frame_pointer_needed.
1996
1997 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1998
1999 * toplev.c (output_stack_usage_1): Ensure that first
2000 argument to fprintf is not null.
2001
2002 2020-04-29 Jakub Jelinek <jakub@redhat.com>
2003
2004 * configure.ac (-with-changes-root-url): New configure option,
2005 defaulting to https://gcc.gnu.org/.
2006 * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for
2007 opts.c.
2008 * pretty-print.c (get_end_url_string): New function.
2009 (pp_format): Handle %{ and %} for URLs.
2010 (pp_begin_url): Use pp_string instead of pp_printf.
2011 (pp_end_url): Use get_end_url_string.
2012 * opts.h (get_changes_url): Declare.
2013 * opts.c (get_changes_url): New function.
2014 * config/rs6000/rs6000-call.c: Include opts.h.
2015 (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead
2016 of just in GCC 10.1 in diagnostics and add URL.
2017 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise.
2018 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
2019 Likewise.
2020 * config/s390/s390.c (s390_function_arg_vector,
2021 s390_function_arg_float): Likewise.
2022 * configure: Regenerated.
2023
2024 PR target/94704
2025 * config/s390/s390.c (s390_function_arg_vector,
2026 s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of
2027 cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type
2028 passed to the function rather than the type of the single element.
2029 Rename cxx17_empty_base_seen variable to empty_base_seen, change
2030 type to int, and adjust diagnostics depending on if the field
2031 has [[no_unique_attribute]] or not.
2032
2033 PR target/94832
2034 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
2035 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
2036 used in casts into parens.
2037 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
2038 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
2039 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
2040 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
2041 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
2042 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
2043 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
2044 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
2045 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
2046 _mm256_mask_cmp_epu8_mask): Likewise.
2047 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
2048 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
2049 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
2050 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.
2051
2052 PR target/94832
2053 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
2054 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
2055 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
2056 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
2057 _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
2058 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
2059 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
2060 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
2061 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
2062 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
2063 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
2064 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
2065 _mm256_mask_i64gather_epi32): Surround macro parameter uses with
2066 parens.
2067 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
2068 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
2069 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use
2070 as mask vector containing -1.0 or -1.0f elts, but instead vector
2071 with all bits set using _mm*_cmpeq_p? with zero operands.
2072 * config/i386/avx512fintrin.h (_mm512_i32gather_ps,
2073 _mm512_mask_i32gather_ps, _mm512_i32gather_pd,
2074 _mm512_mask_i32gather_pd, _mm512_i64gather_ps,
2075 _mm512_mask_i64gather_ps, _mm512_i64gather_pd,
2076 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
2077 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
2078 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
2079 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
2080 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
2081 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
2082 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
2083 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
2084 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
2085 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
2086 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
2087 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
2088 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with
2089 parens.
2090 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
2091 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
2092 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
2093 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
2094 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
2095 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
2096 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
2097 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
2098 _mm512_mask_prefetch_i64scatter_ps): Likewise.
2099 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
2100 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
2101 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
2102 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
2103 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
2104 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
2105 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
2106 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
2107 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
2108 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
2109 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
2110 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
2111 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
2112 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
2113 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
2114 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
2115 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
2116 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
2117 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
2118 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
2119 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
2120 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
2121 _mm_mask_i64scatter_epi64): Likewise.
2122
2123 2020-04-29 Jeff Law <law@redhat.com>
2124
2125 * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific
2126 division instructions are 4 bytes long.
2127
2128 2020-04-29 Jakub Jelinek <jakub@redhat.com>
2129
2130 PR target/94826
2131 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
2132 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
2133 fenv_var, fenv_clear and old_fenv variables. For fenv_addr
2134 take address of TARGET_EXPR of fenv_var with void_node initializer.
2135 Formatting fixes.
2136
2137 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2138
2139 PR tree-optimization/94774
2140 * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize
2141 variable retval.
2142
2143 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2144
2145 * calls.h (cxx17_empty_base_field_p): Turn into a function declaration.
2146 * calls.c (cxx17_empty_base_field_p): New function. Check
2147 DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the
2148 previous checks.
2149
2150 2020-04-29 H.J. Lu <hongjiu.lu@intel.com>
2151
2152 PR target/93654
2153 * config/i386/i386-options.c (ix86_set_indirect_branch_type):
2154 Allow -fcf-protection with -mindirect-branch=thunk-extern and
2155 -mfunction-return=thunk-extern.
2156 * doc/invoke.texi: Update notes for -fcf-protection=branch with
2157 -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern.
2158
2159 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2160
2161 * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor.
2162
2163 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2164
2165 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
2166 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
2167 fenv_var and new_fenv_var.
2168
2169 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2170
2171 * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new
2172 effective-target keyword.
2173 (arm_arch_v8a_hard_multilib): Likewise.
2174 (arm_arch_v8a_hard): Document new dg-add-options keyword.
2175 * config/arm/arm.c (arm_return_in_memory): Note that the APCS
2176 code is deprecated and has not been updated to handle
2177 DECL_FIELD_ABI_IGNORED.
2178 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
2179 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
2180 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
2181 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
2182 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
2183 something actually is a HFA or HVA. Record whether we see a
2184 [[no_unique_address]] field that previous GCCs would not have
2185 ignored in this way.
2186 (aapcs_vfp_is_call_or_return_candidate): Update the calls to
2187 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
2188 [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the
2189 diagnostic messages.
2190 (arm_needs_doubleword_align): Add a comment explaining why we
2191 consider even zero-sized fields.
2192
2193 2020-04-29 Richard Biener <rguenther@suse.de>
2194 Li Zekun <lizekun1@huawei.com>
2195
2196 PR lto/94822
2197 * tree.c (component_ref_size): Guard against error_mark_node
2198 DECL_INITIAL as it happens with LTO.
2199
2200 2020-04-29 Richard Sandiford <richard.sandiford@arm.com>
2201
2202 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a
2203 comment explaining why we consider even zero-sized fields.
2204 (WARN_PSABI_EMPTY_CXX17_BASE): New constant.
2205 (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise.
2206 (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter
2207 avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields
2208 whose DECL_FIELD_ABI_IGNORED bit is set when determining whether
2209 something actually is a HFA or HVA. Record whether we see a
2210 [[no_unique_address]] field that previous GCCs would not have
2211 ignored in this way.
2212 (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say
2213 whether diagnostics should be suppressed. Update the calls to
2214 aapcs_vfp_sub_candidate and report a -Wpsabi warning for the
2215 [[no_unique_address]] case.
2216 (aarch64_return_in_msb): Update call accordingly, never silencing
2217 diagnostics.
2218 (aarch64_function_value): Likewise.
2219 (aarch64_return_in_memory_1): Likewise.
2220 (aarch64_init_cumulative_args): Likewise.
2221 (aarch64_gimplify_va_arg_expr): Likewise.
2222 (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and
2223 use it to decide whether arch64_vfp_is_call_or_return_candidate
2224 should be silent.
2225 (aarch64_pass_by_reference): Update calls accordingly.
2226 (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument
2227 to decide whether arch64_vfp_is_call_or_return_candidate should be
2228 silent.
2229
2230 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com>
2231
2232 PR target/94820
2233 * config/aarch64/aarch64-builtins.c
2234 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
2235 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
2236 new_fenv_var.
2237
2238 2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
2239
2240 * configure.ac <$enable_offload_targets>: Do parsing as done
2241 elsewhere.
2242 * configure: Regenerate.
2243
2244 * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'.
2245 * configure: Regenerate.
2246
2247 PR target/94279
2248 * rtlanal.c (set_noop_p): Handle non-constant selectors.
2249
2250 PR target/94282
2251 * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New
2252 function.
2253 (TARGET_EXCEPT_UNWIND_INFO): Define.
2254
2255 2020-04-29 Jakub Jelinek <jakub@redhat.com>
2256
2257 PR target/94248
2258 * config/gcn/gcn.md (*mov<mode>_insn): Use
2259 'reg_overlap_mentioned_p' to check for overlap.
2260
2261 PR target/94706
2262 * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED
2263 instead of cxx17_empty_base_field_p.
2264
2265 PR target/94707
2266 * tree-core.h (tree_decl_common): Note decl_flag_0 used for
2267 DECL_FIELD_ABI_IGNORED.
2268 * tree.h (DECL_FIELD_ABI_IGNORED): Define.
2269 * calls.h (cxx17_empty_base_field_p): Change into a temporary
2270 macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address"
2271 attribute.
2272 * calls.c (cxx17_empty_base_field_p): Remove.
2273 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle
2274 DECL_FIELD_ABI_IGNORED.
2275 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
2276 * lto-streamer-out.c (hash_tree): Likewise.
2277 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename
2278 cxx17_empty_base_seen to empty_base_seen, change type to int *,
2279 adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of
2280 cxx17_empty_base_field_p, if "no_unique_address" attribute is
2281 present, propagate that to the caller too.
2282 (rs6000_discover_homogeneous_aggregate): Adjust
2283 rs6000_aggregate_candidate caller, emit different diagnostics
2284 when c++17 empty base fields are present and when empty
2285 [[no_unique_address]] fields are present.
2286 * config/rs6000/rs6000.c (rs6000_special_round_type_align,
2287 darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED
2288 fields.
2289
2290 2020-04-29 Richard Biener <rguenther@suse.de>
2291
2292 * tree-ssa-loop-im.c (ref_always_accessed::operator ()):
2293 Just check whether the stmt stores.
2294
2295 2020-04-28 Alexandre Oliva <oliva@adacore.com>
2296
2297 PR target/94812
2298 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
2299 output operand in emulation. Don't overwrite pseudos.
2300
2301 2020-04-28 Jeff Law <law@redhat.com>
2302
2303 * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific
2304 multiply patterns are 4 bytes long.
2305
2306 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2307
2308 * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option.
2309 * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option.
2310
2311 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com>
2312 Jakub Jelinek <jakub@redhat.com>
2313
2314 PR target/94711
2315 * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty
2316 base class artificial fields.
2317 (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI
2318 decision is different after this fix.
2319
2320 2020-04-28 David Malcolm <dmalcolm@redhat.com>
2321
2322 PR analyzer/94447
2323 PR analyzer/94639
2324 PR analyzer/94732
2325 PR analyzer/94754
2326 * doc/invoke.texi (Static Analyzer Options): Remove
2327 -Wanalyzer-use-of-uninitialized-value.
2328 (-Wno-analyzer-use-of-uninitialized-value): Remove item.
2329
2330 2020-04-28 Jakub Jelinek <jakub@redhat.com>
2331
2332 PR tree-optimization/94809
2333 * tree.c (build_call_expr_internal_loc_array): Call
2334 process_call_operands.
2335
2336 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
2337
2338 * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name.
2339 * config/aarch64/aarch64-tune.md: Regenerate.
2340 * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define.
2341 (thunderx3t110_regmove_cost): Likewise.
2342 (thunderx3t110_vector_cost): Likewise.
2343 (thunderx3t110_prefetch_tune): Likewise.
2344 (thunderx3t110_tunings): Likewise.
2345 * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs):
2346 Define.
2347 * config/aarch64/thunderx3t110.md: New file.
2348 * config/aarch64/aarch64.md: Include thunderx3t110.md.
2349 * doc/invoke.texi (AArch64 options): Add thunderx3t110.
2350
2351 2020-04-28 Jakub Jelinek <jakub@redhat.com>
2352
2353 PR target/94704
2354 * config/s390/s390.c (s390_function_arg_vector,
2355 s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed.
2356
2357 2020-04-28 Richard Sandiford <richard.sandiford@arm.com>
2358
2359 PR tree-optimization/94727
2360 * tree-vect-stmts.c (vect_is_simple_cond): If both comparison
2361 operands are invariant booleans, use the mask type associated with the
2362 STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP.
2363 (vectorizable_condition): Pass vectype unconditionally to
2364 vect_is_simple_cond.
2365
2366 2020-04-27 Jakub Jelinek <jakub@redhat.com>
2367
2368 PR target/94780
2369 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
2370 TARGET_EXPR instead of MODIFY_EXPR for first assignment to
2371 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.
2372
2373 2020-04-27 David Malcolm <dmalcolm@redhat.com>
2374
2375 PR 92830
2376 * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from
2377 default value, so that it can by supplied by get_option_html_page.
2378 * configure: Regenerate.
2379 * opts.c: Include "selftest.h".
2380 (get_option_html_page): New function.
2381 (get_option_url): Use it. Reformat to place comments next to the
2382 expressions they refer to.
2383 (selftest::test_get_option_html_page): New.
2384 (selftest::opts_c_tests): New.
2385 * selftest-run-tests.c (selftest::run_tests): Call
2386 selftest::opts_c_tests.
2387 * selftest.h (selftest::opts_c_tests): New decl.
2388
2389 2020-04-27 Richard Sandiford <richard.sandiford@arm.com>
2390
2391 * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply
2392 UINTVAL to CONST_INTs.
2393
2394 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2395
2396 * config/arm/constraints.md (e): Remove constraint.
2397 (Te): Define constraint.
2398 * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in
2399 operand 0 from "e" to "Te".
2400 (vaddvaq_<supf><mode>): Likewise.
2401 (vaddvq_p_<supf><mode>): Likewise.
2402 (vmladavq_<supf><mode>): Likewise.
2403 (vmladavxq_s<mode>): Likewise.
2404 (vmlsdavq_s<mode>): Likewise.
2405 (vmlsdavxq_s<mode>): Likewise.
2406 (vaddvaq_p_<supf><mode>): Likewise.
2407 (vmladavaq_<supf><mode>): Likewise.
2408 (vmladavq_p_<supf><mode>): Likewise.
2409 (vmladavxq_p_s<mode>): Likewise.
2410 (vmlsdavq_p_s<mode>): Likewise.
2411 (vmlsdavxq_p_s<mode>): Likewise.
2412 (vmlsdavaxq_s<mode>): Likewise.
2413 (vmlsdavaq_s<mode>): Likewise.
2414 (vmladavaxq_s<mode>): Likewise.
2415 (vmladavaq_p_<supf><mode>): Likewise.
2416 (vmladavaxq_p_s<mode>): Likewise.
2417 (vmlsdavaq_p_s<mode>): Likewise.
2418 (vmlsdavaxq_p_s<mode>): Likewise.
2419
2420 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com>
2421
2422 * config/arm/arm.c (output_move_neon): Only get the first operand if
2423 addr is PLUS.
2424
2425 2020-04-27 Felix Yang <felix.yang@huawei.com>
2426
2427 PR tree-optimization/94784
2428 * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the
2429 assert around so that it checks that the two vectors have equal
2430 TYPE_VECTOR_SUBPARTS and that converting the corresponding element
2431 types is a useless_type_conversion_p.
2432
2433 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com>
2434
2435 PR target/94515
2436 * dwarf2cfi.c (struct GTY): Add ra_mangled.
2437 (cfi_row_equal_p): Check ra_mangled.
2438 (dwarf2out_frame_debug_cfa_window_save): Remove the argument,
2439 this only handles the sparc logic now.
2440 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
2441 the aarch64 specific logic.
2442 (dwarf2out_frame_debug): Update to use the new subroutines.
2443 (change_cfi_row): Check ra_mangled.
2444
2445 2020-04-27 Jakub Jelinek <jakub@redhat.com>
2446
2447 PR target/94704
2448 * config/s390/s390.c (s390_function_arg_vector,
2449 s390_function_arg_float): Ignore cxx17_empty_base_field_p fields.
2450
2451 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com>
2452
2453 * common/config/rs6000/rs6000-common.c
2454 (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off
2455 -fweb.
2456 * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to
2457 set flag_web.
2458
2459 2020-04-27 Martin Liska <mliska@suse.cz>
2460
2461 PR lto/94659
2462 * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
2463 Do not remove ifunc_resolvers in remove unreachable nodes in LTO.
2464
2465 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com>
2466
2467 PR target/91518
2468 * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed):
2469 New variable.
2470 (rs6000_emit_prologue_components):
2471 Check with frame_pointer_needed_indeed.
2472 (rs6000_emit_epilogue_components): Likewise.
2473 (rs6000_emit_prologue): Likewise.
2474 (rs6000_emit_epilogue): Set frame_pointer_needed_indeed.
2475
2476 2020-04-25 David Edelsohn <dje.gcc@gmail.com>
2477
2478 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a
2479 stack frame when debugging and flag_compare_debug is enabled.
2480
2481 2020-04-25 Michael Meissner <meissner@linux.ibm.com>
2482
2483 * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to
2484 enable PC-relative addressing for -mcpu=future.
2485 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move
2486 after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS.
2487 * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined,
2488 suppress PC-relative addressing.
2489 (rs6000_option_override_internal): Split up error messages
2490 checking for -mprefixed and -mpcrel. Enable -mpcrel if the target
2491 system supports it.
2492
2493 2020-04-25 Jakub Jelinek <jakub@redhat.com>
2494 Richard Biener <rguenther@suse.de>
2495
2496 PR tree-optimization/94734
2497 PR tree-optimization/89430
2498 * tree-ssa-phiopt.c: Include tree-eh.h.
2499 (cond_store_replacement): Return false if an automatic variable
2500 access could trap. If -fstore-data-races, don't return false
2501 just because an automatic variable is addressable.
2502
2503 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
2504
2505 * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge
2506 of high-part.
2507 (add<mode>_sext_dup2_exec): Likewise.
2508
2509 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org>
2510
2511 PR target/94710
2512 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
2513 endian byteshift_val calculation.
2514
2515 2020-04-24 Andrew Stubbs <ams@codesourcery.com>
2516
2517 * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload.
2518
2519 2020-04-24 Richard Sandiford <richard.sandiford@arm.com>
2520
2521 * config/aarch64/arm_sve.h: Add a comment.
2522
2523 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com>
2524
2525 PR rtl-optimization/94708
2526 * combine.c (simplify_if_then_else): Add check for
2527 !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode).
2528
2529 2020-04-23 Martin Sebor <msebor@redhat.com>
2530
2531 PR driver/90983
2532 * common.opt (-Wno-frame-larger-than): New option.
2533 (-Wno-larger-than, -Wno-stack-usage): Same.
2534
2535 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
2536
2537 * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands
2538 2 and 3.
2539 (mov<mode>_exec): Likewise.
2540 (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec.
2541 (<convop><mode><vndi>2_exec): Likewise.
2542
2543 2019-04-23 Eric Botcazou <ebotcazou@adacore.com>
2544
2545 PR tree-optimization/94717
2546 * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one
2547 of the stores doesn't have the same landing pad number as the first.
2548 (coalesce_immediate_stores): Do not try to coalesce the store using
2549 bswap if it doesn't have the same landing pad number as the first.
2550
2551 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com>
2552
2553 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2554 Replace outdated link to ELFv2 ABI.
2555
2556 2020-04-23 Jakub Jelinek <jakub@redhat.com>
2557
2558 PR target/94710
2559 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
2560 just return v2.
2561
2562 PR middle-end/94724
2563 * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs
2564 temporarily with non-final second operand and updating it later,
2565 push COMPOUND_EXPRs into a vector and process it in reverse,
2566 creating COMPOUND_EXPRs with the final operands.
2567
2568 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com>
2569
2570 PR target/94697
2571 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
2572 bti c and bti j handling.
2573
2574 2020-04-23 Andrew Stubbs <ams@codesourcery.com>
2575 Thomas Schwinge <thomas@codesourcery.com>
2576
2577 PR middle-end/93488
2578
2579 * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on
2580 t_async and the wait arguments.
2581
2582 2020-04-23 Richard Sandiford <richard.sandiford@arm.com>
2583
2584 PR tree-optimization/94727
2585 * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when
2586 comparing invariant scalar booleans.
2587
2588 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com>
2589 Jakub Jelinek <jakub@redhat.com>
2590
2591 PR target/94383
2592 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17
2593 empty base class artificial fields.
2594 (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is
2595 different after this fix.
2596
2597 2020-04-23 Jakub Jelinek <jakub@redhat.com>
2598
2599 PR target/94707
2600 * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
2601 Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check
2602 if the same type has been diagnosed most recently already.
2603
2604 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2605
2606 * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's
2607 datatype.
2608 (__arm_vbicq_n_s16): Likewise.
2609 (__arm_vbicq_n_u32): Likewise.
2610 (__arm_vbicq_n_s32): Likewise.
2611 (__arm_vbicq): Likewise.
2612 (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype.
2613 (__arm_vbicq_n_s32): Likewise.
2614 (__arm_vbicq_n_u16): Likewise.
2615 (__arm_vbicq_n_u32): Likewise.
2616 (__arm_vdupq_m_n_s8): Likewise.
2617 (__arm_vdupq_m_n_s16): Likewise.
2618 (__arm_vdupq_m_n_s32): Likewise.
2619 (__arm_vdupq_m_n_u8): Likewise.
2620 (__arm_vdupq_m_n_u16): Likewise.
2621 (__arm_vdupq_m_n_u32): Likewise.
2622 (__arm_vdupq_m_n_f16): Likewise.
2623 (__arm_vdupq_m_n_f32): Likewise.
2624 (__arm_vldrhq_gather_offset_s16): Likewise.
2625 (__arm_vldrhq_gather_offset_s32): Likewise.
2626 (__arm_vldrhq_gather_offset_u16): Likewise.
2627 (__arm_vldrhq_gather_offset_u32): Likewise.
2628 (__arm_vldrhq_gather_offset_f16): Likewise.
2629 (__arm_vldrhq_gather_offset_z_s16): Likewise.
2630 (__arm_vldrhq_gather_offset_z_s32): Likewise.
2631 (__arm_vldrhq_gather_offset_z_u16): Likewise.
2632 (__arm_vldrhq_gather_offset_z_u32): Likewise.
2633 (__arm_vldrhq_gather_offset_z_f16): Likewise.
2634 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
2635 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
2636 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
2637 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
2638 (__arm_vldrhq_gather_shifted_offset_f16): Likewise.
2639 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
2640 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
2641 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
2642 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
2643 (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise.
2644 (__arm_vldrwq_gather_offset_s32): Likewise.
2645 (__arm_vldrwq_gather_offset_u32): Likewise.
2646 (__arm_vldrwq_gather_offset_f32): Likewise.
2647 (__arm_vldrwq_gather_offset_z_s32): Likewise.
2648 (__arm_vldrwq_gather_offset_z_u32): Likewise.
2649 (__arm_vldrwq_gather_offset_z_f32): Likewise.
2650 (__arm_vldrwq_gather_shifted_offset_s32): Likewise.
2651 (__arm_vldrwq_gather_shifted_offset_u32): Likewise.
2652 (__arm_vldrwq_gather_shifted_offset_f32): Likewise.
2653 (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise.
2654 (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise.
2655 (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise.
2656 (__arm_vdwdupq_x_n_u8): Likewise.
2657 (__arm_vdwdupq_x_n_u16): Likewise.
2658 (__arm_vdwdupq_x_n_u32): Likewise.
2659 (__arm_viwdupq_x_n_u8): Likewise.
2660 (__arm_viwdupq_x_n_u16): Likewise.
2661 (__arm_viwdupq_x_n_u32): Likewise.
2662 (__arm_vidupq_x_n_u8): Likewise.
2663 (__arm_vddupq_x_n_u8): Likewise.
2664 (__arm_vidupq_x_n_u16): Likewise.
2665 (__arm_vddupq_x_n_u16): Likewise.
2666 (__arm_vidupq_x_n_u32): Likewise.
2667 (__arm_vddupq_x_n_u32): Likewise.
2668 (__arm_vldrdq_gather_offset_s64): Likewise.
2669 (__arm_vldrdq_gather_offset_u64): Likewise.
2670 (__arm_vldrdq_gather_offset_z_s64): Likewise.
2671 (__arm_vldrdq_gather_offset_z_u64): Likewise.
2672 (__arm_vldrdq_gather_shifted_offset_s64): Likewise.
2673 (__arm_vldrdq_gather_shifted_offset_u64): Likewise.
2674 (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise.
2675 (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise.
2676 (__arm_vidupq_m_n_u8): Likewise.
2677 (__arm_vidupq_m_n_u16): Likewise.
2678 (__arm_vidupq_m_n_u32): Likewise.
2679 (__arm_vddupq_m_n_u8): Likewise.
2680 (__arm_vddupq_m_n_u16): Likewise.
2681 (__arm_vddupq_m_n_u32): Likewise.
2682 (__arm_vidupq_n_u16): Likewise.
2683 (__arm_vidupq_n_u32): Likewise.
2684 (__arm_vidupq_n_u8): Likewise.
2685 (__arm_vddupq_n_u16): Likewise.
2686 (__arm_vddupq_n_u32): Likewise.
2687 (__arm_vddupq_n_u8): Likewise.
2688
2689 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
2690
2691 * doc/install.texi (D-Specific Options): Document
2692 --enable-libphobos-checking and --with-libphobos-druntime-only.
2693
2694 2020-04-23 Jakub Jelinek <jakub@redhat.com>
2695
2696 PR target/94707
2697 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add
2698 cxx17_empty_base_seen argument. Pass it to recursive calls.
2699 Ignore cxx17_empty_base_field_p fields after setting
2700 *cxx17_empty_base_seen to true.
2701 (rs6000_discover_homogeneous_aggregate): Adjust
2702 rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous
2703 aggregates with C++17 empty base fields.
2704
2705 PR c/94705
2706 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
2707 if last_decl is error_mark_node or has such a TREE_TYPE.
2708
2709 PR c/94705
2710 * attribs.c (decl_attribute): Don't diagnose attribute exclusions
2711 if last_decl is error_mark_node or has such a TREE_TYPE.
2712
2713 2020-04-22 Felix Yang <felix.yang@huawei.com>
2714
2715 PR target/94678
2716 * config/aarch64/aarch64.h (TARGET_SVE):
2717 Add && !TARGET_GENERAL_REGS_ONLY.
2718 (TARGET_SVE2): Add && TARGET_SVE.
2719 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3,
2720 TARGET_SVE2_SM4): Add && TARGET_SVE2.
2721 * config/aarch64/aarch64-sve-builtins.h
2722 (sve_switcher::m_old_general_regs_only): New member.
2723 * config/aarch64/aarch64-sve-builtins.cc (check_required_registers):
2724 New function.
2725 (reported_missing_registers_p): New variable.
2726 (check_required_extensions): Call check_required_registers before
2727 return if all required extenstions are present.
2728 (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in
2729 m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in
2730 global_options.x_target_flags.
2731 (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in
2732 global_options.x_target_flags if m_old_general_regs_only is true.
2733
2734 2020-04-22 Zackery Spytz <zspytz@gmail.com>
2735
2736 * doc/extend.exi: Add "free" to list of other builtin functions
2737 supported by GCC.
2738
2739 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com>
2740
2741 PR target/94622
2742 * config/rs6000/sync.md (load_quadpti): Add attr "prefixed"
2743 if TARGET_PREFIXED.
2744 (store_quadpti): Ditto.
2745 (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as
2746 plq will be used and doesn't need it.
2747 (atomic_store<mode>): Ditto, for pstq.
2748
2749 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com>
2750
2751 * doc/invoke.texi: Update flags turned on by -O3.
2752
2753 2020-04-22 Jakub Jelinek <jakub@redhat.com>
2754
2755 PR target/94706
2756 * config/ia64/ia64.c (hfa_element_mode): Ignore
2757 cxx17_empty_base_field_p fields.
2758
2759 PR target/94383
2760 * calls.h (cxx17_empty_base_field_p): Declare.
2761 * calls.c (cxx17_empty_base_field_p): Define.
2762
2763 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org>
2764
2765 * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document.
2766
2767 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2768 Andre Vieira <andre.simoesdiasvieira@arm.com>
2769 Mihail Ionescu <mihail.ionescu@arm.com>
2770
2771 * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu.
2772 * config/arm/arm-cpus.in (quirk_no_asmcpu): Define.
2773 (ALL_QUIRKS): Add quirk_no_asmcpu.
2774 (cortex-m55): Define new cpu.
2775 * config/arm/arm-tables.opt: Regenerate.
2776 * config/arm/arm-tune.md: Likewise.
2777 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55.
2778
2779 2020-04-22 Richard Sandiford <richard.sandiford@arm.com>
2780
2781 PR tree-optimization/94700
2782 * tree-ssa-forwprop.c (simplify_vector_constructor): When processing
2783 an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures
2784 of similarly-structured but distinct vector types.
2785
2786 2020-04-21 Martin Sebor <msebor@redhat.com>
2787
2788 PR middle-end/94647
2789 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct
2790 the computation of the lower bound of the source access size.
2791 (builtin_access::generic_overlap): Remove a hack for setting ranges
2792 of overlap offsets.
2793
2794 2020-04-21 John David Anglin <danglin@gcc.gnu.org>
2795
2796 * config/pa/som.h (ASM_WEAKEN_LABEL): Delete.
2797 (ASM_WEAKEN_DECL): New define.
2798 (HAVE_GAS_WEAKREF): Undefine.
2799
2800 2020-04-21 Richard Sandiford <richard.sandiford@arm.com>
2801
2802 PR tree-optimization/94683
2803 * tree-ssa-forwprop.c (simplify_vector_constructor): Use a
2804 VIEW_CONVERT_EXPR to handle mixtures of similarly-structured
2805 but distinct vector types.
2806
2807 2020-04-21 Jakub Jelinek <jakub@redhat.com>
2808
2809 PR c/94641
2810 * stor-layout.c (place_field, finalize_record_size): Don't emit
2811 -Wpadded warning on TYPE_ARTIFICIAL rli->t.
2812 * ubsan.c (ubsan_get_type_descriptor_type,
2813 ubsan_get_source_location_type, ubsan_create_data): Set
2814 TYPE_ARTIFICIAL.
2815 * asan.c (asan_global_struct): Likewise.
2816
2817 2020-04-21 Duan bo <duanbo3@huawei.com>
2818
2819 PR target/94577
2820 * config/aarch64/aarch64.c: Add an error message for option conflict.
2821 * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is
2822 incompatible with -fpic, -fPIC and -mabi=ilp32.
2823
2824 2020-04-21 Frederik Harwath <frederik@codesourcery.com>
2825
2826 PR other/94629
2827 * omp-low.c (new_omp_context): Remove assignments to
2828 ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
2829
2830 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
2831
2832 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
2833 ("popcountv2di2_vx"): Use simplify_gen_subreg.
2834
2835 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
2836
2837 PR target/94613
2838 * config/s390/s390-builtin-types.def: Add 3 new function modes.
2839 * config/s390/s390-builtins.def: Add mode dependent low-level
2840 builtin and map the overloaded builtins to these.
2841 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
2842 ("vsel<V_HW"): ... this and rewrite the pattern with bitops.
2843
2844 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
2845
2846 * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo
2847 has a variable VF, prefer new_loop_vinfo if it is cheaper for the
2848 estimated VF and is no worse at double the estimated VF.
2849
2850 2020-04-20 Richard Sandiford <richard.sandiford@arm.com>
2851
2852 PR target/94668
2853 * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix
2854 order of arguments to rtx_vector_builder.
2855 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
2856 When extending the trailing constants to a full vector, replace any
2857 variables with zeros.
2858
2859 2020-04-20 Jan Hubicka <hubicka@ucw.cz>
2860
2861 PR ipa/94582
2862 * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local
2863 flag.
2864
2865 2020-04-20 Martin Liska <mliska@suse.cz>
2866
2867 * symtab.c (symtab_node::dump_references): Add space after
2868 one entry.
2869 (symtab_node::dump_referring): Likewise.
2870
2871 2020-04-18 Jeff Law <law@redhat.com>
2872
2873 PR debug/94439
2874 * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking
2875 the chain.
2876
2877 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org>
2878
2879 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2880 attributes): Document d_runtime_has_std_library.
2881
2882 2020-04-17 Jeff Law <law@redhat.com>
2883
2884 PR rtl-optimization/90275
2885 * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels
2886 when the destination has a REG_UNUSED note.
2887
2888 2020-04-17 Tobias Burnus <tobias@codesourcery.com>
2889
2890 PR middle-end/94635
2891 * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to
2892 MAP_DELETE.
2893
2894 2020-04-17 Richard Sandiford <richard.sandiford@arm.com>
2895
2896 * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function.
2897 (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the
2898 cost of load and store insns if one loop iteration has enough scalar
2899 elements to use an Advanced SIMD LDP or STP.
2900 (aarch64_add_stmt_cost): Update call accordingly.
2901
2902 2020-04-17 Jakub Jelinek <jakub@redhat.com>
2903 Jeff Law <law@redhat.com>
2904
2905 PR target/94567
2906 * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than
2907 CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision,
2908 or pos + len >= 32, or pos + len is equal to operands[2] precision
2909 and operands[2] is not a register operand. During splitting perform
2910 SImode AND if operands[0] doesn't have CCZmode and pos + len is
2911 equal to mode precision.
2912
2913 2020-04-17 Richard Biener <rguenther@suse.de>
2914
2915 PR other/94629
2916 * cgraphclones.c (cgraph_node::create_clone): Remove duplicate
2917 initialization.
2918 * dwarf2out.c (dw_val_equal_p): Fix pasto in
2919 dw_val_class_vms_delta comparison.
2920 * optabs.c (expand_binop_directly): Fix pasto in commutation
2921 check.
2922 * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in
2923 initialization.
2924
2925 2020-04-17 Jakub Jelinek <jakub@redhat.com>
2926
2927 PR rtl-optimization/94618
2928 * cfgrtl.c (delete_insn_and_edges): Set purge not just when
2929 insn is the BB_END of its block, but also when it is only followed
2930 by DEBUG_INSNs in its block.
2931
2932 PR tree-optimization/94621
2933 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN.
2934 Move id->adjust_array_error_bounds check first in the condition.
2935
2936 2020-04-17 Martin Liska <mliska@suse.cz>
2937 Jonathan Yong <10walls@gmail.com>
2938
2939 PR gcov-profile/94570
2940 * coverage.c (coverage_init): Use separator properly.
2941
2942 2020-04-16 Peter Bergner <bergner@linux.ibm.com>
2943
2944 PR rtl-optimization/93974
2945 * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
2946 (rs6000_cannot_substitute_mem_equiv_p): New function.
2947
2948 2020-04-16 Martin Jambor <mjambor@suse.cz>
2949
2950 PR ipa/93621
2951 * ipa-inline.h (ipa_saved_clone_sources): Declare.
2952 * ipa-inline-transform.c (ipa_saved_clone_sources): New variable.
2953 (save_inline_function_body): Link the new body holder with the
2954 previous one.
2955 * cgraph.c: Include ipa-inline.h.
2956 (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from
2957 the statement in ipa_saved_clone_sources.
2958 * cgraphunit.c: Include ipa-inline.h.
2959 (expand_all_functions): Free ipa_saved_clone_sources.
2960
2961 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
2962
2963 PR target/94606
2964 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take
2965 the VNx16BI lowpart of the recursively-generated constant.
2966
2967 2020-04-16 Martin Liska <mliska@suse.cz>
2968 Jakub Jelinek <jakub@redhat.com>
2969
2970 PR c++/94314
2971 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
2972 DECL_IS_REPLACEABLE_OPERATOR during cloning.
2973 * tree-ssa-dce.c (valid_new_delete_pair_p): New function.
2974 (propagate_necessity): Check operator names.
2975
2976 2020-04-16 Richard Sandiford <richard.sandiford@arm.com>
2977
2978 PR rtl-optimization/94605
2979 * early-remat.c (early_remat::process_block): Handle insns that
2980 set multiple candidate registers.
2981 2020-04-16 Jan Hubicka <hubicka@ucw.cz>
2982
2983 PR gcov-profile/93401
2984 * common.opt (profile-prefix-path): New option.
2985 * coverae.c: Include diagnostics.h.
2986 (coverage_init): Strip profile prefix path.
2987 * doc/invoke.texi (-fprofile-prefix-path): Document.
2988
2989 2020-04-16 Richard Biener <rguenther@suse.de>
2990
2991 PR middle-end/94614
2992 * expr.c (emit_move_multi_word): Do not generate code when
2993 the destination part is undefined_operand_subword_p.
2994 * lower-subreg.c (resolve_clobber): Look through a paradoxica
2995 subreg.
2996
2997 2020-04-16 Martin Jambor <mjambor@suse.cz>
2998
2999 PR tree-optimization/94598
3000 * tree-sra.c (verify_sra_access_forest): Fix verification of total
3001 scalarization accesses under access to one-element arrays.
3002
3003 2020-04-16 Jakub Jelinek <jakub@redhat.com>
3004
3005 PR bootstrap/89494
3006 * function.c (assign_parm_find_data_types): Add workaround for
3007 BROKEN_VALUE_INITIALIZATION compilers.
3008
3009 2020-04-16 Richard Biener <rguenther@suse.de>
3010
3011 * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME
3012 nodes.
3013
3014 2020-04-15 Uroš Bizjak <ubizjak@gmail.com>
3015
3016 PR target/94603
3017 * config/i386/i386-builtin.def (__builtin_ia32_movq128):
3018 Require OPTION_MASK_ISA_SSE2.
3019
3020 2020-04-15 Gustavo Romero <gromero@linux.ibm.com>
3021
3022 PR bootstrap/89494
3023 * dumpfile.c (selftest::temp_dump_context::temp_dump_context):
3024 Don't construct a dump_context temporary to call static method.
3025
3026 2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
3027
3028 * config/aarch64/falkor-tag-collision-avoidance.c
3029 (valid_src_p): Check for aarch64_address_info type before
3030 accessing base field.
3031
3032 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
3033
3034 * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
3035 (V_sz_elem2): Remove unused mode attribute.
3036
3037 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com>
3038
3039 * config/arm/arm.md (arm_movdi): Disallow for MVE.
3040
3041 2020-04-15 Richard Biener <rguenther@suse.de>
3042
3043 PR middle-end/94539
3044 * tree-ssa-alias.c (same_type_for_tbaa): Defer to
3045 alias_sets_conflict_p for pointers.
3046
3047 2020-04-14 Max Filippov <jcmvbkbc@gmail.com>
3048
3049 PR target/94584
3050 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
3051 (extendhisi2_internal): Add %v1 before the load instructions.
3052
3053 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com>
3054
3055 PR target/94542
3056 * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to
3057 use PC-relative addressing for TLS references.
3058
3059 2020-04-14 Martin Jambor <mjambor@suse.cz>
3060
3061 PR ipa/94434
3062 * ipa-sra.c: Include internal-fn.h.
3063 (enum isra_scan_context): Update comment.
3064 (scan_function): Treat calls to internal_functions like loads or stores.
3065
3066 2020-04-14 Yang Yang <yangyang305@huawei.com>
3067
3068 PR tree-optimization/94574
3069 * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing
3070 whether a vector-insert is rewritable using a BIT_INSERT_EXPR.
3071
3072 2020-04-14 H.J. Lu <hongjiu.lu@intel.com>
3073
3074 PR target/94561
3075 * config/i386/i386.c (ix86_get_ssemov): Remove mode size check.
3076
3077 2020-04-13 Martin Sebor <msebor@redhat.com>
3078
3079 * doc/extend.texi (-Wall): Mention -Wformat-overflow and
3080 -Wformat-truncation. Move -Wzero-length-bounds last.
3081 (-Wrestrict): Document positive form of option enabled by -Wall.
3082
3083 2020-04-13 Zachary Spytz <zspytz@gmail.com>
3084
3085 * doc/extend.texi: Add realloc to list of built-in functions
3086 are recognized by the compiler.
3087
3088 2020-04-13 H.J. Lu <hongjiu.lu@intel.com>
3089
3090 PR target/94556
3091 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame
3092 pointer in word_mode for eh_return epilogues.
3093
3094 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3095
3096 * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to
3097 memory references in %B, %C and %D operand selectors when the inner
3098 operand is a post increment address.
3099
3100 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3101
3102 * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
3103 reference by 4 bytes, and %D memory reference by 6 bytes.
3104
3105 2020-04-11 Uroš Bizjak <ubizjak@gmail.com>
3106
3107 PR target/94494
3108 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
3109 condition for V4SI, V8HI and V16QI modes.
3110
3111 2020-04-11 Jakub Jelinek <jakub@redhat.com>
3112
3113 PR debug/94495
3114 PR target/94551
3115 * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on
3116 val->val_rtx.
3117
3118 2020-04-10 Thomas Schwinge <thomas@codesourcery.com>
3119
3120 PR middle-end/89433
3121 PR middle-end/93465
3122 * omp-general.c (oacc_verify_routine_clauses): Diagnose if
3123 "#pragma omp declare target" has also been applied.
3124
3125 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3126
3127 * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn
3128 when to emit the epilogue_helper insn.
3129 * config/msp430/msp430.md (epilogue_helper): Add a return insn to the
3130 RTL pattern.
3131
3132 2020-04-09 Jakub Jelinek <jakub@redhat.com>
3133
3134 PR debug/94495
3135 * cselib.h (cselib_record_sp_cfa_base_equiv,
3136 cselib_sp_derived_value_p): Declare.
3137 * cselib.c (cselib_record_sp_cfa_base_equiv,
3138 cselib_sp_derived_value_p): New functions.
3139 * var-tracking.c (add_stores): Don't record MO_VAL_SET for
3140 cselib_sp_derived_value_p values.
3141 (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the
3142 start of extended basic blocks other than the first one
3143 for !frame_pointer_needed functions.
3144
3145 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
3146
3147 * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw)
3148 (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw)
3149 (aarch64_sve2048_hw): Document.
3150 * config/aarch64/aarch64-protos.h
3151 (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare.
3152 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
3153 __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled.
3154 * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New
3155 function.
3156 (find_type_suffix_for_scalar_type): Use it instead of comparing
3157 TYPE_MAIN_VARIANTs.
3158 (function_resolver::infer_vector_or_tuple_type): Likewise.
3159 (function_resolver::require_vector_type): Likewise.
3160 (handle_arm_sve_vector_bits_attribute): New function.
3161 * config/aarch64/aarch64.c (pure_scalable_type_info): New class.
3162 (aarch64_attribute_table): Add arm_sve_vector_bits.
3163 (aarch64_return_in_memory_1):
3164 (pure_scalable_type_info::piece::get_rtx): New function.
3165 (pure_scalable_type_info::num_zr): Likewise.
3166 (pure_scalable_type_info::num_pr): Likewise.
3167 (pure_scalable_type_info::get_rtx): Likewise.
3168 (pure_scalable_type_info::analyze): Likewise.
3169 (pure_scalable_type_info::analyze_registers): Likewise.
3170 (pure_scalable_type_info::analyze_array): Likewise.
3171 (pure_scalable_type_info::analyze_record): Likewise.
3172 (pure_scalable_type_info::add_piece): Likewise.
3173 (aarch64_some_values_include_pst_objects_p): Likewise.
3174 (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info
3175 to analyze whether the type is returned in SVE registers.
3176 (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type
3177 is passed in SVE registers.
3178 (aarch64_pass_by_reference_1): New function, extracted from...
3179 (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info
3180 to analyze whether the type is a pure scalable type and, if so,
3181 whether it should be passed by reference.
3182 (aarch64_return_in_msb): Return false for pure scalable types.
3183 (aarch64_function_value_1): Fold back into...
3184 (aarch64_function_value): ...this function. Use
3185 pure_scalable_type_info to analyze whether the type is a pure
3186 scalable type and, if so, which registers it should use. Handle
3187 types that include pure scalable types but are not themselves
3188 pure scalable types.
3189 (aarch64_return_in_memory_1): New function, split out from...
3190 (aarch64_return_in_memory): ...here. Use pure_scalable_type_info
3191 to analyze whether the type is a pure scalable type and, if so,
3192 whether it should be returned by reference.
3193 (aarch64_layout_arg): Remove orig_mode argument. Use
3194 pure_scalable_type_info to analyze whether the type is a pure
3195 scalable type and, if so, which registers it should use. Handle
3196 types that include pure scalable types but are not themselves
3197 pure scalable types.
3198 (aarch64_function_arg): Update call accordingly.
3199 (aarch64_function_arg_advance): Likewise.
3200 (aarch64_pad_reg_upward): On big-endian targets, return false for
3201 pure scalable types that are smaller than 16 bytes.
3202 (aarch64_member_type_forces_blk): New function.
3203 (aapcs_vfp_sub_candidate): Exit early for built-in SVE types.
3204 (aarch64_short_vector_p): Return false for VECTOR_TYPEs that
3205 correspond to built-in SVE types. Do not rely on a vector mode
3206 if the type includes an pure scalable type. When returning true,
3207 assert that the mode is not an SVE mode.
3208 (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE
3209 built-in types here. When returning true, assert that the type
3210 does not have an SVE mode.
3211 (aarch64_can_change_mode_class): Don't allow anything to change
3212 between a predicate mode and a non-predicate mode. Also don't
3213 allow changes between SVE vector modes and other modes that
3214 might be bigger than 128 bits.
3215 (aarch64_invalid_binary_op): Reject binary operations that mix
3216 SVE and GNU vector types.
3217 (TARGET_MEMBER_TYPE_FORCES_BLK): Define.
3218
3219 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
3220
3221 * config/aarch64/aarch64.c (aarch64_attribute_table): Add
3222 "SVE sizeless type".
3223 * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless)
3224 (sizeless_type_p): New functions.
3225 (register_builtin_types): Apply make_type_sizeless to the type.
3226 (register_tuple_type): Likewise.
3227 (verify_type_context): Use sizeless_type_p instead of builin_type_p.
3228
3229 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
3230
3231 * config/arm/arm_cde.h: Remove `extern "C"` when compiling for
3232 C++.
3233
3234 2020-04-09 Martin Jambor <mjambor@suse.cz>
3235 Richard Biener <rguenther@suse.de>
3236
3237 PR tree-optimization/94482
3238 * tree-sra.c (create_access_replacement): Dump new replacement with
3239 TDF_UID.
3240 (sra_modify_expr): Fix handling of cases when the original EXPR writes
3241 to only part of the replacement.
3242 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
3243 the first operand of combinations into REAL/IMAGPART_EXPR and
3244 BIT_FIELD_REF.
3245
3246 2020-04-09 Richard Sandiford <richard.sandiford@arm.com>
3247
3248 * doc/sourcebuild.texi (check-function-bodies): Treat the third
3249 parameter as a list of option regexps and require each regexp
3250 to match.
3251
3252 2020-04-09 Andrea Corallo <andrea.corallo@arm.com>
3253
3254 PR target/94530
3255 * config/aarch64/falkor-tag-collision-avoidance.c
3256 (valid_src_p): Fix missing rtx type check.
3257
3258 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com>
3259 Richard Biener <rguenther@suse.de>
3260
3261 PR tree-optimization/93674
3262 * tree-ssa-loop-ivopts.c (langhooks.h): New include.
3263 (add_iv_candidate_for_use): For iv_use of non integer or pointer type,
3264 or non-mode precision type, add candidate in unsigned type with the
3265 same precision.
3266
3267 2020-04-08 Clement Chigot <clement.chigot@atos.net>
3268
3269 * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128.
3270 * config/rs6000/aix71.h (LIB_SPEC): Likewise.
3271 * config/rs6000/aix72.h (LIB_SPEC): Likewise.
3272
3273 2020-04-08 Jakub Jelinek <jakub@redhat.com>
3274
3275 PR middle-end/94526
3276 * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P
3277 with zero offset.
3278 * reload1.c (eliminate_regs_1): Avoid creating
3279 (plus (reg) (const_int 0)) in DEBUG_INSNs.
3280
3281 PR tree-optimization/94524
3282 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
3283 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
3284 op1 rather than op1 itself at the end. Punt for signed modulo by
3285 most negative constant.
3286 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
3287 modulo by most negative constant.
3288
3289 2020-04-08 Richard Biener <rguenther@suse.de>
3290
3291 PR rtl-optimization/93946
3292 * cse.c (cse_insn): Record the tabled expression in
3293 src_related. Verify a redundant store removal is valid.
3294
3295 2020-04-08 H.J. Lu <hongjiu.lu@intel.com>
3296
3297 PR target/94417
3298 * config/i386/i386-features.c (rest_of_insert_endbranch): Insert
3299 ENDBR at function entry if function will be called indirectly.
3300
3301 2020-04-08 Jakub Jelinek <jakub@redhat.com>
3302
3303 PR target/94438
3304 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
3305 1, 2, 4 and 8.
3306
3307 2020-04-08 Martin Liska <mliska@suse.cz>
3308
3309 PR c++/94314
3310 * gimple.c (gimple_call_operator_delete_p): Rename to...
3311 (gimple_call_replaceable_operator_delete_p): ... this.
3312 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
3313 * gimple.h (gimple_call_operator_delete_p): Rename to ...
3314 (gimple_call_replaceable_operator_delete_p): ... this.
3315 * tree-core.h (tree_function_decl): Add replaceable_operator
3316 flag.
3317 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1):
3318 Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P.
3319 (propagate_necessity): Use gimple_call_replaceable_operator_delete_p.
3320 (eliminate_unnecessary_stmts): Likewise.
3321 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
3322 Pack DECL_IS_REPLACEABLE_OPERATOR.
3323 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
3324 Unpack the field here.
3325 * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New.
3326 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New.
3327 (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New.
3328 * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable.
3329 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare
3330 replaceable operator flags.
3331
3332 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
3333 Matthew Malcomson <matthew.malcomson@arm.com>
3334
3335 * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro.
3336 (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise.
3337 (CX_TERNARY_QUALIFIERS): Likewise.
3338 (ARM_BUILTIN_CDE_PATTERN_START): Likewise.
3339 (ARM_BUILTIN_CDE_PATTERN_END): Likewise.
3340 (arm_init_acle_builtins): Initialize CDE builtins.
3341 (arm_expand_acle_builtin): Check CDE constant operands.
3342 * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range
3343 of CDE constant operand.
3344 * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for
3345 TARGET_VFP_BASE.
3346 (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise.
3347 * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface.
3348 (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise.
3349 (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise.
3350 (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise.
3351 (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise.
3352 * config/arm/arm_cde_builtins.def: New file.
3353 * config/arm/iterators.md (V_reg): New attribute of SI.
3354 * config/arm/predicates.md (const_int_coproc_operand): New.
3355 (const_int_vcde1_operand, const_int_vcde2_operand): New.
3356 (const_int_vcde3_operand): New.
3357 * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New.
3358 * config/arm/vfp.md (arm_vcx1<mode>): New entry.
3359 (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise.
3360 (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise.
3361
3362 2020-04-08 Dennis Zhang <dennis.zhang@arm.com>
3363
3364 * config.gcc: Add arm_cde.h.
3365 * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine
3366 __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC.
3367 * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options.
3368 * config/arm/arm.c (arm_option_reconfigure_globals): Configure
3369 arm_arch_cde and arm_arch_cde_coproc to store the feature bits.
3370 * config/arm/arm.h (TARGET_CDE): New macro.
3371 * config/arm/arm_cde.h: New file.
3372 * doc/invoke.texi: Document CDE options +cdecp[0-7].
3373 * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target
3374 supports option.
3375 (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise.
3376
3377 2020-04-08 Jakub Jelinek <jakub@redhat.com>
3378
3379 PR rtl-optimization/94516
3380 * postreload.c: Include rtl-iter.h.
3381 (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR
3382 looking for all MEMs with RTX_AUTOINC operand.
3383 (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling.
3384
3385 2020-04-08 Tobias Burnus <tobias@codesourcery.com>
3386
3387 * omp-grid.c (grid_eliminate_combined_simd_part): Use
3388 OMP_CLAUSE_CODE to access the omp clause code.
3389
3390 2020-04-07 Jeff Law <law@redhat.com>
3391
3392 PR rtl-optimization/92264
3393 * config/h8300/h8300.md (mov;add peephole2): Avoid applying when
3394 the destination is the stack pointer.
3395
3396 2020-04-07 Jakub Jelinek <jakub@redhat.com>
3397
3398 PR rtl-optimization/94291
3399 PR rtl-optimization/84169
3400 * combine.c (try_combine): For split_i2i3, don't assume SET_DEST
3401 must be a REG or SUBREG of REG; if it is not one of these, don't
3402 update LOG_LINKs.
3403
3404 2020-04-07 Richard Biener <rguenther@suse.de>
3405
3406 PR middle-end/94479
3407 * gimplify.c (gimplify_addr_expr): Also consider generated
3408 MEM_REFs.
3409
3410 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3411
3412 * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs.
3413
3414 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3415
3416 * config/arm/arm_mve.h: Cast some pointers to expected types.
3417
3418 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3419
3420 * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the
3421 same with '__arm_' prefix.
3422
3423 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3424
3425 * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set.
3426
3427 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3428
3429 * config/arm/arm.c (arm_mve_immediate_check): Removed.
3430 * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types.
3431 (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*,
3432 mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*,
3433 mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*,
3434 mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*,
3435 mve_vqshruntq_m_n_s*): Fixed immediate constraints.
3436
3437 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3438
3439 * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts.
3440
3441 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3442
3443 * config/arm/arm_mve.h: Fix v[id]wdup intrinsics.
3444 * config/arm/mve/md: Fix v[id]wdup patterns.
3445
3446 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3447
3448 * config/arm/arm.c (output_move_neon): Deal with label + offset cases.
3449 * config/arm/mve.md (*mve_mov<mode>): Handle const vectors.
3450
3451 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3452
3453 * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters
3454 and remove const_ptr enums.
3455
3456 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
3457
3458 * config/arm/arm_mve.h (vsubq_n): Merge with...
3459 (vsubq): ... this.
3460 (vmulq_n): Merge with...
3461 (vmulq): ... this.
3462 (__ARM_mve_typeid): Simplify scalar and constant detection.
3463
3464 2020-04-07 Jakub Jelinek <jakub@redhat.com>
3465
3466 PR target/94509
3467 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check
3468 for inter-lane permutation for 64-byte modes.
3469
3470 PR target/94488
3471 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
3472 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
3473 Assume it is a REG after that instead of testing it and doing FAIL
3474 otherwise. Formatting fix.
3475
3476 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
3477
3478 * config/rs6000/t-rtems: Delete mcpu=8540 multilib.
3479
3480 2020-04-07 Jakub Jelinek <jakub@redhat.com>
3481
3482 PR target/94500
3483 * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode
3484 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes.
3485
3486 2020-04-06 Jakub Jelinek <jakub@redhat.com>
3487
3488 * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P
3489 + const0_rtx return the SP_DERIVED_VALUE_P.
3490
3491 2020-04-06 Richard Sandiford <richard.sandiford@arm.com>
3492
3493 PR rtl-optimization/92989
3494 * lra-lives.c (process_bb_lives): Do not treat eh_return data
3495 registers as being live at the beginning of the EH receiver.
3496
3497 2020-04-05 Zachary Spytz <zspytz@gmail.com>
3498
3499 * extend.texi: Add free to list of ISO C90 functions that
3500 are recognized by the compiler.
3501
3502 2020-04-05 Nagaraju Mekala <nmekala@xilix.com>
3503
3504 * config/microblaze/microblaze.c (microblaze_must_save_register): Check
3505 for fast_interrupt.
3506
3507 * config/microblaze/microblaze.md (trap): Update output pattern.
3508
3509 2020-04-04 Hannes Domani <ssbssa@yahoo.de>
3510 Jakub Jelinek <jakub@redhat.com>
3511
3512 PR debug/94459
3513 * dwarf2out.c (gen_subprogram_die): Look through references, pointers,
3514 arrays, pointer-to-members, function types and qualifiers when
3515 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
3516 to emit type again on definition.
3517
3518 2020-04-04 Jan Hubicka <hubicka@ucw.cz>
3519
3520 PR ipa/93940
3521 * ipa-fnsummary.c (vrp_will_run_p): New function.
3522 (fre_will_run_p): New function.
3523 (evaluate_properties_for_edge): Use it.
3524 * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline
3525 !optimize_debug to optimize_debug.
3526
3527 2020-04-04 Jakub Jelinek <jakub@redhat.com>
3528
3529 PR rtl-optimization/94468
3530 * cselib.c (references_value_p): Formatting fix.
3531 (cselib_useless_value_p): New function.
3532 (discard_useless_locs, discard_useless_values,
3533 cselib_invalidate_regno_val, cselib_invalidate_mem,
3534 cselib_record_set): Use it instead of
3535 v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx).
3536
3537 PR debug/94441
3538 * tree-iterator.h (expr_single): Declare.
3539 * tree-iterator.c (expr_single): New function.
3540 * tree.h (protected_set_expr_location_if_unset): Declare.
3541 * tree.c (protected_set_expr_location): Use expr_single.
3542 (protected_set_expr_location_if_unset): New function.
3543
3544 2020-04-03 Jeff Law <law@redhat.com>
3545
3546 PR rtl-optimization/92264
3547 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle
3548 reloading of auto-increment addressing modes.
3549
3550 2020-04-03 H.J. Lu <hongjiu.lu@intel.com>
3551
3552 PR target/94467
3553 * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand
3554 as earlyclobber.
3555
3556 2020-04-03 Jeff Law <law@redhat.com>
3557
3558 PR rtl-optimization/92264
3559 * config/m32r/m32r.c (m32r_output_block_move): Properly account for
3560 post-increment addressing of source operands as well as residuals
3561 when computing any adjustments to the input pointer.
3562
3563 2020-04-03 Jakub Jelinek <jakub@redhat.com>
3564
3565 PR target/94460
3566 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
3567 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
3568 second half of first lane from first lane of second operand and
3569 first half of second lane from second lane of first operand.
3570
3571 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com>
3572
3573 * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE.
3574
3575 2020-04-03 Tamar Christina <tamar.christina@arm.com>
3576
3577 PR target/94396
3578 * common/config/aarch64/aarch64-common.c
3579 (aarch64_get_extension_string_for_isa_flags): Handle default flags.
3580
3581 2020-04-03 Richard Biener <rguenther@suse.de>
3582
3583 PR middle-end/94465
3584 * tree.c (array_ref_low_bound): Deal with released SSA names
3585 in index position.
3586
3587 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com>
3588
3589 * config/gcn/gcn.c (print_operand): Handle unordered comparison
3590 operators.
3591 * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered
3592 comparison operators.
3593
3594 2020-04-03 Kewen Lin <linkw@gcc.gnu.org>
3595
3596 PR tree-optimization/94443
3597 * tree-vect-loop.c (vectorizable_live_operation): Use
3598 gsi_insert_seq_before to replace gsi_insert_before.
3599
3600 2020-04-03 Martin Liska <mliska@suse.cz>
3601
3602 PR ipa/94445
3603 * ipa-icf-gimple.c (func_checker::compare_gimple_call):
3604 Compare type attributes for gimple_call_fntypes.
3605
3606 2020-04-02 Sandra Loosemore <sandra@codesourcery.com>
3607
3608 * alias.c (get_alias_set): Fix comment typos.
3609
3610 2020-04-02 Fritz Reese <foreese@gcc.gnu.org>
3611
3612 PR fortran/85982
3613 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
3614 attribute checking used by TYPE.
3615
3616 2020-04-02 Martin Jambor <mjambor@suse.cz>
3617
3618 PR ipa/92676
3619 * ipa-sra.c (struct caller_issues): New fields candidate and
3620 call_from_outside_comdat.
3621 (check_for_caller_issues): Check for calls from outsied of
3622 candidate's same_comdat_group.
3623 (check_all_callers_for_issues): Set up issues.candidate, check result
3624 of the new check.
3625 (mark_callers_calls_comdat_local): New function.
3626 (process_isra_node_results): Set calls_comdat_local of callers if
3627 appropriate.
3628
3629 2020-04-02 Richard Biener <rguenther@suse.de>
3630
3631 PR c/94392
3632 * common.opt (ffinite-loops): Initialize to zero.
3633 * opts.c (default_options_table): Remove OPT_ffinite_loops
3634 entry.
3635 * cfgloop.h (loop::finite_p): New member.
3636 * cfgloopmanip.c (copy_loop_info): Copy finite_p.
3637 * ipa-icf-gimple.c (func_checker::compare_loops): Compare
3638 finite_p.
3639 * lto-streamer-in.c (input_cfg): Stream finite_p.
3640 * lto-streamer-out.c (output_cfg): Likewise.
3641 * tree-cfg.c (replace_loop_annotate): Initialize finite_p
3642 from flag_finite_loops at CFG build time.
3643 * tree-ssa-loop-niter.c (finite_loop_p): Check the loops
3644 finite_p flag instead of flag_finite_loops.
3645 * doc/invoke.texi (ffinite-loops): Adjust documentation of
3646 default setting.
3647
3648 2020-04-02 Richard Biener <rguenther@suse.de>
3649
3650 PR debug/94450
3651 * dwarf2out.c (dwarf2out_early_finish): Remove code emitting
3652 DW_TAG_imported_unit.
3653
3654 2020-04-02 Maciej W. Rozycki <macro@wdc.com>
3655
3656 * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux>
3657 <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to
3658 2.30.
3659
3660 2020-04-02 Kewen Lin <linkw@gcc.gnu.org>
3661
3662 PR tree-optimization/94401
3663 * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE
3664 access type when loading halves of vector to avoid peeling for gaps.
3665
3666 2020-04-02 Jakub Jelinek <jakub@redhat.com>
3667
3668 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in
3669 between a string literal and MIPS_SYSVERSION_SPEC macro.
3670
3671 2020-04-02 Martin Jambor <mjambor@suse.cz>
3672
3673 * doc/invoke.texi (Optimize Options): Document sra-max-propagations.
3674
3675 2020-04-02 Jakub Jelinek <jakub@redhat.com>
3676
3677 PR rtl-optimization/92264
3678 * params.opt (-param=max-find-base-term-values=): Decrease default
3679 from 2000 to 200.
3680
3681 PR rtl-optimization/92264
3682 * rtl.h (struct rtx_def): Mention that call bit is used as
3683 SP_DERIVED_VALUE_P in cselib.c.
3684 * cselib.c (SP_DERIVED_VALUE_P): Define.
3685 (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier.
3686 (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P
3687 val_rtx and sp based expression where offsets cancel each other.
3688 (preserve_constants_and_equivs): Formatting fix.
3689 (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P
3690 locs list for cfa_base_preserved_val if needed. Formatting fix.
3691 (autoinc_split): If the to be returned value is a REG, MEM or
3692 VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its
3693 locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off.
3694 (rtx_equal_for_cselib_1): Call autoinc_split even if both
3695 expressions are PLUS in Pmode with CONST_INT second operands.
3696 Handle SP_DERIVED_VALUE_P cases.
3697 (cselib_hash_plus_const_int): New function.
3698 (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT
3699 second operand, as well as for PRE_DEC etc. that ought to be
3700 hashed the same way.
3701 (cselib_subst_to_values): Substitute PLUS with Pmode and
3702 CONST_INT operand if the first operand is a VALUE which has
3703 SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the
3704 SP_DERIVED_VALUE_P + adjusted offset.
3705 (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx,
3706 set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding
3707 SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location.
3708 * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv
3709 on the sp value before calling cselib_add_permanent_equiv on the
3710 cfa_base value.
3711 * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC
3712 in the insn without REG_INC note.
3713 (replace_read): Punt on RTX_AUTOINC in the *loc being replaced.
3714 Punt on invalid insns added by copy_to_mode_reg. Formatting fixes.
3715
3716 PR target/94435
3717 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
3718 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.
3719
3720 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3721
3722 PR target/94317
3723 * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define.
3724 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
3725 * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify
3726 intrinsic defintion by adding a new builtin call to writeback into base
3727 address.
3728 (__arm_vldrdq_gather_base_wb_u64): Likewise.
3729 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
3730 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
3731 (__arm_vldrwq_gather_base_wb_s32): Likewise.
3732 (__arm_vldrwq_gather_base_wb_u32): Likewise.
3733 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
3734 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
3735 (__arm_vldrwq_gather_base_wb_f32): Likewise.
3736 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
3737 * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify
3738 builtin's qualifier.
3739 (vldrdq_gather_base_wb_z_u): Likewise.
3740 (vldrwq_gather_base_wb_u): Likewise.
3741 (vldrdq_gather_base_wb_u): Likewise.
3742 (vldrwq_gather_base_wb_z_s): Likewise.
3743 (vldrwq_gather_base_wb_z_f): Likewise.
3744 (vldrdq_gather_base_wb_z_s): Likewise.
3745 (vldrwq_gather_base_wb_s): Likewise.
3746 (vldrwq_gather_base_wb_f): Likewise.
3747 (vldrdq_gather_base_wb_s): Likewise.
3748 (vldrwq_gather_base_nowb_z_u): Define builtin.
3749 (vldrdq_gather_base_nowb_z_u): Likewise.
3750 (vldrwq_gather_base_nowb_u): Likewise.
3751 (vldrdq_gather_base_nowb_u): Likewise.
3752 (vldrwq_gather_base_nowb_z_s): Likewise.
3753 (vldrwq_gather_base_nowb_z_f): Likewise.
3754 (vldrdq_gather_base_nowb_z_s): Likewise.
3755 (vldrwq_gather_base_nowb_s): Likewise.
3756 (vldrwq_gather_base_nowb_f): Likewise.
3757 (vldrdq_gather_base_nowb_s): Likewise.
3758 * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL
3759 pattern.
3760 (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern.
3761 (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern.
3762 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern.
3763 (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern.
3764 (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern.
3765 (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern.
3766 (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern.
3767 (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern.
3768 (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern.
3769 (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern.
3770 (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern.
3771
3772 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3773
3774 * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3")
3775 ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3")
3776 ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3")
3777 ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>")
3778 ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>")
3779 ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3")
3780 ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4")
3781 ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx")
3782 ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint
3783 modifier.
3784 ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>")
3785 ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"):
3786 Remove constraints from expander.
3787 * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq")
3788 ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>")
3789 ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>")
3790 ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>")
3791 ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3")
3792 ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier.
3793
3794 2020-04-01 Peter Bergner <bergner@linux.ibm.com>
3795
3796 PR rtl-optimization/94123
3797 * lower-subreg.c (pass_lower_subreg3::gate): Remove test for
3798 flag_split_wide_types_early.
3799
3800 2020-04-01 Joerg Sonnenberger <joerg@bec.de>
3801
3802 * doc/extend.texi (Common Function Attributes): Fix typo.
3803
3804 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org>
3805
3806 PR target/94420
3807 * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition
3808 on operands[1].
3809
3810 2020-04-01 Zackery Spytz <zspytz@gmail.com>
3811
3812 * doc/extend.texi: Fix a typo in the documentation of the
3813 copy function attribute.
3814
3815 2020-04-01 Jakub Jelinek <jakub@redhat.com>
3816
3817 PR middle-end/94423
3818 * tree-object-size.c (pass_object_sizes::execute): Don't call
3819 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
3820 call replace_call_with_value.
3821
3822 2020-04-01 Kewen Lin <linkw@gcc.gnu.org>
3823
3824 PR tree-optimization/94043
3825 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed
3826 phi for vec_lhs and use it for lane extraction.
3827
3828 2020-03-31 Felix Yang <felix.yang@huawei.com>
3829
3830 PR tree-optimization/94398
3831 * tree-vect-stmts.c (vectorizable_store): Instead of calling
3832 vect_supportable_dr_alignment, set alignment_support_scheme to
3833 dr_unaligned_supported for gather-scatter accesses.
3834 (vectorizable_load): Likewise.
3835
3836 2020-03-31 Andrew Stubbs <ams@codesourcery.com>
3837
3838 * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF):
3839 New mode iterators.
3840 (vnsi, VnSI, vndi, VnDI): New mode attributes.
3841 (mov<mode>): Use <VnDI> in place of V64DI.
3842 (mov<mode>_exec): Likewise.
3843 (mov<mode>_sgprbase): Likewise.
3844 (reload_out<mode>): Likewise.
3845 (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64.
3846 (gather_load<mode>v64si): Rename to ...
3847 (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI,
3848 and <VnDI> in place of V64DI.
3849 (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI.
3850 (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI.
3851 (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>.
3852 (scatter_store<mode>v64si): Rename to ...
3853 (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
3854 (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>.
3855 (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
3856 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
3857 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
3858 (ds_bpermute<mode>): Use <VnSI>.
3859 (addv64si3_vcc<exec_vcc>): Rename to ...
3860 (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
3861 (addv64si3_vcc_dup<exec_vcc>): Rename to ...
3862 (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI.
3863 (addcv64si3<exec_vcc>): Rename to ...
3864 (addc<mode>3<exec_vcc>): ... this, and use V_SI.
3865 (subv64si3_vcc<exec_vcc>): Rename to ...
3866 (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
3867 (subcv64si3<exec_vcc>): Rename to ...
3868 (subc<mode>3<exec_vcc>): ... this, and use V_SI.
3869 (addv64di3): Rename to ...
3870 (add<mode>3): ... this, and use V_DI.
3871 (addv64di3_exec): Rename to ...
3872 (add<mode>3_exec): ... this, and use V_DI.
3873 (subv64di3): Rename to ...
3874 (sub<mode>3): ... this, and use V_DI.
3875 (subv64di3_exec): Rename to ...
3876 (sub<mode>3_exec): ... this, and use V_DI.
3877 (addv64di3_zext): Rename to ...
3878 (add<mode>3_zext): ... this, and use V_DI and <VnSI>.
3879 (addv64di3_zext_exec): Rename to ...
3880 (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
3881 (addv64di3_zext_dup): Rename to ...
3882 (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>.
3883 (addv64di3_zext_dup_exec): Rename to ...
3884 (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>.
3885 (addv64di3_zext_dup2): Rename to ...
3886 (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
3887 (addv64di3_zext_dup2_exec): Rename to ...
3888 (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
3889 (addv64di3_sext_dup2): Rename to ...
3890 (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>.
3891 (addv64di3_sext_dup2_exec): Rename to ...
3892 (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>.
3893 (<su>mulv64si3_highpart<exec>): Rename to ...
3894 (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>.
3895 (mulv64di3): Rename to ...
3896 (mul<mode>3): ... this, and use V_DI and <VnSI>.
3897 (mulv64di3_exec): Rename to ...
3898 (mul<mode>3_exec): ... this, and use V_DI and <VnSI>.
3899 (mulv64di3_zext): Rename to ...
3900 (mul<mode>3_zext): ... this, and use V_DI and <VnSI>.
3901 (mulv64di3_zext_exec): Rename to ...
3902 (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
3903 (mulv64di3_zext_dup2): Rename to ...
3904 (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
3905 (mulv64di3_zext_dup2_exec): Rename to ...
3906 (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
3907 (<expander>v64di3): Rename to ...
3908 (<expander><mode>3): ... this, and use V_DI and <VnSI>.
3909 (<expander>v64di3_exec): Rename to ...
3910 (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>.
3911 (<expander>v64si3<exec>): Rename to ...
3912 (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
3913 (v<expander>v64si3<exec>): Rename to ...
3914 (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
3915 (<expander>v64si3<exec>): Rename to ...
3916 (<expander><vnsi>3<exec>): ... this, and use V_SI.
3917 (subv64df3<exec>): Rename to ...
3918 (sub<mode>3<exec>): ... this, and use V_DF.
3919 (truncv64di<mode>2): Rename to ...
3920 (trunc<vndi><mode>2): ... this, and use <VnDI>.
3921 (truncv64di<mode>2_exec): Rename to ...
3922 (trunc<vndi><mode>2_exec): ... this, and use <VnDI>.
3923 (<convop><mode>v64di2): Rename to ...
3924 (<convop><mode><vndi>2): ... this, and use <VnDI>.
3925 (<convop><mode>v64di2_exec): Rename to ...
3926 (<convop><mode><vndi>2_exec): ... this, and use <VnDI>.
3927 (vec_cmp<u>v64qidi): Rename to ...
3928 (vec_cmp<u><mode>di): ... this, and use <VnSI>.
3929 (vec_cmp<u>v64qidi_exec): Rename to ...
3930 (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>.
3931 (vcond_mask_<mode>di): Use <VnDI>.
3932 (maskload<mode>di): Likewise.
3933 (maskstore<mode>di): Likewise.
3934 (mask_gather_load<mode>v64si): Rename to ...
3935 (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
3936 (mask_scatter_store<mode>v64si): Rename to ...
3937 (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
3938 (*<reduc_op>_dpp_shr_v64di): Rename to ...
3939 (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
3940 (*plus_carry_in_dpp_shr_v64si): Rename to ...
3941 (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI.
3942 (*plus_carry_dpp_shr_v64di): Rename to ...
3943 (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
3944 (vec_seriesv64si): Rename to ...
3945 (vec_series<mode>): ... this, and use V_SI.
3946 (vec_seriesv64di): Rename to ...
3947 (vec_series<mode>): ... this, and use V_DI.
3948
3949 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
3950
3951 * config/arc/arc.c (arc_print_operand): Use
3952 HOST_WIDE_INT_PRINT_DEC macro.
3953
3954 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
3955
3956 * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it.
3957
3958 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3959
3960 * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic
3961 variant.
3962 (__arm_vbicq): Likewise.
3963
3964 2020-03-31 Vineet Gupta <vgupta@synopsys.com>
3965
3966 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.
3967
3968 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3969
3970 * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the
3971 common section of both MVE Integer and MVE Floating Point.
3972 (vaddvq): Likewise.
3973 (vaddlvq_p): Likewise.
3974 (vaddvaq): Likewise.
3975 (vaddvq_p): Likewise.
3976 (vcmpcsq): Likewise.
3977 (vmlsdavxq): Likewise.
3978 (vmlsdavq): Likewise.
3979 (vmladavxq): Likewise.
3980 (vmladavq): Likewise.
3981 (vminvq): Likewise.
3982 (vminavq): Likewise.
3983 (vmaxvq): Likewise.
3984 (vmaxavq): Likewise.
3985 (vmlaldavq): Likewise.
3986 (vcmphiq): Likewise.
3987 (vaddlvaq): Likewise.
3988 (vrmlaldavhq): Likewise.
3989 (vrmlaldavhxq): Likewise.
3990 (vrmlsldavhq): Likewise.
3991 (vrmlsldavhxq): Likewise.
3992 (vmlsldavxq): Likewise.
3993 (vmlsldavq): Likewise.
3994 (vabavq): Likewise.
3995 (vrmlaldavhaq): Likewise.
3996 (vcmpgeq_m_n): Likewise.
3997 (vmlsdavxq_p): Likewise.
3998 (vmlsdavq_p): Likewise.
3999 (vmlsdavaxq): Likewise.
4000 (vmlsdavaq): Likewise.
4001 (vaddvaq_p): Likewise.
4002 (vcmpcsq_m_n): Likewise.
4003 (vcmpcsq_m): Likewise.
4004 (vmladavxq_p): Likewise.
4005 (vmladavq_p): Likewise.
4006 (vmladavaxq): Likewise.
4007 (vmladavaq): Likewise.
4008 (vminvq_p): Likewise.
4009 (vminavq_p): Likewise.
4010 (vmaxvq_p): Likewise.
4011 (vmaxavq_p): Likewise.
4012 (vcmphiq_m): Likewise.
4013 (vaddlvaq_p): Likewise.
4014 (vmlaldavaq): Likewise.
4015 (vmlaldavaxq): Likewise.
4016 (vmlaldavq_p): Likewise.
4017 (vmlaldavxq_p): Likewise.
4018 (vmlsldavaq): Likewise.
4019 (vmlsldavaxq): Likewise.
4020 (vmlsldavq_p): Likewise.
4021 (vmlsldavxq_p): Likewise.
4022 (vrmlaldavhaxq): Likewise.
4023 (vrmlaldavhq_p): Likewise.
4024 (vrmlaldavhxq_p): Likewise.
4025 (vrmlsldavhaq): Likewise.
4026 (vrmlsldavhaxq): Likewise.
4027 (vrmlsldavhq_p): Likewise.
4028 (vrmlsldavhxq_p): Likewise.
4029 (vabavq_p): Likewise.
4030 (vmladavaq_p): Likewise.
4031 (vstrbq_scatter_offset): Likewise.
4032 (vstrbq_p): Likewise.
4033 (vstrbq_scatter_offset_p): Likewise.
4034 (vstrdq_scatter_base_p): Likewise.
4035 (vstrdq_scatter_base): Likewise.
4036 (vstrdq_scatter_offset_p): Likewise.
4037 (vstrdq_scatter_offset): Likewise.
4038 (vstrdq_scatter_shifted_offset_p): Likewise.
4039 (vstrdq_scatter_shifted_offset): Likewise.
4040 (vmaxq_x): Likewise.
4041 (vminq_x): Likewise.
4042 (vmovlbq_x): Likewise.
4043 (vmovltq_x): Likewise.
4044 (vmulhq_x): Likewise.
4045 (vmullbq_int_x): Likewise.
4046 (vmullbq_poly_x): Likewise.
4047 (vmulltq_int_x): Likewise.
4048 (vmulltq_poly_x): Likewise.
4049 (vstrbq): Likewise.
4050
4051 2020-03-31 Jakub Jelinek <jakub@redhat.com>
4052
4053 PR target/94368
4054 * config/aarch64/constraints.md (Uph): New constraint.
4055 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
4056 (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
4057 constraint.
4058
4059 2020-03-31 Marc Glisse <marc.glisse@inria.fr>
4060 Jakub Jelinek <jakub@redhat.com>
4061
4062 PR middle-end/94412
4063 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
4064 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.
4065
4066 2020-03-31 Jakub Jelinek <jakub@redhat.com>
4067
4068 PR tree-optimization/94403
4069 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also
4070 ENUMERAL_TYPE lhs_type.
4071
4072 PR rtl-optimization/94344
4073 * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision
4074 conversions, either on both operands of |^+ or just one. Handle
4075 also extra same precision conversion on RSHIFT_EXPR first operand
4076 provided RSHIFT_EXPR is performed in unsigned type.
4077
4078 2020-03-30 David Malcolm <dmalcolm@redhat.com>
4079
4080 * lra.c (finish_insn_code_data_once): Set the array elements
4081 to NULL after freeing them.
4082
4083 2020-03-30 Andreas Schwab <schwab@suse.de>
4084
4085 * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]:
4086 Define.
4087
4088 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com>
4089
4090 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code
4091 to skip defining builtins based on builtin_mask.
4092
4093 2020-03-30 Jakub Jelinek <jakub@redhat.com>
4094
4095 PR target/94343
4096 * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If
4097 !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input
4098 operand is a register. Don't enable masked variants for V*[QH]Imode.
4099
4100 PR target/93069
4101 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
4102 <store_mask_constraint> instead of m in output operand constraint.
4103 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
4104 %{%3%}.
4105
4106 2020-03-30 Alan Modra <amodra@gmail.com>
4107
4108 * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern.
4109 (rs6000_indirect_call_template_1): Adjust to suit.
4110 * config/rs6000/rs6000.md (call_local): Merge call_local32,
4111 call_local64, and call_local_aix.
4112 (call_value_local): Simlarly.
4113 (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit,
4114 and disable pattern when CALL_LONG.
4115 (call_indirect_aix, call_value_indirect_aix): Adjust rtl.
4116 (call_indirect_elfv2, call_indirect_pcrel): Likewise.
4117 (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise.
4118
4119 2020-03-29 H.J. Lu <hongjiu.lu@intel.com>
4120
4121 PR driver/94381
4122 * doc/invoke.texi: Update -falign-functions, -falign-loops and
4123 -falign-jumps documentation.
4124
4125 2020-03-29 Martin Liska <mliska@suse.cz>
4126
4127 PR ipa/94363
4128 * cgraphunit.c (process_function_and_variable_attributes): Remove
4129 double 'attribute' words.
4130
4131 2020-03-29 John David Anglin <dave.anglin@bell.net>
4132
4133 * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate
4134 .align output.
4135
4136 2020-03-28 Jakub Jelinek <jakub@redhat.com>
4137
4138 PR c/93573
4139 * c-decl.c (grokdeclarator): After issuing errors, set size_int_const
4140 to true after setting size to integer_one_node.
4141
4142 PR tree-optimization/94329
4143 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
4144 on the last stmt in a bb, make sure gsi_prev isn't done immediately
4145 after gsi_last_bb.
4146
4147 2020-03-27 Alan Modra <amodra@gmail.com>
4148
4149 PR target/94145
4150 * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile
4151 for PLT16_LO and PLT_PCREL.
4152 * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove.
4153 (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define.
4154 (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile.
4155
4156 2020-03-27 Martin Sebor <msebor@redhat.com>
4157
4158 PR c++/94098
4159 * calls.c (init_attr_rdwr_indices): Iterate over all access attributes.
4160
4161 2020-03-27 Andrew Stubbs <ams@codesourcery.com>
4162
4163 * config/gcn/gcn-valu.md:
4164 (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout.
4165 (VEC_1REG_MODE): Delete.
4166 (VEC_1REG_ALT): Delete.
4167 (VEC_ALL1REG_MODE): Rename to V_1REG throughout.
4168 (VEC_1REG_INT_MODE): Delete.
4169 (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout.
4170 (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout.
4171 (VEC_2REG_MODE): Rename to V_2REG throughout.
4172 (VEC_REG_MODE): Rename to V_noHI throughout.
4173 (VEC_ALLREG_MODE): Rename to V_ALL throughout.
4174 (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout.
4175 (VEC_ALLREG_INT_MODE): Rename to V_INT throughout.
4176 (VEC_INT_MODE): Delete.
4177 (VEC_FP_MODE): Rename to V_FP throughout and move to top.
4178 (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top.
4179 (FP_MODE): Delete and replace with FP throughout.
4180 (FP_1REG_MODE): Delete and replace with FP_1REG throughout.
4181 (VCMP_MODE): Rename to V_noQI throughout and move to top.
4182 (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top.
4183 * config/gcn/gcn.md (FP): New mode iterator.
4184 (FP_1REG): New mode iterator.
4185
4186 2020-03-27 David Malcolm <dmalcolm@redhat.com>
4187
4188 * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this
4189 now emits two .dot files.
4190 * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD.
4191 (graphviz_out::end_tr): Only close a TR, not a TD.
4192 (graphviz_out::begin_td): New.
4193 (graphviz_out::end_td): New.
4194 (graphviz_out::begin_trtd): New, replacing the old implementation
4195 of graphviz_out::begin_tr.
4196 (graphviz_out::end_tdtr): New, replacing the old implementation
4197 of graphviz_out::end_tr.
4198 * graphviz.h (graphviz_out::begin_td): New decl.
4199 (graphviz_out::end_td): New decl.
4200 (graphviz_out::begin_trtd): New decl.
4201 (graphviz_out::end_tdtr): New decl.
4202
4203 2020-03-27 Richard Biener <rguenther@suse.de>
4204
4205 PR debug/94273
4206 * dwarf2out.c (should_emit_struct_debug): Return false for
4207 DINFO_LEVEL_TERSE.
4208
4209 2020-03-27 Richard Biener <rguenther@suse.de>
4210
4211 PR tree-optimization/94352
4212 * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the
4213 worklist ...
4214 (ssa_propagation_engine::ssa_propagate): ... here after
4215 initializing curr_order.
4216
4217 2020-03-27 Kewen Lin <linkw@gcc.gnu.org>
4218
4219 PR tree-optimization/90332
4220 * tree-vect-stmts.c (vector_vector_composition_type): New function.
4221 (get_group_load_store_type): Adjust to call
4222 vector_vector_composition_type, extend it to construct with scalar
4223 types.
4224 (vectorizable_load): Likewise.
4225
4226 2020-03-27 Roman Zhuykov <zhroma@ispras.ru>
4227
4228 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions.
4229 (create_ddg_dep_no_link): Likewise.
4230 (add_cross_iteration_register_deps): Move debug instruction check.
4231 Other minor refactoring.
4232 (add_intra_loop_mem_dep): Do not check for debug instructions.
4233 (add_inter_loop_mem_dep): Likewise.
4234 (build_intra_loop_deps): Likewise.
4235 (create_ddg): Do not include debug insns into the graph.
4236 * ddg.h (struct ddg): Remove num_debug field.
4237 * modulo-sched.c (doloop_register_get): Adjust condition.
4238 (res_MII): Remove DDG num_debug field usage.
4239 (sms_schedule_by_order): Use assertion against debug insns.
4240 (ps_has_conflicts): Drop debug insn check.
4241
4242 2020-03-26 Jakub Jelinek <jakub@redhat.com>
4243
4244 PR debug/94323
4245 * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST
4246 that contains exactly one non-DEBUG_BEGIN_STMT statement.
4247
4248 PR debug/94281
4249 * gimple.h (gimple_seq_first_nondebug_stmt): New function.
4250 (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains
4251 a single non-debug stmt followed by one or more debug stmts.
4252 * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt
4253 instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt
4254 and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and
4255 gimple_seq_last to check if outer_stmt gbind could be reused and
4256 if yes and it is surrounded by any debug stmts, move them into the
4257 gbind body.
4258
4259 PR rtl-optimization/92264
4260 * var-tracking.c (add_stores): Call cselib_set_value_sp_based even
4261 for sp based values in !frame_pointer_needed
4262 && !ACCUMULATE_OUTGOING_ARGS functions.
4263
4264 2020-03-26 Felix Yang <felix.yang@huawei.com>
4265
4266 PR tree-optimization/94269
4267 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
4268 this
4269 operation to single basic block.
4270
4271 2020-03-25 Jeff Law <law@redhat.com>
4272
4273 PR rtl-optimization/90275
4274 * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the
4275 pattern.
4276
4277 2020-03-25 Jakub Jelinek <jakub@redhat.com>
4278
4279 PR target/94292
4280 * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to
4281 mode rather than VOIDmode.
4282
4283 2020-03-25 Martin Sebor <msebor@redhat.com>
4284
4285 PR middle-end/94004
4286 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings
4287 even for alloca calls resulting from system macro expansion.
4288 Include inlining context in all warnings.
4289
4290 2020-03-25 Richard Sandiford <richard.sandiford@arm.com>
4291
4292 PR target/94254
4293 * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow
4294 FPRs to change between SDmode and DDmode.
4295
4296 2020-03-25 Martin Sebor <msebor@redhat.com>
4297
4298 PR tree-optimization/94131
4299 * gimple-fold.c (get_range_strlen_tree): Fail for variable-length
4300 types and decls.
4301 * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming
4302 types have constant sizes.
4303
4304 2020-03-25 Martin Liska <mliska@suse.cz>
4305
4306 PR lto/94259
4307 * configure.ac: Report error only when --with-zstd
4308 is used.
4309 * configure: Regenerate.
4310
4311 2020-03-25 Jakub Jelinek <jakub@redhat.com>
4312
4313 PR target/94308
4314 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set
4315 INSN_CODE (insn) to -1 when changing the pattern.
4316
4317 2020-03-25 Martin Liska <mliska@suse.cz>
4318
4319 PR target/93274
4320 PR ipa/94271
4321 * config/i386/i386-features.c (make_resolver_func): Drop
4322 public flag for resolver.
4323 * config/rs6000/rs6000.c (make_resolver_func): Add comdat
4324 group for resolver and drop public flag if possible.
4325 * multiple_target.c (create_dispatcher_calls): Drop unique_name
4326 and resolution as we want to enable LTO privatization of the default
4327 symbol.
4328
4329 2020-03-25 Martin Liska <mliska@suse.cz>
4330
4331 PR lto/94259
4332 * configure.ac: Respect --without-zstd and report
4333 error when we can't find header file with --with-zstd.
4334 * configure: Regenerate.
4335
4336 2020-03-25 Jakub Jelinek <jakub@redhat.com>
4337
4338 PR middle-end/94303
4339 * varasm.c (output_constructor_array_range): If local->index
4340 RANGE_EXPR doesn't start at the current location in the constructor,
4341 skip needed number of bytes using assemble_zeros or assert we don't
4342 go backwards.
4343
4344 PR c++/94223
4345 * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong
4346 counter instead of DECL_UID.
4347
4348 PR tree-optimization/94300
4349 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset
4350 is positive, make sure that off + size isn't larger than needed_len.
4351
4352 2020-03-25 Richard Biener <rguenther@suse.de>
4353 Jakub Jelinek <jakub@redhat.com>
4354
4355 PR debug/94283
4356 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.
4357
4358 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org>
4359
4360 * doc/sourcebuild.texi (ARM-specific attributes): Add
4361 arm_fp_dp_ok.
4362 (Features for dg-add-options): Add arm_fp_dp.
4363
4364 2020-03-24 John David Anglin <danglin@gcc.gnu.org>
4365
4366 PR lto/94249
4367 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.
4368
4369 2020-03-24 Tobias Burnus <tobias@codesourcery.com>
4370
4371 PR libgomp/81689
4372 * omp-offload.c (omp_finish_file): Fix target-link handling if
4373 targetm_common.have_named_sections is false.
4374
4375 2020-03-24 Jakub Jelinek <jakub@redhat.com>
4376
4377 PR target/94286
4378 * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode
4379 instead of GEN_INT.
4380
4381 PR debug/94285
4382 * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to
4383 e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts.
4384 If not after and at *incr_pos is a debug stmt, set stmt location to
4385 location of next non-debug stmt after it if any.
4386
4387 PR debug/94283
4388 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
4389 GF_PLF_2, but don't add them to worklist. Don't add an assigment to
4390 worklist or set GF_PLF_2 just because it is used in a debug stmt in
4391 another bb. Formatting improvements.
4392
4393 PR debug/94277
4394 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and
4395 non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC
4396 regardless of whether TREE_NO_WARNING is set on it or whether
4397 warn_unused_function is true or not.
4398
4399 2020-03-23 Jeff Law <law@redhat.com>
4400
4401 PR rtl-optimization/90275
4402 PR target/94238
4403 PR target/94144
4404 * simplify-rtx.c (comparison_code_valid_for_mode): New function.
4405 (simplify_logical_relational_operation): Use it.
4406
4407 2020-03-23 Jakub Jelinek <jakub@redhat.com>
4408
4409 PR c++/91993
4410 * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on
4411 ultimate rhs and if returned something different, reconstructing
4412 the COMPOUND_EXPRs.
4413
4414 2020-03-23 Lewis Hyatt <lhyatt@gmail.com>
4415
4416 * opts.c (print_filtered_help): Improve the help text for alias options.
4417
4418 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4419 Andre Vieira <andre.simoesdiasvieira@arm.com>
4420 Mihail Ionescu <mihail.ionescu@arm.com>
4421
4422 * config/arm/arm_mve.h (vshlcq_m_s8): Define macro.
4423 (vshlcq_m_u8): Likewise.
4424 (vshlcq_m_s16): Likewise.
4425 (vshlcq_m_u16): Likewise.
4426 (vshlcq_m_s32): Likewise.
4427 (vshlcq_m_u32): Likewise.
4428 (__arm_vshlcq_m_s8): Define intrinsic.
4429 (__arm_vshlcq_m_u8): Likewise.
4430 (__arm_vshlcq_m_s16): Likewise.
4431 (__arm_vshlcq_m_u16): Likewise.
4432 (__arm_vshlcq_m_s32): Likewise.
4433 (__arm_vshlcq_m_u32): Likewise.
4434 (vshlcq_m): Define polymorphic variant.
4435 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE):
4436 Use builtin qualifier.
4437 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
4438 * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern.
4439 (mve_vshlcq_m_carry_<supf><mode>): Likewise.
4440 (mve_vshlcq_m_<supf><mode>): Likewise.
4441
4442 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4443
4444 * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier.
4445 (UQSHL_QUALIFIERS): Likewise.
4446 (ASRL_QUALIFIERS): Likewise.
4447 (SQSHL_QUALIFIERS): Likewise.
4448 * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in
4449 Big-Endian Mode.
4450 (sqrshr): Define macro.
4451 (sqrshrl): Likewise.
4452 (sqrshrl_sat48): Likewise.
4453 (sqshl): Likewise.
4454 (sqshll): Likewise.
4455 (srshr): Likewise.
4456 (srshrl): Likewise.
4457 (uqrshl): Likewise.
4458 (uqrshll): Likewise.
4459 (uqrshll_sat48): Likewise.
4460 (uqshl): Likewise.
4461 (uqshll): Likewise.
4462 (urshr): Likewise.
4463 (urshrl): Likewise.
4464 (lsll): Likewise.
4465 (asrl): Likewise.
4466 (__arm_lsll): Define intrinsic.
4467 (__arm_asrl): Likewise.
4468 (__arm_uqrshll): Likewise.
4469 (__arm_uqrshll_sat48): Likewise.
4470 (__arm_sqrshrl): Likewise.
4471 (__arm_sqrshrl_sat48): Likewise.
4472 (__arm_uqshll): Likewise.
4473 (__arm_urshrl): Likewise.
4474 (__arm_srshrl): Likewise.
4475 (__arm_sqshll): Likewise.
4476 (__arm_uqrshl): Likewise.
4477 (__arm_sqrshr): Likewise.
4478 (__arm_uqshl): Likewise.
4479 (__arm_urshr): Likewise.
4480 (__arm_sqshl): Likewise.
4481 (__arm_srshr): Likewise.
4482 * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin
4483 qualifier.
4484 (UQSHL_QUALIFIERS): Likewise.
4485 (ASRL_QUALIFIERS): Likewise.
4486 (SQSHL_QUALIFIERS): Likewise.
4487 * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern.
4488 (mve_sqrshrl_sat<supf>_di): Likewise.
4489 (mve_uqrshl_si): Likewise.
4490 (mve_sqrshr_si): Likewise.
4491 (mve_uqshll_di): Likewise.
4492 (mve_urshrl_di): Likewise.
4493 (mve_uqshl_si): Likewise.
4494 (mve_urshr_si): Likewise.
4495 (mve_sqshl_si): Likewise.
4496 (mve_srshr_si): Likewise.
4497 (mve_srshrl_di): Likewise.
4498 (mve_sqshll_di): Likewise.
4499
4500 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4501 Andre Vieira <andre.simoesdiasvieira@arm.com>
4502 Mihail Ionescu <mihail.ionescu@arm.com>
4503
4504 * config/arm/arm_mve.h (vsetq_lane_f16): Define macro.
4505 (vsetq_lane_f32): Likewise.
4506 (vsetq_lane_s16): Likewise.
4507 (vsetq_lane_s32): Likewise.
4508 (vsetq_lane_s8): Likewise.
4509 (vsetq_lane_s64): Likewise.
4510 (vsetq_lane_u8): Likewise.
4511 (vsetq_lane_u16): Likewise.
4512 (vsetq_lane_u32): Likewise.
4513 (vsetq_lane_u64): Likewise.
4514 (vgetq_lane_f16): Likewise.
4515 (vgetq_lane_f32): Likewise.
4516 (vgetq_lane_s16): Likewise.
4517 (vgetq_lane_s32): Likewise.
4518 (vgetq_lane_s8): Likewise.
4519 (vgetq_lane_s64): Likewise.
4520 (vgetq_lane_u8): Likewise.
4521 (vgetq_lane_u16): Likewise.
4522 (vgetq_lane_u32): Likewise.
4523 (vgetq_lane_u64): Likewise.
4524 (__ARM_NUM_LANES): Likewise.
4525 (__ARM_LANEQ): Likewise.
4526 (__ARM_CHECK_LANEQ): Likewise.
4527 (__arm_vsetq_lane_s16): Define intrinsic.
4528 (__arm_vsetq_lane_s32): Likewise.
4529 (__arm_vsetq_lane_s8): Likewise.
4530 (__arm_vsetq_lane_s64): Likewise.
4531 (__arm_vsetq_lane_u8): Likewise.
4532 (__arm_vsetq_lane_u16): Likewise.
4533 (__arm_vsetq_lane_u32): Likewise.
4534 (__arm_vsetq_lane_u64): Likewise.
4535 (__arm_vgetq_lane_s16): Likewise.
4536 (__arm_vgetq_lane_s32): Likewise.
4537 (__arm_vgetq_lane_s8): Likewise.
4538 (__arm_vgetq_lane_s64): Likewise.
4539 (__arm_vgetq_lane_u8): Likewise.
4540 (__arm_vgetq_lane_u16): Likewise.
4541 (__arm_vgetq_lane_u32): Likewise.
4542 (__arm_vgetq_lane_u64): Likewise.
4543 (__arm_vsetq_lane_f16): Likewise.
4544 (__arm_vsetq_lane_f32): Likewise.
4545 (__arm_vgetq_lane_f16): Likewise.
4546 (__arm_vgetq_lane_f32): Likewise.
4547 (vgetq_lane): Define polymorphic variant.
4548 (vsetq_lane): Likewise.
4549 * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL
4550 pattern.
4551 (mve_vec_extractv2didi): Likewise.
4552 (mve_vec_extract_sext_internal<mode>): Likewise.
4553 (mve_vec_extract_zext_internal<mode>): Likewise.
4554 (mve_vec_set<mode>_internal): Likewise.
4555 (mve_vec_setv2di_internal): Likewise.
4556 * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md
4557 file.
4558 (vec_extract<mode><V_elem_l>): Rename to
4559 "neon_vec_extract<mode><V_elem_l>".
4560 (vec_extractv2didi): Rename to "neon_vec_extractv2didi".
4561 * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL
4562 pattern common for MVE and NEON.
4563 (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both
4564 MVE and NEON.
4565
4566 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
4567
4568 * config/arm/mve.md (earlyclobber_32): New mode attribute.
4569 (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*,
4570 mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers.
4571
4572 2020-03-23 Richard Biener <rguenther@suse.de>
4573
4574 PR tree-optimization/94261
4575 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
4576 IL operand swapping code.
4577 (vect_slp_rearrange_stmts): Do not arrange isomorphic
4578 nodes that would need operation code adjustments.
4579
4580 2020-03-23 Tobias Burnus <tobias@codesourcery.com>
4581
4582 * doc/install.texi (amdgcn-*-amdhsa): Renamed
4583 from amdgcn-unknown-amdhsa; change
4584 amdgcn-unknown-amdhsa to amdgcn-amdhsa.
4585
4586 2020-03-23 Richard Biener <rguenther@suse.de>
4587
4588 PR ipa/94245
4589 * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP
4590 directly rather than also folding it via build_fold_addr_expr.
4591
4592 2020-03-23 Richard Biener <rguenther@suse.de>
4593
4594 PR tree-optimization/94266
4595 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate
4596 addresses of TARGET_MEM_REFs.
4597
4598 2020-03-23 Martin Liska <mliska@suse.cz>
4599
4600 PR ipa/94250
4601 * symtab.c (symtab_node::clone_references): Save speculative_id
4602 as ref may be overwritten by create_reference.
4603 (symtab_node::clone_referring): Likewise.
4604 (symtab_node::clone_reference): Likewise.
4605
4606 2020-03-22 Iain Sandoe <iain@sandoe.co.uk>
4607
4608 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
4609 references to Darwin.
4610 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
4611 unconditionally and comment on why.
4612
4613 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
4614
4615 * config/darwin.c (darwin_mergeable_constant_section): Collect
4616 section anchor checks into the caller.
4617 (machopic_select_section): Collect section anchor checks into
4618 the determination of 'effective zero-size' objects. When the
4619 size is unknown, assume it is non-zero, and thus return the
4620 'generic' section for the DECL.
4621
4622 2020-03-21 Iain Sandoe <iain@sandoe.co.uk>
4623
4624 PR target/93694
4625 * config/darwin.opt: Amend options descriptions.
4626
4627 2020-03-21 Richard Sandiford <richard.sandiford@arm.com>
4628
4629 PR rtl-optimization/94052
4630 * lra-constraints.c (simplify_operand_subreg): Reload the inner
4631 register of a paradoxical subreg if simplify_subreg_regno fails
4632 to give a valid hard register for the outer mode.
4633
4634 2020-03-20 Martin Jambor <mjambor@suse.cz>
4635
4636 PR tree-optimization/93435
4637 * params.opt (sra-max-propagations): New parameter.
4638 * tree-sra.c (propagation_budget): New variable.
4639 (budget_for_propagation_access): New function.
4640 (propagate_subaccesses_from_rhs): Use it.
4641 (propagate_subaccesses_from_lhs): Likewise.
4642 (propagate_all_subaccesses): Set up and destroy propagation_budget.
4643
4644 2020-03-20 Carl Love <cel@us.ibm.com>
4645
4646 PR/target 87583
4647 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4648 Add check for TARGET_FPRND for Power 7 or newer.
4649
4650 2020-03-20 Jan Hubicka <hubicka@ucw.cz>
4651
4652 PR ipa/93347
4653 * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag.
4654 (cgraph_edge::redirect_callee): Move here; likewise.
4655 (cgraph_node::remove_callees): Update calls_comdat_local flag.
4656 (cgraph_node::verify_node): Verify that calls_comdat_local flag match
4657 reality.
4658 (cgraph_node::check_calls_comdat_local_p): New member function.
4659 * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare.
4660 (cgraph_edge::redirect_callee): Move offline.
4661 * ipa-fnsummary.c (compute_fn_summary): Do not compute
4662 calls_comdat_local flag here.
4663 * ipa-inline-transform.c (inline_call): Fix updating of
4664 calls_comdat_local flag.
4665 * ipa-split.c (split_function): Use true instead of 1 to set the flag.
4666 * symtab.c (symtab_node::add_to_same_comdat_group): Update
4667 calls_comdat_local flag.
4668
4669 2020-03-20 Richard Biener <rguenther@suse.de>
4670
4671 * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree
4672 from the possibly modified root.
4673
4674 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4675 Andre Vieira <andre.simoesdiasvieira@arm.com>
4676 Mihail Ionescu <mihail.ionescu@arm.com>
4677
4678 * config/arm/arm_mve.h (vst1q_p_u8): Define macro.
4679 (vst1q_p_s8): Likewise.
4680 (vst2q_s8): Likewise.
4681 (vst2q_u8): Likewise.
4682 (vld1q_z_u8): Likewise.
4683 (vld1q_z_s8): Likewise.
4684 (vld2q_s8): Likewise.
4685 (vld2q_u8): Likewise.
4686 (vld4q_s8): Likewise.
4687 (vld4q_u8): Likewise.
4688 (vst1q_p_u16): Likewise.
4689 (vst1q_p_s16): Likewise.
4690 (vst2q_s16): Likewise.
4691 (vst2q_u16): Likewise.
4692 (vld1q_z_u16): Likewise.
4693 (vld1q_z_s16): Likewise.
4694 (vld2q_s16): Likewise.
4695 (vld2q_u16): Likewise.
4696 (vld4q_s16): Likewise.
4697 (vld4q_u16): Likewise.
4698 (vst1q_p_u32): Likewise.
4699 (vst1q_p_s32): Likewise.
4700 (vst2q_s32): Likewise.
4701 (vst2q_u32): Likewise.
4702 (vld1q_z_u32): Likewise.
4703 (vld1q_z_s32): Likewise.
4704 (vld2q_s32): Likewise.
4705 (vld2q_u32): Likewise.
4706 (vld4q_s32): Likewise.
4707 (vld4q_u32): Likewise.
4708 (vld4q_f16): Likewise.
4709 (vld2q_f16): Likewise.
4710 (vld1q_z_f16): Likewise.
4711 (vst2q_f16): Likewise.
4712 (vst1q_p_f16): Likewise.
4713 (vld4q_f32): Likewise.
4714 (vld2q_f32): Likewise.
4715 (vld1q_z_f32): Likewise.
4716 (vst2q_f32): Likewise.
4717 (vst1q_p_f32): Likewise.
4718 (__arm_vst1q_p_u8): Define intrinsic.
4719 (__arm_vst1q_p_s8): Likewise.
4720 (__arm_vst2q_s8): Likewise.
4721 (__arm_vst2q_u8): Likewise.
4722 (__arm_vld1q_z_u8): Likewise.
4723 (__arm_vld1q_z_s8): Likewise.
4724 (__arm_vld2q_s8): Likewise.
4725 (__arm_vld2q_u8): Likewise.
4726 (__arm_vld4q_s8): Likewise.
4727 (__arm_vld4q_u8): Likewise.
4728 (__arm_vst1q_p_u16): Likewise.
4729 (__arm_vst1q_p_s16): Likewise.
4730 (__arm_vst2q_s16): Likewise.
4731 (__arm_vst2q_u16): Likewise.
4732 (__arm_vld1q_z_u16): Likewise.
4733 (__arm_vld1q_z_s16): Likewise.
4734 (__arm_vld2q_s16): Likewise.
4735 (__arm_vld2q_u16): Likewise.
4736 (__arm_vld4q_s16): Likewise.
4737 (__arm_vld4q_u16): Likewise.
4738 (__arm_vst1q_p_u32): Likewise.
4739 (__arm_vst1q_p_s32): Likewise.
4740 (__arm_vst2q_s32): Likewise.
4741 (__arm_vst2q_u32): Likewise.
4742 (__arm_vld1q_z_u32): Likewise.
4743 (__arm_vld1q_z_s32): Likewise.
4744 (__arm_vld2q_s32): Likewise.
4745 (__arm_vld2q_u32): Likewise.
4746 (__arm_vld4q_s32): Likewise.
4747 (__arm_vld4q_u32): Likewise.
4748 (__arm_vld4q_f16): Likewise.
4749 (__arm_vld2q_f16): Likewise.
4750 (__arm_vld1q_z_f16): Likewise.
4751 (__arm_vst2q_f16): Likewise.
4752 (__arm_vst1q_p_f16): Likewise.
4753 (__arm_vld4q_f32): Likewise.
4754 (__arm_vld2q_f32): Likewise.
4755 (__arm_vld1q_z_f32): Likewise.
4756 (__arm_vst2q_f32): Likewise.
4757 (__arm_vst1q_p_f32): Likewise.
4758 (vld1q_z): Define polymorphic variant.
4759 (vld2q): Likewise.
4760 (vld4q): Likewise.
4761 (vst1q_p): Likewise.
4762 (vst2q): Likewise.
4763 * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier.
4764 (LOAD1): Likewise.
4765 * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern.
4766 (mve_vld2q<mode>): Likewise.
4767 (mve_vld4q<mode>): Likewise.
4768
4769 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4770 Andre Vieira <andre.simoesdiasvieira@arm.com>
4771 Mihail Ionescu <mihail.ionescu@arm.com>
4772
4773 * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define.
4774 (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise.
4775 (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and
4776 "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array.
4777 (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC
4778 and ARM_BUILTIN_SET_FPSCR_NZCVQC.
4779 * config/arm/arm_mve.h (vadciq_s32): Define macro.
4780 (vadciq_u32): Likewise.
4781 (vadciq_m_s32): Likewise.
4782 (vadciq_m_u32): Likewise.
4783 (vadcq_s32): Likewise.
4784 (vadcq_u32): Likewise.
4785 (vadcq_m_s32): Likewise.
4786 (vadcq_m_u32): Likewise.
4787 (vsbciq_s32): Likewise.
4788 (vsbciq_u32): Likewise.
4789 (vsbciq_m_s32): Likewise.
4790 (vsbciq_m_u32): Likewise.
4791 (vsbcq_s32): Likewise.
4792 (vsbcq_u32): Likewise.
4793 (vsbcq_m_s32): Likewise.
4794 (vsbcq_m_u32): Likewise.
4795 (__arm_vadciq_s32): Define intrinsic.
4796 (__arm_vadciq_u32): Likewise.
4797 (__arm_vadciq_m_s32): Likewise.
4798 (__arm_vadciq_m_u32): Likewise.
4799 (__arm_vadcq_s32): Likewise.
4800 (__arm_vadcq_u32): Likewise.
4801 (__arm_vadcq_m_s32): Likewise.
4802 (__arm_vadcq_m_u32): Likewise.
4803 (__arm_vsbciq_s32): Likewise.
4804 (__arm_vsbciq_u32): Likewise.
4805 (__arm_vsbciq_m_s32): Likewise.
4806 (__arm_vsbciq_m_u32): Likewise.
4807 (__arm_vsbcq_s32): Likewise.
4808 (__arm_vsbcq_u32): Likewise.
4809 (__arm_vsbcq_m_s32): Likewise.
4810 (__arm_vsbcq_m_u32): Likewise.
4811 (vadciq_m): Define polymorphic variant.
4812 (vadciq): Likewise.
4813 (vadcq_m): Likewise.
4814 (vadcq): Likewise.
4815 (vsbciq_m): Likewise.
4816 (vsbciq): Likewise.
4817 (vsbcq_m): Likewise.
4818 (vsbcq): Likewise.
4819 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin
4820 qualifier.
4821 (BINOP_UNONE_UNONE_UNONE): Likewise.
4822 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
4823 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
4824 * config/arm/mve.md (VADCIQ): Define iterator.
4825 (VADCIQ_M): Likewise.
4826 (VSBCQ): Likewise.
4827 (VSBCQ_M): Likewise.
4828 (VSBCIQ): Likewise.
4829 (VSBCIQ_M): Likewise.
4830 (VADCQ): Likewise.
4831 (VADCQ_M): Likewise.
4832 (mve_vadciq_m_<supf>v4si): Define RTL pattern.
4833 (mve_vadciq_<supf>v4si): Likewise.
4834 (mve_vadcq_m_<supf>v4si): Likewise.
4835 (mve_vadcq_<supf>v4si): Likewise.
4836 (mve_vsbciq_m_<supf>v4si): Likewise.
4837 (mve_vsbciq_<supf>v4si): Likewise.
4838 (mve_vsbcq_m_<supf>v4si): Likewise.
4839 (mve_vsbcq_<supf>v4si): Likewise.
4840 (get_fpscr_nzcvqc): Define isns.
4841 (set_fpscr_nzcvqc): Define isns.
4842 * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define.
4843 (UNSPEC_SET_FPSCR_NZCVQC): Define.
4844
4845 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4846
4847 * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro.
4848 (vddupq_x_n_u16): Likewise.
4849 (vddupq_x_n_u32): Likewise.
4850 (vddupq_x_wb_u8): Likewise.
4851 (vddupq_x_wb_u16): Likewise.
4852 (vddupq_x_wb_u32): Likewise.
4853 (vdwdupq_x_n_u8): Likewise.
4854 (vdwdupq_x_n_u16): Likewise.
4855 (vdwdupq_x_n_u32): Likewise.
4856 (vdwdupq_x_wb_u8): Likewise.
4857 (vdwdupq_x_wb_u16): Likewise.
4858 (vdwdupq_x_wb_u32): Likewise.
4859 (vidupq_x_n_u8): Likewise.
4860 (vidupq_x_n_u16): Likewise.
4861 (vidupq_x_n_u32): Likewise.
4862 (vidupq_x_wb_u8): Likewise.
4863 (vidupq_x_wb_u16): Likewise.
4864 (vidupq_x_wb_u32): Likewise.
4865 (viwdupq_x_n_u8): Likewise.
4866 (viwdupq_x_n_u16): Likewise.
4867 (viwdupq_x_n_u32): Likewise.
4868 (viwdupq_x_wb_u8): Likewise.
4869 (viwdupq_x_wb_u16): Likewise.
4870 (viwdupq_x_wb_u32): Likewise.
4871 (vdupq_x_n_s8): Likewise.
4872 (vdupq_x_n_s16): Likewise.
4873 (vdupq_x_n_s32): Likewise.
4874 (vdupq_x_n_u8): Likewise.
4875 (vdupq_x_n_u16): Likewise.
4876 (vdupq_x_n_u32): Likewise.
4877 (vminq_x_s8): Likewise.
4878 (vminq_x_s16): Likewise.
4879 (vminq_x_s32): Likewise.
4880 (vminq_x_u8): Likewise.
4881 (vminq_x_u16): Likewise.
4882 (vminq_x_u32): Likewise.
4883 (vmaxq_x_s8): Likewise.
4884 (vmaxq_x_s16): Likewise.
4885 (vmaxq_x_s32): Likewise.
4886 (vmaxq_x_u8): Likewise.
4887 (vmaxq_x_u16): Likewise.
4888 (vmaxq_x_u32): Likewise.
4889 (vabdq_x_s8): Likewise.
4890 (vabdq_x_s16): Likewise.
4891 (vabdq_x_s32): Likewise.
4892 (vabdq_x_u8): Likewise.
4893 (vabdq_x_u16): Likewise.
4894 (vabdq_x_u32): Likewise.
4895 (vabsq_x_s8): Likewise.
4896 (vabsq_x_s16): Likewise.
4897 (vabsq_x_s32): Likewise.
4898 (vaddq_x_s8): Likewise.
4899 (vaddq_x_s16): Likewise.
4900 (vaddq_x_s32): Likewise.
4901 (vaddq_x_n_s8): Likewise.
4902 (vaddq_x_n_s16): Likewise.
4903 (vaddq_x_n_s32): Likewise.
4904 (vaddq_x_u8): Likewise.
4905 (vaddq_x_u16): Likewise.
4906 (vaddq_x_u32): Likewise.
4907 (vaddq_x_n_u8): Likewise.
4908 (vaddq_x_n_u16): Likewise.
4909 (vaddq_x_n_u32): Likewise.
4910 (vclsq_x_s8): Likewise.
4911 (vclsq_x_s16): Likewise.
4912 (vclsq_x_s32): Likewise.
4913 (vclzq_x_s8): Likewise.
4914 (vclzq_x_s16): Likewise.
4915 (vclzq_x_s32): Likewise.
4916 (vclzq_x_u8): Likewise.
4917 (vclzq_x_u16): Likewise.
4918 (vclzq_x_u32): Likewise.
4919 (vnegq_x_s8): Likewise.
4920 (vnegq_x_s16): Likewise.
4921 (vnegq_x_s32): Likewise.
4922 (vmulhq_x_s8): Likewise.
4923 (vmulhq_x_s16): Likewise.
4924 (vmulhq_x_s32): Likewise.
4925 (vmulhq_x_u8): Likewise.
4926 (vmulhq_x_u16): Likewise.
4927 (vmulhq_x_u32): Likewise.
4928 (vmullbq_poly_x_p8): Likewise.
4929 (vmullbq_poly_x_p16): Likewise.
4930 (vmullbq_int_x_s8): Likewise.
4931 (vmullbq_int_x_s16): Likewise.
4932 (vmullbq_int_x_s32): Likewise.
4933 (vmullbq_int_x_u8): Likewise.
4934 (vmullbq_int_x_u16): Likewise.
4935 (vmullbq_int_x_u32): Likewise.
4936 (vmulltq_poly_x_p8): Likewise.
4937 (vmulltq_poly_x_p16): Likewise.
4938 (vmulltq_int_x_s8): Likewise.
4939 (vmulltq_int_x_s16): Likewise.
4940 (vmulltq_int_x_s32): Likewise.
4941 (vmulltq_int_x_u8): Likewise.
4942 (vmulltq_int_x_u16): Likewise.
4943 (vmulltq_int_x_u32): Likewise.
4944 (vmulq_x_s8): Likewise.
4945 (vmulq_x_s16): Likewise.
4946 (vmulq_x_s32): Likewise.
4947 (vmulq_x_n_s8): Likewise.
4948 (vmulq_x_n_s16): Likewise.
4949 (vmulq_x_n_s32): Likewise.
4950 (vmulq_x_u8): Likewise.
4951 (vmulq_x_u16): Likewise.
4952 (vmulq_x_u32): Likewise.
4953 (vmulq_x_n_u8): Likewise.
4954 (vmulq_x_n_u16): Likewise.
4955 (vmulq_x_n_u32): Likewise.
4956 (vsubq_x_s8): Likewise.
4957 (vsubq_x_s16): Likewise.
4958 (vsubq_x_s32): Likewise.
4959 (vsubq_x_n_s8): Likewise.
4960 (vsubq_x_n_s16): Likewise.
4961 (vsubq_x_n_s32): Likewise.
4962 (vsubq_x_u8): Likewise.
4963 (vsubq_x_u16): Likewise.
4964 (vsubq_x_u32): Likewise.
4965 (vsubq_x_n_u8): Likewise.
4966 (vsubq_x_n_u16): Likewise.
4967 (vsubq_x_n_u32): Likewise.
4968 (vcaddq_rot90_x_s8): Likewise.
4969 (vcaddq_rot90_x_s16): Likewise.
4970 (vcaddq_rot90_x_s32): Likewise.
4971 (vcaddq_rot90_x_u8): Likewise.
4972 (vcaddq_rot90_x_u16): Likewise.
4973 (vcaddq_rot90_x_u32): Likewise.
4974 (vcaddq_rot270_x_s8): Likewise.
4975 (vcaddq_rot270_x_s16): Likewise.
4976 (vcaddq_rot270_x_s32): Likewise.
4977 (vcaddq_rot270_x_u8): Likewise.
4978 (vcaddq_rot270_x_u16): Likewise.
4979 (vcaddq_rot270_x_u32): Likewise.
4980 (vhaddq_x_n_s8): Likewise.
4981 (vhaddq_x_n_s16): Likewise.
4982 (vhaddq_x_n_s32): Likewise.
4983 (vhaddq_x_n_u8): Likewise.
4984 (vhaddq_x_n_u16): Likewise.
4985 (vhaddq_x_n_u32): Likewise.
4986 (vhaddq_x_s8): Likewise.
4987 (vhaddq_x_s16): Likewise.
4988 (vhaddq_x_s32): Likewise.
4989 (vhaddq_x_u8): Likewise.
4990 (vhaddq_x_u16): Likewise.
4991 (vhaddq_x_u32): Likewise.
4992 (vhcaddq_rot90_x_s8): Likewise.
4993 (vhcaddq_rot90_x_s16): Likewise.
4994 (vhcaddq_rot90_x_s32): Likewise.
4995 (vhcaddq_rot270_x_s8): Likewise.
4996 (vhcaddq_rot270_x_s16): Likewise.
4997 (vhcaddq_rot270_x_s32): Likewise.
4998 (vhsubq_x_n_s8): Likewise.
4999 (vhsubq_x_n_s16): Likewise.
5000 (vhsubq_x_n_s32): Likewise.
5001 (vhsubq_x_n_u8): Likewise.
5002 (vhsubq_x_n_u16): Likewise.
5003 (vhsubq_x_n_u32): Likewise.
5004 (vhsubq_x_s8): Likewise.
5005 (vhsubq_x_s16): Likewise.
5006 (vhsubq_x_s32): Likewise.
5007 (vhsubq_x_u8): Likewise.
5008 (vhsubq_x_u16): Likewise.
5009 (vhsubq_x_u32): Likewise.
5010 (vrhaddq_x_s8): Likewise.
5011 (vrhaddq_x_s16): Likewise.
5012 (vrhaddq_x_s32): Likewise.
5013 (vrhaddq_x_u8): Likewise.
5014 (vrhaddq_x_u16): Likewise.
5015 (vrhaddq_x_u32): Likewise.
5016 (vrmulhq_x_s8): Likewise.
5017 (vrmulhq_x_s16): Likewise.
5018 (vrmulhq_x_s32): Likewise.
5019 (vrmulhq_x_u8): Likewise.
5020 (vrmulhq_x_u16): Likewise.
5021 (vrmulhq_x_u32): Likewise.
5022 (vandq_x_s8): Likewise.
5023 (vandq_x_s16): Likewise.
5024 (vandq_x_s32): Likewise.
5025 (vandq_x_u8): Likewise.
5026 (vandq_x_u16): Likewise.
5027 (vandq_x_u32): Likewise.
5028 (vbicq_x_s8): Likewise.
5029 (vbicq_x_s16): Likewise.
5030 (vbicq_x_s32): Likewise.
5031 (vbicq_x_u8): Likewise.
5032 (vbicq_x_u16): Likewise.
5033 (vbicq_x_u32): Likewise.
5034 (vbrsrq_x_n_s8): Likewise.
5035 (vbrsrq_x_n_s16): Likewise.
5036 (vbrsrq_x_n_s32): Likewise.
5037 (vbrsrq_x_n_u8): Likewise.
5038 (vbrsrq_x_n_u16): Likewise.
5039 (vbrsrq_x_n_u32): Likewise.
5040 (veorq_x_s8): Likewise.
5041 (veorq_x_s16): Likewise.
5042 (veorq_x_s32): Likewise.
5043 (veorq_x_u8): Likewise.
5044 (veorq_x_u16): Likewise.
5045 (veorq_x_u32): Likewise.
5046 (vmovlbq_x_s8): Likewise.
5047 (vmovlbq_x_s16): Likewise.
5048 (vmovlbq_x_u8): Likewise.
5049 (vmovlbq_x_u16): Likewise.
5050 (vmovltq_x_s8): Likewise.
5051 (vmovltq_x_s16): Likewise.
5052 (vmovltq_x_u8): Likewise.
5053 (vmovltq_x_u16): Likewise.
5054 (vmvnq_x_s8): Likewise.
5055 (vmvnq_x_s16): Likewise.
5056 (vmvnq_x_s32): Likewise.
5057 (vmvnq_x_u8): Likewise.
5058 (vmvnq_x_u16): Likewise.
5059 (vmvnq_x_u32): Likewise.
5060 (vmvnq_x_n_s16): Likewise.
5061 (vmvnq_x_n_s32): Likewise.
5062 (vmvnq_x_n_u16): Likewise.
5063 (vmvnq_x_n_u32): Likewise.
5064 (vornq_x_s8): Likewise.
5065 (vornq_x_s16): Likewise.
5066 (vornq_x_s32): Likewise.
5067 (vornq_x_u8): Likewise.
5068 (vornq_x_u16): Likewise.
5069 (vornq_x_u32): Likewise.
5070 (vorrq_x_s8): Likewise.
5071 (vorrq_x_s16): Likewise.
5072 (vorrq_x_s32): Likewise.
5073 (vorrq_x_u8): Likewise.
5074 (vorrq_x_u16): Likewise.
5075 (vorrq_x_u32): Likewise.
5076 (vrev16q_x_s8): Likewise.
5077 (vrev16q_x_u8): Likewise.
5078 (vrev32q_x_s8): Likewise.
5079 (vrev32q_x_s16): Likewise.
5080 (vrev32q_x_u8): Likewise.
5081 (vrev32q_x_u16): Likewise.
5082 (vrev64q_x_s8): Likewise.
5083 (vrev64q_x_s16): Likewise.
5084 (vrev64q_x_s32): Likewise.
5085 (vrev64q_x_u8): Likewise.
5086 (vrev64q_x_u16): Likewise.
5087 (vrev64q_x_u32): Likewise.
5088 (vrshlq_x_s8): Likewise.
5089 (vrshlq_x_s16): Likewise.
5090 (vrshlq_x_s32): Likewise.
5091 (vrshlq_x_u8): Likewise.
5092 (vrshlq_x_u16): Likewise.
5093 (vrshlq_x_u32): Likewise.
5094 (vshllbq_x_n_s8): Likewise.
5095 (vshllbq_x_n_s16): Likewise.
5096 (vshllbq_x_n_u8): Likewise.
5097 (vshllbq_x_n_u16): Likewise.
5098 (vshlltq_x_n_s8): Likewise.
5099 (vshlltq_x_n_s16): Likewise.
5100 (vshlltq_x_n_u8): Likewise.
5101 (vshlltq_x_n_u16): Likewise.
5102 (vshlq_x_s8): Likewise.
5103 (vshlq_x_s16): Likewise.
5104 (vshlq_x_s32): Likewise.
5105 (vshlq_x_u8): Likewise.
5106 (vshlq_x_u16): Likewise.
5107 (vshlq_x_u32): Likewise.
5108 (vshlq_x_n_s8): Likewise.
5109 (vshlq_x_n_s16): Likewise.
5110 (vshlq_x_n_s32): Likewise.
5111 (vshlq_x_n_u8): Likewise.
5112 (vshlq_x_n_u16): Likewise.
5113 (vshlq_x_n_u32): Likewise.
5114 (vrshrq_x_n_s8): Likewise.
5115 (vrshrq_x_n_s16): Likewise.
5116 (vrshrq_x_n_s32): Likewise.
5117 (vrshrq_x_n_u8): Likewise.
5118 (vrshrq_x_n_u16): Likewise.
5119 (vrshrq_x_n_u32): Likewise.
5120 (vshrq_x_n_s8): Likewise.
5121 (vshrq_x_n_s16): Likewise.
5122 (vshrq_x_n_s32): Likewise.
5123 (vshrq_x_n_u8): Likewise.
5124 (vshrq_x_n_u16): Likewise.
5125 (vshrq_x_n_u32): Likewise.
5126 (vdupq_x_n_f16): Likewise.
5127 (vdupq_x_n_f32): Likewise.
5128 (vminnmq_x_f16): Likewise.
5129 (vminnmq_x_f32): Likewise.
5130 (vmaxnmq_x_f16): Likewise.
5131 (vmaxnmq_x_f32): Likewise.
5132 (vabdq_x_f16): Likewise.
5133 (vabdq_x_f32): Likewise.
5134 (vabsq_x_f16): Likewise.
5135 (vabsq_x_f32): Likewise.
5136 (vaddq_x_f16): Likewise.
5137 (vaddq_x_f32): Likewise.
5138 (vaddq_x_n_f16): Likewise.
5139 (vaddq_x_n_f32): Likewise.
5140 (vnegq_x_f16): Likewise.
5141 (vnegq_x_f32): Likewise.
5142 (vmulq_x_f16): Likewise.
5143 (vmulq_x_f32): Likewise.
5144 (vmulq_x_n_f16): Likewise.
5145 (vmulq_x_n_f32): Likewise.
5146 (vsubq_x_f16): Likewise.
5147 (vsubq_x_f32): Likewise.
5148 (vsubq_x_n_f16): Likewise.
5149 (vsubq_x_n_f32): Likewise.
5150 (vcaddq_rot90_x_f16): Likewise.
5151 (vcaddq_rot90_x_f32): Likewise.
5152 (vcaddq_rot270_x_f16): Likewise.
5153 (vcaddq_rot270_x_f32): Likewise.
5154 (vcmulq_x_f16): Likewise.
5155 (vcmulq_x_f32): Likewise.
5156 (vcmulq_rot90_x_f16): Likewise.
5157 (vcmulq_rot90_x_f32): Likewise.
5158 (vcmulq_rot180_x_f16): Likewise.
5159 (vcmulq_rot180_x_f32): Likewise.
5160 (vcmulq_rot270_x_f16): Likewise.
5161 (vcmulq_rot270_x_f32): Likewise.
5162 (vcvtaq_x_s16_f16): Likewise.
5163 (vcvtaq_x_s32_f32): Likewise.
5164 (vcvtaq_x_u16_f16): Likewise.
5165 (vcvtaq_x_u32_f32): Likewise.
5166 (vcvtnq_x_s16_f16): Likewise.
5167 (vcvtnq_x_s32_f32): Likewise.
5168 (vcvtnq_x_u16_f16): Likewise.
5169 (vcvtnq_x_u32_f32): Likewise.
5170 (vcvtpq_x_s16_f16): Likewise.
5171 (vcvtpq_x_s32_f32): Likewise.
5172 (vcvtpq_x_u16_f16): Likewise.
5173 (vcvtpq_x_u32_f32): Likewise.
5174 (vcvtmq_x_s16_f16): Likewise.
5175 (vcvtmq_x_s32_f32): Likewise.
5176 (vcvtmq_x_u16_f16): Likewise.
5177 (vcvtmq_x_u32_f32): Likewise.
5178 (vcvtbq_x_f32_f16): Likewise.
5179 (vcvttq_x_f32_f16): Likewise.
5180 (vcvtq_x_f16_u16): Likewise.
5181 (vcvtq_x_f16_s16): Likewise.
5182 (vcvtq_x_f32_s32): Likewise.
5183 (vcvtq_x_f32_u32): Likewise.
5184 (vcvtq_x_n_f16_s16): Likewise.
5185 (vcvtq_x_n_f16_u16): Likewise.
5186 (vcvtq_x_n_f32_s32): Likewise.
5187 (vcvtq_x_n_f32_u32): Likewise.
5188 (vcvtq_x_s16_f16): Likewise.
5189 (vcvtq_x_s32_f32): Likewise.
5190 (vcvtq_x_u16_f16): Likewise.
5191 (vcvtq_x_u32_f32): Likewise.
5192 (vcvtq_x_n_s16_f16): Likewise.
5193 (vcvtq_x_n_s32_f32): Likewise.
5194 (vcvtq_x_n_u16_f16): Likewise.
5195 (vcvtq_x_n_u32_f32): Likewise.
5196 (vrndq_x_f16): Likewise.
5197 (vrndq_x_f32): Likewise.
5198 (vrndnq_x_f16): Likewise.
5199 (vrndnq_x_f32): Likewise.
5200 (vrndmq_x_f16): Likewise.
5201 (vrndmq_x_f32): Likewise.
5202 (vrndpq_x_f16): Likewise.
5203 (vrndpq_x_f32): Likewise.
5204 (vrndaq_x_f16): Likewise.
5205 (vrndaq_x_f32): Likewise.
5206 (vrndxq_x_f16): Likewise.
5207 (vrndxq_x_f32): Likewise.
5208 (vandq_x_f16): Likewise.
5209 (vandq_x_f32): Likewise.
5210 (vbicq_x_f16): Likewise.
5211 (vbicq_x_f32): Likewise.
5212 (vbrsrq_x_n_f16): Likewise.
5213 (vbrsrq_x_n_f32): Likewise.
5214 (veorq_x_f16): Likewise.
5215 (veorq_x_f32): Likewise.
5216 (vornq_x_f16): Likewise.
5217 (vornq_x_f32): Likewise.
5218 (vorrq_x_f16): Likewise.
5219 (vorrq_x_f32): Likewise.
5220 (vrev32q_x_f16): Likewise.
5221 (vrev64q_x_f16): Likewise.
5222 (vrev64q_x_f32): Likewise.
5223 (__arm_vddupq_x_n_u8): Define intrinsic.
5224 (__arm_vddupq_x_n_u16): Likewise.
5225 (__arm_vddupq_x_n_u32): Likewise.
5226 (__arm_vddupq_x_wb_u8): Likewise.
5227 (__arm_vddupq_x_wb_u16): Likewise.
5228 (__arm_vddupq_x_wb_u32): Likewise.
5229 (__arm_vdwdupq_x_n_u8): Likewise.
5230 (__arm_vdwdupq_x_n_u16): Likewise.
5231 (__arm_vdwdupq_x_n_u32): Likewise.
5232 (__arm_vdwdupq_x_wb_u8): Likewise.
5233 (__arm_vdwdupq_x_wb_u16): Likewise.
5234 (__arm_vdwdupq_x_wb_u32): Likewise.
5235 (__arm_vidupq_x_n_u8): Likewise.
5236 (__arm_vidupq_x_n_u16): Likewise.
5237 (__arm_vidupq_x_n_u32): Likewise.
5238 (__arm_vidupq_x_wb_u8): Likewise.
5239 (__arm_vidupq_x_wb_u16): Likewise.
5240 (__arm_vidupq_x_wb_u32): Likewise.
5241 (__arm_viwdupq_x_n_u8): Likewise.
5242 (__arm_viwdupq_x_n_u16): Likewise.
5243 (__arm_viwdupq_x_n_u32): Likewise.
5244 (__arm_viwdupq_x_wb_u8): Likewise.
5245 (__arm_viwdupq_x_wb_u16): Likewise.
5246 (__arm_viwdupq_x_wb_u32): Likewise.
5247 (__arm_vdupq_x_n_s8): Likewise.
5248 (__arm_vdupq_x_n_s16): Likewise.
5249 (__arm_vdupq_x_n_s32): Likewise.
5250 (__arm_vdupq_x_n_u8): Likewise.
5251 (__arm_vdupq_x_n_u16): Likewise.
5252 (__arm_vdupq_x_n_u32): Likewise.
5253 (__arm_vminq_x_s8): Likewise.
5254 (__arm_vminq_x_s16): Likewise.
5255 (__arm_vminq_x_s32): Likewise.
5256 (__arm_vminq_x_u8): Likewise.
5257 (__arm_vminq_x_u16): Likewise.
5258 (__arm_vminq_x_u32): Likewise.
5259 (__arm_vmaxq_x_s8): Likewise.
5260 (__arm_vmaxq_x_s16): Likewise.
5261 (__arm_vmaxq_x_s32): Likewise.
5262 (__arm_vmaxq_x_u8): Likewise.
5263 (__arm_vmaxq_x_u16): Likewise.
5264 (__arm_vmaxq_x_u32): Likewise.
5265 (__arm_vabdq_x_s8): Likewise.
5266 (__arm_vabdq_x_s16): Likewise.
5267 (__arm_vabdq_x_s32): Likewise.
5268 (__arm_vabdq_x_u8): Likewise.
5269 (__arm_vabdq_x_u16): Likewise.
5270 (__arm_vabdq_x_u32): Likewise.
5271 (__arm_vabsq_x_s8): Likewise.
5272 (__arm_vabsq_x_s16): Likewise.
5273 (__arm_vabsq_x_s32): Likewise.
5274 (__arm_vaddq_x_s8): Likewise.
5275 (__arm_vaddq_x_s16): Likewise.
5276 (__arm_vaddq_x_s32): Likewise.
5277 (__arm_vaddq_x_n_s8): Likewise.
5278 (__arm_vaddq_x_n_s16): Likewise.
5279 (__arm_vaddq_x_n_s32): Likewise.
5280 (__arm_vaddq_x_u8): Likewise.
5281 (__arm_vaddq_x_u16): Likewise.
5282 (__arm_vaddq_x_u32): Likewise.
5283 (__arm_vaddq_x_n_u8): Likewise.
5284 (__arm_vaddq_x_n_u16): Likewise.
5285 (__arm_vaddq_x_n_u32): Likewise.
5286 (__arm_vclsq_x_s8): Likewise.
5287 (__arm_vclsq_x_s16): Likewise.
5288 (__arm_vclsq_x_s32): Likewise.
5289 (__arm_vclzq_x_s8): Likewise.
5290 (__arm_vclzq_x_s16): Likewise.
5291 (__arm_vclzq_x_s32): Likewise.
5292 (__arm_vclzq_x_u8): Likewise.
5293 (__arm_vclzq_x_u16): Likewise.
5294 (__arm_vclzq_x_u32): Likewise.
5295 (__arm_vnegq_x_s8): Likewise.
5296 (__arm_vnegq_x_s16): Likewise.
5297 (__arm_vnegq_x_s32): Likewise.
5298 (__arm_vmulhq_x_s8): Likewise.
5299 (__arm_vmulhq_x_s16): Likewise.
5300 (__arm_vmulhq_x_s32): Likewise.
5301 (__arm_vmulhq_x_u8): Likewise.
5302 (__arm_vmulhq_x_u16): Likewise.
5303 (__arm_vmulhq_x_u32): Likewise.
5304 (__arm_vmullbq_poly_x_p8): Likewise.
5305 (__arm_vmullbq_poly_x_p16): Likewise.
5306 (__arm_vmullbq_int_x_s8): Likewise.
5307 (__arm_vmullbq_int_x_s16): Likewise.
5308 (__arm_vmullbq_int_x_s32): Likewise.
5309 (__arm_vmullbq_int_x_u8): Likewise.
5310 (__arm_vmullbq_int_x_u16): Likewise.
5311 (__arm_vmullbq_int_x_u32): Likewise.
5312 (__arm_vmulltq_poly_x_p8): Likewise.
5313 (__arm_vmulltq_poly_x_p16): Likewise.
5314 (__arm_vmulltq_int_x_s8): Likewise.
5315 (__arm_vmulltq_int_x_s16): Likewise.
5316 (__arm_vmulltq_int_x_s32): Likewise.
5317 (__arm_vmulltq_int_x_u8): Likewise.
5318 (__arm_vmulltq_int_x_u16): Likewise.
5319 (__arm_vmulltq_int_x_u32): Likewise.
5320 (__arm_vmulq_x_s8): Likewise.
5321 (__arm_vmulq_x_s16): Likewise.
5322 (__arm_vmulq_x_s32): Likewise.
5323 (__arm_vmulq_x_n_s8): Likewise.
5324 (__arm_vmulq_x_n_s16): Likewise.
5325 (__arm_vmulq_x_n_s32): Likewise.
5326 (__arm_vmulq_x_u8): Likewise.
5327 (__arm_vmulq_x_u16): Likewise.
5328 (__arm_vmulq_x_u32): Likewise.
5329 (__arm_vmulq_x_n_u8): Likewise.
5330 (__arm_vmulq_x_n_u16): Likewise.
5331 (__arm_vmulq_x_n_u32): Likewise.
5332 (__arm_vsubq_x_s8): Likewise.
5333 (__arm_vsubq_x_s16): Likewise.
5334 (__arm_vsubq_x_s32): Likewise.
5335 (__arm_vsubq_x_n_s8): Likewise.
5336 (__arm_vsubq_x_n_s16): Likewise.
5337 (__arm_vsubq_x_n_s32): Likewise.
5338 (__arm_vsubq_x_u8): Likewise.
5339 (__arm_vsubq_x_u16): Likewise.
5340 (__arm_vsubq_x_u32): Likewise.
5341 (__arm_vsubq_x_n_u8): Likewise.
5342 (__arm_vsubq_x_n_u16): Likewise.
5343 (__arm_vsubq_x_n_u32): Likewise.
5344 (__arm_vcaddq_rot90_x_s8): Likewise.
5345 (__arm_vcaddq_rot90_x_s16): Likewise.
5346 (__arm_vcaddq_rot90_x_s32): Likewise.
5347 (__arm_vcaddq_rot90_x_u8): Likewise.
5348 (__arm_vcaddq_rot90_x_u16): Likewise.
5349 (__arm_vcaddq_rot90_x_u32): Likewise.
5350 (__arm_vcaddq_rot270_x_s8): Likewise.
5351 (__arm_vcaddq_rot270_x_s16): Likewise.
5352 (__arm_vcaddq_rot270_x_s32): Likewise.
5353 (__arm_vcaddq_rot270_x_u8): Likewise.
5354 (__arm_vcaddq_rot270_x_u16): Likewise.
5355 (__arm_vcaddq_rot270_x_u32): Likewise.
5356 (__arm_vhaddq_x_n_s8): Likewise.
5357 (__arm_vhaddq_x_n_s16): Likewise.
5358 (__arm_vhaddq_x_n_s32): Likewise.
5359 (__arm_vhaddq_x_n_u8): Likewise.
5360 (__arm_vhaddq_x_n_u16): Likewise.
5361 (__arm_vhaddq_x_n_u32): Likewise.
5362 (__arm_vhaddq_x_s8): Likewise.
5363 (__arm_vhaddq_x_s16): Likewise.
5364 (__arm_vhaddq_x_s32): Likewise.
5365 (__arm_vhaddq_x_u8): Likewise.
5366 (__arm_vhaddq_x_u16): Likewise.
5367 (__arm_vhaddq_x_u32): Likewise.
5368 (__arm_vhcaddq_rot90_x_s8): Likewise.
5369 (__arm_vhcaddq_rot90_x_s16): Likewise.
5370 (__arm_vhcaddq_rot90_x_s32): Likewise.
5371 (__arm_vhcaddq_rot270_x_s8): Likewise.
5372 (__arm_vhcaddq_rot270_x_s16): Likewise.
5373 (__arm_vhcaddq_rot270_x_s32): Likewise.
5374 (__arm_vhsubq_x_n_s8): Likewise.
5375 (__arm_vhsubq_x_n_s16): Likewise.
5376 (__arm_vhsubq_x_n_s32): Likewise.
5377 (__arm_vhsubq_x_n_u8): Likewise.
5378 (__arm_vhsubq_x_n_u16): Likewise.
5379 (__arm_vhsubq_x_n_u32): Likewise.
5380 (__arm_vhsubq_x_s8): Likewise.
5381 (__arm_vhsubq_x_s16): Likewise.
5382 (__arm_vhsubq_x_s32): Likewise.
5383 (__arm_vhsubq_x_u8): Likewise.
5384 (__arm_vhsubq_x_u16): Likewise.
5385 (__arm_vhsubq_x_u32): Likewise.
5386 (__arm_vrhaddq_x_s8): Likewise.
5387 (__arm_vrhaddq_x_s16): Likewise.
5388 (__arm_vrhaddq_x_s32): Likewise.
5389 (__arm_vrhaddq_x_u8): Likewise.
5390 (__arm_vrhaddq_x_u16): Likewise.
5391 (__arm_vrhaddq_x_u32): Likewise.
5392 (__arm_vrmulhq_x_s8): Likewise.
5393 (__arm_vrmulhq_x_s16): Likewise.
5394 (__arm_vrmulhq_x_s32): Likewise.
5395 (__arm_vrmulhq_x_u8): Likewise.
5396 (__arm_vrmulhq_x_u16): Likewise.
5397 (__arm_vrmulhq_x_u32): Likewise.
5398 (__arm_vandq_x_s8): Likewise.
5399 (__arm_vandq_x_s16): Likewise.
5400 (__arm_vandq_x_s32): Likewise.
5401 (__arm_vandq_x_u8): Likewise.
5402 (__arm_vandq_x_u16): Likewise.
5403 (__arm_vandq_x_u32): Likewise.
5404 (__arm_vbicq_x_s8): Likewise.
5405 (__arm_vbicq_x_s16): Likewise.
5406 (__arm_vbicq_x_s32): Likewise.
5407 (__arm_vbicq_x_u8): Likewise.
5408 (__arm_vbicq_x_u16): Likewise.
5409 (__arm_vbicq_x_u32): Likewise.
5410 (__arm_vbrsrq_x_n_s8): Likewise.
5411 (__arm_vbrsrq_x_n_s16): Likewise.
5412 (__arm_vbrsrq_x_n_s32): Likewise.
5413 (__arm_vbrsrq_x_n_u8): Likewise.
5414 (__arm_vbrsrq_x_n_u16): Likewise.
5415 (__arm_vbrsrq_x_n_u32): Likewise.
5416 (__arm_veorq_x_s8): Likewise.
5417 (__arm_veorq_x_s16): Likewise.
5418 (__arm_veorq_x_s32): Likewise.
5419 (__arm_veorq_x_u8): Likewise.
5420 (__arm_veorq_x_u16): Likewise.
5421 (__arm_veorq_x_u32): Likewise.
5422 (__arm_vmovlbq_x_s8): Likewise.
5423 (__arm_vmovlbq_x_s16): Likewise.
5424 (__arm_vmovlbq_x_u8): Likewise.
5425 (__arm_vmovlbq_x_u16): Likewise.
5426 (__arm_vmovltq_x_s8): Likewise.
5427 (__arm_vmovltq_x_s16): Likewise.
5428 (__arm_vmovltq_x_u8): Likewise.
5429 (__arm_vmovltq_x_u16): Likewise.
5430 (__arm_vmvnq_x_s8): Likewise.
5431 (__arm_vmvnq_x_s16): Likewise.
5432 (__arm_vmvnq_x_s32): Likewise.
5433 (__arm_vmvnq_x_u8): Likewise.
5434 (__arm_vmvnq_x_u16): Likewise.
5435 (__arm_vmvnq_x_u32): Likewise.
5436 (__arm_vmvnq_x_n_s16): Likewise.
5437 (__arm_vmvnq_x_n_s32): Likewise.
5438 (__arm_vmvnq_x_n_u16): Likewise.
5439 (__arm_vmvnq_x_n_u32): Likewise.
5440 (__arm_vornq_x_s8): Likewise.
5441 (__arm_vornq_x_s16): Likewise.
5442 (__arm_vornq_x_s32): Likewise.
5443 (__arm_vornq_x_u8): Likewise.
5444 (__arm_vornq_x_u16): Likewise.
5445 (__arm_vornq_x_u32): Likewise.
5446 (__arm_vorrq_x_s8): Likewise.
5447 (__arm_vorrq_x_s16): Likewise.
5448 (__arm_vorrq_x_s32): Likewise.
5449 (__arm_vorrq_x_u8): Likewise.
5450 (__arm_vorrq_x_u16): Likewise.
5451 (__arm_vorrq_x_u32): Likewise.
5452 (__arm_vrev16q_x_s8): Likewise.
5453 (__arm_vrev16q_x_u8): Likewise.
5454 (__arm_vrev32q_x_s8): Likewise.
5455 (__arm_vrev32q_x_s16): Likewise.
5456 (__arm_vrev32q_x_u8): Likewise.
5457 (__arm_vrev32q_x_u16): Likewise.
5458 (__arm_vrev64q_x_s8): Likewise.
5459 (__arm_vrev64q_x_s16): Likewise.
5460 (__arm_vrev64q_x_s32): Likewise.
5461 (__arm_vrev64q_x_u8): Likewise.
5462 (__arm_vrev64q_x_u16): Likewise.
5463 (__arm_vrev64q_x_u32): Likewise.
5464 (__arm_vrshlq_x_s8): Likewise.
5465 (__arm_vrshlq_x_s16): Likewise.
5466 (__arm_vrshlq_x_s32): Likewise.
5467 (__arm_vrshlq_x_u8): Likewise.
5468 (__arm_vrshlq_x_u16): Likewise.
5469 (__arm_vrshlq_x_u32): Likewise.
5470 (__arm_vshllbq_x_n_s8): Likewise.
5471 (__arm_vshllbq_x_n_s16): Likewise.
5472 (__arm_vshllbq_x_n_u8): Likewise.
5473 (__arm_vshllbq_x_n_u16): Likewise.
5474 (__arm_vshlltq_x_n_s8): Likewise.
5475 (__arm_vshlltq_x_n_s16): Likewise.
5476 (__arm_vshlltq_x_n_u8): Likewise.
5477 (__arm_vshlltq_x_n_u16): Likewise.
5478 (__arm_vshlq_x_s8): Likewise.
5479 (__arm_vshlq_x_s16): Likewise.
5480 (__arm_vshlq_x_s32): Likewise.
5481 (__arm_vshlq_x_u8): Likewise.
5482 (__arm_vshlq_x_u16): Likewise.
5483 (__arm_vshlq_x_u32): Likewise.
5484 (__arm_vshlq_x_n_s8): Likewise.
5485 (__arm_vshlq_x_n_s16): Likewise.
5486 (__arm_vshlq_x_n_s32): Likewise.
5487 (__arm_vshlq_x_n_u8): Likewise.
5488 (__arm_vshlq_x_n_u16): Likewise.
5489 (__arm_vshlq_x_n_u32): Likewise.
5490 (__arm_vrshrq_x_n_s8): Likewise.
5491 (__arm_vrshrq_x_n_s16): Likewise.
5492 (__arm_vrshrq_x_n_s32): Likewise.
5493 (__arm_vrshrq_x_n_u8): Likewise.
5494 (__arm_vrshrq_x_n_u16): Likewise.
5495 (__arm_vrshrq_x_n_u32): Likewise.
5496 (__arm_vshrq_x_n_s8): Likewise.
5497 (__arm_vshrq_x_n_s16): Likewise.
5498 (__arm_vshrq_x_n_s32): Likewise.
5499 (__arm_vshrq_x_n_u8): Likewise.
5500 (__arm_vshrq_x_n_u16): Likewise.
5501 (__arm_vshrq_x_n_u32): Likewise.
5502 (__arm_vdupq_x_n_f16): Likewise.
5503 (__arm_vdupq_x_n_f32): Likewise.
5504 (__arm_vminnmq_x_f16): Likewise.
5505 (__arm_vminnmq_x_f32): Likewise.
5506 (__arm_vmaxnmq_x_f16): Likewise.
5507 (__arm_vmaxnmq_x_f32): Likewise.
5508 (__arm_vabdq_x_f16): Likewise.
5509 (__arm_vabdq_x_f32): Likewise.
5510 (__arm_vabsq_x_f16): Likewise.
5511 (__arm_vabsq_x_f32): Likewise.
5512 (__arm_vaddq_x_f16): Likewise.
5513 (__arm_vaddq_x_f32): Likewise.
5514 (__arm_vaddq_x_n_f16): Likewise.
5515 (__arm_vaddq_x_n_f32): Likewise.
5516 (__arm_vnegq_x_f16): Likewise.
5517 (__arm_vnegq_x_f32): Likewise.
5518 (__arm_vmulq_x_f16): Likewise.
5519 (__arm_vmulq_x_f32): Likewise.
5520 (__arm_vmulq_x_n_f16): Likewise.
5521 (__arm_vmulq_x_n_f32): Likewise.
5522 (__arm_vsubq_x_f16): Likewise.
5523 (__arm_vsubq_x_f32): Likewise.
5524 (__arm_vsubq_x_n_f16): Likewise.
5525 (__arm_vsubq_x_n_f32): Likewise.
5526 (__arm_vcaddq_rot90_x_f16): Likewise.
5527 (__arm_vcaddq_rot90_x_f32): Likewise.
5528 (__arm_vcaddq_rot270_x_f16): Likewise.
5529 (__arm_vcaddq_rot270_x_f32): Likewise.
5530 (__arm_vcmulq_x_f16): Likewise.
5531 (__arm_vcmulq_x_f32): Likewise.
5532 (__arm_vcmulq_rot90_x_f16): Likewise.
5533 (__arm_vcmulq_rot90_x_f32): Likewise.
5534 (__arm_vcmulq_rot180_x_f16): Likewise.
5535 (__arm_vcmulq_rot180_x_f32): Likewise.
5536 (__arm_vcmulq_rot270_x_f16): Likewise.
5537 (__arm_vcmulq_rot270_x_f32): Likewise.
5538 (__arm_vcvtaq_x_s16_f16): Likewise.
5539 (__arm_vcvtaq_x_s32_f32): Likewise.
5540 (__arm_vcvtaq_x_u16_f16): Likewise.
5541 (__arm_vcvtaq_x_u32_f32): Likewise.
5542 (__arm_vcvtnq_x_s16_f16): Likewise.
5543 (__arm_vcvtnq_x_s32_f32): Likewise.
5544 (__arm_vcvtnq_x_u16_f16): Likewise.
5545 (__arm_vcvtnq_x_u32_f32): Likewise.
5546 (__arm_vcvtpq_x_s16_f16): Likewise.
5547 (__arm_vcvtpq_x_s32_f32): Likewise.
5548 (__arm_vcvtpq_x_u16_f16): Likewise.
5549 (__arm_vcvtpq_x_u32_f32): Likewise.
5550 (__arm_vcvtmq_x_s16_f16): Likewise.
5551 (__arm_vcvtmq_x_s32_f32): Likewise.
5552 (__arm_vcvtmq_x_u16_f16): Likewise.
5553 (__arm_vcvtmq_x_u32_f32): Likewise.
5554 (__arm_vcvtbq_x_f32_f16): Likewise.
5555 (__arm_vcvttq_x_f32_f16): Likewise.
5556 (__arm_vcvtq_x_f16_u16): Likewise.
5557 (__arm_vcvtq_x_f16_s16): Likewise.
5558 (__arm_vcvtq_x_f32_s32): Likewise.
5559 (__arm_vcvtq_x_f32_u32): Likewise.
5560 (__arm_vcvtq_x_n_f16_s16): Likewise.
5561 (__arm_vcvtq_x_n_f16_u16): Likewise.
5562 (__arm_vcvtq_x_n_f32_s32): Likewise.
5563 (__arm_vcvtq_x_n_f32_u32): Likewise.
5564 (__arm_vcvtq_x_s16_f16): Likewise.
5565 (__arm_vcvtq_x_s32_f32): Likewise.
5566 (__arm_vcvtq_x_u16_f16): Likewise.
5567 (__arm_vcvtq_x_u32_f32): Likewise.
5568 (__arm_vcvtq_x_n_s16_f16): Likewise.
5569 (__arm_vcvtq_x_n_s32_f32): Likewise.
5570 (__arm_vcvtq_x_n_u16_f16): Likewise.
5571 (__arm_vcvtq_x_n_u32_f32): Likewise.
5572 (__arm_vrndq_x_f16): Likewise.
5573 (__arm_vrndq_x_f32): Likewise.
5574 (__arm_vrndnq_x_f16): Likewise.
5575 (__arm_vrndnq_x_f32): Likewise.
5576 (__arm_vrndmq_x_f16): Likewise.
5577 (__arm_vrndmq_x_f32): Likewise.
5578 (__arm_vrndpq_x_f16): Likewise.
5579 (__arm_vrndpq_x_f32): Likewise.
5580 (__arm_vrndaq_x_f16): Likewise.
5581 (__arm_vrndaq_x_f32): Likewise.
5582 (__arm_vrndxq_x_f16): Likewise.
5583 (__arm_vrndxq_x_f32): Likewise.
5584 (__arm_vandq_x_f16): Likewise.
5585 (__arm_vandq_x_f32): Likewise.
5586 (__arm_vbicq_x_f16): Likewise.
5587 (__arm_vbicq_x_f32): Likewise.
5588 (__arm_vbrsrq_x_n_f16): Likewise.
5589 (__arm_vbrsrq_x_n_f32): Likewise.
5590 (__arm_veorq_x_f16): Likewise.
5591 (__arm_veorq_x_f32): Likewise.
5592 (__arm_vornq_x_f16): Likewise.
5593 (__arm_vornq_x_f32): Likewise.
5594 (__arm_vorrq_x_f16): Likewise.
5595 (__arm_vorrq_x_f32): Likewise.
5596 (__arm_vrev32q_x_f16): Likewise.
5597 (__arm_vrev64q_x_f16): Likewise.
5598 (__arm_vrev64q_x_f32): Likewise.
5599 (vabdq_x): Define polymorphic variant.
5600 (vabsq_x): Likewise.
5601 (vaddq_x): Likewise.
5602 (vandq_x): Likewise.
5603 (vbicq_x): Likewise.
5604 (vbrsrq_x): Likewise.
5605 (vcaddq_rot270_x): Likewise.
5606 (vcaddq_rot90_x): Likewise.
5607 (vcmulq_rot180_x): Likewise.
5608 (vcmulq_rot270_x): Likewise.
5609 (vcmulq_x): Likewise.
5610 (vcvtq_x): Likewise.
5611 (vcvtq_x_n): Likewise.
5612 (vcvtnq_m): Likewise.
5613 (veorq_x): Likewise.
5614 (vmaxnmq_x): Likewise.
5615 (vminnmq_x): Likewise.
5616 (vmulq_x): Likewise.
5617 (vnegq_x): Likewise.
5618 (vornq_x): Likewise.
5619 (vorrq_x): Likewise.
5620 (vrev32q_x): Likewise.
5621 (vrev64q_x): Likewise.
5622 (vrndaq_x): Likewise.
5623 (vrndmq_x): Likewise.
5624 (vrndnq_x): Likewise.
5625 (vrndpq_x): Likewise.
5626 (vrndq_x): Likewise.
5627 (vrndxq_x): Likewise.
5628 (vsubq_x): Likewise.
5629 (vcmulq_rot90_x): Likewise.
5630 (vadciq): Likewise.
5631 (vclsq_x): Likewise.
5632 (vclzq_x): Likewise.
5633 (vhaddq_x): Likewise.
5634 (vhcaddq_rot270_x): Likewise.
5635 (vhcaddq_rot90_x): Likewise.
5636 (vhsubq_x): Likewise.
5637 (vmaxq_x): Likewise.
5638 (vminq_x): Likewise.
5639 (vmovlbq_x): Likewise.
5640 (vmovltq_x): Likewise.
5641 (vmulhq_x): Likewise.
5642 (vmullbq_int_x): Likewise.
5643 (vmullbq_poly_x): Likewise.
5644 (vmulltq_int_x): Likewise.
5645 (vmulltq_poly_x): Likewise.
5646 (vmvnq_x): Likewise.
5647 (vrev16q_x): Likewise.
5648 (vrhaddq_x): Likewise.
5649 (vrmulhq_x): Likewise.
5650 (vrshlq_x): Likewise.
5651 (vrshrq_x): Likewise.
5652 (vshllbq_x): Likewise.
5653 (vshlltq_x): Likewise.
5654 (vshlq_x_n): Likewise.
5655 (vshlq_x): Likewise.
5656 (vdwdupq_x_u8): Likewise.
5657 (vdwdupq_x_u16): Likewise.
5658 (vdwdupq_x_u32): Likewise.
5659 (viwdupq_x_u8): Likewise.
5660 (viwdupq_x_u16): Likewise.
5661 (viwdupq_x_u32): Likewise.
5662 (vidupq_x_u8): Likewise.
5663 (vddupq_x_u8): Likewise.
5664 (vidupq_x_u16): Likewise.
5665 (vddupq_x_u16): Likewise.
5666 (vidupq_x_u32): Likewise.
5667 (vddupq_x_u32): Likewise.
5668 (vshrq_x): Likewise.
5669
5670 2020-03-20 Richard Biener <rguenther@suse.de>
5671
5672 * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts
5673 to vectorize for CTOR defs.
5674
5675 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5676 Andre Vieira <andre.simoesdiasvieira@arm.com>
5677 Mihail Ionescu <mihail.ionescu@arm.com>
5678
5679 * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin
5680 qualifier.
5681 (LDRGBWBU_QUALIFIERS): Likewise.
5682 (LDRGBWBS_Z_QUALIFIERS): Likewise.
5683 (LDRGBWBU_Z_QUALIFIERS): Likewise.
5684 (STRSBWBS_QUALIFIERS): Likewise.
5685 (STRSBWBU_QUALIFIERS): Likewise.
5686 (STRSBWBS_P_QUALIFIERS): Likewise.
5687 (STRSBWBU_P_QUALIFIERS): Likewise.
5688 * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro.
5689 (vldrdq_gather_base_wb_u64): Likewise.
5690 (vldrdq_gather_base_wb_z_s64): Likewise.
5691 (vldrdq_gather_base_wb_z_u64): Likewise.
5692 (vldrwq_gather_base_wb_f32): Likewise.
5693 (vldrwq_gather_base_wb_s32): Likewise.
5694 (vldrwq_gather_base_wb_u32): Likewise.
5695 (vldrwq_gather_base_wb_z_f32): Likewise.
5696 (vldrwq_gather_base_wb_z_s32): Likewise.
5697 (vldrwq_gather_base_wb_z_u32): Likewise.
5698 (vstrdq_scatter_base_wb_p_s64): Likewise.
5699 (vstrdq_scatter_base_wb_p_u64): Likewise.
5700 (vstrdq_scatter_base_wb_s64): Likewise.
5701 (vstrdq_scatter_base_wb_u64): Likewise.
5702 (vstrwq_scatter_base_wb_p_s32): Likewise.
5703 (vstrwq_scatter_base_wb_p_f32): Likewise.
5704 (vstrwq_scatter_base_wb_p_u32): Likewise.
5705 (vstrwq_scatter_base_wb_s32): Likewise.
5706 (vstrwq_scatter_base_wb_u32): Likewise.
5707 (vstrwq_scatter_base_wb_f32): Likewise.
5708 (__arm_vldrdq_gather_base_wb_s64): Define intrinsic.
5709 (__arm_vldrdq_gather_base_wb_u64): Likewise.
5710 (__arm_vldrdq_gather_base_wb_z_s64): Likewise.
5711 (__arm_vldrdq_gather_base_wb_z_u64): Likewise.
5712 (__arm_vldrwq_gather_base_wb_s32): Likewise.
5713 (__arm_vldrwq_gather_base_wb_u32): Likewise.
5714 (__arm_vldrwq_gather_base_wb_z_s32): Likewise.
5715 (__arm_vldrwq_gather_base_wb_z_u32): Likewise.
5716 (__arm_vstrdq_scatter_base_wb_s64): Likewise.
5717 (__arm_vstrdq_scatter_base_wb_u64): Likewise.
5718 (__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
5719 (__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
5720 (__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
5721 (__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
5722 (__arm_vstrwq_scatter_base_wb_s32): Likewise.
5723 (__arm_vstrwq_scatter_base_wb_u32): Likewise.
5724 (__arm_vldrwq_gather_base_wb_f32): Likewise.
5725 (__arm_vldrwq_gather_base_wb_z_f32): Likewise.
5726 (__arm_vstrwq_scatter_base_wb_f32): Likewise.
5727 (__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
5728 (vstrwq_scatter_base_wb): Define polymorphic variant.
5729 (vstrwq_scatter_base_wb_p): Likewise.
5730 (vstrdq_scatter_base_wb_p): Likewise.
5731 (vstrdq_scatter_base_wb): Likewise.
5732 * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin
5733 qualifier.
5734 * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL
5735 pattern.
5736 (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
5737 (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise.
5738 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
5739 (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
5740 (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise.
5741 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
5742 (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
5743 (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise.
5744 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
5745 (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
5746 (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise.
5747 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
5748 (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
5749 (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise.
5750 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
5751 (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
5752 (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise.
5753 (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise.
5754 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
5755 (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise.
5756 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
5757 (mve_vldrwq_gather_base_wb_fv4sf): Likewise.
5758 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
5759 (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise.
5760 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
5761 (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise.
5762 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
5763 (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise.
5764 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
5765
5766 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5767 Andre Vieira <andre.simoesdiasvieira@arm.com>
5768 Mihail Ionescu <mihail.ionescu@arm.com>
5769
5770 * config/arm/arm-builtins.c
5771 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary
5772 builtin qualifier.
5773 * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro.
5774 (vddupq_m_n_u32): Likewise.
5775 (vddupq_m_n_u16): Likewise.
5776 (vddupq_m_wb_u8): Likewise.
5777 (vddupq_m_wb_u16): Likewise.
5778 (vddupq_m_wb_u32): Likewise.
5779 (vddupq_n_u8): Likewise.
5780 (vddupq_n_u32): Likewise.
5781 (vddupq_n_u16): Likewise.
5782 (vddupq_wb_u8): Likewise.
5783 (vddupq_wb_u16): Likewise.
5784 (vddupq_wb_u32): Likewise.
5785 (vdwdupq_m_n_u8): Likewise.
5786 (vdwdupq_m_n_u32): Likewise.
5787 (vdwdupq_m_n_u16): Likewise.
5788 (vdwdupq_m_wb_u8): Likewise.
5789 (vdwdupq_m_wb_u32): Likewise.
5790 (vdwdupq_m_wb_u16): Likewise.
5791 (vdwdupq_n_u8): Likewise.
5792 (vdwdupq_n_u32): Likewise.
5793 (vdwdupq_n_u16): Likewise.
5794 (vdwdupq_wb_u8): Likewise.
5795 (vdwdupq_wb_u32): Likewise.
5796 (vdwdupq_wb_u16): Likewise.
5797 (vidupq_m_n_u8): Likewise.
5798 (vidupq_m_n_u32): Likewise.
5799 (vidupq_m_n_u16): Likewise.
5800 (vidupq_m_wb_u8): Likewise.
5801 (vidupq_m_wb_u16): Likewise.
5802 (vidupq_m_wb_u32): Likewise.
5803 (vidupq_n_u8): Likewise.
5804 (vidupq_n_u32): Likewise.
5805 (vidupq_n_u16): Likewise.
5806 (vidupq_wb_u8): Likewise.
5807 (vidupq_wb_u16): Likewise.
5808 (vidupq_wb_u32): Likewise.
5809 (viwdupq_m_n_u8): Likewise.
5810 (viwdupq_m_n_u32): Likewise.
5811 (viwdupq_m_n_u16): Likewise.
5812 (viwdupq_m_wb_u8): Likewise.
5813 (viwdupq_m_wb_u32): Likewise.
5814 (viwdupq_m_wb_u16): Likewise.
5815 (viwdupq_n_u8): Likewise.
5816 (viwdupq_n_u32): Likewise.
5817 (viwdupq_n_u16): Likewise.
5818 (viwdupq_wb_u8): Likewise.
5819 (viwdupq_wb_u32): Likewise.
5820 (viwdupq_wb_u16): Likewise.
5821 (__arm_vddupq_m_n_u8): Define intrinsic.
5822 (__arm_vddupq_m_n_u32): Likewise.
5823 (__arm_vddupq_m_n_u16): Likewise.
5824 (__arm_vddupq_m_wb_u8): Likewise.
5825 (__arm_vddupq_m_wb_u16): Likewise.
5826 (__arm_vddupq_m_wb_u32): Likewise.
5827 (__arm_vddupq_n_u8): Likewise.
5828 (__arm_vddupq_n_u32): Likewise.
5829 (__arm_vddupq_n_u16): Likewise.
5830 (__arm_vdwdupq_m_n_u8): Likewise.
5831 (__arm_vdwdupq_m_n_u32): Likewise.
5832 (__arm_vdwdupq_m_n_u16): Likewise.
5833 (__arm_vdwdupq_m_wb_u8): Likewise.
5834 (__arm_vdwdupq_m_wb_u32): Likewise.
5835 (__arm_vdwdupq_m_wb_u16): Likewise.
5836 (__arm_vdwdupq_n_u8): Likewise.
5837 (__arm_vdwdupq_n_u32): Likewise.
5838 (__arm_vdwdupq_n_u16): Likewise.
5839 (__arm_vdwdupq_wb_u8): Likewise.
5840 (__arm_vdwdupq_wb_u32): Likewise.
5841 (__arm_vdwdupq_wb_u16): Likewise.
5842 (__arm_vidupq_m_n_u8): Likewise.
5843 (__arm_vidupq_m_n_u32): Likewise.
5844 (__arm_vidupq_m_n_u16): Likewise.
5845 (__arm_vidupq_n_u8): Likewise.
5846 (__arm_vidupq_m_wb_u8): Likewise.
5847 (__arm_vidupq_m_wb_u16): Likewise.
5848 (__arm_vidupq_m_wb_u32): Likewise.
5849 (__arm_vidupq_n_u32): Likewise.
5850 (__arm_vidupq_n_u16): Likewise.
5851 (__arm_vidupq_wb_u8): Likewise.
5852 (__arm_vidupq_wb_u16): Likewise.
5853 (__arm_vidupq_wb_u32): Likewise.
5854 (__arm_vddupq_wb_u8): Likewise.
5855 (__arm_vddupq_wb_u16): Likewise.
5856 (__arm_vddupq_wb_u32): Likewise.
5857 (__arm_viwdupq_m_n_u8): Likewise.
5858 (__arm_viwdupq_m_n_u32): Likewise.
5859 (__arm_viwdupq_m_n_u16): Likewise.
5860 (__arm_viwdupq_m_wb_u8): Likewise.
5861 (__arm_viwdupq_m_wb_u32): Likewise.
5862 (__arm_viwdupq_m_wb_u16): Likewise.
5863 (__arm_viwdupq_n_u8): Likewise.
5864 (__arm_viwdupq_n_u32): Likewise.
5865 (__arm_viwdupq_n_u16): Likewise.
5866 (__arm_viwdupq_wb_u8): Likewise.
5867 (__arm_viwdupq_wb_u32): Likewise.
5868 (__arm_viwdupq_wb_u16): Likewise.
5869 (vidupq_m): Define polymorphic variant.
5870 (vddupq_m): Likewise.
5871 (vidupq_u16): Likewise.
5872 (vidupq_u32): Likewise.
5873 (vidupq_u8): Likewise.
5874 (vddupq_u16): Likewise.
5875 (vddupq_u32): Likewise.
5876 (vddupq_u8): Likewise.
5877 (viwdupq_m): Likewise.
5878 (viwdupq_u16): Likewise.
5879 (viwdupq_u32): Likewise.
5880 (viwdupq_u8): Likewise.
5881 (vdwdupq_m): Likewise.
5882 (vdwdupq_u16): Likewise.
5883 (vdwdupq_u32): Likewise.
5884 (vdwdupq_u8): Likewise.
5885 * config/arm/arm_mve_builtins.def
5886 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin
5887 qualifier.
5888 * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern.
5889 (mve_vidupq_u<mode>_insn): Likewise.
5890 (mve_vidupq_m_n_u<mode>): Likewise.
5891 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
5892 (mve_vddupq_n_u<mode>): Likewise.
5893 (mve_vddupq_u<mode>_insn): Likewise.
5894 (mve_vddupq_m_n_u<mode>): Likewise.
5895 (mve_vddupq_m_wb_u<mode>_insn): Likewise.
5896 (mve_vdwdupq_n_u<mode>): Likewise.
5897 (mve_vdwdupq_wb_u<mode>): Likewise.
5898 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
5899 (mve_vdwdupq_m_n_u<mode>): Likewise.
5900 (mve_vdwdupq_m_wb_u<mode>): Likewise.
5901 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
5902 (mve_viwdupq_n_u<mode>): Likewise.
5903 (mve_viwdupq_wb_u<mode>): Likewise.
5904 (mve_viwdupq_wb_u<mode>_insn): Likewise.
5905 (mve_viwdupq_m_n_u<mode>): Likewise.
5906 (mve_viwdupq_m_wb_u<mode>): Likewise.
5907 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
5908
5909 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5910
5911 * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro.
5912 (vreinterpretq_s16_s64): Likewise.
5913 (vreinterpretq_s16_s8): Likewise.
5914 (vreinterpretq_s16_u16): Likewise.
5915 (vreinterpretq_s16_u32): Likewise.
5916 (vreinterpretq_s16_u64): Likewise.
5917 (vreinterpretq_s16_u8): Likewise.
5918 (vreinterpretq_s32_s16): Likewise.
5919 (vreinterpretq_s32_s64): Likewise.
5920 (vreinterpretq_s32_s8): Likewise.
5921 (vreinterpretq_s32_u16): Likewise.
5922 (vreinterpretq_s32_u32): Likewise.
5923 (vreinterpretq_s32_u64): Likewise.
5924 (vreinterpretq_s32_u8): Likewise.
5925 (vreinterpretq_s64_s16): Likewise.
5926 (vreinterpretq_s64_s32): Likewise.
5927 (vreinterpretq_s64_s8): Likewise.
5928 (vreinterpretq_s64_u16): Likewise.
5929 (vreinterpretq_s64_u32): Likewise.
5930 (vreinterpretq_s64_u64): Likewise.
5931 (vreinterpretq_s64_u8): Likewise.
5932 (vreinterpretq_s8_s16): Likewise.
5933 (vreinterpretq_s8_s32): Likewise.
5934 (vreinterpretq_s8_s64): Likewise.
5935 (vreinterpretq_s8_u16): Likewise.
5936 (vreinterpretq_s8_u32): Likewise.
5937 (vreinterpretq_s8_u64): Likewise.
5938 (vreinterpretq_s8_u8): Likewise.
5939 (vreinterpretq_u16_s16): Likewise.
5940 (vreinterpretq_u16_s32): Likewise.
5941 (vreinterpretq_u16_s64): Likewise.
5942 (vreinterpretq_u16_s8): Likewise.
5943 (vreinterpretq_u16_u32): Likewise.
5944 (vreinterpretq_u16_u64): Likewise.
5945 (vreinterpretq_u16_u8): Likewise.
5946 (vreinterpretq_u32_s16): Likewise.
5947 (vreinterpretq_u32_s32): Likewise.
5948 (vreinterpretq_u32_s64): Likewise.
5949 (vreinterpretq_u32_s8): Likewise.
5950 (vreinterpretq_u32_u16): Likewise.
5951 (vreinterpretq_u32_u64): Likewise.
5952 (vreinterpretq_u32_u8): Likewise.
5953 (vreinterpretq_u64_s16): Likewise.
5954 (vreinterpretq_u64_s32): Likewise.
5955 (vreinterpretq_u64_s64): Likewise.
5956 (vreinterpretq_u64_s8): Likewise.
5957 (vreinterpretq_u64_u16): Likewise.
5958 (vreinterpretq_u64_u32): Likewise.
5959 (vreinterpretq_u64_u8): Likewise.
5960 (vreinterpretq_u8_s16): Likewise.
5961 (vreinterpretq_u8_s32): Likewise.
5962 (vreinterpretq_u8_s64): Likewise.
5963 (vreinterpretq_u8_s8): Likewise.
5964 (vreinterpretq_u8_u16): Likewise.
5965 (vreinterpretq_u8_u32): Likewise.
5966 (vreinterpretq_u8_u64): Likewise.
5967 (vreinterpretq_s32_f16): Likewise.
5968 (vreinterpretq_s32_f32): Likewise.
5969 (vreinterpretq_u16_f16): Likewise.
5970 (vreinterpretq_u16_f32): Likewise.
5971 (vreinterpretq_u32_f16): Likewise.
5972 (vreinterpretq_u32_f32): Likewise.
5973 (vreinterpretq_u64_f16): Likewise.
5974 (vreinterpretq_u64_f32): Likewise.
5975 (vreinterpretq_u8_f16): Likewise.
5976 (vreinterpretq_u8_f32): Likewise.
5977 (vreinterpretq_f16_f32): Likewise.
5978 (vreinterpretq_f16_s16): Likewise.
5979 (vreinterpretq_f16_s32): Likewise.
5980 (vreinterpretq_f16_s64): Likewise.
5981 (vreinterpretq_f16_s8): Likewise.
5982 (vreinterpretq_f16_u16): Likewise.
5983 (vreinterpretq_f16_u32): Likewise.
5984 (vreinterpretq_f16_u64): Likewise.
5985 (vreinterpretq_f16_u8): Likewise.
5986 (vreinterpretq_f32_f16): Likewise.
5987 (vreinterpretq_f32_s16): Likewise.
5988 (vreinterpretq_f32_s32): Likewise.
5989 (vreinterpretq_f32_s64): Likewise.
5990 (vreinterpretq_f32_s8): Likewise.
5991 (vreinterpretq_f32_u16): Likewise.
5992 (vreinterpretq_f32_u32): Likewise.
5993 (vreinterpretq_f32_u64): Likewise.
5994 (vreinterpretq_f32_u8): Likewise.
5995 (vreinterpretq_s16_f16): Likewise.
5996 (vreinterpretq_s16_f32): Likewise.
5997 (vreinterpretq_s64_f16): Likewise.
5998 (vreinterpretq_s64_f32): Likewise.
5999 (vreinterpretq_s8_f16): Likewise.
6000 (vreinterpretq_s8_f32): Likewise.
6001 (vuninitializedq_u8): Likewise.
6002 (vuninitializedq_u16): Likewise.
6003 (vuninitializedq_u32): Likewise.
6004 (vuninitializedq_u64): Likewise.
6005 (vuninitializedq_s8): Likewise.
6006 (vuninitializedq_s16): Likewise.
6007 (vuninitializedq_s32): Likewise.
6008 (vuninitializedq_s64): Likewise.
6009 (vuninitializedq_f16): Likewise.
6010 (vuninitializedq_f32): Likewise.
6011 (__arm_vuninitializedq_u8): Define intrinsic.
6012 (__arm_vuninitializedq_u16): Likewise.
6013 (__arm_vuninitializedq_u32): Likewise.
6014 (__arm_vuninitializedq_u64): Likewise.
6015 (__arm_vuninitializedq_s8): Likewise.
6016 (__arm_vuninitializedq_s16): Likewise.
6017 (__arm_vuninitializedq_s32): Likewise.
6018 (__arm_vuninitializedq_s64): Likewise.
6019 (__arm_vreinterpretq_s16_s32): Likewise.
6020 (__arm_vreinterpretq_s16_s64): Likewise.
6021 (__arm_vreinterpretq_s16_s8): Likewise.
6022 (__arm_vreinterpretq_s16_u16): Likewise.
6023 (__arm_vreinterpretq_s16_u32): Likewise.
6024 (__arm_vreinterpretq_s16_u64): Likewise.
6025 (__arm_vreinterpretq_s16_u8): Likewise.
6026 (__arm_vreinterpretq_s32_s16): Likewise.
6027 (__arm_vreinterpretq_s32_s64): Likewise.
6028 (__arm_vreinterpretq_s32_s8): Likewise.
6029 (__arm_vreinterpretq_s32_u16): Likewise.
6030 (__arm_vreinterpretq_s32_u32): Likewise.
6031 (__arm_vreinterpretq_s32_u64): Likewise.
6032 (__arm_vreinterpretq_s32_u8): Likewise.
6033 (__arm_vreinterpretq_s64_s16): Likewise.
6034 (__arm_vreinterpretq_s64_s32): Likewise.
6035 (__arm_vreinterpretq_s64_s8): Likewise.
6036 (__arm_vreinterpretq_s64_u16): Likewise.
6037 (__arm_vreinterpretq_s64_u32): Likewise.
6038 (__arm_vreinterpretq_s64_u64): Likewise.
6039 (__arm_vreinterpretq_s64_u8): Likewise.
6040 (__arm_vreinterpretq_s8_s16): Likewise.
6041 (__arm_vreinterpretq_s8_s32): Likewise.
6042 (__arm_vreinterpretq_s8_s64): Likewise.
6043 (__arm_vreinterpretq_s8_u16): Likewise.
6044 (__arm_vreinterpretq_s8_u32): Likewise.
6045 (__arm_vreinterpretq_s8_u64): Likewise.
6046 (__arm_vreinterpretq_s8_u8): Likewise.
6047 (__arm_vreinterpretq_u16_s16): Likewise.
6048 (__arm_vreinterpretq_u16_s32): Likewise.
6049 (__arm_vreinterpretq_u16_s64): Likewise.
6050 (__arm_vreinterpretq_u16_s8): Likewise.
6051 (__arm_vreinterpretq_u16_u32): Likewise.
6052 (__arm_vreinterpretq_u16_u64): Likewise.
6053 (__arm_vreinterpretq_u16_u8): Likewise.
6054 (__arm_vreinterpretq_u32_s16): Likewise.
6055 (__arm_vreinterpretq_u32_s32): Likewise.
6056 (__arm_vreinterpretq_u32_s64): Likewise.
6057 (__arm_vreinterpretq_u32_s8): Likewise.
6058 (__arm_vreinterpretq_u32_u16): Likewise.
6059 (__arm_vreinterpretq_u32_u64): Likewise.
6060 (__arm_vreinterpretq_u32_u8): Likewise.
6061 (__arm_vreinterpretq_u64_s16): Likewise.
6062 (__arm_vreinterpretq_u64_s32): Likewise.
6063 (__arm_vreinterpretq_u64_s64): Likewise.
6064 (__arm_vreinterpretq_u64_s8): Likewise.
6065 (__arm_vreinterpretq_u64_u16): Likewise.
6066 (__arm_vreinterpretq_u64_u32): Likewise.
6067 (__arm_vreinterpretq_u64_u8): Likewise.
6068 (__arm_vreinterpretq_u8_s16): Likewise.
6069 (__arm_vreinterpretq_u8_s32): Likewise.
6070 (__arm_vreinterpretq_u8_s64): Likewise.
6071 (__arm_vreinterpretq_u8_s8): Likewise.
6072 (__arm_vreinterpretq_u8_u16): Likewise.
6073 (__arm_vreinterpretq_u8_u32): Likewise.
6074 (__arm_vreinterpretq_u8_u64): Likewise.
6075 (__arm_vuninitializedq_f16): Likewise.
6076 (__arm_vuninitializedq_f32): Likewise.
6077 (__arm_vreinterpretq_s32_f16): Likewise.
6078 (__arm_vreinterpretq_s32_f32): Likewise.
6079 (__arm_vreinterpretq_s16_f16): Likewise.
6080 (__arm_vreinterpretq_s16_f32): Likewise.
6081 (__arm_vreinterpretq_s64_f16): Likewise.
6082 (__arm_vreinterpretq_s64_f32): Likewise.
6083 (__arm_vreinterpretq_s8_f16): Likewise.
6084 (__arm_vreinterpretq_s8_f32): Likewise.
6085 (__arm_vreinterpretq_u16_f16): Likewise.
6086 (__arm_vreinterpretq_u16_f32): Likewise.
6087 (__arm_vreinterpretq_u32_f16): Likewise.
6088 (__arm_vreinterpretq_u32_f32): Likewise.
6089 (__arm_vreinterpretq_u64_f16): Likewise.
6090 (__arm_vreinterpretq_u64_f32): Likewise.
6091 (__arm_vreinterpretq_u8_f16): Likewise.
6092 (__arm_vreinterpretq_u8_f32): Likewise.
6093 (__arm_vreinterpretq_f16_f32): Likewise.
6094 (__arm_vreinterpretq_f16_s16): Likewise.
6095 (__arm_vreinterpretq_f16_s32): Likewise.
6096 (__arm_vreinterpretq_f16_s64): Likewise.
6097 (__arm_vreinterpretq_f16_s8): Likewise.
6098 (__arm_vreinterpretq_f16_u16): Likewise.
6099 (__arm_vreinterpretq_f16_u32): Likewise.
6100 (__arm_vreinterpretq_f16_u64): Likewise.
6101 (__arm_vreinterpretq_f16_u8): Likewise.
6102 (__arm_vreinterpretq_f32_f16): Likewise.
6103 (__arm_vreinterpretq_f32_s16): Likewise.
6104 (__arm_vreinterpretq_f32_s32): Likewise.
6105 (__arm_vreinterpretq_f32_s64): Likewise.
6106 (__arm_vreinterpretq_f32_s8): Likewise.
6107 (__arm_vreinterpretq_f32_u16): Likewise.
6108 (__arm_vreinterpretq_f32_u32): Likewise.
6109 (__arm_vreinterpretq_f32_u64): Likewise.
6110 (__arm_vreinterpretq_f32_u8): Likewise.
6111 (vuninitializedq): Define polymorphic variant.
6112 (vreinterpretq_f16): Likewise.
6113 (vreinterpretq_f32): Likewise.
6114 (vreinterpretq_s16): Likewise.
6115 (vreinterpretq_s32): Likewise.
6116 (vreinterpretq_s64): Likewise.
6117 (vreinterpretq_s8): Likewise.
6118 (vreinterpretq_u16): Likewise.
6119 (vreinterpretq_u32): Likewise.
6120 (vreinterpretq_u64): Likewise.
6121 (vreinterpretq_u8): Likewise.
6122
6123 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6124 Andre Vieira <andre.simoesdiasvieira@arm.com>
6125 Mihail Ionescu <mihail.ionescu@arm.com>
6126
6127 * config/arm/arm_mve.h (vaddq_s8): Define macro.
6128 (vaddq_s16): Likewise.
6129 (vaddq_s32): Likewise.
6130 (vaddq_u8): Likewise.
6131 (vaddq_u16): Likewise.
6132 (vaddq_u32): Likewise.
6133 (vaddq_f16): Likewise.
6134 (vaddq_f32): Likewise.
6135 (__arm_vaddq_s8): Define intrinsic.
6136 (__arm_vaddq_s16): Likewise.
6137 (__arm_vaddq_s32): Likewise.
6138 (__arm_vaddq_u8): Likewise.
6139 (__arm_vaddq_u16): Likewise.
6140 (__arm_vaddq_u32): Likewise.
6141 (__arm_vaddq_f16): Likewise.
6142 (__arm_vaddq_f32): Likewise.
6143 (vaddq): Define polymorphic variant.
6144 * config/arm/iterators.md (VNIM): Define mode iterator for common types
6145 Neon, IWMMXT and MVE.
6146 (VNINOTM): Likewise.
6147 * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern.
6148 (mve_vaddq_f<mode>): Define RTL pattern.
6149 * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern.
6150 (addv8hf3_neon): Define RTL pattern.
6151 * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern
6152 to support MVE.
6153 (addv8hf3): Define standard RTL pattern for MVE and Neon.
6154 (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT.
6155
6156 2020-03-20 Martin Liska <mliska@suse.cz>
6157
6158 PR ipa/94232
6159 * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously
6160 build_ref_for_offset function was used and it transforms off to bytes
6161 from bits.
6162
6163 2020-03-20 Richard Biener <rguenther@suse.de>
6164
6165 PR tree-optimization/94266
6166 * gimple-ssa-sprintf.c (get_origin_and_offset): Use the
6167 type of the underlying object to adjust for the containing
6168 field if available.
6169
6170 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
6171
6172 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ...
6173 (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec.
6174 * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns.
6175
6176 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
6177
6178 * config/arm/mve.md (mve_mov<mode>): Fix R->R case.
6179
6180 2020-03-20 Jakub Jelinek <jakub@redhat.com>
6181
6182 PR tree-optimization/94224
6183 * gimple-ssa-store-merging.c
6184 (imm_store_chain_info::coalesce_immediate): Don't consider overlapping
6185 or adjacent INTEGER_CST rhs_code stores as mergeable if they have
6186 different lp_nr.
6187
6188 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
6189
6190 * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve.
6191
6192 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
6193
6194 PR ipa/94202
6195 * cgraph.c (cgraph_node::function_symbol): Fix availability computation.
6196 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6197
6198 2020-03-19 Jan Hubicka <hubicka@ucw.cz>
6199
6200 PR ipa/92372
6201 * cgraphunit.c (process_function_and_variable_attributes): warn
6202 for flatten attribute on alias.
6203 * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias.
6204
6205 2020-03-19 Martin Liska <mliska@suse.cz>
6206
6207 * lto-section-in.c: Add ext_symtab.
6208 * lto-streamer-out.c (write_symbol_extension_info): New.
6209 (produce_symtab_extension): New.
6210 (produce_asm_for_decls): Stream also produce_symtab_extension.
6211 * lto-streamer.h (enum lto_section_type): New section.
6212
6213 2020-03-19 Jakub Jelinek <jakub@redhat.com>
6214
6215 PR tree-optimization/94211
6216 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
6217 instead of estimate_num_insns for bb_seq (middle_bb). Rename
6218 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
6219 all uses.
6220
6221 2020-03-19 Richard Biener <rguenther@suse.de>
6222
6223 PR ipa/94217
6224 * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr
6225 and build_ref_for_offset.
6226
6227 2020-03-19 Richard Biener <rguenther@suse.de>
6228
6229 PR middle-end/94216
6230 * fold-const.c (fold_binary_loc): Avoid using
6231 build_fold_addr_expr when we really want an ADDR_EXPR.
6232
6233 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org>
6234
6235 * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
6236 aliases for "wa".
6237
6238 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
6239
6240 PR rtl-optimization/90275
6241 * cse.c (cse_insn): Delete no-op register moves too.
6242
6243 2020-03-18 Martin Sebor <msebor@redhat.com>
6244
6245 PR ipa/92799
6246 * cgraphunit.c (process_function_and_variable_attributes): Also
6247 complain about weakref function definitions and drop all effects
6248 of the attribute.
6249
6250 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6251 Mihail Ionescu <mihail.ionescu@arm.com>
6252 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6253
6254 * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro.
6255 (vstrdq_scatter_base_p_u64): Likewise.
6256 (vstrdq_scatter_base_s64): Likewise.
6257 (vstrdq_scatter_base_u64): Likewise.
6258 (vstrdq_scatter_offset_p_s64): Likewise.
6259 (vstrdq_scatter_offset_p_u64): Likewise.
6260 (vstrdq_scatter_offset_s64): Likewise.
6261 (vstrdq_scatter_offset_u64): Likewise.
6262 (vstrdq_scatter_shifted_offset_p_s64): Likewise.
6263 (vstrdq_scatter_shifted_offset_p_u64): Likewise.
6264 (vstrdq_scatter_shifted_offset_s64): Likewise.
6265 (vstrdq_scatter_shifted_offset_u64): Likewise.
6266 (vstrhq_scatter_offset_f16): Likewise.
6267 (vstrhq_scatter_offset_p_f16): Likewise.
6268 (vstrhq_scatter_shifted_offset_f16): Likewise.
6269 (vstrhq_scatter_shifted_offset_p_f16): Likewise.
6270 (vstrwq_scatter_base_f32): Likewise.
6271 (vstrwq_scatter_base_p_f32): Likewise.
6272 (vstrwq_scatter_offset_f32): Likewise.
6273 (vstrwq_scatter_offset_p_f32): Likewise.
6274 (vstrwq_scatter_offset_p_s32): Likewise.
6275 (vstrwq_scatter_offset_p_u32): Likewise.
6276 (vstrwq_scatter_offset_s32): Likewise.
6277 (vstrwq_scatter_offset_u32): Likewise.
6278 (vstrwq_scatter_shifted_offset_f32): Likewise.
6279 (vstrwq_scatter_shifted_offset_p_f32): Likewise.
6280 (vstrwq_scatter_shifted_offset_p_s32): Likewise.
6281 (vstrwq_scatter_shifted_offset_p_u32): Likewise.
6282 (vstrwq_scatter_shifted_offset_s32): Likewise.
6283 (vstrwq_scatter_shifted_offset_u32): Likewise.
6284 (__arm_vstrdq_scatter_base_p_s64): Define intrinsic.
6285 (__arm_vstrdq_scatter_base_p_u64): Likewise.
6286 (__arm_vstrdq_scatter_base_s64): Likewise.
6287 (__arm_vstrdq_scatter_base_u64): Likewise.
6288 (__arm_vstrdq_scatter_offset_p_s64): Likewise.
6289 (__arm_vstrdq_scatter_offset_p_u64): Likewise.
6290 (__arm_vstrdq_scatter_offset_s64): Likewise.
6291 (__arm_vstrdq_scatter_offset_u64): Likewise.
6292 (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise.
6293 (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise.
6294 (__arm_vstrdq_scatter_shifted_offset_s64): Likewise.
6295 (__arm_vstrdq_scatter_shifted_offset_u64): Likewise.
6296 (__arm_vstrwq_scatter_offset_p_s32): Likewise.
6297 (__arm_vstrwq_scatter_offset_p_u32): Likewise.
6298 (__arm_vstrwq_scatter_offset_s32): Likewise.
6299 (__arm_vstrwq_scatter_offset_u32): Likewise.
6300 (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise.
6301 (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise.
6302 (__arm_vstrwq_scatter_shifted_offset_s32): Likewise.
6303 (__arm_vstrwq_scatter_shifted_offset_u32): Likewise.
6304 (__arm_vstrhq_scatter_offset_f16): Likewise.
6305 (__arm_vstrhq_scatter_offset_p_f16): Likewise.
6306 (__arm_vstrhq_scatter_shifted_offset_f16): Likewise.
6307 (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise.
6308 (__arm_vstrwq_scatter_base_f32): Likewise.
6309 (__arm_vstrwq_scatter_base_p_f32): Likewise.
6310 (__arm_vstrwq_scatter_offset_f32): Likewise.
6311 (__arm_vstrwq_scatter_offset_p_f32): Likewise.
6312 (__arm_vstrwq_scatter_shifted_offset_f32): Likewise.
6313 (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise.
6314 (vstrhq_scatter_offset): Define polymorphic variant.
6315 (vstrhq_scatter_offset_p): Likewise.
6316 (vstrhq_scatter_shifted_offset): Likewise.
6317 (vstrhq_scatter_shifted_offset_p): Likewise.
6318 (vstrwq_scatter_base): Likewise.
6319 (vstrwq_scatter_base_p): Likewise.
6320 (vstrwq_scatter_offset): Likewise.
6321 (vstrwq_scatter_offset_p): Likewise.
6322 (vstrwq_scatter_shifted_offset): Likewise.
6323 (vstrwq_scatter_shifted_offset_p): Likewise.
6324 (vstrdq_scatter_base_p): Likewise.
6325 (vstrdq_scatter_base): Likewise.
6326 (vstrdq_scatter_offset_p): Likewise.
6327 (vstrdq_scatter_offset): Likewise.
6328 (vstrdq_scatter_shifted_offset_p): Likewise.
6329 (vstrdq_scatter_shifted_offset): Likewise.
6330 * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier.
6331 (STRSBS_P): Likewise.
6332 (STRSBU): Likewise.
6333 (STRSBU_P): Likewise.
6334 (STRSS): Likewise.
6335 (STRSS_P): Likewise.
6336 (STRSU): Likewise.
6337 (STRSU_P): Likewise.
6338 * config/arm/constraints.md (Ri): Define.
6339 * config/arm/mve.md (VSTRDSBQ): Define iterator.
6340 (VSTRDSOQ): Likewise.
6341 (VSTRDSSOQ): Likewise.
6342 (VSTRWSOQ): Likewise.
6343 (VSTRWSSOQ): Likewise.
6344 (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern.
6345 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
6346 (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
6347 (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
6348 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
6349 (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
6350 (mve_vstrhq_scatter_offset_fv8hf): Likewise.
6351 (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
6352 (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
6353 (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
6354 (mve_vstrwq_scatter_base_fv4sf): Likewise.
6355 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
6356 (mve_vstrwq_scatter_offset_fv4sf): Likewise.
6357 (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
6358 (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
6359 (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
6360 (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
6361 (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
6362 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
6363 (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
6364 * config/arm/predicates.md (Ri): Define predicate to check immediate
6365 is the range +/-1016 and multiple of 8.
6366
6367 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6368 Mihail Ionescu <mihail.ionescu@arm.com>
6369 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6370
6371 * config/arm/arm_mve.h (vst1q_f32): Define macro.
6372 (vst1q_f16): Likewise.
6373 (vst1q_s8): Likewise.
6374 (vst1q_s32): Likewise.
6375 (vst1q_s16): Likewise.
6376 (vst1q_u8): Likewise.
6377 (vst1q_u32): Likewise.
6378 (vst1q_u16): Likewise.
6379 (vstrhq_f16): Likewise.
6380 (vstrhq_scatter_offset_s32): Likewise.
6381 (vstrhq_scatter_offset_s16): Likewise.
6382 (vstrhq_scatter_offset_u32): Likewise.
6383 (vstrhq_scatter_offset_u16): Likewise.
6384 (vstrhq_scatter_offset_p_s32): Likewise.
6385 (vstrhq_scatter_offset_p_s16): Likewise.
6386 (vstrhq_scatter_offset_p_u32): Likewise.
6387 (vstrhq_scatter_offset_p_u16): Likewise.
6388 (vstrhq_scatter_shifted_offset_s32): Likewise.
6389 (vstrhq_scatter_shifted_offset_s16): Likewise.
6390 (vstrhq_scatter_shifted_offset_u32): Likewise.
6391 (vstrhq_scatter_shifted_offset_u16): Likewise.
6392 (vstrhq_scatter_shifted_offset_p_s32): Likewise.
6393 (vstrhq_scatter_shifted_offset_p_s16): Likewise.
6394 (vstrhq_scatter_shifted_offset_p_u32): Likewise.
6395 (vstrhq_scatter_shifted_offset_p_u16): Likewise.
6396 (vstrhq_s32): Likewise.
6397 (vstrhq_s16): Likewise.
6398 (vstrhq_u32): Likewise.
6399 (vstrhq_u16): Likewise.
6400 (vstrhq_p_f16): Likewise.
6401 (vstrhq_p_s32): Likewise.
6402 (vstrhq_p_s16): Likewise.
6403 (vstrhq_p_u32): Likewise.
6404 (vstrhq_p_u16): Likewise.
6405 (vstrwq_f32): Likewise.
6406 (vstrwq_s32): Likewise.
6407 (vstrwq_u32): Likewise.
6408 (vstrwq_p_f32): Likewise.
6409 (vstrwq_p_s32): Likewise.
6410 (vstrwq_p_u32): Likewise.
6411 (__arm_vst1q_s8): Define intrinsic.
6412 (__arm_vst1q_s32): Likewise.
6413 (__arm_vst1q_s16): Likewise.
6414 (__arm_vst1q_u8): Likewise.
6415 (__arm_vst1q_u32): Likewise.
6416 (__arm_vst1q_u16): Likewise.
6417 (__arm_vstrhq_scatter_offset_s32): Likewise.
6418 (__arm_vstrhq_scatter_offset_s16): Likewise.
6419 (__arm_vstrhq_scatter_offset_u32): Likewise.
6420 (__arm_vstrhq_scatter_offset_u16): Likewise.
6421 (__arm_vstrhq_scatter_offset_p_s32): Likewise.
6422 (__arm_vstrhq_scatter_offset_p_s16): Likewise.
6423 (__arm_vstrhq_scatter_offset_p_u32): Likewise.
6424 (__arm_vstrhq_scatter_offset_p_u16): Likewise.
6425 (__arm_vstrhq_scatter_shifted_offset_s32): Likewise.
6426 (__arm_vstrhq_scatter_shifted_offset_s16): Likewise.
6427 (__arm_vstrhq_scatter_shifted_offset_u32): Likewise.
6428 (__arm_vstrhq_scatter_shifted_offset_u16): Likewise.
6429 (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise.
6430 (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise.
6431 (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise.
6432 (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise.
6433 (__arm_vstrhq_s32): Likewise.
6434 (__arm_vstrhq_s16): Likewise.
6435 (__arm_vstrhq_u32): Likewise.
6436 (__arm_vstrhq_u16): Likewise.
6437 (__arm_vstrhq_p_s32): Likewise.
6438 (__arm_vstrhq_p_s16): Likewise.
6439 (__arm_vstrhq_p_u32): Likewise.
6440 (__arm_vstrhq_p_u16): Likewise.
6441 (__arm_vstrwq_s32): Likewise.
6442 (__arm_vstrwq_u32): Likewise.
6443 (__arm_vstrwq_p_s32): Likewise.
6444 (__arm_vstrwq_p_u32): Likewise.
6445 (__arm_vstrwq_p_f32): Likewise.
6446 (__arm_vstrwq_f32): Likewise.
6447 (__arm_vst1q_f32): Likewise.
6448 (__arm_vst1q_f16): Likewise.
6449 (__arm_vstrhq_f16): Likewise.
6450 (__arm_vstrhq_p_f16): Likewise.
6451 (vst1q): Define polymorphic variant.
6452 (vstrhq): Likewise.
6453 (vstrhq_p): Likewise.
6454 (vstrhq_scatter_offset_p): Likewise.
6455 (vstrhq_scatter_offset): Likewise.
6456 (vstrhq_scatter_shifted_offset_p): Likewise.
6457 (vstrhq_scatter_shifted_offset): Likewise.
6458 (vstrwq_p): Likewise.
6459 (vstrwq): Likewise.
6460 * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier.
6461 (STRS_P): Likewise.
6462 (STRSS): Likewise.
6463 (STRSS_P): Likewise.
6464 (STRSU): Likewise.
6465 (STRSU_P): Likewise.
6466 (STRU): Likewise.
6467 (STRU_P): Likewise.
6468 * config/arm/mve.md (VST1Q): Define iterator.
6469 (VSTRHSOQ): Likewise.
6470 (VSTRHSSOQ): Likewise.
6471 (VSTRHQ): Likewise.
6472 (VSTRWQ): Likewise.
6473 (mve_vstrhq_fv8hf): Define RTL pattern.
6474 (mve_vstrhq_p_fv8hf): Likewise.
6475 (mve_vstrhq_p_<supf><mode>): Likewise.
6476 (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise.
6477 (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
6478 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
6479 (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
6480 (mve_vstrhq_<supf><mode>): Likewise.
6481 (mve_vstrwq_fv4sf): Likewise.
6482 (mve_vstrwq_p_fv4sf): Likewise.
6483 (mve_vstrwq_p_<supf>v4si): Likewise.
6484 (mve_vstrwq_<supf>v4si): Likewise.
6485 (mve_vst1q_f<mode>): Define expand.
6486 (mve_vst1q_<supf><mode>): Likewise.
6487
6488 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6489 Mihail Ionescu <mihail.ionescu@arm.com>
6490 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6491
6492 * config/arm/arm_mve.h (vld1q_s8): Define macro.
6493 (vld1q_s32): Likewise.
6494 (vld1q_s16): Likewise.
6495 (vld1q_u8): Likewise.
6496 (vld1q_u32): Likewise.
6497 (vld1q_u16): Likewise.
6498 (vldrhq_gather_offset_s32): Likewise.
6499 (vldrhq_gather_offset_s16): Likewise.
6500 (vldrhq_gather_offset_u32): Likewise.
6501 (vldrhq_gather_offset_u16): Likewise.
6502 (vldrhq_gather_offset_z_s32): Likewise.
6503 (vldrhq_gather_offset_z_s16): Likewise.
6504 (vldrhq_gather_offset_z_u32): Likewise.
6505 (vldrhq_gather_offset_z_u16): Likewise.
6506 (vldrhq_gather_shifted_offset_s32): Likewise.
6507 (vldrhq_gather_shifted_offset_s16): Likewise.
6508 (vldrhq_gather_shifted_offset_u32): Likewise.
6509 (vldrhq_gather_shifted_offset_u16): Likewise.
6510 (vldrhq_gather_shifted_offset_z_s32): Likewise.
6511 (vldrhq_gather_shifted_offset_z_s16): Likewise.
6512 (vldrhq_gather_shifted_offset_z_u32): Likewise.
6513 (vldrhq_gather_shifted_offset_z_u16): Likewise.
6514 (vldrhq_s32): Likewise.
6515 (vldrhq_s16): Likewise.
6516 (vldrhq_u32): Likewise.
6517 (vldrhq_u16): Likewise.
6518 (vldrhq_z_s32): Likewise.
6519 (vldrhq_z_s16): Likewise.
6520 (vldrhq_z_u32): Likewise.
6521 (vldrhq_z_u16): Likewise.
6522 (vldrwq_s32): Likewise.
6523 (vldrwq_u32): Likewise.
6524 (vldrwq_z_s32): Likewise.
6525 (vldrwq_z_u32): Likewise.
6526 (vld1q_f32): Likewise.
6527 (vld1q_f16): Likewise.
6528 (vldrhq_f16): Likewise.
6529 (vldrhq_z_f16): Likewise.
6530 (vldrwq_f32): Likewise.
6531 (vldrwq_z_f32): Likewise.
6532 (__arm_vld1q_s8): Define intrinsic.
6533 (__arm_vld1q_s32): Likewise.
6534 (__arm_vld1q_s16): Likewise.
6535 (__arm_vld1q_u8): Likewise.
6536 (__arm_vld1q_u32): Likewise.
6537 (__arm_vld1q_u16): Likewise.
6538 (__arm_vldrhq_gather_offset_s32): Likewise.
6539 (__arm_vldrhq_gather_offset_s16): Likewise.
6540 (__arm_vldrhq_gather_offset_u32): Likewise.
6541 (__arm_vldrhq_gather_offset_u16): Likewise.
6542 (__arm_vldrhq_gather_offset_z_s32): Likewise.
6543 (__arm_vldrhq_gather_offset_z_s16): Likewise.
6544 (__arm_vldrhq_gather_offset_z_u32): Likewise.
6545 (__arm_vldrhq_gather_offset_z_u16): Likewise.
6546 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
6547 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
6548 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
6549 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
6550 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
6551 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
6552 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
6553 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
6554 (__arm_vldrhq_s32): Likewise.
6555 (__arm_vldrhq_s16): Likewise.
6556 (__arm_vldrhq_u32): Likewise.
6557 (__arm_vldrhq_u16): Likewise.
6558 (__arm_vldrhq_z_s32): Likewise.
6559 (__arm_vldrhq_z_s16): Likewise.
6560 (__arm_vldrhq_z_u32): Likewise.
6561 (__arm_vldrhq_z_u16): Likewise.
6562 (__arm_vldrwq_s32): Likewise.
6563 (__arm_vldrwq_u32): Likewise.
6564 (__arm_vldrwq_z_s32): Likewise.
6565 (__arm_vldrwq_z_u32): Likewise.
6566 (__arm_vld1q_f32): Likewise.
6567 (__arm_vld1q_f16): Likewise.
6568 (__arm_vldrwq_f32): Likewise.
6569 (__arm_vldrwq_z_f32): Likewise.
6570 (__arm_vldrhq_z_f16): Likewise.
6571 (__arm_vldrhq_f16): Likewise.
6572 (vld1q): Define polymorphic variant.
6573 (vldrhq_gather_offset): Likewise.
6574 (vldrhq_gather_offset_z): Likewise.
6575 (vldrhq_gather_shifted_offset): Likewise.
6576 (vldrhq_gather_shifted_offset_z): Likewise.
6577 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
6578 (LDRS): Likewise.
6579 (LDRU_Z): Likewise.
6580 (LDRS_Z): Likewise.
6581 (LDRGU_Z): Likewise.
6582 (LDRGU): Likewise.
6583 (LDRGS_Z): Likewise.
6584 (LDRGS): Likewise.
6585 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
6586 (V_sz_elem1): Likewise.
6587 (VLD1Q): Define iterator.
6588 (VLDRHGOQ): Likewise.
6589 (VLDRHGSOQ): Likewise.
6590 (VLDRHQ): Likewise.
6591 (VLDRWQ): Likewise.
6592 (mve_vldrhq_fv8hf): Define RTL pattern.
6593 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
6594 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
6595 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
6596 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
6597 (mve_vldrhq_<supf><mode>): Likewise.
6598 (mve_vldrhq_z_fv8hf): Likewise.
6599 (mve_vldrhq_z_<supf><mode>): Likewise.
6600 (mve_vldrwq_fv4sf): Likewise.
6601 (mve_vldrwq_<supf>v4si): Likewise.
6602 (mve_vldrwq_z_fv4sf): Likewise.
6603 (mve_vldrwq_z_<supf>v4si): Likewise.
6604 (mve_vld1q_f<mode>): Define RTL expand pattern.
6605 (mve_vld1q_<supf><mode>): Likewise.
6606
6607 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6608 Mihail Ionescu <mihail.ionescu@arm.com>
6609 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6610
6611 * config/arm/arm_mve.h (vld1q_s8): Define macro.
6612 (vld1q_s32): Likewise.
6613 (vld1q_s16): Likewise.
6614 (vld1q_u8): Likewise.
6615 (vld1q_u32): Likewise.
6616 (vld1q_u16): Likewise.
6617 (vldrhq_gather_offset_s32): Likewise.
6618 (vldrhq_gather_offset_s16): Likewise.
6619 (vldrhq_gather_offset_u32): Likewise.
6620 (vldrhq_gather_offset_u16): Likewise.
6621 (vldrhq_gather_offset_z_s32): Likewise.
6622 (vldrhq_gather_offset_z_s16): Likewise.
6623 (vldrhq_gather_offset_z_u32): Likewise.
6624 (vldrhq_gather_offset_z_u16): Likewise.
6625 (vldrhq_gather_shifted_offset_s32): Likewise.
6626 (vldrhq_gather_shifted_offset_s16): Likewise.
6627 (vldrhq_gather_shifted_offset_u32): Likewise.
6628 (vldrhq_gather_shifted_offset_u16): Likewise.
6629 (vldrhq_gather_shifted_offset_z_s32): Likewise.
6630 (vldrhq_gather_shifted_offset_z_s16): Likewise.
6631 (vldrhq_gather_shifted_offset_z_u32): Likewise.
6632 (vldrhq_gather_shifted_offset_z_u16): Likewise.
6633 (vldrhq_s32): Likewise.
6634 (vldrhq_s16): Likewise.
6635 (vldrhq_u32): Likewise.
6636 (vldrhq_u16): Likewise.
6637 (vldrhq_z_s32): Likewise.
6638 (vldrhq_z_s16): Likewise.
6639 (vldrhq_z_u32): Likewise.
6640 (vldrhq_z_u16): Likewise.
6641 (vldrwq_s32): Likewise.
6642 (vldrwq_u32): Likewise.
6643 (vldrwq_z_s32): Likewise.
6644 (vldrwq_z_u32): Likewise.
6645 (vld1q_f32): Likewise.
6646 (vld1q_f16): Likewise.
6647 (vldrhq_f16): Likewise.
6648 (vldrhq_z_f16): Likewise.
6649 (vldrwq_f32): Likewise.
6650 (vldrwq_z_f32): Likewise.
6651 (__arm_vld1q_s8): Define intrinsic.
6652 (__arm_vld1q_s32): Likewise.
6653 (__arm_vld1q_s16): Likewise.
6654 (__arm_vld1q_u8): Likewise.
6655 (__arm_vld1q_u32): Likewise.
6656 (__arm_vld1q_u16): Likewise.
6657 (__arm_vldrhq_gather_offset_s32): Likewise.
6658 (__arm_vldrhq_gather_offset_s16): Likewise.
6659 (__arm_vldrhq_gather_offset_u32): Likewise.
6660 (__arm_vldrhq_gather_offset_u16): Likewise.
6661 (__arm_vldrhq_gather_offset_z_s32): Likewise.
6662 (__arm_vldrhq_gather_offset_z_s16): Likewise.
6663 (__arm_vldrhq_gather_offset_z_u32): Likewise.
6664 (__arm_vldrhq_gather_offset_z_u16): Likewise.
6665 (__arm_vldrhq_gather_shifted_offset_s32): Likewise.
6666 (__arm_vldrhq_gather_shifted_offset_s16): Likewise.
6667 (__arm_vldrhq_gather_shifted_offset_u32): Likewise.
6668 (__arm_vldrhq_gather_shifted_offset_u16): Likewise.
6669 (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise.
6670 (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise.
6671 (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise.
6672 (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise.
6673 (__arm_vldrhq_s32): Likewise.
6674 (__arm_vldrhq_s16): Likewise.
6675 (__arm_vldrhq_u32): Likewise.
6676 (__arm_vldrhq_u16): Likewise.
6677 (__arm_vldrhq_z_s32): Likewise.
6678 (__arm_vldrhq_z_s16): Likewise.
6679 (__arm_vldrhq_z_u32): Likewise.
6680 (__arm_vldrhq_z_u16): Likewise.
6681 (__arm_vldrwq_s32): Likewise.
6682 (__arm_vldrwq_u32): Likewise.
6683 (__arm_vldrwq_z_s32): Likewise.
6684 (__arm_vldrwq_z_u32): Likewise.
6685 (__arm_vld1q_f32): Likewise.
6686 (__arm_vld1q_f16): Likewise.
6687 (__arm_vldrwq_f32): Likewise.
6688 (__arm_vldrwq_z_f32): Likewise.
6689 (__arm_vldrhq_z_f16): Likewise.
6690 (__arm_vldrhq_f16): Likewise.
6691 (vld1q): Define polymorphic variant.
6692 (vldrhq_gather_offset): Likewise.
6693 (vldrhq_gather_offset_z): Likewise.
6694 (vldrhq_gather_shifted_offset): Likewise.
6695 (vldrhq_gather_shifted_offset_z): Likewise.
6696 * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier.
6697 (LDRS): Likewise.
6698 (LDRU_Z): Likewise.
6699 (LDRS_Z): Likewise.
6700 (LDRGU_Z): Likewise.
6701 (LDRGU): Likewise.
6702 (LDRGS_Z): Likewise.
6703 (LDRGS): Likewise.
6704 * config/arm/mve.md (MVE_H_ELEM): Define mode iterator.
6705 (V_sz_elem1): Likewise.
6706 (VLD1Q): Define iterator.
6707 (VLDRHGOQ): Likewise.
6708 (VLDRHGSOQ): Likewise.
6709 (VLDRHQ): Likewise.
6710 (VLDRWQ): Likewise.
6711 (mve_vldrhq_fv8hf): Define RTL pattern.
6712 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
6713 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
6714 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
6715 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
6716 (mve_vldrhq_<supf><mode>): Likewise.
6717 (mve_vldrhq_z_fv8hf): Likewise.
6718 (mve_vldrhq_z_<supf><mode>): Likewise.
6719 (mve_vldrwq_fv4sf): Likewise.
6720 (mve_vldrwq_<supf>v4si): Likewise.
6721 (mve_vldrwq_z_fv4sf): Likewise.
6722 (mve_vldrwq_z_<supf>v4si): Likewise.
6723 (mve_vld1q_f<mode>): Define RTL expand pattern.
6724 (mve_vld1q_<supf><mode>): Likewise.
6725
6726 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6727 Mihail Ionescu <mihail.ionescu@arm.com>
6728 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6729
6730 * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin
6731 qualifier.
6732 (LDRGBU_Z_QUALIFIERS): Likewise.
6733 (LDRGS_Z_QUALIFIERS): Likewise.
6734 (LDRGU_Z_QUALIFIERS): Likewise.
6735 (LDRS_Z_QUALIFIERS): Likewise.
6736 (LDRU_Z_QUALIFIERS): Likewise.
6737 * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro.
6738 (vldrbq_gather_offset_z_u8): Likewise.
6739 (vldrbq_gather_offset_z_s32): Likewise.
6740 (vldrbq_gather_offset_z_u16): Likewise.
6741 (vldrbq_gather_offset_z_u32): Likewise.
6742 (vldrbq_gather_offset_z_s8): Likewise.
6743 (vldrbq_z_s16): Likewise.
6744 (vldrbq_z_u8): Likewise.
6745 (vldrbq_z_s8): Likewise.
6746 (vldrbq_z_s32): Likewise.
6747 (vldrbq_z_u16): Likewise.
6748 (vldrbq_z_u32): Likewise.
6749 (vldrwq_gather_base_z_u32): Likewise.
6750 (vldrwq_gather_base_z_s32): Likewise.
6751 (__arm_vldrbq_gather_offset_z_s8): Define intrinsic.
6752 (__arm_vldrbq_gather_offset_z_s32): Likewise.
6753 (__arm_vldrbq_gather_offset_z_s16): Likewise.
6754 (__arm_vldrbq_gather_offset_z_u8): Likewise.
6755 (__arm_vldrbq_gather_offset_z_u32): Likewise.
6756 (__arm_vldrbq_gather_offset_z_u16): Likewise.
6757 (__arm_vldrbq_z_s8): Likewise.
6758 (__arm_vldrbq_z_s32): Likewise.
6759 (__arm_vldrbq_z_s16): Likewise.
6760 (__arm_vldrbq_z_u8): Likewise.
6761 (__arm_vldrbq_z_u32): Likewise.
6762 (__arm_vldrbq_z_u16): Likewise.
6763 (__arm_vldrwq_gather_base_z_s32): Likewise.
6764 (__arm_vldrwq_gather_base_z_u32): Likewise.
6765 (vldrbq_gather_offset_z): Define polymorphic variant.
6766 * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin
6767 qualifier.
6768 (LDRGBU_Z_QUALIFIERS): Likewise.
6769 (LDRGS_Z_QUALIFIERS): Likewise.
6770 (LDRGU_Z_QUALIFIERS): Likewise.
6771 (LDRS_Z_QUALIFIERS): Likewise.
6772 (LDRU_Z_QUALIFIERS): Likewise.
6773 * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define
6774 RTL pattern.
6775 (mve_vldrbq_z_<supf><mode>): Likewise.
6776 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
6777
6778 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6779 Mihail Ionescu <mihail.ionescu@arm.com>
6780 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6781
6782 * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin
6783 qualifier.
6784 (STRU_P_QUALIFIERS): Likewise.
6785 (STRSU_P_QUALIFIERS): Likewise.
6786 (STRSS_P_QUALIFIERS): Likewise.
6787 (STRSBS_P_QUALIFIERS): Likewise.
6788 (STRSBU_P_QUALIFIERS): Likewise.
6789 * config/arm/arm_mve.h (vstrbq_p_s8): Define macro.
6790 (vstrbq_p_s32): Likewise.
6791 (vstrbq_p_s16): Likewise.
6792 (vstrbq_p_u8): Likewise.
6793 (vstrbq_p_u32): Likewise.
6794 (vstrbq_p_u16): Likewise.
6795 (vstrbq_scatter_offset_p_s8): Likewise.
6796 (vstrbq_scatter_offset_p_s32): Likewise.
6797 (vstrbq_scatter_offset_p_s16): Likewise.
6798 (vstrbq_scatter_offset_p_u8): Likewise.
6799 (vstrbq_scatter_offset_p_u32): Likewise.
6800 (vstrbq_scatter_offset_p_u16): Likewise.
6801 (vstrwq_scatter_base_p_s32): Likewise.
6802 (vstrwq_scatter_base_p_u32): Likewise.
6803 (__arm_vstrbq_p_s8): Define intrinsic.
6804 (__arm_vstrbq_p_s32): Likewise.
6805 (__arm_vstrbq_p_s16): Likewise.
6806 (__arm_vstrbq_p_u8): Likewise.
6807 (__arm_vstrbq_p_u32): Likewise.
6808 (__arm_vstrbq_p_u16): Likewise.
6809 (__arm_vstrbq_scatter_offset_p_s8): Likewise.
6810 (__arm_vstrbq_scatter_offset_p_s32): Likewise.
6811 (__arm_vstrbq_scatter_offset_p_s16): Likewise.
6812 (__arm_vstrbq_scatter_offset_p_u8): Likewise.
6813 (__arm_vstrbq_scatter_offset_p_u32): Likewise.
6814 (__arm_vstrbq_scatter_offset_p_u16): Likewise.
6815 (__arm_vstrwq_scatter_base_p_s32): Likewise.
6816 (__arm_vstrwq_scatter_base_p_u32): Likewise.
6817 (vstrbq_p): Define polymorphic variant.
6818 (vstrbq_scatter_offset_p): Likewise.
6819 (vstrwq_scatter_base_p): Likewise.
6820 * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin
6821 qualifier.
6822 (STRU_P_QUALIFIERS): Likewise.
6823 (STRSU_P_QUALIFIERS): Likewise.
6824 (STRSS_P_QUALIFIERS): Likewise.
6825 (STRSBS_P_QUALIFIERS): Likewise.
6826 (STRSBU_P_QUALIFIERS): Likewise.
6827 * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define
6828 RTL pattern.
6829 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
6830 (mve_vstrbq_p_<supf><mode>): Likewise.
6831
6832 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6833 Mihail Ionescu <mihail.ionescu@arm.com>
6834 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6835
6836 * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin
6837 qualifier.
6838 (LDRGS_QUALIFIERS): Likewise.
6839 (LDRS_QUALIFIERS): Likewise.
6840 (LDRU_QUALIFIERS): Likewise.
6841 (LDRGBS_QUALIFIERS): Likewise.
6842 (LDRGBU_QUALIFIERS): Likewise.
6843 * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro.
6844 (vldrbq_gather_offset_s8): Likewise.
6845 (vldrbq_s8): Likewise.
6846 (vldrbq_u8): Likewise.
6847 (vldrbq_gather_offset_u16): Likewise.
6848 (vldrbq_gather_offset_s16): Likewise.
6849 (vldrbq_s16): Likewise.
6850 (vldrbq_u16): Likewise.
6851 (vldrbq_gather_offset_u32): Likewise.
6852 (vldrbq_gather_offset_s32): Likewise.
6853 (vldrbq_s32): Likewise.
6854 (vldrbq_u32): Likewise.
6855 (vldrwq_gather_base_s32): Likewise.
6856 (vldrwq_gather_base_u32): Likewise.
6857 (__arm_vldrbq_gather_offset_u8): Define intrinsic.
6858 (__arm_vldrbq_gather_offset_s8): Likewise.
6859 (__arm_vldrbq_s8): Likewise.
6860 (__arm_vldrbq_u8): Likewise.
6861 (__arm_vldrbq_gather_offset_u16): Likewise.
6862 (__arm_vldrbq_gather_offset_s16): Likewise.
6863 (__arm_vldrbq_s16): Likewise.
6864 (__arm_vldrbq_u16): Likewise.
6865 (__arm_vldrbq_gather_offset_u32): Likewise.
6866 (__arm_vldrbq_gather_offset_s32): Likewise.
6867 (__arm_vldrbq_s32): Likewise.
6868 (__arm_vldrbq_u32): Likewise.
6869 (__arm_vldrwq_gather_base_s32): Likewise.
6870 (__arm_vldrwq_gather_base_u32): Likewise.
6871 (vldrbq_gather_offset): Define polymorphic variant.
6872 * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin
6873 qualifier.
6874 (LDRGS_QUALIFIERS): Likewise.
6875 (LDRS_QUALIFIERS): Likewise.
6876 (LDRU_QUALIFIERS): Likewise.
6877 (LDRGBS_QUALIFIERS): Likewise.
6878 (LDRGBU_QUALIFIERS): Likewise.
6879 * config/arm/mve.md (VLDRBGOQ): Define iterator.
6880 (VLDRBQ): Likewise.
6881 (VLDRWGBQ): Likewise.
6882 (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern.
6883 (mve_vldrbq_<supf><mode>): Likewise.
6884 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
6885
6886 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6887 Mihail Ionescu <mihail.ionescu@arm.com>
6888 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6889
6890 * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier.
6891 (STRU_QUALIFIERS): Likewise.
6892 (STRSS_QUALIFIERS): Likewise.
6893 (STRSU_QUALIFIERS): Likewise.
6894 (STRSBS_QUALIFIERS): Likewise.
6895 (STRSBU_QUALIFIERS): Likewise.
6896 * config/arm/arm_mve.h (vstrbq_s8): Define macro.
6897 (vstrbq_u8): Likewise.
6898 (vstrbq_u16): Likewise.
6899 (vstrbq_scatter_offset_s8): Likewise.
6900 (vstrbq_scatter_offset_u8): Likewise.
6901 (vstrbq_scatter_offset_u16): Likewise.
6902 (vstrbq_s16): Likewise.
6903 (vstrbq_u32): Likewise.
6904 (vstrbq_scatter_offset_s16): Likewise.
6905 (vstrbq_scatter_offset_u32): Likewise.
6906 (vstrbq_s32): Likewise.
6907 (vstrbq_scatter_offset_s32): Likewise.
6908 (vstrwq_scatter_base_s32): Likewise.
6909 (vstrwq_scatter_base_u32): Likewise.
6910 (__arm_vstrbq_scatter_offset_s8): Define intrinsic.
6911 (__arm_vstrbq_scatter_offset_s32): Likewise.
6912 (__arm_vstrbq_scatter_offset_s16): Likewise.
6913 (__arm_vstrbq_scatter_offset_u8): Likewise.
6914 (__arm_vstrbq_scatter_offset_u32): Likewise.
6915 (__arm_vstrbq_scatter_offset_u16): Likewise.
6916 (__arm_vstrbq_s8): Likewise.
6917 (__arm_vstrbq_s32): Likewise.
6918 (__arm_vstrbq_s16): Likewise.
6919 (__arm_vstrbq_u8): Likewise.
6920 (__arm_vstrbq_u32): Likewise.
6921 (__arm_vstrbq_u16): Likewise.
6922 (__arm_vstrwq_scatter_base_s32): Likewise.
6923 (__arm_vstrwq_scatter_base_u32): Likewise.
6924 (vstrbq): Define polymorphic variant.
6925 (vstrbq_scatter_offset): Likewise.
6926 (vstrwq_scatter_base): Likewise.
6927 * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin
6928 qualifier.
6929 (STRU_QUALIFIERS): Likewise.
6930 (STRSS_QUALIFIERS): Likewise.
6931 (STRSU_QUALIFIERS): Likewise.
6932 (STRSBS_QUALIFIERS): Likewise.
6933 (STRSBU_QUALIFIERS): Likewise.
6934 * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator.
6935 (VSTRWSBQ): Define iterators.
6936 (VSTRBSOQ): Likewise.
6937 (VSTRBQ): Likewise.
6938 (mve_vstrbq_<supf><mode>): Define RTL pattern.
6939 (mve_vstrbq_scatter_offset_<supf><mode>): Likewise.
6940 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
6941
6942 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
6943 Mihail Ionescu <mihail.ionescu@arm.com>
6944 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6945
6946 * config/arm/arm_mve.h (vabdq_m_f32): Define macro.
6947 (vabdq_m_f16): Likewise.
6948 (vaddq_m_f32): Likewise.
6949 (vaddq_m_f16): Likewise.
6950 (vaddq_m_n_f32): Likewise.
6951 (vaddq_m_n_f16): Likewise.
6952 (vandq_m_f32): Likewise.
6953 (vandq_m_f16): Likewise.
6954 (vbicq_m_f32): Likewise.
6955 (vbicq_m_f16): Likewise.
6956 (vbrsrq_m_n_f32): Likewise.
6957 (vbrsrq_m_n_f16): Likewise.
6958 (vcaddq_rot270_m_f32): Likewise.
6959 (vcaddq_rot270_m_f16): Likewise.
6960 (vcaddq_rot90_m_f32): Likewise.
6961 (vcaddq_rot90_m_f16): Likewise.
6962 (vcmlaq_m_f32): Likewise.
6963 (vcmlaq_m_f16): Likewise.
6964 (vcmlaq_rot180_m_f32): Likewise.
6965 (vcmlaq_rot180_m_f16): Likewise.
6966 (vcmlaq_rot270_m_f32): Likewise.
6967 (vcmlaq_rot270_m_f16): Likewise.
6968 (vcmlaq_rot90_m_f32): Likewise.
6969 (vcmlaq_rot90_m_f16): Likewise.
6970 (vcmulq_m_f32): Likewise.
6971 (vcmulq_m_f16): Likewise.
6972 (vcmulq_rot180_m_f32): Likewise.
6973 (vcmulq_rot180_m_f16): Likewise.
6974 (vcmulq_rot270_m_f32): Likewise.
6975 (vcmulq_rot270_m_f16): Likewise.
6976 (vcmulq_rot90_m_f32): Likewise.
6977 (vcmulq_rot90_m_f16): Likewise.
6978 (vcvtq_m_n_s32_f32): Likewise.
6979 (vcvtq_m_n_s16_f16): Likewise.
6980 (vcvtq_m_n_u32_f32): Likewise.
6981 (vcvtq_m_n_u16_f16): Likewise.
6982 (veorq_m_f32): Likewise.
6983 (veorq_m_f16): Likewise.
6984 (vfmaq_m_f32): Likewise.
6985 (vfmaq_m_f16): Likewise.
6986 (vfmaq_m_n_f32): Likewise.
6987 (vfmaq_m_n_f16): Likewise.
6988 (vfmasq_m_n_f32): Likewise.
6989 (vfmasq_m_n_f16): Likewise.
6990 (vfmsq_m_f32): Likewise.
6991 (vfmsq_m_f16): Likewise.
6992 (vmaxnmq_m_f32): Likewise.
6993 (vmaxnmq_m_f16): Likewise.
6994 (vminnmq_m_f32): Likewise.
6995 (vminnmq_m_f16): Likewise.
6996 (vmulq_m_f32): Likewise.
6997 (vmulq_m_f16): Likewise.
6998 (vmulq_m_n_f32): Likewise.
6999 (vmulq_m_n_f16): Likewise.
7000 (vornq_m_f32): Likewise.
7001 (vornq_m_f16): Likewise.
7002 (vorrq_m_f32): Likewise.
7003 (vorrq_m_f16): Likewise.
7004 (vsubq_m_f32): Likewise.
7005 (vsubq_m_f16): Likewise.
7006 (vsubq_m_n_f32): Likewise.
7007 (vsubq_m_n_f16): Likewise.
7008 (__attribute__): Likewise.
7009 (__arm_vabdq_m_f32): Likewise.
7010 (__arm_vabdq_m_f16): Likewise.
7011 (__arm_vaddq_m_f32): Likewise.
7012 (__arm_vaddq_m_f16): Likewise.
7013 (__arm_vaddq_m_n_f32): Likewise.
7014 (__arm_vaddq_m_n_f16): Likewise.
7015 (__arm_vandq_m_f32): Likewise.
7016 (__arm_vandq_m_f16): Likewise.
7017 (__arm_vbicq_m_f32): Likewise.
7018 (__arm_vbicq_m_f16): Likewise.
7019 (__arm_vbrsrq_m_n_f32): Likewise.
7020 (__arm_vbrsrq_m_n_f16): Likewise.
7021 (__arm_vcaddq_rot270_m_f32): Likewise.
7022 (__arm_vcaddq_rot270_m_f16): Likewise.
7023 (__arm_vcaddq_rot90_m_f32): Likewise.
7024 (__arm_vcaddq_rot90_m_f16): Likewise.
7025 (__arm_vcmlaq_m_f32): Likewise.
7026 (__arm_vcmlaq_m_f16): Likewise.
7027 (__arm_vcmlaq_rot180_m_f32): Likewise.
7028 (__arm_vcmlaq_rot180_m_f16): Likewise.
7029 (__arm_vcmlaq_rot270_m_f32): Likewise.
7030 (__arm_vcmlaq_rot270_m_f16): Likewise.
7031 (__arm_vcmlaq_rot90_m_f32): Likewise.
7032 (__arm_vcmlaq_rot90_m_f16): Likewise.
7033 (__arm_vcmulq_m_f32): Likewise.
7034 (__arm_vcmulq_m_f16): Likewise.
7035 (__arm_vcmulq_rot180_m_f32): Define intrinsic.
7036 (__arm_vcmulq_rot180_m_f16): Likewise.
7037 (__arm_vcmulq_rot270_m_f32): Likewise.
7038 (__arm_vcmulq_rot270_m_f16): Likewise.
7039 (__arm_vcmulq_rot90_m_f32): Likewise.
7040 (__arm_vcmulq_rot90_m_f16): Likewise.
7041 (__arm_vcvtq_m_n_s32_f32): Likewise.
7042 (__arm_vcvtq_m_n_s16_f16): Likewise.
7043 (__arm_vcvtq_m_n_u32_f32): Likewise.
7044 (__arm_vcvtq_m_n_u16_f16): Likewise.
7045 (__arm_veorq_m_f32): Likewise.
7046 (__arm_veorq_m_f16): Likewise.
7047 (__arm_vfmaq_m_f32): Likewise.
7048 (__arm_vfmaq_m_f16): Likewise.
7049 (__arm_vfmaq_m_n_f32): Likewise.
7050 (__arm_vfmaq_m_n_f16): Likewise.
7051 (__arm_vfmasq_m_n_f32): Likewise.
7052 (__arm_vfmasq_m_n_f16): Likewise.
7053 (__arm_vfmsq_m_f32): Likewise.
7054 (__arm_vfmsq_m_f16): Likewise.
7055 (__arm_vmaxnmq_m_f32): Likewise.
7056 (__arm_vmaxnmq_m_f16): Likewise.
7057 (__arm_vminnmq_m_f32): Likewise.
7058 (__arm_vminnmq_m_f16): Likewise.
7059 (__arm_vmulq_m_f32): Likewise.
7060 (__arm_vmulq_m_f16): Likewise.
7061 (__arm_vmulq_m_n_f32): Likewise.
7062 (__arm_vmulq_m_n_f16): Likewise.
7063 (__arm_vornq_m_f32): Likewise.
7064 (__arm_vornq_m_f16): Likewise.
7065 (__arm_vorrq_m_f32): Likewise.
7066 (__arm_vorrq_m_f16): Likewise.
7067 (__arm_vsubq_m_f32): Likewise.
7068 (__arm_vsubq_m_f16): Likewise.
7069 (__arm_vsubq_m_n_f32): Likewise.
7070 (__arm_vsubq_m_n_f16): Likewise.
7071 (vabdq_m): Define polymorphic variant.
7072 (vaddq_m): Likewise.
7073 (vaddq_m_n): Likewise.
7074 (vandq_m): Likewise.
7075 (vbicq_m): Likewise.
7076 (vbrsrq_m_n): Likewise.
7077 (vcaddq_rot270_m): Likewise.
7078 (vcaddq_rot90_m): Likewise.
7079 (vcmlaq_m): Likewise.
7080 (vcmlaq_rot180_m): Likewise.
7081 (vcmlaq_rot270_m): Likewise.
7082 (vcmlaq_rot90_m): Likewise.
7083 (vcmulq_m): Likewise.
7084 (vcmulq_rot180_m): Likewise.
7085 (vcmulq_rot270_m): Likewise.
7086 (vcmulq_rot90_m): Likewise.
7087 (veorq_m): Likewise.
7088 (vfmaq_m): Likewise.
7089 (vfmaq_m_n): Likewise.
7090 (vfmasq_m_n): Likewise.
7091 (vfmsq_m): Likewise.
7092 (vmaxnmq_m): Likewise.
7093 (vminnmq_m): Likewise.
7094 (vmulq_m): Likewise.
7095 (vmulq_m_n): Likewise.
7096 (vornq_m): Likewise.
7097 (vsubq_m): Likewise.
7098 (vsubq_m_n): Likewise.
7099 (vorrq_m): Likewise.
7100 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
7101 builtin qualifier.
7102 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
7103 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
7104 * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern.
7105 (mve_vaddq_m_f<mode>): Likewise.
7106 (mve_vaddq_m_n_f<mode>): Likewise.
7107 (mve_vandq_m_f<mode>): Likewise.
7108 (mve_vbicq_m_f<mode>): Likewise.
7109 (mve_vbrsrq_m_n_f<mode>): Likewise.
7110 (mve_vcaddq_rot270_m_f<mode>): Likewise.
7111 (mve_vcaddq_rot90_m_f<mode>): Likewise.
7112 (mve_vcmlaq_m_f<mode>): Likewise.
7113 (mve_vcmlaq_rot180_m_f<mode>): Likewise.
7114 (mve_vcmlaq_rot270_m_f<mode>): Likewise.
7115 (mve_vcmlaq_rot90_m_f<mode>): Likewise.
7116 (mve_vcmulq_m_f<mode>): Likewise.
7117 (mve_vcmulq_rot180_m_f<mode>): Likewise.
7118 (mve_vcmulq_rot270_m_f<mode>): Likewise.
7119 (mve_vcmulq_rot90_m_f<mode>): Likewise.
7120 (mve_veorq_m_f<mode>): Likewise.
7121 (mve_vfmaq_m_f<mode>): Likewise.
7122 (mve_vfmaq_m_n_f<mode>): Likewise.
7123 (mve_vfmasq_m_n_f<mode>): Likewise.
7124 (mve_vfmsq_m_f<mode>): Likewise.
7125 (mve_vmaxnmq_m_f<mode>): Likewise.
7126 (mve_vminnmq_m_f<mode>): Likewise.
7127 (mve_vmulq_m_f<mode>): Likewise.
7128 (mve_vmulq_m_n_f<mode>): Likewise.
7129 (mve_vornq_m_f<mode>): Likewise.
7130 (mve_vorrq_m_f<mode>): Likewise.
7131 (mve_vsubq_m_f<mode>): Likewise.
7132 (mve_vsubq_m_n_f<mode>): Likewise.
7133
7134 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
7135 Mihail Ionescu <mihail.ionescu@arm.com>
7136 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7137
7138 * config/arm/arm-protos.h (arm_mve_immediate_check):
7139 * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check
7140 mode and interger value.
7141 * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro.
7142 (vmlaldavaq_p_s16): Likewise.
7143 (vmlaldavaq_p_u32): Likewise.
7144 (vmlaldavaq_p_u16): Likewise.
7145 (vmlaldavaxq_p_s32): Likewise.
7146 (vmlaldavaxq_p_s16): Likewise.
7147 (vmlaldavaxq_p_u32): Likewise.
7148 (vmlaldavaxq_p_u16): Likewise.
7149 (vmlsldavaq_p_s32): Likewise.
7150 (vmlsldavaq_p_s16): Likewise.
7151 (vmlsldavaxq_p_s32): Likewise.
7152 (vmlsldavaxq_p_s16): Likewise.
7153 (vmullbq_poly_m_p8): Likewise.
7154 (vmullbq_poly_m_p16): Likewise.
7155 (vmulltq_poly_m_p8): Likewise.
7156 (vmulltq_poly_m_p16): Likewise.
7157 (vqdmullbq_m_n_s32): Likewise.
7158 (vqdmullbq_m_n_s16): Likewise.
7159 (vqdmullbq_m_s32): Likewise.
7160 (vqdmullbq_m_s16): Likewise.
7161 (vqdmulltq_m_n_s32): Likewise.
7162 (vqdmulltq_m_n_s16): Likewise.
7163 (vqdmulltq_m_s32): Likewise.
7164 (vqdmulltq_m_s16): Likewise.
7165 (vqrshrnbq_m_n_s32): Likewise.
7166 (vqrshrnbq_m_n_s16): Likewise.
7167 (vqrshrnbq_m_n_u32): Likewise.
7168 (vqrshrnbq_m_n_u16): Likewise.
7169 (vqrshrntq_m_n_s32): Likewise.
7170 (vqrshrntq_m_n_s16): Likewise.
7171 (vqrshrntq_m_n_u32): Likewise.
7172 (vqrshrntq_m_n_u16): Likewise.
7173 (vqrshrunbq_m_n_s32): Likewise.
7174 (vqrshrunbq_m_n_s16): Likewise.
7175 (vqrshruntq_m_n_s32): Likewise.
7176 (vqrshruntq_m_n_s16): Likewise.
7177 (vqshrnbq_m_n_s32): Likewise.
7178 (vqshrnbq_m_n_s16): Likewise.
7179 (vqshrnbq_m_n_u32): Likewise.
7180 (vqshrnbq_m_n_u16): Likewise.
7181 (vqshrntq_m_n_s32): Likewise.
7182 (vqshrntq_m_n_s16): Likewise.
7183 (vqshrntq_m_n_u32): Likewise.
7184 (vqshrntq_m_n_u16): Likewise.
7185 (vqshrunbq_m_n_s32): Likewise.
7186 (vqshrunbq_m_n_s16): Likewise.
7187 (vqshruntq_m_n_s32): Likewise.
7188 (vqshruntq_m_n_s16): Likewise.
7189 (vrmlaldavhaq_p_s32): Likewise.
7190 (vrmlaldavhaq_p_u32): Likewise.
7191 (vrmlaldavhaxq_p_s32): Likewise.
7192 (vrmlsldavhaq_p_s32): Likewise.
7193 (vrmlsldavhaxq_p_s32): Likewise.
7194 (vrshrnbq_m_n_s32): Likewise.
7195 (vrshrnbq_m_n_s16): Likewise.
7196 (vrshrnbq_m_n_u32): Likewise.
7197 (vrshrnbq_m_n_u16): Likewise.
7198 (vrshrntq_m_n_s32): Likewise.
7199 (vrshrntq_m_n_s16): Likewise.
7200 (vrshrntq_m_n_u32): Likewise.
7201 (vrshrntq_m_n_u16): Likewise.
7202 (vshllbq_m_n_s8): Likewise.
7203 (vshllbq_m_n_s16): Likewise.
7204 (vshllbq_m_n_u8): Likewise.
7205 (vshllbq_m_n_u16): Likewise.
7206 (vshlltq_m_n_s8): Likewise.
7207 (vshlltq_m_n_s16): Likewise.
7208 (vshlltq_m_n_u8): Likewise.
7209 (vshlltq_m_n_u16): Likewise.
7210 (vshrnbq_m_n_s32): Likewise.
7211 (vshrnbq_m_n_s16): Likewise.
7212 (vshrnbq_m_n_u32): Likewise.
7213 (vshrnbq_m_n_u16): Likewise.
7214 (vshrntq_m_n_s32): Likewise.
7215 (vshrntq_m_n_s16): Likewise.
7216 (vshrntq_m_n_u32): Likewise.
7217 (vshrntq_m_n_u16): Likewise.
7218 (__arm_vmlaldavaq_p_s32): Define intrinsic.
7219 (__arm_vmlaldavaq_p_s16): Likewise.
7220 (__arm_vmlaldavaq_p_u32): Likewise.
7221 (__arm_vmlaldavaq_p_u16): Likewise.
7222 (__arm_vmlaldavaxq_p_s32): Likewise.
7223 (__arm_vmlaldavaxq_p_s16): Likewise.
7224 (__arm_vmlaldavaxq_p_u32): Likewise.
7225 (__arm_vmlaldavaxq_p_u16): Likewise.
7226 (__arm_vmlsldavaq_p_s32): Likewise.
7227 (__arm_vmlsldavaq_p_s16): Likewise.
7228 (__arm_vmlsldavaxq_p_s32): Likewise.
7229 (__arm_vmlsldavaxq_p_s16): Likewise.
7230 (__arm_vmullbq_poly_m_p8): Likewise.
7231 (__arm_vmullbq_poly_m_p16): Likewise.
7232 (__arm_vmulltq_poly_m_p8): Likewise.
7233 (__arm_vmulltq_poly_m_p16): Likewise.
7234 (__arm_vqdmullbq_m_n_s32): Likewise.
7235 (__arm_vqdmullbq_m_n_s16): Likewise.
7236 (__arm_vqdmullbq_m_s32): Likewise.
7237 (__arm_vqdmullbq_m_s16): Likewise.
7238 (__arm_vqdmulltq_m_n_s32): Likewise.
7239 (__arm_vqdmulltq_m_n_s16): Likewise.
7240 (__arm_vqdmulltq_m_s32): Likewise.
7241 (__arm_vqdmulltq_m_s16): Likewise.
7242 (__arm_vqrshrnbq_m_n_s32): Likewise.
7243 (__arm_vqrshrnbq_m_n_s16): Likewise.
7244 (__arm_vqrshrnbq_m_n_u32): Likewise.
7245 (__arm_vqrshrnbq_m_n_u16): Likewise.
7246 (__arm_vqrshrntq_m_n_s32): Likewise.
7247 (__arm_vqrshrntq_m_n_s16): Likewise.
7248 (__arm_vqrshrntq_m_n_u32): Likewise.
7249 (__arm_vqrshrntq_m_n_u16): Likewise.
7250 (__arm_vqrshrunbq_m_n_s32): Likewise.
7251 (__arm_vqrshrunbq_m_n_s16): Likewise.
7252 (__arm_vqrshruntq_m_n_s32): Likewise.
7253 (__arm_vqrshruntq_m_n_s16): Likewise.
7254 (__arm_vqshrnbq_m_n_s32): Likewise.
7255 (__arm_vqshrnbq_m_n_s16): Likewise.
7256 (__arm_vqshrnbq_m_n_u32): Likewise.
7257 (__arm_vqshrnbq_m_n_u16): Likewise.
7258 (__arm_vqshrntq_m_n_s32): Likewise.
7259 (__arm_vqshrntq_m_n_s16): Likewise.
7260 (__arm_vqshrntq_m_n_u32): Likewise.
7261 (__arm_vqshrntq_m_n_u16): Likewise.
7262 (__arm_vqshrunbq_m_n_s32): Likewise.
7263 (__arm_vqshrunbq_m_n_s16): Likewise.
7264 (__arm_vqshruntq_m_n_s32): Likewise.
7265 (__arm_vqshruntq_m_n_s16): Likewise.
7266 (__arm_vrmlaldavhaq_p_s32): Likewise.
7267 (__arm_vrmlaldavhaq_p_u32): Likewise.
7268 (__arm_vrmlaldavhaxq_p_s32): Likewise.
7269 (__arm_vrmlsldavhaq_p_s32): Likewise.
7270 (__arm_vrmlsldavhaxq_p_s32): Likewise.
7271 (__arm_vrshrnbq_m_n_s32): Likewise.
7272 (__arm_vrshrnbq_m_n_s16): Likewise.
7273 (__arm_vrshrnbq_m_n_u32): Likewise.
7274 (__arm_vrshrnbq_m_n_u16): Likewise.
7275 (__arm_vrshrntq_m_n_s32): Likewise.
7276 (__arm_vrshrntq_m_n_s16): Likewise.
7277 (__arm_vrshrntq_m_n_u32): Likewise.
7278 (__arm_vrshrntq_m_n_u16): Likewise.
7279 (__arm_vshllbq_m_n_s8): Likewise.
7280 (__arm_vshllbq_m_n_s16): Likewise.
7281 (__arm_vshllbq_m_n_u8): Likewise.
7282 (__arm_vshllbq_m_n_u16): Likewise.
7283 (__arm_vshlltq_m_n_s8): Likewise.
7284 (__arm_vshlltq_m_n_s16): Likewise.
7285 (__arm_vshlltq_m_n_u8): Likewise.
7286 (__arm_vshlltq_m_n_u16): Likewise.
7287 (__arm_vshrnbq_m_n_s32): Likewise.
7288 (__arm_vshrnbq_m_n_s16): Likewise.
7289 (__arm_vshrnbq_m_n_u32): Likewise.
7290 (__arm_vshrnbq_m_n_u16): Likewise.
7291 (__arm_vshrntq_m_n_s32): Likewise.
7292 (__arm_vshrntq_m_n_s16): Likewise.
7293 (__arm_vshrntq_m_n_u32): Likewise.
7294 (__arm_vshrntq_m_n_u16): Likewise.
7295 (vmullbq_poly_m): Define polymorphic variant.
7296 (vmulltq_poly_m): Likewise.
7297 (vshllbq_m): Likewise.
7298 (vshrntq_m_n): Likewise.
7299 (vshrnbq_m_n): Likewise.
7300 (vshlltq_m_n): Likewise.
7301 (vshllbq_m_n): Likewise.
7302 (vrshrntq_m_n): Likewise.
7303 (vrshrnbq_m_n): Likewise.
7304 (vqshruntq_m_n): Likewise.
7305 (vqshrunbq_m_n): Likewise.
7306 (vqdmullbq_m_n): Likewise.
7307 (vqdmullbq_m): Likewise.
7308 (vqdmulltq_m_n): Likewise.
7309 (vqdmulltq_m): Likewise.
7310 (vqrshrnbq_m_n): Likewise.
7311 (vqrshrntq_m_n): Likewise.
7312 (vqrshrunbq_m_n): Likewise.
7313 (vqrshruntq_m_n): Likewise.
7314 (vqshrnbq_m_n): Likewise.
7315 (vqshrntq_m_n): Likewise.
7316 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
7317 builtin qualifiers.
7318 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
7319 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise.
7320 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
7321 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
7322 * config/arm/mve.md (VMLALDAVAQ_P): Define iterator.
7323 (VMLALDAVAXQ_P): Likewise.
7324 (VQRSHRNBQ_M_N): Likewise.
7325 (VQRSHRNTQ_M_N): Likewise.
7326 (VQSHRNBQ_M_N): Likewise.
7327 (VQSHRNTQ_M_N): Likewise.
7328 (VRSHRNBQ_M_N): Likewise.
7329 (VRSHRNTQ_M_N): Likewise.
7330 (VSHLLBQ_M_N): Likewise.
7331 (VSHLLTQ_M_N): Likewise.
7332 (VSHRNBQ_M_N): Likewise.
7333 (VSHRNTQ_M_N): Likewise.
7334 (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern.
7335 (mve_vmlaldavaxq_p_<supf><mode>): Likewise.
7336 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
7337 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
7338 (mve_vqshrnbq_m_n_<supf><mode>): Likewise.
7339 (mve_vqshrntq_m_n_<supf><mode>): Likewise.
7340 (mve_vrmlaldavhaq_p_sv4si): Likewise.
7341 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
7342 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
7343 (mve_vshllbq_m_n_<supf><mode>): Likewise.
7344 (mve_vshlltq_m_n_<supf><mode>): Likewise.
7345 (mve_vshrnbq_m_n_<supf><mode>): Likewise.
7346 (mve_vshrntq_m_n_<supf><mode>): Likewise.
7347 (mve_vmlsldavaq_p_s<mode>): Likewise.
7348 (mve_vmlsldavaxq_p_s<mode>): Likewise.
7349 (mve_vmullbq_poly_m_p<mode>): Likewise.
7350 (mve_vmulltq_poly_m_p<mode>): Likewise.
7351 (mve_vqdmullbq_m_n_s<mode>): Likewise.
7352 (mve_vqdmullbq_m_s<mode>): Likewise.
7353 (mve_vqdmulltq_m_n_s<mode>): Likewise.
7354 (mve_vqdmulltq_m_s<mode>): Likewise.
7355 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
7356 (mve_vqrshruntq_m_n_s<mode>): Likewise.
7357 (mve_vqshrunbq_m_n_s<mode>): Likewise.
7358 (mve_vqshruntq_m_n_s<mode>): Likewise.
7359 (mve_vrmlaldavhaq_p_uv4si): Likewise.
7360 (mve_vrmlaldavhaxq_p_sv4si): Likewise.
7361 (mve_vrmlsldavhaq_p_sv4si): Likewise.
7362 (mve_vrmlsldavhaxq_p_sv4si): Likewise.
7363
7364 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
7365 Mihail Ionescu <mihail.ionescu@arm.com>
7366 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7367
7368 * config/arm/arm_mve.h (vabdq_m_s8): Define macro.
7369 (vabdq_m_s32): Likewise.
7370 (vabdq_m_s16): Likewise.
7371 (vabdq_m_u8): Likewise.
7372 (vabdq_m_u32): Likewise.
7373 (vabdq_m_u16): Likewise.
7374 (vaddq_m_n_s8): Likewise.
7375 (vaddq_m_n_s32): Likewise.
7376 (vaddq_m_n_s16): Likewise.
7377 (vaddq_m_n_u8): Likewise.
7378 (vaddq_m_n_u32): Likewise.
7379 (vaddq_m_n_u16): Likewise.
7380 (vaddq_m_s8): Likewise.
7381 (vaddq_m_s32): Likewise.
7382 (vaddq_m_s16): Likewise.
7383 (vaddq_m_u8): Likewise.
7384 (vaddq_m_u32): Likewise.
7385 (vaddq_m_u16): Likewise.
7386 (vandq_m_s8): Likewise.
7387 (vandq_m_s32): Likewise.
7388 (vandq_m_s16): Likewise.
7389 (vandq_m_u8): Likewise.
7390 (vandq_m_u32): Likewise.
7391 (vandq_m_u16): Likewise.
7392 (vbicq_m_s8): Likewise.
7393 (vbicq_m_s32): Likewise.
7394 (vbicq_m_s16): Likewise.
7395 (vbicq_m_u8): Likewise.
7396 (vbicq_m_u32): Likewise.
7397 (vbicq_m_u16): Likewise.
7398 (vbrsrq_m_n_s8): Likewise.
7399 (vbrsrq_m_n_s32): Likewise.
7400 (vbrsrq_m_n_s16): Likewise.
7401 (vbrsrq_m_n_u8): Likewise.
7402 (vbrsrq_m_n_u32): Likewise.
7403 (vbrsrq_m_n_u16): Likewise.
7404 (vcaddq_rot270_m_s8): Likewise.
7405 (vcaddq_rot270_m_s32): Likewise.
7406 (vcaddq_rot270_m_s16): Likewise.
7407 (vcaddq_rot270_m_u8): Likewise.
7408 (vcaddq_rot270_m_u32): Likewise.
7409 (vcaddq_rot270_m_u16): Likewise.
7410 (vcaddq_rot90_m_s8): Likewise.
7411 (vcaddq_rot90_m_s32): Likewise.
7412 (vcaddq_rot90_m_s16): Likewise.
7413 (vcaddq_rot90_m_u8): Likewise.
7414 (vcaddq_rot90_m_u32): Likewise.
7415 (vcaddq_rot90_m_u16): Likewise.
7416 (veorq_m_s8): Likewise.
7417 (veorq_m_s32): Likewise.
7418 (veorq_m_s16): Likewise.
7419 (veorq_m_u8): Likewise.
7420 (veorq_m_u32): Likewise.
7421 (veorq_m_u16): Likewise.
7422 (vhaddq_m_n_s8): Likewise.
7423 (vhaddq_m_n_s32): Likewise.
7424 (vhaddq_m_n_s16): Likewise.
7425 (vhaddq_m_n_u8): Likewise.
7426 (vhaddq_m_n_u32): Likewise.
7427 (vhaddq_m_n_u16): Likewise.
7428 (vhaddq_m_s8): Likewise.
7429 (vhaddq_m_s32): Likewise.
7430 (vhaddq_m_s16): Likewise.
7431 (vhaddq_m_u8): Likewise.
7432 (vhaddq_m_u32): Likewise.
7433 (vhaddq_m_u16): Likewise.
7434 (vhcaddq_rot270_m_s8): Likewise.
7435 (vhcaddq_rot270_m_s32): Likewise.
7436 (vhcaddq_rot270_m_s16): Likewise.
7437 (vhcaddq_rot90_m_s8): Likewise.
7438 (vhcaddq_rot90_m_s32): Likewise.
7439 (vhcaddq_rot90_m_s16): Likewise.
7440 (vhsubq_m_n_s8): Likewise.
7441 (vhsubq_m_n_s32): Likewise.
7442 (vhsubq_m_n_s16): Likewise.
7443 (vhsubq_m_n_u8): Likewise.
7444 (vhsubq_m_n_u32): Likewise.
7445 (vhsubq_m_n_u16): Likewise.
7446 (vhsubq_m_s8): Likewise.
7447 (vhsubq_m_s32): Likewise.
7448 (vhsubq_m_s16): Likewise.
7449 (vhsubq_m_u8): Likewise.
7450 (vhsubq_m_u32): Likewise.
7451 (vhsubq_m_u16): Likewise.
7452 (vmaxq_m_s8): Likewise.
7453 (vmaxq_m_s32): Likewise.
7454 (vmaxq_m_s16): Likewise.
7455 (vmaxq_m_u8): Likewise.
7456 (vmaxq_m_u32): Likewise.
7457 (vmaxq_m_u16): Likewise.
7458 (vminq_m_s8): Likewise.
7459 (vminq_m_s32): Likewise.
7460 (vminq_m_s16): Likewise.
7461 (vminq_m_u8): Likewise.
7462 (vminq_m_u32): Likewise.
7463 (vminq_m_u16): Likewise.
7464 (vmladavaq_p_s8): Likewise.
7465 (vmladavaq_p_s32): Likewise.
7466 (vmladavaq_p_s16): Likewise.
7467 (vmladavaq_p_u8): Likewise.
7468 (vmladavaq_p_u32): Likewise.
7469 (vmladavaq_p_u16): Likewise.
7470 (vmladavaxq_p_s8): Likewise.
7471 (vmladavaxq_p_s32): Likewise.
7472 (vmladavaxq_p_s16): Likewise.
7473 (vmlaq_m_n_s8): Likewise.
7474 (vmlaq_m_n_s32): Likewise.
7475 (vmlaq_m_n_s16): Likewise.
7476 (vmlaq_m_n_u8): Likewise.
7477 (vmlaq_m_n_u32): Likewise.
7478 (vmlaq_m_n_u16): Likewise.
7479 (vmlasq_m_n_s8): Likewise.
7480 (vmlasq_m_n_s32): Likewise.
7481 (vmlasq_m_n_s16): Likewise.
7482 (vmlasq_m_n_u8): Likewise.
7483 (vmlasq_m_n_u32): Likewise.
7484 (vmlasq_m_n_u16): Likewise.
7485 (vmlsdavaq_p_s8): Likewise.
7486 (vmlsdavaq_p_s32): Likewise.
7487 (vmlsdavaq_p_s16): Likewise.
7488 (vmlsdavaxq_p_s8): Likewise.
7489 (vmlsdavaxq_p_s32): Likewise.
7490 (vmlsdavaxq_p_s16): Likewise.
7491 (vmulhq_m_s8): Likewise.
7492 (vmulhq_m_s32): Likewise.
7493 (vmulhq_m_s16): Likewise.
7494 (vmulhq_m_u8): Likewise.
7495 (vmulhq_m_u32): Likewise.
7496 (vmulhq_m_u16): Likewise.
7497 (vmullbq_int_m_s8): Likewise.
7498 (vmullbq_int_m_s32): Likewise.
7499 (vmullbq_int_m_s16): Likewise.
7500 (vmullbq_int_m_u8): Likewise.
7501 (vmullbq_int_m_u32): Likewise.
7502 (vmullbq_int_m_u16): Likewise.
7503 (vmulltq_int_m_s8): Likewise.
7504 (vmulltq_int_m_s32): Likewise.
7505 (vmulltq_int_m_s16): Likewise.
7506 (vmulltq_int_m_u8): Likewise.
7507 (vmulltq_int_m_u32): Likewise.
7508 (vmulltq_int_m_u16): Likewise.
7509 (vmulq_m_n_s8): Likewise.
7510 (vmulq_m_n_s32): Likewise.
7511 (vmulq_m_n_s16): Likewise.
7512 (vmulq_m_n_u8): Likewise.
7513 (vmulq_m_n_u32): Likewise.
7514 (vmulq_m_n_u16): Likewise.
7515 (vmulq_m_s8): Likewise.
7516 (vmulq_m_s32): Likewise.
7517 (vmulq_m_s16): Likewise.
7518 (vmulq_m_u8): Likewise.
7519 (vmulq_m_u32): Likewise.
7520 (vmulq_m_u16): Likewise.
7521 (vornq_m_s8): Likewise.
7522 (vornq_m_s32): Likewise.
7523 (vornq_m_s16): Likewise.
7524 (vornq_m_u8): Likewise.
7525 (vornq_m_u32): Likewise.
7526 (vornq_m_u16): Likewise.
7527 (vorrq_m_s8): Likewise.
7528 (vorrq_m_s32): Likewise.
7529 (vorrq_m_s16): Likewise.
7530 (vorrq_m_u8): Likewise.
7531 (vorrq_m_u32): Likewise.
7532 (vorrq_m_u16): Likewise.
7533 (vqaddq_m_n_s8): Likewise.
7534 (vqaddq_m_n_s32): Likewise.
7535 (vqaddq_m_n_s16): Likewise.
7536 (vqaddq_m_n_u8): Likewise.
7537 (vqaddq_m_n_u32): Likewise.
7538 (vqaddq_m_n_u16): Likewise.
7539 (vqaddq_m_s8): Likewise.
7540 (vqaddq_m_s32): Likewise.
7541 (vqaddq_m_s16): Likewise.
7542 (vqaddq_m_u8): Likewise.
7543 (vqaddq_m_u32): Likewise.
7544 (vqaddq_m_u16): Likewise.
7545 (vqdmladhq_m_s8): Likewise.
7546 (vqdmladhq_m_s32): Likewise.
7547 (vqdmladhq_m_s16): Likewise.
7548 (vqdmladhxq_m_s8): Likewise.
7549 (vqdmladhxq_m_s32): Likewise.
7550 (vqdmladhxq_m_s16): Likewise.
7551 (vqdmlahq_m_n_s8): Likewise.
7552 (vqdmlahq_m_n_s32): Likewise.
7553 (vqdmlahq_m_n_s16): Likewise.
7554 (vqdmlahq_m_n_u8): Likewise.
7555 (vqdmlahq_m_n_u32): Likewise.
7556 (vqdmlahq_m_n_u16): Likewise.
7557 (vqdmlsdhq_m_s8): Likewise.
7558 (vqdmlsdhq_m_s32): Likewise.
7559 (vqdmlsdhq_m_s16): Likewise.
7560 (vqdmlsdhxq_m_s8): Likewise.
7561 (vqdmlsdhxq_m_s32): Likewise.
7562 (vqdmlsdhxq_m_s16): Likewise.
7563 (vqdmulhq_m_n_s8): Likewise.
7564 (vqdmulhq_m_n_s32): Likewise.
7565 (vqdmulhq_m_n_s16): Likewise.
7566 (vqdmulhq_m_s8): Likewise.
7567 (vqdmulhq_m_s32): Likewise.
7568 (vqdmulhq_m_s16): Likewise.
7569 (vqrdmladhq_m_s8): Likewise.
7570 (vqrdmladhq_m_s32): Likewise.
7571 (vqrdmladhq_m_s16): Likewise.
7572 (vqrdmladhxq_m_s8): Likewise.
7573 (vqrdmladhxq_m_s32): Likewise.
7574 (vqrdmladhxq_m_s16): Likewise.
7575 (vqrdmlahq_m_n_s8): Likewise.
7576 (vqrdmlahq_m_n_s32): Likewise.
7577 (vqrdmlahq_m_n_s16): Likewise.
7578 (vqrdmlahq_m_n_u8): Likewise.
7579 (vqrdmlahq_m_n_u32): Likewise.
7580 (vqrdmlahq_m_n_u16): Likewise.
7581 (vqrdmlashq_m_n_s8): Likewise.
7582 (vqrdmlashq_m_n_s32): Likewise.
7583 (vqrdmlashq_m_n_s16): Likewise.
7584 (vqrdmlashq_m_n_u8): Likewise.
7585 (vqrdmlashq_m_n_u32): Likewise.
7586 (vqrdmlashq_m_n_u16): Likewise.
7587 (vqrdmlsdhq_m_s8): Likewise.
7588 (vqrdmlsdhq_m_s32): Likewise.
7589 (vqrdmlsdhq_m_s16): Likewise.
7590 (vqrdmlsdhxq_m_s8): Likewise.
7591 (vqrdmlsdhxq_m_s32): Likewise.
7592 (vqrdmlsdhxq_m_s16): Likewise.
7593 (vqrdmulhq_m_n_s8): Likewise.
7594 (vqrdmulhq_m_n_s32): Likewise.
7595 (vqrdmulhq_m_n_s16): Likewise.
7596 (vqrdmulhq_m_s8): Likewise.
7597 (vqrdmulhq_m_s32): Likewise.
7598 (vqrdmulhq_m_s16): Likewise.
7599 (vqrshlq_m_s8): Likewise.
7600 (vqrshlq_m_s32): Likewise.
7601 (vqrshlq_m_s16): Likewise.
7602 (vqrshlq_m_u8): Likewise.
7603 (vqrshlq_m_u32): Likewise.
7604 (vqrshlq_m_u16): Likewise.
7605 (vqshlq_m_n_s8): Likewise.
7606 (vqshlq_m_n_s32): Likewise.
7607 (vqshlq_m_n_s16): Likewise.
7608 (vqshlq_m_n_u8): Likewise.
7609 (vqshlq_m_n_u32): Likewise.
7610 (vqshlq_m_n_u16): Likewise.
7611 (vqshlq_m_s8): Likewise.
7612 (vqshlq_m_s32): Likewise.
7613 (vqshlq_m_s16): Likewise.
7614 (vqshlq_m_u8): Likewise.
7615 (vqshlq_m_u32): Likewise.
7616 (vqshlq_m_u16): Likewise.
7617 (vqsubq_m_n_s8): Likewise.
7618 (vqsubq_m_n_s32): Likewise.
7619 (vqsubq_m_n_s16): Likewise.
7620 (vqsubq_m_n_u8): Likewise.
7621 (vqsubq_m_n_u32): Likewise.
7622 (vqsubq_m_n_u16): Likewise.
7623 (vqsubq_m_s8): Likewise.
7624 (vqsubq_m_s32): Likewise.
7625 (vqsubq_m_s16): Likewise.
7626 (vqsubq_m_u8): Likewise.
7627 (vqsubq_m_u32): Likewise.
7628 (vqsubq_m_u16): Likewise.
7629 (vrhaddq_m_s8): Likewise.
7630 (vrhaddq_m_s32): Likewise.
7631 (vrhaddq_m_s16): Likewise.
7632 (vrhaddq_m_u8): Likewise.
7633 (vrhaddq_m_u32): Likewise.
7634 (vrhaddq_m_u16): Likewise.
7635 (vrmulhq_m_s8): Likewise.
7636 (vrmulhq_m_s32): Likewise.
7637 (vrmulhq_m_s16): Likewise.
7638 (vrmulhq_m_u8): Likewise.
7639 (vrmulhq_m_u32): Likewise.
7640 (vrmulhq_m_u16): Likewise.
7641 (vrshlq_m_s8): Likewise.
7642 (vrshlq_m_s32): Likewise.
7643 (vrshlq_m_s16): Likewise.
7644 (vrshlq_m_u8): Likewise.
7645 (vrshlq_m_u32): Likewise.
7646 (vrshlq_m_u16): Likewise.
7647 (vrshrq_m_n_s8): Likewise.
7648 (vrshrq_m_n_s32): Likewise.
7649 (vrshrq_m_n_s16): Likewise.
7650 (vrshrq_m_n_u8): Likewise.
7651 (vrshrq_m_n_u32): Likewise.
7652 (vrshrq_m_n_u16): Likewise.
7653 (vshlq_m_n_s8): Likewise.
7654 (vshlq_m_n_s32): Likewise.
7655 (vshlq_m_n_s16): Likewise.
7656 (vshlq_m_n_u8): Likewise.
7657 (vshlq_m_n_u32): Likewise.
7658 (vshlq_m_n_u16): Likewise.
7659 (vshrq_m_n_s8): Likewise.
7660 (vshrq_m_n_s32): Likewise.
7661 (vshrq_m_n_s16): Likewise.
7662 (vshrq_m_n_u8): Likewise.
7663 (vshrq_m_n_u32): Likewise.
7664 (vshrq_m_n_u16): Likewise.
7665 (vsliq_m_n_s8): Likewise.
7666 (vsliq_m_n_s32): Likewise.
7667 (vsliq_m_n_s16): Likewise.
7668 (vsliq_m_n_u8): Likewise.
7669 (vsliq_m_n_u32): Likewise.
7670 (vsliq_m_n_u16): Likewise.
7671 (vsubq_m_n_s8): Likewise.
7672 (vsubq_m_n_s32): Likewise.
7673 (vsubq_m_n_s16): Likewise.
7674 (vsubq_m_n_u8): Likewise.
7675 (vsubq_m_n_u32): Likewise.
7676 (vsubq_m_n_u16): Likewise.
7677 (__arm_vabdq_m_s8): Define intrinsic.
7678 (__arm_vabdq_m_s32): Likewise.
7679 (__arm_vabdq_m_s16): Likewise.
7680 (__arm_vabdq_m_u8): Likewise.
7681 (__arm_vabdq_m_u32): Likewise.
7682 (__arm_vabdq_m_u16): Likewise.
7683 (__arm_vaddq_m_n_s8): Likewise.
7684 (__arm_vaddq_m_n_s32): Likewise.
7685 (__arm_vaddq_m_n_s16): Likewise.
7686 (__arm_vaddq_m_n_u8): Likewise.
7687 (__arm_vaddq_m_n_u32): Likewise.
7688 (__arm_vaddq_m_n_u16): Likewise.
7689 (__arm_vaddq_m_s8): Likewise.
7690 (__arm_vaddq_m_s32): Likewise.
7691 (__arm_vaddq_m_s16): Likewise.
7692 (__arm_vaddq_m_u8): Likewise.
7693 (__arm_vaddq_m_u32): Likewise.
7694 (__arm_vaddq_m_u16): Likewise.
7695 (__arm_vandq_m_s8): Likewise.
7696 (__arm_vandq_m_s32): Likewise.
7697 (__arm_vandq_m_s16): Likewise.
7698 (__arm_vandq_m_u8): Likewise.
7699 (__arm_vandq_m_u32): Likewise.
7700 (__arm_vandq_m_u16): Likewise.
7701 (__arm_vbicq_m_s8): Likewise.
7702 (__arm_vbicq_m_s32): Likewise.
7703 (__arm_vbicq_m_s16): Likewise.
7704 (__arm_vbicq_m_u8): Likewise.
7705 (__arm_vbicq_m_u32): Likewise.
7706 (__arm_vbicq_m_u16): Likewise.
7707 (__arm_vbrsrq_m_n_s8): Likewise.
7708 (__arm_vbrsrq_m_n_s32): Likewise.
7709 (__arm_vbrsrq_m_n_s16): Likewise.
7710 (__arm_vbrsrq_m_n_u8): Likewise.
7711 (__arm_vbrsrq_m_n_u32): Likewise.
7712 (__arm_vbrsrq_m_n_u16): Likewise.
7713 (__arm_vcaddq_rot270_m_s8): Likewise.
7714 (__arm_vcaddq_rot270_m_s32): Likewise.
7715 (__arm_vcaddq_rot270_m_s16): Likewise.
7716 (__arm_vcaddq_rot270_m_u8): Likewise.
7717 (__arm_vcaddq_rot270_m_u32): Likewise.
7718 (__arm_vcaddq_rot270_m_u16): Likewise.
7719 (__arm_vcaddq_rot90_m_s8): Likewise.
7720 (__arm_vcaddq_rot90_m_s32): Likewise.
7721 (__arm_vcaddq_rot90_m_s16): Likewise.
7722 (__arm_vcaddq_rot90_m_u8): Likewise.
7723 (__arm_vcaddq_rot90_m_u32): Likewise.
7724 (__arm_vcaddq_rot90_m_u16): Likewise.
7725 (__arm_veorq_m_s8): Likewise.
7726 (__arm_veorq_m_s32): Likewise.
7727 (__arm_veorq_m_s16): Likewise.
7728 (__arm_veorq_m_u8): Likewise.
7729 (__arm_veorq_m_u32): Likewise.
7730 (__arm_veorq_m_u16): Likewise.
7731 (__arm_vhaddq_m_n_s8): Likewise.
7732 (__arm_vhaddq_m_n_s32): Likewise.
7733 (__arm_vhaddq_m_n_s16): Likewise.
7734 (__arm_vhaddq_m_n_u8): Likewise.
7735 (__arm_vhaddq_m_n_u32): Likewise.
7736 (__arm_vhaddq_m_n_u16): Likewise.
7737 (__arm_vhaddq_m_s8): Likewise.
7738 (__arm_vhaddq_m_s32): Likewise.
7739 (__arm_vhaddq_m_s16): Likewise.
7740 (__arm_vhaddq_m_u8): Likewise.
7741 (__arm_vhaddq_m_u32): Likewise.
7742 (__arm_vhaddq_m_u16): Likewise.
7743 (__arm_vhcaddq_rot270_m_s8): Likewise.
7744 (__arm_vhcaddq_rot270_m_s32): Likewise.
7745 (__arm_vhcaddq_rot270_m_s16): Likewise.
7746 (__arm_vhcaddq_rot90_m_s8): Likewise.
7747 (__arm_vhcaddq_rot90_m_s32): Likewise.
7748 (__arm_vhcaddq_rot90_m_s16): Likewise.
7749 (__arm_vhsubq_m_n_s8): Likewise.
7750 (__arm_vhsubq_m_n_s32): Likewise.
7751 (__arm_vhsubq_m_n_s16): Likewise.
7752 (__arm_vhsubq_m_n_u8): Likewise.
7753 (__arm_vhsubq_m_n_u32): Likewise.
7754 (__arm_vhsubq_m_n_u16): Likewise.
7755 (__arm_vhsubq_m_s8): Likewise.
7756 (__arm_vhsubq_m_s32): Likewise.
7757 (__arm_vhsubq_m_s16): Likewise.
7758 (__arm_vhsubq_m_u8): Likewise.
7759 (__arm_vhsubq_m_u32): Likewise.
7760 (__arm_vhsubq_m_u16): Likewise.
7761 (__arm_vmaxq_m_s8): Likewise.
7762 (__arm_vmaxq_m_s32): Likewise.
7763 (__arm_vmaxq_m_s16): Likewise.
7764 (__arm_vmaxq_m_u8): Likewise.
7765 (__arm_vmaxq_m_u32): Likewise.
7766 (__arm_vmaxq_m_u16): Likewise.
7767 (__arm_vminq_m_s8): Likewise.
7768 (__arm_vminq_m_s32): Likewise.
7769 (__arm_vminq_m_s16): Likewise.
7770 (__arm_vminq_m_u8): Likewise.
7771 (__arm_vminq_m_u32): Likewise.
7772 (__arm_vminq_m_u16): Likewise.
7773 (__arm_vmladavaq_p_s8): Likewise.
7774 (__arm_vmladavaq_p_s32): Likewise.
7775 (__arm_vmladavaq_p_s16): Likewise.
7776 (__arm_vmladavaq_p_u8): Likewise.
7777 (__arm_vmladavaq_p_u32): Likewise.
7778 (__arm_vmladavaq_p_u16): Likewise.
7779 (__arm_vmladavaxq_p_s8): Likewise.
7780 (__arm_vmladavaxq_p_s32): Likewise.
7781 (__arm_vmladavaxq_p_s16): Likewise.
7782 (__arm_vmlaq_m_n_s8): Likewise.
7783 (__arm_vmlaq_m_n_s32): Likewise.
7784 (__arm_vmlaq_m_n_s16): Likewise.
7785 (__arm_vmlaq_m_n_u8): Likewise.
7786 (__arm_vmlaq_m_n_u32): Likewise.
7787 (__arm_vmlaq_m_n_u16): Likewise.
7788 (__arm_vmlasq_m_n_s8): Likewise.
7789 (__arm_vmlasq_m_n_s32): Likewise.
7790 (__arm_vmlasq_m_n_s16): Likewise.
7791 (__arm_vmlasq_m_n_u8): Likewise.
7792 (__arm_vmlasq_m_n_u32): Likewise.
7793 (__arm_vmlasq_m_n_u16): Likewise.
7794 (__arm_vmlsdavaq_p_s8): Likewise.
7795 (__arm_vmlsdavaq_p_s32): Likewise.
7796 (__arm_vmlsdavaq_p_s16): Likewise.
7797 (__arm_vmlsdavaxq_p_s8): Likewise.
7798 (__arm_vmlsdavaxq_p_s32): Likewise.
7799 (__arm_vmlsdavaxq_p_s16): Likewise.
7800 (__arm_vmulhq_m_s8): Likewise.
7801 (__arm_vmulhq_m_s32): Likewise.
7802 (__arm_vmulhq_m_s16): Likewise.
7803 (__arm_vmulhq_m_u8): Likewise.
7804 (__arm_vmulhq_m_u32): Likewise.
7805 (__arm_vmulhq_m_u16): Likewise.
7806 (__arm_vmullbq_int_m_s8): Likewise.
7807 (__arm_vmullbq_int_m_s32): Likewise.
7808 (__arm_vmullbq_int_m_s16): Likewise.
7809 (__arm_vmullbq_int_m_u8): Likewise.
7810 (__arm_vmullbq_int_m_u32): Likewise.
7811 (__arm_vmullbq_int_m_u16): Likewise.
7812 (__arm_vmulltq_int_m_s8): Likewise.
7813 (__arm_vmulltq_int_m_s32): Likewise.
7814 (__arm_vmulltq_int_m_s16): Likewise.
7815 (__arm_vmulltq_int_m_u8): Likewise.
7816 (__arm_vmulltq_int_m_u32): Likewise.
7817 (__arm_vmulltq_int_m_u16): Likewise.
7818 (__arm_vmulq_m_n_s8): Likewise.
7819 (__arm_vmulq_m_n_s32): Likewise.
7820 (__arm_vmulq_m_n_s16): Likewise.
7821 (__arm_vmulq_m_n_u8): Likewise.
7822 (__arm_vmulq_m_n_u32): Likewise.
7823 (__arm_vmulq_m_n_u16): Likewise.
7824 (__arm_vmulq_m_s8): Likewise.
7825 (__arm_vmulq_m_s32): Likewise.
7826 (__arm_vmulq_m_s16): Likewise.
7827 (__arm_vmulq_m_u8): Likewise.
7828 (__arm_vmulq_m_u32): Likewise.
7829 (__arm_vmulq_m_u16): Likewise.
7830 (__arm_vornq_m_s8): Likewise.
7831 (__arm_vornq_m_s32): Likewise.
7832 (__arm_vornq_m_s16): Likewise.
7833 (__arm_vornq_m_u8): Likewise.
7834 (__arm_vornq_m_u32): Likewise.
7835 (__arm_vornq_m_u16): Likewise.
7836 (__arm_vorrq_m_s8): Likewise.
7837 (__arm_vorrq_m_s32): Likewise.
7838 (__arm_vorrq_m_s16): Likewise.
7839 (__arm_vorrq_m_u8): Likewise.
7840 (__arm_vorrq_m_u32): Likewise.
7841 (__arm_vorrq_m_u16): Likewise.
7842 (__arm_vqaddq_m_n_s8): Likewise.
7843 (__arm_vqaddq_m_n_s32): Likewise.
7844 (__arm_vqaddq_m_n_s16): Likewise.
7845 (__arm_vqaddq_m_n_u8): Likewise.
7846 (__arm_vqaddq_m_n_u32): Likewise.
7847 (__arm_vqaddq_m_n_u16): Likewise.
7848 (__arm_vqaddq_m_s8): Likewise.
7849 (__arm_vqaddq_m_s32): Likewise.
7850 (__arm_vqaddq_m_s16): Likewise.
7851 (__arm_vqaddq_m_u8): Likewise.
7852 (__arm_vqaddq_m_u32): Likewise.
7853 (__arm_vqaddq_m_u16): Likewise.
7854 (__arm_vqdmladhq_m_s8): Likewise.
7855 (__arm_vqdmladhq_m_s32): Likewise.
7856 (__arm_vqdmladhq_m_s16): Likewise.
7857 (__arm_vqdmladhxq_m_s8): Likewise.
7858 (__arm_vqdmladhxq_m_s32): Likewise.
7859 (__arm_vqdmladhxq_m_s16): Likewise.
7860 (__arm_vqdmlahq_m_n_s8): Likewise.
7861 (__arm_vqdmlahq_m_n_s32): Likewise.
7862 (__arm_vqdmlahq_m_n_s16): Likewise.
7863 (__arm_vqdmlahq_m_n_u8): Likewise.
7864 (__arm_vqdmlahq_m_n_u32): Likewise.
7865 (__arm_vqdmlahq_m_n_u16): Likewise.
7866 (__arm_vqdmlsdhq_m_s8): Likewise.
7867 (__arm_vqdmlsdhq_m_s32): Likewise.
7868 (__arm_vqdmlsdhq_m_s16): Likewise.
7869 (__arm_vqdmlsdhxq_m_s8): Likewise.
7870 (__arm_vqdmlsdhxq_m_s32): Likewise.
7871 (__arm_vqdmlsdhxq_m_s16): Likewise.
7872 (__arm_vqdmulhq_m_n_s8): Likewise.
7873 (__arm_vqdmulhq_m_n_s32): Likewise.
7874 (__arm_vqdmulhq_m_n_s16): Likewise.
7875 (__arm_vqdmulhq_m_s8): Likewise.
7876 (__arm_vqdmulhq_m_s32): Likewise.
7877 (__arm_vqdmulhq_m_s16): Likewise.
7878 (__arm_vqrdmladhq_m_s8): Likewise.
7879 (__arm_vqrdmladhq_m_s32): Likewise.
7880 (__arm_vqrdmladhq_m_s16): Likewise.
7881 (__arm_vqrdmladhxq_m_s8): Likewise.
7882 (__arm_vqrdmladhxq_m_s32): Likewise.
7883 (__arm_vqrdmladhxq_m_s16): Likewise.
7884 (__arm_vqrdmlahq_m_n_s8): Likewise.
7885 (__arm_vqrdmlahq_m_n_s32): Likewise.
7886 (__arm_vqrdmlahq_m_n_s16): Likewise.
7887 (__arm_vqrdmlahq_m_n_u8): Likewise.
7888 (__arm_vqrdmlahq_m_n_u32): Likewise.
7889 (__arm_vqrdmlahq_m_n_u16): Likewise.
7890 (__arm_vqrdmlashq_m_n_s8): Likewise.
7891 (__arm_vqrdmlashq_m_n_s32): Likewise.
7892 (__arm_vqrdmlashq_m_n_s16): Likewise.
7893 (__arm_vqrdmlashq_m_n_u8): Likewise.
7894 (__arm_vqrdmlashq_m_n_u32): Likewise.
7895 (__arm_vqrdmlashq_m_n_u16): Likewise.
7896 (__arm_vqrdmlsdhq_m_s8): Likewise.
7897 (__arm_vqrdmlsdhq_m_s32): Likewise.
7898 (__arm_vqrdmlsdhq_m_s16): Likewise.
7899 (__arm_vqrdmlsdhxq_m_s8): Likewise.
7900 (__arm_vqrdmlsdhxq_m_s32): Likewise.
7901 (__arm_vqrdmlsdhxq_m_s16): Likewise.
7902 (__arm_vqrdmulhq_m_n_s8): Likewise.
7903 (__arm_vqrdmulhq_m_n_s32): Likewise.
7904 (__arm_vqrdmulhq_m_n_s16): Likewise.
7905 (__arm_vqrdmulhq_m_s8): Likewise.
7906 (__arm_vqrdmulhq_m_s32): Likewise.
7907 (__arm_vqrdmulhq_m_s16): Likewise.
7908 (__arm_vqrshlq_m_s8): Likewise.
7909 (__arm_vqrshlq_m_s32): Likewise.
7910 (__arm_vqrshlq_m_s16): Likewise.
7911 (__arm_vqrshlq_m_u8): Likewise.
7912 (__arm_vqrshlq_m_u32): Likewise.
7913 (__arm_vqrshlq_m_u16): Likewise.
7914 (__arm_vqshlq_m_n_s8): Likewise.
7915 (__arm_vqshlq_m_n_s32): Likewise.
7916 (__arm_vqshlq_m_n_s16): Likewise.
7917 (__arm_vqshlq_m_n_u8): Likewise.
7918 (__arm_vqshlq_m_n_u32): Likewise.
7919 (__arm_vqshlq_m_n_u16): Likewise.
7920 (__arm_vqshlq_m_s8): Likewise.
7921 (__arm_vqshlq_m_s32): Likewise.
7922 (__arm_vqshlq_m_s16): Likewise.
7923 (__arm_vqshlq_m_u8): Likewise.
7924 (__arm_vqshlq_m_u32): Likewise.
7925 (__arm_vqshlq_m_u16): Likewise.
7926 (__arm_vqsubq_m_n_s8): Likewise.
7927 (__arm_vqsubq_m_n_s32): Likewise.
7928 (__arm_vqsubq_m_n_s16): Likewise.
7929 (__arm_vqsubq_m_n_u8): Likewise.
7930 (__arm_vqsubq_m_n_u32): Likewise.
7931 (__arm_vqsubq_m_n_u16): Likewise.
7932 (__arm_vqsubq_m_s8): Likewise.
7933 (__arm_vqsubq_m_s32): Likewise.
7934 (__arm_vqsubq_m_s16): Likewise.
7935 (__arm_vqsubq_m_u8): Likewise.
7936 (__arm_vqsubq_m_u32): Likewise.
7937 (__arm_vqsubq_m_u16): Likewise.
7938 (__arm_vrhaddq_m_s8): Likewise.
7939 (__arm_vrhaddq_m_s32): Likewise.
7940 (__arm_vrhaddq_m_s16): Likewise.
7941 (__arm_vrhaddq_m_u8): Likewise.
7942 (__arm_vrhaddq_m_u32): Likewise.
7943 (__arm_vrhaddq_m_u16): Likewise.
7944 (__arm_vrmulhq_m_s8): Likewise.
7945 (__arm_vrmulhq_m_s32): Likewise.
7946 (__arm_vrmulhq_m_s16): Likewise.
7947 (__arm_vrmulhq_m_u8): Likewise.
7948 (__arm_vrmulhq_m_u32): Likewise.
7949 (__arm_vrmulhq_m_u16): Likewise.
7950 (__arm_vrshlq_m_s8): Likewise.
7951 (__arm_vrshlq_m_s32): Likewise.
7952 (__arm_vrshlq_m_s16): Likewise.
7953 (__arm_vrshlq_m_u8): Likewise.
7954 (__arm_vrshlq_m_u32): Likewise.
7955 (__arm_vrshlq_m_u16): Likewise.
7956 (__arm_vrshrq_m_n_s8): Likewise.
7957 (__arm_vrshrq_m_n_s32): Likewise.
7958 (__arm_vrshrq_m_n_s16): Likewise.
7959 (__arm_vrshrq_m_n_u8): Likewise.
7960 (__arm_vrshrq_m_n_u32): Likewise.
7961 (__arm_vrshrq_m_n_u16): Likewise.
7962 (__arm_vshlq_m_n_s8): Likewise.
7963 (__arm_vshlq_m_n_s32): Likewise.
7964 (__arm_vshlq_m_n_s16): Likewise.
7965 (__arm_vshlq_m_n_u8): Likewise.
7966 (__arm_vshlq_m_n_u32): Likewise.
7967 (__arm_vshlq_m_n_u16): Likewise.
7968 (__arm_vshrq_m_n_s8): Likewise.
7969 (__arm_vshrq_m_n_s32): Likewise.
7970 (__arm_vshrq_m_n_s16): Likewise.
7971 (__arm_vshrq_m_n_u8): Likewise.
7972 (__arm_vshrq_m_n_u32): Likewise.
7973 (__arm_vshrq_m_n_u16): Likewise.
7974 (__arm_vsliq_m_n_s8): Likewise.
7975 (__arm_vsliq_m_n_s32): Likewise.
7976 (__arm_vsliq_m_n_s16): Likewise.
7977 (__arm_vsliq_m_n_u8): Likewise.
7978 (__arm_vsliq_m_n_u32): Likewise.
7979 (__arm_vsliq_m_n_u16): Likewise.
7980 (__arm_vsubq_m_n_s8): Likewise.
7981 (__arm_vsubq_m_n_s32): Likewise.
7982 (__arm_vsubq_m_n_s16): Likewise.
7983 (__arm_vsubq_m_n_u8): Likewise.
7984 (__arm_vsubq_m_n_u32): Likewise.
7985 (__arm_vsubq_m_n_u16): Likewise.
7986 (vqdmladhq_m): Define polymorphic variant.
7987 (vqdmladhxq_m): Likewise.
7988 (vqdmlsdhq_m): Likewise.
7989 (vqdmlsdhxq_m): Likewise.
7990 (vabdq_m): Likewise.
7991 (vandq_m): Likewise.
7992 (vbicq_m): Likewise.
7993 (vbrsrq_m_n): Likewise.
7994 (vcaddq_rot270_m): Likewise.
7995 (vcaddq_rot90_m): Likewise.
7996 (veorq_m): Likewise.
7997 (vmaxq_m): Likewise.
7998 (vminq_m): Likewise.
7999 (vmladavaq_p): Likewise.
8000 (vmlaq_m_n): Likewise.
8001 (vmlasq_m_n): Likewise.
8002 (vmulhq_m): Likewise.
8003 (vmullbq_int_m): Likewise.
8004 (vmulltq_int_m): Likewise.
8005 (vornq_m): Likewise.
8006 (vorrq_m): Likewise.
8007 (vqdmlahq_m_n): Likewise.
8008 (vqrdmlahq_m_n): Likewise.
8009 (vqrdmlashq_m_n): Likewise.
8010 (vqrshlq_m): Likewise.
8011 (vqshlq_m_n): Likewise.
8012 (vqshlq_m): Likewise.
8013 (vrhaddq_m): Likewise.
8014 (vrmulhq_m): Likewise.
8015 (vrshlq_m): Likewise.
8016 (vrshrq_m_n): Likewise.
8017 (vshlq_m_n): Likewise.
8018 (vshrq_m_n): Likewise.
8019 (vsliq_m): Likewise.
8020 (vaddq_m_n): Likewise.
8021 (vaddq_m): Likewise.
8022 (vhaddq_m_n): Likewise.
8023 (vhaddq_m): Likewise.
8024 (vhcaddq_rot270_m): Likewise.
8025 (vhcaddq_rot90_m): Likewise.
8026 (vhsubq_m): Likewise.
8027 (vhsubq_m_n): Likewise.
8028 (vmulq_m_n): Likewise.
8029 (vmulq_m): Likewise.
8030 (vqaddq_m_n): Likewise.
8031 (vqaddq_m): Likewise.
8032 (vqdmulhq_m_n): Likewise.
8033 (vqdmulhq_m): Likewise.
8034 (vsubq_m_n): Likewise.
8035 (vsliq_m_n): Likewise.
8036 (vqsubq_m_n): Likewise.
8037 (vqsubq_m): Likewise.
8038 (vqrdmulhq_m): Likewise.
8039 (vqrdmulhq_m_n): Likewise.
8040 (vqrdmlsdhxq_m): Likewise.
8041 (vqrdmlsdhq_m): Likewise.
8042 (vqrdmladhq_m): Likewise.
8043 (vqrdmladhxq_m): Likewise.
8044 (vmlsdavaxq_p): Likewise.
8045 (vmlsdavaq_p): Likewise.
8046 (vmladavaxq_p): Likewise.
8047 * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use
8048 builtin qualifier.
8049 (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise.
8050 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise.
8051 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise.
8052 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise.
8053 * config/arm/mve.md (VHSUBQ_M): Define iterators.
8054 (VSLIQ_M_N): Likewise.
8055 (VQRDMLAHQ_M_N): Likewise.
8056 (VRSHLQ_M): Likewise.
8057 (VMINQ_M): Likewise.
8058 (VMULLBQ_INT_M): Likewise.
8059 (VMULHQ_M): Likewise.
8060 (VMULQ_M): Likewise.
8061 (VHSUBQ_M_N): Likewise.
8062 (VHADDQ_M_N): Likewise.
8063 (VORRQ_M): Likewise.
8064 (VRMULHQ_M): Likewise.
8065 (VQADDQ_M): Likewise.
8066 (VRSHRQ_M_N): Likewise.
8067 (VQSUBQ_M_N): Likewise.
8068 (VADDQ_M): Likewise.
8069 (VORNQ_M): Likewise.
8070 (VQDMLAHQ_M_N): Likewise.
8071 (VRHADDQ_M): Likewise.
8072 (VQSHLQ_M): Likewise.
8073 (VANDQ_M): Likewise.
8074 (VBICQ_M): Likewise.
8075 (VSHLQ_M_N): Likewise.
8076 (VCADDQ_ROT270_M): Likewise.
8077 (VQRSHLQ_M): Likewise.
8078 (VQADDQ_M_N): Likewise.
8079 (VADDQ_M_N): Likewise.
8080 (VMAXQ_M): Likewise.
8081 (VQSUBQ_M): Likewise.
8082 (VMLASQ_M_N): Likewise.
8083 (VMLADAVAQ_P): Likewise.
8084 (VBRSRQ_M_N): Likewise.
8085 (VMULQ_M_N): Likewise.
8086 (VCADDQ_ROT90_M): Likewise.
8087 (VMULLTQ_INT_M): Likewise.
8088 (VEORQ_M): Likewise.
8089 (VSHRQ_M_N): Likewise.
8090 (VSUBQ_M_N): Likewise.
8091 (VHADDQ_M): Likewise.
8092 (VABDQ_M): Likewise.
8093 (VQRDMLASHQ_M_N): Likewise.
8094 (VMLAQ_M_N): Likewise.
8095 (VQSHLQ_M_N): Likewise.
8096 (mve_vabdq_m_<supf><mode>): Define RTL pattern.
8097 (mve_vaddq_m_n_<supf><mode>): Likewise.
8098 (mve_vaddq_m_<supf><mode>): Likewise.
8099 (mve_vandq_m_<supf><mode>): Likewise.
8100 (mve_vbicq_m_<supf><mode>): Likewise.
8101 (mve_vbrsrq_m_n_<supf><mode>): Likewise.
8102 (mve_vcaddq_rot270_m_<supf><mode>): Likewise.
8103 (mve_vcaddq_rot90_m_<supf><mode>): Likewise.
8104 (mve_veorq_m_<supf><mode>): Likewise.
8105 (mve_vhaddq_m_n_<supf><mode>): Likewise.
8106 (mve_vhaddq_m_<supf><mode>): Likewise.
8107 (mve_vhsubq_m_n_<supf><mode>): Likewise.
8108 (mve_vhsubq_m_<supf><mode>): Likewise.
8109 (mve_vmaxq_m_<supf><mode>): Likewise.
8110 (mve_vminq_m_<supf><mode>): Likewise.
8111 (mve_vmladavaq_p_<supf><mode>): Likewise.
8112 (mve_vmlaq_m_n_<supf><mode>): Likewise.
8113 (mve_vmlasq_m_n_<supf><mode>): Likewise.
8114 (mve_vmulhq_m_<supf><mode>): Likewise.
8115 (mve_vmullbq_int_m_<supf><mode>): Likewise.
8116 (mve_vmulltq_int_m_<supf><mode>): Likewise.
8117 (mve_vmulq_m_n_<supf><mode>): Likewise.
8118 (mve_vmulq_m_<supf><mode>): Likewise.
8119 (mve_vornq_m_<supf><mode>): Likewise.
8120 (mve_vorrq_m_<supf><mode>): Likewise.
8121 (mve_vqaddq_m_n_<supf><mode>): Likewise.
8122 (mve_vqaddq_m_<supf><mode>): Likewise.
8123 (mve_vqdmlahq_m_n_<supf><mode>): Likewise.
8124 (mve_vqrdmlahq_m_n_<supf><mode>): Likewise.
8125 (mve_vqrdmlashq_m_n_<supf><mode>): Likewise.
8126 (mve_vqrshlq_m_<supf><mode>): Likewise.
8127 (mve_vqshlq_m_n_<supf><mode>): Likewise.
8128 (mve_vqshlq_m_<supf><mode>): Likewise.
8129 (mve_vqsubq_m_n_<supf><mode>): Likewise.
8130 (mve_vqsubq_m_<supf><mode>): Likewise.
8131 (mve_vrhaddq_m_<supf><mode>): Likewise.
8132 (mve_vrmulhq_m_<supf><mode>): Likewise.
8133 (mve_vrshlq_m_<supf><mode>): Likewise.
8134 (mve_vrshrq_m_n_<supf><mode>): Likewise.
8135 (mve_vshlq_m_n_<supf><mode>): Likewise.
8136 (mve_vshrq_m_n_<supf><mode>): Likewise.
8137 (mve_vsliq_m_n_<supf><mode>): Likewise.
8138 (mve_vsubq_m_n_<supf><mode>): Likewise.
8139 (mve_vhcaddq_rot270_m_s<mode>): Likewise.
8140 (mve_vhcaddq_rot90_m_s<mode>): Likewise.
8141 (mve_vmladavaxq_p_s<mode>): Likewise.
8142 (mve_vmlsdavaq_p_s<mode>): Likewise.
8143 (mve_vmlsdavaxq_p_s<mode>): Likewise.
8144 (mve_vqdmladhq_m_s<mode>): Likewise.
8145 (mve_vqdmladhxq_m_s<mode>): Likewise.
8146 (mve_vqdmlsdhq_m_s<mode>): Likewise.
8147 (mve_vqdmlsdhxq_m_s<mode>): Likewise.
8148 (mve_vqdmulhq_m_n_s<mode>): Likewise.
8149 (mve_vqdmulhq_m_s<mode>): Likewise.
8150 (mve_vqrdmladhq_m_s<mode>): Likewise.
8151 (mve_vqrdmladhxq_m_s<mode>): Likewise.
8152 (mve_vqrdmlsdhq_m_s<mode>): Likewise.
8153 (mve_vqrdmlsdhxq_m_s<mode>): Likewise.
8154 (mve_vqrdmulhq_m_n_s<mode>): Likewise.
8155 (mve_vqrdmulhq_m_s<mode>): Likewise.
8156
8157 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8158 Mihail Ionescu <mihail.ionescu@arm.com>
8159 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8160
8161 * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS):
8162 Define builtin qualifier.
8163 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
8164 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8165 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
8166 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8167 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8168 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8169 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
8170 * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro.
8171 (vsubq_m_s8): Likewise.
8172 (vcvtq_m_n_f16_u16): Likewise.
8173 (vqshluq_m_n_s8): Likewise.
8174 (vabavq_p_s8): Likewise.
8175 (vsriq_m_n_u8): Likewise.
8176 (vshlq_m_u8): Likewise.
8177 (vsubq_m_u8): Likewise.
8178 (vabavq_p_u8): Likewise.
8179 (vshlq_m_s8): Likewise.
8180 (vcvtq_m_n_f16_s16): Likewise.
8181 (vsriq_m_n_s16): Likewise.
8182 (vsubq_m_s16): Likewise.
8183 (vcvtq_m_n_f32_u32): Likewise.
8184 (vqshluq_m_n_s16): Likewise.
8185 (vabavq_p_s16): Likewise.
8186 (vsriq_m_n_u16): Likewise.
8187 (vshlq_m_u16): Likewise.
8188 (vsubq_m_u16): Likewise.
8189 (vabavq_p_u16): Likewise.
8190 (vshlq_m_s16): Likewise.
8191 (vcvtq_m_n_f32_s32): Likewise.
8192 (vsriq_m_n_s32): Likewise.
8193 (vsubq_m_s32): Likewise.
8194 (vqshluq_m_n_s32): Likewise.
8195 (vabavq_p_s32): Likewise.
8196 (vsriq_m_n_u32): Likewise.
8197 (vshlq_m_u32): Likewise.
8198 (vsubq_m_u32): Likewise.
8199 (vabavq_p_u32): Likewise.
8200 (vshlq_m_s32): Likewise.
8201 (__arm_vsriq_m_n_s8): Define intrinsic.
8202 (__arm_vsubq_m_s8): Likewise.
8203 (__arm_vqshluq_m_n_s8): Likewise.
8204 (__arm_vabavq_p_s8): Likewise.
8205 (__arm_vsriq_m_n_u8): Likewise.
8206 (__arm_vshlq_m_u8): Likewise.
8207 (__arm_vsubq_m_u8): Likewise.
8208 (__arm_vabavq_p_u8): Likewise.
8209 (__arm_vshlq_m_s8): Likewise.
8210 (__arm_vsriq_m_n_s16): Likewise.
8211 (__arm_vsubq_m_s16): Likewise.
8212 (__arm_vqshluq_m_n_s16): Likewise.
8213 (__arm_vabavq_p_s16): Likewise.
8214 (__arm_vsriq_m_n_u16): Likewise.
8215 (__arm_vshlq_m_u16): Likewise.
8216 (__arm_vsubq_m_u16): Likewise.
8217 (__arm_vabavq_p_u16): Likewise.
8218 (__arm_vshlq_m_s16): Likewise.
8219 (__arm_vsriq_m_n_s32): Likewise.
8220 (__arm_vsubq_m_s32): Likewise.
8221 (__arm_vqshluq_m_n_s32): Likewise.
8222 (__arm_vabavq_p_s32): Likewise.
8223 (__arm_vsriq_m_n_u32): Likewise.
8224 (__arm_vshlq_m_u32): Likewise.
8225 (__arm_vsubq_m_u32): Likewise.
8226 (__arm_vabavq_p_u32): Likewise.
8227 (__arm_vshlq_m_s32): Likewise.
8228 (__arm_vcvtq_m_n_f16_u16): Likewise.
8229 (__arm_vcvtq_m_n_f16_s16): Likewise.
8230 (__arm_vcvtq_m_n_f32_u32): Likewise.
8231 (__arm_vcvtq_m_n_f32_s32): Likewise.
8232 (vcvtq_m_n): Define polymorphic variant.
8233 (vqshluq_m_n): Likewise.
8234 (vshlq_m): Likewise.
8235 (vsriq_m_n): Likewise.
8236 (vsubq_m): Likewise.
8237 (vabavq_p): Likewise.
8238 * config/arm/arm_mve_builtins.def
8239 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use builtin qualifier.
8240 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
8241 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8242 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
8243 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
8244 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8245 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
8246 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
8247 * config/arm/mve.md (VABAVQ_P): Define iterator.
8248 (VSHLQ_M): Likewise.
8249 (VSRIQ_M_N): Likewise.
8250 (VSUBQ_M): Likewise.
8251 (VCVTQ_M_N_TO_F): Likewise.
8252 (mve_vabavq_p_<supf><mode>): Define RTL pattern.
8253 (mve_vqshluq_m_n_s<mode>): Likewise.
8254 (mve_vshlq_m_<supf><mode>): Likewise.
8255 (mve_vsriq_m_n_<supf><mode>): Likewise.
8256 (mve_vsubq_m_<supf><mode>): Likewise.
8257 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
8258
8259 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8260 Mihail Ionescu <mihail.ionescu@arm.com>
8261 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8262
8263 * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro.
8264 (vrmlsldavhaq_s32): Likewise.
8265 (vrmlsldavhaxq_s32): Likewise.
8266 (vaddlvaq_p_s32): Likewise.
8267 (vcvtbq_m_f16_f32): Likewise.
8268 (vcvtbq_m_f32_f16): Likewise.
8269 (vcvttq_m_f16_f32): Likewise.
8270 (vcvttq_m_f32_f16): Likewise.
8271 (vrev16q_m_s8): Likewise.
8272 (vrev32q_m_f16): Likewise.
8273 (vrmlaldavhq_p_s32): Likewise.
8274 (vrmlaldavhxq_p_s32): Likewise.
8275 (vrmlsldavhq_p_s32): Likewise.
8276 (vrmlsldavhxq_p_s32): Likewise.
8277 (vaddlvaq_p_u32): Likewise.
8278 (vrev16q_m_u8): Likewise.
8279 (vrmlaldavhq_p_u32): Likewise.
8280 (vmvnq_m_n_s16): Likewise.
8281 (vorrq_m_n_s16): Likewise.
8282 (vqrshrntq_n_s16): Likewise.
8283 (vqshrnbq_n_s16): Likewise.
8284 (vqshrntq_n_s16): Likewise.
8285 (vrshrnbq_n_s16): Likewise.
8286 (vrshrntq_n_s16): Likewise.
8287 (vshrnbq_n_s16): Likewise.
8288 (vshrntq_n_s16): Likewise.
8289 (vcmlaq_f16): Likewise.
8290 (vcmlaq_rot180_f16): Likewise.
8291 (vcmlaq_rot270_f16): Likewise.
8292 (vcmlaq_rot90_f16): Likewise.
8293 (vfmaq_f16): Likewise.
8294 (vfmaq_n_f16): Likewise.
8295 (vfmasq_n_f16): Likewise.
8296 (vfmsq_f16): Likewise.
8297 (vmlaldavaq_s16): Likewise.
8298 (vmlaldavaxq_s16): Likewise.
8299 (vmlsldavaq_s16): Likewise.
8300 (vmlsldavaxq_s16): Likewise.
8301 (vabsq_m_f16): Likewise.
8302 (vcvtmq_m_s16_f16): Likewise.
8303 (vcvtnq_m_s16_f16): Likewise.
8304 (vcvtpq_m_s16_f16): Likewise.
8305 (vcvtq_m_s16_f16): Likewise.
8306 (vdupq_m_n_f16): Likewise.
8307 (vmaxnmaq_m_f16): Likewise.
8308 (vmaxnmavq_p_f16): Likewise.
8309 (vmaxnmvq_p_f16): Likewise.
8310 (vminnmaq_m_f16): Likewise.
8311 (vminnmavq_p_f16): Likewise.
8312 (vminnmvq_p_f16): Likewise.
8313 (vmlaldavq_p_s16): Likewise.
8314 (vmlaldavxq_p_s16): Likewise.
8315 (vmlsldavq_p_s16): Likewise.
8316 (vmlsldavxq_p_s16): Likewise.
8317 (vmovlbq_m_s8): Likewise.
8318 (vmovltq_m_s8): Likewise.
8319 (vmovnbq_m_s16): Likewise.
8320 (vmovntq_m_s16): Likewise.
8321 (vnegq_m_f16): Likewise.
8322 (vpselq_f16): Likewise.
8323 (vqmovnbq_m_s16): Likewise.
8324 (vqmovntq_m_s16): Likewise.
8325 (vrev32q_m_s8): Likewise.
8326 (vrev64q_m_f16): Likewise.
8327 (vrndaq_m_f16): Likewise.
8328 (vrndmq_m_f16): Likewise.
8329 (vrndnq_m_f16): Likewise.
8330 (vrndpq_m_f16): Likewise.
8331 (vrndq_m_f16): Likewise.
8332 (vrndxq_m_f16): Likewise.
8333 (vcmpeqq_m_n_f16): Likewise.
8334 (vcmpgeq_m_f16): Likewise.
8335 (vcmpgeq_m_n_f16): Likewise.
8336 (vcmpgtq_m_f16): Likewise.
8337 (vcmpgtq_m_n_f16): Likewise.
8338 (vcmpleq_m_f16): Likewise.
8339 (vcmpleq_m_n_f16): Likewise.
8340 (vcmpltq_m_f16): Likewise.
8341 (vcmpltq_m_n_f16): Likewise.
8342 (vcmpneq_m_f16): Likewise.
8343 (vcmpneq_m_n_f16): Likewise.
8344 (vmvnq_m_n_u16): Likewise.
8345 (vorrq_m_n_u16): Likewise.
8346 (vqrshruntq_n_s16): Likewise.
8347 (vqshrunbq_n_s16): Likewise.
8348 (vqshruntq_n_s16): Likewise.
8349 (vcvtmq_m_u16_f16): Likewise.
8350 (vcvtnq_m_u16_f16): Likewise.
8351 (vcvtpq_m_u16_f16): Likewise.
8352 (vcvtq_m_u16_f16): Likewise.
8353 (vqmovunbq_m_s16): Likewise.
8354 (vqmovuntq_m_s16): Likewise.
8355 (vqrshrntq_n_u16): Likewise.
8356 (vqshrnbq_n_u16): Likewise.
8357 (vqshrntq_n_u16): Likewise.
8358 (vrshrnbq_n_u16): Likewise.
8359 (vrshrntq_n_u16): Likewise.
8360 (vshrnbq_n_u16): Likewise.
8361 (vshrntq_n_u16): Likewise.
8362 (vmlaldavaq_u16): Likewise.
8363 (vmlaldavaxq_u16): Likewise.
8364 (vmlaldavq_p_u16): Likewise.
8365 (vmlaldavxq_p_u16): Likewise.
8366 (vmovlbq_m_u8): Likewise.
8367 (vmovltq_m_u8): Likewise.
8368 (vmovnbq_m_u16): Likewise.
8369 (vmovntq_m_u16): Likewise.
8370 (vqmovnbq_m_u16): Likewise.
8371 (vqmovntq_m_u16): Likewise.
8372 (vrev32q_m_u8): Likewise.
8373 (vmvnq_m_n_s32): Likewise.
8374 (vorrq_m_n_s32): Likewise.
8375 (vqrshrntq_n_s32): Likewise.
8376 (vqshrnbq_n_s32): Likewise.
8377 (vqshrntq_n_s32): Likewise.
8378 (vrshrnbq_n_s32): Likewise.
8379 (vrshrntq_n_s32): Likewise.
8380 (vshrnbq_n_s32): Likewise.
8381 (vshrntq_n_s32): Likewise.
8382 (vcmlaq_f32): Likewise.
8383 (vcmlaq_rot180_f32): Likewise.
8384 (vcmlaq_rot270_f32): Likewise.
8385 (vcmlaq_rot90_f32): Likewise.
8386 (vfmaq_f32): Likewise.
8387 (vfmaq_n_f32): Likewise.
8388 (vfmasq_n_f32): Likewise.
8389 (vfmsq_f32): Likewise.
8390 (vmlaldavaq_s32): Likewise.
8391 (vmlaldavaxq_s32): Likewise.
8392 (vmlsldavaq_s32): Likewise.
8393 (vmlsldavaxq_s32): Likewise.
8394 (vabsq_m_f32): Likewise.
8395 (vcvtmq_m_s32_f32): Likewise.
8396 (vcvtnq_m_s32_f32): Likewise.
8397 (vcvtpq_m_s32_f32): Likewise.
8398 (vcvtq_m_s32_f32): Likewise.
8399 (vdupq_m_n_f32): Likewise.
8400 (vmaxnmaq_m_f32): Likewise.
8401 (vmaxnmavq_p_f32): Likewise.
8402 (vmaxnmvq_p_f32): Likewise.
8403 (vminnmaq_m_f32): Likewise.
8404 (vminnmavq_p_f32): Likewise.
8405 (vminnmvq_p_f32): Likewise.
8406 (vmlaldavq_p_s32): Likewise.
8407 (vmlaldavxq_p_s32): Likewise.
8408 (vmlsldavq_p_s32): Likewise.
8409 (vmlsldavxq_p_s32): Likewise.
8410 (vmovlbq_m_s16): Likewise.
8411 (vmovltq_m_s16): Likewise.
8412 (vmovnbq_m_s32): Likewise.
8413 (vmovntq_m_s32): Likewise.
8414 (vnegq_m_f32): Likewise.
8415 (vpselq_f32): Likewise.
8416 (vqmovnbq_m_s32): Likewise.
8417 (vqmovntq_m_s32): Likewise.
8418 (vrev32q_m_s16): Likewise.
8419 (vrev64q_m_f32): Likewise.
8420 (vrndaq_m_f32): Likewise.
8421 (vrndmq_m_f32): Likewise.
8422 (vrndnq_m_f32): Likewise.
8423 (vrndpq_m_f32): Likewise.
8424 (vrndq_m_f32): Likewise.
8425 (vrndxq_m_f32): Likewise.
8426 (vcmpeqq_m_n_f32): Likewise.
8427 (vcmpgeq_m_f32): Likewise.
8428 (vcmpgeq_m_n_f32): Likewise.
8429 (vcmpgtq_m_f32): Likewise.
8430 (vcmpgtq_m_n_f32): Likewise.
8431 (vcmpleq_m_f32): Likewise.
8432 (vcmpleq_m_n_f32): Likewise.
8433 (vcmpltq_m_f32): Likewise.
8434 (vcmpltq_m_n_f32): Likewise.
8435 (vcmpneq_m_f32): Likewise.
8436 (vcmpneq_m_n_f32): Likewise.
8437 (vmvnq_m_n_u32): Likewise.
8438 (vorrq_m_n_u32): Likewise.
8439 (vqrshruntq_n_s32): Likewise.
8440 (vqshrunbq_n_s32): Likewise.
8441 (vqshruntq_n_s32): Likewise.
8442 (vcvtmq_m_u32_f32): Likewise.
8443 (vcvtnq_m_u32_f32): Likewise.
8444 (vcvtpq_m_u32_f32): Likewise.
8445 (vcvtq_m_u32_f32): Likewise.
8446 (vqmovunbq_m_s32): Likewise.
8447 (vqmovuntq_m_s32): Likewise.
8448 (vqrshrntq_n_u32): Likewise.
8449 (vqshrnbq_n_u32): Likewise.
8450 (vqshrntq_n_u32): Likewise.
8451 (vrshrnbq_n_u32): Likewise.
8452 (vrshrntq_n_u32): Likewise.
8453 (vshrnbq_n_u32): Likewise.
8454 (vshrntq_n_u32): Likewise.
8455 (vmlaldavaq_u32): Likewise.
8456 (vmlaldavaxq_u32): Likewise.
8457 (vmlaldavq_p_u32): Likewise.
8458 (vmlaldavxq_p_u32): Likewise.
8459 (vmovlbq_m_u16): Likewise.
8460 (vmovltq_m_u16): Likewise.
8461 (vmovnbq_m_u32): Likewise.
8462 (vmovntq_m_u32): Likewise.
8463 (vqmovnbq_m_u32): Likewise.
8464 (vqmovntq_m_u32): Likewise.
8465 (vrev32q_m_u16): Likewise.
8466 (__arm_vrmlaldavhaxq_s32): Define intrinsic.
8467 (__arm_vrmlsldavhaq_s32): Likewise.
8468 (__arm_vrmlsldavhaxq_s32): Likewise.
8469 (__arm_vaddlvaq_p_s32): Likewise.
8470 (__arm_vrev16q_m_s8): Likewise.
8471 (__arm_vrmlaldavhq_p_s32): Likewise.
8472 (__arm_vrmlaldavhxq_p_s32): Likewise.
8473 (__arm_vrmlsldavhq_p_s32): Likewise.
8474 (__arm_vrmlsldavhxq_p_s32): Likewise.
8475 (__arm_vaddlvaq_p_u32): Likewise.
8476 (__arm_vrev16q_m_u8): Likewise.
8477 (__arm_vrmlaldavhq_p_u32): Likewise.
8478 (__arm_vmvnq_m_n_s16): Likewise.
8479 (__arm_vorrq_m_n_s16): Likewise.
8480 (__arm_vqrshrntq_n_s16): Likewise.
8481 (__arm_vqshrnbq_n_s16): Likewise.
8482 (__arm_vqshrntq_n_s16): Likewise.
8483 (__arm_vrshrnbq_n_s16): Likewise.
8484 (__arm_vrshrntq_n_s16): Likewise.
8485 (__arm_vshrnbq_n_s16): Likewise.
8486 (__arm_vshrntq_n_s16): Likewise.
8487 (__arm_vmlaldavaq_s16): Likewise.
8488 (__arm_vmlaldavaxq_s16): Likewise.
8489 (__arm_vmlsldavaq_s16): Likewise.
8490 (__arm_vmlsldavaxq_s16): Likewise.
8491 (__arm_vmlaldavq_p_s16): Likewise.
8492 (__arm_vmlaldavxq_p_s16): Likewise.
8493 (__arm_vmlsldavq_p_s16): Likewise.
8494 (__arm_vmlsldavxq_p_s16): Likewise.
8495 (__arm_vmovlbq_m_s8): Likewise.
8496 (__arm_vmovltq_m_s8): Likewise.
8497 (__arm_vmovnbq_m_s16): Likewise.
8498 (__arm_vmovntq_m_s16): Likewise.
8499 (__arm_vqmovnbq_m_s16): Likewise.
8500 (__arm_vqmovntq_m_s16): Likewise.
8501 (__arm_vrev32q_m_s8): Likewise.
8502 (__arm_vmvnq_m_n_u16): Likewise.
8503 (__arm_vorrq_m_n_u16): Likewise.
8504 (__arm_vqrshruntq_n_s16): Likewise.
8505 (__arm_vqshrunbq_n_s16): Likewise.
8506 (__arm_vqshruntq_n_s16): Likewise.
8507 (__arm_vqmovunbq_m_s16): Likewise.
8508 (__arm_vqmovuntq_m_s16): Likewise.
8509 (__arm_vqrshrntq_n_u16): Likewise.
8510 (__arm_vqshrnbq_n_u16): Likewise.
8511 (__arm_vqshrntq_n_u16): Likewise.
8512 (__arm_vrshrnbq_n_u16): Likewise.
8513 (__arm_vrshrntq_n_u16): Likewise.
8514 (__arm_vshrnbq_n_u16): Likewise.
8515 (__arm_vshrntq_n_u16): Likewise.
8516 (__arm_vmlaldavaq_u16): Likewise.
8517 (__arm_vmlaldavaxq_u16): Likewise.
8518 (__arm_vmlaldavq_p_u16): Likewise.
8519 (__arm_vmlaldavxq_p_u16): Likewise.
8520 (__arm_vmovlbq_m_u8): Likewise.
8521 (__arm_vmovltq_m_u8): Likewise.
8522 (__arm_vmovnbq_m_u16): Likewise.
8523 (__arm_vmovntq_m_u16): Likewise.
8524 (__arm_vqmovnbq_m_u16): Likewise.
8525 (__arm_vqmovntq_m_u16): Likewise.
8526 (__arm_vrev32q_m_u8): Likewise.
8527 (__arm_vmvnq_m_n_s32): Likewise.
8528 (__arm_vorrq_m_n_s32): Likewise.
8529 (__arm_vqrshrntq_n_s32): Likewise.
8530 (__arm_vqshrnbq_n_s32): Likewise.
8531 (__arm_vqshrntq_n_s32): Likewise.
8532 (__arm_vrshrnbq_n_s32): Likewise.
8533 (__arm_vrshrntq_n_s32): Likewise.
8534 (__arm_vshrnbq_n_s32): Likewise.
8535 (__arm_vshrntq_n_s32): Likewise.
8536 (__arm_vmlaldavaq_s32): Likewise.
8537 (__arm_vmlaldavaxq_s32): Likewise.
8538 (__arm_vmlsldavaq_s32): Likewise.
8539 (__arm_vmlsldavaxq_s32): Likewise.
8540 (__arm_vmlaldavq_p_s32): Likewise.
8541 (__arm_vmlaldavxq_p_s32): Likewise.
8542 (__arm_vmlsldavq_p_s32): Likewise.
8543 (__arm_vmlsldavxq_p_s32): Likewise.
8544 (__arm_vmovlbq_m_s16): Likewise.
8545 (__arm_vmovltq_m_s16): Likewise.
8546 (__arm_vmovnbq_m_s32): Likewise.
8547 (__arm_vmovntq_m_s32): Likewise.
8548 (__arm_vqmovnbq_m_s32): Likewise.
8549 (__arm_vqmovntq_m_s32): Likewise.
8550 (__arm_vrev32q_m_s16): Likewise.
8551 (__arm_vmvnq_m_n_u32): Likewise.
8552 (__arm_vorrq_m_n_u32): Likewise.
8553 (__arm_vqrshruntq_n_s32): Likewise.
8554 (__arm_vqshrunbq_n_s32): Likewise.
8555 (__arm_vqshruntq_n_s32): Likewise.
8556 (__arm_vqmovunbq_m_s32): Likewise.
8557 (__arm_vqmovuntq_m_s32): Likewise.
8558 (__arm_vqrshrntq_n_u32): Likewise.
8559 (__arm_vqshrnbq_n_u32): Likewise.
8560 (__arm_vqshrntq_n_u32): Likewise.
8561 (__arm_vrshrnbq_n_u32): Likewise.
8562 (__arm_vrshrntq_n_u32): Likewise.
8563 (__arm_vshrnbq_n_u32): Likewise.
8564 (__arm_vshrntq_n_u32): Likewise.
8565 (__arm_vmlaldavaq_u32): Likewise.
8566 (__arm_vmlaldavaxq_u32): Likewise.
8567 (__arm_vmlaldavq_p_u32): Likewise.
8568 (__arm_vmlaldavxq_p_u32): Likewise.
8569 (__arm_vmovlbq_m_u16): Likewise.
8570 (__arm_vmovltq_m_u16): Likewise.
8571 (__arm_vmovnbq_m_u32): Likewise.
8572 (__arm_vmovntq_m_u32): Likewise.
8573 (__arm_vqmovnbq_m_u32): Likewise.
8574 (__arm_vqmovntq_m_u32): Likewise.
8575 (__arm_vrev32q_m_u16): Likewise.
8576 (__arm_vcvtbq_m_f16_f32): Likewise.
8577 (__arm_vcvtbq_m_f32_f16): Likewise.
8578 (__arm_vcvttq_m_f16_f32): Likewise.
8579 (__arm_vcvttq_m_f32_f16): Likewise.
8580 (__arm_vrev32q_m_f16): Likewise.
8581 (__arm_vcmlaq_f16): Likewise.
8582 (__arm_vcmlaq_rot180_f16): Likewise.
8583 (__arm_vcmlaq_rot270_f16): Likewise.
8584 (__arm_vcmlaq_rot90_f16): Likewise.
8585 (__arm_vfmaq_f16): Likewise.
8586 (__arm_vfmaq_n_f16): Likewise.
8587 (__arm_vfmasq_n_f16): Likewise.
8588 (__arm_vfmsq_f16): Likewise.
8589 (__arm_vabsq_m_f16): Likewise.
8590 (__arm_vcvtmq_m_s16_f16): Likewise.
8591 (__arm_vcvtnq_m_s16_f16): Likewise.
8592 (__arm_vcvtpq_m_s16_f16): Likewise.
8593 (__arm_vcvtq_m_s16_f16): Likewise.
8594 (__arm_vdupq_m_n_f16): Likewise.
8595 (__arm_vmaxnmaq_m_f16): Likewise.
8596 (__arm_vmaxnmavq_p_f16): Likewise.
8597 (__arm_vmaxnmvq_p_f16): Likewise.
8598 (__arm_vminnmaq_m_f16): Likewise.
8599 (__arm_vminnmavq_p_f16): Likewise.
8600 (__arm_vminnmvq_p_f16): Likewise.
8601 (__arm_vnegq_m_f16): Likewise.
8602 (__arm_vpselq_f16): Likewise.
8603 (__arm_vrev64q_m_f16): Likewise.
8604 (__arm_vrndaq_m_f16): Likewise.
8605 (__arm_vrndmq_m_f16): Likewise.
8606 (__arm_vrndnq_m_f16): Likewise.
8607 (__arm_vrndpq_m_f16): Likewise.
8608 (__arm_vrndq_m_f16): Likewise.
8609 (__arm_vrndxq_m_f16): Likewise.
8610 (__arm_vcmpeqq_m_n_f16): Likewise.
8611 (__arm_vcmpgeq_m_f16): Likewise.
8612 (__arm_vcmpgeq_m_n_f16): Likewise.
8613 (__arm_vcmpgtq_m_f16): Likewise.
8614 (__arm_vcmpgtq_m_n_f16): Likewise.
8615 (__arm_vcmpleq_m_f16): Likewise.
8616 (__arm_vcmpleq_m_n_f16): Likewise.
8617 (__arm_vcmpltq_m_f16): Likewise.
8618 (__arm_vcmpltq_m_n_f16): Likewise.
8619 (__arm_vcmpneq_m_f16): Likewise.
8620 (__arm_vcmpneq_m_n_f16): Likewise.
8621 (__arm_vcvtmq_m_u16_f16): Likewise.
8622 (__arm_vcvtnq_m_u16_f16): Likewise.
8623 (__arm_vcvtpq_m_u16_f16): Likewise.
8624 (__arm_vcvtq_m_u16_f16): Likewise.
8625 (__arm_vcmlaq_f32): Likewise.
8626 (__arm_vcmlaq_rot180_f32): Likewise.
8627 (__arm_vcmlaq_rot270_f32): Likewise.
8628 (__arm_vcmlaq_rot90_f32): Likewise.
8629 (__arm_vfmaq_f32): Likewise.
8630 (__arm_vfmaq_n_f32): Likewise.
8631 (__arm_vfmasq_n_f32): Likewise.
8632 (__arm_vfmsq_f32): Likewise.
8633 (__arm_vabsq_m_f32): Likewise.
8634 (__arm_vcvtmq_m_s32_f32): Likewise.
8635 (__arm_vcvtnq_m_s32_f32): Likewise.
8636 (__arm_vcvtpq_m_s32_f32): Likewise.
8637 (__arm_vcvtq_m_s32_f32): Likewise.
8638 (__arm_vdupq_m_n_f32): Likewise.
8639 (__arm_vmaxnmaq_m_f32): Likewise.
8640 (__arm_vmaxnmavq_p_f32): Likewise.
8641 (__arm_vmaxnmvq_p_f32): Likewise.
8642 (__arm_vminnmaq_m_f32): Likewise.
8643 (__arm_vminnmavq_p_f32): Likewise.
8644 (__arm_vminnmvq_p_f32): Likewise.
8645 (__arm_vnegq_m_f32): Likewise.
8646 (__arm_vpselq_f32): Likewise.
8647 (__arm_vrev64q_m_f32): Likewise.
8648 (__arm_vrndaq_m_f32): Likewise.
8649 (__arm_vrndmq_m_f32): Likewise.
8650 (__arm_vrndnq_m_f32): Likewise.
8651 (__arm_vrndpq_m_f32): Likewise.
8652 (__arm_vrndq_m_f32): Likewise.
8653 (__arm_vrndxq_m_f32): Likewise.
8654 (__arm_vcmpeqq_m_n_f32): Likewise.
8655 (__arm_vcmpgeq_m_f32): Likewise.
8656 (__arm_vcmpgeq_m_n_f32): Likewise.
8657 (__arm_vcmpgtq_m_f32): Likewise.
8658 (__arm_vcmpgtq_m_n_f32): Likewise.
8659 (__arm_vcmpleq_m_f32): Likewise.
8660 (__arm_vcmpleq_m_n_f32): Likewise.
8661 (__arm_vcmpltq_m_f32): Likewise.
8662 (__arm_vcmpltq_m_n_f32): Likewise.
8663 (__arm_vcmpneq_m_f32): Likewise.
8664 (__arm_vcmpneq_m_n_f32): Likewise.
8665 (__arm_vcvtmq_m_u32_f32): Likewise.
8666 (__arm_vcvtnq_m_u32_f32): Likewise.
8667 (__arm_vcvtpq_m_u32_f32): Likewise.
8668 (__arm_vcvtq_m_u32_f32): Likewise.
8669 (vcvtq_m): Define polymorphic variant.
8670 (vabsq_m): Likewise.
8671 (vcmlaq): Likewise.
8672 (vcmlaq_rot180): Likewise.
8673 (vcmlaq_rot270): Likewise.
8674 (vcmlaq_rot90): Likewise.
8675 (vcmpeqq_m_n): Likewise.
8676 (vcmpgeq_m_n): Likewise.
8677 (vrndxq_m): Likewise.
8678 (vrndq_m): Likewise.
8679 (vrndpq_m): Likewise.
8680 (vcmpgtq_m_n): Likewise.
8681 (vcmpgtq_m): Likewise.
8682 (vcmpleq_m): Likewise.
8683 (vcmpleq_m_n): Likewise.
8684 (vcmpltq_m_n): Likewise.
8685 (vcmpltq_m): Likewise.
8686 (vcmpneq_m): Likewise.
8687 (vcmpneq_m_n): Likewise.
8688 (vcvtbq_m): Likewise.
8689 (vcvttq_m): Likewise.
8690 (vcvtmq_m): Likewise.
8691 (vcvtnq_m): Likewise.
8692 (vcvtpq_m): Likewise.
8693 (vdupq_m_n): Likewise.
8694 (vfmaq_n): Likewise.
8695 (vfmaq): Likewise.
8696 (vfmasq_n): Likewise.
8697 (vfmsq): Likewise.
8698 (vmaxnmaq_m): Likewise.
8699 (vmaxnmavq_m): Likewise.
8700 (vmaxnmvq_m): Likewise.
8701 (vmaxnmavq_p): Likewise.
8702 (vmaxnmvq_p): Likewise.
8703 (vminnmaq_m): Likewise.
8704 (vminnmavq_p): Likewise.
8705 (vminnmvq_p): Likewise.
8706 (vrndnq_m): Likewise.
8707 (vrndaq_m): Likewise.
8708 (vrndmq_m): Likewise.
8709 (vrev64q_m): Likewise.
8710 (vrev32q_m): Likewise.
8711 (vpselq): Likewise.
8712 (vnegq_m): Likewise.
8713 (vcmpgeq_m): Likewise.
8714 (vshrntq_n): Likewise.
8715 (vrshrntq_n): Likewise.
8716 (vmovlbq_m): Likewise.
8717 (vmovnbq_m): Likewise.
8718 (vmovntq_m): Likewise.
8719 (vmvnq_m_n): Likewise.
8720 (vmvnq_m): Likewise.
8721 (vshrnbq_n): Likewise.
8722 (vrshrnbq_n): Likewise.
8723 (vqshruntq_n): Likewise.
8724 (vrev16q_m): Likewise.
8725 (vqshrunbq_n): Likewise.
8726 (vqshrntq_n): Likewise.
8727 (vqrshruntq_n): Likewise.
8728 (vqrshrntq_n): Likewise.
8729 (vqshrnbq_n): Likewise.
8730 (vqmovuntq_m): Likewise.
8731 (vqmovntq_m): Likewise.
8732 (vqmovnbq_m): Likewise.
8733 (vorrq_m_n): Likewise.
8734 (vmovltq_m): Likewise.
8735 (vqmovunbq_m): Likewise.
8736 (vaddlvaq_p): Likewise.
8737 (vmlaldavaq): Likewise.
8738 (vmlaldavaxq): Likewise.
8739 (vmlaldavq_p): Likewise.
8740 (vmlaldavxq_p): Likewise.
8741 (vmlsldavaq): Likewise.
8742 (vmlsldavaxq): Likewise.
8743 (vmlsldavq_p): Likewise.
8744 (vmlsldavxq_p): Likewise.
8745 (vrmlaldavhaxq): Likewise.
8746 (vrmlaldavhq_p): Likewise.
8747 (vrmlaldavhxq_p): Likewise.
8748 (vrmlsldavhaq): Likewise.
8749 (vrmlsldavhaxq): Likewise.
8750 (vrmlsldavhq_p): Likewise.
8751 (vrmlsldavhxq_p): Likewise.
8752 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use
8753 builtin qualifier.
8754 (TERNOP_NONE_NONE_NONE_IMM): Likewise.
8755 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
8756 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
8757 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
8758 (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise.
8759 (TERNOP_UNONE_UNONE_NONE_IMM): Likewise.
8760 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
8761 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
8762 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
8763 * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator.
8764 (MVE_pred3): Likewise.
8765 (MVE_constraint1): Likewise.
8766 (MVE_pred1): Likewise.
8767 (VMLALDAVQ_P): Define iterator.
8768 (VQMOVNBQ_M): Likewise.
8769 (VMOVLTQ_M): Likewise.
8770 (VMOVNBQ_M): Likewise.
8771 (VRSHRNTQ_N): Likewise.
8772 (VORRQ_M_N): Likewise.
8773 (VREV32Q_M): Likewise.
8774 (VREV16Q_M): Likewise.
8775 (VQRSHRNTQ_N): Likewise.
8776 (VMOVNTQ_M): Likewise.
8777 (VMOVLBQ_M): Likewise.
8778 (VMLALDAVAQ): Likewise.
8779 (VQSHRNBQ_N): Likewise.
8780 (VSHRNBQ_N): Likewise.
8781 (VRSHRNBQ_N): Likewise.
8782 (VMLALDAVXQ_P): Likewise.
8783 (VQMOVNTQ_M): Likewise.
8784 (VMVNQ_M_N): Likewise.
8785 (VQSHRNTQ_N): Likewise.
8786 (VMLALDAVAXQ): Likewise.
8787 (VSHRNTQ_N): Likewise.
8788 (VCVTMQ_M): Likewise.
8789 (VCVTNQ_M): Likewise.
8790 (VCVTPQ_M): Likewise.
8791 (VCVTQ_M_N_FROM_F): Likewise.
8792 (VCVTQ_M_FROM_F): Likewise.
8793 (VRMLALDAVHQ_P): Likewise.
8794 (VADDLVAQ_P): Likewise.
8795 (mve_vrndq_m_f<mode>): Define RTL pattern.
8796 (mve_vabsq_m_f<mode>): Likewise.
8797 (mve_vaddlvaq_p_<supf>v4si): Likewise.
8798 (mve_vcmlaq_f<mode>): Likewise.
8799 (mve_vcmlaq_rot180_f<mode>): Likewise.
8800 (mve_vcmlaq_rot270_f<mode>): Likewise.
8801 (mve_vcmlaq_rot90_f<mode>): Likewise.
8802 (mve_vcmpeqq_m_n_f<mode>): Likewise.
8803 (mve_vcmpgeq_m_f<mode>): Likewise.
8804 (mve_vcmpgeq_m_n_f<mode>): Likewise.
8805 (mve_vcmpgtq_m_f<mode>): Likewise.
8806 (mve_vcmpgtq_m_n_f<mode>): Likewise.
8807 (mve_vcmpleq_m_f<mode>): Likewise.
8808 (mve_vcmpleq_m_n_f<mode>): Likewise.
8809 (mve_vcmpltq_m_f<mode>): Likewise.
8810 (mve_vcmpltq_m_n_f<mode>): Likewise.
8811 (mve_vcmpneq_m_f<mode>): Likewise.
8812 (mve_vcmpneq_m_n_f<mode>): Likewise.
8813 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
8814 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
8815 (mve_vcvttq_m_f16_f32v8hf): Likewise.
8816 (mve_vcvttq_m_f32_f16v4sf): Likewise.
8817 (mve_vdupq_m_n_f<mode>): Likewise.
8818 (mve_vfmaq_f<mode>): Likewise.
8819 (mve_vfmaq_n_f<mode>): Likewise.
8820 (mve_vfmasq_n_f<mode>): Likewise.
8821 (mve_vfmsq_f<mode>): Likewise.
8822 (mve_vmaxnmaq_m_f<mode>): Likewise.
8823 (mve_vmaxnmavq_p_f<mode>): Likewise.
8824 (mve_vmaxnmvq_p_f<mode>): Likewise.
8825 (mve_vminnmaq_m_f<mode>): Likewise.
8826 (mve_vminnmavq_p_f<mode>): Likewise.
8827 (mve_vminnmvq_p_f<mode>): Likewise.
8828 (mve_vmlaldavaq_<supf><mode>): Likewise.
8829 (mve_vmlaldavaxq_<supf><mode>): Likewise.
8830 (mve_vmlaldavq_p_<supf><mode>): Likewise.
8831 (mve_vmlaldavxq_p_<supf><mode>): Likewise.
8832 (mve_vmlsldavaq_s<mode>): Likewise.
8833 (mve_vmlsldavaxq_s<mode>): Likewise.
8834 (mve_vmlsldavq_p_s<mode>): Likewise.
8835 (mve_vmlsldavxq_p_s<mode>): Likewise.
8836 (mve_vmovlbq_m_<supf><mode>): Likewise.
8837 (mve_vmovltq_m_<supf><mode>): Likewise.
8838 (mve_vmovnbq_m_<supf><mode>): Likewise.
8839 (mve_vmovntq_m_<supf><mode>): Likewise.
8840 (mve_vmvnq_m_n_<supf><mode>): Likewise.
8841 (mve_vnegq_m_f<mode>): Likewise.
8842 (mve_vorrq_m_n_<supf><mode>): Likewise.
8843 (mve_vpselq_f<mode>): Likewise.
8844 (mve_vqmovnbq_m_<supf><mode>): Likewise.
8845 (mve_vqmovntq_m_<supf><mode>): Likewise.
8846 (mve_vqmovunbq_m_s<mode>): Likewise.
8847 (mve_vqmovuntq_m_s<mode>): Likewise.
8848 (mve_vqrshrntq_n_<supf><mode>): Likewise.
8849 (mve_vqrshruntq_n_s<mode>): Likewise.
8850 (mve_vqshrnbq_n_<supf><mode>): Likewise.
8851 (mve_vqshrntq_n_<supf><mode>): Likewise.
8852 (mve_vqshrunbq_n_s<mode>): Likewise.
8853 (mve_vqshruntq_n_s<mode>): Likewise.
8854 (mve_vrev32q_m_fv8hf): Likewise.
8855 (mve_vrev32q_m_<supf><mode>): Likewise.
8856 (mve_vrev64q_m_f<mode>): Likewise.
8857 (mve_vrmlaldavhaxq_sv4si): Likewise.
8858 (mve_vrmlaldavhxq_p_sv4si): Likewise.
8859 (mve_vrmlsldavhaxq_sv4si): Likewise.
8860 (mve_vrmlsldavhq_p_sv4si): Likewise.
8861 (mve_vrmlsldavhxq_p_sv4si): Likewise.
8862 (mve_vrndaq_m_f<mode>): Likewise.
8863 (mve_vrndmq_m_f<mode>): Likewise.
8864 (mve_vrndnq_m_f<mode>): Likewise.
8865 (mve_vrndpq_m_f<mode>): Likewise.
8866 (mve_vrndxq_m_f<mode>): Likewise.
8867 (mve_vrshrnbq_n_<supf><mode>): Likewise.
8868 (mve_vrshrntq_n_<supf><mode>): Likewise.
8869 (mve_vshrnbq_n_<supf><mode>): Likewise.
8870 (mve_vshrntq_n_<supf><mode>): Likewise.
8871 (mve_vcvtmq_m_<supf><mode>): Likewise.
8872 (mve_vcvtpq_m_<supf><mode>): Likewise.
8873 (mve_vcvtnq_m_<supf><mode>): Likewise.
8874 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
8875 (mve_vrev16q_m_<supf>v16qi): Likewise.
8876 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
8877 (mve_vrmlaldavhq_p_<supf>v4si): Likewise.
8878 (mve_vrmlsldavhaq_sv4si): Likewise.
8879
8880 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
8881 Mihail Ionescu <mihail.ionescu@arm.com>
8882 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8883
8884 * config/arm/arm_mve.h (vpselq_u8): Define macro.
8885 (vpselq_s8): Likewise.
8886 (vrev64q_m_u8): Likewise.
8887 (vqrdmlashq_n_u8): Likewise.
8888 (vqrdmlahq_n_u8): Likewise.
8889 (vqdmlahq_n_u8): Likewise.
8890 (vmvnq_m_u8): Likewise.
8891 (vmlasq_n_u8): Likewise.
8892 (vmlaq_n_u8): Likewise.
8893 (vmladavq_p_u8): Likewise.
8894 (vmladavaq_u8): Likewise.
8895 (vminvq_p_u8): Likewise.
8896 (vmaxvq_p_u8): Likewise.
8897 (vdupq_m_n_u8): Likewise.
8898 (vcmpneq_m_u8): Likewise.
8899 (vcmpneq_m_n_u8): Likewise.
8900 (vcmphiq_m_u8): Likewise.
8901 (vcmphiq_m_n_u8): Likewise.
8902 (vcmpeqq_m_u8): Likewise.
8903 (vcmpeqq_m_n_u8): Likewise.
8904 (vcmpcsq_m_u8): Likewise.
8905 (vcmpcsq_m_n_u8): Likewise.
8906 (vclzq_m_u8): Likewise.
8907 (vaddvaq_p_u8): Likewise.
8908 (vsriq_n_u8): Likewise.
8909 (vsliq_n_u8): Likewise.
8910 (vshlq_m_r_u8): Likewise.
8911 (vrshlq_m_n_u8): Likewise.
8912 (vqshlq_m_r_u8): Likewise.
8913 (vqrshlq_m_n_u8): Likewise.
8914 (vminavq_p_s8): Likewise.
8915 (vminaq_m_s8): Likewise.
8916 (vmaxavq_p_s8): Likewise.
8917 (vmaxaq_m_s8): Likewise.
8918 (vcmpneq_m_s8): Likewise.
8919 (vcmpneq_m_n_s8): Likewise.
8920 (vcmpltq_m_s8): Likewise.
8921 (vcmpltq_m_n_s8): Likewise.
8922 (vcmpleq_m_s8): Likewise.
8923 (vcmpleq_m_n_s8): Likewise.
8924 (vcmpgtq_m_s8): Likewise.
8925 (vcmpgtq_m_n_s8): Likewise.
8926 (vcmpgeq_m_s8): Likewise.
8927 (vcmpgeq_m_n_s8): Likewise.
8928 (vcmpeqq_m_s8): Likewise.
8929 (vcmpeqq_m_n_s8): Likewise.
8930 (vshlq_m_r_s8): Likewise.
8931 (vrshlq_m_n_s8): Likewise.
8932 (vrev64q_m_s8): Likewise.
8933 (vqshlq_m_r_s8): Likewise.
8934 (vqrshlq_m_n_s8): Likewise.
8935 (vqnegq_m_s8): Likewise.
8936 (vqabsq_m_s8): Likewise.
8937 (vnegq_m_s8): Likewise.
8938 (vmvnq_m_s8): Likewise.
8939 (vmlsdavxq_p_s8): Likewise.
8940 (vmlsdavq_p_s8): Likewise.
8941 (vmladavxq_p_s8): Likewise.
8942 (vmladavq_p_s8): Likewise.
8943 (vminvq_p_s8): Likewise.
8944 (vmaxvq_p_s8): Likewise.
8945 (vdupq_m_n_s8): Likewise.
8946 (vclzq_m_s8): Likewise.
8947 (vclsq_m_s8): Likewise.
8948 (vaddvaq_p_s8): Likewise.
8949 (vabsq_m_s8): Likewise.
8950 (vqrdmlsdhxq_s8): Likewise.
8951 (vqrdmlsdhq_s8): Likewise.
8952 (vqrdmlashq_n_s8): Likewise.
8953 (vqrdmlahq_n_s8): Likewise.
8954 (vqrdmladhxq_s8): Likewise.
8955 (vqrdmladhq_s8): Likewise.
8956 (vqdmlsdhxq_s8): Likewise.
8957 (vqdmlsdhq_s8): Likewise.
8958 (vqdmlahq_n_s8): Likewise.
8959 (vqdmladhxq_s8): Likewise.
8960 (vqdmladhq_s8): Likewise.
8961 (vmlsdavaxq_s8): Likewise.
8962 (vmlsdavaq_s8): Likewise.
8963 (vmlasq_n_s8): Likewise.
8964 (vmlaq_n_s8): Likewise.
8965 (vmladavaxq_s8): Likewise.
8966 (vmladavaq_s8): Likewise.
8967 (vsriq_n_s8): Likewise.
8968 (vsliq_n_s8): Likewise.
8969 (vpselq_u16): Likewise.
8970 (vpselq_s16): Likewise.
8971 (vrev64q_m_u16): Likewise.
8972 (vqrdmlashq_n_u16): Likewise.
8973 (vqrdmlahq_n_u16): Likewise.
8974 (vqdmlahq_n_u16): Likewise.
8975 (vmvnq_m_u16): Likewise.
8976 (vmlasq_n_u16): Likewise.
8977 (vmlaq_n_u16): Likewise.
8978 (vmladavq_p_u16): Likewise.
8979 (vmladavaq_u16): Likewise.
8980 (vminvq_p_u16): Likewise.
8981 (vmaxvq_p_u16): Likewise.
8982 (vdupq_m_n_u16): Likewise.
8983 (vcmpneq_m_u16): Likewise.
8984 (vcmpneq_m_n_u16): Likewise.
8985 (vcmphiq_m_u16): Likewise.
8986 (vcmphiq_m_n_u16): Likewise.
8987 (vcmpeqq_m_u16): Likewise.
8988 (vcmpeqq_m_n_u16): Likewise.
8989 (vcmpcsq_m_u16): Likewise.
8990 (vcmpcsq_m_n_u16): Likewise.
8991 (vclzq_m_u16): Likewise.
8992 (vaddvaq_p_u16): Likewise.
8993 (vsriq_n_u16): Likewise.
8994 (vsliq_n_u16): Likewise.
8995 (vshlq_m_r_u16): Likewise.
8996 (vrshlq_m_n_u16): Likewise.
8997 (vqshlq_m_r_u16): Likewise.
8998 (vqrshlq_m_n_u16): Likewise.
8999 (vminavq_p_s16): Likewise.
9000 (vminaq_m_s16): Likewise.
9001 (vmaxavq_p_s16): Likewise.
9002 (vmaxaq_m_s16): Likewise.
9003 (vcmpneq_m_s16): Likewise.
9004 (vcmpneq_m_n_s16): Likewise.
9005 (vcmpltq_m_s16): Likewise.
9006 (vcmpltq_m_n_s16): Likewise.
9007 (vcmpleq_m_s16): Likewise.
9008 (vcmpleq_m_n_s16): Likewise.
9009 (vcmpgtq_m_s16): Likewise.
9010 (vcmpgtq_m_n_s16): Likewise.
9011 (vcmpgeq_m_s16): Likewise.
9012 (vcmpgeq_m_n_s16): Likewise.
9013 (vcmpeqq_m_s16): Likewise.
9014 (vcmpeqq_m_n_s16): Likewise.
9015 (vshlq_m_r_s16): Likewise.
9016 (vrshlq_m_n_s16): Likewise.
9017 (vrev64q_m_s16): Likewise.
9018 (vqshlq_m_r_s16): Likewise.
9019 (vqrshlq_m_n_s16): Likewise.
9020 (vqnegq_m_s16): Likewise.
9021 (vqabsq_m_s16): Likewise.
9022 (vnegq_m_s16): Likewise.
9023 (vmvnq_m_s16): Likewise.
9024 (vmlsdavxq_p_s16): Likewise.
9025 (vmlsdavq_p_s16): Likewise.
9026 (vmladavxq_p_s16): Likewise.
9027 (vmladavq_p_s16): Likewise.
9028 (vminvq_p_s16): Likewise.
9029 (vmaxvq_p_s16): Likewise.
9030 (vdupq_m_n_s16): Likewise.
9031 (vclzq_m_s16): Likewise.
9032 (vclsq_m_s16): Likewise.
9033 (vaddvaq_p_s16): Likewise.
9034 (vabsq_m_s16): Likewise.
9035 (vqrdmlsdhxq_s16): Likewise.
9036 (vqrdmlsdhq_s16): Likewise.
9037 (vqrdmlashq_n_s16): Likewise.
9038 (vqrdmlahq_n_s16): Likewise.
9039 (vqrdmladhxq_s16): Likewise.
9040 (vqrdmladhq_s16): Likewise.
9041 (vqdmlsdhxq_s16): Likewise.
9042 (vqdmlsdhq_s16): Likewise.
9043 (vqdmlahq_n_s16): Likewise.
9044 (vqdmladhxq_s16): Likewise.
9045 (vqdmladhq_s16): Likewise.
9046 (vmlsdavaxq_s16): Likewise.
9047 (vmlsdavaq_s16): Likewise.
9048 (vmlasq_n_s16): Likewise.
9049 (vmlaq_n_s16): Likewise.
9050 (vmladavaxq_s16): Likewise.
9051 (vmladavaq_s16): Likewise.
9052 (vsriq_n_s16): Likewise.
9053 (vsliq_n_s16): Likewise.
9054 (vpselq_u32): Likewise.
9055 (vpselq_s32): Likewise.
9056 (vrev64q_m_u32): Likewise.
9057 (vqrdmlashq_n_u32): Likewise.
9058 (vqrdmlahq_n_u32): Likewise.
9059 (vqdmlahq_n_u32): Likewise.
9060 (vmvnq_m_u32): Likewise.
9061 (vmlasq_n_u32): Likewise.
9062 (vmlaq_n_u32): Likewise.
9063 (vmladavq_p_u32): Likewise.
9064 (vmladavaq_u32): Likewise.
9065 (vminvq_p_u32): Likewise.
9066 (vmaxvq_p_u32): Likewise.
9067 (vdupq_m_n_u32): Likewise.
9068 (vcmpneq_m_u32): Likewise.
9069 (vcmpneq_m_n_u32): Likewise.
9070 (vcmphiq_m_u32): Likewise.
9071 (vcmphiq_m_n_u32): Likewise.
9072 (vcmpeqq_m_u32): Likewise.
9073 (vcmpeqq_m_n_u32): Likewise.
9074 (vcmpcsq_m_u32): Likewise.
9075 (vcmpcsq_m_n_u32): Likewise.
9076 (vclzq_m_u32): Likewise.
9077 (vaddvaq_p_u32): Likewise.
9078 (vsriq_n_u32): Likewise.
9079 (vsliq_n_u32): Likewise.
9080 (vshlq_m_r_u32): Likewise.
9081 (vrshlq_m_n_u32): Likewise.
9082 (vqshlq_m_r_u32): Likewise.
9083 (vqrshlq_m_n_u32): Likewise.
9084 (vminavq_p_s32): Likewise.
9085 (vminaq_m_s32): Likewise.
9086 (vmaxavq_p_s32): Likewise.
9087 (vmaxaq_m_s32): Likewise.
9088 (vcmpneq_m_s32): Likewise.
9089 (vcmpneq_m_n_s32): Likewise.
9090 (vcmpltq_m_s32): Likewise.
9091 (vcmpltq_m_n_s32): Likewise.
9092 (vcmpleq_m_s32): Likewise.
9093 (vcmpleq_m_n_s32): Likewise.
9094 (vcmpgtq_m_s32): Likewise.
9095 (vcmpgtq_m_n_s32): Likewise.
9096 (vcmpgeq_m_s32): Likewise.
9097 (vcmpgeq_m_n_s32): Likewise.
9098 (vcmpeqq_m_s32): Likewise.
9099 (vcmpeqq_m_n_s32): Likewise.
9100 (vshlq_m_r_s32): Likewise.
9101 (vrshlq_m_n_s32): Likewise.
9102 (vrev64q_m_s32): Likewise.
9103 (vqshlq_m_r_s32): Likewise.
9104 (vqrshlq_m_n_s32): Likewise.
9105 (vqnegq_m_s32): Likewise.
9106 (vqabsq_m_s32): Likewise.
9107 (vnegq_m_s32): Likewise.
9108 (vmvnq_m_s32): Likewise.
9109 (vmlsdavxq_p_s32): Likewise.
9110 (vmlsdavq_p_s32): Likewise.
9111 (vmladavxq_p_s32): Likewise.
9112 (vmladavq_p_s32): Likewise.
9113 (vminvq_p_s32): Likewise.
9114 (vmaxvq_p_s32): Likewise.
9115 (vdupq_m_n_s32): Likewise.
9116 (vclzq_m_s32): Likewise.
9117 (vclsq_m_s32): Likewise.
9118 (vaddvaq_p_s32): Likewise.
9119 (vabsq_m_s32): Likewise.
9120 (vqrdmlsdhxq_s32): Likewise.
9121 (vqrdmlsdhq_s32): Likewise.
9122 (vqrdmlashq_n_s32): Likewise.
9123 (vqrdmlahq_n_s32): Likewise.
9124 (vqrdmladhxq_s32): Likewise.
9125 (vqrdmladhq_s32): Likewise.
9126 (vqdmlsdhxq_s32): Likewise.
9127 (vqdmlsdhq_s32): Likewise.
9128 (vqdmlahq_n_s32): Likewise.
9129 (vqdmladhxq_s32): Likewise.
9130 (vqdmladhq_s32): Likewise.
9131 (vmlsdavaxq_s32): Likewise.
9132 (vmlsdavaq_s32): Likewise.
9133 (vmlasq_n_s32): Likewise.
9134 (vmlaq_n_s32): Likewise.
9135 (vmladavaxq_s32): Likewise.
9136 (vmladavaq_s32): Likewise.
9137 (vsriq_n_s32): Likewise.
9138 (vsliq_n_s32): Likewise.
9139 (vpselq_u64): Likewise.
9140 (vpselq_s64): Likewise.
9141 (__arm_vpselq_u8): Define intrinsic.
9142 (__arm_vpselq_s8): Likewise.
9143 (__arm_vrev64q_m_u8): Likewise.
9144 (__arm_vqrdmlashq_n_u8): Likewise.
9145 (__arm_vqrdmlahq_n_u8): Likewise.
9146 (__arm_vqdmlahq_n_u8): Likewise.
9147 (__arm_vmvnq_m_u8): Likewise.
9148 (__arm_vmlasq_n_u8): Likewise.
9149 (__arm_vmlaq_n_u8): Likewise.
9150 (__arm_vmladavq_p_u8): Likewise.
9151 (__arm_vmladavaq_u8): Likewise.
9152 (__arm_vminvq_p_u8): Likewise.
9153 (__arm_vmaxvq_p_u8): Likewise.
9154 (__arm_vdupq_m_n_u8): Likewise.
9155 (__arm_vcmpneq_m_u8): Likewise.
9156 (__arm_vcmpneq_m_n_u8): Likewise.
9157 (__arm_vcmphiq_m_u8): Likewise.
9158 (__arm_vcmphiq_m_n_u8): Likewise.
9159 (__arm_vcmpeqq_m_u8): Likewise.
9160 (__arm_vcmpeqq_m_n_u8): Likewise.
9161 (__arm_vcmpcsq_m_u8): Likewise.
9162 (__arm_vcmpcsq_m_n_u8): Likewise.
9163 (__arm_vclzq_m_u8): Likewise.
9164 (__arm_vaddvaq_p_u8): Likewise.
9165 (__arm_vsriq_n_u8): Likewise.
9166 (__arm_vsliq_n_u8): Likewise.
9167 (__arm_vshlq_m_r_u8): Likewise.
9168 (__arm_vrshlq_m_n_u8): Likewise.
9169 (__arm_vqshlq_m_r_u8): Likewise.
9170 (__arm_vqrshlq_m_n_u8): Likewise.
9171 (__arm_vminavq_p_s8): Likewise.
9172 (__arm_vminaq_m_s8): Likewise.
9173 (__arm_vmaxavq_p_s8): Likewise.
9174 (__arm_vmaxaq_m_s8): Likewise.
9175 (__arm_vcmpneq_m_s8): Likewise.
9176 (__arm_vcmpneq_m_n_s8): Likewise.
9177 (__arm_vcmpltq_m_s8): Likewise.
9178 (__arm_vcmpltq_m_n_s8): Likewise.
9179 (__arm_vcmpleq_m_s8): Likewise.
9180 (__arm_vcmpleq_m_n_s8): Likewise.
9181 (__arm_vcmpgtq_m_s8): Likewise.
9182 (__arm_vcmpgtq_m_n_s8): Likewise.
9183 (__arm_vcmpgeq_m_s8): Likewise.
9184 (__arm_vcmpgeq_m_n_s8): Likewise.
9185 (__arm_vcmpeqq_m_s8): Likewise.
9186 (__arm_vcmpeqq_m_n_s8): Likewise.
9187 (__arm_vshlq_m_r_s8): Likewise.
9188 (__arm_vrshlq_m_n_s8): Likewise.
9189 (__arm_vrev64q_m_s8): Likewise.
9190 (__arm_vqshlq_m_r_s8): Likewise.
9191 (__arm_vqrshlq_m_n_s8): Likewise.
9192 (__arm_vqnegq_m_s8): Likewise.
9193 (__arm_vqabsq_m_s8): Likewise.
9194 (__arm_vnegq_m_s8): Likewise.
9195 (__arm_vmvnq_m_s8): Likewise.
9196 (__arm_vmlsdavxq_p_s8): Likewise.
9197 (__arm_vmlsdavq_p_s8): Likewise.
9198 (__arm_vmladavxq_p_s8): Likewise.
9199 (__arm_vmladavq_p_s8): Likewise.
9200 (__arm_vminvq_p_s8): Likewise.
9201 (__arm_vmaxvq_p_s8): Likewise.
9202 (__arm_vdupq_m_n_s8): Likewise.
9203 (__arm_vclzq_m_s8): Likewise.
9204 (__arm_vclsq_m_s8): Likewise.
9205 (__arm_vaddvaq_p_s8): Likewise.
9206 (__arm_vabsq_m_s8): Likewise.
9207 (__arm_vqrdmlsdhxq_s8): Likewise.
9208 (__arm_vqrdmlsdhq_s8): Likewise.
9209 (__arm_vqrdmlashq_n_s8): Likewise.
9210 (__arm_vqrdmlahq_n_s8): Likewise.
9211 (__arm_vqrdmladhxq_s8): Likewise.
9212 (__arm_vqrdmladhq_s8): Likewise.
9213 (__arm_vqdmlsdhxq_s8): Likewise.
9214 (__arm_vqdmlsdhq_s8): Likewise.
9215 (__arm_vqdmlahq_n_s8): Likewise.
9216 (__arm_vqdmladhxq_s8): Likewise.
9217 (__arm_vqdmladhq_s8): Likewise.
9218 (__arm_vmlsdavaxq_s8): Likewise.
9219 (__arm_vmlsdavaq_s8): Likewise.
9220 (__arm_vmlasq_n_s8): Likewise.
9221 (__arm_vmlaq_n_s8): Likewise.
9222 (__arm_vmladavaxq_s8): Likewise.
9223 (__arm_vmladavaq_s8): Likewise.
9224 (__arm_vsriq_n_s8): Likewise.
9225 (__arm_vsliq_n_s8): Likewise.
9226 (__arm_vpselq_u16): Likewise.
9227 (__arm_vpselq_s16): Likewise.
9228 (__arm_vrev64q_m_u16): Likewise.
9229 (__arm_vqrdmlashq_n_u16): Likewise.
9230 (__arm_vqrdmlahq_n_u16): Likewise.
9231 (__arm_vqdmlahq_n_u16): Likewise.
9232 (__arm_vmvnq_m_u16): Likewise.
9233 (__arm_vmlasq_n_u16): Likewise.
9234 (__arm_vmlaq_n_u16): Likewise.
9235 (__arm_vmladavq_p_u16): Likewise.
9236 (__arm_vmladavaq_u16): Likewise.
9237 (__arm_vminvq_p_u16): Likewise.
9238 (__arm_vmaxvq_p_u16): Likewise.
9239 (__arm_vdupq_m_n_u16): Likewise.
9240 (__arm_vcmpneq_m_u16): Likewise.
9241 (__arm_vcmpneq_m_n_u16): Likewise.
9242 (__arm_vcmphiq_m_u16): Likewise.
9243 (__arm_vcmphiq_m_n_u16): Likewise.
9244 (__arm_vcmpeqq_m_u16): Likewise.
9245 (__arm_vcmpeqq_m_n_u16): Likewise.
9246 (__arm_vcmpcsq_m_u16): Likewise.
9247 (__arm_vcmpcsq_m_n_u16): Likewise.
9248 (__arm_vclzq_m_u16): Likewise.
9249 (__arm_vaddvaq_p_u16): Likewise.
9250 (__arm_vsriq_n_u16): Likewise.
9251 (__arm_vsliq_n_u16): Likewise.
9252 (__arm_vshlq_m_r_u16): Likewise.
9253 (__arm_vrshlq_m_n_u16): Likewise.
9254 (__arm_vqshlq_m_r_u16): Likewise.
9255 (__arm_vqrshlq_m_n_u16): Likewise.
9256 (__arm_vminavq_p_s16): Likewise.
9257 (__arm_vminaq_m_s16): Likewise.
9258 (__arm_vmaxavq_p_s16): Likewise.
9259 (__arm_vmaxaq_m_s16): Likewise.
9260 (__arm_vcmpneq_m_s16): Likewise.
9261 (__arm_vcmpneq_m_n_s16): Likewise.
9262 (__arm_vcmpltq_m_s16): Likewise.
9263 (__arm_vcmpltq_m_n_s16): Likewise.
9264 (__arm_vcmpleq_m_s16): Likewise.
9265 (__arm_vcmpleq_m_n_s16): Likewise.
9266 (__arm_vcmpgtq_m_s16): Likewise.
9267 (__arm_vcmpgtq_m_n_s16): Likewise.
9268 (__arm_vcmpgeq_m_s16): Likewise.
9269 (__arm_vcmpgeq_m_n_s16): Likewise.
9270 (__arm_vcmpeqq_m_s16): Likewise.
9271 (__arm_vcmpeqq_m_n_s16): Likewise.
9272 (__arm_vshlq_m_r_s16): Likewise.
9273 (__arm_vrshlq_m_n_s16): Likewise.
9274 (__arm_vrev64q_m_s16): Likewise.
9275 (__arm_vqshlq_m_r_s16): Likewise.
9276 (__arm_vqrshlq_m_n_s16): Likewise.
9277 (__arm_vqnegq_m_s16): Likewise.
9278 (__arm_vqabsq_m_s16): Likewise.
9279 (__arm_vnegq_m_s16): Likewise.
9280 (__arm_vmvnq_m_s16): Likewise.
9281 (__arm_vmlsdavxq_p_s16): Likewise.
9282 (__arm_vmlsdavq_p_s16): Likewise.
9283 (__arm_vmladavxq_p_s16): Likewise.
9284 (__arm_vmladavq_p_s16): Likewise.
9285 (__arm_vminvq_p_s16): Likewise.
9286 (__arm_vmaxvq_p_s16): Likewise.
9287 (__arm_vdupq_m_n_s16): Likewise.
9288 (__arm_vclzq_m_s16): Likewise.
9289 (__arm_vclsq_m_s16): Likewise.
9290 (__arm_vaddvaq_p_s16): Likewise.
9291 (__arm_vabsq_m_s16): Likewise.
9292 (__arm_vqrdmlsdhxq_s16): Likewise.
9293 (__arm_vqrdmlsdhq_s16): Likewise.
9294 (__arm_vqrdmlashq_n_s16): Likewise.
9295 (__arm_vqrdmlahq_n_s16): Likewise.
9296 (__arm_vqrdmladhxq_s16): Likewise.
9297 (__arm_vqrdmladhq_s16): Likewise.
9298 (__arm_vqdmlsdhxq_s16): Likewise.
9299 (__arm_vqdmlsdhq_s16): Likewise.
9300 (__arm_vqdmlahq_n_s16): Likewise.
9301 (__arm_vqdmladhxq_s16): Likewise.
9302 (__arm_vqdmladhq_s16): Likewise.
9303 (__arm_vmlsdavaxq_s16): Likewise.
9304 (__arm_vmlsdavaq_s16): Likewise.
9305 (__arm_vmlasq_n_s16): Likewise.
9306 (__arm_vmlaq_n_s16): Likewise.
9307 (__arm_vmladavaxq_s16): Likewise.
9308 (__arm_vmladavaq_s16): Likewise.
9309 (__arm_vsriq_n_s16): Likewise.
9310 (__arm_vsliq_n_s16): Likewise.
9311 (__arm_vpselq_u32): Likewise.
9312 (__arm_vpselq_s32): Likewise.
9313 (__arm_vrev64q_m_u32): Likewise.
9314 (__arm_vqrdmlashq_n_u32): Likewise.
9315 (__arm_vqrdmlahq_n_u32): Likewise.
9316 (__arm_vqdmlahq_n_u32): Likewise.
9317 (__arm_vmvnq_m_u32): Likewise.
9318 (__arm_vmlasq_n_u32): Likewise.
9319 (__arm_vmlaq_n_u32): Likewise.
9320 (__arm_vmladavq_p_u32): Likewise.
9321 (__arm_vmladavaq_u32): Likewise.
9322 (__arm_vminvq_p_u32): Likewise.
9323 (__arm_vmaxvq_p_u32): Likewise.
9324 (__arm_vdupq_m_n_u32): Likewise.
9325 (__arm_vcmpneq_m_u32): Likewise.
9326 (__arm_vcmpneq_m_n_u32): Likewise.
9327 (__arm_vcmphiq_m_u32): Likewise.
9328 (__arm_vcmphiq_m_n_u32): Likewise.
9329 (__arm_vcmpeqq_m_u32): Likewise.
9330 (__arm_vcmpeqq_m_n_u32): Likewise.
9331 (__arm_vcmpcsq_m_u32): Likewise.
9332 (__arm_vcmpcsq_m_n_u32): Likewise.
9333 (__arm_vclzq_m_u32): Likewise.
9334 (__arm_vaddvaq_p_u32): Likewise.
9335 (__arm_vsriq_n_u32): Likewise.
9336 (__arm_vsliq_n_u32): Likewise.
9337 (__arm_vshlq_m_r_u32): Likewise.
9338 (__arm_vrshlq_m_n_u32): Likewise.
9339 (__arm_vqshlq_m_r_u32): Likewise.
9340 (__arm_vqrshlq_m_n_u32): Likewise.
9341 (__arm_vminavq_p_s32): Likewise.
9342 (__arm_vminaq_m_s32): Likewise.
9343 (__arm_vmaxavq_p_s32): Likewise.
9344 (__arm_vmaxaq_m_s32): Likewise.
9345 (__arm_vcmpneq_m_s32): Likewise.
9346 (__arm_vcmpneq_m_n_s32): Likewise.
9347 (__arm_vcmpltq_m_s32): Likewise.
9348 (__arm_vcmpltq_m_n_s32): Likewise.
9349 (__arm_vcmpleq_m_s32): Likewise.
9350 (__arm_vcmpleq_m_n_s32): Likewise.
9351 (__arm_vcmpgtq_m_s32): Likewise.
9352 (__arm_vcmpgtq_m_n_s32): Likewise.
9353 (__arm_vcmpgeq_m_s32): Likewise.
9354 (__arm_vcmpgeq_m_n_s32): Likewise.
9355 (__arm_vcmpeqq_m_s32): Likewise.
9356 (__arm_vcmpeqq_m_n_s32): Likewise.
9357 (__arm_vshlq_m_r_s32): Likewise.
9358 (__arm_vrshlq_m_n_s32): Likewise.
9359 (__arm_vrev64q_m_s32): Likewise.
9360 (__arm_vqshlq_m_r_s32): Likewise.
9361 (__arm_vqrshlq_m_n_s32): Likewise.
9362 (__arm_vqnegq_m_s32): Likewise.
9363 (__arm_vqabsq_m_s32): Likewise.
9364 (__arm_vnegq_m_s32): Likewise.
9365 (__arm_vmvnq_m_s32): Likewise.
9366 (__arm_vmlsdavxq_p_s32): Likewise.
9367 (__arm_vmlsdavq_p_s32): Likewise.
9368 (__arm_vmladavxq_p_s32): Likewise.
9369 (__arm_vmladavq_p_s32): Likewise.
9370 (__arm_vminvq_p_s32): Likewise.
9371 (__arm_vmaxvq_p_s32): Likewise.
9372 (__arm_vdupq_m_n_s32): Likewise.
9373 (__arm_vclzq_m_s32): Likewise.
9374 (__arm_vclsq_m_s32): Likewise.
9375 (__arm_vaddvaq_p_s32): Likewise.
9376 (__arm_vabsq_m_s32): Likewise.
9377 (__arm_vqrdmlsdhxq_s32): Likewise.
9378 (__arm_vqrdmlsdhq_s32): Likewise.
9379 (__arm_vqrdmlashq_n_s32): Likewise.
9380 (__arm_vqrdmlahq_n_s32): Likewise.
9381 (__arm_vqrdmladhxq_s32): Likewise.
9382 (__arm_vqrdmladhq_s32): Likewise.
9383 (__arm_vqdmlsdhxq_s32): Likewise.
9384 (__arm_vqdmlsdhq_s32): Likewise.
9385 (__arm_vqdmlahq_n_s32): Likewise.
9386 (__arm_vqdmladhxq_s32): Likewise.
9387 (__arm_vqdmladhq_s32): Likewise.
9388 (__arm_vmlsdavaxq_s32): Likewise.
9389 (__arm_vmlsdavaq_s32): Likewise.
9390 (__arm_vmlasq_n_s32): Likewise.
9391 (__arm_vmlaq_n_s32): Likewise.
9392 (__arm_vmladavaxq_s32): Likewise.
9393 (__arm_vmladavaq_s32): Likewise.
9394 (__arm_vsriq_n_s32): Likewise.
9395 (__arm_vsliq_n_s32): Likewise.
9396 (__arm_vpselq_u64): Likewise.
9397 (__arm_vpselq_s64): Likewise.
9398 (vcmpneq_m_n): Define polymorphic variant.
9399 (vcmpneq_m): Likewise.
9400 (vqrdmlsdhq): Likewise.
9401 (vqrdmlsdhxq): Likewise.
9402 (vqrshlq_m_n): Likewise.
9403 (vqshlq_m_r): Likewise.
9404 (vrev64q_m): Likewise.
9405 (vrshlq_m_n): Likewise.
9406 (vshlq_m_r): Likewise.
9407 (vsliq_n): Likewise.
9408 (vsriq_n): Likewise.
9409 (vqrdmlashq_n): Likewise.
9410 (vqrdmlahq): Likewise.
9411 (vqrdmladhxq): Likewise.
9412 (vqrdmladhq): Likewise.
9413 (vqnegq_m): Likewise.
9414 (vqdmlsdhxq): Likewise.
9415 (vabsq_m): Likewise.
9416 (vclsq_m): Likewise.
9417 (vclzq_m): Likewise.
9418 (vcmpgeq_m): Likewise.
9419 (vcmpgeq_m_n): Likewise.
9420 (vdupq_m_n): Likewise.
9421 (vmaxaq_m): Likewise.
9422 (vmlaq_n): Likewise.
9423 (vmlasq_n): Likewise.
9424 (vmvnq_m): Likewise.
9425 (vnegq_m): Likewise.
9426 (vpselq): Likewise.
9427 (vqdmlahq_n): Likewise.
9428 (vqrdmlahq_n): Likewise.
9429 (vqdmlsdhq): Likewise.
9430 (vqdmladhq): Likewise.
9431 (vqabsq_m): Likewise.
9432 (vminaq_m): Likewise.
9433 (vrmlaldavhaq): Likewise.
9434 (vmlsdavxq_p): Likewise.
9435 (vmlsdavq_p): Likewise.
9436 (vmlsdavaxq): Likewise.
9437 (vmlsdavaq): Likewise.
9438 (vaddvaq_p): Likewise.
9439 (vcmpcsq_m_n): Likewise.
9440 (vcmpcsq_m): Likewise.
9441 (vcmpeqq_m_n): Likewise.
9442 (vcmpeqq_m): Likewise.
9443 (vmladavxq_p): Likewise.
9444 (vmladavq_p): Likewise.
9445 (vmladavaxq): Likewise.
9446 (vmladavaq): Likewise.
9447 (vminvq_p): Likewise.
9448 (vminavq_p): Likewise.
9449 (vmaxvq_p): Likewise.
9450 (vmaxavq_p): Likewise.
9451 (vcmpltq_m_n): Likewise.
9452 (vcmpltq_m): Likewise.
9453 (vcmpleq_m): Likewise.
9454 (vcmpleq_m_n): Likewise.
9455 (vcmphiq_m_n): Likewise.
9456 (vcmphiq_m): Likewise.
9457 (vcmpgtq_m_n): Likewise.
9458 (vcmpgtq_m): Likewise.
9459 * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use
9460 builtin qualifier.
9461 (TERNOP_NONE_NONE_NONE_NONE): Likewise.
9462 (TERNOP_NONE_NONE_NONE_UNONE): Likewise.
9463 (TERNOP_UNONE_NONE_NONE_UNONE): Likewise.
9464 (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise.
9465 (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise.
9466 (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise.
9467 * config/arm/constraints.md (Rc): Define constraint to check constant is
9468 in the range of 0 to 15.
9469 (Re): Define constraint to check constant is in the range of 0 to 31.
9470 * config/arm/mve.md (VADDVAQ_P): Define iterator.
9471 (VCLZQ_M): Likewise.
9472 (VCMPEQQ_M_N): Likewise.
9473 (VCMPEQQ_M): Likewise.
9474 (VCMPNEQ_M_N): Likewise.
9475 (VCMPNEQ_M): Likewise.
9476 (VDUPQ_M_N): Likewise.
9477 (VMAXVQ_P): Likewise.
9478 (VMINVQ_P): Likewise.
9479 (VMLADAVAQ): Likewise.
9480 (VMLADAVQ_P): Likewise.
9481 (VMLAQ_N): Likewise.
9482 (VMLASQ_N): Likewise.
9483 (VMVNQ_M): Likewise.
9484 (VPSELQ): Likewise.
9485 (VQDMLAHQ_N): Likewise.
9486 (VQRDMLAHQ_N): Likewise.
9487 (VQRDMLASHQ_N): Likewise.
9488 (VQRSHLQ_M_N): Likewise.
9489 (VQSHLQ_M_R): Likewise.
9490 (VREV64Q_M): Likewise.
9491 (VRSHLQ_M_N): Likewise.
9492 (VSHLQ_M_R): Likewise.
9493 (VSLIQ_N): Likewise.
9494 (VSRIQ_N): Likewise.
9495 (mve_vabsq_m_s<mode>): Define RTL pattern.
9496 (mve_vaddvaq_p_<supf><mode>): Likewise.
9497 (mve_vclsq_m_s<mode>): Likewise.
9498 (mve_vclzq_m_<supf><mode>): Likewise.
9499 (mve_vcmpcsq_m_n_u<mode>): Likewise.
9500 (mve_vcmpcsq_m_u<mode>): Likewise.
9501 (mve_vcmpeqq_m_n_<supf><mode>): Likewise.
9502 (mve_vcmpeqq_m_<supf><mode>): Likewise.
9503 (mve_vcmpgeq_m_n_s<mode>): Likewise.
9504 (mve_vcmpgeq_m_s<mode>): Likewise.
9505 (mve_vcmpgtq_m_n_s<mode>): Likewise.
9506 (mve_vcmpgtq_m_s<mode>): Likewise.
9507 (mve_vcmphiq_m_n_u<mode>): Likewise.
9508 (mve_vcmphiq_m_u<mode>): Likewise.
9509 (mve_vcmpleq_m_n_s<mode>): Likewise.
9510 (mve_vcmpleq_m_s<mode>): Likewise.
9511 (mve_vcmpltq_m_n_s<mode>): Likewise.
9512 (mve_vcmpltq_m_s<mode>): Likewise.
9513 (mve_vcmpneq_m_n_<supf><mode>): Likewise.
9514 (mve_vcmpneq_m_<supf><mode>): Likewise.
9515 (mve_vdupq_m_n_<supf><mode>): Likewise.
9516 (mve_vmaxaq_m_s<mode>): Likewise.
9517 (mve_vmaxavq_p_s<mode>): Likewise.
9518 (mve_vmaxvq_p_<supf><mode>): Likewise.
9519 (mve_vminaq_m_s<mode>): Likewise.
9520 (mve_vminavq_p_s<mode>): Likewise.
9521 (mve_vminvq_p_<supf><mode>): Likewise.
9522 (mve_vmladavaq_<supf><mode>): Likewise.
9523 (mve_vmladavq_p_<supf><mode>): Likewise.
9524 (mve_vmladavxq_p_s<mode>): Likewise.
9525 (mve_vmlaq_n_<supf><mode>): Likewise.
9526 (mve_vmlasq_n_<supf><mode>): Likewise.
9527 (mve_vmlsdavq_p_s<mode>): Likewise.
9528 (mve_vmlsdavxq_p_s<mode>): Likewise.
9529 (mve_vmvnq_m_<supf><mode>): Likewise.
9530 (mve_vnegq_m_s<mode>): Likewise.
9531 (mve_vpselq_<supf><mode>): Likewise.
9532 (mve_vqabsq_m_s<mode>): Likewise.
9533 (mve_vqdmlahq_n_<supf><mode>): Likewise.
9534 (mve_vqnegq_m_s<mode>): Likewise.
9535 (mve_vqrdmladhq_s<mode>): Likewise.
9536 (mve_vqrdmladhxq_s<mode>): Likewise.
9537 (mve_vqrdmlahq_n_<supf><mode>): Likewise.
9538 (mve_vqrdmlashq_n_<supf><mode>): Likewise.
9539 (mve_vqrdmlsdhq_s<mode>): Likewise.
9540 (mve_vqrdmlsdhxq_s<mode>): Likewise.
9541 (mve_vqrshlq_m_n_<supf><mode>): Likewise.
9542 (mve_vqshlq_m_r_<supf><mode>): Likewise.
9543 (mve_vrev64q_m_<supf><mode>): Likewise.
9544 (mve_vrshlq_m_n_<supf><mode>): Likewise.
9545 (mve_vshlq_m_r_<supf><mode>): Likewise.
9546 (mve_vsliq_n_<supf><mode>): Likewise.
9547 (mve_vsriq_n_<supf><mode>): Likewise.
9548 (mve_vqdmlsdhxq_s<mode>): Likewise.
9549 (mve_vqdmlsdhq_s<mode>): Likewise.
9550 (mve_vqdmladhxq_s<mode>): Likewise.
9551 (mve_vqdmladhq_s<mode>): Likewise.
9552 (mve_vmlsdavaxq_s<mode>): Likewise.
9553 (mve_vmlsdavaq_s<mode>): Likewise.
9554 (mve_vmladavaxq_s<mode>): Likewise.
9555 * config/arm/predicates.md (mve_imm_15):Define predicate to check the
9556 matching constraint Rc.
9557 (mve_imm_31): Define predicate to check the matching constraint Re.
9558
9559 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
9560
9561 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode.
9562 (vec_cmp<mode>di_dup): Likewise.
9563 * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1.
9564
9565 2020-03-18 Andrew Stubbs <ams@codesourcery.com>
9566
9567 * config/gcn/gcn-valu.md (COND_MODE): Delete.
9568 (COND_INT_MODE): Delete.
9569 (cond_op): Add "mult".
9570 (cond_<expander><mode>): Use VEC_ALLREG_MODE.
9571 (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE.
9572
9573 2020-03-18 Richard Biener <rguenther@suse.de>
9574
9575 PR middle-end/94206
9576 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using
9577 partial int modes or not mode-precision integer types for
9578 the store.
9579
9580 2020-03-18 Jakub Jelinek <jakub@redhat.com>
9581
9582 * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue
9583 in a comment.
9584 * config/arc/arc.c (frame_stack_add): Likewise.
9585 * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term):
9586 Likewise.
9587 * ipa-predicate.c (predicate::remap_after_inlining): Likewise.
9588 * tree-ssa-strlen.h (handle_printf_call): Likewise.
9589 * tree-ssa-strlen.c (is_strlen_related_p): Likewise.
9590 * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise.
9591
9592 2020-03-18 Duan bo <duanbo3@huawei.com>
9593
9594 PR target/94201
9595 * config/aarch64/aarch64.md (ldr_got_tiny): Delete.
9596 (@ldr_got_tiny_<mode>): New pattern.
9597 (ldr_got_tiny_sidi): Likewise.
9598 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use
9599 them to handle SYMBOL_TINY_GOT for ILP32.
9600
9601 2020-03-18 Richard Sandiford <richard.sandiford@arm.com>
9602
9603 * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as
9604 call-preserved for SVE PCS functions.
9605 (aarch64_layout_frame): Cope with up to 12 predicate save slots.
9606 Optimize the case in which there are no following vector save slots.
9607
9608 2020-03-18 Richard Biener <rguenther@suse.de>
9609
9610 PR middle-end/94188
9611 * fold-const.c (build_fold_addr_expr): Convert address to
9612 correct type.
9613 * asan.c (maybe_create_ssa_name): Strip useless type conversions.
9614 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1
9615 to build the ADDR_EXPR which we don't really want to simplify.
9616 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
9617 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise.
9618 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
9619 (simplify_builtin_call): Strip useless type conversions.
9620 * tree-ssa-strlen.c (new_strinfo): Likewise.
9621
9622 2020-03-17 Alexey Neyman <stilor@att.net>
9623
9624 PR debug/93751
9625 * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if
9626 the debug level is terse and the declaration is public. Do not
9627 generate type info.
9628 (dwarf2out_decl): Same.
9629 (add_type_attribute): Return immediately if debug level is
9630 terse.
9631
9632 2020-03-17 Richard Sandiford <richard.sandiford@arm.com>
9633
9634 * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
9635
9636 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
9637 Mihail Ionescu <mihail.ionescu@arm.com>
9638 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9639
9640 * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS):
9641 Define qualifier for ternary operands.
9642 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
9643 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9644 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9645 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
9646 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
9647 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
9648 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9649 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
9650 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9651 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
9652 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
9653 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
9654 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
9655 * config/arm/arm_mve.h (vabavq_s8): Define macro.
9656 (vabavq_s16): Likewise.
9657 (vabavq_s32): Likewise.
9658 (vbicq_m_n_s16): Likewise.
9659 (vbicq_m_n_s32): Likewise.
9660 (vbicq_m_n_u16): Likewise.
9661 (vbicq_m_n_u32): Likewise.
9662 (vcmpeqq_m_f16): Likewise.
9663 (vcmpeqq_m_f32): Likewise.
9664 (vcvtaq_m_s16_f16): Likewise.
9665 (vcvtaq_m_u16_f16): Likewise.
9666 (vcvtaq_m_s32_f32): Likewise.
9667 (vcvtaq_m_u32_f32): Likewise.
9668 (vcvtq_m_f16_s16): Likewise.
9669 (vcvtq_m_f16_u16): Likewise.
9670 (vcvtq_m_f32_s32): Likewise.
9671 (vcvtq_m_f32_u32): Likewise.
9672 (vqrshrnbq_n_s16): Likewise.
9673 (vqrshrnbq_n_u16): Likewise.
9674 (vqrshrnbq_n_s32): Likewise.
9675 (vqrshrnbq_n_u32): Likewise.
9676 (vqrshrunbq_n_s16): Likewise.
9677 (vqrshrunbq_n_s32): Likewise.
9678 (vrmlaldavhaq_s32): Likewise.
9679 (vrmlaldavhaq_u32): Likewise.
9680 (vshlcq_s8): Likewise.
9681 (vshlcq_u8): Likewise.
9682 (vshlcq_s16): Likewise.
9683 (vshlcq_u16): Likewise.
9684 (vshlcq_s32): Likewise.
9685 (vshlcq_u32): Likewise.
9686 (vabavq_u8): Likewise.
9687 (vabavq_u16): Likewise.
9688 (vabavq_u32): Likewise.
9689 (__arm_vabavq_s8): Define intrinsic.
9690 (__arm_vabavq_s16): Likewise.
9691 (__arm_vabavq_s32): Likewise.
9692 (__arm_vabavq_u8): Likewise.
9693 (__arm_vabavq_u16): Likewise.
9694 (__arm_vabavq_u32): Likewise.
9695 (__arm_vbicq_m_n_s16): Likewise.
9696 (__arm_vbicq_m_n_s32): Likewise.
9697 (__arm_vbicq_m_n_u16): Likewise.
9698 (__arm_vbicq_m_n_u32): Likewise.
9699 (__arm_vqrshrnbq_n_s16): Likewise.
9700 (__arm_vqrshrnbq_n_u16): Likewise.
9701 (__arm_vqrshrnbq_n_s32): Likewise.
9702 (__arm_vqrshrnbq_n_u32): Likewise.
9703 (__arm_vqrshrunbq_n_s16): Likewise.
9704 (__arm_vqrshrunbq_n_s32): Likewise.
9705 (__arm_vrmlaldavhaq_s32): Likewise.
9706 (__arm_vrmlaldavhaq_u32): Likewise.
9707 (__arm_vshlcq_s8): Likewise.
9708 (__arm_vshlcq_u8): Likewise.
9709 (__arm_vshlcq_s16): Likewise.
9710 (__arm_vshlcq_u16): Likewise.
9711 (__arm_vshlcq_s32): Likewise.
9712 (__arm_vshlcq_u32): Likewise.
9713 (__arm_vcmpeqq_m_f16): Likewise.
9714 (__arm_vcmpeqq_m_f32): Likewise.
9715 (__arm_vcvtaq_m_s16_f16): Likewise.
9716 (__arm_vcvtaq_m_u16_f16): Likewise.
9717 (__arm_vcvtaq_m_s32_f32): Likewise.
9718 (__arm_vcvtaq_m_u32_f32): Likewise.
9719 (__arm_vcvtq_m_f16_s16): Likewise.
9720 (__arm_vcvtq_m_f16_u16): Likewise.
9721 (__arm_vcvtq_m_f32_s32): Likewise.
9722 (__arm_vcvtq_m_f32_u32): Likewise.
9723 (vcvtaq_m): Define polymorphic variant.
9724 (vcvtq_m): Likewise.
9725 (vabavq): Likewise.
9726 (vshlcq): Likewise.
9727 (vbicq_m_n): Likewise.
9728 (vqrshrnbq_n): Likewise.
9729 (vqrshrunbq_n): Likewise.
9730 * config/arm/arm_mve_builtins.def
9731 (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer.
9732 (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise.
9733 (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9734 (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise.
9735 (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise.
9736 (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise.
9737 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise.
9738 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9739 (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise.
9740 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise.
9741 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise.
9742 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
9743 (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
9744 (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise.
9745 * config/arm/mve.md (VBICQ_M_N): Define iterator.
9746 (VCVTAQ_M): Likewise.
9747 (VCVTQ_M_TO_F): Likewise.
9748 (VQRSHRNBQ_N): Likewise.
9749 (VABAVQ): Likewise.
9750 (VSHLCQ): Likewise.
9751 (VRMLALDAVHAQ): Likewise.
9752 (mve_vbicq_m_n_<supf><mode>): Define RTL pattern.
9753 (mve_vcmpeqq_m_f<mode>): Likewise.
9754 (mve_vcvtaq_m_<supf><mode>): Likewise.
9755 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
9756 (mve_vqrshrnbq_n_<supf><mode>): Likewise.
9757 (mve_vqrshrunbq_n_s<mode>): Likewise.
9758 (mve_vrmlaldavhaq_<supf>v4si): Likewise.
9759 (mve_vabavq_<supf><mode>): Likewise.
9760 (mve_vshlcq_<supf><mode>): Likewise.
9761 (mve_vshlcq_<supf><mode>): Likewise.
9762 (mve_vshlcq_vec_<supf><mode>): Define RTL expand.
9763 (mve_vshlcq_carry_<supf><mode>): Likewise.
9764
9765 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
9766 Mihail Ionescu <mihail.ionescu@arm.com>
9767 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
9768
9769 * config/arm/arm_mve.h (vqmovntq_u16): Define macro.
9770 (vqmovnbq_u16): Likewise.
9771 (vmulltq_poly_p8): Likewise.
9772 (vmullbq_poly_p8): Likewise.
9773 (vmovntq_u16): Likewise.
9774 (vmovnbq_u16): Likewise.
9775 (vmlaldavxq_u16): Likewise.
9776 (vmlaldavq_u16): Likewise.
9777 (vqmovuntq_s16): Likewise.
9778 (vqmovunbq_s16): Likewise.
9779 (vshlltq_n_u8): Likewise.
9780 (vshllbq_n_u8): Likewise.
9781 (vorrq_n_u16): Likewise.
9782 (vbicq_n_u16): Likewise.
9783 (vcmpneq_n_f16): Likewise.
9784 (vcmpneq_f16): Likewise.
9785 (vcmpltq_n_f16): Likewise.
9786 (vcmpltq_f16): Likewise.
9787 (vcmpleq_n_f16): Likewise.
9788 (vcmpleq_f16): Likewise.
9789 (vcmpgtq_n_f16): Likewise.
9790 (vcmpgtq_f16): Likewise.
9791 (vcmpgeq_n_f16): Likewise.
9792 (vcmpgeq_f16): Likewise.
9793 (vcmpeqq_n_f16): Likewise.
9794 (vcmpeqq_f16): Likewise.
9795 (vsubq_f16): Likewise.
9796 (vqmovntq_s16): Likewise.
9797 (vqmovnbq_s16): Likewise.
9798 (vqdmulltq_s16): Likewise.
9799 (vqdmulltq_n_s16): Likewise.
9800 (vqdmullbq_s16): Likewise.
9801 (vqdmullbq_n_s16): Likewise.
9802 (vorrq_f16): Likewise.
9803 (vornq_f16): Likewise.
9804 (vmulq_n_f16): Likewise.
9805 (vmulq_f16): Likewise.
9806 (vmovntq_s16): Likewise.
9807 (vmovnbq_s16): Likewise.
9808 (vmlsldavxq_s16): Likewise.
9809 (vmlsldavq_s16): Likewise.
9810 (vmlaldavxq_s16): Likewise.
9811 (vmlaldavq_s16): Likewise.
9812 (vminnmvq_f16): Likewise.
9813 (vminnmq_f16): Likewise.
9814 (vminnmavq_f16): Likewise.
9815 (vminnmaq_f16): Likewise.
9816 (vmaxnmvq_f16): Likewise.
9817 (vmaxnmq_f16): Likewise.
9818 (vmaxnmavq_f16): Likewise.
9819 (vmaxnmaq_f16): Likewise.
9820 (veorq_f16): Likewise.
9821 (vcmulq_rot90_f16): Likewise.
9822 (vcmulq_rot270_f16): Likewise.
9823 (vcmulq_rot180_f16): Likewise.
9824 (vcmulq_f16): Likewise.
9825 (vcaddq_rot90_f16): Likewise.
9826 (vcaddq_rot270_f16): Likewise.
9827 (vbicq_f16): Likewise.
9828 (vandq_f16): Likewise.
9829 (vaddq_n_f16): Likewise.
9830 (vabdq_f16): Likewise.
9831 (vshlltq_n_s8): Likewise.
9832 (vshllbq_n_s8): Likewise.
9833 (vorrq_n_s16): Likewise.
9834 (vbicq_n_s16): Likewise.
9835 (vqmovntq_u32): Likewise.
9836 (vqmovnbq_u32): Likewise.
9837 (vmulltq_poly_p16): Likewise.
9838 (vmullbq_poly_p16): Likewise.
9839 (vmovntq_u32): Likewise.
9840 (vmovnbq_u32): Likewise.
9841 (vmlaldavxq_u32): Likewise.
9842 (vmlaldavq_u32): Likewise.
9843 (vqmovuntq_s32): Likewise.
9844 (vqmovunbq_s32): Likewise.
9845 (vshlltq_n_u16): Likewise.
9846 (vshllbq_n_u16): Likewise.
9847 (vorrq_n_u32): Likewise.
9848 (vbicq_n_u32): Likewise.
9849 (vcmpneq_n_f32): Likewise.
9850 (vcmpneq_f32): Likewise.
9851 (vcmpltq_n_f32): Likewise.
9852 (vcmpltq_f32): Likewise.
9853 (vcmpleq_n_f32): Likewise.
9854 (vcmpleq_f32): Likewise.
9855 (vcmpgtq_n_f32): Likewise.
9856 (vcmpgtq_f32): Likewise.
9857 (vcmpgeq_n_f32): Likewise.
9858 (vcmpgeq_f32): Likewise.
9859 (vcmpeqq_n_f32): Likewise.
9860 (vcmpeqq_f32): Likewise.
9861 (vsubq_f32): Likewise.
9862 (vqmovntq_s32): Likewise.
9863 (vqmovnbq_s32): Likewise.
9864 (vqdmulltq_s32): Likewise.
9865 (vqdmulltq_n_s32): Likewise.
9866 (vqdmullbq_s32): Likewise.
9867 (vqdmullbq_n_s32): Likewise.
9868 (vorrq_f32): Likewise.
9869 (vornq_f32): Likewise.
9870 (vmulq_n_f32): Likewise.
9871 (vmulq_f32): Likewise.
9872 (vmovntq_s32): Likewise.
9873 (vmovnbq_s32): Likewise.
9874 (vmlsldavxq_s32): Likewise.
9875 (vmlsldavq_s32): Likewise.
9876 (vmlaldavxq_s32): Likewise.
9877 (vmlaldavq_s32): Likewise.
9878 (vminnmvq_f32): Likewise.
9879 (vminnmq_f32): Likewise.
9880 (vminnmavq_f32): Likewise.
9881 (vminnmaq_f32): Likewise.
9882 (vmaxnmvq_f32): Likewise.
9883 (vmaxnmq_f32): Likewise.
9884 (vmaxnmavq_f32): Likewise.
9885 (vmaxnmaq_f32): Likewise.
9886 (veorq_f32): Likewise.
9887 (vcmulq_rot90_f32): Likewise.
9888 (vcmulq_rot270_f32): Likewise.
9889 (vcmulq_rot180_f32): Likewise.
9890 (vcmulq_f32): Likewise.
9891 (vcaddq_rot90_f32): Likewise.
9892 (vcaddq_rot270_f32): Likewise.
9893 (vbicq_f32): Likewise.
9894 (vandq_f32): Likewise.
9895 (vaddq_n_f32): Likewise.
9896 (vabdq_f32): Likewise.
9897 (vshlltq_n_s16): Likewise.
9898 (vshllbq_n_s16): Likewise.
9899 (vorrq_n_s32): Likewise.
9900 (vbicq_n_s32): Likewise.
9901 (vrmlaldavhq_u32): Likewise.
9902 (vctp8q_m): Likewise.
9903 (vctp64q_m): Likewise.
9904 (vctp32q_m): Likewise.
9905 (vctp16q_m): Likewise.
9906 (vaddlvaq_u32): Likewise.
9907 (vrmlsldavhxq_s32): Likewise.
9908 (vrmlsldavhq_s32): Likewise.
9909 (vrmlaldavhxq_s32): Likewise.
9910 (vrmlaldavhq_s32): Likewise.
9911 (vcvttq_f16_f32): Likewise.
9912 (vcvtbq_f16_f32): Likewise.
9913 (vaddlvaq_s32): Likewise.
9914 (__arm_vqmovntq_u16): Define intrinsic.
9915 (__arm_vqmovnbq_u16): Likewise.
9916 (__arm_vmulltq_poly_p8): Likewise.
9917 (__arm_vmullbq_poly_p8): Likewise.
9918 (__arm_vmovntq_u16): Likewise.
9919 (__arm_vmovnbq_u16): Likewise.
9920 (__arm_vmlaldavxq_u16): Likewise.
9921 (__arm_vmlaldavq_u16): Likewise.
9922 (__arm_vqmovuntq_s16): Likewise.
9923 (__arm_vqmovunbq_s16): Likewise.
9924 (__arm_vshlltq_n_u8): Likewise.
9925 (__arm_vshllbq_n_u8): Likewise.
9926 (__arm_vorrq_n_u16): Likewise.
9927 (__arm_vbicq_n_u16): Likewise.
9928 (__arm_vcmpneq_n_f16): Likewise.
9929 (__arm_vcmpneq_f16): Likewise.
9930 (__arm_vcmpltq_n_f16): Likewise.
9931 (__arm_vcmpltq_f16): Likewise.
9932 (__arm_vcmpleq_n_f16): Likewise.
9933 (__arm_vcmpleq_f16): Likewise.
9934 (__arm_vcmpgtq_n_f16): Likewise.
9935 (__arm_vcmpgtq_f16): Likewise.
9936 (__arm_vcmpgeq_n_f16): Likewise.
9937 (__arm_vcmpgeq_f16): Likewise.
9938 (__arm_vcmpeqq_n_f16): Likewise.
9939 (__arm_vcmpeqq_f16): Likewise.
9940 (__arm_vsubq_f16): Likewise.
9941 (__arm_vqmovntq_s16): Likewise.
9942 (__arm_vqmovnbq_s16): Likewise.
9943 (__arm_vqdmulltq_s16): Likewise.
9944 (__arm_vqdmulltq_n_s16): Likewise.
9945 (__arm_vqdmullbq_s16): Likewise.
9946 (__arm_vqdmullbq_n_s16): Likewise.
9947 (__arm_vorrq_f16): Likewise.
9948 (__arm_vornq_f16): Likewise.
9949 (__arm_vmulq_n_f16): Likewise.
9950 (__arm_vmulq_f16): Likewise.
9951 (__arm_vmovntq_s16): Likewise.
9952 (__arm_vmovnbq_s16): Likewise.
9953 (__arm_vmlsldavxq_s16): Likewise.
9954 (__arm_vmlsldavq_s16): Likewise.
9955 (__arm_vmlaldavxq_s16): Likewise.
9956 (__arm_vmlaldavq_s16): Likewise.
9957 (__arm_vminnmvq_f16): Likewise.
9958 (__arm_vminnmq_f16): Likewise.
9959 (__arm_vminnmavq_f16): Likewise.
9960 (__arm_vminnmaq_f16): Likewise.
9961 (__arm_vmaxnmvq_f16): Likewise.
9962 (__arm_vmaxnmq_f16): Likewise.
9963 (__arm_vmaxnmavq_f16): Likewise.
9964 (__arm_vmaxnmaq_f16): Likewise.
9965 (__arm_veorq_f16): Likewise.
9966 (__arm_vcmulq_rot90_f16): Likewise.
9967 (__arm_vcmulq_rot270_f16): Likewise.
9968 (__arm_vcmulq_rot180_f16): Likewise.
9969 (__arm_vcmulq_f16): Likewise.
9970 (__arm_vcaddq_rot90_f16): Likewise.
9971 (__arm_vcaddq_rot270_f16): Likewise.
9972 (__arm_vbicq_f16): Likewise.
9973 (__arm_vandq_f16): Likewise.
9974 (__arm_vaddq_n_f16): Likewise.
9975 (__arm_vabdq_f16): Likewise.
9976 (__arm_vshlltq_n_s8): Likewise.
9977 (__arm_vshllbq_n_s8): Likewise.
9978 (__arm_vorrq_n_s16): Likewise.
9979 (__arm_vbicq_n_s16): Likewise.
9980 (__arm_vqmovntq_u32): Likewise.
9981 (__arm_vqmovnbq_u32): Likewise.
9982 (__arm_vmulltq_poly_p16): Likewise.
9983 (__arm_vmullbq_poly_p16): Likewise.
9984 (__arm_vmovntq_u32): Likewise.
9985 (__arm_vmovnbq_u32): Likewise.
9986 (__arm_vmlaldavxq_u32): Likewise.
9987 (__arm_vmlaldavq_u32): Likewise.
9988 (__arm_vqmovuntq_s32): Likewise.
9989 (__arm_vqmovunbq_s32): Likewise.
9990 (__arm_vshlltq_n_u16): Likewise.
9991 (__arm_vshllbq_n_u16): Likewise.
9992 (__arm_vorrq_n_u32): Likewise.
9993 (__arm_vbicq_n_u32): Likewise.
9994 (__arm_vcmpneq_n_f32): Likewise.
9995 (__arm_vcmpneq_f32): Likewise.
9996 (__arm_vcmpltq_n_f32): Likewise.
9997 (__arm_vcmpltq_f32): Likewise.
9998 (__arm_vcmpleq_n_f32): Likewise.
9999 (__arm_vcmpleq_f32): Likewise.
10000 (__arm_vcmpgtq_n_f32): Likewise.
10001 (__arm_vcmpgtq_f32): Likewise.
10002 (__arm_vcmpgeq_n_f32): Likewise.
10003 (__arm_vcmpgeq_f32): Likewise.
10004 (__arm_vcmpeqq_n_f32): Likewise.
10005 (__arm_vcmpeqq_f32): Likewise.
10006 (__arm_vsubq_f32): Likewise.
10007 (__arm_vqmovntq_s32): Likewise.
10008 (__arm_vqmovnbq_s32): Likewise.
10009 (__arm_vqdmulltq_s32): Likewise.
10010 (__arm_vqdmulltq_n_s32): Likewise.
10011 (__arm_vqdmullbq_s32): Likewise.
10012 (__arm_vqdmullbq_n_s32): Likewise.
10013 (__arm_vorrq_f32): Likewise.
10014 (__arm_vornq_f32): Likewise.
10015 (__arm_vmulq_n_f32): Likewise.
10016 (__arm_vmulq_f32): Likewise.
10017 (__arm_vmovntq_s32): Likewise.
10018 (__arm_vmovnbq_s32): Likewise.
10019 (__arm_vmlsldavxq_s32): Likewise.
10020 (__arm_vmlsldavq_s32): Likewise.
10021 (__arm_vmlaldavxq_s32): Likewise.
10022 (__arm_vmlaldavq_s32): Likewise.
10023 (__arm_vminnmvq_f32): Likewise.
10024 (__arm_vminnmq_f32): Likewise.
10025 (__arm_vminnmavq_f32): Likewise.
10026 (__arm_vminnmaq_f32): Likewise.
10027 (__arm_vmaxnmvq_f32): Likewise.
10028 (__arm_vmaxnmq_f32): Likewise.
10029 (__arm_vmaxnmavq_f32): Likewise.
10030 (__arm_vmaxnmaq_f32): Likewise.
10031 (__arm_veorq_f32): Likewise.
10032 (__arm_vcmulq_rot90_f32): Likewise.
10033 (__arm_vcmulq_rot270_f32): Likewise.
10034 (__arm_vcmulq_rot180_f32): Likewise.
10035 (__arm_vcmulq_f32): Likewise.
10036 (__arm_vcaddq_rot90_f32): Likewise.
10037 (__arm_vcaddq_rot270_f32): Likewise.
10038 (__arm_vbicq_f32): Likewise.
10039 (__arm_vandq_f32): Likewise.
10040 (__arm_vaddq_n_f32): Likewise.
10041 (__arm_vabdq_f32): Likewise.
10042 (__arm_vshlltq_n_s16): Likewise.
10043 (__arm_vshllbq_n_s16): Likewise.
10044 (__arm_vorrq_n_s32): Likewise.
10045 (__arm_vbicq_n_s32): Likewise.
10046 (__arm_vrmlaldavhq_u32): Likewise.
10047 (__arm_vctp8q_m): Likewise.
10048 (__arm_vctp64q_m): Likewise.
10049 (__arm_vctp32q_m): Likewise.
10050 (__arm_vctp16q_m): Likewise.
10051 (__arm_vaddlvaq_u32): Likewise.
10052 (__arm_vrmlsldavhxq_s32): Likewise.
10053 (__arm_vrmlsldavhq_s32): Likewise.
10054 (__arm_vrmlaldavhxq_s32): Likewise.
10055 (__arm_vrmlaldavhq_s32): Likewise.
10056 (__arm_vcvttq_f16_f32): Likewise.
10057 (__arm_vcvtbq_f16_f32): Likewise.
10058 (__arm_vaddlvaq_s32): Likewise.
10059 (vst4q): Define polymorphic variant.
10060 (vrndxq): Likewise.
10061 (vrndq): Likewise.
10062 (vrndpq): Likewise.
10063 (vrndnq): Likewise.
10064 (vrndmq): Likewise.
10065 (vrndaq): Likewise.
10066 (vrev64q): Likewise.
10067 (vnegq): Likewise.
10068 (vdupq_n): Likewise.
10069 (vabsq): Likewise.
10070 (vrev32q): Likewise.
10071 (vcvtbq_f32): Likewise.
10072 (vcvttq_f32): Likewise.
10073 (vcvtq): Likewise.
10074 (vsubq_n): Likewise.
10075 (vbrsrq_n): Likewise.
10076 (vcvtq_n): Likewise.
10077 (vsubq): Likewise.
10078 (vorrq): Likewise.
10079 (vabdq): Likewise.
10080 (vaddq_n): Likewise.
10081 (vandq): Likewise.
10082 (vbicq): Likewise.
10083 (vornq): Likewise.
10084 (vmulq_n): Likewise.
10085 (vmulq): Likewise.
10086 (vcaddq_rot270): Likewise.
10087 (vcmpeqq_n): Likewise.
10088 (vcmpeqq): Likewise.
10089 (vcaddq_rot90): Likewise.
10090 (vcmpgeq_n): Likewise.
10091 (vcmpgeq): Likewise.
10092 (vcmpgtq_n): Likewise.
10093 (vcmpgtq): Likewise.
10094 (vcmpgtq): Likewise.
10095 (vcmpleq_n): Likewise.
10096 (vcmpleq_n): Likewise.
10097 (vcmpleq): Likewise.
10098 (vcmpleq): Likewise.
10099 (vcmpltq_n): Likewise.
10100 (vcmpltq_n): Likewise.
10101 (vcmpltq): Likewise.
10102 (vcmpltq): Likewise.
10103 (vcmpneq_n): Likewise.
10104 (vcmpneq_n): Likewise.
10105 (vcmpneq): Likewise.
10106 (vcmpneq): Likewise.
10107 (vcmulq): Likewise.
10108 (vcmulq): Likewise.
10109 (vcmulq_rot180): Likewise.
10110 (vcmulq_rot180): Likewise.
10111 (vcmulq_rot270): Likewise.
10112 (vcmulq_rot270): Likewise.
10113 (vcmulq_rot90): Likewise.
10114 (vcmulq_rot90): Likewise.
10115 (veorq): Likewise.
10116 (veorq): Likewise.
10117 (vmaxnmaq): Likewise.
10118 (vmaxnmaq): Likewise.
10119 (vmaxnmavq): Likewise.
10120 (vmaxnmavq): Likewise.
10121 (vmaxnmq): Likewise.
10122 (vmaxnmq): Likewise.
10123 (vmaxnmvq): Likewise.
10124 (vmaxnmvq): Likewise.
10125 (vminnmaq): Likewise.
10126 (vminnmaq): Likewise.
10127 (vminnmavq): Likewise.
10128 (vminnmavq): Likewise.
10129 (vminnmq): Likewise.
10130 (vminnmq): Likewise.
10131 (vminnmvq): Likewise.
10132 (vminnmvq): Likewise.
10133 (vbicq_n): Likewise.
10134 (vqmovntq): Likewise.
10135 (vqmovntq): Likewise.
10136 (vqmovnbq): Likewise.
10137 (vqmovnbq): Likewise.
10138 (vmulltq_poly): Likewise.
10139 (vmulltq_poly): Likewise.
10140 (vmullbq_poly): Likewise.
10141 (vmullbq_poly): Likewise.
10142 (vmovntq): Likewise.
10143 (vmovntq): Likewise.
10144 (vmovnbq): Likewise.
10145 (vmovnbq): Likewise.
10146 (vmlaldavxq): Likewise.
10147 (vmlaldavxq): Likewise.
10148 (vqmovuntq): Likewise.
10149 (vqmovuntq): Likewise.
10150 (vshlltq_n): Likewise.
10151 (vshlltq_n): Likewise.
10152 (vshllbq_n): Likewise.
10153 (vshllbq_n): Likewise.
10154 (vorrq_n): Likewise.
10155 (vorrq_n): Likewise.
10156 (vmlaldavq): Likewise.
10157 (vmlaldavq): Likewise.
10158 (vqmovunbq): Likewise.
10159 (vqmovunbq): Likewise.
10160 (vqdmulltq_n): Likewise.
10161 (vqdmulltq_n): Likewise.
10162 (vqdmulltq): Likewise.
10163 (vqdmulltq): Likewise.
10164 (vqdmullbq_n): Likewise.
10165 (vqdmullbq_n): Likewise.
10166 (vqdmullbq): Likewise.
10167 (vqdmullbq): Likewise.
10168 (vaddlvaq): Likewise.
10169 (vaddlvaq): Likewise.
10170 (vrmlaldavhq): Likewise.
10171 (vrmlaldavhq): Likewise.
10172 (vrmlaldavhxq): Likewise.
10173 (vrmlaldavhxq): Likewise.
10174 (vrmlsldavhq): Likewise.
10175 (vrmlsldavhq): Likewise.
10176 (vrmlsldavhxq): Likewise.
10177 (vrmlsldavhxq): Likewise.
10178 (vmlsldavxq): Likewise.
10179 (vmlsldavxq): Likewise.
10180 (vmlsldavq): Likewise.
10181 (vmlsldavq): Likewise.
10182 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
10183 (BINOP_NONE_NONE_NONE): Likewise.
10184 (BINOP_UNONE_NONE_NONE): Likewise.
10185 (BINOP_UNONE_UNONE_IMM): Likewise.
10186 (BINOP_UNONE_UNONE_NONE): Likewise.
10187 (BINOP_UNONE_UNONE_UNONE): Likewise.
10188 * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern.
10189 (mve_vaddlvaq_<supf>v4si): Likewise.
10190 (mve_vaddq_n_f<mode>): Likewise.
10191 (mve_vandq_f<mode>): Likewise.
10192 (mve_vbicq_f<mode>): Likewise.
10193 (mve_vbicq_n_<supf><mode>): Likewise.
10194 (mve_vcaddq_rot270_f<mode>): Likewise.
10195 (mve_vcaddq_rot90_f<mode>): Likewise.
10196 (mve_vcmpeqq_f<mode>): Likewise.
10197 (mve_vcmpeqq_n_f<mode>): Likewise.
10198 (mve_vcmpgeq_f<mode>): Likewise.
10199 (mve_vcmpgeq_n_f<mode>): Likewise.
10200 (mve_vcmpgtq_f<mode>): Likewise.
10201 (mve_vcmpgtq_n_f<mode>): Likewise.
10202 (mve_vcmpleq_f<mode>): Likewise.
10203 (mve_vcmpleq_n_f<mode>): Likewise.
10204 (mve_vcmpltq_f<mode>): Likewise.
10205 (mve_vcmpltq_n_f<mode>): Likewise.
10206 (mve_vcmpneq_f<mode>): Likewise.
10207 (mve_vcmpneq_n_f<mode>): Likewise.
10208 (mve_vcmulq_f<mode>): Likewise.
10209 (mve_vcmulq_rot180_f<mode>): Likewise.
10210 (mve_vcmulq_rot270_f<mode>): Likewise.
10211 (mve_vcmulq_rot90_f<mode>): Likewise.
10212 (mve_vctp<mode1>q_mhi): Likewise.
10213 (mve_vcvtbq_f16_f32v8hf): Likewise.
10214 (mve_vcvttq_f16_f32v8hf): Likewise.
10215 (mve_veorq_f<mode>): Likewise.
10216 (mve_vmaxnmaq_f<mode>): Likewise.
10217 (mve_vmaxnmavq_f<mode>): Likewise.
10218 (mve_vmaxnmq_f<mode>): Likewise.
10219 (mve_vmaxnmvq_f<mode>): Likewise.
10220 (mve_vminnmaq_f<mode>): Likewise.
10221 (mve_vminnmavq_f<mode>): Likewise.
10222 (mve_vminnmq_f<mode>): Likewise.
10223 (mve_vminnmvq_f<mode>): Likewise.
10224 (mve_vmlaldavq_<supf><mode>): Likewise.
10225 (mve_vmlaldavxq_<supf><mode>): Likewise.
10226 (mve_vmlsldavq_s<mode>): Likewise.
10227 (mve_vmlsldavxq_s<mode>): Likewise.
10228 (mve_vmovnbq_<supf><mode>): Likewise.
10229 (mve_vmovntq_<supf><mode>): Likewise.
10230 (mve_vmulq_f<mode>): Likewise.
10231 (mve_vmulq_n_f<mode>): Likewise.
10232 (mve_vornq_f<mode>): Likewise.
10233 (mve_vorrq_f<mode>): Likewise.
10234 (mve_vorrq_n_<supf><mode>): Likewise.
10235 (mve_vqdmullbq_n_s<mode>): Likewise.
10236 (mve_vqdmullbq_s<mode>): Likewise.
10237 (mve_vqdmulltq_n_s<mode>): Likewise.
10238 (mve_vqdmulltq_s<mode>): Likewise.
10239 (mve_vqmovnbq_<supf><mode>): Likewise.
10240 (mve_vqmovntq_<supf><mode>): Likewise.
10241 (mve_vqmovunbq_s<mode>): Likewise.
10242 (mve_vqmovuntq_s<mode>): Likewise.
10243 (mve_vrmlaldavhxq_sv4si): Likewise.
10244 (mve_vrmlsldavhq_sv4si): Likewise.
10245 (mve_vrmlsldavhxq_sv4si): Likewise.
10246 (mve_vshllbq_n_<supf><mode>): Likewise.
10247 (mve_vshlltq_n_<supf><mode>): Likewise.
10248 (mve_vsubq_f<mode>): Likewise.
10249 (mve_vmulltq_poly_p<mode>): Likewise.
10250 (mve_vmullbq_poly_p<mode>): Likewise.
10251 (mve_vrmlaldavhq_<supf>v4si): Likewise.
10252
10253 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
10254 Mihail Ionescu <mihail.ionescu@arm.com>
10255 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
10256
10257 * config/arm/arm_mve.h (vsubq_u8): Define macro.
10258 (vsubq_n_u8): Likewise.
10259 (vrmulhq_u8): Likewise.
10260 (vrhaddq_u8): Likewise.
10261 (vqsubq_u8): Likewise.
10262 (vqsubq_n_u8): Likewise.
10263 (vqaddq_u8): Likewise.
10264 (vqaddq_n_u8): Likewise.
10265 (vorrq_u8): Likewise.
10266 (vornq_u8): Likewise.
10267 (vmulq_u8): Likewise.
10268 (vmulq_n_u8): Likewise.
10269 (vmulltq_int_u8): Likewise.
10270 (vmullbq_int_u8): Likewise.
10271 (vmulhq_u8): Likewise.
10272 (vmladavq_u8): Likewise.
10273 (vminvq_u8): Likewise.
10274 (vminq_u8): Likewise.
10275 (vmaxvq_u8): Likewise.
10276 (vmaxq_u8): Likewise.
10277 (vhsubq_u8): Likewise.
10278 (vhsubq_n_u8): Likewise.
10279 (vhaddq_u8): Likewise.
10280 (vhaddq_n_u8): Likewise.
10281 (veorq_u8): Likewise.
10282 (vcmpneq_n_u8): Likewise.
10283 (vcmphiq_u8): Likewise.
10284 (vcmphiq_n_u8): Likewise.
10285 (vcmpeqq_u8): Likewise.
10286 (vcmpeqq_n_u8): Likewise.
10287 (vcmpcsq_u8): Likewise.
10288 (vcmpcsq_n_u8): Likewise.
10289 (vcaddq_rot90_u8): Likewise.
10290 (vcaddq_rot270_u8): Likewise.
10291 (vbicq_u8): Likewise.
10292 (vandq_u8): Likewise.
10293 (vaddvq_p_u8): Likewise.
10294 (vaddvaq_u8): Likewise.
10295 (vaddq_n_u8): Likewise.
10296 (vabdq_u8): Likewise.
10297 (vshlq_r_u8): Likewise.
10298 (vrshlq_u8): Likewise.
10299 (vrshlq_n_u8): Likewise.
10300 (vqshlq_u8): Likewise.
10301 (vqshlq_r_u8): Likewise.
10302 (vqrshlq_u8): Likewise.
10303 (vqrshlq_n_u8): Likewise.
10304 (vminavq_s8): Likewise.
10305 (vminaq_s8): Likewise.
10306 (vmaxavq_s8): Likewise.
10307 (vmaxaq_s8): Likewise.
10308 (vbrsrq_n_u8): Likewise.
10309 (vshlq_n_u8): Likewise.
10310 (vrshrq_n_u8): Likewise.
10311 (vqshlq_n_u8): Likewise.
10312 (vcmpneq_n_s8): Likewise.
10313 (vcmpltq_s8): Likewise.
10314 (vcmpltq_n_s8): Likewise.
10315 (vcmpleq_s8): Likewise.
10316 (vcmpleq_n_s8): Likewise.
10317 (vcmpgtq_s8): Likewise.
10318 (vcmpgtq_n_s8): Likewise.
10319 (vcmpgeq_s8): Likewise.
10320 (vcmpgeq_n_s8): Likewise.
10321 (vcmpeqq_s8): Likewise.
10322 (vcmpeqq_n_s8): Likewise.
10323 (vqshluq_n_s8): Likewise.
10324 (vaddvq_p_s8): Likewise.
10325 (vsubq_s8): Likewise.
10326 (vsubq_n_s8): Likewise.
10327 (vshlq_r_s8): Likewise.
10328 (vrshlq_s8): Likewise.
10329 (vrshlq_n_s8): Likewise.
10330 (vrmulhq_s8): Likewise.
10331 (vrhaddq_s8): Likewise.
10332 (vqsubq_s8): Likewise.
10333 (vqsubq_n_s8): Likewise.
10334 (vqshlq_s8): Likewise.
10335 (vqshlq_r_s8): Likewise.
10336 (vqrshlq_s8): Likewise.
10337 (vqrshlq_n_s8): Likewise.
10338 (vqrdmulhq_s8): Likewise.
10339 (vqrdmulhq_n_s8): Likewise.
10340 (vqdmulhq_s8): Likewise.
10341 (vqdmulhq_n_s8): Likewise.
10342 (vqaddq_s8): Likewise.
10343 (vqaddq_n_s8): Likewise.
10344 (vorrq_s8): Likewise.
10345 (vornq_s8): Likewise.
10346 (vmulq_s8): Likewise.
10347 (vmulq_n_s8): Likewise.
10348 (vmulltq_int_s8): Likewise.
10349 (vmullbq_int_s8): Likewise.
10350 (vmulhq_s8): Likewise.
10351 (vmlsdavxq_s8): Likewise.
10352 (vmlsdavq_s8): Likewise.
10353 (vmladavxq_s8): Likewise.
10354 (vmladavq_s8): Likewise.
10355 (vminvq_s8): Likewise.
10356 (vminq_s8): Likewise.
10357 (vmaxvq_s8): Likewise.
10358 (vmaxq_s8): Likewise.
10359 (vhsubq_s8): Likewise.
10360 (vhsubq_n_s8): Likewise.
10361 (vhcaddq_rot90_s8): Likewise.
10362 (vhcaddq_rot270_s8): Likewise.
10363 (vhaddq_s8): Likewise.
10364 (vhaddq_n_s8): Likewise.
10365 (veorq_s8): Likewise.
10366 (vcaddq_rot90_s8): Likewise.
10367 (vcaddq_rot270_s8): Likewise.
10368 (vbrsrq_n_s8): Likewise.
10369 (vbicq_s8): Likewise.
10370 (vandq_s8): Likewise.
10371 (vaddvaq_s8): Likewise.
10372 (vaddq_n_s8): Likewise.
10373 (vabdq_s8): Likewise.
10374 (vshlq_n_s8): Likewise.
10375 (vrshrq_n_s8): Likewise.
10376 (vqshlq_n_s8): Likewise.
10377 (vsubq_u16): Likewise.
10378 (vsubq_n_u16): Likewise.
10379 (vrmulhq_u16): Likewise.
10380 (vrhaddq_u16): Likewise.
10381 (vqsubq_u16): Likewise.
10382 (vqsubq_n_u16): Likewise.
10383 (vqaddq_u16): Likewise.
10384 (vqaddq_n_u16): Likewise.
10385 (vorrq_u16): Likewise.
10386 (vornq_u16): Likewise.
10387 (vmulq_u16): Likewise.
10388 (vmulq_n_u16): Likewise.
10389 (vmulltq_int_u16): Likewise.
10390 (vmullbq_int_u16): Likewise.
10391 (vmulhq_u16): Likewise.
10392 (vmladavq_u16): Likewise.
10393 (vminvq_u16): Likewise.
10394 (vminq_u16): Likewise.
10395 (vmaxvq_u16): Likewise.
10396 (vmaxq_u16): Likewise.
10397 (vhsubq_u16): Likewise.
10398 (vhsubq_n_u16): Likewise.
10399 (vhaddq_u16): Likewise.
10400 (vhaddq_n_u16): Likewise.
10401 (veorq_u16): Likewise.
10402 (vcmpneq_n_u16): Likewise.
10403 (vcmphiq_u16): Likewise.
10404 (vcmphiq_n_u16): Likewise.
10405 (vcmpeqq_u16): Likewise.
10406 (vcmpeqq_n_u16): Likewise.
10407 (vcmpcsq_u16): Likewise.
10408 (vcmpcsq_n_u16): Likewise.
10409 (vcaddq_rot90_u16): Likewise.
10410 (vcaddq_rot270_u16): Likewise.
10411 (vbicq_u16): Likewise.
10412 (vandq_u16): Likewise.
10413 (vaddvq_p_u16): Likewise.
10414 (vaddvaq_u16): Likewise.
10415 (vaddq_n_u16): Likewise.
10416 (vabdq_u16): Likewise.
10417 (vshlq_r_u16): Likewise.
10418 (vrshlq_u16): Likewise.
10419 (vrshlq_n_u16): Likewise.
10420 (vqshlq_u16): Likewise.
10421 (vqshlq_r_u16): Likewise.
10422 (vqrshlq_u16): Likewise.
10423 (vqrshlq_n_u16): Likewise.
10424 (vminavq_s16): Likewise.
10425 (vminaq_s16): Likewise.
10426 (vmaxavq_s16): Likewise.
10427 (vmaxaq_s16): Likewise.
10428 (vbrsrq_n_u16): Likewise.
10429 (vshlq_n_u16): Likewise.
10430 (vrshrq_n_u16): Likewise.
10431 (vqshlq_n_u16): Likewise.
10432 (vcmpneq_n_s16): Likewise.
10433 (vcmpltq_s16): Likewise.
10434 (vcmpltq_n_s16): Likewise.
10435 (vcmpleq_s16): Likewise.
10436 (vcmpleq_n_s16): Likewise.
10437 (vcmpgtq_s16): Likewise.
10438 (vcmpgtq_n_s16): Likewise.
10439 (vcmpgeq_s16): Likewise.
10440 (vcmpgeq_n_s16): Likewise.
10441 (vcmpeqq_s16): Likewise.
10442 (vcmpeqq_n_s16): Likewise.
10443 (vqshluq_n_s16): Likewise.
10444 (vaddvq_p_s16): Likewise.
10445 (vsubq_s16): Likewise.
10446 (vsubq_n_s16): Likewise.
10447 (vshlq_r_s16): Likewise.
10448 (vrshlq_s16): Likewise.
10449 (vrshlq_n_s16): Likewise.
10450 (vrmulhq_s16): Likewise.
10451 (vrhaddq_s16): Likewise.
10452 (vqsubq_s16): Likewise.
10453 (vqsubq_n_s16): Likewise.
10454 (vqshlq_s16): Likewise.
10455 (vqshlq_r_s16): Likewise.
10456 (vqrshlq_s16): Likewise.
10457 (vqrshlq_n_s16): Likewise.
10458 (vqrdmulhq_s16): Likewise.
10459 (vqrdmulhq_n_s16): Likewise.
10460 (vqdmulhq_s16): Likewise.
10461 (vqdmulhq_n_s16): Likewise.
10462 (vqaddq_s16): Likewise.
10463 (vqaddq_n_s16): Likewise.
10464 (vorrq_s16): Likewise.
10465 (vornq_s16): Likewise.
10466 (vmulq_s16): Likewise.
10467 (vmulq_n_s16): Likewise.
10468 (vmulltq_int_s16): Likewise.
10469 (vmullbq_int_s16): Likewise.
10470 (vmulhq_s16): Likewise.
10471 (vmlsdavxq_s16): Likewise.
10472 (vmlsdavq_s16): Likewise.
10473 (vmladavxq_s16): Likewise.
10474 (vmladavq_s16): Likewise.
10475 (vminvq_s16): Likewise.
10476 (vminq_s16): Likewise.
10477 (vmaxvq_s16): Likewise.
10478 (vmaxq_s16): Likewise.
10479 (vhsubq_s16): Likewise.
10480 (vhsubq_n_s16): Likewise.
10481 (vhcaddq_rot90_s16): Likewise.
10482 (vhcaddq_rot270_s16): Likewise.
10483 (vhaddq_s16): Likewise.
10484 (vhaddq_n_s16): Likewise.
10485 (veorq_s16): Likewise.
10486 (vcaddq_rot90_s16): Likewise.
10487 (vcaddq_rot270_s16): Likewise.
10488 (vbrsrq_n_s16): Likewise.
10489 (vbicq_s16): Likewise.
10490 (vandq_s16): Likewise.
10491 (vaddvaq_s16): Likewise.
10492 (vaddq_n_s16): Likewise.
10493 (vabdq_s16): Likewise.
10494 (vshlq_n_s16): Likewise.
10495 (vrshrq_n_s16): Likewise.
10496 (vqshlq_n_s16): Likewise.
10497 (vsubq_u32): Likewise.
10498 (vsubq_n_u32): Likewise.
10499 (vrmulhq_u32): Likewise.
10500 (vrhaddq_u32): Likewise.
10501 (vqsubq_u32): Likewise.
10502 (vqsubq_n_u32): Likewise.
10503 (vqaddq_u32): Likewise.
10504 (vqaddq_n_u32): Likewise.
10505 (vorrq_u32): Likewise.
10506 (vornq_u32): Likewise.
10507 (vmulq_u32): Likewise.
10508 (vmulq_n_u32): Likewise.
10509 (vmulltq_int_u32): Likewise.
10510 (vmullbq_int_u32): Likewise.
10511 (vmulhq_u32): Likewise.
10512 (vmladavq_u32): Likewise.
10513 (vminvq_u32): Likewise.
10514 (vminq_u32): Likewise.
10515 (vmaxvq_u32): Likewise.
10516 (vmaxq_u32): Likewise.
10517 (vhsubq_u32): Likewise.
10518 (vhsubq_n_u32): Likewise.
10519 (vhaddq_u32): Likewise.
10520 (vhaddq_n_u32): Likewise.
10521 (veorq_u32): Likewise.
10522 (vcmpneq_n_u32): Likewise.
10523 (vcmphiq_u32): Likewise.
10524 (vcmphiq_n_u32): Likewise.
10525 (vcmpeqq_u32): Likewise.
10526 (vcmpeqq_n_u32): Likewise.
10527 (vcmpcsq_u32): Likewise.
10528 (vcmpcsq_n_u32): Likewise.
10529 (vcaddq_rot90_u32): Likewise.
10530 (vcaddq_rot270_u32): Likewise.
10531 (vbicq_u32): Likewise.
10532 (vandq_u32): Likewise.
10533 (vaddvq_p_u32): Likewise.
10534 (vaddvaq_u32): Likewise.
10535 (vaddq_n_u32): Likewise.
10536 (vabdq_u32): Likewise.
10537 (vshlq_r_u32): Likewise.
10538 (vrshlq_u32): Likewise.
10539 (vrshlq_n_u32): Likewise.
10540 (vqshlq_u32): Likewise.
10541 (vqshlq_r_u32): Likewise.
10542 (vqrshlq_u32): Likewise.
10543 (vqrshlq_n_u32): Likewise.
10544 (vminavq_s32): Likewise.
10545 (vminaq_s32): Likewise.
10546 (vmaxavq_s32): Likewise.
10547 (vmaxaq_s32): Likewise.
10548 (vbrsrq_n_u32): Likewise.
10549 (vshlq_n_u32): Likewise.
10550 (vrshrq_n_u32): Likewise.
10551 (vqshlq_n_u32): Likewise.
10552 (vcmpneq_n_s32): Likewise.
10553 (vcmpltq_s32): Likewise.
10554 (vcmpltq_n_s32): Likewise.
10555 (vcmpleq_s32): Likewise.
10556 (vcmpleq_n_s32): Likewise.
10557 (vcmpgtq_s32): Likewise.
10558 (vcmpgtq_n_s32): Likewise.
10559 (vcmpgeq_s32): Likewise.
10560 (vcmpgeq_n_s32): Likewise.
10561 (vcmpeqq_s32): Likewise.
10562 (vcmpeqq_n_s32): Likewise.
10563 (vqshluq_n_s32): Likewise.
10564 (vaddvq_p_s32): Likewise.
10565 (vsubq_s32): Likewise.
10566 (vsubq_n_s32): Likewise.
10567 (vshlq_r_s32): Likewise.
10568 (vrshlq_s32): Likewise.
10569 (vrshlq_n_s32): Likewise.
10570 (vrmulhq_s32): Likewise.
10571 (vrhaddq_s32): Likewise.
10572 (vqsubq_s32): Likewise.
10573 (vqsubq_n_s32): Likewise.
10574 (vqshlq_s32): Likewise.
10575 (vqshlq_r_s32): Likewise.
10576 (vqrshlq_s32): Likewise.
10577 (vqrshlq_n_s32): Likewise.
10578 (vqrdmulhq_s32): Likewise.
10579 (vqrdmulhq_n_s32): Likewise.
10580 (vqdmulhq_s32): Likewise.
10581 (vqdmulhq_n_s32): Likewise.
10582 (vqaddq_s32): Likewise.
10583 (vqaddq_n_s32): Likewise.
10584 (vorrq_s32): Likewise.
10585 (vornq_s32): Likewise.
10586 (vmulq_s32): Likewise.
10587 (vmulq_n_s32): Likewise.
10588 (vmulltq_int_s32): Likewise.
10589 (vmullbq_int_s32): Likewise.
10590 (vmulhq_s32): Likewise.
10591 (vmlsdavxq_s32): Likewise.
10592 (vmlsdavq_s32): Likewise.
10593 (vmladavxq_s32): Likewise.
10594 (vmladavq_s32): Likewise.
10595 (vminvq_s32): Likewise.
10596 (vminq_s32): Likewise.
10597 (vmaxvq_s32): Likewise.
10598 (vmaxq_s32): Likewise.
10599 (vhsubq_s32): Likewise.
10600 (vhsubq_n_s32): Likewise.
10601 (vhcaddq_rot90_s32): Likewise.
10602 (vhcaddq_rot270_s32): Likewise.
10603 (vhaddq_s32): Likewise.
10604 (vhaddq_n_s32): Likewise.
10605 (veorq_s32): Likewise.
10606 (vcaddq_rot90_s32): Likewise.
10607 (vcaddq_rot270_s32): Likewise.
10608 (vbrsrq_n_s32): Likewise.
10609 (vbicq_s32): Likewise.
10610 (vandq_s32): Likewise.
10611 (vaddvaq_s32): Likewise.
10612 (vaddq_n_s32): Likewise.
10613 (vabdq_s32): Likewise.
10614 (vshlq_n_s32): Likewise.
10615 (vrshrq_n_s32): Likewise.
10616 (vqshlq_n_s32): Likewise.
10617 (__arm_vsubq_u8): Define intrinsic.
10618 (__arm_vsubq_n_u8): Likewise.
10619 (__arm_vrmulhq_u8): Likewise.
10620 (__arm_vrhaddq_u8): Likewise.
10621 (__arm_vqsubq_u8): Likewise.
10622 (__arm_vqsubq_n_u8): Likewise.
10623 (__arm_vqaddq_u8): Likewise.
10624 (__arm_vqaddq_n_u8): Likewise.
10625 (__arm_vorrq_u8): Likewise.
10626 (__arm_vornq_u8): Likewise.
10627 (__arm_vmulq_u8): Likewise.
10628 (__arm_vmulq_n_u8): Likewise.
10629 (__arm_vmulltq_int_u8): Likewise.
10630 (__arm_vmullbq_int_u8): Likewise.
10631 (__arm_vmulhq_u8): Likewise.
10632 (__arm_vmladavq_u8): Likewise.
10633 (__arm_vminvq_u8): Likewise.
10634 (__arm_vminq_u8): Likewise.
10635 (__arm_vmaxvq_u8): Likewise.
10636 (__arm_vmaxq_u8): Likewise.
10637 (__arm_vhsubq_u8): Likewise.
10638 (__arm_vhsubq_n_u8): Likewise.
10639 (__arm_vhaddq_u8): Likewise.
10640 (__arm_vhaddq_n_u8): Likewise.
10641 (__arm_veorq_u8): Likewise.
10642 (__arm_vcmpneq_n_u8): Likewise.
10643 (__arm_vcmphiq_u8): Likewise.
10644 (__arm_vcmphiq_n_u8): Likewise.
10645 (__arm_vcmpeqq_u8): Likewise.
10646 (__arm_vcmpeqq_n_u8): Likewise.
10647 (__arm_vcmpcsq_u8): Likewise.
10648 (__arm_vcmpcsq_n_u8): Likewise.
10649 (__arm_vcaddq_rot90_u8): Likewise.
10650 (__arm_vcaddq_rot270_u8): Likewise.
10651 (__arm_vbicq_u8): Likewise.
10652 (__arm_vandq_u8): Likewise.
10653 (__arm_vaddvq_p_u8): Likewise.
10654 (__arm_vaddvaq_u8): Likewise.
10655 (__arm_vaddq_n_u8): Likewise.
10656 (__arm_vabdq_u8): Likewise.
10657 (__arm_vshlq_r_u8): Likewise.
10658 (__arm_vrshlq_u8): Likewise.
10659 (__arm_vrshlq_n_u8): Likewise.
10660 (__arm_vqshlq_u8): Likewise.
10661 (__arm_vqshlq_r_u8): Likewise.
10662 (__arm_vqrshlq_u8): Likewise.
10663 (__arm_vqrshlq_n_u8): Likewise.
10664 (__arm_vminavq_s8): Likewise.
10665 (__arm_vminaq_s8): Likewise.
10666 (__arm_vmaxavq_s8): Likewise.
10667 (__arm_vmaxaq_s8): Likewise.
10668 (__arm_vbrsrq_n_u8): Likewise.
10669 (__arm_vshlq_n_u8): Likewise.
10670 (__arm_vrshrq_n_u8): Likewise.
10671 (__arm_vqshlq_n_u8): Likewise.
10672 (__arm_vcmpneq_n_s8): Likewise.
10673 (__arm_vcmpltq_s8): Likewise.
10674 (__arm_vcmpltq_n_s8): Likewise.
10675 (__arm_vcmpleq_s8): Likewise.
10676 (__arm_vcmpleq_n_s8): Likewise.
10677 (__arm_vcmpgtq_s8): Likewise.
10678 (__arm_vcmpgtq_n_s8): Likewise.
10679 (__arm_vcmpgeq_s8): Likewise.
10680 (__arm_vcmpgeq_n_s8): Likewise.
10681 (__arm_vcmpeqq_s8): Likewise.
10682 (__arm_vcmpeqq_n_s8): Likewise.
10683 (__arm_vqshluq_n_s8): Likewise.
10684 (__arm_vaddvq_p_s8): Likewise.
10685 (__arm_vsubq_s8): Likewise.
10686 (__arm_vsubq_n_s8): Likewise.
10687 (__arm_vshlq_r_s8): Likewise.
10688 (__arm_vrshlq_s8): Likewise.
10689 (__arm_vrshlq_n_s8): Likewise.
10690 (__arm_vrmulhq_s8): Likewise.
10691 (__arm_vrhaddq_s8): Likewise.
10692 (__arm_vqsubq_s8): Likewise.
10693 (__arm_vqsubq_n_s8): Likewise.
10694 (__arm_vqshlq_s8): Likewise.
10695 (__arm_vqshlq_r_s8): Likewise.
10696 (__arm_vqrshlq_s8): Likewise.
10697 (__arm_vqrshlq_n_s8): Likewise.
10698 (__arm_vqrdmulhq_s8): Likewise.
10699 (__arm_vqrdmulhq_n_s8): Likewise.
10700 (__arm_vqdmulhq_s8): Likewise.
10701 (__arm_vqdmulhq_n_s8): Likewise.
10702 (__arm_vqaddq_s8): Likewise.
10703 (__arm_vqaddq_n_s8): Likewise.
10704 (__arm_vorrq_s8): Likewise.
10705 (__arm_vornq_s8): Likewise.
10706 (__arm_vmulq_s8): Likewise.
10707 (__arm_vmulq_n_s8): Likewise.
10708 (__arm_vmulltq_int_s8): Likewise.
10709 (__arm_vmullbq_int_s8): Likewise.
10710 (__arm_vmulhq_s8): Likewise.
10711 (__arm_vmlsdavxq_s8): Likewise.
10712 (__arm_vmlsdavq_s8): Likewise.
10713 (__arm_vmladavxq_s8): Likewise.
10714 (__arm_vmladavq_s8): Likewise.
10715 (__arm_vminvq_s8): Likewise.
10716 (__arm_vminq_s8): Likewise.
10717 (__arm_vmaxvq_s8): Likewise.
10718 (__arm_vmaxq_s8): Likewise.
10719 (__arm_vhsubq_s8): Likewise.
10720 (__arm_vhsubq_n_s8): Likewise.
10721 (__arm_vhcaddq_rot90_s8): Likewise.
10722 (__arm_vhcaddq_rot270_s8): Likewise.
10723 (__arm_vhaddq_s8): Likewise.
10724 (__arm_vhaddq_n_s8): Likewise.
10725 (__arm_veorq_s8): Likewise.
10726 (__arm_vcaddq_rot90_s8): Likewise.
10727 (__arm_vcaddq_rot270_s8): Likewise.
10728 (__arm_vbrsrq_n_s8): Likewise.
10729 (__arm_vbicq_s8): Likewise.
10730 (__arm_vandq_s8): Likewise.
10731 (__arm_vaddvaq_s8): Likewise.
10732 (__arm_vaddq_n_s8): Likewise.
10733 (__arm_vabdq_s8): Likewise.
10734 (__arm_vshlq_n_s8): Likewise.
10735 (__arm_vrshrq_n_s8): Likewise.
10736 (__arm_vqshlq_n_s8): Likewise.
10737 (__arm_vsubq_u16): Likewise.
10738 (__arm_vsubq_n_u16): Likewise.
10739 (__arm_vrmulhq_u16): Likewise.
10740 (__arm_vrhaddq_u16): Likewise.
10741 (__arm_vqsubq_u16): Likewise.
10742 (__arm_vqsubq_n_u16): Likewise.
10743 (__arm_vqaddq_u16): Likewise.
10744 (__arm_vqaddq_n_u16): Likewise.
10745 (__arm_vorrq_u16): Likewise.
10746 (__arm_vornq_u16): Likewise.
10747 (__arm_vmulq_u16): Likewise.
10748 (__arm_vmulq_n_u16): Likewise.
10749 (__arm_vmulltq_int_u16): Likewise.
10750 (__arm_vmullbq_int_u16): Likewise.
10751 (__arm_vmulhq_u16): Likewise.
10752 (__arm_vmladavq_u16): Likewise.
10753 (__arm_vminvq_u16): Likewise.
10754 (__arm_vminq_u16): Likewise.
10755 (__arm_vmaxvq_u16): Likewise.
10756 (__arm_vmaxq_u16): Likewise.
10757 (__arm_vhsubq_u16): Likewise.
10758 (__arm_vhsubq_n_u16): Likewise.
10759 (__arm_vhaddq_u16): Likewise.
10760 (__arm_vhaddq_n_u16): Likewise.
10761 (__arm_veorq_u16): Likewise.
10762 (__arm_vcmpneq_n_u16): Likewise.
10763 (__arm_vcmphiq_u16): Likewise.
10764 (__arm_vcmphiq_n_u16): Likewise.
10765 (__arm_vcmpeqq_u16): Likewise.
10766 (__arm_vcmpeqq_n_u16): Likewise.
10767 (__arm_vcmpcsq_u16): Likewise.
10768 (__arm_vcmpcsq_n_u16): Likewise.
10769 (__arm_vcaddq_rot90_u16): Likewise.
10770 (__arm_vcaddq_rot270_u16): Likewise.
10771 (__arm_vbicq_u16): Likewise.
10772 (__arm_vandq_u16): Likewise.
10773 (__arm_vaddvq_p_u16): Likewise.
10774 (__arm_vaddvaq_u16): Likewise.
10775 (__arm_vaddq_n_u16): Likewise.
10776 (__arm_vabdq_u16): Likewise.
10777 (__arm_vshlq_r_u16): Likewise.
10778 (__arm_vrshlq_u16): Likewise.
10779 (__arm_vrshlq_n_u16): Likewise.
10780 (__arm_vqshlq_u16): Likewise.
10781 (__arm_vqshlq_r_u16): Likewise.
10782 (__arm_vqrshlq_u16): Likewise.
10783 (__arm_vqrshlq_n_u16): Likewise.
10784 (__arm_vminavq_s16): Likewise.
10785 (__arm_vminaq_s16): Likewise.
10786 (__arm_vmaxavq_s16): Likewise.
10787 (__arm_vmaxaq_s16): Likewise.
10788 (__arm_vbrsrq_n_u16): Likewise.
10789 (__arm_vshlq_n_u16): Likewise.
10790 (__arm_vrshrq_n_u16): Likewise.
10791 (__arm_vqshlq_n_u16): Likewise.
10792 (__arm_vcmpneq_n_s16): Likewise.
10793 (__arm_vcmpltq_s16): Likewise.
10794 (__arm_vcmpltq_n_s16): Likewise.
10795 (__arm_vcmpleq_s16): Likewise.
10796 (__arm_vcmpleq_n_s16): Likewise.
10797 (__arm_vcmpgtq_s16): Likewise.
10798 (__arm_vcmpgtq_n_s16): Likewise.
10799 (__arm_vcmpgeq_s16): Likewise.
10800 (__arm_vcmpgeq_n_s16): Likewise.
10801 (__arm_vcmpeqq_s16): Likewise.
10802 (__arm_vcmpeqq_n_s16): Likewise.
10803 (__arm_vqshluq_n_s16): Likewise.
10804 (__arm_vaddvq_p_s16): Likewise.
10805 (__arm_vsubq_s16): Likewise.
10806 (__arm_vsubq_n_s16): Likewise.
10807 (__arm_vshlq_r_s16): Likewise.
10808 (__arm_vrshlq_s16): Likewise.
10809 (__arm_vrshlq_n_s16): Likewise.
10810 (__arm_vrmulhq_s16): Likewise.
10811 (__arm_vrhaddq_s16): Likewise.
10812 (__arm_vqsubq_s16): Likewise.
10813 (__arm_vqsubq_n_s16): Likewise.
10814 (__arm_vqshlq_s16): Likewise.
10815 (__arm_vqshlq_r_s16): Likewise.
10816 (__arm_vqrshlq_s16): Likewise.
10817 (__arm_vqrshlq_n_s16): Likewise.
10818 (__arm_vqrdmulhq_s16): Likewise.
10819 (__arm_vqrdmulhq_n_s16): Likewise.
10820 (__arm_vqdmulhq_s16): Likewise.
10821 (__arm_vqdmulhq_n_s16): Likewise.
10822 (__arm_vqaddq_s16): Likewise.
10823 (__arm_vqaddq_n_s16): Likewise.
10824 (__arm_vorrq_s16): Likewise.
10825 (__arm_vornq_s16): Likewise.
10826 (__arm_vmulq_s16): Likewise.
10827 (__arm_vmulq_n_s16): Likewise.
10828 (__arm_vmulltq_int_s16): Likewise.
10829 (__arm_vmullbq_int_s16): Likewise.
10830 (__arm_vmulhq_s16): Likewise.
10831 (__arm_vmlsdavxq_s16): Likewise.
10832 (__arm_vmlsdavq_s16): Likewise.
10833 (__arm_vmladavxq_s16): Likewise.
10834 (__arm_vmladavq_s16): Likewise.
10835 (__arm_vminvq_s16): Likewise.
10836 (__arm_vminq_s16): Likewise.
10837 (__arm_vmaxvq_s16): Likewise.
10838 (__arm_vmaxq_s16): Likewise.
10839 (__arm_vhsubq_s16): Likewise.
10840 (__arm_vhsubq_n_s16): Likewise.
10841 (__arm_vhcaddq_rot90_s16): Likewise.
10842 (__arm_vhcaddq_rot270_s16): Likewise.
10843 (__arm_vhaddq_s16): Likewise.
10844 (__arm_vhaddq_n_s16): Likewise.
10845 (__arm_veorq_s16): Likewise.
10846 (__arm_vcaddq_rot90_s16): Likewise.
10847 (__arm_vcaddq_rot270_s16): Likewise.
10848 (__arm_vbrsrq_n_s16): Likewise.
10849 (__arm_vbicq_s16): Likewise.
10850 (__arm_vandq_s16): Likewise.
10851 (__arm_vaddvaq_s16): Likewise.
10852 (__arm_vaddq_n_s16): Likewise.
10853 (__arm_vabdq_s16): Likewise.
10854 (__arm_vshlq_n_s16): Likewise.
10855 (__arm_vrshrq_n_s16): Likewise.
10856 (__arm_vqshlq_n_s16): Likewise.
10857 (__arm_vsubq_u32): Likewise.
10858 (__arm_vsubq_n_u32): Likewise.
10859 (__arm_vrmulhq_u32): Likewise.
10860 (__arm_vrhaddq_u32): Likewise.
10861 (__arm_vqsubq_u32): Likewise.
10862 (__arm_vqsubq_n_u32): Likewise.
10863 (__arm_vqaddq_u32): Likewise.
10864 (__arm_vqaddq_n_u32): Likewise.
10865 (__arm_vorrq_u32): Likewise.
10866 (__arm_vornq_u32): Likewise.
10867 (__arm_vmulq_u32): Likewise.
10868 (__arm_vmulq_n_u32): Likewise.
10869 (__arm_vmulltq_int_u32): Likewise.
10870 (__arm_vmullbq_int_u32): Likewise.
10871 (__arm_vmulhq_u32): Likewise.
10872 (__arm_vmladavq_u32): Likewise.
10873 (__arm_vminvq_u32): Likewise.
10874 (__arm_vminq_u32): Likewise.
10875 (__arm_vmaxvq_u32): Likewise.
10876 (__arm_vmaxq_u32): Likewise.
10877 (__arm_vhsubq_u32): Likewise.
10878 (__arm_vhsubq_n_u32): Likewise.
10879 (__arm_vhaddq_u32): Likewise.
10880 (__arm_vhaddq_n_u32): Likewise.
10881 (__arm_veorq_u32): Likewise.
10882 (__arm_vcmpneq_n_u32): Likewise.
10883 (__arm_vcmphiq_u32): Likewise.
10884 (__arm_vcmphiq_n_u32): Likewise.
10885 (__arm_vcmpeqq_u32): Likewise.
10886 (__arm_vcmpeqq_n_u32): Likewise.
10887 (__arm_vcmpcsq_u32): Likewise.
10888 (__arm_vcmpcsq_n_u32): Likewise.
10889 (__arm_vcaddq_rot90_u32): Likewise.
10890 (__arm_vcaddq_rot270_u32): Likewise.
10891 (__arm_vbicq_u32): Likewise.
10892 (__arm_vandq_u32): Likewise.
10893 (__arm_vaddvq_p_u32): Likewise.
10894 (__arm_vaddvaq_u32): Likewise.
10895 (__arm_vaddq_n_u32): Likewise.
10896 (__arm_vabdq_u32): Likewise.
10897 (__arm_vshlq_r_u32): Likewise.
10898 (__arm_vrshlq_u32): Likewise.
10899 (__arm_vrshlq_n_u32): Likewise.
10900 (__arm_vqshlq_u32): Likewise.
10901 (__arm_vqshlq_r_u32): Likewise.
10902 (__arm_vqrshlq_u32): Likewise.
10903 (__arm_vqrshlq_n_u32): Likewise.
10904 (__arm_vminavq_s32): Likewise.
10905 (__arm_vminaq_s32): Likewise.
10906 (__arm_vmaxavq_s32): Likewise.
10907 (__arm_vmaxaq_s32): Likewise.
10908 (__arm_vbrsrq_n_u32): Likewise.
10909 (__arm_vshlq_n_u32): Likewise.
10910 (__arm_vrshrq_n_u32): Likewise.
10911 (__arm_vqshlq_n_u32): Likewise.
10912 (__arm_vcmpneq_n_s32): Likewise.
10913 (__arm_vcmpltq_s32): Likewise.
10914 (__arm_vcmpltq_n_s32): Likewise.
10915 (__arm_vcmpleq_s32): Likewise.
10916 (__arm_vcmpleq_n_s32): Likewise.
10917 (__arm_vcmpgtq_s32): Likewise.
10918 (__arm_vcmpgtq_n_s32): Likewise.
10919 (__arm_vcmpgeq_s32): Likewise.
10920 (__arm_vcmpgeq_n_s32): Likewise.
10921 (__arm_vcmpeqq_s32): Likewise.
10922 (__arm_vcmpeqq_n_s32): Likewise.
10923 (__arm_vqshluq_n_s32): Likewise.
10924 (__arm_vaddvq_p_s32): Likewise.
10925 (__arm_vsubq_s32): Likewise.
10926 (__arm_vsubq_n_s32): Likewise.
10927 (__arm_vshlq_r_s32): Likewise.
10928 (__arm_vrshlq_s32): Likewise.
10929 (__arm_vrshlq_n_s32): Likewise.
10930 (__arm_vrmulhq_s32): Likewise.
10931 (__arm_vrhaddq_s32): Likewise.
10932 (__arm_vqsubq_s32): Likewise.
10933 (__arm_vqsubq_n_s32): Likewise.
10934 (__arm_vqshlq_s32): Likewise.
10935 (__arm_vqshlq_r_s32): Likewise.
10936 (__arm_vqrshlq_s32): Likewise.
10937 (__arm_vqrshlq_n_s32): Likewise.
10938 (__arm_vqrdmulhq_s32): Likewise.
10939 (__arm_vqrdmulhq_n_s32): Likewise.
10940 (__arm_vqdmulhq_s32): Likewise.
10941 (__arm_vqdmulhq_n_s32): Likewise.
10942 (__arm_vqaddq_s32): Likewise.
10943 (__arm_vqaddq_n_s32): Likewise.
10944 (__arm_vorrq_s32): Likewise.
10945 (__arm_vornq_s32): Likewise.
10946 (__arm_vmulq_s32): Likewise.
10947 (__arm_vmulq_n_s32): Likewise.
10948 (__arm_vmulltq_int_s32): Likewise.
10949 (__arm_vmullbq_int_s32): Likewise.
10950 (__arm_vmulhq_s32): Likewise.
10951 (__arm_vmlsdavxq_s32): Likewise.
10952 (__arm_vmlsdavq_s32): Likewise.
10953 (__arm_vmladavxq_s32): Likewise.
10954 (__arm_vmladavq_s32): Likewise.
10955 (__arm_vminvq_s32): Likewise.
10956 (__arm_vminq_s32): Likewise.
10957 (__arm_vmaxvq_s32): Likewise.
10958 (__arm_vmaxq_s32): Likewise.
10959 (__arm_vhsubq_s32): Likewise.
10960 (__arm_vhsubq_n_s32): Likewise.
10961 (__arm_vhcaddq_rot90_s32): Likewise.
10962 (__arm_vhcaddq_rot270_s32): Likewise.
10963 (__arm_vhaddq_s32): Likewise.
10964 (__arm_vhaddq_n_s32): Likewise.
10965 (__arm_veorq_s32): Likewise.
10966 (__arm_vcaddq_rot90_s32): Likewise.
10967 (__arm_vcaddq_rot270_s32): Likewise.
10968 (__arm_vbrsrq_n_s32): Likewise.
10969 (__arm_vbicq_s32): Likewise.
10970 (__arm_vandq_s32): Likewise.
10971 (__arm_vaddvaq_s32): Likewise.
10972 (__arm_vaddq_n_s32): Likewise.
10973 (__arm_vabdq_s32): Likewise.
10974 (__arm_vshlq_n_s32): Likewise.
10975 (__arm_vrshrq_n_s32): Likewise.
10976 (__arm_vqshlq_n_s32): Likewise.
10977 (vsubq): Define polymorphic variant.
10978 (vsubq_n): Likewise.
10979 (vshlq_r): Likewise.
10980 (vrshlq_n): Likewise.
10981 (vrshlq): Likewise.
10982 (vrmulhq): Likewise.
10983 (vrhaddq): Likewise.
10984 (vqsubq_n): Likewise.
10985 (vqsubq): Likewise.
10986 (vqshlq): Likewise.
10987 (vqshlq_r): Likewise.
10988 (vqshluq): Likewise.
10989 (vrshrq_n): Likewise.
10990 (vshlq_n): Likewise.
10991 (vqshluq_n): Likewise.
10992 (vqshlq_n): Likewise.
10993 (vqrshlq_n): Likewise.
10994 (vqrshlq): Likewise.
10995 (vqrdmulhq_n): Likewise.
10996 (vqrdmulhq): Likewise.
10997 (vqdmulhq_n): Likewise.
10998 (vqdmulhq): Likewise.
10999 (vqaddq_n): Likewise.
11000 (vqaddq): Likewise.
11001 (vorrq_n): Likewise.
11002 (vorrq): Likewise.
11003 (vornq): Likewise.
11004 (vmulq_n): Likewise.
11005 (vmulq): Likewise.
11006 (vmulltq_int): Likewise.
11007 (vmullbq_int): Likewise.
11008 (vmulhq): Likewise.
11009 (vminq): Likewise.
11010 (vminaq): Likewise.
11011 (vmaxq): Likewise.
11012 (vmaxaq): Likewise.
11013 (vhsubq_n): Likewise.
11014 (vhsubq): Likewise.
11015 (vhcaddq_rot90): Likewise.
11016 (vhcaddq_rot270): Likewise.
11017 (vhaddq_n): Likewise.
11018 (vhaddq): Likewise.
11019 (veorq): Likewise.
11020 (vcaddq_rot90): Likewise.
11021 (vcaddq_rot270): Likewise.
11022 (vbrsrq_n): Likewise.
11023 (vbicq_n): Likewise.
11024 (vbicq): Likewise.
11025 (vaddq): Likewise.
11026 (vaddq_n): Likewise.
11027 (vandq): Likewise.
11028 (vabdq): Likewise.
11029 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it.
11030 (BINOP_NONE_NONE_NONE): Likewise.
11031 (BINOP_NONE_NONE_UNONE): Likewise.
11032 (BINOP_UNONE_NONE_IMM): Likewise.
11033 (BINOP_UNONE_NONE_NONE): Likewise.
11034 (BINOP_UNONE_UNONE_IMM): Likewise.
11035 (BINOP_UNONE_UNONE_NONE): Likewise.
11036 (BINOP_UNONE_UNONE_UNONE): Likewise.
11037 * config/arm/constraints.md (Ra): Define constraint to check constant is
11038 in the range of 0 to 7.
11039 (Rg): Define constriant to check the constant is one among 1, 2, 4
11040 and 8.
11041 * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern.
11042 (mve_vaddq_n_<supf>): Likewise.
11043 (mve_vaddvaq_<supf>): Likewise.
11044 (mve_vaddvq_p_<supf>): Likewise.
11045 (mve_vandq_<supf>): Likewise.
11046 (mve_vbicq_<supf>): Likewise.
11047 (mve_vbrsrq_n_<supf>): Likewise.
11048 (mve_vcaddq_rot270_<supf>): Likewise.
11049 (mve_vcaddq_rot90_<supf>): Likewise.
11050 (mve_vcmpcsq_n_u): Likewise.
11051 (mve_vcmpcsq_u): Likewise.
11052 (mve_vcmpeqq_n_<supf>): Likewise.
11053 (mve_vcmpeqq_<supf>): Likewise.
11054 (mve_vcmpgeq_n_s): Likewise.
11055 (mve_vcmpgeq_s): Likewise.
11056 (mve_vcmpgtq_n_s): Likewise.
11057 (mve_vcmpgtq_s): Likewise.
11058 (mve_vcmphiq_n_u): Likewise.
11059 (mve_vcmphiq_u): Likewise.
11060 (mve_vcmpleq_n_s): Likewise.
11061 (mve_vcmpleq_s): Likewise.
11062 (mve_vcmpltq_n_s): Likewise.
11063 (mve_vcmpltq_s): Likewise.
11064 (mve_vcmpneq_n_<supf>): Likewise.
11065 (mve_vddupq_n_u): Likewise.
11066 (mve_veorq_<supf>): Likewise.
11067 (mve_vhaddq_n_<supf>): Likewise.
11068 (mve_vhaddq_<supf>): Likewise.
11069 (mve_vhcaddq_rot270_s): Likewise.
11070 (mve_vhcaddq_rot90_s): Likewise.
11071 (mve_vhsubq_n_<supf>): Likewise.
11072 (mve_vhsubq_<supf>): Likewise.
11073 (mve_vidupq_n_u): Likewise.
11074 (mve_vmaxaq_s): Likewise.
11075 (mve_vmaxavq_s): Likewise.
11076 (mve_vmaxq_<supf>): Likewise.
11077 (mve_vmaxvq_<supf>): Likewise.
11078 (mve_vminaq_s): Likewise.
11079 (mve_vminavq_s): Likewise.
11080 (mve_vminq_<supf>): Likewise.
11081 (mve_vminvq_<supf>): Likewise.
11082 (mve_vmladavq_<supf>): Likewise.
11083 (mve_vmladavxq_s): Likewise.
11084 (mve_vmlsdavq_s): Likewise.
11085 (mve_vmlsdavxq_s): Likewise.
11086 (mve_vmulhq_<supf>): Likewise.
11087 (mve_vmullbq_int_<supf>): Likewise.
11088 (mve_vmulltq_int_<supf>): Likewise.
11089 (mve_vmulq_n_<supf>): Likewise.
11090 (mve_vmulq_<supf>): Likewise.
11091 (mve_vornq_<supf>): Likewise.
11092 (mve_vorrq_<supf>): Likewise.
11093 (mve_vqaddq_n_<supf>): Likewise.
11094 (mve_vqaddq_<supf>): Likewise.
11095 (mve_vqdmulhq_n_s): Likewise.
11096 (mve_vqdmulhq_s): Likewise.
11097 (mve_vqrdmulhq_n_s): Likewise.
11098 (mve_vqrdmulhq_s): Likewise.
11099 (mve_vqrshlq_n_<supf>): Likewise.
11100 (mve_vqrshlq_<supf>): Likewise.
11101 (mve_vqshlq_n_<supf>): Likewise.
11102 (mve_vqshlq_r_<supf>): Likewise.
11103 (mve_vqshlq_<supf>): Likewise.
11104 (mve_vqshluq_n_s): Likewise.
11105 (mve_vqsubq_n_<supf>): Likewise.
11106 (mve_vqsubq_<supf>): Likewise.
11107 (mve_vrhaddq_<supf>): Likewise.
11108 (mve_vrmulhq_<supf>): Likewise.
11109 (mve_vrshlq_n_<supf>): Likewise.
11110 (mve_vrshlq_<supf>): Likewise.
11111 (mve_vrshrq_n_<supf>): Likewise.
11112 (mve_vshlq_n_<supf>): Likewise.
11113 (mve_vshlq_r_<supf>): Likewise.
11114 (mve_vsubq_n_<supf>): Likewise.
11115 (mve_vsubq_<supf>): Likewise.
11116 * config/arm/predicates.md (mve_imm_7): Define predicate to check
11117 the matching constraint Ra.
11118 (mve_imm_selective_upto_8): Define predicate to check the matching
11119 constraint Rg.
11120
11121 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11122 Mihail Ionescu <mihail.ionescu@arm.com>
11123 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11124
11125 * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define
11126 qualifier for binary operands.
11127 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
11128 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
11129 * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro.
11130 (vaddlvq_p_u32): Likewise.
11131 (vcmpneq_s8): Likewise.
11132 (vcmpneq_s16): Likewise.
11133 (vcmpneq_s32): Likewise.
11134 (vcmpneq_u8): Likewise.
11135 (vcmpneq_u16): Likewise.
11136 (vcmpneq_u32): Likewise.
11137 (vshlq_s8): Likewise.
11138 (vshlq_s16): Likewise.
11139 (vshlq_s32): Likewise.
11140 (vshlq_u8): Likewise.
11141 (vshlq_u16): Likewise.
11142 (vshlq_u32): Likewise.
11143 (__arm_vaddlvq_p_s32): Define intrinsic.
11144 (__arm_vaddlvq_p_u32): Likewise.
11145 (__arm_vcmpneq_s8): Likewise.
11146 (__arm_vcmpneq_s16): Likewise.
11147 (__arm_vcmpneq_s32): Likewise.
11148 (__arm_vcmpneq_u8): Likewise.
11149 (__arm_vcmpneq_u16): Likewise.
11150 (__arm_vcmpneq_u32): Likewise.
11151 (__arm_vshlq_s8): Likewise.
11152 (__arm_vshlq_s16): Likewise.
11153 (__arm_vshlq_s32): Likewise.
11154 (__arm_vshlq_u8): Likewise.
11155 (__arm_vshlq_u16): Likewise.
11156 (__arm_vshlq_u32): Likewise.
11157 (vaddlvq_p): Define polymorphic variant.
11158 (vcmpneq): Likewise.
11159 (vshlq): Likewise.
11160 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS):
11161 Use it.
11162 (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise.
11163 (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise.
11164 * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern.
11165 (mve_vcmpneq_<supf><mode>): Likewise.
11166 (mve_vshlq_<supf><mode>): Likewise.
11167
11168 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11169 Mihail Ionescu <mihail.ionescu@arm.com>
11170 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11171
11172 * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define
11173 qualifier for binary operands.
11174 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
11175 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
11176 * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro.
11177 (vcvtq_n_s32_f32): Likewise.
11178 (vcvtq_n_u16_f16): Likewise.
11179 (vcvtq_n_u32_f32): Likewise.
11180 (vcreateq_u8): Likewise.
11181 (vcreateq_u16): Likewise.
11182 (vcreateq_u32): Likewise.
11183 (vcreateq_u64): Likewise.
11184 (vcreateq_s8): Likewise.
11185 (vcreateq_s16): Likewise.
11186 (vcreateq_s32): Likewise.
11187 (vcreateq_s64): Likewise.
11188 (vshrq_n_s8): Likewise.
11189 (vshrq_n_s16): Likewise.
11190 (vshrq_n_s32): Likewise.
11191 (vshrq_n_u8): Likewise.
11192 (vshrq_n_u16): Likewise.
11193 (vshrq_n_u32): Likewise.
11194 (__arm_vcreateq_u8): Define intrinsic.
11195 (__arm_vcreateq_u16): Likewise.
11196 (__arm_vcreateq_u32): Likewise.
11197 (__arm_vcreateq_u64): Likewise.
11198 (__arm_vcreateq_s8): Likewise.
11199 (__arm_vcreateq_s16): Likewise.
11200 (__arm_vcreateq_s32): Likewise.
11201 (__arm_vcreateq_s64): Likewise.
11202 (__arm_vshrq_n_s8): Likewise.
11203 (__arm_vshrq_n_s16): Likewise.
11204 (__arm_vshrq_n_s32): Likewise.
11205 (__arm_vshrq_n_u8): Likewise.
11206 (__arm_vshrq_n_u16): Likewise.
11207 (__arm_vshrq_n_u32): Likewise.
11208 (__arm_vcvtq_n_s16_f16): Likewise.
11209 (__arm_vcvtq_n_s32_f32): Likewise.
11210 (__arm_vcvtq_n_u16_f16): Likewise.
11211 (__arm_vcvtq_n_u32_f32): Likewise.
11212 (vshrq_n): Define polymorphic variant.
11213 * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS):
11214 Use it.
11215 (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise.
11216 (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise.
11217 * config/arm/constraints.md (Rb): Define constraint to check constant is
11218 in the range of 1 to 8.
11219 (Rf): Define constraint to check constant is in the range of 1 to 32.
11220 * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern.
11221 (mve_vshrq_n_<supf><mode>): Likewise.
11222 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
11223 * config/arm/predicates.md (mve_imm_8): Define predicate to check
11224 the matching constraint Rb.
11225 (mve_imm_32): Define predicate to check the matching constraint Rf.
11226
11227 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11228 Mihail Ionescu <mihail.ionescu@arm.com>
11229 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11230
11231 * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define
11232 qualifier for binary operands.
11233 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
11234 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
11235 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
11236 * config/arm/arm_mve.h (vsubq_n_f16): Define macro.
11237 (vsubq_n_f32): Likewise.
11238 (vbrsrq_n_f16): Likewise.
11239 (vbrsrq_n_f32): Likewise.
11240 (vcvtq_n_f16_s16): Likewise.
11241 (vcvtq_n_f32_s32): Likewise.
11242 (vcvtq_n_f16_u16): Likewise.
11243 (vcvtq_n_f32_u32): Likewise.
11244 (vcreateq_f16): Likewise.
11245 (vcreateq_f32): Likewise.
11246 (__arm_vsubq_n_f16): Define intrinsic.
11247 (__arm_vsubq_n_f32): Likewise.
11248 (__arm_vbrsrq_n_f16): Likewise.
11249 (__arm_vbrsrq_n_f32): Likewise.
11250 (__arm_vcvtq_n_f16_s16): Likewise.
11251 (__arm_vcvtq_n_f32_s32): Likewise.
11252 (__arm_vcvtq_n_f16_u16): Likewise.
11253 (__arm_vcvtq_n_f32_u32): Likewise.
11254 (__arm_vcreateq_f16): Likewise.
11255 (__arm_vcreateq_f32): Likewise.
11256 (vsubq): Define polymorphic variant.
11257 (vbrsrq): Likewise.
11258 (vcvtq_n): Likewise.
11259 * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use
11260 it.
11261 (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise.
11262 (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise.
11263 (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise.
11264 * config/arm/constraints.md (Rd): Define constraint to check constant is
11265 in the range of 1 to 16.
11266 * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern.
11267 mve_vbrsrq_n_f<mode>: Likewise.
11268 mve_vcvtq_n_to_f_<supf><mode>: Likewise.
11269 mve_vcreateq_f<mode>: Likewise.
11270 * config/arm/predicates.md (mve_imm_16): Define predicate to check
11271 the matching constraint Rd.
11272
11273 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11274 Mihail Ionescu <mihail.ionescu@arm.com>
11275 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11276
11277 * config/arm/arm-builtins.c (hi_UP): Define mode.
11278 * config/arm/arm.h (IS_VPR_REGNUM): Move.
11279 * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM.
11280 (APSRQ_REGNUM): Modify.
11281 (APSRGE_REGNUM): Modify.
11282 * config/arm/arm_mve.h (vctp16q): Define macro.
11283 (vctp32q): Likewise.
11284 (vctp64q): Likewise.
11285 (vctp8q): Likewise.
11286 (vpnot): Likewise.
11287 (__arm_vctp16q): Define intrinsic.
11288 (__arm_vctp32q): Likewise.
11289 (__arm_vctp64q): Likewise.
11290 (__arm_vctp8q): Likewise.
11291 (__arm_vpnot): Likewise.
11292 * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin
11293 qualifier.
11294 * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern.
11295 (mve_vpnothi): Likewise.
11296
11297 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11298 Mihail Ionescu <mihail.ionescu@arm.com>
11299 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11300
11301 * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS.
11302 * config/arm/arm_mve.h (vdupq_n_s8): Define macro.
11303 (vdupq_n_s16): Likewise.
11304 (vdupq_n_s32): Likewise.
11305 (vabsq_s8): Likewise.
11306 (vabsq_s16): Likewise.
11307 (vabsq_s32): Likewise.
11308 (vclsq_s8): Likewise.
11309 (vclsq_s16): Likewise.
11310 (vclsq_s32): Likewise.
11311 (vclzq_s8): Likewise.
11312 (vclzq_s16): Likewise.
11313 (vclzq_s32): Likewise.
11314 (vnegq_s8): Likewise.
11315 (vnegq_s16): Likewise.
11316 (vnegq_s32): Likewise.
11317 (vaddlvq_s32): Likewise.
11318 (vaddvq_s8): Likewise.
11319 (vaddvq_s16): Likewise.
11320 (vaddvq_s32): Likewise.
11321 (vmovlbq_s8): Likewise.
11322 (vmovlbq_s16): Likewise.
11323 (vmovltq_s8): Likewise.
11324 (vmovltq_s16): Likewise.
11325 (vmvnq_s8): Likewise.
11326 (vmvnq_s16): Likewise.
11327 (vmvnq_s32): Likewise.
11328 (vrev16q_s8): Likewise.
11329 (vrev32q_s8): Likewise.
11330 (vrev32q_s16): Likewise.
11331 (vqabsq_s8): Likewise.
11332 (vqabsq_s16): Likewise.
11333 (vqabsq_s32): Likewise.
11334 (vqnegq_s8): Likewise.
11335 (vqnegq_s16): Likewise.
11336 (vqnegq_s32): Likewise.
11337 (vcvtaq_s16_f16): Likewise.
11338 (vcvtaq_s32_f32): Likewise.
11339 (vcvtnq_s16_f16): Likewise.
11340 (vcvtnq_s32_f32): Likewise.
11341 (vcvtpq_s16_f16): Likewise.
11342 (vcvtpq_s32_f32): Likewise.
11343 (vcvtmq_s16_f16): Likewise.
11344 (vcvtmq_s32_f32): Likewise.
11345 (vmvnq_u8): Likewise.
11346 (vmvnq_u16): Likewise.
11347 (vmvnq_u32): Likewise.
11348 (vdupq_n_u8): Likewise.
11349 (vdupq_n_u16): Likewise.
11350 (vdupq_n_u32): Likewise.
11351 (vclzq_u8): Likewise.
11352 (vclzq_u16): Likewise.
11353 (vclzq_u32): Likewise.
11354 (vaddvq_u8): Likewise.
11355 (vaddvq_u16): Likewise.
11356 (vaddvq_u32): Likewise.
11357 (vrev32q_u8): Likewise.
11358 (vrev32q_u16): Likewise.
11359 (vmovltq_u8): Likewise.
11360 (vmovltq_u16): Likewise.
11361 (vmovlbq_u8): Likewise.
11362 (vmovlbq_u16): Likewise.
11363 (vrev16q_u8): Likewise.
11364 (vaddlvq_u32): Likewise.
11365 (vcvtpq_u16_f16): Likewise.
11366 (vcvtpq_u32_f32): Likewise.
11367 (vcvtnq_u16_f16): Likewise.
11368 (vcvtmq_u16_f16): Likewise.
11369 (vcvtmq_u32_f32): Likewise.
11370 (vcvtaq_u16_f16): Likewise.
11371 (vcvtaq_u32_f32): Likewise.
11372 (__arm_vdupq_n_s8): Define intrinsic.
11373 (__arm_vdupq_n_s16): Likewise.
11374 (__arm_vdupq_n_s32): Likewise.
11375 (__arm_vabsq_s8): Likewise.
11376 (__arm_vabsq_s16): Likewise.
11377 (__arm_vabsq_s32): Likewise.
11378 (__arm_vclsq_s8): Likewise.
11379 (__arm_vclsq_s16): Likewise.
11380 (__arm_vclsq_s32): Likewise.
11381 (__arm_vclzq_s8): Likewise.
11382 (__arm_vclzq_s16): Likewise.
11383 (__arm_vclzq_s32): Likewise.
11384 (__arm_vnegq_s8): Likewise.
11385 (__arm_vnegq_s16): Likewise.
11386 (__arm_vnegq_s32): Likewise.
11387 (__arm_vaddlvq_s32): Likewise.
11388 (__arm_vaddvq_s8): Likewise.
11389 (__arm_vaddvq_s16): Likewise.
11390 (__arm_vaddvq_s32): Likewise.
11391 (__arm_vmovlbq_s8): Likewise.
11392 (__arm_vmovlbq_s16): Likewise.
11393 (__arm_vmovltq_s8): Likewise.
11394 (__arm_vmovltq_s16): Likewise.
11395 (__arm_vmvnq_s8): Likewise.
11396 (__arm_vmvnq_s16): Likewise.
11397 (__arm_vmvnq_s32): Likewise.
11398 (__arm_vrev16q_s8): Likewise.
11399 (__arm_vrev32q_s8): Likewise.
11400 (__arm_vrev32q_s16): Likewise.
11401 (__arm_vqabsq_s8): Likewise.
11402 (__arm_vqabsq_s16): Likewise.
11403 (__arm_vqabsq_s32): Likewise.
11404 (__arm_vqnegq_s8): Likewise.
11405 (__arm_vqnegq_s16): Likewise.
11406 (__arm_vqnegq_s32): Likewise.
11407 (__arm_vmvnq_u8): Likewise.
11408 (__arm_vmvnq_u16): Likewise.
11409 (__arm_vmvnq_u32): Likewise.
11410 (__arm_vdupq_n_u8): Likewise.
11411 (__arm_vdupq_n_u16): Likewise.
11412 (__arm_vdupq_n_u32): Likewise.
11413 (__arm_vclzq_u8): Likewise.
11414 (__arm_vclzq_u16): Likewise.
11415 (__arm_vclzq_u32): Likewise.
11416 (__arm_vaddvq_u8): Likewise.
11417 (__arm_vaddvq_u16): Likewise.
11418 (__arm_vaddvq_u32): Likewise.
11419 (__arm_vrev32q_u8): Likewise.
11420 (__arm_vrev32q_u16): Likewise.
11421 (__arm_vmovltq_u8): Likewise.
11422 (__arm_vmovltq_u16): Likewise.
11423 (__arm_vmovlbq_u8): Likewise.
11424 (__arm_vmovlbq_u16): Likewise.
11425 (__arm_vrev16q_u8): Likewise.
11426 (__arm_vaddlvq_u32): Likewise.
11427 (__arm_vcvtpq_u16_f16): Likewise.
11428 (__arm_vcvtpq_u32_f32): Likewise.
11429 (__arm_vcvtnq_u16_f16): Likewise.
11430 (__arm_vcvtmq_u16_f16): Likewise.
11431 (__arm_vcvtmq_u32_f32): Likewise.
11432 (__arm_vcvtaq_u16_f16): Likewise.
11433 (__arm_vcvtaq_u32_f32): Likewise.
11434 (__arm_vcvtaq_s16_f16): Likewise.
11435 (__arm_vcvtaq_s32_f32): Likewise.
11436 (__arm_vcvtnq_s16_f16): Likewise.
11437 (__arm_vcvtnq_s32_f32): Likewise.
11438 (__arm_vcvtpq_s16_f16): Likewise.
11439 (__arm_vcvtpq_s32_f32): Likewise.
11440 (__arm_vcvtmq_s16_f16): Likewise.
11441 (__arm_vcvtmq_s32_f32): Likewise.
11442 (vdupq_n): Define polymorphic variant.
11443 (vabsq): Likewise.
11444 (vclsq): Likewise.
11445 (vclzq): Likewise.
11446 (vnegq): Likewise.
11447 (vaddlvq): Likewise.
11448 (vaddvq): Likewise.
11449 (vmovlbq): Likewise.
11450 (vmovltq): Likewise.
11451 (vmvnq): Likewise.
11452 (vrev16q): Likewise.
11453 (vrev32q): Likewise.
11454 (vqabsq): Likewise.
11455 (vqnegq): Likewise.
11456 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
11457 (UNOP_SNONE_NONE): Likewise.
11458 (UNOP_UNONE_UNONE): Likewise.
11459 (UNOP_UNONE_NONE): Likewise.
11460 * config/arm/constraints.md (e): Define new constriant to allow only
11461 even registers.
11462 * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern.
11463 (mve_vnegq_s<mode>): Likewise.
11464 (mve_vmvnq_<supf><mode>): Likewise.
11465 (mve_vdupq_n_<supf><mode>): Likewise.
11466 (mve_vclzq_<supf><mode>): Likewise.
11467 (mve_vclsq_s<mode>): Likewise.
11468 (mve_vaddvq_<supf><mode>): Likewise.
11469 (mve_vabsq_s<mode>): Likewise.
11470 (mve_vrev32q_<supf><mode>): Likewise.
11471 (mve_vmovltq_<supf><mode>): Likewise.
11472 (mve_vmovlbq_<supf><mode>): Likewise.
11473 (mve_vcvtpq_<supf><mode>): Likewise.
11474 (mve_vcvtnq_<supf><mode>): Likewise.
11475 (mve_vcvtmq_<supf><mode>): Likewise.
11476 (mve_vcvtaq_<supf><mode>): Likewise.
11477 (mve_vrev16q_<supf>v16qi): Likewise.
11478 (mve_vaddlvq_<supf>v4si): Likewise.
11479
11480 2020-03-17 Jakub Jelinek <jakub@redhat.com>
11481
11482 * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
11483 a dump message.
11484 * tree-sra.c (create_access_replacement): Fix up duplicated word issue
11485 in a comment.
11486 * read-rtl-function.c (find_param_by_name,
11487 function_reader::parse_enum_value, function_reader::get_insn_by_uid):
11488 Likewise.
11489 * spellcheck.c (get_edit_distance_cutoff): Likewise.
11490 * tree-data-ref.c (create_ifn_alias_checks): Likewise.
11491 * tree.def (SWITCH_EXPR): Likewise.
11492 * selftest.c (assert_str_contains): Likewise.
11493 * ipa-param-manipulation.h (class ipa_param_body_adjustments):
11494 Likewise.
11495 * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise.
11496 * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise.
11497 * langhooks.h (struct lang_hooks_for_decls): Likewise.
11498 * ipa-prop.h (struct ipa_param_descriptor): Likewise.
11499 * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store):
11500 Likewise.
11501 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
11502 * tree-ssa-reassoc.c (reassociate_bb): Likewise.
11503 * tree.c (component_ref_size): Likewise.
11504 * hsa-common.c (hsa_init_compilation_unit_data): Likewise.
11505 * gimple-ssa-sprintf.c (get_string_length, format_string,
11506 format_directive): Likewise.
11507 * omp-grid.c (grid_process_kernel_body_copy): Likewise.
11508 * input.c (string_concat_db::get_string_concatenation,
11509 test_lexer_string_locations_ucn4): Likewise.
11510 * cfgexpand.c (pass_expand::execute): Likewise.
11511 * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds,
11512 maybe_diag_overlap): Likewise.
11513 * rtl.c (RTX_CODE_HWINT_P_1): Likewise.
11514 * shrink-wrap.c (spread_components): Likewise.
11515 * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse):
11516 Likewise.
11517 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
11518 Likewise.
11519 * dwarf2out.c (dwarf2out_early_finish): Likewise.
11520 * gimple-ssa-store-merging.c: Likewise.
11521 * ira-costs.c (record_operand_costs): Likewise.
11522 * tree-vect-loop.c (vectorizable_reduction): Likewise.
11523 * target.def (dispatch): Likewise.
11524 (validate_dims, gen_ccmp_first): Fix up duplicated word issue
11525 in documentation text.
11526 * doc/tm.texi: Regenerated.
11527 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up
11528 duplicated word issue in a comment.
11529 * config/i386/i386.c (ix86_test_loading_unspec): Likewise.
11530 * config/i386/i386-features.c (remove_partial_avx_dependency):
11531 Likewise.
11532 * config/msp430/msp430.c (msp430_select_section): Likewise.
11533 * config/gcn/gcn-run.c (load_image): Likewise.
11534 * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise.
11535 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise.
11536 * config/aarch64/falkor-tag-collision-avoidance.c
11537 (single_dest_per_chain): Likewise.
11538 * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise.
11539 * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise.
11540 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise.
11541 * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant):
11542 Likewise.
11543 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
11544 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
11545 * config/rs6000/rs6000-logue.c
11546 (rs6000_emit_probe_stack_range_stack_clash): Likewise.
11547 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise.
11548 Fix various other issues in the comment.
11549
11550 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com>
11551
11552 * config/arm/t-rmprofile: create new multilib for
11553 armv8.1-m.main+mve hard float and reuse v8-m.main ones for
11554 v8.1-m.main+mve.
11555
11556 2020-03-17 Jakub Jelinek <jakub@redhat.com>
11557
11558 PR tree-optimization/94015
11559 * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the
11560 function where EXP is address of the bytes being stored rather than
11561 the bytes themselves into count_nonzero_bytes_addr. Punt on zero
11562 sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs.
11563 Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before
11564 calling native_encode_expr if host or target doesn't have 8-bit
11565 chars. Formatting fixes.
11566 (count_nonzero_bytes_addr): New function.
11567
11568 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11569 Mihail Ionescu <mihail.ionescu@arm.com>
11570 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11571
11572 * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define.
11573 (UNOP_SNONE_NONE_QUALIFIERS): Likewise.
11574 (UNOP_SNONE_IMM_QUALIFIERS): Likewise.
11575 (UNOP_UNONE_NONE_QUALIFIERS): Likewise.
11576 (UNOP_UNONE_UNONE_QUALIFIERS): Likewise.
11577 (UNOP_UNONE_IMM_QUALIFIERS): Likewise.
11578 * config/arm/arm_mve.h (vmvnq_n_s16): Define macro.
11579 (vmvnq_n_s32): Likewise.
11580 (vrev64q_s8): Likewise.
11581 (vrev64q_s16): Likewise.
11582 (vrev64q_s32): Likewise.
11583 (vcvtq_s16_f16): Likewise.
11584 (vcvtq_s32_f32): Likewise.
11585 (vrev64q_u8): Likewise.
11586 (vrev64q_u16): Likewise.
11587 (vrev64q_u32): Likewise.
11588 (vmvnq_n_u16): Likewise.
11589 (vmvnq_n_u32): Likewise.
11590 (vcvtq_u16_f16): Likewise.
11591 (vcvtq_u32_f32): Likewise.
11592 (__arm_vmvnq_n_s16): Define intrinsic.
11593 (__arm_vmvnq_n_s32): Likewise.
11594 (__arm_vrev64q_s8): Likewise.
11595 (__arm_vrev64q_s16): Likewise.
11596 (__arm_vrev64q_s32): Likewise.
11597 (__arm_vrev64q_u8): Likewise.
11598 (__arm_vrev64q_u16): Likewise.
11599 (__arm_vrev64q_u32): Likewise.
11600 (__arm_vmvnq_n_u16): Likewise.
11601 (__arm_vmvnq_n_u32): Likewise.
11602 (__arm_vcvtq_s16_f16): Likewise.
11603 (__arm_vcvtq_s32_f32): Likewise.
11604 (__arm_vcvtq_u16_f16): Likewise.
11605 (__arm_vcvtq_u32_f32): Likewise.
11606 (vrev64q): Define polymorphic variant.
11607 * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it.
11608 (UNOP_SNONE_NONE): Likewise.
11609 (UNOP_SNONE_IMM): Likewise.
11610 (UNOP_UNONE_UNONE): Likewise.
11611 (UNOP_UNONE_NONE): Likewise.
11612 (UNOP_UNONE_IMM): Likewise.
11613 * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern.
11614 (mve_vcvtq_from_f_<supf><mode>): Likewise.
11615 (mve_vmvnq_n_<supf><mode>): Likewise.
11616
11617 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com>
11618 Mihail Ionescu <mihail.ionescu@arm.com>
11619 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11620
11621 * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro.
11622 (UNOP_NONE_SNONE_QUALIFIERS): Likewise.
11623 (UNOP_NONE_UNONE_QUALIFIERS): Likewise.
11624 * config/arm/arm_mve.h (vrndxq_f16): Define macro.
11625 (vrndxq_f32): Likewise.
11626 (vrndq_f16) Likewise.
11627 (vrndq_f32): Likewise.
11628 (vrndpq_f16): Likewise.
11629 (vrndpq_f32): Likewise.
11630 (vrndnq_f16): Likewise.
11631 (vrndnq_f32): Likewise.
11632 (vrndmq_f16): Likewise.
11633 (vrndmq_f32): Likewise.
11634 (vrndaq_f16): Likewise.
11635 (vrndaq_f32): Likewise.
11636 (vrev64q_f16): Likewise.
11637 (vrev64q_f32): Likewise.
11638 (vnegq_f16): Likewise.
11639 (vnegq_f32): Likewise.
11640 (vdupq_n_f16): Likewise.
11641 (vdupq_n_f32): Likewise.
11642 (vabsq_f16): Likewise.
11643 (vabsq_f32): Likewise.
11644 (vrev32q_f16): Likewise.
11645 (vcvttq_f32_f16): Likewise.
11646 (vcvtbq_f32_f16): Likewise.
11647 (vcvtq_f16_s16): Likewise.
11648 (vcvtq_f32_s32): Likewise.
11649 (vcvtq_f16_u16): Likewise.
11650 (vcvtq_f32_u32): Likewise.
11651 (__arm_vrndxq_f16): Define intrinsic.
11652 (__arm_vrndxq_f32): Likewise.
11653 (__arm_vrndq_f16): Likewise.
11654 (__arm_vrndq_f32): Likewise.
11655 (__arm_vrndpq_f16): Likewise.
11656 (__arm_vrndpq_f32): Likewise.
11657 (__arm_vrndnq_f16): Likewise.
11658 (__arm_vrndnq_f32): Likewise.
11659 (__arm_vrndmq_f16): Likewise.
11660 (__arm_vrndmq_f32): Likewise.
11661 (__arm_vrndaq_f16): Likewise.
11662 (__arm_vrndaq_f32): Likewise.
11663 (__arm_vrev64q_f16): Likewise.
11664 (__arm_vrev64q_f32): Likewise.
11665 (__arm_vnegq_f16): Likewise.
11666 (__arm_vnegq_f32): Likewise.
11667 (__arm_vdupq_n_f16): Likewise.
11668 (__arm_vdupq_n_f32): Likewise.
11669 (__arm_vabsq_f16): Likewise.
11670 (__arm_vabsq_f32): Likewise.
11671 (__arm_vrev32q_f16): Likewise.
11672 (__arm_vcvttq_f32_f16): Likewise.
11673 (__arm_vcvtbq_f32_f16): Likewise.
11674 (__arm_vcvtq_f16_s16): Likewise.
11675 (__arm_vcvtq_f32_s32): Likewise.
11676 (__arm_vcvtq_f16_u16): Likewise.
11677 (__arm_vcvtq_f32_u32): Likewise.
11678 (vrndxq): Define polymorphic variants.
11679 (vrndq): Likewise.
11680 (vrndpq): Likewise.
11681 (vrndnq): Likewise.
11682 (vrndmq): Likewise.
11683 (vrndaq): Likewise.
11684 (vrev64q): Likewise.
11685 (vnegq): Likewise.
11686 (vabsq): Likewise.
11687 (vrev32q): Likewise.
11688 (vcvtbq_f32): Likewise.
11689 (vcvttq_f32): Likewise.
11690 (vcvtq): Likewise.
11691 * config/arm/arm_mve_builtins.def (VAR2): Define.
11692 (VAR1): Define.
11693 * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern.
11694 (mve_vrndq_f<mode>): Likewise.
11695 (mve_vrndpq_f<mode>): Likewise.
11696 (mve_vrndnq_f<mode>): Likewise.
11697 (mve_vrndmq_f<mode>): Likewise.
11698 (mve_vrndaq_f<mode>): Likewise.
11699 (mve_vrev64q_f<mode>): Likewise.
11700 (mve_vnegq_f<mode>): Likewise.
11701 (mve_vdupq_n_f<mode>): Likewise.
11702 (mve_vabsq_f<mode>): Likewise.
11703 (mve_vrev32q_fv8hf): Likewise.
11704 (mve_vcvttq_f32_f16v4sf): Likewise.
11705 (mve_vcvtbq_f32_f16v4sf): Likewise.
11706 (mve_vcvtq_to_f_<supf><mode>): Likewise.
11707
11708 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11709 Mihail Ionescu <mihail.ionescu@arm.com>
11710 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11711
11712 * config/arm/arm-builtins.c (CF): Define mve_builtin_data.
11713 (VAR1): Define.
11714 (ARM_BUILTIN_MVE_PATTERN_START): Define.
11715 (arm_init_mve_builtins): Define function.
11716 (arm_init_builtins): Add TARGET_HAVE_MVE check.
11717 (arm_expand_builtin_1): Check the range of fcode.
11718 (arm_expand_mve_builtin): Define function to expand MVE builtins.
11719 (arm_expand_builtin): Check the range of fcode.
11720 * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point
11721 types.
11722 (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace.
11723 (vst4q_s8): Define macro.
11724 (vst4q_s16): Likewise.
11725 (vst4q_s32): Likewise.
11726 (vst4q_u8): Likewise.
11727 (vst4q_u16): Likewise.
11728 (vst4q_u32): Likewise.
11729 (vst4q_f16): Likewise.
11730 (vst4q_f32): Likewise.
11731 (__arm_vst4q_s8): Define inline builtin.
11732 (__arm_vst4q_s16): Likewise.
11733 (__arm_vst4q_s32): Likewise.
11734 (__arm_vst4q_u8): Likewise.
11735 (__arm_vst4q_u16): Likewise.
11736 (__arm_vst4q_u32): Likewise.
11737 (__arm_vst4q_f16): Likewise.
11738 (__arm_vst4q_f32): Likewise.
11739 (__ARM_mve_typeid): Define macro with MVE types.
11740 (__ARM_mve_coerce): Define macro with _Generic feature.
11741 (vst4q): Define polymorphic variant for different vst4q builtins.
11742 * config/arm/arm_mve_builtins.def: New file.
11743 * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI
11744 modes in MVE.
11745 * config/arm/mve.md (MVE_VLD_ST): Define iterator.
11746 (unspec): Define unspec.
11747 (mve_vst4q<mode>): Define RTL pattern.
11748 * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI
11749 modes in MVE.
11750 (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes
11751 in MVE.
11752 (define_split): Allow OI mode split for MVE after reload.
11753 (define_split): Allow XI mode split for MVE after reload.
11754 * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def.
11755 (arm-builtins.o): Likewise.
11756
11757 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org>
11758
11759 * c-typeck.c (process_init_element): Handle constructor_type with
11760 type size represented by POLY_INT_CST.
11761
11762 2020-03-17 Jakub Jelinek <jakub@redhat.com>
11763
11764 PR tree-optimization/94187
11765 * tree-ssa-strlen.c (count_nonzero_bytes): Punt if
11766 nchars - offset < nbytes.
11767
11768 PR middle-end/94189
11769 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would
11770 emit a warning if it was enabled and don't depend on TREE_NO_WARNING
11771 for code-generation.
11772
11773 2020-03-16 Vladimir Makarov <vmakarov@redhat.com>
11774
11775 PR target/94185
11776 * lra-spills.c (remove_pseudos): Do not reuse insn alternative
11777 after changing memory subreg.
11778
11779 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11780 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11781
11782 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add
11783 emulator calls for dobule precision arithmetic operations for MVE.
11784
11785 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11786 Mihail Ionescu <mihail.ionescu@arm.com>
11787 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11788
11789 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base
11790 feature bit is on and -mfpu=auto is passed as compiler option, do not
11791 generate error on not finding any matching fpu. Because in this case
11792 fpu is not required.
11793 * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is
11794 enabled for MVE and also for all VFP extensions.
11795 (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2
11796 is enabled.
11797 (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em.
11798 (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5
11799 along with feature bits mve_float.
11800 (mve): Modify add options in armv8.1-m.main arch for MVE.
11801 (mve.fp): Modify add options in armv8.1-m.main arch for MVE with
11802 floating point.
11803 * config/arm/arm.c (use_return_insn): Replace the
11804 check with TARGET_VFP_BASE.
11805 (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with
11806 TARGET_VFP_BASE.
11807 (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
11808 with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as
11809 well.
11810 (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with
11811 TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE
11812 as well.
11813 (arm_compute_frame_layout): Likewise.
11814 (arm_save_coproc_regs): Likewise.
11815 (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM
11816 in MVE as well.
11817 (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE"
11818 with equivalent macro TARGET_VFP_BASE.
11819 (arm_expand_epilogue_apcs_frame): Likewise.
11820 (arm_expand_epilogue): Likewise.
11821 (arm_conditional_register_usage): Likewise.
11822 (arm_declare_function_name): Add check to skip printing .fpu directive
11823 in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is
11824 "softvfp".
11825 * config/arm/arm.h (TARGET_VFP_BASE): Define.
11826 * config/arm/arm.md (arch): Add "mve" to arch.
11827 (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true.
11828 (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT
11829 || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE.
11830 * config/arm/constraints.md (Uf): Define to allow modification to FPCCR
11831 in MVE.
11832 * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard
11833 to not allow for MVE.
11834 * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs
11835 enum.
11836 (VUNSPEC_GET_FPSCR): Define.
11837 * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS
11838 instructions which move to general-purpose Register from Floating-point
11839 Special register and vice-versa.
11840 (thumb2_movhi_fp16): Likewise.
11841 (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along
11842 with MCR and MRC instructions which set and get Floating-point Status
11843 and Control Register (FPSCR).
11844 (movdi_vfp): Modify pattern to enable Single-precision scalar float move
11845 in MVE.
11846 (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar
11847 float move patterns in MVE.
11848 (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional
11849 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
11850 (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional
11851 code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check.
11852 (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding
11853 TARGET_VFP_BASE check.
11854 (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern
11855 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
11856 register.
11857 (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern
11858 using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR
11859 register.
11860
11861
11862 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
11863 Mihail Ionescu <mihail.ionescu@arm.com>
11864 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
11865
11866 * config.gcc (arm_mve.h): Include mve intrinsics header file.
11867 * config/arm/aout.h (p0): Add new register name for MVE predicated
11868 cases.
11869 * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro
11870 common to Neon and MVE.
11871 (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK.
11872 (arm_init_simd_builtin_types): Disable poly types for MVE.
11873 (arm_init_neon_builtins): Move a check to arm_init_builtins function.
11874 (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of
11875 ARM_BUILTIN_NEON_LANE_CHECK.
11876 (mve_dereference_pointer): Add function.
11877 (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is
11878 enabled.
11879 (arm_expand_neon_builtin): Moved to arm_expand_builtin function.
11880 (arm_expand_builtin): Moved from arm_expand_neon_builtin function.
11881 * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE
11882 with floating point enabled.
11883 * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to
11884 simd_immediate_valid_for_move.
11885 (simd_immediate_valid_for_move): Renamed from
11886 neon_immediate_valid_for_move function.
11887 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate
11888 error if vfpv2 feature bit is disabled and mve feature bit is also
11889 disabled for HARD_FLOAT_ABI.
11890 (use_return_insn): Check to not push VFP regs for MVE.
11891 (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard
11892 as Neon.
11893 (aapcs_vfp_allocate_return_reg): Likewise.
11894 (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2
11895 address operand for MVE.
11896 (arm_rtx_costs_internal): MVE check to determine cost of rtx.
11897 (neon_valid_immediate): Rename to simd_valid_immediate.
11898 (simd_valid_immediate): Rename from neon_valid_immediate.
11899 (simd_valid_immediate): MVE check on size of vector is 128 bits.
11900 (neon_immediate_valid_for_move): Rename to
11901 simd_immediate_valid_for_move.
11902 (simd_immediate_valid_for_move): Rename from
11903 neon_immediate_valid_for_move.
11904 (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate
11905 function.
11906 (neon_make_constant): Modify call to neon_valid_immediate function.
11907 (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC
11908 for MVE.
11909 (output_move_neon): Add MVE check to generate vldm/vstm instrcutions.
11910 (arm_compute_frame_layout): Calculate space for saved VFP registers for
11911 MVE.
11912 (arm_save_coproc_regs): Save coproc registers for MVE.
11913 (arm_print_operand): Add case 'E' to print memory operands for MVE.
11914 (arm_print_operand_address): Check to print register number for MVE.
11915 (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE.
11916 (arm_modes_tieable_p): Check to allow structure mode for MVE.
11917 (arm_regno_class): Add VPR_REGNUM check.
11918 (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code
11919 for APCS frame.
11920 (arm_expand_epilogue): MVE check for enabling pop instructions in
11921 epilogue.
11922 (arm_print_asm_arch_directives): Modify function to disable print of
11923 .arch_extension "mve" and "fp" for cases where MVE is enabled with
11924 "SOFT FLOAT ABI".
11925 (arm_vector_mode_supported_p): Check for modes available in MVE interger
11926 and MVE floating point.
11927 (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode
11928 pointer support.
11929 (arm_conditional_register_usage): Enable usage of conditional regsiter
11930 for MVE.
11931 (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE.
11932 (arm_declare_function_name): Modify function to disable print of
11933 .arch_extension "mve" and "fp" for cases where MVE is enabled with
11934 "SOFT FLOAT ABI".
11935 * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and
11936 when target general registers are required.
11937 (TARGET_HAVE_MVE_FLOAT): Likewise.
11938 (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c
11939 for MVE.
11940 (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS
11941 which indicate this is not available for across function calls.
11942 (FIRST_PSEUDO_REGISTER): Modify.
11943 (VALID_MVE_MODE): Define valid MVE mode.
11944 (VALID_MVE_SI_MODE): Define valid MVE SI mode.
11945 (VALID_MVE_SF_MODE): Define valid MVE SF mode.
11946 (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode.
11947 (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence
11948 for MVE.
11949 (IS_VPR_REGNUM): Macro to check for VPR_REG register.
11950 (REG_ALLOC_ORDER): Add VPR_REGNUM entry.
11951 (enum reg_class): Add VPR_REG entry.
11952 (REG_CLASS_NAMES): Add VPR_REG entry.
11953 * config/arm/arm.md (VPR_REGNUM): Define.
11954 (conds): Check is_mve_type attrbiute to differentiate "conditional" and
11955 "unconditional" instructions.
11956 (arm_movsf_soft_insn): Modify RTL to not allow for MVE.
11957 (movdf_soft_insn): Modify RTL to not allow for MVE.
11958 (vfp_pop_multiple_with_writeback): Enable for MVE.
11959 (include "mve.md"): Include mve.md file.
11960 * config/arm/arm_mve.h: Add MVE intrinsics head file.
11961 * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE
11962 for vector predicated operands.
11963 * config/arm/iterators.md (VNIM1): Define.
11964 (VNINOTM1): Define.
11965 (VHFBF_split): Define
11966 * config/arm/mve.md: New file.
11967 (mve_mov<mode>): Define RTL for move, store and load in MVE.
11968 (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for
11969 second operand.
11970 * config/arm/neon.md (neon_immediate_valid_for_move): Rename with
11971 simd_immediate_valid_for_move.
11972 (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which
11973 is common to MVE and NEON to vec-common.md file.
11974 (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check.
11975 * config/arm/predicates.md (vpr_register_operand): Define.
11976 * config/arm/t-arm: Add mve.md file.
11977 * config/arm/types.md (mve_move): Add MVE instructions mve_move to
11978 attribute "type".
11979 (mve_store): Add MVE instructions mve_store to attribute "type".
11980 (mve_load): Add MVE instructions mve_load to attribute "type".
11981 (is_mve_type): Define attribute.
11982 * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support
11983 standard move patterns in MVE along with NEON and IWMMXT with mode
11984 iterator VNIM1.
11985 (mov<mode>): Modify RTL expand to support standard move patterns in NEON
11986 and IWMMXT with mode iterator V8HF.
11987 (movv8hf): Define RTL expand to support standard "movv8hf" pattern in
11988 NEON and MVE.
11989 * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to
11990 simd_immediate_valid_for_move.
11991
11992
11993 2020-03-16 H.J. Lu <hongjiu.lu@intel.com>
11994
11995 PR target/89229
11996 * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
11997 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
11998 check.
11999 * config/i386/predicates.md (ext_sse_reg_operand): Removed.
12000
12001 2020-03-16 Jakub Jelinek <jakub@redhat.com>
12002
12003 PR debug/94167
12004 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
12005 DEBUG_STMTs.
12006
12007 PR tree-optimization/94166
12008 * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION
12009 as secondary comparison key.
12010
12011 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com>
12012
12013 PR tree-optimization/94125
12014 * tree-loop-distribution.c
12015 (loop_distribution::break_alias_scc_partitions): Update post order
12016 number for merged scc.
12017
12018 2020-03-15 H.J. Lu <hongjiu.lu@intel.com>
12019
12020 PR target/89229
12021 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and
12022 MODE_SF.
12023 * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov
12024 for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL
12025 and ext_sse_reg_operand check.
12026
12027 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
12028
12029 * common.opt: Avoid redundancy in the help text.
12030 * config/arc/arc.opt: Likewise.
12031 * config/cr16/cr16.opt: Likewise.
12032
12033 2020-03-14 Jakub Jelinek <jakub@redhat.com>
12034
12035 PR middle-end/93566
12036 * tree-nested.c (convert_nonlocal_omp_clauses,
12037 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
12038 with C/C++ array sections.
12039
12040 2020-03-14 H.J. Lu <hongjiu.lu@intel.com>
12041
12042 PR target/89229
12043 * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov
12044 for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL
12045 check.
12046
12047 2020-03-14 Jakub Jelinek <jakub@redhat.com>
12048
12049 * gimple-fold.c (gimple_fold_builtin_strncpy): Change
12050 "a an" to "an" in a comment.
12051 * hsa-common.h (is_a_helper): Likewise.
12052 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.
12053 * config/arc/arc.c (arc600_corereg_hazard): Likewise.
12054 * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise.
12055
12056 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com>
12057
12058 PR target/92379
12059 * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a
12060 64-bit value by 64 bits (UB).
12061
12062 2020-03-13 Vladimir Makarov <vmakarov@redhat.com>
12063
12064 PR rtl-optimization/92303
12065 * lra-spills.c (remove_pseudos): Try to simplify memory subreg.
12066
12067 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org>
12068
12069 PR rtl-optimization/94148
12070 PR rtl-optimization/94042
12071 * df-core.c (BB_LAST_CHANGE_AGE): Delete.
12072 (df_worklist_propagate_forward): New parameter last_change_age, use
12073 that instead of bb->aux.
12074 (df_worklist_propagate_backward): Ditto.
12075 (df_worklist_dataflow_doublequeue): Use a local array last_change_age.
12076
12077 2020-03-13 Richard Biener <rguenther@suse.de>
12078
12079 PR tree-optimization/94163
12080 * tree-ssa-pre.c (create_expression_by_pieces): Check
12081 whether alignment would be zero.
12082
12083 2020-03-13 Martin Liska <mliska@suse.cz>
12084
12085 PR lto/94157
12086 * lto-wrapper.c (run_gcc): Use concat for appending
12087 to collect_gcc_options.
12088
12089 2020-03-13 Jakub Jelinek <jakub@redhat.com>
12090
12091 PR target/94121
12092 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
12093 instead of GEN_INT.
12094
12095 2020-03-13 H.J. Lu <hongjiu.lu@intel.com>
12096
12097 PR target/89229
12098 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
12099 * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
12100 for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
12101 TARGET_AVX512VL and ext_sse_reg_operand check.
12102
12103 2020-03-13 Bu Le <bule1@huawei.com>
12104
12105 PR target/94154
12106 * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=)
12107 (-param=aarch64-double-recp-precision=): New options.
12108 * doc/invoke.texi: Document them.
12109 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them
12110 instead of hard-coding the choice of 1 for float and 2 for double.
12111
12112 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
12113
12114 PR rtl-optimization/94119
12115 * resource.h (clear_hashed_info_until_next_barrier): Declare.
12116 * resource.c (clear_hashed_info_until_next_barrier): New function.
12117 * reorg.c (add_to_delay_list): Fix formatting.
12118 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on
12119 the next instruction after removing a BARRIER.
12120
12121 2020-03-13 Eric Botcazou <ebotcazou@adacore.com>
12122
12123 PR middle-end/92071
12124 * expmed.c (store_integral_bit_field): For fields larger than a word,
12125 call extract_bit_field on the value if the mode is BLKmode. Remove
12126 specific path for big-endian targets and tidy things up a little bit.
12127
12128 2020-03-12 Richard Sandiford <richard.sandiford@arm.com>
12129
12130 PR rtl-optimization/90275
12131 * cse.c (cse_insn): Delete no-op register moves too.
12132
12133 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com>
12134
12135 * config/rx/rx.md (CTRLREG_CPEN): Remove.
12136 * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support.
12137
12138 2020-03-12 Richard Biener <rguenther@suse.de>
12139
12140 PR tree-optimization/94103
12141 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
12142 punning when the mode precision is not sufficient.
12143
12144 2020-03-12 H.J. Lu <hongjiu.lu@intel.com>
12145
12146 PR target/89229
12147 * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI,
12148 MODE_V1DF and MODE_V2SF.
12149 * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call
12150 ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand
12151 check.
12152
12153 2020-03-12 Jakub Jelinek <jakub@redhat.com>
12154
12155 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
12156 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
12157 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
12158 * doc/tm.texi: Regenerated.
12159
12160 PR tree-optimization/94130
12161 * tree-ssa-dse.c: Include gimplify.h.
12162 (increment_start_addr): If stmt has lhs, drop the lhs from call and
12163 set it after the call to the original value of the first argument.
12164 Formatting fixes.
12165 (decrement_count): Formatting fix.
12166
12167 2020-03-11 Delia Burduv <delia.burduv@arm.com>
12168
12169 * config/arm/arm-builtins.c
12170 (arm_init_simd_builtin_scalar_types): New.
12171 * config/arm/arm_neon.h (vld2_bf16): Used new builtin type.
12172 (vld2q_bf16): Used new builtin type.
12173 (vld3_bf16): Used new builtin type.
12174 (vld3q_bf16): Used new builtin type.
12175 (vld4_bf16): Used new builtin type.
12176 (vld4q_bf16): Used new builtin type.
12177 (vld2_dup_bf16): Used new builtin type.
12178 (vld2q_dup_bf16): Used new builtin type.
12179 (vld3_dup_bf16): Used new builtin type.
12180 (vld3q_dup_bf16): Used new builtin type.
12181 (vld4_dup_bf16): Used new builtin type.
12182 (vld4q_dup_bf16): Used new builtin type.
12183
12184 2020-03-11 Jakub Jelinek <jakub@redhat.com>
12185
12186 PR target/94134
12187 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
12188 at the start to switch to data section. Don't print extra newline if
12189 .globl directive has not been emitted.
12190
12191 2020-03-11 Richard Biener <rguenther@suse.de>
12192
12193 * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]):
12194 New pattern.
12195
12196 2020-03-11 Eric Botcazou <ebotcazou@adacore.com>
12197
12198 PR middle-end/93961
12199 * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields
12200 whose type is a qualified union.
12201
12202 2020-03-11 Jakub Jelinek <jakub@redhat.com>
12203
12204 PR target/94121
12205 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
12206 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.
12207
12208 PR bootstrap/93962
12209 * value-prof.c (dump_histogram_value): Use abs_hwi instead of
12210 std::abs.
12211 (get_nth_most_common_value): Use abs_hwi instead of abs.
12212
12213 PR middle-end/94111
12214 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
12215 is rvc_normal, otherwise use real_to_decimal to print the number to
12216 string.
12217
12218 PR tree-optimization/94114
12219 * tree-loop-distribution.c (generate_memset_builtin): Call
12220 rewrite_to_non_trapping_overflow even on mem.
12221 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
12222 on dest and src.
12223
12224 2020-03-10 Jeff Law <law@redhat.com>
12225
12226 * config/bfin/bfin.md (movsi_insv): Add length attribute.
12227
12228 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com>
12229
12230 PR target/93709
12231 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
12232 NAN and SIGNED_ZEROR for smax/smin.
12233
12234 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
12235
12236 PR target/90763
12237 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12238 clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.
12239
12240 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
12241
12242 * loop-iv.c (find_simple_exit): Make it static.
12243 * cfgloop.h: Remove the corresponding prototype.
12244
12245 2020-03-10 Roman Zhuykov <zhroma@ispras.ru>
12246
12247 * ddg.c (create_ddg): Fix intendation.
12248 (set_recurrence_length): Likewise.
12249 (create_ddg_all_sccs): Likewise.
12250
12251 2020-03-10 Jakub Jelinek <jakub@redhat.com>
12252
12253 PR target/94088
12254 * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with
12255 CCZmode instead of CCNOmode if operands[2] has DImode and pos + len
12256 is 32.
12257
12258 2020-03-09 Jason Merrill <jason@redhat.com>
12259
12260 * gdbinit.in (pgs): Fix typo in documentation.
12261
12262 2020-03-09 Vladimir Makarov <vmakarov@redhat.com>
12263
12264 Revert:
12265
12266 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
12267
12268 PR rtl-optimization/93564
12269 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
12270 do not honor reg alloc order.
12271
12272 2020-03-09 Andrew Pinski <apinski@marvell.com>
12273
12274 PR inline-asm/94095
12275 * doc/extend.texi (x86 Operand Modifiers): Fix column
12276 for 'A' modifier.
12277
12278 2020-03-09 Martin Liska <mliska@suse.cz>
12279
12280 PR target/93800
12281 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12282 Remove set of str_align_loops and str_align_jumps as these
12283 should be set in previous 2 conditions in the function.
12284
12285 2020-03-09 Jakub Jelinek <jakub@redhat.com>
12286
12287 PR rtl-optimization/94045
12288 * params.opt (-param=max-find-base-term-values=): New option.
12289 * alias.c (find_base_term): Add cut-off for number of visited VALUEs
12290 in a single toplevel find_base_term call.
12291
12292 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
12293
12294 PR target/91598
12295 * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define.
12296 * config/aarch64/aarch64-simd.md
12297 (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul.
12298 (aarch64_vec_<su>mlal_lane<Qlane>): Likewise.
12299 * config/aarch64/aarch64-simd-builtins.def: Add intrinsics.
12300 * config/aarch64/arm_neon.h:
12301 (vmlal_lane_s16): Expand using intrinsics rather than inline asm.
12302 (vmlal_lane_u16): Likewise.
12303 (vmlal_lane_s32): Likewise.
12304 (vmlal_lane_u32): Likewise.
12305 (vmlal_laneq_s16): Likewise.
12306 (vmlal_laneq_u16): Likewise.
12307 (vmlal_laneq_s32): Likewise.
12308 (vmlal_laneq_u32): Likewise.
12309 (vmull_lane_s16): Likewise.
12310 (vmull_lane_u16): Likewise.
12311 (vmull_lane_s32): Likewise.
12312 (vmull_lane_u32): Likewise.
12313 (vmull_laneq_s16): Likewise.
12314 (vmull_laneq_u16): Likewise.
12315 (vmull_laneq_s32): Likewise.
12316 (vmull_laneq_u32): Likewise.
12317 * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul.
12318 (Qlane): Likewise.
12319
12320 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com>
12321
12322 * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax.
12323 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
12324 (aarch64_mls_elt<mode>): Likewise.
12325 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
12326 (aarch64_fma4_elt<mode>): Likewise.
12327 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
12328 (aarch64_fma4_elt_to_64v2df): Likewise.
12329 (aarch64_fnma4_elt<mode>): Likewise.
12330 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
12331 (aarch64_fnma4_elt_to_64v2df): Likewise.
12332
12333 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12334
12335 * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>:
12336 Specify movprfx attribute.
12337 (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise.
12338
12339 2020-03-06 David Edelsohn <dje.gcc@gmail.com>
12340
12341 PR target/94065
12342 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
12343 cmodel=large.
12344 (TARGET_NO_FP_IN_TOC): Same.
12345 * config/rs6000/aix71.h: Same.
12346 * config/rs6000/aix72.h: Same.
12347
12348 2020-03-06 Andrew Pinski <apinski@marvell.com>
12349 Jeff Law <law@redhat.com>
12350
12351 PR rtl-optimization/93996
12352 * haifa-sched.c (remove_notes): Be more careful when adding
12353 REG_SAVE_NOTE.
12354
12355 2020-03-06 Delia Burduv <delia.burduv@arm.com>
12356
12357 * config/arm/arm_neon.h (vld2_bf16): New.
12358 (vld2q_bf16): New.
12359 (vld3_bf16): New.
12360 (vld3q_bf16): New.
12361 (vld4_bf16): New.
12362 (vld4q_bf16): New.
12363 (vld2_dup_bf16): New.
12364 (vld2q_dup_bf16): New.
12365 (vld3_dup_bf16): New.
12366 (vld3q_dup_bf16): New.
12367 (vld4_dup_bf16): New.
12368 (vld4q_dup_bf16): New.
12369 * config/arm/arm_neon_builtins.def
12370 (vld2): Changed to VAR13 and added v4bf, v8bf
12371 (vld2_dup): Changed to VAR8 and added v4bf, v8bf
12372 (vld3): Changed to VAR13 and added v4bf, v8bf
12373 (vld3_dup): Changed to VAR8 and added v4bf, v8bf
12374 (vld4): Changed to VAR13 and added v4bf, v8bf
12375 (vld4_dup): Changed to VAR8 and added v4bf, v8bf
12376 * config/arm/iterators.md (VDXBF2): New iterator.
12377 *config/arm/neon.md (neon_vld2): Use new iterators.
12378 (neon_vld2_dup<mode): Use new iterators.
12379 (neon_vld3<mode>): Likewise.
12380 (neon_vld3qa<mode>): Likewise.
12381 (neon_vld3qb<mode>): Likewise.
12382 (neon_vld3_dup<mode>): Likewise.
12383 (neon_vld4<mode>): Likewise.
12384 (neon_vld4qa<mode>): Likewise.
12385 (neon_vld4qb<mode>): Likewise.
12386 (neon_vld4_dup<mode>): Likewise.
12387 (neon_vld2_dupv8bf): New.
12388 (neon_vld3_dupv8bf): Likewise.
12389 (neon_vld4_dupv8bf): Likewise.
12390
12391 2020-03-06 Delia Burduv <delia.burduv@arm.com>
12392
12393 * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef.
12394 (bfloat16x8x2_t): New typedef.
12395 (bfloat16x4x3_t): New typedef.
12396 (bfloat16x8x3_t): New typedef.
12397 (bfloat16x4x4_t): New typedef.
12398 (bfloat16x8x4_t): New typedef.
12399 (vst2_bf16): New.
12400 (vst2q_bf16): New.
12401 (vst3_bf16): New.
12402 (vst3q_bf16): New.
12403 (vst4_bf16): New.
12404 (vst4q_bf16): New.
12405 * config/arm/arm-builtins.c (v2bf_UP): Define.
12406 (VAR13): New.
12407 (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype.
12408 * config/arm/arm-modes.def (V2BF): New mode.
12409 * config/arm/arm-simd-builtin-types.def
12410 (Bfloat16x2_t): New entry.
12411 * config/arm/arm_neon_builtins.def
12412 (vst2): Changed to VAR13 and added v4bf, v8bf
12413 (vst3): Changed to VAR13 and added v4bf, v8bf
12414 (vst4): Changed to VAR13 and added v4bf, v8bf
12415 * config/arm/iterators.md (VDXBF): New iterator.
12416 (VQ2BF): New iterator.
12417 *config/arm/neon.md (neon_vst2<mode>): Used new iterators.
12418 (neon_vst2<mode>): Used new iterators.
12419 (neon_vst3<mode>): Used new iterators.
12420 (neon_vst3<mode>): Used new iterators.
12421 (neon_vst3qa<mode>): Used new iterators.
12422 (neon_vst3qb<mode>): Used new iterators.
12423 (neon_vst4<mode>): Used new iterators.
12424 (neon_vst4<mode>): Used new iterators.
12425 (neon_vst4qa<mode>): Used new iterators.
12426 (neon_vst4qb<mode>): Used new iterators.
12427
12428 2020-03-06 Delia Burduv <delia.burduv@arm.com>
12429
12430 * config/aarch64/aarch64-simd-builtins.def
12431 (bfcvtn): New built-in function.
12432 (bfcvtn_q): New built-in function.
12433 (bfcvtn2): New built-in function.
12434 (bfcvt): New built-in function.
12435 * config/aarch64/aarch64-simd.md
12436 (aarch64_bfcvtn<q><mode>): New pattern.
12437 (aarch64_bfcvtn2v8bf): New pattern.
12438 (aarch64_bfcvtbf): New pattern.
12439 * config/aarch64/arm_bf16.h (float32_t): New typedef.
12440 (vcvth_bf16_f32): New intrinsic.
12441 * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic.
12442 (vcvtq_low_bf16_f32): New intrinsic.
12443 (vcvtq_high_bf16_f32): New intrinsic.
12444 * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator.
12445 (UNSPEC_BFCVTN): New UNSPEC.
12446 (UNSPEC_BFCVTN2): New UNSPEC.
12447 (UNSPEC_BFCVT): New UNSPEC.
12448 * config/arm/types.md (bf_cvt): New type.
12449
12450 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com>
12451
12452 * config/s390/s390.md ("tabort"): Get rid of two consecutive
12453 blanks in format string.
12454
12455 2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
12456
12457 PR target/89229
12458 PR target/89346
12459 * config/i386/i386-protos.h (ix86_output_ssemov): New prototype.
12460 * config/i386/i386.c (ix86_get_ssemov): New function.
12461 (ix86_output_ssemov): Likewise.
12462 * config/i386/sse.md (VMOVE:mov<mode>_internal): Call
12463 ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL
12464 check.
12465 (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV.
12466 (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV.
12467 Remove ext_sse_reg_operand and TARGET_AVX512VL check.
12468 (*movti_internal): Likewise.
12469 (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV.
12470
12471 2020-03-05 Jeff Law <law@redhat.com>
12472
12473 PR tree-optimization/91890
12474 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument.
12475 Use gimple_or_expr_nonartificial_location.
12476 (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds.
12477 Use gimple_or_expr_nonartificial_location.
12478 * gimple.c (gimple_or_expr_nonartificial_location): New function.
12479 * gimple.h (gimple_or_expr_nonartificial_location): Declare it.
12480 * tree-ssa-strlen.c (maybe_warn_overflow): Use
12481 gimple_or_expr_nonartificial_location.
12482 (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise.
12483 (maybe_warn_pointless_strcmp): Likewise.
12484
12485 2020-03-05 Jakub Jelinek <jakub@redhat.com>
12486
12487 PR target/94046
12488 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
12489 SRC and MASK arguments to __m128 from __m128d.
12490 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
12491 from __m256d.
12492 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
12493 from __m128d.
12494 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
12495 argument to __m128i from __m128d.
12496 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from
12497 __m256d.
12498 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
12499 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from
12500 __m256.
12501
12502 2020-03-05 Delia Burduv <delia.burduv@arm.com>
12503
12504 * config/arm/arm_neon.h (vbfmmlaq_f32): New.
12505 (vbfmlalbq_f32): New.
12506 (vbfmlaltq_f32): New.
12507 (vbfmlalbq_lane_f32): New.
12508 (vbfmlaltq_lane_f32): New.
12509 (vbfmlalbq_laneq_f32): New.
12510 (vbfmlaltq_laneq_f32): New.
12511 * config/arm/arm_neon_builtins.def (vmmla): New.
12512 (vfmab): New.
12513 (vfmat): New.
12514 (vfmab_lane): New.
12515 (vfmat_lane): New.
12516 (vfmab_laneq): New.
12517 (vfmat_laneq): New.
12518 * config/arm/iterators.md (BF_MA): New int iterator.
12519 (bt): New int attribute.
12520 (VQXBF): Copy of VQX with V8BF.
12521 * config/arm/neon.md (neon_vmmlav8bf): New insn.
12522 (neon_vfma<bt>v8bf): New insn.
12523 (neon_vfma<bt>_lanev8bf): New insn.
12524 (neon_vfma<bt>_laneqv8bf): New expand.
12525 (neon_vget_high<mode>): Changed iterator to VQXBF.
12526 * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC.
12527 (UNSPEC_BFMAB): New UNSPEC.
12528 (UNSPEC_BFMAT): New UNSPEC.
12529
12530 2020-03-05 Jakub Jelinek <jakub@redhat.com>
12531
12532 PR middle-end/93399
12533 * tree-pretty-print.h (pretty_print_string): Declare.
12534 * tree-pretty-print.c (pretty_print_string): Remove forward
12535 declaration, no longer static. Change nbytes parameter type
12536 from unsigned to size_t.
12537 * print-rtl.c (print_value) <case CONST_STRING>: Use
12538 pretty_print_string and for shrink way too long strings.
12539
12540 2020-03-05 Richard Biener <rguenther@suse.de>
12541 Jakub Jelinek <jakub@redhat.com>
12542
12543 PR tree-optimization/93582
12544 * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR
12545 last operand as signed when looking for memset offset. Formatting
12546 fix.
12547
12548 2020-03-04 Andrew Pinski <apinski@marvell.com>
12549
12550 PR bootstrap/93962
12551 * value-prof.c (dump_histogram_value): Use std::abs.
12552
12553 2020-03-04 Martin Sebor <msebor@redhat.com>
12554
12555 PR tree-optimization/93986
12556 * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int
12557 operands to the same precision widest_int to avoid ICEs.
12558
12559 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com>
12560
12561 PR target/87560
12562 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
12563 * rs6000.c (rs6000_disable_incompatible_switches): Add table entry
12564 for OPTION_MASK_ALTIVEC.
12565
12566 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
12567
12568 * config.gcc: Include the glibc-stdint.h header for zTPF.
12569
12570 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
12571
12572 * config/s390/s390.c (s390_secondary_memory_needed): Disallow
12573 direct FPR-GPR copies.
12574 (s390_register_info_gprtofpr): Disallow GPR content to be saved in
12575 FPRs.
12576
12577 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com>
12578
12579 * config/s390/s390.c (s390_emit_prologue): Specify the 2 new
12580 operands to the prologue_tpf expander.
12581 (s390_emit_epilogue): Likewise.
12582 (s390_option_override_internal): Do error checking and setup for
12583 the new options.
12584 * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK)
12585 (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET)
12586 (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET)
12587 (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions.
12588 * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new
12589 operands for the check flag and the branch target.
12590 * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check")
12591 ("mtpf-trace-hook-prologue-target")
12592 ("mtpf-trace-hook-epilogue-check")
12593 ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New
12594 options.
12595 * doc/invoke.texi: Document -mtpf-trace-skip option. The other
12596 options are for debugging purposes and will not be documented
12597 here.
12598
12599 2020-03-04 Jakub Jelinek <jakub@redhat.com>
12600
12601 PR debug/93888
12602 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.
12603
12604 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti
12605 argument. Change pd argument so that it can be modified. Turn
12606 constant non-CONSTRUCTOR store into non-constant if it is too large.
12607 Adjust offset and size of CONSTRUCTOR or non-constant store to avoid
12608 overflows.
12609 (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust
12610 callers.
12611
12612 2020-02-04 Richard Biener <rguenther@suse.de>
12613
12614 PR tree-optimization/93964
12615 * graphite-isl-ast-to-gimple.c
12616 (gcc_expression_from_isl_ast_expr_id): Add intermediate
12617 conversion for pointer to integer converts.
12618 * graphite-scop-detection.c (assign_parameter_index_in_region):
12619 Relax assert.
12620
12621 2020-03-04 Martin Liska <mliska@suse.cz>
12622
12623 PR c/93886
12624 PR c/93887
12625 * doc/invoke.texi: Clarify --help=language and --help=common
12626 interaction.
12627
12628 2020-03-04 Jakub Jelinek <jakub@redhat.com>
12629
12630 PR tree-optimization/94001
12631 * tree-tailcall.c (process_assignment): Before comparing op1 to
12632 *ass_var, verify *ass_var is non-NULL.
12633
12634 2020-03-04 Kito Cheng <kito.cheng@sifive.com>
12635
12636 PR target/93995
12637 * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare
12638 the result of IOR.
12639
12640 2020-03-03 Dennis Zhang <dennis.zhang@arm.com>
12641
12642 * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New.
12643 * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New.
12644 (vcvtq_high_f32_bf16, vcvt_bf16_f32): New.
12645 (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New.
12646 * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries.
12647 (vbfcvtv4sf, vbfcvtv4sf_high): Likewise.
12648 * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators.
12649 (V_bf_low, V_bf_cvt_m): New mode attributes.
12650 * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New.
12651 (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New.
12652 (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New.
12653 (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New
12654 * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New.
12655
12656 2020-03-03 Jakub Jelinek <jakub@redhat.com>
12657
12658 PR tree-optimization/93582
12659 * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument.
12660 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result
12661 members, initialize them in the constructor and if mask is non-NULL,
12662 artificially push_partial_def {} for the portions of the mask that
12663 contain zeros.
12664 (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to
12665 val and return (void *)-1. Formatting fix.
12666 (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization.
12667 Formatting fix.
12668 (vn_reference_lookup): Add mask argument. If non-NULL, don't call
12669 fully_constant_vn_reference_p nor vn_reference_lookup_1 and return
12670 data.mask_result.
12671 (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
12672 mask.
12673 (visit_stmt): Formatting fix.
12674
12675 2020-03-03 Richard Biener <rguenther@suse.de>
12676
12677 PR tree-optimization/93946
12678 * alias.h (refs_same_for_tbaa_p): Declare.
12679 * alias.c (refs_same_for_tbaa_p): New function.
12680 * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return
12681 zero.
12682 * tree-ssa-scopedtables.h
12683 (avail_exprs_stack::lookup_avail_expr): Add output argument
12684 giving access to the hashtable entry.
12685 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
12686 Likewise.
12687 * tree-ssa-dom.c: Include alias.h.
12688 (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before
12689 removing redundant store.
12690 * tree-ssa-sccvn.h (vn_reference_s::base_set): New member.
12691 (ao_ref_init_from_vn_reference): Adjust prototype.
12692 (vn_reference_lookup_pieces): Likewise.
12693 (vn_reference_insert_pieces): Likewise.
12694 * tree-ssa-sccvn.c: Track base alias set in addition to alias
12695 set everywhere.
12696 (eliminate_dom_walker::eliminate_stmt): Also check base alias
12697 set when removing redundant stores.
12698 (visit_reference_op_store): Likewise.
12699 * dse.c (record_store): Adjust valdity check for redundant
12700 store removal.
12701
12702 2020-03-03 Jakub Jelinek <jakub@redhat.com>
12703
12704 PR target/26877
12705 * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder.
12706
12707 PR rtl-optimization/94002
12708 * explow.c (plus_constant): Punt if cst has VOIDmode and
12709 get_pool_mode is different from mode.
12710
12711 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12712
12713 * config/arc/arc.c (leigitimate_small_data_address_p): Check if an
12714 address has an offset which fits the scalling constraint for a
12715 load/store operation.
12716 (legitimate_scaled_address_p): Update use
12717 leigitimate_small_data_address_p.
12718 (arc_print_operand): Likewise.
12719 (arc_legitimate_address_p): Likewise.
12720 (legitimate_small_data_address_p): Likewise.
12721
12722 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12723
12724 * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
12725 (fnmasf4_fpu): Likewise.
12726
12727 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12728
12729 * config/arc/arc.md (adddi3): Early expand the 64bit operation into
12730 32bit ops.
12731 (subdi3): Likewise.
12732 (adddi3_i): Remove pattern.
12733 (subdi3_i): Likewise.
12734
12735 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com>
12736
12737 * config/arc/arc.md (eh_return): Add length info.
12738
12739 2020-03-02 David Malcolm <dmalcolm@redhat.com>
12740
12741 * doc/invoke.texi (-fanalyzer-show-duplicate-count): New.
12742
12743 2020-03-02 David Malcolm <dmalcolm@redhat.com>
12744
12745 * doc/invoke.texi (Static Analyzer Options): Add
12746 -Wanalyzer-stale-setjmp-buffer to the list of options enabled
12747 by -fanalyzer.
12748
12749 2020-03-02 Uroš Bizjak <ubizjak@gmail.com>
12750
12751 PR target/93997
12752 * config/i386/i386.md (movstrict<mode>): Allow only
12753 registers with VALID_INT_MODE_P modes.
12754
12755 2020-03-02 Andrew Stubbs <ams@codesourcery.com>
12756
12757 * config/gcn/gcn-valu.md (dpp_move<mode>): New.
12758 (reduc_insn): Use 'U' and 'B' operand codes.
12759 (reduc_<reduc_op>_scal_<mode>): Allow all types.
12760 (reduc_<reduc_op>_scal_v64di): Delete.
12761 (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types.
12762 (*plus_carry_dpp_shr_v64si): Change to ...
12763 (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types.
12764 (mov_from_lane63_v64di): Change to ...
12765 (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes.
12766 * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size.
12767 Support UNSPEC_MOV_DPP_SHR output formats.
12768 (gcn_expand_reduc_scalar): Add "use_moves" reductions.
12769 Add "use_extends" reductions.
12770 (print_operand_address): Add 'I' and 'U' codes.
12771 * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR.
12772
12773 2020-03-02 Martin Liska <mliska@suse.cz>
12774
12775 * lto-wrapper.c: Fix typo in comment about
12776 C++ standard version.
12777
12778 2020-03-01 Martin Sebor <msebor@redhat.com>
12779
12780 PR c++/92721
12781 * calls.c (init_attr_rdwr_indices): Correctly handle attribute.
12782
12783 2020-03-01 Martin Sebor <msebor@redhat.com>
12784
12785 PR middle-end/93829
12786 * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that
12787 of a pointer in the outermost ADDR_EXPRs.
12788
12789 2020-02-28 Jeff Law <law@redhat.com>
12790
12791 * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19.
12792 * config/v850/v850.c (v850_asm_trampoline_template): Update
12793 accordingly.
12794
12795 2020-02-28 Michael Meissner <meissner@linux.ibm.com>
12796
12797 PR target/93937
12798 * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var):
12799 Delete insn.
12800
12801 2020-02-28 Martin Liska <mliska@suse.cz>
12802
12803 PR other/93965
12804 * configure.ac: Improve detection of ld_date by requiring
12805 either two dashes or none.
12806 * configure: Regenerate.
12807
12808 2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
12809
12810 PR rtl-optimization/93564
12811 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
12812 do not honor reg alloc order.
12813
12814 2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
12815
12816 PR target/87612
12817 * config/aarch64/aarch64.c (aarch64_override_options): Fix
12818 misleading warning string.
12819
12820 2020-02-27 Martin Sebor <msebor@redhat.com>
12821
12822 * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo.
12823
12824 2020-02-27 Michael Meissner <meissner@linux.ibm.com>
12825
12826 PR target/93932
12827 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
12828 Split the insn into two parts. This insn only does variable
12829 extract from a register.
12830 (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
12831 variable extract from memory.
12832 (vsx_extract_v4sf_var): Split the insn into two parts. This insn
12833 only does variable extract from a register.
12834 (vsx_extract_v4sf_var_load): New insn, do variable extract from
12835 memory.
12836 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
12837 into two parts. This insn only does variable extract from a
12838 register.
12839 (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
12840 do variable extract from memory.
12841
12842 2020-02-27 Martin Jambor <mjambor@suse.cz>
12843 Feng Xue <fxue@os.amperecomputing.com>
12844
12845 PR ipa/93707
12846 * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with
12847 new function calls_same_node_or_its_all_contexts_clone_p.
12848 (cgraph_edge_brings_value_p): Use it.
12849 (cgraph_edge_brings_value_p): Likewise.
12850 (self_recursive_pass_through_p): Return false if caller is a clone.
12851 (self_recursive_agg_pass_through_p): Likewise.
12852
12853 2020-02-27 Jan Hubicka <hubicka@ucw.cz>
12854
12855 PR middle-end/92152
12856 * alias.c (ends_tbaa_access_path_p): Break out from ...
12857 (component_uses_parent_alias_set_from): ... here.
12858 * alias.h (ends_tbaa_access_path_p): Declare.
12859 * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...;
12860 handle trailing arrays past end of tbaa access path.
12861 (aliasing_component_refs_p): ... here; likewise.
12862 (nonoverlapping_refs_since_match_p): Track TBAA segment of the access
12863 path; disambiguate also past end of it.
12864 (nonoverlapping_component_refs_p): Use only TBAA segment of the access
12865 path.
12866
12867 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com>
12868
12869 * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the
12870 beginning of the file.
12871 (vcreate_bf16, vcombine_bf16): New.
12872 (vdup_n_bf16, vdupq_n_bf16): New.
12873 (vdup_lane_bf16, vdup_laneq_bf16): New.
12874 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
12875 (vduph_lane_bf16, vduph_laneq_bf16): New.
12876 (vset_lane_bf16, vsetq_lane_bf16): New.
12877 (vget_lane_bf16, vgetq_lane_bf16): New.
12878 (vget_high_bf16, vget_low_bf16): New.
12879 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
12880 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
12881 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
12882 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
12883 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
12884 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
12885 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
12886 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
12887 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
12888 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
12889 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New.
12890 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
12891 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
12892 (vreinterpretq_bf16_p128): New.
12893 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
12894 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
12895 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
12896 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
12897 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
12898 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
12899 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
12900 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
12901 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
12902 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
12903 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
12904 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
12905 (vreinterpretq_p128_bf16): New.
12906 * config/arm/arm_neon_builtins.def (VDX): Add V4BF.
12907 (V_elem): Likewise.
12908 (V_elem_l): Likewise.
12909 (VD_LANE): Likewise.
12910 (VQX) Add V8BF.
12911 (V_DOUBLE): Likewise.
12912 (VDQX): Add V4BF and V8BF.
12913 (V_two_elem, V_three_elem, V_four_elem): Likewise.
12914 (V_reg): Likewise.
12915 (V_HALF): Likewise.
12916 (V_double_vector_mode): Likewise.
12917 (V_cmp_result): Likewise.
12918 (V_uf_sclr): Likewise.
12919 (V_sz_elem): Likewise.
12920 (Is_d_reg): Likewise.
12921 (V_mode_nunits): Likewise.
12922 * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16.
12923
12924 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
12925
12926 * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator.
12927 (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE.
12928 (<expander><mode>3<exec>): Likewise.
12929 (<expander><mode>3): New.
12930 (v<expander><mode>3): New.
12931 (<expander><mode>3): New.
12932 (<expander><mode>3<exec>): Rename to ...
12933 (<expander>v64si3<exec>): ... this, and change modes to V64SI.
12934 * config/gcn/gcn.md (mnemonic): Use '%B' for not.
12935
12936 2020-02-27 Alexandre Oliva <oliva@adacore.com>
12937
12938 * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave
12939 them alone on vx7.
12940
12941 2020-02-27 Richard Biener <rguenther@suse.de>
12942
12943 PR tree-optimization/93508
12944 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like
12945 non-_CHK variants. Valueize their length arguments.
12946
12947 2020-02-27 Richard Biener <rguenther@suse.de>
12948
12949 PR tree-optimization/93953
12950 * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference
12951 to the hash-map entry.
12952
12953 2020-02-27 Andrew Stubbs <ams@codesourcery.com>
12954
12955 * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs.
12956
12957 2020-02-27 Mark Williams <mwilliams@fb.com>
12958
12959 * dwarf2out.c (file_name_acquire): Call remap_debug_filename.
12960 * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
12961 -ffile-prefix-map and -fmacro-prefix-map.
12962 * lto-streamer-out.c: Include file-prefix-map.h.
12963 (lto_output_location): Remap the file part of locations.
12964
12965 2020-02-27 Jakub Jelinek <jakub@redhat.com>
12966
12967 PR c/93949
12968 * gimplify.c (gimplify_init_constructor): Don't promote readonly
12969 DECL_REGISTER variables to TREE_STATIC.
12970
12971 PR tree-optimization/93582
12972 PR tree-optimization/93945
12973 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with
12974 non-zero INTEGER_CST second argument and ref->offset or ref->size
12975 not a multiple of BITS_PER_UNIT.
12976
12977 2020-02-27 Jonathan Wakely <jwakely@redhat.com>
12978
12979 * doc/install.texi (Binaries): Update description of BullFreeware.
12980
12981 2020-02-26 Sandra Loosemore <sandra@codesourcery.com>
12982
12983 PR c++/90467
12984
12985 * doc/invoke.texi (Option Summary): Re-alphabetize warnings in
12986 C++ Language Options, Warning Options, and Static Analyzer
12987 Options lists. Document negative form of options enabled by
12988 default. Move some things around to more accurately sort
12989 warnings by category.
12990 (C++ Dialect Options, Warning Options, Static Analyzer
12991 Options): Document negative form of options when enabled by
12992 default. Move some things around to more accurately sort
12993 warnings by category. Add some missing index entries.
12994 Light copy-editing.
12995
12996 2020-02-26 Carl Love <cel@us.ibm.com>
12997
12998 PR target/91276
12999 * doc/extend.texi (PowerPC AltiVec Built-in Functions available on
13000 ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only
13001 for the vector unsigned short arguments. It is also listed as the
13002 name of the built-in for arguments vector unsigned short,
13003 vector unsigned int and vector unsigned long long built-ins. The
13004 name of the builtins for these arguments should be:
13005 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
13006 __builtin_crypto_vpmsumd respectively.
13007
13008 2020-02-26 Richard Biener <rguenther@suse.de>
13009
13010 * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
13011 and load permutation.
13012
13013 2020-02-26 Richard Sandiford <richard.sandiford@arm.com>
13014
13015 PR middle-end/93843
13016 * optabs-tree.c (supportable_convert_operation): Reject types with
13017 scalar modes.
13018
13019 2020-02-26 David Malcolm <dmalcolm@redhat.com>
13020
13021 * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o.
13022
13023 2020-02-26 Jakub Jelinek <jakub@redhat.com>
13024
13025 PR tree-optimization/93820
13026 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
13027 argument to ALL_INTEGER_CST_P boolean.
13028 (imm_store_chain_info::try_coalesce_bswap): Adjust caller.
13029 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle
13030 adjacent INTEGER_CST store into merged_store->only_constants like
13031 overlapping one.
13032
13033 2020-02-25 Jakub Jelinek <jakub@redhat.com>
13034
13035 PR other/93912
13036 * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity
13037 -> probability.
13038 * cfghooks.c (verify_flow_info): Likewise.
13039 * predict.c (combine_predictions_for_bb): Likewise.
13040 * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo,
13041 sucessor -> successor.
13042 (find_traces_1_round): Fix comment typo, destinarion -> destination.
13043 * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors ->
13044 successors.
13045 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump
13046 message typo, sucessors -> successors.
13047
13048 2020-02-25 Martin Sebor <msebor@redhat.com>
13049
13050 * doc/extend.texi (attribute access): Correct an example.
13051
13052 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
13053
13054 * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types):
13055 Add simd_bf.
13056 (aarch64_init_simd_builtin_scalar_types): Register simd_bf.
13057 (VAR15, VAR16): New.
13058 * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF.
13059 (VD): Enable for V4BF.
13060 (VDC): Likewise.
13061 (VQ): Enable for V8BF.
13062 (VQ2): Likewise.
13063 (VQ_NO2E): Likewise.
13064 (VDBL, Vdbl): Add V4BF.
13065 (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF.
13066 * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef.
13067 (bfloat16x8x2_t): Likewise.
13068 (bfloat16x4x3_t): Likewise.
13069 (bfloat16x8x3_t): Likewise.
13070 (bfloat16x4x4_t): Likewise.
13071 (bfloat16x8x4_t): Likewise.
13072 (vcombine_bf16): New.
13073 (vld1_bf16, vld1_bf16_x2): New.
13074 (vld1_bf16_x3, vld1_bf16_x4): New.
13075 (vld1q_bf16, vld1q_bf16_x2): New.
13076 (vld1q_bf16_x3, vld1q_bf16_x4): New.
13077 (vld1_lane_bf16): New.
13078 (vld1q_lane_bf16): New.
13079 (vld1_dup_bf16): New.
13080 (vld1q_dup_bf16): New.
13081 (vld2_bf16): New.
13082 (vld2q_bf16): New.
13083 (vld2_dup_bf16): New.
13084 (vld2q_dup_bf16): New.
13085 (vld3_bf16): New.
13086 (vld3q_bf16): New.
13087 (vld3_dup_bf16): New.
13088 (vld3q_dup_bf16): New.
13089 (vld4_bf16): New.
13090 (vld4q_bf16): New.
13091 (vld4_dup_bf16): New.
13092 (vld4q_dup_bf16): New.
13093 (vst1_bf16, vst1_bf16_x2): New.
13094 (vst1_bf16_x3, vst1_bf16_x4): New.
13095 (vst1q_bf16, vst1q_bf16_x2): New.
13096 (vst1q_bf16_x3, vst1q_bf16_x4): New.
13097 (vst1_lane_bf16): New.
13098 (vst1q_lane_bf16): New.
13099 (vst2_bf16): New.
13100 (vst2q_bf16): New.
13101 (vst3_bf16): New.
13102 (vst3q_bf16): New.
13103 (vst4_bf16): New.
13104 (vst4q_bf16): New.
13105
13106 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com>
13107
13108 * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF.
13109 (VALL_F16): Likewise.
13110 (VALLDI_F16): Likewise.
13111 (Vtype): Likewise.
13112 (Vetype): Likewise.
13113 (vswap_width_name): Likewise.
13114 (VSWAP_WIDTH): Likewise.
13115 (Vel): Likewise.
13116 (VEL): Likewise.
13117 (q): Likewise.
13118 * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New.
13119 (vget_lane_bf16, vgetq_lane_bf16): New.
13120 (vcreate_bf16): New.
13121 (vdup_n_bf16, vdupq_n_bf16): New.
13122 (vdup_lane_bf16, vdup_laneq_bf16): New.
13123 (vdupq_lane_bf16, vdupq_laneq_bf16): New.
13124 (vduph_lane_bf16, vduph_laneq_bf16): New.
13125 (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New.
13126 (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New.
13127 (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New.
13128 (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New.
13129 (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New.
13130 (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New.
13131 (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New.
13132 (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New.
13133 (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New.
13134 (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New.
13135 (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New
13136 (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New
13137 (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New.
13138 (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New.
13139 (vreinterpretq_bf16_p128): New.
13140 (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New.
13141 (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New.
13142 (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New.
13143 (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New.
13144 (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New.
13145 (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New.
13146 (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New.
13147 (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New.
13148 (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New.
13149 (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New.
13150 (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New.
13151 (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New.
13152 (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New.
13153 (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New.
13154 (vreinterpretq_p128_bf16): New.
13155
13156 2020-02-25 Dennis Zhang <dennis.zhang@arm.com>
13157
13158 * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New
13159 (vbfdot_lane_f32, vbfdotq_laneq_f32): New.
13160 (vbfdot_laneq_f32, vbfdotq_lane_f32): New.
13161 * config/arm/arm_neon_builtins.def (vbfdot): New entry.
13162 (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise.
13163 * config/arm/iterators.md (VSF2BF): New attribute.
13164 * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry.
13165 (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise.
13166 (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise.
13167
13168 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org>
13169
13170 * config/arm/arm.md (required_for_purecode): New attribute.
13171 (enabled): Handle required_for_purecode.
13172 * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to
13173 work with -mpure-code.
13174
13175 2020-02-25 Jakub Jelinek <jakub@redhat.com>
13176
13177 PR rtl-optimization/93908
13178 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src
13179 with mask.
13180
13181 2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
13182
13183 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
13184
13185 2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
13186
13187 * doc/install.texi (--enable-checking): Adjust wording.
13188
13189 2020-02-25 Richard Biener <rguenther@suse.de>
13190
13191 PR tree-optimization/93868
13192 * tree-vect-slp.c (slp_copy_subtree): New function.
13193 (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before
13194 re-arranging stmts in it.
13195
13196 2020-02-25 Jakub Jelinek <jakub@redhat.com>
13197
13198 PR middle-end/93874
13199 * passes.c (pass_manager::dump_passes): Create a cgraph node for the
13200 dummy function and remove it at the end.
13201
13202 PR translation/93864
13203 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo
13204 paramter -> parameter.
13205 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise.
13206 * ipa-prop.h (struct ipa_agg_replacement_value): Likewise.
13207
13208 2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
13209
13210 * doc/install.texi (--enable-checking): Properly document current
13211 behavior.
13212 (--enable-stage1-checking): Minor clarification about bootstrap.
13213
13214 2020-02-24 David Malcolm <dmalcolm@redhat.com>
13215
13216 PR analyzer/93032
13217 * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that
13218 -fanalyzer-checker=taint is also required.
13219 (-fanalyzer-checker=): Note that providing this option enables the
13220 given checker, and doing so may be required for checkers that are
13221 disabled by default.
13222
13223 2020-02-24 David Malcolm <dmalcolm@redhat.com>
13224
13225 * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows
13226 significant control flow events; add a "3" which shows all
13227 control flow events; the old "3" becomes "4".
13228
13229 2020-02-24 Jakub Jelinek <jakub@redhat.com>
13230
13231 PR tree-optimization/93582
13232 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider
13233 pd.offset and pd.size to be counted in bits rather than bytes, add
13234 support for maxsizei that is not a multiple of BITS_PER_UNIT and
13235 handle bitfield stores and loads.
13236 (vn_reference_lookup_3): Don't call ranges_known_overlap_p with
13237 uncomparable quantities - bytes vs. bits. Allow push_partial_def
13238 on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust
13239 pd.offset/pd.size to be counted in bits rather than bytes.
13240 Formatting fix. Rename shadowed len variable to buflen.
13241
13242 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13243 Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org>
13244
13245 PR driver/47785
13246 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
13247 (driver::main): Call putenv_COLLECT_AS_OPTIONS.
13248 * opts-common.c (parse_options_from_collect_gcc_options): New function.
13249 (prepend_xassembler_to_collect_as_options): Likewise.
13250 * opts.h (parse_options_from_collect_gcc_options): Declare prototype.
13251 (prepend_xassembler_to_collect_as_options): Likewise.
13252 * lto-opts.c (lto_write_options): Stream assembler options
13253 in COLLECT_AS_OPTIONS.
13254 * lto-wrapper.c (xassembler_options_error): New static variable.
13255 (get_options_from_collect_gcc_options): Move parsing options code to
13256 parse_options_from_collect_gcc_options and call it.
13257 (merge_and_complain): Validate -Xassembler options.
13258 (append_compiler_options): Handle OPT_Xassembler.
13259 (run_gcc): Append command line -Xassembler options to
13260 collect_gcc_options.
13261 * doc/invoke.texi: Add documentation about using Xassembler
13262 options with LTO.
13263
13264 2020-02-24 Kito Cheng <kito.cheng@sifive.com>
13265
13266 * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen
13267 for LTGT.
13268 (riscv_rtx_costs): Update cost model for LTGT.
13269
13270 2020-02-23 Vladimir Makarov <vmakarov@redhat.com>
13271
13272 PR rtl-optimization/93564
13273 * ira-color.c (struct update_cost_queue_elem): New member start.
13274 (queue_update_cost, get_next_update_cost): Add new arg start.
13275 (allocnos_conflict_p): New function.
13276 (update_costs_from_allocno): Add new arg conflict_cost_update_p.
13277 Add checking conflicts with allocnos_conflict_p.
13278 (update_costs_from_prefs, restore_costs_from_copies): Adjust
13279 update_costs_from_allocno calls.
13280 (update_conflict_hard_regno_costs): Add checking conflicts with
13281 allocnos_conflict_p. Adjust calls of queue_update_cost and
13282 get_next_update_cost.
13283 (assign_hard_reg): Adjust calls of queue_update_cost. Add
13284 debugging print.
13285 (bucket_allocno_compare_func): Restore previous version.
13286
13287 2020-02-21 John David Anglin <danglin@gcc.gnu.org>
13288
13289 * config/pa/pa.c (pa_function_value): Fix check for word and
13290 double-word size when handling aggregate return values.
13291 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
13292 that homogeneous SFmode and DFmode aggregates are passed and returned
13293 in general registers.
13294
13295 2020-02-21 Jakub Jelinek <jakub@redhat.com>
13296
13297 PR translation/93759
13298 * opts.c (print_filtered_help): Translate help before appending
13299 messages to it rather than after that.
13300
13301 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
13302
13303 PR rtl-optimization/PR92989
13304 * lra-lives.c (process_bb_lives): Restore the original order
13305 of the bb liveness update. Call make_hard_regno_dead for each
13306 register clobbered at the start of an EH receiver.
13307
13308 2020-02-18 Feng Xue <fxue@os.amperecomputing.com>
13309
13310 PR ipa/93763
13311 * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as
13312 self-recursively generated.
13313
13314 2020-02-21 Iain Sandoe <iain@sandoe.co.uk>
13315
13316 PR target/93860
13317 * config/darwin-c.c (pop_field_alignment): Adjust quoting of
13318 error string.
13319
13320 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com>
13321
13322 * doc/sourcebuild.texi (arm_v8_1m_mve_ok):
13323 Document new target supports option.
13324
13325 2020-02-21 Dennis Zhang <dennis.zhang@arm.com>
13326
13327 * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
13328 * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
13329 * config/arm/iterators.md (MATMUL): New iterator.
13330 (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
13331 (mmla_sfx): New attribute.
13332 * config/arm/neon.md (neon_<sup>mmlav16qi): New.
13333 * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
13334 (UNSPEC_MATMUL_US): New.
13335
13336 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
13337
13338 * config/arm/arm.md: Prevent scalar shifts from being used when big
13339 endian is enabled.
13340
13341 2020-02-21 Jan Hubicka <hubicka@ucw.cz>
13342 Richard Biener <rguenther@suse.de>
13343
13344 PR tree-optimization/93586
13345 * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk
13346 after mismatched array refs; do not sure type size information to
13347 recover from unmatched referneces with !flag_strict_aliasing_p.
13348
13349 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
13350
13351 * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ...
13352 (gather_load<mode>v64si): ... this and set operand 2 to V64SI.
13353 (scatter_store<mode>): Rename to ...
13354 (scatter_store<mode>v64si): ... this and set operand 1 to V64SI.
13355 (scatter<mode>_exec): Delete. Move contents ...
13356 (mask_scatter_store<mode>): ... here, and rename that to ...
13357 (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI.
13358 Remove mode conversion.
13359 (mask_gather_load<mode>): Rename to ...
13360 (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI.
13361 Remove mode conversion.
13362 * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion.
13363
13364 2020-02-21 Martin Jambor <mjambor@suse.cz>
13365
13366 PR tree-optimization/93845
13367 * tree-sra.c (verify_sra_access_forest): Only test access size of
13368 scalar types.
13369
13370 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
13371
13372 * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs.
13373 * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber.
13374 (addv64di3_exec): Likewise.
13375 (subv64di3): Likewise.
13376 (subv64di3_exec): Likewise.
13377 (addv64di3_zext): Likewise.
13378 (addv64di3_zext_exec): Likewise.
13379 (addv64di3_zext_dup): Likewise.
13380 (addv64di3_zext_dup_exec): Likewise.
13381 (addv64di3_zext_dup2): Likewise.
13382 (addv64di3_zext_dup2_exec): Likewise.
13383 (addv64di3_sext_dup2): Likewise.
13384 (addv64di3_sext_dup2_exec): Likewise.
13385 (<expander>v64di3): Likewise.
13386 (<expander>v64di3_exec): Likewise.
13387 (*<reduc_op>_dpp_shr_v64di): Likewise.
13388 (*plus_carry_dpp_shr_v64di): Likewise.
13389 * config/gcn/gcn.md (adddi3): Likewise.
13390 (addptrdi3): Likewise.
13391 (<expander>di3): Likewise.
13392
13393 2020-02-21 Andrew Stubbs <ams@codesourcery.com>
13394
13395 * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di.
13396
13397 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13398
13399 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE
13400 support. Use aarch64_emit_mult instead of emitting multiplication
13401 instructions directly.
13402 * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2)
13403 (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders.
13404
13405 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13406
13407 * config/aarch64/aarch64.c (aarch64_emit_mult): New function.
13408 (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult
13409 instead of emitting multiplication instructions directly.
13410 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator.
13411 * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>)
13412 (@aarch64_frecps<mode>): New expanders.
13413
13414 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13415
13416 * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
13417 on and produce uint64_ts rather than ints.
13418 (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
13419 (cpu_approx_modes): Change the fields from unsigned int to uint64_t.
13420
13421 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13422
13423 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create
13424 an unused xmsk register when handling approximate rsqrt.
13425
13426 2020-02-21 Richard Sandiford <richard.sandiford@arm.com>
13427
13428 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted
13429 flag_finite_math_only condition.
13430
13431 2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
13432
13433 PR target/93828
13434 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
13435 to destination operand for shufps alternative.
13436 (*vec_extractv2si_1): Ditto.
13437
13438 2020-02-20 Peter Bergner <bergner@linux.ibm.com>
13439
13440 PR target/93658
13441 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
13442 vector modes.
13443
13444 2020-02-20 Martin Liska <mliska@suse.cz>
13445
13446 PR translation/93831
13447 * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode.
13448
13449 2020-02-20 Martin Liska <mliska@suse.cz>
13450
13451 PR translation/93830
13452 * common/config/avr/avr-common.c: Remote trailing "|".
13453
13454 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
13455
13456 * collect2.c (maybe_run_lto_and_relink): Fix typo in
13457 comment.
13458
13459 2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
13460
13461 PR tree-optimization/93767
13462 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the
13463 access-size bias from the offset calculations for negative strides.
13464
13465 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
13466
13467 * collect2.c (c_file, o_file): Make const again.
13468 (ldout,lderrout, dump_ld_file): Remove.
13469 (tool_cleanup): Avoid calling not signal-safe functions.
13470 (maybe_run_lto_and_relink): Avoid possible signal handler
13471 access to unintialzed memory (lto_o_files).
13472 (main): Avoid leaking temp files in $TMPDIR.
13473 Initialize c_file/o_file with concat, which avoids exposing
13474 uninitialized memory to signal handler, which calls unlink(!).
13475 Avoid calling maybe_unlink when the main function returns,
13476 since the atexit handler is already doing this.
13477 * collect2.h (dump_ld_file, ldout, lderrout): Remove.
13478
13479 2020-02-19 Martin Jambor <mjambor@suse.cz>
13480
13481 PR tree-optimization/93776
13482 * tree-sra.c (create_access): Do not create zero size accesses.
13483 (get_access_for_expr): Do not search for zero sized accesses.
13484
13485 2020-02-19 Martin Jambor <mjambor@suse.cz>
13486
13487 PR tree-optimization/93667
13488 * tree-sra.c (scalarizable_type_p): Return false if record fields
13489 do not follow wach other.
13490
13491 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
13492
13493 * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x
13494 rather than fmv.x.s/fmv.s.x.
13495
13496 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com>
13497
13498 * config/aarch64/aarch64-simd-builtins.def
13499 (intrinsic_vec_smult_lo_): New.
13500 (intrinsic_vec_umult_lo_): Likewise.
13501 (vec_widen_smult_hi_): Likewise.
13502 (vec_widen_umult_hi_): Likewise.
13503 * config/aarch64/aarch64-simd.md
13504 (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
13505 * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
13506 (vmull_high_s16): Likewise.
13507 (vmull_high_s32): Likewise.
13508 (vmull_high_u8): Likewise.
13509 (vmull_high_u16): Likewise.
13510 (vmull_high_u32): Likewise.
13511 (vmull_s8): Likewise.
13512 (vmull_s16): Likewise.
13513 (vmull_s32): Likewise.
13514 (vmull_u8): Likewise.
13515 (vmull_u16): Likewise.
13516 (vmull_u32): Likewise.
13517
13518 2020-02-18 Martin Liska <mliska@suse.cz>
13519
13520 * value-prof.c (stream_out_histogram_value): Restore LTO PGO
13521 bootstrap by missing removal of invalid sanity check.
13522
13523 2020-02-18 Martin Liska <mliska@suse.cz>
13524
13525 PR ipa/92518
13526 * ipa-icf-gimple.c (func_checker::compare_gimple_assign):
13527 Always compare LHS of gimple_assign.
13528
13529 2020-02-18 Martin Liska <mliska@suse.cz>
13530
13531 PR ipa/93583
13532 * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute
13533 and return type of functions.
13534 * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl):
13535 Drop MALLOC attribute for void functions.
13536 * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop
13537 malloc_state for a new VOID clone.
13538
13539 2020-02-18 Martin Liska <mliska@suse.cz>
13540
13541 PR ipa/92924
13542 * common.opt: Add -fprofile-reproducibility.
13543 * doc/invoke.texi: Document it.
13544 * value-prof.c (dump_histogram_value):
13545 Document and support behavior for counters[0]
13546 being a negative value.
13547 (get_nth_most_common_value): Handle negative
13548 counters[0] in respect to flag_profile_reproducible.
13549
13550 2020-02-18 Jakub Jelinek <jakub@redhat.com>
13551
13552 PR ipa/93797
13553 * cgraph.c (verify_speculative_call): Use speculative_id instead of
13554 speculative_uid in messages. Remove trailing whitespace from error
13555 message. Use num_speculative_call_targets instead of
13556 num_speculative_targets in a message.
13557 (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in
13558 edge messages and stmt instead of cal_stmt in reference message.
13559
13560 PR tree-optimization/93780
13561 * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p
13562 before calling build_vector_type.
13563 (execute_update_addresses_taken): Likewise.
13564
13565 PR driver/93796
13566 * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help
13567 typo, functoin -> function.
13568 * tree.c (free_lang_data_in_decl): Fix comment typo,
13569 functoin -> function.
13570 * ipa-visibility.c (cgraph_externally_visible_p): Likewise.
13571
13572 2020-02-17 David Malcolm <dmalcolm@redhat.com>
13573
13574 * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
13575 won't be printed.
13576 (print_option_information): Don't call get_option_url if URLs
13577 won't be printed.
13578
13579 2020-02-17 Alexandre Oliva <oliva@adacore.com>
13580
13581 * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
13582 handling of register_common-less targets.
13583
13584 2020-02-17 Martin Liska <mliska@suse.cz>
13585
13586 PR ipa/93760
13587 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar.
13588
13589 2020-02-17 Martin Liska <mliska@suse.cz>
13590
13591 PR translation/93755
13592 * config/rs6000/rs6000.c (rs6000_option_override_internal):
13593 Fix double quotes.
13594
13595 2020-02-17 Martin Liska <mliska@suse.cz>
13596
13597 PR other/93756
13598 * config/rx/elf.opt: Fix typo.
13599
13600 2020-02-17 Richard Biener <rguenther@suse.de>
13601
13602 PR c/86134
13603 * opts-global.c (print_ignored_options): Use inform and
13604 amend message.
13605
13606 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com>
13607
13608 PR target/93047
13609 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber.
13610
13611 2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
13612
13613 PR target/93743
13614 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
13615 (atan2<mode>3): Update operand order in the call to gen_atan2xf3.
13616
13617 2020-02-15 Jason Merrill <jason@redhat.com>
13618
13619 * doc/invoke.texi (C Dialect Options): Add -std=c++20.
13620
13621 2020-02-15 Jakub Jelinek <jakub@redhat.com>
13622
13623 PR tree-optimization/93744
13624 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
13625 A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
13626 A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
13627 sure @2 in the first and @1 in the other patterns has no side-effects.
13628
13629 2020-02-15 David Malcolm <dmalcolm@redhat.com>
13630 Bernd Edlinger <bernd.edlinger@hotmail.de>
13631
13632 PR 87488
13633 PR other/93168
13634 * config.in (DIAGNOSTICS_URLS_DEFAULT): New define.
13635 * configure.ac (--with-diagnostics-urls): New configuration
13636 option, based on --with-diagnostics-color.
13637 (DIAGNOSTICS_URLS_DEFAULT): New define.
13638 * config.h: Regenerate.
13639 * configure: Regenerate.
13640 * diagnostic.c (diagnostic_urls_init): Handle -1 for
13641 DIAGNOSTICS_URLS_DEFAULT from configure-time
13642 --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS
13643 and TERM_URLS environment variable.
13644 * diagnostic-url.h (diagnostic_url_format): New enum type.
13645 (diagnostic_urls_enabled_p): rename to...
13646 (determine_url_format): ... this, and change return type.
13647 * diagnostic-color.c (parse_env_vars_for_urls): New helper function.
13648 (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal,
13649 the linux console, and mingw.
13650 (diagnostic_urls_enabled_p): rename to...
13651 (determine_url_format): ... this, and adjust.
13652 * pretty-print.h (pretty_printer::show_urls): rename to...
13653 (pretty_printer::url_format): ... this, and change to enum.
13654 * pretty-print.c (pretty_printer::pretty_printer,
13655 pp_begin_url, pp_end_url, test_urls): Adjust.
13656 * doc/install.texi (--with-diagnostics-urls): Document the new
13657 configuration option.
13658 (--with-diagnostics-color): Document the existing interaction
13659 with GCC_COLORS better.
13660 * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS
13661 vindex reference. Update description of defaults based on the above.
13662 (-fdiagnostics-color): Update description of how -fdiagnostics-color
13663 interacts with GCC_COLORS.
13664
13665 2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
13666
13667 PR target/93704
13668 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
13669 conjunction with TARGET_GNU_TLS in early return.
13670
13671 2020-02-14 Alexander Monakov <amonakov@ispras.ru>
13672
13673 * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if
13674 the mode is not wider than UNITS_PER_WORD.
13675
13676 2020-02-14 Martin Jambor <mjambor@suse.cz>
13677
13678 PR tree-optimization/93516
13679 * tree-sra.c (propagate_subaccesses_from_rhs): Do not create
13680 access of the same type as the parent.
13681 (propagate_subaccesses_from_lhs): Likewise.
13682
13683 2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
13684
13685 PR target/93724
13686 * config/i386/avx512vbmi2intrin.h
13687 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
13688 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
13689 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
13690 _m512_shrdi_epi64, _m512_mask_shrdi_epi64,
13691 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
13692 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
13693 _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
13694 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
13695 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
13696 of lacking a closing parenthesis.
13697 * config/i386/avx512vbmi2vlintrin.h
13698 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
13699 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
13700 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
13701 _m256_shrdi_epi64, _m256_mask_shrdi_epi64,
13702 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
13703 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
13704 _mm256_shldi_epi32, _mm256_mask_shldi_epi32,
13705 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
13706 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
13707 _mm_shrdi_epi16, _mm_mask_shrdi_epi16,
13708 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
13709 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
13710 _mm_shrdi_epi64, _mm_mask_shrdi_epi64,
13711 _m_maskz_shrdi_epi64, _mm_shldi_epi16,
13712 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
13713 _mm_shldi_epi32, _mm_mask_shldi_epi32,
13714 _mm_maskz_shldi_epi32, _mm_shldi_epi64,
13715 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
13716
13717 2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
13718
13719 PR target/93656
13720 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
13721 the target function entry.
13722
13723 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13724
13725 * common/config/arc/arc-common.c (arc_option_optimization_table):
13726 Disable if-conversion step when optimized for size.
13727
13728 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13729
13730 * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and
13731 R12-R15 are always in ARCOMPACT16_REGS register class.
13732 * config/arc/arc.opt (mq-class): Deprecate.
13733 * config/arc/constraint.md ("q"): Remove dependency on mq-class
13734 option.
13735 * doc/invoke.texi (mq-class): Update text.
13736 * common/config/arc/arc-common.c (arc_option_optimization_table):
13737 Update list.
13738
13739 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13740
13741 * config/arc/arc.c (arc_insn_cost): New function.
13742 (TARGET_INSN_COST): Define.
13743 * config/arc/arc.md (cost): New attribute.
13744 (add_n): Use arc_nonmemory_operand.
13745 (ashlsi3_insn): Likewise, also update constraints.
13746 (ashrsi3_insn): Likewise.
13747 (rotrsi3): Likewise.
13748 (add_shift): Likewise.
13749 * config/arc/predicates.md (arc_nonmemory_operand): New predicate.
13750
13751 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com>
13752
13753 * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi
13754 registers.
13755 (umulsidi_600): Likewise.
13756
13757 2020-02-13 Jakub Jelinek <jakub@redhat.com>
13758
13759 PR target/93696
13760 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
13761 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
13762 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
13763 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
13764 pass __A to the builtin followed by __W instead of __A followed by
13765 __B.
13766 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
13767 _mm512_mask_popcnt_epi64): Likewise.
13768 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
13769 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
13770 _mm256_mask_popcnt_epi64): Likewise.
13771
13772 PR tree-optimization/93582
13773 * fold-const.h (shift_bytes_in_array_left,
13774 shift_bytes_in_array_right): Declare.
13775 * fold-const.c (shift_bytes_in_array_left,
13776 shift_bytes_in_array_right): New function, moved from
13777 gimple-ssa-store-merging.c, no longer static.
13778 * gimple-ssa-store-merging.c (shift_bytes_in_array): Move
13779 to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left.
13780 (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c.
13781 (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of
13782 shift_bytes_in_array.
13783 (verify_shift_bytes_in_array): Rename to ...
13784 (verify_shift_bytes_in_array_left): ... this. Use
13785 shift_bytes_in_array_left instead of shift_bytes_in_array.
13786 (store_merging_c_tests): Call verify_shift_bytes_in_array_left
13787 instead of verify_shift_bytes_in_array.
13788 * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr
13789 / native_interpret_expr where the store covers all needed bits,
13790 punt on PDP-endian, otherwise allow all involved offsets and sizes
13791 not to be byte-aligned.
13792
13793 PR target/93673
13794 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and
13795 use const_0_to_255_operand predicate instead of immediate_operand.
13796 (avx512dq_fpclass<mode><mask_scalar_merge_name>,
13797 avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
13798 vgf2p8affineinvqb_<mode><mask_name>,
13799 vgf2p8affineqb_<mode><mask_name>): Drop mode from
13800 const_0_to_255_operand predicated operands.
13801
13802 2020-02-12 Jeff Law <law@redhat.com>
13803
13804 * config/h8300/h8300.md (comparison shortening peepholes): Use
13805 a mode iterator to merge the HImode and SImode peepholes.
13806
13807 2020-02-12 Jakub Jelinek <jakub@redhat.com>
13808
13809 PR middle-end/93663
13810 * real.c (is_even): Make static. Function comment fix.
13811 (is_halfway_below): Make static, don't assert R is not inf/nan,
13812 instead return false for those. Small formatting fixes.
13813
13814 2020-02-12 Martin Sebor <msebor@redhat.com>
13815
13816 PR middle-end/93646
13817 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename...
13818 (handle_builtin_stxncpy_strncat): ...to this. Change first argument.
13819 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation.
13820 (strlen_check_and_optimize_call): Adjust callee name.
13821
13822 2020-02-12 Jeff Law <law@redhat.com>
13823
13824 * config/h8300/h8300.md (comparison shortening peepholes): Drop
13825 (and (xor)) variant. Combine other two into single peephole.
13826
13827 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
13828
13829 PR rtl-optimization/93565
13830 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs.
13831
13832 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com>
13833
13834 * config/aarch64/aarch64-simd.md
13835 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern.
13836 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of
13837 generating separate ADDV and zero_extend patterns.
13838 * config/aarch64/iterators.md (VDQV_E): New iterator.
13839
13840 2020-02-12 Jeff Law <law@redhat.com>
13841
13842 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns,
13843 expanders, splits, etc.
13844 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise.
13845 (stpcpy_internal_<mode>, stpcpy splitter): Likewise.
13846 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise.
13847 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function.
13848 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise
13849 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused
13850 function prototype.
13851 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise.
13852
13853 2020-02-12 Jakub Jelinek <jakub@redhat.com>
13854
13855 PR target/93670
13856 * config/i386/sse.md (VI48F_256_DQ): New mode iterator.
13857 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
13858 TARGET_AVX512DQ from condition.
13859 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
13860 instead of <mask_mode512bit_condition> in condition. If
13861 TARGET_AVX512DQ is false, emit vextract*64x4 instead of
13862 vextract*32x8.
13863 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
13864 from condition.
13865
13866 2020-02-12 Kewen Lin <linkw@gcc.gnu.org>
13867
13868 PR target/91052
13869 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn.
13870
13871 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org>
13872
13873 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof
13874 where strlen is more legible.
13875 (rs6000_builtin_vectorized_libmass): Ditto.
13876 (rs6000_print_options_internal): Ditto.
13877
13878 2020-02-11 Martin Sebor <msebor@redhat.com>
13879
13880 PR tree-optimization/93683
13881 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set.
13882
13883 2020-02-11 Michael Meissner <meissner@linux.ibm.com>
13884
13885 * config/rs6000/predicates.md (cint34_operand): Rename the
13886 -mprefixed-addr option to be -mprefixed.
13887 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename
13888 the -mprefixed-addr option to be -mprefixed.
13889 (OTHER_FUTURE_MASKS): Likewise.
13890 (POWERPC_MASKS): Likewise.
13891 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
13892 the -mprefixed-addr option to be -mprefixed. Change error
13893 messages to refer to -mprefixed.
13894 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be
13895 -mprefixed.
13896 (rs6000_legitimate_offset_address_p): Likewise.
13897 (rs6000_mode_dependent_address): Likewise.
13898 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be
13899 "-mprefixed" for target attributes and pragmas.
13900 (address_to_insn_form): Rename the -mprefixed-addr option to be
13901 -mprefixed.
13902 (rs6000_adjust_insn_length): Likewise.
13903 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the
13904 -mprefixed-addr option to be -mprefixed.
13905 (ASM_OUTPUT_OPCODE): Likewise.
13906 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the
13907 -mprefixed-addr option to be -mprefixed.
13908 * config/rs6000/rs6000.opt (-mprefixed): Rename the
13909 -mprefixed-addr option to be prefixed. Change the option from
13910 being undocumented to being documented.
13911 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the
13912 -mprefixed option. Update the -mpcrel documentation to mention
13913 -mprefixed.
13914
13915 2020-02-11 Hans-Peter Nilsson <hp@axis.com>
13916
13917 * ira-conflicts.c (print_hard_reg_set): Correct output for sets
13918 including FIRST_PSEUDO_REGISTER - 1.
13919 * ira-color.c (print_hard_reg_set): Ditto.
13920
13921 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com>
13922
13923 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
13924 (USTERNOP_QUALIFIERS): New define.
13925 (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
13926 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
13927 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
13928 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
13929 * config/arm/arm_neon.h (vusdot_s32): New.
13930 (vusdot_lane_s32): New.
13931 (vusdotq_lane_s32): New.
13932 (vsudot_lane_s32): New.
13933 (vsudotq_lane_s32): New.
13934 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New.
13935 * config/arm/iterators.md (DOTPROD_I8MM): New.
13936 (sup, opsuffix): Add <us/su>.
13937 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
13938 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
13939
13940 2020-02-11 Richard Biener <rguenther@suse.de>
13941
13942 PR tree-optimization/93661
13943 PR tree-optimization/93662
13944 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard
13945 tree_to_poly_int64.
13946 * tree-sra.c (get_access_for_expr): Likewise.
13947
13948 2020-02-10 Jakub Jelinek <jakub@redhat.com>
13949
13950 PR target/93637
13951 * config/i386/sse.md (VI_256_AVX2): New mode iterator.
13952 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
13953 Change condition from TARGET_AVX2 to TARGET_AVX.
13954
13955 2020-02-10 Iain Sandoe <iain@sandoe.co.uk>
13956
13957 PR other/93641
13958 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last
13959 argument of strncmp.
13960
13961 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
13962
13963 Try to generate zero-based comparisons.
13964 * config/cris/cris.c (cris_reduce_compare): New function.
13965 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype.
13966 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4")
13967 (cstore<mode>4"): Apply cris_reduce_compare in expanders.
13968
13969 2020-02-10 Richard Earnshaw <rearnsha@arm.com>
13970
13971 PR target/91913
13972 * config/arm/arm.md (movsi_compare0): Allow SP as a source register
13973 in Thumb state and also as a destination in Arm state. Add T16
13974 variants.
13975
13976 2020-02-10 Hans-Peter Nilsson <hp@axis.com>
13977
13978 * md.texi (Define Subst): Match closing paren in example.
13979
13980 2020-02-10 Jakub Jelinek <jakub@redhat.com>
13981
13982 PR target/58218
13983 PR other/93641
13984 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last
13985 arguments of strncmp.
13986
13987 2020-02-10 Feng Xue <fxue@os.amperecomputing.com>
13988
13989 PR ipa/93203
13990 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge
13991 but different source value.
13992 (adjust_callers_for_value_intersection): New function.
13993 (gather_edges_for_value): Adjust order of callers to let a
13994 non-self-recursive caller be the first element.
13995 (self_recursive_pass_through_p): Add a new parameter "simple", and
13996 check generalized self-recursive pass-through jump function.
13997 (self_recursive_agg_pass_through_p): Likewise.
13998 (find_more_scalar_values_for_callers_subset): Compute value from
13999 pass-through jump function for self-recursive.
14000 (intersect_with_plats): Cleanup previous implementation code for value
14001 itersection with self-recursive call edge.
14002 (intersect_with_agg_replacements): Likewise.
14003 (intersect_aggregates_with_edge): Deduce value from pass-through jump
14004 function for self-recursive call edge. Cleanup previous implementation
14005 code for value intersection with self-recursive call edge.
14006 (decide_whether_version_node): Remove dead callers and adjust order
14007 to let a non-self-recursive caller be the first element.
14008
14009 2020-02-09 Uroš Bizjak <ubizjak@gmail.com>
14010
14011 * recog.c: Move pass_split_before_sched2 code in front of
14012 pass_split_before_regstack.
14013 (pass_data_split_before_sched2): Rename pass to split3 from split4.
14014 (pass_data_split_before_regstack): Rename pass to split4 from split3.
14015 (rest_of_handle_split_before_sched2): Remove.
14016 (pass_split_before_sched2::execute): Unconditionally call
14017 split_all_insns.
14018 (enable_split_before_sched2): New function.
14019 (pass_split_before_sched2::gate): Use enable_split_before_sched2.
14020 (pass_split_before_regstack::gate): Ditto.
14021 * config/nds32/nds32.c (nds32_split_double_word_load_store_p):
14022 Update name check for renamed split4 pass.
14023 * config/sh/sh.c (register_sh_passes): Update pass insertion
14024 point for renamed split4 pass.
14025
14026 2020-02-09 Jakub Jelinek <jakub@redhat.com>
14027
14028 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote
14029 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid
14030 copying them around between host and target.
14031
14032 2020-02-08 Andrew Pinski <apinski@marvell.com>
14033
14034 PR target/91927
14035 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check
14036 STRICT_ALIGNMENT also.
14037
14038 2020-02-08 Jim Wilson <jimw@sifive.com>
14039
14040 PR target/93532
14041 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
14042
14043 2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
14044 Jakub Jelinek <jakub@redhat.com>
14045
14046 PR target/65782
14047 * config/i386/i386.h (CALL_USED_REGISTERS): Make
14048 xmm16-xmm31 call-used even in 64-bit ms-abi.
14049
14050 2020-02-07 Dennis Zhang <dennis.zhang@arm.com>
14051
14052 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry.
14053 (simd_ummla, simd_usmmla): Likewise.
14054 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New.
14055 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New.
14056 (vusmmlaq_s32): New.
14057
14058 2020-02-07 Richard Biener <rguenther@suse.de>
14059
14060 PR middle-end/93519
14061 * tree-inline.c (fold_marked_statements): Do a PRE walk,
14062 skipping unreachable regions.
14063 (optimize_inline_calls): Skip folding stmts when we didn't
14064 inline.
14065
14066 2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
14067
14068 PR target/85667
14069 * config/i386/i386.c (function_arg_ms_64): Add a type argument.
14070 Don't return aggregates with only SFmode and DFmode in SSE
14071 register.
14072 (ix86_function_arg): Pass arg.type to function_arg_ms_64.
14073
14074 2020-02-07 Jakub Jelinek <jakub@redhat.com>
14075
14076 PR target/93122
14077 * config/rs6000/rs6000-logue.c
14078 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn,
14079 if it fails, move rs into end_addr and retry. Add
14080 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or
14081 the insn pattern doesn't describe well what exactly happens to
14082 dwarf2cfi.c.
14083
14084 PR target/93594
14085 * config/i386/predicates.md (avx_identity_operand): Remove.
14086 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove.
14087 (avx_<castmode><avxsizesuffix>_<castmode>,
14088 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to
14089 a VEC_CONCAT of the operand and UNSPEC_CAST.
14090 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to
14091 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with
14092 UNSPEC_CAST.
14093
14094 PR target/93611
14095 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear
14096 recog_data.insn if distance_non_agu_define changed it.
14097
14098 2020-02-06 Michael Meissner <meissner@linux.ibm.com>
14099
14100 PR target/93569
14101 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0
14102 we only had X-FORM (reg+reg) addressing for vectors. Also before
14103 ISA 3.0, we only had X-FORM addressing for scalars in the
14104 traditional Altivec registers.
14105
14106 2020-02-06 <zhongyunde@huawei.com>
14107 Vladimir Makarov <vmakarov@redhat.com>
14108
14109 PR rtl-optimization/93561
14110 * lra-assigns.c (spill_for): Check that tested hard regno is not out of
14111 hard register range.
14112
14113 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
14114
14115 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type
14116 attribute.
14117
14118 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org>
14119
14120 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case
14121 where the low and the high 32 bits are equal to each other specially,
14122 with an rldimi instruction.
14123
14124 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
14125
14126 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main.
14127
14128 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com>
14129
14130 * config/arm/arm-tables.opt: Regenerate.
14131
14132 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
14133
14134 PR target/87763
14135 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare.
14136 * config/aarch64/aarch64.c (aarch64_movk_shift): New function.
14137 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern.
14138
14139 2020-02-06 Richard Sandiford <richard.sandiford@arm.com>
14140
14141 PR rtl-optimization/87763
14142 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern.
14143
14144 2020-02-06 Delia Burduv <delia.burduv@arm.com>
14145
14146 * config/aarch64/aarch64-simd-builtins.def
14147 (bfmlaq): New built-in function.
14148 (bfmlalb): New built-in function.
14149 (bfmlalt): New built-in function.
14150 (bfmlalb_lane): New built-in function.
14151 (bfmlalt_lane): New built-in function.
14152 * config/aarch64/aarch64-simd.md
14153 (aarch64_bfmmlaqv4sf): New pattern.
14154 (aarch64_bfmlal<bt>v4sf): New pattern.
14155 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern.
14156 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic.
14157 (vbfmlalbq_f32): New intrinsic.
14158 (vbfmlaltq_f32): New intrinsic.
14159 (vbfmlalbq_lane_f32): New intrinsic.
14160 (vbfmlaltq_lane_f32): New intrinsic.
14161 (vbfmlalbq_laneq_f32): New intrinsic.
14162 (vbfmlaltq_laneq_f32): New intrinsic.
14163 * config/aarch64/iterators.md (BF_MLA): New int iterator.
14164 (bt): New int attribute.
14165
14166 2020-02-06 Uroš Bizjak <ubizjak@gmail.com>
14167
14168 * config/i386/i386.md (*pushtf): Emit "#" instead of
14169 calling gcc_unreachable in insn output.
14170 (*pushxf): Ditto.
14171 (*pushdf): Ditto.
14172 (*pushsf_rex64): Ditto for alternatives other than 1.
14173 (*pushsf): Ditto for alternatives other than 1.
14174
14175 2020-02-06 Martin Liska <mliska@suse.cz>
14176
14177 PR gcov-profile/91971
14178 PR gcov-profile/93466
14179 * coverage.c (coverage_init): Revert mangling of
14180 path into filename. It can lead to huge filename length.
14181 Creation of subfolders seem more natural.
14182
14183 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com>
14184
14185 PR target/93300
14186 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New.
14187 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs.
14188 Use arm_block_arith_comp_libfuncs_for_mode for HFmode.
14189
14190 2020-02-06 Jakub Jelinek <jakub@redhat.com>
14191
14192 PR target/93594
14193 * config/i386/predicates.md (avx_identity_operand): New predicate.
14194 * config/i386/sse.md (*avx_vec_concat<mode>_1): New
14195 define_insn_and_split.
14196
14197 PR libgomp/93515
14198 * omp-low.c (use_pointer_for_field): For nested constructs, also
14199 look for map clauses on target construct.
14200 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
14201 taskreg_nesting_level.
14202
14203 PR libgomp/93515
14204 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
14205 shared clause, call omp_notice_variable on outer context if any.
14206
14207 2020-02-05 Jason Merrill <jason@redhat.com>
14208
14209 PR c++/92003
14210 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
14211 non-zero address even if weak and not yet defined.
14212
14213 2020-02-05 Martin Sebor <msebor@redhat.com>
14214
14215 PR tree-optimization/92765
14216 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL.
14217 * tree-ssa-strlen.c (compute_string_length): Remove.
14218 (determine_min_objsize): Remove.
14219 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic.
14220 Avoid using type size as the upper bound on string length.
14221 (handle_builtin_string_cmp): Add an argument. Adjust.
14222 (strlen_check_and_optimize_call): Pass additional argument to
14223 handle_builtin_string_cmp.
14224
14225 2020-02-05 Uroš Bizjak <ubizjak@gmail.com>
14226
14227 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
14228 (*pushdi2_rex64 peephole2): Unconditionally split after
14229 epilogue_completed.
14230 (*ashl<mode>3_doubleword): Ditto.
14231 (*<shift_insn><mode>3_doubleword): Ditto.
14232
14233 2020-02-05 Michael Meissner <meissner@linux.ibm.com>
14234
14235 PR target/93568
14236 * config/rs6000/rs6000.c (get_vector_offset): Fix
14237
14238 2020-02-05 Andrew Stubbs <ams@codesourcery.com>
14239
14240 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space.
14241
14242 2020-02-05 David Malcolm <dmalcolm@redhat.com>
14243
14244 * doc/analyzer.texi
14245 (Special Functions for Debugging the Analyzer): Update description
14246 of __analyzer_dump_exploded_nodes.
14247
14248 2020-02-05 Jakub Jelinek <jakub@redhat.com>
14249
14250 PR target/92190
14251 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only
14252 include sets and not clobbers in the vzeroupper pattern.
14253 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that
14254 the parallel has 17 (64-bit) or 9 (32-bit) elts.
14255 (*avx_vzeroupper_1): New define_insn_and_split.
14256
14257 PR target/92190
14258 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
14259 don't run when !optimize.
14260 (pass_split_before_regstack::gate): For STACK_REGS targets, run even
14261 when !optimize.
14262
14263 2020-02-05 Richard Biener <rguenther@suse.de>
14264
14265 PR middle-end/90648
14266 * genmatch.c (dt_node::gen_kids_1): Emit number of argument
14267 checks before matching calls.
14268
14269 2020-02-05 Jakub Jelinek <jakub@redhat.com>
14270
14271 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up
14272 function comment typo.
14273
14274 PR middle-end/93555
14275 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
14276 simd_clone_create failed when i == 0, adjust clone->nargs by
14277 clone->inbranch.
14278
14279 2020-02-05 Martin Liska <mliska@suse.cz>
14280
14281 PR c++/92717
14282 * doc/invoke.texi: Document that one should
14283 not combine ASLR and -fpch.
14284
14285 2020-02-04 Richard Biener <rguenther@suse.de>
14286
14287 PR tree-optimization/93538
14288 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr.
14289
14290 2020-02-04 Richard Biener <rguenther@suse.de>
14291
14292 PR tree-optimization/91123
14293 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method.
14294 (vn_walk_cb_data::last_vuse): New member.
14295 (vn_walk_cb_data::saved_operands): Likewsie.
14296 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands.
14297 (vn_walk_cb_data::push_partial_def): Use finish.
14298 (vn_reference_lookup_2): Update last_vuse and use finish if
14299 we've saved operands.
14300 (vn_reference_lookup_3): Use finish and update calls to
14301 push_partial_defs everywhere. When translating through
14302 memcpy or aggregate copies save off operands and alias-set.
14303 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE
14304 operation for redundant store removal.
14305
14306 2020-02-04 Richard Biener <rguenther@suse.de>
14307
14308 PR tree-optimization/92819
14309 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid
14310 generating more stmts than before.
14311
14312 2020-02-04 Martin Liska <mliska@suse.cz>
14313
14314 * config/arm/arm.c (arm_gen_far_branch): Move the function
14315 outside of selftests.
14316
14317 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14318
14319 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper
14320 function to adjust PC-relative vector addresses.
14321 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to
14322 handle vectors with PC-relative addresses.
14323
14324 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14325
14326 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward
14327 reference.
14328 (hard_reg_and_mode_to_addr_mask): Delete.
14329 (rs6000_adjust_vec_address): If the original vector address
14330 was REG+REG or REG+OFFSET and the element is not zero, do the add
14331 of the elements in the original address before adding the offset
14332 for the vector element. Use address_to_insn_form to validate the
14333 address using the register being loaded, rather than guessing
14334 whether the address is a DS-FORM or DQ-FORM address.
14335
14336 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14337
14338 * config/rs6000/rs6000.c (get_vector_offset): New helper function
14339 to calculate the offset in memory from the start of a vector of a
14340 particular element. Add code to keep the element number in
14341 bounds if the element number is variable.
14342 (rs6000_adjust_vec_address): Move calculation of offset of the
14343 vector element to get_vector_offset.
14344 (rs6000_split_vec_extract_var): Do not do the initial AND of
14345 element here, move the code to get_vector_offset.
14346
14347 2020-02-03 Michael Meissner <meissner@linux.ibm.com>
14348
14349 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some
14350 gcc_asserts.
14351
14352 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org>
14353
14354 * config/rs6000/constraints.md: Improve documentation.
14355
14356 2020-02-03 Richard Earnshaw <rearnsha@arm.com>
14357
14358 PR target/93548
14359 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md)
14360 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change.
14361
14362 2020-02-03 Andrew Stubbs <ams@codesourcery.com>
14363
14364 * config.gcc: Remove "carrizo" support.
14365 * config/gcn/gcn-opts.h (processor_type): Likewise.
14366 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise.
14367 * config/gcn/gcn.opt (gpu_type): Likewise.
14368 * config/gcn/t-omp-device: Likewise.
14369
14370 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com>
14371
14372 PR target/91816
14373 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
14374 * config/arm/arm.c (arm_gen_far_branch): New function
14375 arm_gen_far_branch.
14376 * config/arm/arm.md: Update b<cond> for Thumb2 range checks.
14377
14378 2020-02-03 Julian Brown <julian@codesourcery.com>
14379 Tobias Burnus <tobias@codesourcery.com>
14380
14381 * doc/invoke.texi: Update mention of OpenACC version to 2.6.
14382
14383 2020-02-03 Jakub Jelinek <jakub@redhat.com>
14384
14385 PR target/93533
14386 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit
14387 valid RTL to sum up the lowest and second lowest bytes of the popcnt
14388 result.
14389
14390 2020-02-02 Vladimir Makarov <vmakarov@redhat.com>
14391
14392 PR rtl-optimization/91333
14393 * ira-color.c (struct allocno_color_data): Add member
14394 hard_reg_prefs.
14395 (init_allocno_threads): Set the member up.
14396 (bucket_allocno_compare_func): Add compare hard reg
14397 prefs.
14398
14399 2020-01-31 Sandra Loosemore <sandra@codesourcery.com>
14400
14401 nios2: Support for GOT-relative DW_EH_PE_datarel encoding.
14402
14403 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION.
14404 * config.in: Regenerated.
14405 * configure: Regenerated.
14406 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling
14407 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION.
14408 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
14409
14410 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
14411
14412 * configure: Regenerate.
14413
14414 2020-01-31 Vladimir Makarov <vmakarov@redhat.com>
14415
14416 PR rtl-optimization/91333
14417 * ira-color.c (bucket_allocno_compare_func): Move conflict hard
14418 reg preferences comparison up.
14419
14420 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
14421
14422 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro.
14423 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to
14424 aarch64-sve-builtins-base.h.
14425 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to
14426 aarch64-sve-builtins-base.cc.
14427 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane)
14428 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
14429 (svcvtnt): Declare.
14430 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane)
14431 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
14432 (svcvtnt): New functions.
14433 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane)
14434 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla)
14435 (svcvtnt): New functions.
14436 (svcvt): Add a form that converts f32 to bf16.
14437 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat)
14438 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n):
14439 Declare.
14440 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
14441 Treat B as bfloat16_t.
14442 (ternary_bfloat_lane_base): New class.
14443 (ternary_bfloat_def): Likewise.
14444 (ternary_bfloat): New shape.
14445 (ternary_bfloat_lane_def): New class.
14446 (ternary_bfloat_lane): New shape.
14447 (ternary_bfloat_lanex2_def): New class.
14448 (ternary_bfloat_lanex2): New shape.
14449 (ternary_bfloat_opt_n_def): New class.
14450 (ternary_bfloat_opt_n): New shape.
14451 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro.
14452 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf)
14453 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns.
14454 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>)
14455 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
14456 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise.
14457 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise.
14458 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key
14459 the pattern off the narrow mode instead of the wider one.
14460 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator.
14461 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs.
14462 (sve_fp_op): Handle them.
14463 (SVE_BFLOAT_TERNARY_LONG): New int itertor.
14464 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
14465
14466 2020-01-31 Richard Sandiford <richard.sandiford@arm.com>
14467
14468 * config/aarch64/arm_sve.h: Include arm_bf16.h.
14469 * config/aarch64/aarch64-modes.def (BF): Move definition before
14470 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF.
14471 (SVE_MODES): Handle BF modes.
14472 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
14473 BF modes.
14474 (aarch64_full_sve_mode): Likewise.
14475 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF
14476 and VNx32BF.
14477 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF.
14478 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore)
14479 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count)
14480 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the
14481 new SVE BF modes.
14482 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New
14483 type_class_index.
14484 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro.
14485 (TYPES_all_data): Add bf16.
14486 (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
14487 (register_tuple_type): Increase buffer size.
14488 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type.
14489 (bf16): New type suffix.
14490 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv)
14491 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax)
14492 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr):
14493 Change type from all_data to all_arith.
14494 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp)
14495 (svminp): Likewise.
14496
14497 2020-01-31 Dennis Zhang <dennis.zhang@arm.com>
14498 Matthew Malcomson <matthew.malcomson@arm.com>
14499 Richard Sandiford <richard.sandiford@arm.com>
14500
14501 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension.
14502 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
14503 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and
14504 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define
14505 __ARM_FEATURE_MATMUL_FP64.
14506 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16)
14507 (sve): Add AARCH64_FL_F32MM to the list of extensions that should
14508 be disabled at the same time.
14509 (f32mm): New extension.
14510 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro.
14511 (AARCH64_FL_F64MM): Bump to the next bit up.
14512 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM)
14513 (TARGET_SVE_F64MM): New macros.
14514 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator.
14515 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL)
14516 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q)
14517 (UNSPEC_ZIP2Q): New unspeccs.
14518 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators.
14519 (optab, sur, perm_insn): Handle the new unspecs.
14520 (sve_fp_op): Handle UNSPEC_FMMLA. Resort.
14521 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use
14522 TARGET_SVE_F64MM instead of separate tests.
14523 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern.
14524 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise.
14525 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise.
14526 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise.
14527 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise.
14528 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro.
14529 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it.
14530 (TYPES_s_signed): New macro.
14531 (TYPES_s_integer): Use it.
14532 (TYPES_d_float): New macro.
14533 (TYPES_d_data): Use it.
14534 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare.
14535 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq)
14536 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise.
14537 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class.
14538 (svmmla): New shape.
14539 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3
14540 template parameters.
14541 (ternary_resize2_lane_base): Likewise.
14542 (ternary_resize2_base): New class.
14543 (ternary_qq_lane_base): Likewise.
14544 (ternary_intq_uintq_lane_def): Likewise.
14545 (ternary_intq_uintq_lane): New shape.
14546 (ternary_intq_uintq_opt_n_def): New class
14547 (ternary_intq_uintq_opt_n): New shape.
14548 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base.
14549 (ternary_uintq_intq_def): New class.
14550 (ternary_uintq_intq): New shape.
14551 (ternary_uintq_intq_lane_def): New class.
14552 (ternary_uintq_intq_lane): New shape.
14553 (ternary_uintq_intq_opt_n_def): New class.
14554 (ternary_uintq_intq_opt_n): New shape.
14555 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot)
14556 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla)
14557 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare.
14558 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl):
14559 Generalize to...
14560 (svdotprod_lane_impl): ...this new class.
14561 (svmmla_impl, svusdot_impl): New classes.
14562 (svdot_lane): Update to use svdotprod_lane_impl.
14563 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot)
14564 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New
14565 functions.
14566 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base
14567 function, with no types defined.
14568 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New
14569 AARCH64_FL_I8MM functions.
14570 (svmmla): New AARCH64_FL_F32MM function.
14571 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6.
14572 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New
14573 AARCH64_FL_F64MM function.
14574 (REQUIRED_EXTENSIONS):
14575
14576 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
14577
14578 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
14579 alternative only.
14580
14581 2020-01-31 Uroš Bizjak <ubizjak@gmail.com>
14582
14583 * config/i386/i386.md (*movoi_internal_avx): Do not check for
14584 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling.
14585 (*movti_internal): Do not check for
14586 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
14587 (*movtf_internal): Move check for TARGET_SSE2 and size optimization
14588 just after check for TARGET_AVX.
14589 (*movdf_internal): Ditto.
14590 * config/i386/mmx.md (*mov<mode>_internal): Do not check for
14591 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
14592 * config/i386/sse.md (mov<mode>_internal): Only check
14593 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check
14594 for TARGET_SSE2 and size optimization just after check for TARGET_AVX.
14595 (<sse>_andnot<mode>3<mask_name>): Move check for
14596 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX.
14597 (<code><mode>3<mask_name>): Ditto.
14598 (*andnot<mode>3): Ditto.
14599 (*andnottf3): Ditto.
14600 (*<code><mode>3): Ditto.
14601 (*<code>tf3): Ditto.
14602 (*andnot<VI:mode>3): Remove
14603 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling.
14604 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto.
14605 (*<code><VI12_AVX_AVX512F:mode>3): Ditto.
14606 (sse4_1_blendv<ssemodesuffix>): Ditto.
14607 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL):
14608 Explain that tune applies to 128bit instructions only.
14609
14610 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
14611
14612 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count
14613 to definition of hsa_kernel_description. Parse assembly to find SGPR
14614 and VGPR count of kernel and store in hsa_kernel_description.
14615
14616 2020-01-31 Tamar Christina <tamar.christina@arm.com>
14617
14618 PR rtl-optimization/91838
14619 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
14620 to truncate if allowed or reject combination.
14621
14622 2020-01-31 Andrew Stubbs <ams@codesourcery.com>
14623
14624 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step.
14625 (find_inv_vars_cb): Likewise.
14626
14627 2020-01-31 David Malcolm <dmalcolm@redhat.com>
14628
14629 * calls.c (special_function_p): Split out the check for DECL_NAME
14630 being non-NULL and fndecl being extern at file scope into a
14631 new maybe_special_function_p and call it. Drop check for fndecl
14632 being non-NULL that was after a usage of DECL_NAME (fndecl).
14633 * tree.h (maybe_special_function_p): New inline function.
14634
14635 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
14636
14637 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ...
14638 (mask_gather_load<mode>): ... here, and zero-initialize the
14639 destination.
14640 (maskload<mode>di): Zero-initialize the destination.
14641 * config/gcn/gcn.c:
14642
14643 2020-01-30 David Malcolm <dmalcolm@redhat.com>
14644
14645 PR analyzer/93356
14646 * doc/analyzer.texi (Limitations): Note that constraints on
14647 floating-point values are currently ignored.
14648
14649 2020-01-30 Jakub Jelinek <jakub@redhat.com>
14650
14651 PR lto/93384
14652 * symtab.c (symtab_node::noninterposable_alias): If localalias
14653 already exists, but is not usable, append numbers after it until
14654 a unique name is found. Formatting fix.
14655
14656 PR middle-end/93505
14657 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
14658 rotate counts.
14659
14660 2020-01-30 Andrew Stubbs <ams@codesourcery.com>
14661
14662 * config/gcn/gcn.c (print_operand): Handle LTGT.
14663 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt.
14664
14665 2020-01-30 Richard Biener <rguenther@suse.de>
14666
14667 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST
14668 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE.
14669
14670 2020-01-30 John David Anglin <danglin@gcc.gnu.org>
14671
14672 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
14673 without a DECL in .data.rel.ro.local.
14674
14675 2020-01-30 Jakub Jelinek <jakub@redhat.com>
14676
14677 PR target/93494
14678 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4
14679 returned.
14680
14681 PR target/91824
14682 * config/i386/sse.md
14683 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ...
14684 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use
14685 any_extend code iterator instead of always zero_extend.
14686 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ...
14687 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this.
14688 Use any_extend code iterator instead of always zero_extend.
14689 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ...
14690 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this.
14691 Use any_extend code iterator instead of always zero_extend.
14692 (*sse2_pmovmskb_ext): New define_insn.
14693 (*sse2_pmovmskb_ext_lt): New define_insn_and_split.
14694
14695 PR target/91824
14696 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split.
14697 (*popcountsi2_zext_falsedep): New define_insn.
14698
14699 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
14700
14701 * config.in: Regenerated.
14702 * configure: Regenerated.
14703
14704 2020-01-29 Tobias Burnus <tobias@codesourcery.com>
14705
14706 PR bootstrap/93409
14707 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as
14708 LLVM's assembler changed the default in version 9.
14709
14710 2020-01-24 Jeff Law <law@redhat.com>
14711
14712 PR tree-optimization/89689
14713 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure.
14714
14715 2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
14716
14717 Revert:
14718
14719 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
14720
14721 PR rtl-optimization/87763
14722 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
14723 simplification to handle subregs as well as bare regs.
14724 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
14725
14726 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
14727
14728 PR target/93221
14729 * ira.c (ira): Revert use of simplified LRA algorithm.
14730
14731 2020-01-29 Martin Jambor <mjambor@suse.cz>
14732
14733 PR tree-optimization/92706
14734 * tree-sra.c (struct access): Fields first_link, last_link,
14735 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link,
14736 next_rhs_queued and grp_rhs_queued respectively, new fields
14737 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued.
14738 (struct assign_link): Field next renamed to next_rhs, new field
14739 next_lhs. Updated comment.
14740 (work_queue_head): Renamed to rhs_work_queue_head.
14741 (lhs_work_queue_head): New variable.
14742 (add_link_to_lhs): New function.
14743 (relink_to_new_repr): Also relink LHS lists.
14744 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue.
14745 (add_access_to_lhs_work_queue): New function.
14746 (pop_access_from_work_queue): Renamed to
14747 pop_access_from_rhs_work_queue.
14748 (pop_access_from_lhs_work_queue): New function.
14749 (build_accesses_from_assign): Also add links to LHS lists and to LHS
14750 work_queue.
14751 (child_would_conflict_in_lacc): Renamed to
14752 child_would_conflict_in_acc. Adjusted parameter names.
14753 (create_artificial_child_access): New parameter set_grp_read, use it.
14754 (subtree_mark_written_and_enqueue): Renamed to
14755 subtree_mark_written_and_rhs_enqueue.
14756 (propagate_subaccesses_across_link): Renamed to
14757 propagate_subaccesses_from_rhs.
14758 (propagate_subaccesses_from_lhs): New function.
14759 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to
14760 RHSs.
14761
14762 2020-01-29 Martin Jambor <mjambor@suse.cz>
14763
14764 PR tree-optimization/92706
14765 * tree-sra.c (struct access): Adjust comment of
14766 grp_total_scalarization.
14767 (find_access_in_subtree): Look for single children spanning an entire
14768 access.
14769 (scalarizable_type_p): Allow register accesses, adjust callers.
14770 (completely_scalarize): Remove function.
14771 (scalarize_elem): Likewise.
14772 (create_total_scalarization_access): Likewise.
14773 (sort_and_splice_var_accesses): Do not track total scalarization
14774 flags.
14775 (analyze_access_subtree): New parameter totally, adjust to new meaning
14776 of grp_total_scalarization.
14777 (analyze_access_trees): Pass new parameter to analyze_access_subtree.
14778 (can_totally_scalarize_forest_p): New function.
14779 (create_total_scalarization_access): Likewise.
14780 (create_total_access_and_reshape): Likewise.
14781 (total_should_skip_creating_access): Likewise.
14782 (totally_scalarize_subtree): Likewise.
14783 (analyze_all_variable_accesses): Perform total scalarization after
14784 subaccess propagation using the new functions above.
14785 (initialize_constant_pool_replacements): Output initializers by
14786 traversing the access tree.
14787
14788 2020-01-29 Martin Jambor <mjambor@suse.cz>
14789
14790 * tree-sra.c (verify_sra_access_forest): New function.
14791 (verify_all_sra_access_forests): Likewise.
14792 (create_artificial_child_access): Set parent.
14793 (analyze_all_variable_accesses): Call the verifier.
14794
14795 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14796
14797 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge
14798 if called on indirect edge.
14799 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of
14800 speculative call if needed.
14801
14802 2020-01-29 Richard Biener <rguenther@suse.de>
14803
14804 PR tree-optimization/93428
14805 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load
14806 permutation when the load node is created.
14807 (vect_analyze_slp_instance): Re-use it here.
14808
14809 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14810
14811 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning.
14812
14813 2020-01-28 Vladimir Makarov <vmakarov@redhat.com>
14814
14815 PR rtl-optimization/93272
14816 * ira-lives.c (process_out_of_region_eh_regs): New function.
14817 (process_bb_node_lives): Call it.
14818
14819 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14820
14821 * coverage.c (read_counts_file): Make error message lowercase.
14822
14823 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14824
14825 * profile-count.c (profile_quality_display_names): Fix ordering.
14826
14827 2020-01-28 Jan Hubicka <hubicka@ucw.cz>
14828
14829 PR lto/93318
14830 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site
14831 hash only when edge is first within the sequence.
14832 (cgraph_edge::set_call_stmt): Update handling of speculative calls.
14833 (symbol_table::create_edge): Do not set target_prob.
14834 (cgraph_edge::remove_caller): Watch for speculative calls when updating
14835 the call site hash.
14836 (cgraph_edge::make_speculative): Drop target_prob parameter.
14837 (cgraph_edge::speculative_call_info): Remove.
14838 (cgraph_edge::first_speculative_call_target): New member function.
14839 (update_call_stmt_hash_for_removing_direct_edge): New function.
14840 (cgraph_edge::resolve_speculation): Rewrite to new API.
14841 (cgraph_edge::speculative_call_for_target): New member function.
14842 (cgraph_edge::make_direct): Rewrite to new API; fix handling of
14843 multiple speculation targets.
14844 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating
14845 of profile.
14846 (verify_speculative_call): Verify that targets form an interval.
14847 * cgraph.h (cgraph_edge::speculative_call_info): Remove.
14848 (cgraph_edge::first_speculative_call_target): New member function.
14849 (cgraph_edge::next_speculative_call_target): New member function.
14850 (cgraph_edge::speculative_call_target_ref): New member function.
14851 (cgraph_edge;:speculative_call_indirect_edge): New member funtion.
14852 (cgraph_edge): Remove target_prob.
14853 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
14854 Fix handling of speculative calls.
14855 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals.
14856 * ipa-fnsummary.c (analyze_function_body): Likewise.
14857 * ipa-inline.c (speculation_useful_p): Use new speculative call API.
14858 * ipa-profile.c (dump_histogram): Fix formating.
14859 (ipa_profile_generate_summary): Watch for overflows.
14860 (ipa_profile): Do not require probablity to be 1/2; update to new API.
14861 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API.
14862 (update_indirect_edges_after_inlining): Update to new API.
14863 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call
14864 profiles.
14865 * profile-count.h: (profile_probability::adjusted): New.
14866 * tree-inline.c (copy_bb): Update to new speculative call API; fix
14867 updating of profile.
14868 * value-prof.c (gimple_ic_transform): Rename to ...
14869 (dump_ic_profile): ... this one; update dumping.
14870 (stream_in_histogram_value): Fix formating.
14871 (gimple_value_profile_transformations): Update.
14872
14873 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
14874
14875 PR target/91461
14876 * config/i386/i386.md (*movoi_internal_avx): Remove
14877 TARGET_SSE_TYPELESS_STORES check.
14878 (*movti_internal): Prefer TARGET_AVX over
14879 TARGET_SSE_TYPELESS_STORES.
14880 (*movtf_internal): Likewise.
14881 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over
14882 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check
14883 from TARGET_SSE_TYPELESS_STORES.
14884
14885 2020-01-28 David Malcolm <dmalcolm@redhat.com>
14886
14887 * diagnostic-core.h (warning_at): Rename overload to...
14888 (warning_meta): ...this.
14889 (emit_diagnostic_valist): Delete decl of overload taking
14890 diagnostic_metadata.
14891 * diagnostic.c (emit_diagnostic_valist): Likewise for defn.
14892 (warning_at): Rename overload taking diagnostic_metadata to...
14893 (warning_meta): ...this.
14894
14895 2020-01-28 Richard Biener <rguenther@suse.de>
14896
14897 PR tree-optimization/93439
14898 * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
14899 * tree-cfg.c (move_sese_region_to_fn): ... here.
14900 (verify_types_in_gimple_reference): Verify used cliques are
14901 tracked.
14902
14903 2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
14904
14905 PR target/91399
14906 * config/i386/i386-options.c (set_ix86_tune_features): Add an
14907 argument of a pointer to struct gcc_options and pass it to
14908 parse_mtune_ctrl_str.
14909 (ix86_function_specific_restore): Pass opts to
14910 set_ix86_tune_features.
14911 (ix86_option_override_internal): Likewise.
14912 (parse_mtune_ctrl_str): Add an argument of a pointer to struct
14913 gcc_options and use it for x_ix86_tune_ctrl_string.
14914
14915 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
14916
14917 PR rtl-optimization/87763
14918 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
14919 simplification to handle subregs as well as bare regs.
14920 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
14921
14922 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
14923
14924 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully
14925 for reduction chains that (now) include a call.
14926
14927 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
14928
14929 PR tree-optimization/92822
14930 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling
14931 out the don't-care elements of a vector whose significant elements
14932 are duplicates, make the don't-care elements duplicates too.
14933
14934 2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
14935
14936 PR tree-optimization/93434
14937 * tree-predcom.c (split_data_refs_to_components): Record which
14938 components have had aliasing loads removed. Prevent store-store
14939 commoning for all such components.
14940
14941 2020-01-28 Jakub Jelinek <jakub@redhat.com>
14942
14943 PR target/93418
14944 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
14945 -1 or is_vshift is true, use new_vector with number of elts npatterns
14946 rather than new_unary_operation.
14947
14948 PR tree-optimization/93454
14949 * gimple-fold.c (fold_array_ctor_reference): Perform
14950 elt_size.to_uhwi () just once, instead of calling it in every
14951 iteration. Punt if that value is above size of the temporary
14952 buffer. Decrease third native_encode_expr argument when
14953 bufoff + elt_sz is above size of buf.
14954
14955 2020-01-27 Joseph Myers <joseph@codesourcery.com>
14956
14957 * config/mips/mips.c (mips_declare_object_name)
14958 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object.
14959
14960 2020-01-27 Martin Liska <mliska@suse.cz>
14961
14962 PR gcov-profile/93403
14963 * tree-profile.c (gimple_init_gcov_profiler): Generate
14964 both __gcov_indirect_call_profiler_v4 and
14965 __gcov_indirect_call_profiler_v4_atomic.
14966
14967 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
14968
14969 PR target/92822
14970 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New
14971 expander.
14972 (@aarch64_split_simd_mov<mode>): Use it.
14973 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative.
14974 Leave the vec_extract patterns to handle 2-element vectors.
14975 (aarch64_simd_mov_from_<mode>high): Likewise.
14976 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander.
14977 (vec_extractv2dfv1df): Likewise.
14978
14979 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
14980
14981 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match
14982 jump conditions for *compare_condjump<GPI:mode>.
14983
14984 2020-01-27 David Malcolm <dmalcolm@redhat.com>
14985
14986 PR analyzer/93276
14987 * digraph.cc (test_edge::test_edge): Specify template for base
14988 class initializer.
14989
14990 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
14991
14992 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost.
14993
14994 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
14995
14996 * config/arc/arc-protos.h (gen_mlo): Remove.
14997 (gen_mhi): Likewise.
14998 * config/arc/arc.c (AUX_MULHI): Define.
14999 (arc_must_save_reister): Special handling for r58/59.
15000 (arc_compute_frame_size): Consider mlo/mhi registers.
15001 (arc_save_callee_saves): Emit fp/sp move only when emit_move
15002 paramter is true.
15003 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from
15004 mlo/mhi name selection.
15005 (arc_restore_callee_saves): Don't early restore blink when ISR.
15006 (arc_expand_prologue): Add mlo/mhi saving.
15007 (arc_expand_epilogue): Add mlo/mhi restoring.
15008 (gen_mlo): Remove.
15009 (gen_mhi): Remove.
15010 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register
15011 numbering when MUL64 option is used.
15012 (DWARF2_FRAME_REG_OUT): Define.
15013 * config/arc/arc.md (arc600_stall): New pattern.
15014 (VUNSPEC_ARC_ARC600_STALL): Define.
15015 (mulsi64): Use correct mlo/mhi registers.
15016 (mulsi_600): Clean it up.
15017 * config/arc/predicates.md (mlo_operand): Remove any dependency on
15018 TARGET_BIG_ENDIAN.
15019 (mhi_operand): Likewise.
15020
15021 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com>
15022 Petro Karashchenko <petro.karashchenko@ring.com>
15023
15024 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct
15025 attributes if needed.
15026 (prepare_move_operands): Generate special unspec instruction for
15027 direct access.
15028 (arc_isuncached_mem_p): Propagate uncached attribute to each
15029 structure member.
15030 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define.
15031 (VUNSPEC_ARC_STDI): Likewise.
15032 (ALLI): New mode iterator.
15033 (mALLI): New mode attribute.
15034 (lddi): New instruction pattern.
15035 (stdi): Likewise.
15036 (stdidi_split): Split instruction for architectures which are not
15037 supporting ll64 option.
15038 (lddidi_split): Likewise.
15039
15040 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15041
15042 PR rtl-optimization/92989
15043 * lra-lives.c (process_bb_lives): Update the live-in set before
15044 processing additional clobbers.
15045
15046 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15047
15048 PR rtl-optimization/93170
15049 * cselib.c (cselib_invalidate_regno_val): New function, split out
15050 from...
15051 (cselib_invalidate_regno): ...here.
15052 (cselib_invalidated_by_call_p): New function.
15053 (cselib_process_insn): Iterate over all the hard-register entries in
15054 REG_VALUES and invalidate any that cross call-clobbered registers.
15055
15056 2020-01-27 Richard Sandiford <richard.sandiford@arm.com>
15057
15058 * dojump.c (split_comparison): Use HONOR_NANS rather than
15059 HONOR_SNANS when splitting LTGT.
15060
15061 2020-01-27 Martin Liska <mliska@suse.cz>
15062
15063 PR driver/91220
15064 * opts.c (print_filtered_help): Exclude language-specific
15065 options from --help=common unless enabled in all FEs.
15066
15067 2020-01-27 Martin Liska <mliska@suse.cz>
15068
15069 * opts.c (print_help): Exclude params from
15070 all except --help=param.
15071
15072 2020-01-27 Martin Liska <mliska@suse.cz>
15073
15074 PR target/93274
15075 * config/i386/i386-features.c (make_resolver_func):
15076 Align the code with ppc64 target implementation.
15077 Do not generate a unique name for resolver function.
15078
15079 2020-01-27 Richard Biener <rguenther@suse.de>
15080
15081 PR tree-optimization/93397
15082 * tree-vect-slp.c (vect_analyze_slp_instance): Delay
15083 converted reduction chain SLP graph adjustment.
15084
15085 2020-01-26 Marek Polacek <polacek@redhat.com>
15086
15087 PR sanitizer/93436
15088 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
15089 null DECL_NAME.
15090
15091 2020-01-26 Jason Merrill <jason@redhat.com>
15092
15093 PR c++/92601
15094 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
15095 of complete types.
15096
15097 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com>
15098
15099 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint
15100 (rx_setmem): Likewise.
15101
15102 2020-01-26 Jakub Jelinek <jakub@redhat.com>
15103
15104 PR target/93412
15105 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
15106 Use nonimmediate_operand instead of x86_64_hilo_general_operand and
15107 drop <di> from constraint of last operand.
15108
15109 PR target/93430
15110 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
15111 TARGET_AVX2 and V4DFmode not in the split condition, but in the
15112 pattern condition, though allow { 0, 0, 0, 0 } broadcast always.
15113
15114 2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
15115
15116 PR ipa/93166
15117 * ipa-cp.c (get_info_about_necessary_edges): Remove value
15118 check assertion.
15119
15120 2020-01-24 Jeff Law <law@redhat.com>
15121
15122 PR tree-optimization/92788
15123 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX
15124 not EDGE_ABNORMAL.
15125
15126 2020-01-24 Jakub Jelinek <jakub@redhat.com>
15127
15128 PR target/93395
15129 * config/i386/sse.md (*avx_vperm_broadcast_v4sf,
15130 *avx_vperm_broadcast_<mode>,
15131 <sse2_avx_avx512f>_vpermil<mode><mask_name>,
15132 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>):
15133 Move before avx2_perm<mode>/avx512f_perm<mode>.
15134
15135 PR target/93376
15136 * simplify-rtx.c (simplify_const_unary_operation,
15137 simplify_const_binary_operation): Punt for mode precision above
15138 MAX_BITSIZE_MODE_ANY_INT.
15139
15140 2020-01-24 Andrew Pinski <apinski@marvell.com>
15141
15142 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change
15143 alu.shift_reg to 0.
15144
15145 2020-01-24 Jeff Law <law@redhat.com>
15146
15147 PR target/13721
15148 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg
15149 for REGs. Call output_operand_lossage to get more reasonable
15150 diagnostics.
15151
15152 2020-01-24 Andrew Stubbs <ams@codesourcery.com>
15153
15154 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use
15155 gcn_fp_compare_operator.
15156 (vec_cmpu<mode>di): Use gcn_compare_operator.
15157 (vec_cmp<u>v64qidi): Use gcn_compare_operator.
15158 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator.
15159 (vec_cmpu<mode>di_exec): Use gcn_compare_operator.
15160 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator.
15161 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator.
15162 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator.
15163 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use
15164 gcn_fp_compare_operator.
15165 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use
15166 gcn_fp_compare_operator.
15167 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use
15168 gcn_fp_compare_operator.
15169 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use
15170 gcn_fp_compare_operator.
15171
15172 2020-01-24 Maciej W. Rozycki <macro@wdc.com>
15173
15174 * doc/install.texi (Cross-Compiler-Specific Options): Document
15175 `--with-toolexeclibdir' option.
15176
15177 2020-01-24 Hans-Peter Nilsson <hp@axis.com>
15178
15179 * target.def (flags_regnum): Also mention effect on delay slot filling.
15180 * doc/tm.texi: Regenerate.
15181
15182 2020-01-23 Jeff Law <law@redhat.com>
15183
15184 PR translation/90162
15185 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
15186
15187 2020-01-23 Mikael Tillenius <mti-1@tillenius.com>
15188
15189 PR target/92269
15190 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
15191 profiling label
15192
15193 2020-01-23 Jakub Jelinek <jakub@redhat.com>
15194
15195 PR rtl-optimization/93402
15196 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust
15197 USE insns.
15198
15199 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
15200
15201 * config.in: Regenerated.
15202 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
15203 for TARGET_LIBC_GNUSTACK.
15204 * configure: Regenerated.
15205 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
15206 found to be 2.31 or greater.
15207
15208 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
15209
15210 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
15211 TARGET_SOFT_FLOAT.
15212 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
15213 (mips_asm_file_end): New function. Delegate to
15214 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
15215 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
15216
15217 2020-01-23 Jakub Jelinek <jakub@redhat.com>
15218
15219 PR target/93376
15220 * config/i386/i386-modes.def (POImode): New mode.
15221 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
15222 * config/i386/i386.md (DPWI): New mode attribute.
15223 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
15224 (QWI): Rename to...
15225 (QPWI): ... this. Use POI instead of OI for TImode.
15226 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
15227 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
15228 instead of <QWI>.
15229
15230 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
15231
15232 PR target/93341
15233 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
15234 unspec.
15235 (speculation_tracker_rev): New pattern.
15236 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
15237 Use speculation_tracker_rev to track the inverse condition.
15238
15239 2020-01-23 Richard Biener <rguenther@suse.de>
15240
15241 PR tree-optimization/93381
15242 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
15243 alias-set of the def as argument and record the first one.
15244 (vn_walk_cb_data::first_set): New member.
15245 (vn_reference_lookup_3): Pass the alias-set of the current def
15246 to push_partial_def. Fix alias-set used in the aggregate copy
15247 case.
15248 (vn_reference_lookup): Consistently set *last_vuse_ptr.
15249 * real.c (clear_significand_below): Fix out-of-bound access.
15250
15251 2020-01-23 Jakub Jelinek <jakub@redhat.com>
15252
15253 PR target/93346
15254 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
15255 New define_insn patterns.
15256
15257 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
15258
15259 * doc/sourcebuild.texi (check-function-bodies): Add an
15260 optional target/xfail selector.
15261
15262 2020-01-23 Richard Sandiford <richard.sandiford@arm.com>
15263
15264 PR rtl-optimization/93124
15265 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
15266 bare USE and CLOBBER insns.
15267
15268 2020-01-22 Andrew Pinski <apinski@marvell.com>
15269
15270 * config/arc/arc.c (output_short_suffix): Check insn for nullness.
15271
15272 2020-01-22 David Malcolm <dmalcolm@redhat.com>
15273
15274 PR analyzer/93307
15275 * gdbinit.in (break-on-saved-diagnostic): Update for move of
15276 diagnostic_manager into "ana" namespace.
15277 * selftest-run-tests.c (selftest::run_tests): Update for move of
15278 selftest::run_analyzer_selftests to
15279 ana::selftest::run_analyzer_selftests.
15280
15281 2020-01-22 Richard Sandiford <richard.sandiford@arm.com>
15282
15283 * cfgexpand.c (union_stack_vars): Update the size.
15284
15285 2020-01-22 Richard Biener <rguenther@suse.de>
15286
15287 PR tree-optimization/93381
15288 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting
15289 throughout, handle all conversions the same.
15290
15291 2020-01-22 Jakub Jelinek <jakub@redhat.com>
15292
15293 PR target/93335
15294 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
15295 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
15296 predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
15297 Call force_reg on high_in2 unconditionally.
15298
15299 2020-01-22 Martin Liska <mliska@suse.cz>
15300
15301 PR tree-optimization/92924
15302 * profile.c (compute_value_histograms): Divide
15303 all counter values.
15304
15305 2020-01-22 Jakub Jelinek <jakub@redhat.com>
15306
15307 PR target/91298
15308 * output.h (assemble_name_resolve): Declare.
15309 * varasm.c (assemble_name_resolve): New function.
15310 (assemble_name): Use it.
15311 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
15312
15313 2020-01-22 Joseph Myers <joseph@codesourcery.com>
15314
15315 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to
15316 update_web_docs_git instead of update_web_docs_svn.
15317
15318 2020-01-21 Andrew Pinski <apinski@marvell.com>
15319
15320 PR target/9311
15321 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0
15322 as PTR mode. Have operand 1 as being modeless, it can be P mode.
15323 (*tlsgd_small_<mode>): Likewise.
15324 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately)
15325 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode
15326 register. Convert that register back to dest using convert_mode.
15327
15328 2020-01-21 Jim Wilson <jimw@sifive.com>
15329
15330 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL
15331 instead of XINT.
15332
15333 2020-01-21 H.J. Lu <hongjiu.lu@intel.com>
15334 Uros Bizjak <ubizjak@gmail.com>
15335
15336 PR target/93319
15337 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode
15338 with ptr_mode.
15339 (legitimize_tls_address): Do GNU2 TLS address computation in
15340 ptr_mode and zero-extend result to Pmode.
15341 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace
15342 :P with :PTR and Pmode with ptr_mode.
15343 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise.
15344 (*tls_dynamic_gnu2_call_64_<mode>): Likewise.
15345 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise.
15346
15347 2020-01-21 Jakub Jelinek <jakub@redhat.com>
15348
15349 PR target/93333
15350 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
15351 the last two operands are CONST_INT_P before using them as such.
15352
15353 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
15354
15355 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name
15356 to get the integer element types.
15357
15358 2020-01-21 Richard Sandiford <richard.sandiford@arm.com>
15359
15360 * config/aarch64/aarch64-sve-builtins.h
15361 (function_expander::convert_to_pmode): Declare.
15362 * config/aarch64/aarch64-sve-builtins.cc
15363 (function_expander::convert_to_pmode): New function.
15364 (function_expander::get_contiguous_base): Use it.
15365 (function_expander::prepare_gather_address_operands): Likewise.
15366 * config/aarch64/aarch64-sve-builtins-sve2.cc
15367 (svwhilerw_svwhilewr_impl::expand): Likewise.
15368
15369 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
15370
15371 PR target/92424
15372 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set
15373 cfun->machine->label_is_assembled.
15374 (aarch64_print_patchable_function_entry): New.
15375 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
15376 * config/aarch64/aarch64.h (struct machine_function): New field,
15377 label_is_assembled.
15378
15379 2020-01-21 David Malcolm <dmalcolm@redhat.com>
15380
15381 PR ipa/93315
15382 * ipa-profile.c (ipa_profile): Delete call_sums and set it to
15383 NULL on exit.
15384
15385 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
15386
15387 PR lto/93318
15388 * cgraph.c (cgraph_edge::resolve_speculation,
15389 cgraph_edge::redirect_call_stmt_to_callee): Fix update of
15390 call_stmt_site_hash.
15391
15392 2020-01-21 Martin Liska <mliska@suse.cz>
15393
15394 * config/rs6000/rs6000.c (common_mode_defined): Remove
15395 unused variable.
15396
15397 2020-01-21 Richard Biener <rguenther@suse.de>
15398
15399 PR tree-optimization/92328
15400 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve
15401 type when value-numbering same-sized store by inserting a
15402 VIEW_CONVERT_EXPR.
15403 (eliminate_dom_walker::eliminate_stmt): When eliminating
15404 a redundant store handle bit-reinterpretation of the same value.
15405
15406 2020-01-21 Andrew Pinski <apinski@marvel.com>
15407
15408 PR tree-opt/93321
15409 * tree-into-ssa.c (prepare_block_for_update_1): Split out
15410 from ...
15411 (prepare_block_for_update): This. Use a worklist instead of
15412 recursing.
15413
15414 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15415
15416 * config/arm/arm.c (clear_operation_p):
15417 Initialise last_regno, skip first iteration
15418 based on the first_set value and use ints instead
15419 of the unnecessary HOST_WIDE_INTs.
15420
15421 2020-01-21 Jakub Jelinek <jakub@redhat.com>
15422
15423 PR target/93073
15424 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
15425 compare_mode other than SFmode or DFmode.
15426
15427 2020-01-21 Kito Cheng <kito.cheng@sifive.com>
15428
15429 PR target/93304
15430 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
15431 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
15432 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
15433
15434 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
15435
15436 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4.
15437
15438 2020-01-20 Andrew Pinski <apinski@marvell.com>
15439
15440 PR middle-end/93242
15441 * targhooks.c (default_print_patchable_function_entry): Use
15442 output_asm_insn to emit the nop instruction.
15443
15444 2020-01-20 Fangrui Song <maskray@google.com>
15445
15446 PR middle-end/93194
15447 * targhooks.c (default_print_patchable_function_entry): Align to
15448 POINTER_SIZE.
15449
15450 2020-01-20 H.J. Lu <hongjiu.lu@intel.com>
15451
15452 PR target/93319
15453 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to
15454 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode.
15455 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ...
15456 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P.
15457 (*tls_dynamic_gnu2_lea_64): Renamed to ...
15458 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P.
15459 Remove the {q} suffix from lea.
15460 (*tls_dynamic_gnu2_call_64): Renamed to ...
15461 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P.
15462 (*tls_dynamic_gnu2_combine_64): Renamed to ...
15463 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P.
15464 Pass Pmode to gen_tls_dynamic_gnu2_64.
15465
15466 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com>
15467
15468 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1.
15469
15470 2020-01-20 Richard Sandiford <richard.sandiford@arm.com>
15471
15472 * config/aarch64/aarch64-sve-builtins-base.cc
15473 (svld1ro_impl::memory_vector_mode): Remove parameter name.
15474
15475 2020-01-20 Richard Biener <rguenther@suse.de>
15476
15477 PR debug/92763
15478 * dwarf2out.c (prune_unused_types): Unconditionally mark
15479 called function DIEs.
15480
15481 2020-01-20 Martin Liska <mliska@suse.cz>
15482
15483 PR tree-optimization/93199
15484 * tree-eh.c (struct leh_state): Add
15485 new field outer_non_cleanup.
15486 (cleanup_is_dead_in): Pass leh_state instead
15487 of eh_region. Add a checking that state->outer_non_cleanup
15488 points to outer non-clean up region.
15489 (lower_try_finally): Record outer_non_cleanup
15490 for this_state.
15491 (lower_catch): Likewise.
15492 (lower_eh_filter): Likewise.
15493 (lower_eh_must_not_throw): Likewise.
15494 (lower_cleanup): Likewise.
15495
15496 2020-01-20 Richard Biener <rguenther@suse.de>
15497
15498 PR tree-optimization/93094
15499 * tree-vectorizer.h (vect_loop_versioning): Adjust.
15500 (vect_transform_loop): Likewise.
15501 * tree-vectorizer.c (try_vectorize_loop_1): Pass down
15502 loop_vectorized_call to vect_transform_loop.
15503 * tree-vect-loop.c (vect_transform_loop): Pass down
15504 loop_vectorized_call to vect_loop_versioning.
15505 * tree-vect-loop-manip.c (vect_loop_versioning): Use
15506 the earlier discovered loop_vectorized_call.
15507
15508 2020-01-19 Eric S. Raymond <esr@thyrsus.com>
15509
15510 * doc/contribute.texi: Update for SVN -> Git transition.
15511 * doc/install.texi: Likewise.
15512
15513 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
15514
15515 PR lto/93318
15516 * cgraph.c (cgraph_edge::make_speculative): Increase number of
15517 speculative targets.
15518 (verify_speculative_call): New function
15519 (cgraph_node::verify_node): Use it.
15520 * ipa-profile.c (ipa_profile): Fix formating; do not set number of
15521 speculations.
15522
15523 2020-01-18 Jan Hubicka <hubicka@ucw.cz>
15524
15525 PR lto/93318
15526 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting.
15527 (cgraph_edge::make_direct): Remove all indirect targets.
15528 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct..
15529 (cgraph_node::verify_node): Verify that only one call_stmt or
15530 lto_stmt_uid is set.
15531 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or
15532 lto_stmt_uid.
15533 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt.
15534 (lto_output_ref): Simplify streaming of stmt.
15535 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid.
15536
15537 2020-01-18 Tamar Christina <tamar.christina@arm.com>
15538
15539 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode):
15540 Mark parameter unused.
15541
15542 2020-01-18 Hans-Peter Nilsson <hp@axis.com>
15543
15544 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux*
15545
15546 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com>
15547
15548 * varpool.c (ctor_useable_for_folding_p): Fix grammar.
15549
15550 2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
15551
15552 * Makefile.in: Add coroutine-passes.o.
15553 * builtin-types.def (BT_CONST_SIZE): New.
15554 (BT_FN_BOOL_PTR): New.
15555 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New.
15556 * builtins.def (DEF_COROUTINE_BUILTIN): New.
15557 * coroutine-builtins.def: New file.
15558 * coroutine-passes.cc: New file.
15559 * function.h (struct GTY function): Add a bit to indicate that the
15560 function is a coroutine component.
15561 * internal-fn.c (expand_CO_FRAME): New.
15562 (expand_CO_YIELD): New.
15563 (expand_CO_SUSPN): New.
15564 (expand_CO_ACTOR): New.
15565 * internal-fn.def (CO_ACTOR): New.
15566 (CO_YIELD): New.
15567 (CO_SUSPN): New.
15568 (CO_FRAME): New.
15569 * passes.def: Add pass_coroutine_lower_builtins,
15570 pass_coroutine_early_expand_ifns.
15571 * tree-pass.h (make_pass_coroutine_lower_builtins): New.
15572 (make_pass_coroutine_early_expand_ifns): New.
15573 * doc/invoke.texi: Document the fcoroutines command line
15574 switch.
15575
15576 2020-01-18 Jakub Jelinek <jakub@redhat.com>
15577
15578 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable.
15579
15580 PR target/93312
15581 * config/arm/arm.c (clear_operation_p): Don't use REGNO until
15582 after checking the argument is a REG. Don't use REGNO (reg)
15583 again to set last_regno, reuse regno variable instead.
15584
15585 2020-01-17 David Malcolm <dmalcolm@redhat.com>
15586
15587 * doc/analyzer.texi (Limitations): Add note about NaN.
15588
15589 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15590 Sudakshina Das <sudi.das@arm.com>
15591
15592 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg
15593 and valid immediate.
15594 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate.
15595 (lshrdi3): Generate thumb2_lsrl for valid immediates.
15596 * config/arm/constraints.md (Pg): New.
15597 * config/arm/predicates.md (long_shift_imm): New.
15598 (arm_reg_or_long_shift_imm): Likewise.
15599 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative.
15600 (thumb2_lsll): Likewise.
15601 (thumb2_lsrl): New.
15602
15603 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15604 Sudakshina Das <sudi.das@arm.com>
15605
15606 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE.
15607 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE.
15608 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd
15609 register pairs for doubleword quantities for ARMv8.1M-Mainline.
15610 * config/arm/thumb2.md (thumb2_asrl): New.
15611 (thumb2_lsll): Likewise.
15612
15613 2020-01-17 Jakub Jelinek <jakub@redhat.com>
15614
15615 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove
15616 unused variable.
15617
15618 2020-01-17 Alexander Monakov <amonakov@ispras.ru>
15619
15620 * gdbinit.in (help-gcc-hooks): New command.
15621 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc,
15622 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update
15623 documentation.
15624
15625 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
15626
15627 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the
15628 correct target macro.
15629
15630 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
15631
15632 * config/aarch64/aarch64-protos.h
15633 (aarch64_sve_ld1ro_operand_p): New.
15634 * config/aarch64/aarch64-sve-builtins-base.cc
15635 (class load_replicate): New.
15636 (class svld1ro_impl): New.
15637 (class svld1rq_impl): Change to inherit from load_replicate.
15638 (svld1ro): New sve intrinsic function base.
15639 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro):
15640 New DEF_SVE_FUNCTION.
15641 * config/aarch64/aarch64-sve-builtins-base.h
15642 (svld1ro): New decl.
15643 * config/aarch64/aarch64-sve-builtins.cc
15644 (function_expander::add_mem_operand): Modify assert to allow
15645 OImode.
15646 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New
15647 pattern.
15648 * config/aarch64/aarch64.c
15649 (aarch64_sve_ld1rq_operand_p): Implement in terms of ...
15650 (aarch64_sve_ld1rq_ld1ro_operand_p): This.
15651 (aarch64_sve_ld1ro_operand_p): New.
15652 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec.
15653 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New.
15654 * config/aarch64/predicates.md
15655 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New.
15656
15657 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com>
15658
15659 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64):
15660 Introduce this ACLE specified predefined macro.
15661 * config/aarch64/aarch64-option-extensions.def (f64mm): New.
15662 (fp): Disabling this disables f64mm.
15663 (simd): Disabling this disables f64mm.
15664 (fp16): Disabling this disables f64mm.
15665 (sve): Disabling this disables f64mm.
15666 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New.
15667 (AARCH64_ISA_F64MM): New.
15668 (TARGET_F64MM): New.
15669 * doc/invoke.texi (f64mm): Document new option.
15670
15671 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
15672
15673 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
15674 (neoversen1_tunings): Likewise.
15675
15676 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
15677
15678 PR target/92692
15679 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
15680 Add assert to ensure prolog has been emitted.
15681 (aarch64_split_atomic_op): Likewise.
15682 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
15683 Use epilogue_completed rather than reload_completed.
15684 (aarch64_atomic_exchange<mode>): Likewise.
15685 (aarch64_atomic_<atomic_optab><mode>): Likewise.
15686 (atomic_nand<mode>): Likewise.
15687 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
15688 (atomic_fetch_nand<mode>): Likewise.
15689 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
15690 (atomic_nand_fetch<mode>): Likewise.
15691
15692 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
15693
15694 PR target/93133
15695 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false
15696 for FP modes.
15697 (REVERSE_CONDITION): Delete.
15698 * config/aarch64/iterators.md (CC_ONLY): New mode iterator.
15699 (CCFP_CCFPE): Likewise.
15700 (e): New mode attribute.
15701 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to...
15702 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC.
15703 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into...
15704 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern.
15705 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern.
15706 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise.
15707 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update
15708 name of generator from gen_ccmpdi to gen_ccmpccdi.
15709 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse
15710 the previous comparison but aren't able to, use the new ccmp_rev
15711 patterns instead.
15712
15713 2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
15714
15715 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
15716 than testing directly for INTEGER_CST.
15717 (gimplify_target_expr, gimplify_omp_depend): Likewise.
15718
15719 2020-01-17 Jakub Jelinek <jakub@redhat.com>
15720
15721 PR tree-optimization/93292
15722 * tree-vect-stmts.c (vectorizable_comparison): Punt also if
15723 get_vectype_for_scalar_type returns NULL.
15724
15725 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
15726
15727 * params.opt (-param=max-predicted-iterations): Increase range from 0.
15728 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations.
15729
15730 2020-01-16 Jan Hubicka <hubicka@ucw.cz>
15731
15732 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of
15733 dump.
15734 * params.opt: (max-predicted-iterations): Set bounds.
15735 * predict.c (real_almost_one, real_br_prob_base,
15736 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove.
15737 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic
15738 probabilities; do not truncate to reg_br_prob_bases.
15739 (estimate_loops_at_level): Pass max_cyclic_prob.
15740 (estimate_loops): Compute max_cyclic_prob.
15741 (estimate_bb_frequencies): Do not initialize real_*; update calculation
15742 of back edge prob.
15743 * profile-count.c (profile_probability::to_sreal): New.
15744 * profile-count.h (class sreal): Move up in file.
15745 (profile_probability::to_sreal): Declare.
15746
15747 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15748
15749 * config/arm/arm.c
15750 (arm_invalid_conversion): New function for target hook.
15751 (arm_invalid_unary_op): New function for target hook.
15752 (arm_invalid_binary_op): New function for target hook.
15753
15754 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15755
15756 * config.gcc: Add arm_bf16.h.
15757 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment.
15758 (arm_simd_builtin_std_type): Add BFmode.
15759 (arm_init_simd_builtin_types): Define element types for vector types.
15760 (arm_init_bf16_types): New function.
15761 (arm_init_builtins): Add arm_init_bf16_types function call.
15762 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes.
15763 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF.
15764 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode.
15765 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements.
15766 (arm_vector_mode_supported_p): Add V4BF, V8BF.
15767 (arm_mangle_type): Add __bf16.
15768 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE,
15769 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node,
15770 arm_bf16_ptr_type_node.
15771 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and
15772 define_split between ARM registers.
15773 * config/arm/arm_bf16.h: New file.
15774 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
15775 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New.
15776 (VQXMOV): Add V8BF.
15777 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns.
15778 * config/arm/vfp.md: Add BFmode to movhf patterns.
15779
15780 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com>
15781 Andre Vieira <andre.simoesdiasvieira@arm.com>
15782
15783 * config/arm/arm-cpus.in (mve, mve_float): New features.
15784 (dsp, mve, mve.fp): New options.
15785 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define.
15786 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M.
15787 * doc/invoke.texi: Document the armv8.1-m mve and dps options.
15788
15789 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15790 Thomas Preud'homme <thomas.preudhomme@arm.com>
15791
15792 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to
15793 Armv8-M Mainline.
15794 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove
15795 error for using -mcmse when targeting Armv8.1-M Mainline.
15796
15797 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15798 Thomas Preud'homme <thomas.preudhomme@arm.com>
15799
15800 * config/arm/arm.md (nonsecure_call_internal): Do not force memory
15801 address in r4 when targeting Armv8.1-M Mainline.
15802 (nonsecure_call_value_internal): Likewise.
15803 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address
15804 a register match_operand again. Emit BLXNS when targeting
15805 Armv8.1-M Mainline.
15806 (nonsecure_call_value_reg_thumb2): Likewise.
15807
15808 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15809 Thomas Preud'homme <thomas.preudhomme@arm.com>
15810
15811 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early.
15812 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear
15813 variable as true when floating-point ABI is not hard. Replace
15814 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear.
15815 Generate VLSTM and VLLDM instruction respectively before and
15816 after a function call to cmse_nonsecure_call function.
15817 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec.
15818 (VUNSPEC_VLLDM): Likewise.
15819 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn.
15820 (lazy_load_multiple_insn): Likewise.
15821
15822 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15823 Thomas Preud'homme <thomas.preudhomme@arm.com>
15824
15825 * config/arm/arm.c (vfp_emit_fstmd): Declare early.
15826 (arm_emit_vfp_multi_reg_pop): Likewise.
15827 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP
15828 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and
15829 restore callee-saved VFP registers.
15830
15831 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15832 Thomas Preud'homme <thomas.preudhomme@arm.com>
15833
15834 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early.
15835 (cmse_nonsecure_call_clear_caller_saved): Rename into ...
15836 (cmse_nonsecure_call_inline_register_clear): This. Save and clear
15837 callee-saved GPRs as well as clear ip register before doing a nonsecure
15838 call then restore callee-saved GPRs after it when targeting
15839 Armv8.1-M Mainline.
15840 (arm_reorg): Adapt to function rename.
15841
15842 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15843 Thomas Preud'homme <thomas.preudhomme@arm.com>
15844
15845 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype.
15846 * config/arm/arm.c (clear_operation_p): Extend to be able to check a
15847 clear_vfp_multiple pattern based on a new vfp parameter.
15848 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when
15849 targeting Armv8.1-M Mainline.
15850 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers
15851 unconditionally when targeting Armv8.1-M Mainline architecture. Check
15852 whether VFP registers are available before looking call_used_regs for a
15853 VFP register.
15854 * config/arm/predicates.md (clear_multiple_operation): Adapt to change
15855 of prototype of clear_operation_p.
15856 (clear_vfp_multiple_operation): New predicate.
15857 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec.
15858 * config/arm/vfp.md (clear_vfp_multiple): New define_insn.
15859
15860 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15861 Thomas Preud'homme <thomas.preudhomme@arm.com>
15862
15863 * config/arm/arm-protos.h (clear_operation_p): Declare.
15864 * config/arm/arm.c (clear_operation_p): New function.
15865 (cmse_clear_registers): Generate clear_multiple instruction pattern if
15866 targeting Armv8.1-M Mainline or successor.
15867 (output_return_instruction): Only output APSR register clearing if
15868 Armv8.1-M Mainline instructions not available.
15869 (thumb_exit): Likewise.
15870 * config/arm/predicates.md (clear_multiple_operation): New predicate.
15871 * config/arm/thumb2.md (clear_apsr): New define_insn.
15872 (clear_multiple): Likewise.
15873 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec.
15874
15875 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15876 Thomas Preud'homme <thomas.preudhomme@arm.com>
15877
15878 * config/arm/arm.c (fp_sysreg_names): Declare and define.
15879 (use_return_insn): Also return false for Armv8.1-M Mainline.
15880 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M
15881 Mainline instructions are available.
15882 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS
15883 when targeting Armv8.1-M Mainline Security Extensions.
15884 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M
15885 Mainline entry function.
15886 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if
15887 targeting Armv8.1-M Mainline or successor.
15888 (arm_expand_epilogue): Fix indentation of caller-saved register
15889 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline
15890 entry function.
15891 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro.
15892 (FP_SYSREGS): Likewise.
15893 (enum vfp_sysregs_encoding): Define enum.
15894 (fp_sysreg_names): Declare.
15895 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec.
15896 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn.
15897 (pop_fpsysreg_insn): Likewise.
15898
15899 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com>
15900 Thomas Preud'homme <thomas.preudhomme@arm.com>
15901
15902 * config/arm/arm-cpus.in (armv8_1m_main): New feature.
15903 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k,
15904 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve,
15905 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a,
15906 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent.
15907 (ARMv8_1m_main): New feature group.
15908 (armv8.1-m.main): New architecture.
15909 * config/arm/arm-tables.opt: Regenerate.
15910 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize.
15911 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main.
15912 (arm_options_perform_arch_sanity_checks): Error out when targeting
15913 Armv8.1-M Mainline Security Extensions.
15914 * config/arm/arm.h (arm_arch8_1m_main): Declare.
15915
15916 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15917
15918 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot,
15919 aarch64_bfdot_lane, aarch64_bfdot_laneq): New.
15920 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane,
15921 aarch64_bfdot_laneq): New.
15922 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32,
15923 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32,
15924 vbfdotq_laneq_f32): New.
15925 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype,
15926 VBFMLA_W, VBF): New.
15927 (isquadop): Add V4BF, V8BF.
15928
15929 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
15930
15931 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers):
15932 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS,
15933 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP.
15934 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX.
15935 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index.
15936 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane,
15937 usdot_laneq, sudot_lane,sudot_laneq): New.
15938 * config/aarch64/aarch64-simd.md (aarch64_usdot): New.
15939 (aarch64_<sur>dot_lane): New.
15940 * config/aarch64/arm_neon.h (vusdot_s32): New.
15941 (vusdotq_s32): New.
15942 (vusdot_lane_s32): New.
15943 (vsudot_lane_s32): New.
15944 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator.
15945 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs.
15946
15947 2020-01-16 Martin Liska <mliska@suse.cz>
15948
15949 * value-prof.c (dump_histogram_value): Fix
15950 obvious spacing issue.
15951
15952 2020-01-16 Andrew Pinski <apinski@marvell.com>
15953
15954 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for
15955 !storage_order_barrier_p.
15956
15957 2020-01-16 Andrew Pinski <apinski@marvell.com>
15958
15959 * sched-int.h (_dep): Add unused bit-field field for the padding.
15960 * sched-deps.c (init_dep_1): Init unused field.
15961
15962 2020-01-16 Andrew Pinski <apinski@marvell.com>
15963
15964 * optabs.h (create_expand_operand): Initialize target field also.
15965
15966 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com>
15967
15968 PR tree-optimization/92429
15969 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter.
15970 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to
15971 control folding.
15972 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing
15973 tree.
15974
15975 2020-01-16 Richard Sandiford <richard.sandiford@arm.com>
15976
15977 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply
15978 aarch64_sve_int_mode to each mode.
15979
15980 2020-01-15 David Malcolm <dmalcolm@redhat.com>
15981
15982 * doc/analyzer.texi (Overview): Add note about
15983 -fdump-ipa-analyzer.
15984
15985 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com>
15986
15987 PR tree-optimization/93231
15988 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check
15989 input_type is unsigned. Use tree_to_shwi for shift constant.
15990 Check CST_STRING element size is CHAR_TYPE_SIZE bits.
15991 (simplify_count_trailing_zeroes): Add test to handle known non-zero
15992 inputs more efficiently.
15993
15994 2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
15995
15996 * config/i386/i386.md (*movsf_internal): Do not require
15997 SSE2 ISA for alternatives 14 and 15.
15998
15999 2020-01-15 Richard Biener <rguenther@suse.de>
16000
16001 PR middle-end/93273
16002 * tree-eh.c (sink_clobbers): If we already visited the destination
16003 block do not defer insertion.
16004 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for
16005 the purpose of defered insertion.
16006
16007 2020-01-15 Jakub Jelinek <jakub@redhat.com>
16008
16009 * BASE-VER: Bump to 10.0.1.
16010
16011 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
16012
16013 PR tree-optimization/93247
16014 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access
16015 type of the stmt that we're going to vectorize.
16016
16017 2020-01-15 Richard Sandiford <richard.sandiford@arm.com>
16018
16019 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
16020 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
16021 type from the lhs.
16022
16023 2020-01-15 Martin Liska <mliska@suse.cz>
16024
16025 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow
16026 2 calls of streamer_read_hwi in a function call.
16027
16028 2020-01-15 Richard Biener <rguenther@suse.de>
16029
16030 * alias.c (record_alias_subset): Avoid redundant work when
16031 subset is already recorded.
16032
16033 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16034
16035 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of
16036 the analyzer options provide CWE identifiers.
16037
16038 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16039
16040 * tree-diagnostic-path.cc (path_summary::event_range::print):
16041 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers
16042 using get_pure_location.
16043
16044 2020-01-15 Jakub Jelinek <jakub@redhat.com>
16045
16046 PR tree-optimization/93262
16047 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins,
16048 perform head trimming only if the last argument is constant,
16049 either all ones, or larger or equal to head trim, in the latter
16050 case decrease the last argument by head_trim.
16051
16052 PR tree-optimization/93249
16053 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h.
16054 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to
16055 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't
16056 perform head trim unless we can prove there are no '\0' chars
16057 from the source among the first head_trim chars.
16058
16059 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16060
16061 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o.
16062
16063 2020-01-15 Jakub Jelinek <jakub@redhat.com>
16064
16065 PR target/93009
16066 * config/i386/sse.md
16067 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
16068 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
16069 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
16070 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
16071 just a single alternative instead of two, make operands 1 and 2
16072 commutative.
16073
16074 2020-01-14 Jan Hubicka <hubicka@ucw.cz>
16075
16076 PR lto/91576
16077 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and
16078 TYPE_MODE.
16079
16080 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16081
16082 * Makefile.in (lang_opt_files): Add analyzer.opt.
16083 (ANALYZER_OBJS): New.
16084 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o,
16085 tristate.o and ANALYZER_OBJS.
16086 (TEXI_GCCINT_FILES): Add analyzer.texi.
16087 * common.opt (-fanalyzer): New driver option.
16088 * config.in: Regenerate.
16089 * configure: Regenerate.
16090 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option.
16091 (gccdepdir): Also create depdir for "analyzer" subdir.
16092 * digraph.cc: New file.
16093 * digraph.h: New file.
16094 * doc/analyzer.texi: New file.
16095 * doc/gccint.texi ("Static Analyzer") New menu item.
16096 (analyzer.texi): Include it.
16097 * doc/invoke.texi ("Static Analyzer Options"): New list and new section.
16098 ("Warning Options"): Add static analysis warnings to the list.
16099 (-Wno-analyzer-double-fclose): New option.
16100 (-Wno-analyzer-double-free): New option.
16101 (-Wno-analyzer-exposure-through-output-file): New option.
16102 (-Wno-analyzer-file-leak): New option.
16103 (-Wno-analyzer-free-of-non-heap): New option.
16104 (-Wno-analyzer-malloc-leak): New option.
16105 (-Wno-analyzer-possible-null-argument): New option.
16106 (-Wno-analyzer-possible-null-dereference): New option.
16107 (-Wno-analyzer-null-argument): New option.
16108 (-Wno-analyzer-null-dereference): New option.
16109 (-Wno-analyzer-stale-setjmp-buffer): New option.
16110 (-Wno-analyzer-tainted-array-index): New option.
16111 (-Wno-analyzer-use-after-free): New option.
16112 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option.
16113 (-Wno-analyzer-use-of-uninitialized-value): New option.
16114 (-Wanalyzer-too-complex): New option.
16115 (-fanalyzer-call-summaries): New warning.
16116 (-fanalyzer-checker=): New warning.
16117 (-fanalyzer-fine-grained): New warning.
16118 (-fno-analyzer-state-merge): New warning.
16119 (-fno-analyzer-state-purge): New warning.
16120 (-fanalyzer-transitivity): New warning.
16121 (-fanalyzer-verbose-edges): New warning.
16122 (-fanalyzer-verbose-state-changes): New warning.
16123 (-fanalyzer-verbosity=): New warning.
16124 (-fdump-analyzer): New warning.
16125 (-fdump-analyzer-callgraph): New warning.
16126 (-fdump-analyzer-exploded-graph): New warning.
16127 (-fdump-analyzer-exploded-nodes): New warning.
16128 (-fdump-analyzer-exploded-nodes-2): New warning.
16129 (-fdump-analyzer-exploded-nodes-3): New warning.
16130 (-fdump-analyzer-supergraph): New warning.
16131 * doc/sourcebuild.texi (dg-require-dot): New.
16132 (dg-check-dot): New.
16133 * gdbinit.in (break-on-saved-diagnostic): New command.
16134 * graphviz.cc: New file.
16135 * graphviz.h: New file.
16136 * ordered-hash-map-tests.cc: New file.
16137 * ordered-hash-map.h: New file.
16138 * passes.def (pass_analyzer): Add before
16139 pass_ipa_whole_program_visibility.
16140 * selftest-run-tests.c (selftest::run_tests): Call
16141 selftest::ordered_hash_map_tests_cc_tests.
16142 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New
16143 decl.
16144 * shortest-paths.h: New file.
16145 * timevar.def (TV_ANALYZER): New timevar.
16146 (TV_ANALYZER_SUPERGRAPH): Likewise.
16147 (TV_ANALYZER_STATE_PURGE): Likewise.
16148 (TV_ANALYZER_PLAN): Likewise.
16149 (TV_ANALYZER_SCC): Likewise.
16150 (TV_ANALYZER_WORKLIST): Likewise.
16151 (TV_ANALYZER_DUMP): Likewise.
16152 (TV_ANALYZER_DIAGNOSTICS): Likewise.
16153 (TV_ANALYZER_SHORTEST_PATHS): Likewise.
16154 * tree-pass.h (make_pass_analyzer): New decl.
16155 * tristate.cc: New file.
16156 * tristate.h: New file.
16157
16158 2020-01-14 Uroš Bizjak <ubizjak@gmail.com>
16159
16160 PR target/93254
16161 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
16162 alternatives 9 and 10.
16163
16164 2020-01-14 David Malcolm <dmalcolm@redhat.com>
16165
16166 * attribs.c (excl_hash_traits::empty_zero_p): New static constant.
16167 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise.
16168 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise.
16169 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest.
16170 (selftest::hash_map_tests_c_tests): Call it.
16171 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p):
16172 New static constant, using the value of = H::empty_zero_p.
16173 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value
16174 from default_hash_traits <Value>.
16175 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value
16176 from Traits.
16177 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise.
16178 * hash-table.h (hash_table::alloc_entries): Guard the loop of
16179 calls to mark_empty with !Descriptor::empty_zero_p.
16180 (hash_table::empty_slow): Conditionalize the memset call with a
16181 check that Descriptor::empty_zero_p; otherwise, loop through the
16182 entries calling mark_empty on them.
16183 * hash-traits.h (int_hash::empty_zero_p): New static constant.
16184 (pointer_hash::empty_zero_p): Likewise.
16185 (pair_hash::empty_zero_p): Likewise.
16186 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p):
16187 Likewise.
16188 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise.
16189 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise.
16190 * profile.c (location_triplet_hash::empty_zero_p): Likewise.
16191 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise.
16192 (sanopt_tree_couple_hash::empty_zero_p): Likewise.
16193 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise.
16194 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise.
16195 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise.
16196 * tree-vectorizer.h
16197 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p):
16198 Likewise.
16199
16200 2020-01-14 Kewen Lin <linkw@gcc.gnu.org>
16201
16202 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return,
16203 fix typo on return value.
16204
16205 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
16206
16207 PR ipa/69678
16208 * cgraph.c (symbol_table::create_edge): Init speculative_id and
16209 target_prob.
16210 (cgraph_edge::make_speculative): Add param for setting speculative_id
16211 and target_prob.
16212 (cgraph_edge::speculative_call_info): Update comments and find reference
16213 by speculative_id for multiple indirect targets.
16214 (cgraph_edge::resolve_speculation): Decrease the speculations
16215 for indirect edge, drop it's speculative if not direct target
16216 left. Update comments.
16217 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
16218 (cgraph_node::dump): Print num_speculative_call_targets.
16219 (cgraph_node::verify_node): Don't report error if speculative
16220 edge not include statement.
16221 (cgraph_edge::num_speculative_call_targets_p): New function.
16222 * cgraph.h (int common_target_id): Remove.
16223 (int common_target_probability): Remove.
16224 (num_speculative_call_targets): New variable.
16225 (make_speculative): Add param for setting speculative_id.
16226 (cgraph_edge::num_speculative_call_targets_p): New declare.
16227 (target_prob): New variable.
16228 (speculative_id): New variable.
16229 * ipa-fnsummary.c (analyze_function_body): Create and duplicate
16230 call summaries for multiple speculative call targets.
16231 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id.
16232 * ipa-profile.c (struct speculative_call_target): New struct.
16233 (class speculative_call_summary): New class.
16234 (class speculative_call_summaries): New class.
16235 (call_sums): New variable.
16236 (ipa_profile_generate_summary): Generate indirect multiple targets summaries.
16237 (ipa_profile_write_edge_summary): New function.
16238 (ipa_profile_write_summary): Stream out indirect multiple targets summaries.
16239 (ipa_profile_dump_all_summaries): New function.
16240 (ipa_profile_read_edge_summary): New function.
16241 (ipa_profile_read_summary_section): New function.
16242 (ipa_profile_read_summary): Stream in indirect multiple targets summaries.
16243 (ipa_profile): Generate num_speculative_call_targets from
16244 profile summaries.
16245 * ipa-ref.h (speculative_id): New variable.
16246 * ipa-utils.c (ipa_merge_profiles): Update with target_prob.
16247 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and
16248 common_target_probability. Stream out speculative_id and
16249 num_speculative_call_targets.
16250 (input_edge): Likewise.
16251 * predict.c (dump_prediction): Remove edges count assert to be
16252 precise.
16253 * symtab.c (symtab_node::create_reference): Init speculative_id.
16254 (symtab_node::clone_references): Clone speculative_id.
16255 (symtab_node::clone_referring): Clone speculative_id.
16256 (symtab_node::clone_reference): Clone speculative_id.
16257 (symtab_node::clear_stmts_in_references): Clear speculative_id.
16258 * tree-inline.c (copy_bb): Duplicate all the speculative edges
16259 if indirect call contains multiple speculative targets.
16260 * value-prof.h (check_ic_target): Remove.
16261 * value-prof.c (gimple_value_profile_transformations):
16262 Use void function gimple_ic_transform.
16263 * value-prof.c (gimple_ic_transform): Handle topn case.
16264 Fix comment typos. Change it to a void function.
16265
16266 2020-01-13 Andrew Pinski <apinski@marvell.com>
16267
16268 * config/aarch64/aarch64-cores.def (octeontx2): New define.
16269 (octeontx2t98): New define.
16270 (octeontx2t96): New define.
16271 (octeontx2t93): New define.
16272 (octeontx2f95): New define.
16273 (octeontx2f95n): New define.
16274 (octeontx2f95mm): New define.
16275 * config/aarch64/aarch64-tune.md: Regenerate.
16276 * doc/invoke.texi (-mcpu=): Document the new cpu types.
16277
16278 2020-01-13 Jason Merrill <jason@redhat.com>
16279
16280 PR c++/33799 - destroy return value if local cleanup throws.
16281 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR.
16282
16283 2020-01-13 Martin Liska <mliska@suse.cz>
16284
16285 * ipa-cp.c (get_max_overall_size): Use newly
16286 renamed param param_ipa_cp_unit_growth.
16287 * params.opt: Remove legacy param name.
16288
16289 2020-01-13 Martin Sebor <msebor@redhat.com>
16290
16291 PR tree-optimization/93213
16292 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul
16293 stores to be eliminated.
16294
16295 2020-01-13 Martin Liska <mliska@suse.cz>
16296
16297 * opts.c (print_help): Do not print CL_PARAM
16298 and CL_WARNING for CL_OPTIMIZATION.
16299
16300 2020-01-13 Jonathan Wakely <jwakely@redhat.com>
16301
16302 PR driver/92757
16303 * doc/invoke.texi (Warning Options): Add caveat about some warnings
16304 depending on optimization settings.
16305
16306 2020-01-13 Jakub Jelinek <jakub@redhat.com>
16307
16308 PR tree-optimization/90838
16309 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
16310 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro
16311 argument rather than to initialize temporary for targets that
16312 don't use the mode argument at all. Initialize ctzval to avoid
16313 warning at -O0.
16314
16315 2020-01-10 Thomas Schwinge <thomas@codesourcery.com>
16316
16317 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
16318 * tree-core.h: Document it.
16319 * gimplify.c (gimplify_omp_workshare): Set it.
16320 * omp-low.c (lower_omp_target): Use it.
16321 * tree-pretty-print.c (dump_omp_clause): Print it.
16322
16323 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
16324 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
16325
16326 2020-01-10 David Malcolm <dmalcolm@redhat.com>
16327
16328 * Makefile.in (OBJS): Add tree-diagnostic-path.o.
16329 * common.opt (fdiagnostics-path-format=): New option.
16330 (diagnostic_path_format): New enum.
16331 (fdiagnostics-show-path-depths): New option.
16332 * coretypes.h (diagnostic_event_id_t): New forward decl.
16333 * diagnostic-color.c (color_dict): Add "path".
16334 * diagnostic-event-id.h: New file.
16335 * diagnostic-format-json.cc (json_from_expanded_location): Make
16336 non-static.
16337 (json_end_diagnostic): Call context->make_json_for_path if it
16338 exists and the diagnostic has a path.
16339 (diagnostic_output_format_init): Clear context->print_path.
16340 * diagnostic-path.h: New file.
16341 * diagnostic-show-locus.c (colorizer::set_range): Special-case
16342 when printing a run of events in a diagnostic_path so that they
16343 all get the same color.
16344 (layout::m_diagnostic_path_p): New field.
16345 (layout::layout): Initialize it.
16346 (layout::print_any_labels): Don't colorize the label text for an
16347 event in a diagnostic_path.
16348 (gcc_rich_location::add_location_if_nearby): Add
16349 "restrict_to_current_line_spans" and "label" params. Pass the
16350 former to layout.maybe_add_location_range; pass the latter
16351 when calling add_range.
16352 * diagnostic.c: Include "diagnostic-path.h".
16353 (diagnostic_initialize): Initialize context->path_format and
16354 context->show_path_depths.
16355 (diagnostic_show_any_path): New function.
16356 (diagnostic_path::interprocedural_p): New function.
16357 (diagnostic_report_diagnostic): Call diagnostic_show_any_path.
16358 (simple_diagnostic_path::num_events): New function.
16359 (simple_diagnostic_path::get_event): New function.
16360 (simple_diagnostic_path::add_event): New function.
16361 (simple_diagnostic_event::simple_diagnostic_event): New ctor.
16362 (simple_diagnostic_event::~simple_diagnostic_event): New dtor.
16363 (debug): New overload taking a diagnostic_path *.
16364 * diagnostic.def (DK_DIAGNOSTIC_PATH): New.
16365 * diagnostic.h (enum diagnostic_path_format): New enum.
16366 (json::value): New forward decl.
16367 (diagnostic_context::path_format): New field.
16368 (diagnostic_context::show_path_depths): New field.
16369 (diagnostic_context::print_path): New callback field.
16370 (diagnostic_context::make_json_for_path): New callback field.
16371 (diagnostic_show_any_path): New decl.
16372 (json_from_expanded_location): New decl.
16373 * doc/invoke.texi (-fdiagnostics-path-format=): New option.
16374 (-fdiagnostics-show-path-depths): New option.
16375 (-fdiagnostics-color): Add "path" to description of default
16376 GCC_COLORS; describe it.
16377 (-fdiagnostics-format=json): Document how diagnostic paths are
16378 represented in the JSON output format.
16379 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
16380 Add optional params "restrict_to_current_line_spans" and "label".
16381 * opts.c (common_handle_option): Handle
16382 OPT_fdiagnostics_path_format_ and
16383 OPT_fdiagnostics_show_path_depths.
16384 * pretty-print.c: Include "diagnostic-event-id.h".
16385 (pp_format): Implement "%@" format code for printing
16386 diagnostic_event_id_t *.
16387 (selftest::test_pp_format): Add tests for "%@".
16388 * selftest-run-tests.c (selftest::run_tests): Call
16389 selftest::tree_diagnostic_path_cc_tests.
16390 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl.
16391 * toplev.c (general_init): Initialize global_dc->path_format and
16392 global_dc->show_path_depths.
16393 * tree-diagnostic-path.cc: New file.
16394 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make
16395 non-static. Drop "diagnostic" param in favor of storing the
16396 original value of "where" and re-using it.
16397 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of
16398 maybe_unwind_expanded_macro_loc.
16399 (tree_diagnostics_defaults): Initialize context->print_path and
16400 context->make_json_for_path.
16401 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New
16402 decl.
16403 (default_tree_make_json_for_path): New decl.
16404 (maybe_unwind_expanded_macro_loc): New decl.
16405
16406 2020-01-10 Jakub Jelinek <jakub@redhat.com>
16407
16408 PR tree-optimization/93210
16409 * fold-const.h (native_encode_initializer,
16410 can_native_interpret_type_p): Declare.
16411 * fold-const.c (native_encode_string): Fix up handling with off != -1,
16412 simplify.
16413 (native_encode_initializer): New function, moved from dwarf2out.c.
16414 Adjust to native_encode_expr compatible arguments, including dry-run
16415 and partial extraction modes. Don't handle STRING_CST.
16416 (can_native_interpret_type_p): No longer static.
16417 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
16418 offset / BITS_PER_UNIT fits into int and don't call it if
16419 can_native_interpret_type_p fails. If suboff is NULL and for
16420 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
16421 native_encode_initializer.
16422 (fold_const_aggregate_ref_1): Formatting fix.
16423 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
16424 (tree_add_const_value_attribute): Adjust caller.
16425
16426 PR tree-optimization/90838
16427 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
16428 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
16429 CTZ_DEFINED_VALUE_AT_ZERO.
16430
16431 2020-01-10 Vladimir Makarov <vmakarov@redhat.com>
16432
16433 PR inline-asm/93027
16434 * lra-constraints.c (match_reload): Permit input operands have the
16435 same mode as output while other input operands have a different
16436 mode.
16437
16438 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com>
16439
16440 PR tree-optimization/90838
16441 * tree-ssa-forwprop.c (check_ctz_array): Add new function.
16442 (check_ctz_string): Likewise.
16443 (optimize_count_trailing_zeroes): Likewise.
16444 (simplify_count_trailing_zeroes): Likewise.
16445 (pass_forwprop::execute): Try ctz simplification.
16446 * match.pd: Add matching for ctz idioms.
16447
16448 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
16449
16450 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
16451 for target hook.
16452 (aarch64_invalid_unary_op): New function for target hook.
16453 (aarch64_invalid_binary_op): New function for target hook.
16454
16455 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com>
16456
16457 * config.gcc: Add arm_bf16.h.
16458 * config/aarch64/aarch64-builtins.c
16459 (aarch64_simd_builtin_std_type): Add BFmode.
16460 (aarch64_init_simd_builtin_types): Define element types for vector
16461 types.
16462 (aarch64_init_bf16_types): New function.
16463 (aarch64_general_init_builtins): Add arm_init_bf16_types function call.
16464 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
16465 modes.
16466 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
16467 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
16468 patterns.
16469 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
16470 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
16471 * config/aarch64/aarch64.c
16472 (aarch64_classify_vector_mode): Add support for BF types.
16473 (aarch64_gimplify_va_arg_expr): Add support for BF types.
16474 (aarch64_vq_mode): Add support for BF types.
16475 (aarch64_simd_container_mode): Add support for BF types.
16476 (aarch64_mangle_type): Add support for BF scalar type.
16477 * config/aarch64/aarch64.md: Add BFmode to movhf pattern.
16478 * config/aarch64/arm_bf16.h: New file.
16479 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
16480 * config/aarch64/iterators.md: Add BF types to mode attributes.
16481 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
16482
16483 2020-01-10 Jason Merrill <jason@redhat.com>
16484
16485 PR c++/93173 - incorrect tree sharing.
16486 * gimplify.c (copy_if_shared): No longer static.
16487 * gimplify.h: Declare it.
16488
16489 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16490
16491 * doc/invoke.texi (-msve-vector-bits=): Document that
16492 -msve-vector-bits=128 now generates VL-specific code for
16493 little-endian targets.
16494 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
16495 build_vector_type_for_mode to construct the data vector types.
16496 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
16497 VL-specific code for -msve-vector-bits=128 on little-endian targets.
16498 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes
16499 for 128-bit vectors.
16500
16501 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16502
16503 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
16504 invocation.
16505
16506 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16507
16508 * config/aarch64/aarch64-builtins.c
16509 (aarch64_builtin_vectorized_function): Check for specific vector modes,
16510 rather than checking the number of elements and the element mode.
16511
16512 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16513
16514 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
16515 get_related_vectype_for_scalar_type rather than build_vector_type
16516 to create the index type for a conditional reduction.
16517
16518 2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
16519
16520 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
16521 for any type of gather or scatter, including strided accesses.
16522
16523 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
16524
16525 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
16526 comment.
16527
16528 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
16529
16530 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
16531 get_dr_vinfo_offset
16532 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init
16533 parameter and its use to reset DR_OFFSET's.
16534 (vect_transform_loop): Remove orig_drs_init argument.
16535 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
16536 member of dr_vec_info rather than the offset of the associated
16537 data_reference's innermost_loop_behavior.
16538 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
16539 (vect_do_peeling): Remove orig_drs_init parameter and its construction.
16540 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
16541 get_dr_vinfo_offset.
16542 (vectorizable_store): Likewise.
16543 (vectorizable_load): Likewise.
16544
16545 2020-01-10 Richard Biener <rguenther@suse.de>
16546
16547 * gimple-ssa-store-merging
16548 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
16549
16550 2020-01-10 Martin Liska <mliska@suse.cz>
16551
16552 PR ipa/93217
16553 * ipa-inline-analysis.c (offline_size): Make proper parenthesis
16554 encapsulation that was there before r280040.
16555
16556 2020-01-10 Richard Biener <rguenther@suse.de>
16557
16558 PR middle-end/93199
16559 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
16560 sequences to avoid walking them again for secondary opportunities.
16561 (pass_lower_eh_dispatch::execute): Instead actually insert
16562 them here.
16563
16564 2020-01-10 Richard Biener <rguenther@suse.de>
16565
16566 PR middle-end/93199
16567 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
16568 (cleanup_all_empty_eh): Walk landing pads in reverse order to
16569 avoid quadraticness.
16570
16571 2020-01-10 Martin Jambor <mjambor@suse.cz>
16572
16573 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization.
16574 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it
16575 to get param_ipa_sra_max_replacements.
16576 (param_splitting_across_edge): Pass the caller to
16577 pull_accesses_from_callee.
16578
16579 2020-01-10 Martin Jambor <mjambor@suse.cz>
16580
16581 * params.opt (param_ipcp_unit_growth): Mark as Optimization.
16582 * ipa-cp.c (max_new_size): Removed.
16583 (orig_overall_size): New variable.
16584 (get_max_overall_size): New function.
16585 (estimate_local_effects): Use it. Adjust dump.
16586 (decide_about_value): Likewise.
16587 (ipcp_propagate_stage): Do not calculate max_new_size, just store
16588 orig_overall_size. Adjust dump.
16589 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size.
16590
16591 2020-01-10 Martin Jambor <mjambor@suse.cz>
16592
16593 * params.opt (param_ipa_max_agg_items): Mark as Optimization
16594 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use
16595 instead of param_ipa_max_agg_items.
16596 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from
16597 optimization info for the callee.
16598
16599 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com>
16600
16601 * lto-streamer-in.c (input_function): Remove streamed-in inline debug
16602 markers if debug_inline_points is false.
16603
16604 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
16605
16606 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to
16607 extra_objs.
16608 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on
16609 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and
16610 aarch64-sve-builtins-sve2.h.
16611 (aarch64-sve-builtins-sve2.o): New rule.
16612 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro.
16613 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise.
16614 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise.
16615 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise.
16616 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
16617 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and
16618 TARGET_SVE2_SM4.
16619 * config/aarch64/aarch64-sve.md: Update comments with SVE2
16620 instructions that are handled here.
16621 (@cond_asrd<mode>): Generalize to...
16622 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this.
16623 (*cond_asrd<mode>_2): Generalize to...
16624 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this.
16625 (*cond_asrd<mode>_z): Generalize to...
16626 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this.
16627 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec.
16628 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise.
16629 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise.
16630 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New
16631 pattern.
16632 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
16633 (@aarch64_scatter_stnt<mode>): Likewise.
16634 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>)
16635 (@aarch64_mul_lane_<mode>): Likewise.
16636 (@aarch64_sve_suqadd<mode>_const): Likewise.
16637 (*<sur>h<addsub><mode>): Generalize to...
16638 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this
16639 new pattern.
16640 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander.
16641 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern.
16642 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise.
16643 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise.
16644 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise.
16645 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise.
16646 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise.
16647 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise.
16648 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander.
16649 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern.
16650 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise.
16651 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise.
16652 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise.
16653 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>)
16654 (@aarch64_sve_add_mul_lane_<mode>): Likewise.
16655 (@aarch64_sve_sub_mul_lane_<mode>): Likewise.
16656 (@aarch64_sve2_xar<mode>): Likewise.
16657 (@aarch64_sve2_bcax<mode>): Likewise.
16658 (*aarch64_sve2_eor3<mode>): Rename to...
16659 (@aarch64_sve2_eor3<mode>): ...this.
16660 (@aarch64_sve2_bsl<mode>): New expander.
16661 (@aarch64_sve2_nbsl<mode>): Likewise.
16662 (@aarch64_sve2_bsl1n<mode>): Likewise.
16663 (@aarch64_sve2_bsl2n<mode>): Likewise.
16664 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise.
16665 (*aarch64_sve2_sra<mode>): Add MOVPRFX support.
16666 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern.
16667 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise.
16668 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander.
16669 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern.
16670 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise.
16671 (<su>mull<bt><Vwide>): Generalize to...
16672 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new
16673 pattern.
16674 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>)
16675 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>)
16676 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>)
16677 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16678 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>)
16679 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16680 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>)
16681 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16682 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>)
16683 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>)
16684 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns.
16685 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>)
16686 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise.
16687 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise.
16688 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise.
16689 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise.
16690 (<SHRNB:r>shrnb<mode>): Generalize to...
16691 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this
16692 new pattern.
16693 (<SHRNT:r>shrnt<mode>): Generalize to...
16694 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this
16695 new pattern.
16696 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern.
16697 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise.
16698 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander.
16699 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern.
16700 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise.
16701 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise.
16702 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise.
16703 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise.
16704 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise.
16705 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise.
16706 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise.
16707 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander.
16708 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern.
16709 (@aarch64_sve2_cvtnt<mode>): Likewise.
16710 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise.
16711 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander.
16712 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern.
16713 (@aarch64_sve2_cvtxnt<mode>): Likewise.
16714 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise.
16715 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander.
16716 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern.
16717 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise.
16718 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander.
16719 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern.
16720 (@aarch64_sve2_pmul<mode>): Likewise.
16721 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise.
16722 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise.
16723 (@aarch64_sve2_tbl2<mode>): Likewise.
16724 (@aarch64_sve2_tbx<mode>): Likewise.
16725 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise.
16726 (@aarch64_sve2_histcnt<mode>): Likewise.
16727 (@aarch64_sve2_histseg<mode>): Likewise.
16728 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise.
16729 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise.
16730 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise.
16731 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise.
16732 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise.
16733 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise.
16734 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise.
16735 (<su>mulh<r>s<mode>3): Update after above pattern name changes.
16736 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY)
16737 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI)
16738 (SVE2_PMULL_PAIR_I): New mode iterators.
16739 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP)
16740 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT)
16741 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA)
16742 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT)
16743 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT)
16744 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP)
16745 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT)
16746 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP)
16747 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH)
16748 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR)
16749 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT)
16750 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB)
16751 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT)
16752 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP)
16753 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT)
16754 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90)
16755 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB)
16756 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB)
16757 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB)
16758 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB)
16759 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT)
16760 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB)
16761 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT)
16762 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT)
16763 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT)
16764 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT)
16765 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT)
16766 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs.
16767 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT)
16768 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS)
16769 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move
16770 further down file.
16771 (VNARROW, Ventype): New mode attributes.
16772 (Vewtype): Handle VNx2DI. Fix typo in comment.
16773 (VDOUBLE): New mode attribute.
16774 (sve_lane_con): Handle VNx8HI.
16775 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2.
16776 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus.
16777 (sve_int_op, sve_int_op_rev): Handle the above codes.
16778 (sve_pred_int_rhs2_operand): Likewise.
16779 (MULLBT, SHRNB, SHRNT): Delete.
16780 (SVE_INT_SHIFT_IMM): New int iterator.
16781 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI
16782 and UNSPEC_WHILEHS for TARGET_SVE2.
16783 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT)
16784 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG)
16785 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB)
16786 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR)
16787 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators.
16788 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise.
16789 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD)
16790 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise.
16791 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA)
16792 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG)
16793 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise.
16794 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE)
16795 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE)
16796 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise.
16797 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise.
16798 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise.
16799 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise.
16800 (optab): Handle the new unspecs.
16801 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB
16802 and UNSPEC_RSHRNT.
16803 (lr): Handle the new unspecs.
16804 (bt): Delete.
16805 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs.
16806 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op)
16807 (sve_int_qsub_op): New int attributes.
16808 (sve_fp_op, rot): Handle the new unspecs.
16809 * config/aarch64/aarch64-sve-builtins.h
16810 (function_resolver::require_matching_pointer_type): Declare.
16811 (function_resolver::resolve_unary): Add an optional boolean argument.
16812 (function_resolver::finish_opt_n_resolution): Add an optional
16813 type_suffix_index argument.
16814 (gimple_folder::redirect_call): Declare.
16815 (gimple_expander::prepare_gather_address_operands): Add an optional
16816 bool parameter.
16817 * config/aarch64/aarch64-sve-builtins.cc: Include
16818 aarch64-sve-builtins-sve2.h.
16819 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros.
16820 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise.
16821 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise.
16822 (TYPES_hsd_integer): Use TYPES_hsd_signed.
16823 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros.
16824 (TYPES_s_unsigned): Likewise.
16825 (TYPES_s_integer): Use TYPES_s_unsigned.
16826 (TYPES_sd_signed, TYPES_sd_unsigned): New macros.
16827 (TYPES_sd_integer): Use them.
16828 (TYPES_d_unsigned): New macro.
16829 (TYPES_d_integer): Use it.
16830 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros.
16831 (TYPES_cvt_narrow): Likewise.
16832 (DEF_SVE_TYPES_ARRAY): Include the new types macros above.
16833 (preds_mx): New variable.
16834 (function_builder::add_overloaded_function): Allow the new feature
16835 set to be more restrictive than the original one.
16836 (function_resolver::infer_pointer_type): Remove qualifiers from
16837 the pointer type before printing it.
16838 (function_resolver::require_matching_pointer_type): New function.
16839 (function_resolver::resolve_sv_displacement): Handle functions
16840 that don't support 32-bit vector indices or svint32_t vector offsets.
16841 (function_resolver::finish_opt_n_resolution): Take the inferred type
16842 as a separate argument.
16843 (function_resolver::resolve_unary): Optionally treat all forms in
16844 the same way as normal merging functions.
16845 (gimple_folder::redirect_call): New function.
16846 (function_expander::prepare_gather_address_operands): Add an argument
16847 that says whether scaled forms are available. If they aren't,
16848 handle scaling of vector indices and don't add the extension and
16849 scaling operands.
16850 (function_expander::map_to_unspecs): If aarch64_sve isn't available,
16851 fall back to using cond_* instead.
16852 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function):
16853 Split out the member variables into...
16854 (rtx_code_function_base): ...this new base class.
16855 (rtx_code_function_rotated): Inherit rtx_code_function_base.
16856 (unspec_based_function): Split out the member variables into...
16857 (unspec_based_function_base): ...this new base class.
16858 (unspec_based_function_rotated): Inherit unspec_based_function_base.
16859 (unspec_based_function_exact_insn): New class.
16860 (unspec_based_add_function, unspec_based_add_lane_function)
16861 (unspec_based_lane_function, unspec_based_pred_function)
16862 (unspec_based_qadd_function, unspec_based_qadd_lane_function)
16863 (unspec_based_qsub_function, unspec_based_qsub_lane_function)
16864 (unspec_based_sub_function, unspec_based_sub_lane_function): New
16865 typedefs.
16866 (unspec_based_fused_function): New class.
16867 (unspec_based_mla_function, unspec_based_mls_function): New typedefs.
16868 (unspec_based_fused_lane_function): New class.
16869 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New
16870 typedefs.
16871 (CODE_FOR_MODE1): New macro.
16872 (fixed_insn_function): New class.
16873 (while_comparison): Likewise.
16874 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane)
16875 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n)
16876 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr)
16877 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted)
16878 (load_gather_sv_restricted, shift_left_imm_long): Declare.
16879 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise.
16880 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise.
16881 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted)
16882 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane)
16883 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate)
16884 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint)
16885 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt)
16886 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise.
16887 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
16888 Also add an initial argument for unary_convert_narrowt, regardless
16889 of the predication type.
16890 (build_32_64): Allow loads and stores to specify MODE_none.
16891 (build_sv_index64, build_sv_uint_offset): New functions.
16892 (long_type_suffix): New function.
16893 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes.
16894 (binary_imm_long_base, load_gather_sv_base): Likewise.
16895 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise.
16896 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise.
16897 (unary_narrowb_base, unary_narrowt_base): Likewise.
16898 (binary_long_lane_def, binary_long_lane): New shape.
16899 (binary_long_opt_n_def, binary_long_opt_n): Likewise.
16900 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise.
16901 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise.
16902 (binary_to_uint_def, binary_to_uint): Likewise.
16903 (binary_wide_def, binary_wide): Likewise.
16904 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise.
16905 (compare_def, compare): Likewise.
16906 (compare_ptr_def, compare_ptr): Likewise.
16907 (load_ext_gather_index_restricted_def,
16908 load_ext_gather_index_restricted): Likewise.
16909 (load_ext_gather_offset_restricted_def,
16910 load_ext_gather_offset_restricted): Likewise.
16911 (load_gather_sv_def): Inherit from load_gather_sv_base.
16912 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape.
16913 (shift_left_imm_def, shift_left_imm): Likewise.
16914 (shift_left_imm_long_def, shift_left_imm_long): Likewise.
16915 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise.
16916 (store_scatter_index_restricted_def,
16917 store_scatter_index_restricted): Likewise.
16918 (store_scatter_offset_restricted_def,
16919 store_scatter_offset_restricted): Likewise.
16920 (tbl_tuple_def, tbl_tuple): Likewise.
16921 (ternary_long_lane_def, ternary_long_lane): Likewise.
16922 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise.
16923 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base.
16924 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape
16925 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base.
16926 (ternary_qq_rotate_def, ternary_qq_rotate): New shape.
16927 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise.
16928 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise.
16929 (ternary_uint_def, ternary_uint): Likewise.
16930 (unary_convert): Fix typo in comment.
16931 (unary_convert_narrowt_def, unary_convert_narrowt): New shape.
16932 (unary_long_def, unary_long): Likewise.
16933 (unary_narrowb_def, unary_narrowb): Likewise.
16934 (unary_narrowt_def, unary_narrowt): Likewise.
16935 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise.
16936 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise.
16937 (unary_to_int_def, unary_to_int): Likewise.
16938 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla)
16939 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions.
16940 (svasrd_impl): Delete.
16941 (svcadd_impl::expand): Handle integer operations too.
16942 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the
16943 new functions to derive the unspec numbers.
16944 (svmla_svmls_lane_impl): Replace with...
16945 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle
16946 integer operations too.
16947 (svwhile_impl): Rename to...
16948 (svwhilelx_impl): ...this and inherit from while_comparison.
16949 (svasrd): Use unspec_based_function.
16950 (svmla_lane): Use svmla_lane_impl.
16951 (svmls_lane): Use svmls_lane_impl.
16952 (svrecpe, svrsqrte): Handle unsigned integer operations too.
16953 (svwhilele, svwhilelt): Use svwhilelx_impl.
16954 * config/aarch64/aarch64-sve-builtins-sve2.h: New file.
16955 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
16956 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
16957 * config/aarch64/aarch64-sve-builtins.def: Include
16958 aarch64-sve-builtins-sve2.def.
16959
16960 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
16961
16962 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p)
16963 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument.
16964 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p)
16965 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar
16966 immediates as well as vector ones.
16967 * config/aarch64/predicates.md (aarch64_sve_arith_immediate)
16968 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate)
16969 (aarch64_sve_qsub_immediate): Update calls accordingly.
16970
16971 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
16972
16973 * config/aarch64/aarch64-sve2.md: Add banner comments.
16974 (<su>mulh<r>s<mode>3): Move further up file.
16975 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>)
16976 (*aarch64_sve2_sra<mode>): Move further down file.
16977 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too.
16978
16979 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
16980
16981 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW
16982 and UNSPEC_WHILEWR.
16983 (while_optab_cmp): Handle them.
16984 * config/aarch64/aarch64-sve.md
16985 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public
16986 and add a "@" marker.
16987 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it
16988 instead of gen_aarch64_sve2_while_ptest.
16989 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete.
16990
16991 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
16992
16993 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to...
16994 (UNSPEC_WHILELE): ...this.
16995 (UNSPEC_WHILE_LO): Rename to...
16996 (UNSPEC_WHILELO): ...this.
16997 (UNSPEC_WHILE_LS): Rename to...
16998 (UNSPEC_WHILELS): ...this.
16999 (UNSPEC_WHILE_LT): Rename to...
17000 (UNSPEC_WHILELT): ...this.
17001 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly.
17002 (cmp_op, while_optab_cmp): Likewise.
17003 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise.
17004 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise.
17005 (svwhilelt): Likewise.
17006
17007 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17008
17009 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete.
17010 (unary_to_uint): Define.
17011 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def)
17012 (unary_count): Rename to...
17013 (unary_to_uint_def, unary_to_uint): ...this.
17014 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly.
17015
17016 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17017
17018 * config/aarch64/aarch64-sve-builtins-functions.h
17019 (code_for_mode_function): New class.
17020 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros.
17021 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl)
17022 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete.
17023 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0.
17024 (svmul_lane, svtmad): Use CODE_FOR_MODE0.
17025
17026 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17027
17028 * config/aarch64/iterators.md (addsub): New code attribute.
17029 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>):
17030 Re-express as...
17031 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change
17032 in the asm string and attributes. Fix indentation.
17033 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>):
17034 Re-express as...
17035 (@aarch64_sve_<optab><mode>): ...this.
17036 * config/aarch64/aarch64-sve-builtins.h
17037 (function_expander::expand_signed_unpred_op): Delete.
17038 * config/aarch64/aarch64-sve-builtins.cc
17039 (function_expander::expand_signed_unpred_op): Likewise.
17040 (function_expander::map_to_rtx_codes): If the optab isn't defined,
17041 try using code_for_aarch64_sve instead.
17042 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete.
17043 (svqsub_impl): Likewise.
17044 (svqadd, svqsub): Use rtx_code_function instead.
17045
17046 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17047
17048 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete.
17049 (HADDSUB, sur, addsub): Remove them.
17050
17051 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17052
17053 * tree-nrv.c (pass_return_slot::execute): Handle all internal
17054 functions the same way, rather than singling out those that
17055 aren't mapped directly to optabs.
17056
17057 2020-01-09 Richard Sandiford <richard.sandiford@arm.com>
17058
17059 * target.def (compatible_vector_types_p): New target hook.
17060 * hooks.h (hook_bool_const_tree_const_tree_true): Declare.
17061 * hooks.c (hook_bool_const_tree_const_tree_true): New function.
17062 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook.
17063 * doc/tm.texi: Regenerate.
17064 * gimple-expr.c: Include target.h.
17065 (useless_type_conversion_p): Use targetm.compatible_vector_types_p.
17066 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New
17067 function.
17068 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define.
17069 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
17070 Use the original predicate if it already has a suitable type.
17071
17072 2020-01-09 Martin Jambor <mjambor@suse.cz>
17073
17074 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct,
17075 resolve_speculation and redirect_call_stmt_to_callee static. Change
17076 return type of set_call_stmt to cgraph_edge *.
17077 * auto-profile.c (afdo_indirect_call): Adjust call to
17078 redirect_call_stmt_to_callee.
17079 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *,
17080 make the this pointer explicit, adjust self-recursive calls and the
17081 call top make_direct. Return the resulting edge.
17082 (cgraph_edge::remove): Make this pointer explicit.
17083 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove.
17084 (cgraph_edge::make_direct): Likewise, adjust call to
17085 resolve_speculation.
17086 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust
17087 call to set_call_stmt.
17088 (cgraph_update_edges_for_call_stmt_node): Update call to
17089 set_call_stmt and remove.
17090 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones):
17091 Renamed edge to master_edge. Adjusted calls to set_call_stmt.
17092 (cgraph_node::create_edge_including_clones): Moved "first" definition
17093 of edge to the block where it was used. Adjusted calls to
17094 set_call_stmt.
17095 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to
17096 cgraph_edge::remove.
17097 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to
17098 make_direct and redirect_call_stmt_to_callee.
17099 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to
17100 resolve_speculation and make_direct.
17101 * ipa-inline-transform.c (inline_transform): Adjust call to
17102 redirect_call_stmt_to_callee.
17103 (check_speculations_1):: Adjust call to resolve_speculation.
17104 * ipa-inline.c (resolve_noninline_speculation): Adjust call to
17105 resolve-speculation.
17106 (inline_small_functions): Adjust call to resolve_speculation.
17107 (ipa_inline): Likewise.
17108 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to
17109 make_direct.
17110 * ipa-visibility.c (function_and_variable_visibility): Make iteration
17111 safe with regards to edge removal, adjust calls to
17112 redirect_call_stmt_to_callee.
17113 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct
17114 and redirect_call_stmt_to_callee.
17115 * multiple_target.c (create_dispatcher_calls): Adjust call to
17116 redirect_call_stmt_to_callee
17117 (redirect_to_specific_clone): Likewise.
17118 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
17119 Adjust calls to cgraph_edge::remove.
17120 * tree-inline.c (copy_bb): Adjust call to set_call_stmt.
17121 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee.
17122 (expand_call_inline): Adjust call to cgraph_edge::remove.
17123
17124 2020-01-09 Martin Liska <mliska@suse.cz>
17125
17126 * params.opt: Set Optimization for
17127 param_max_speculative_devirt_maydefs.
17128
17129 2020-01-09 Martin Sebor <msebor@redhat.com>
17130
17131 PR middle-end/93200
17132 PR fortran/92956
17133 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type.
17134
17135 2020-01-09 Martin Liska <mliska@suse.cz>
17136
17137 * auto-profile.c (auto_profile): Use opt_for_fn
17138 for a parameter.
17139 * ipa-cp.c (ipcp_lattice::add_value): Likewise.
17140 (propagate_vals_across_arith_jfunc): Likewise.
17141 (hint_time_bonus): Likewise.
17142 (incorporate_penalties): Likewise.
17143 (good_cloning_opportunity_p): Likewise.
17144 (perform_estimation_of_a_value): Likewise.
17145 (estimate_local_effects): Likewise.
17146 (ipcp_propagate_stage): Likewise.
17147 * ipa-fnsummary.c (decompose_param_expr): Likewise.
17148 (set_switch_stmt_execution_predicate): Likewise.
17149 (analyze_function_body): Likewise.
17150 * ipa-inline-analysis.c (offline_size): Likewise.
17151 * ipa-inline.c (early_inliner): Likewise.
17152 * ipa-prop.c (ipa_analyze_node): Likewise.
17153 (ipcp_transform_function): Likewise.
17154 * ipa-sra.c (process_scan_results): Likewise.
17155 (ipa_sra_summarize_function): Likewise.
17156 * params.opt: Rename ipcp-unit-growth to
17157 ipa-cp-unit-growth. Add Optimization for various
17158 IPA-related parameters.
17159
17160 2020-01-09 Richard Biener <rguenther@suse.de>
17161
17162 PR middle-end/93054
17163 * gimplify.c (gimplify_expr): Deal with NOP definitions.
17164
17165 2020-01-09 Richard Biener <rguenther@suse.de>
17166
17167 PR tree-optimization/93040
17168 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit.
17169
17170 2020-01-09 Georg-Johann Lay <avr@gjlay.de>
17171
17172 * common/config/avr/avr-common.c (avr_option_optimization_table)
17173 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early.
17174
17175 2020-01-09 Martin Liska <mliska@suse.cz>
17176
17177 * cgraphclones.c (symbol_table::materialize_all_clones):
17178 Use cgraph_node::dump_name.
17179
17180 2020-01-09 Jakub Jelinek <jakub@redhat.com>
17181
17182 PR inline-asm/93202
17183 * config/riscv/riscv.c (riscv_print_operand_reloc): Use
17184 output_operand_lossage instead of gcc_unreachable.
17185 * doc/md.texi (riscv f constraint): Fix typo.
17186
17187 PR target/93141
17188 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of
17189 SWI. Use <general_hilo_operand> instead of <general_operand>. Use
17190 CONST_SCALAR_INT_P instead of CONST_INT_P.
17191 (*subv<mode>4_1): Rename to ...
17192 (subv<mode>4_1): ... this.
17193 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
17194 define_insn_and_split patterns.
17195 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
17196 patterns.
17197
17198 2020-01-08 David Malcolm <dmalcolm@redhat.com>
17199
17200 * vec.c (class selftest::count_dtor): New class.
17201 (selftest::test_auto_delete_vec): New test.
17202 (selftest::vec_c_tests): Call it.
17203 * vec.h (class auto_delete_vec): New class template.
17204 (auto_delete_vec<T>::~auto_delete_vec): New dtor.
17205
17206 2020-01-08 David Malcolm <dmalcolm@redhat.com>
17207
17208 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap.
17209
17210 2020-01-08 Jim Wilson <jimw@sifive.com>
17211
17212 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out
17213 use of TLS_MODEL_LOCAL_EXEC when not pic.
17214
17215 2020-01-08 David Malcolm <dmalcolm@redhat.com>
17216
17217 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix
17218 memory leak.
17219
17220 2020-01-08 Jakub Jelinek <jakub@redhat.com>
17221
17222 PR target/93187
17223 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2,
17224 *stack_protect_set_3 peephole2): Also check that the second
17225 insns source is general_operand.
17226
17227 PR target/93174
17228 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand
17229 predicate for output operand instead of register_operand.
17230 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with
17231 memory destination and non-memory operands[2].
17232
17233 2020-01-08 Martin Liska <mliska@suse.cz>
17234
17235 * cgraph.c (cgraph_node::dump): Use ::dump_name or
17236 ::dump_asm_name instead of (::name or ::asm_name).
17237 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
17238 * cgraphunit.c (walk_polymorphic_call_targets): Likewise.
17239 (analyze_functions): Likewise.
17240 (expand_all_functions): Likewise.
17241 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
17242 (propagate_bits_across_jump_function): Likewise.
17243 (dump_profile_updates): Likewise.
17244 (ipcp_store_bits_results): Likewise.
17245 (ipcp_store_vr_results): Likewise.
17246 * ipa-devirt.c (dump_targets): Likewise.
17247 * ipa-fnsummary.c (analyze_function_body): Likewise.
17248 * ipa-hsa.c (check_warn_node_versionable): Likewise.
17249 (process_hsa_functions): Likewise.
17250 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise.
17251 (set_alias_uids): Likewise.
17252 * ipa-inline-transform.c (save_inline_function_body): Likewise.
17253 * ipa-inline.c (recursive_inlining): Likewise.
17254 (inline_to_all_callers_1): Likewise.
17255 (ipa_inline): Likewise.
17256 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
17257 (ipa_propagate_frequency): Likewise.
17258 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
17259 (remove_described_reference): Likewise.
17260 * ipa-pure-const.c (worse_state): Likewise.
17261 (check_retval_uses): Likewise.
17262 (analyze_function): Likewise.
17263 (propagate_pure_const): Likewise.
17264 (propagate_nothrow): Likewise.
17265 (dump_malloc_lattice): Likewise.
17266 (propagate_malloc): Likewise.
17267 (pass_local_pure_const::execute): Likewise.
17268 * ipa-visibility.c (optimize_weakref): Likewise.
17269 (function_and_variable_visibility): Likewise.
17270 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
17271 (ipa_discover_variable_flags): Likewise.
17272 * lto-streamer-out.c (output_function): Likewise.
17273 (output_constructor): Likewise.
17274 * tree-inline.c (copy_bb): Likewise.
17275 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
17276 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise.
17277
17278 2020-01-08 Richard Biener <rguenther@suse.de>
17279
17280 PR middle-end/93199
17281 * tree-eh.c (sink_clobbers): Update virtual operands for
17282 the first and last stmt only. Add a dry-run capability.
17283 (pass_lower_eh_dispatch::execute): Perform clobber sinking
17284 after CFG manipulations and in RPO order to catch all
17285 secondary opportunities reliably.
17286
17287 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
17288
17289 PR target/93182
17290 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
17291
17292 2019-01-08 Richard Biener <rguenther@suse.de>
17293
17294 PR middle-end/93199
17295 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
17296 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust
17297 virtual operand, also updating SSA use.
17298 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
17299 Update stmt after resetting virtual operand.
17300 (tree_loop_interchange::move_code_to_inner_loop): Likewise.
17301 * gimple-iterator.c (gsi_remove): When not removing the stmt
17302 permanently do not delink immediate uses or mark the stmt modified.
17303
17304 2020-01-08 Martin Liska <mliska@suse.cz>
17305
17306 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name.
17307 (ipa_call_context::estimate_size_and_time): Likewise.
17308 (inline_analyze_function): Likewise.
17309
17310 2020-01-08 Martin Liska <mliska@suse.cz>
17311
17312 * cgraph.c (cgraph_node::dump): Use systematically
17313 dump_asm_name.
17314
17315 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
17316
17317 Add -nodevicespecs option for avr.
17318
17319 PR target/93182
17320 * config/avr/avr.opt (-nodevicespecs): New driver option.
17321 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue
17322 "-specs=device-specs/..." if that option is not set.
17323 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
17324
17325 2020-01-08 Georg-Johann Lay <avr@gjlay.de>
17326
17327 Implement 64-bit double functions for avr.
17328
17329 PR target/92055
17330 * config.gcc (tm_defines) [target=avr]: Support --with-libf7,
17331 --with-double-comparison.
17332 * doc/install.texi: Document them.
17333 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
17334 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS>
17335 <WITH_DOUBLE_COMPARISON>: New built-in defines.
17336 * doc/invoke.texi (AVR Built-in Macros): Document them.
17337 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New.
17338 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function.
17339 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro.
17340
17341 2020-01-08 Richard Earnshaw <rearnsha@arm.com>
17342
17343 PR target/93188
17344 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
17345 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
17346 when only building rm-profile multilibs.
17347
17348 2020-01-08 Feng Xue <fxue@os.amperecomputing.com>
17349
17350 PR ipa/93084
17351 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate
17352 lattice for a value to check.
17353 (propagate_vals_across_arith_jfunc): Add an assertion to ensure
17354 finite propagation in self-recursive scc.
17355
17356 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com>
17357
17358 * ipa-inline.c (caller_growth_limits): Restore the AND.
17359
17360 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
17361
17362 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator.
17363 (VEC_ALLREG_ALT): New iterator.
17364 (VEC_ALLREG_INT_MODE): New iterator.
17365 (VCMP_MODE): New iterator.
17366 (VCMP_MODE_INT): New iterator.
17367 (vec_cmpu<mode>di): Use VCMP_MODE_INT.
17368 (vec_cmp<u>v64qidi): New define_expand.
17369 (vec_cmp<mode>di_exec): Use VCMP_MODE.
17370 (vec_cmpu<mode>di_exec): New define_expand.
17371 (vec_cmp<u>v64qidi_exec): New define_expand.
17372 (vec_cmp<mode>di_dup): Use VCMP_MODE.
17373 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE.
17374 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ...
17375 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this.
17376 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ...
17377 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this.
17378 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ...
17379 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this.
17380 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ...
17381 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to
17382 this.
17383 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes.
17384 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend.
17385
17386 2020-01-07 Andrew Stubbs <ams@codesourcery.com>
17387
17388 * config/gcn/constraints.md (DA): Update description and match.
17389 (DB): Likewise.
17390 (Db): New constraint.
17391 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
17392 parameter.
17393 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
17394 Implement 'Db' mixed immediate type.
17395 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
17396 (addcv64si3_dup<exec_vcc>): Delete.
17397 (subcv64si3<exec_vcc>): Rework constraints.
17398 (addv64di3): Rework constraints.
17399 (addv64di3_exec): Rework constraints.
17400 (subv64di3): Rework constraints.
17401 (addv64di3_dup): Delete.
17402 (addv64di3_dup_exec): Delete.
17403 (addv64di3_zext): Rework constraints.
17404 (addv64di3_zext_exec): Rework constraints.
17405 (addv64di3_zext_dup): Rework constraints.
17406 (addv64di3_zext_dup_exec): Rework constraints.
17407 (addv64di3_zext_dup2): Rework constraints.
17408 (addv64di3_zext_dup2_exec): Rework constraints.
17409 (addv64di3_sext_dup2): Rework constraints.
17410 (addv64di3_sext_dup2_exec): Rework constraints.
17411
17412 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
17413
17414 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented
17415 existing target checks.
17416
17417 2020-01-07 Richard Biener <rguenther@suse.de>
17418
17419 * doc/install.texi: Bump minimal supported MPC version.
17420
17421 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
17422
17423 * langhooks-def.h (lhd_simulate_enum_decl): Declare.
17424 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it.
17425 * langhooks.c: Include stor-layout.h.
17426 (lhd_simulate_enum_decl): New function.
17427 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call
17428 handle_arm_sve_h for the LTO frontend.
17429 (register_vector_type): Cope with null returns from pushdecl.
17430
17431 2020-01-07 Richard Sandiford <richard.sandiford@arm.com>
17432
17433 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p)
17434 (aarch64_sve::nvectors_if_data_type): Replace with...
17435 (aarch64_sve::builtin_type_p): ...this.
17436 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h.
17437 (find_vector_type): Delete.
17438 (add_sve_type_attribute): New function.
17439 (lookup_sve_type_attribute): Likewise.
17440 (register_builtin_types): Add an "SVE type" attribute to each type.
17441 (register_tuple_type): Likewise.
17442 (svbool_type_p, nvectors_if_data_type): Delete.
17443 (mangle_builtin_type): Use lookup_sve_type_attribute.
17444 (builtin_type_p): Likewise. Add an overload that returns the
17445 number of constituent vector and predicate registers.
17446 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete.
17447 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p
17448 instead of aarch64_sve_argument_p.
17449 (aarch64_takes_arguments_in_sve_regs_p): Likewise.
17450 (aarch64_pass_by_reference): Likewise.
17451 (aarch64_function_value_1): Likewise.
17452 (aarch64_return_in_memory): Likewise.
17453 (aarch64_layout_arg): Likewise.
17454
17455 2020-01-07 Jakub Jelinek <jakub@redhat.com>
17456
17457 PR tree-optimization/93156
17458 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second
17459 least significant bit is always clear.
17460
17461 PR tree-optimization/93118
17462 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new
17463 simplifier with two intermediate conversions.
17464
17465 2020-01-07 Martin Liska <mliska@suse.cz>
17466
17467 * params.opt: Add Optimization for various parameters.
17468
17469 2020-01-07 Martin Liska <mliska@suse.cz>
17470
17471 PR ipa/83411
17472 * doc/extend.texi: Explain cloning for target_clone
17473 attribute.
17474
17475 2020-01-07 Martin Liska <mliska@suse.cz>
17476
17477 PR tree-optimization/92860
17478 * common.opt: Make in Optimization option
17479 as it is affected by -O0, which is an Optimization
17480 option.
17481 * tree-inline.c (tree_inlinable_function_p):
17482 Use opt_for_fn for warn_inline.
17483 (expand_call_inline): Likewise.
17484
17485 2020-01-07 Martin Liska <mliska@suse.cz>
17486
17487 PR tree-optimization/92860
17488 * common.opt: Make flag_ree as optimization
17489 attribute.
17490
17491 2020-01-07 Martin Liska <mliska@suse.cz>
17492
17493 PR optimization/92860
17494 * params.opt: Mark param_min_crossjump_insns with Optimization
17495 keyword.
17496
17497 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com>
17498
17499 * ipa-inline-analysis.c (estimate_growth): Fix typo.
17500 * ipa-inline.c (caller_growth_limits): Use OR instead of AND.
17501
17502 2020-01-06 Michael Meissner <meissner@linux.ibm.com>
17503
17504 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New
17505 helper function to return the valid addressing formats for a given
17506 hard register and mode.
17507 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask.
17508
17509 * config/rs6000/constraints.md (Q constraint): Update
17510 documentation.
17511 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint
17512 documentation.
17513
17514 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
17515 Use 'Q' for doing vector extract from memory.
17516 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
17517 memory.
17518 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
17519 doing vector extract from memory.
17520 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
17521 extract from memory.
17522
17523 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support
17524 for the offset being 34-bits when -mcpu=future is used.
17525
17526 2020-01-06 John David Anglin <danglin@gcc.gnu.org>
17527
17528 * config/pa/pa.md: Revert change to use ordered_comparison_operator
17529 instead of cmpib_comparison_operator in cmpib patterns.
17530 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal
17531 of cmpib_comparison_operator. Revise comment.
17532
17533 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17534
17535 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
17536 in an IFN_DIV_POW2 node to be equal.
17537
17538 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17539
17540 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to...
17541 (vect_check_scalar_mask): ...this.
17542 (vectorizable_store, vectorizable_load): Update call accordingly.
17543 (vectorizable_call): Use vect_check_scalar_mask to check the mask
17544 argument in calls to conditional internal functions.
17545
17546 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
17547
17548 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for
17549 '0' matching inputs.
17550 (subv64di3_exec): Likewise.
17551
17552 2020-01-06 Bryan Stenson <bryan@siliconvortex.com>
17553
17554 * config/mips/mips.c (vr4130_align_insns): Fix typo.
17555 * doc/md.texi (movstr): Likewise.
17556
17557 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
17558
17559 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early
17560 clobber.
17561
17562 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17563
17564 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md):
17565 Depend on...
17566 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents
17567 to a temporary file and use move-if-change to update the real
17568 file where necessary.
17569
17570 2020-01-06 Richard Sandiford <richard.sandiford@arm.com>
17571
17572 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl
17573 rather than Upa for CPY /M.
17574
17575 2020-01-06 Andrew Stubbs <ams@codesourcery.com>
17576
17577 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline
17578 immediate.
17579
17580 2020-01-06 Martin Liska <mliska@suse.cz>
17581
17582 PR tree-optimization/92860
17583 * params.opt: Mark param_max_combine_insns with Optimization
17584 keyword.
17585
17586 2020-01-05 Jakub Jelinek <jakub@redhat.com>
17587
17588 PR target/93141
17589 * config/i386/i386.md (SWIDWI): New mode iterator.
17590 (DWI, dwi): Add TImode variants.
17591 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use
17592 <general_hilo_operand> instead of <general_operand>. Use
17593 CONST_SCALAR_INT_P instead of CONST_INT_P.
17594 (*addv<mode>4_1): Rename to ...
17595 (addv<mode>4_1): ... this.
17596 (QWI): New mode attribute.
17597 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
17598 define_insn_and_split patterns.
17599 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
17600 patterns.
17601 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use
17602 <general_hilo_operand> instead of <general_operand>.
17603 (*addcarry<mode>_1): New define_insn.
17604 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.
17605
17606 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru>
17607
17608 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm):
17609 Use "call" instead of "set".
17610
17611 2020-01-03 Martin Jambor <mjambor@suse.cz>
17612
17613 PR ipa/92917
17614 * ipa-cp.c (print_all_lattices): Skip functions without info.
17615
17616 2020-01-03 Jakub Jelinek <jakub@redhat.com>
17617
17618 PR target/93089
17619 * config/i386/i386-options.c (ix86_simd_clone_adjust): If
17620 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd'
17621 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512
17622 for 'e' simd clones.
17623
17624 PR target/93089
17625 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave
17626 entry.
17627 (mprefer-vector-width=): Add Save.
17628 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print
17629 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment.
17630 (ix86_debug_options, ix86_function_specific_print): Adjust
17631 ix86_target_string callers.
17632 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=.
17633 (ix86_valid_target_attribute_tree): Likewise.
17634 * config/i386/i386-options.h (ix86_target_string): Add PVW argument.
17635 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust
17636 ix86_target_string caller.
17637
17638 PR target/93110
17639 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of
17640 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode
17641 instead of gen_int_shift_amount + convert_modes.
17642
17643 PR rtl-optimization/93088
17644 * loop-iv.c (find_single_def_src): Punt after looking through
17645 128 reg copies for regs with single definitions. Move definitions
17646 to first uses.
17647
17648 2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
17649
17650 * config/arm/arm-c.c (arm_cpu_builtins): Define
17651 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC,
17652 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and
17653 __ARM_BF16_FORMAT_ALTERNATIVE when enabled.
17654 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features.
17655 * config/arm/arm-tables.opt: Regenerated.
17656 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize
17657 arm_arch_i8mm and arm_arch_bf16 when enabled.
17658 * config/arm/arm.h (TARGET_I8MM): New macro.
17659 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
17660 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a.
17661 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a.
17662 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a.
17663 (v8_6_a_simd_variants): New.
17664 (v8_*_a_simd_variants): Add i8mm and bf16.
17665 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options.
17666
17667 2020-01-02 Jakub Jelinek <jakub@redhat.com>
17668
17669 PR ipa/93087
17670 * predict.c (compute_function_frequency): Don't call
17671 warn_function_cold on functions that already have cold attribute.
17672
17673 2020-01-01 John David Anglin <danglin@gcc.gnu.org>
17674
17675 PR target/67834
17676 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
17677 COMDAT group function labels in .data.rel.ro.local section.
17678 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
17679
17680 PR target/93111
17681 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of
17682 comparison_operator in B and S integer comparisons. Likewise, use
17683 ordered_comparison_operator instead of cmpib_comparison_operator in
17684 cmpib patterns.
17685 * config/pa/predicates.md (cmpib_comparison_operator): Remove.
17686
17687 2020-01-01 Jakub Jelinek <jakub@redhat.com>
17688
17689 Update copyright years.
17690
17691 * gcc.c (process_command): Update copyright notice dates.
17692 * gcov-dump.c (print_version): Ditto.
17693 * gcov.c (print_version): Ditto.
17694 * gcov-tool.c (print_version): Ditto.
17695 * gengtype.c (create_file): Ditto.
17696 * doc/cpp.texi: Bump @copying's copyright year.
17697 * doc/cppinternals.texi: Ditto.
17698 * doc/gcc.texi: Ditto.
17699 * doc/gccint.texi: Ditto.
17700 * doc/gcov.texi: Ditto.
17701 * doc/install.texi: Ditto.
17702 * doc/invoke.texi: Ditto.
17703
17704 2020-01-01 Jan Hubicka <hubicka@ucw.cz>
17705
17706 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall
17707 summary.
17708
17709 2020-01-01 Jakub Jelinek <jakub@redhat.com>
17710
17711 PR tree-optimization/93098
17712 * match.pd (popcount): For shift amounts, use integer_onep
17713 or wi::to_widest () == cst instead of tree_to_uhwi () == cst
17714 tests. Make sure that precision is power of two larger than or equal
17715 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro
17716 instead of ULL suffixed constants. Formatting fixes.
17717 \f
17718 Copyright (C) 2020 Free Software Foundation, Inc.
17719
17720 Copying and distribution of this file, with or without modification,
17721 are permitted in any medium without royalty provided the copyright
17722 notice and this notice are preserved.